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
11bitflags! {
12 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
13 pub struct KeyMgmtMask: u32 {
14 const WPA_EAP = 1;
15 const WPA_PSK = 2;
16 const NONE = 4;
17 const IEEE8021_X = 8;
18 const FT_EAP = 32;
19 const FT_PSK = 64;
20 const OSEN = 32768;
21 const WPA_EAP_SHA256 = 128;
22 const WPA_PSK_SHA256 = 256;
23 const SAE = 1024;
24 const SUITE_B_192 = 131072;
25 const OWE = 4194304;
26 const DPP = 8388608;
27 const WAPI_PSK = 4096;
28 const WAPI_CERT = 8192;
29 const FILS_SHA256 = 262144;
30 const FILS_SHA384 = 524288;
31 const PASN = 33554432;
32 }
33}
34
35impl KeyMgmtMask {
36 #[inline(always)]
37 pub fn from_bits_allow_unknown(bits: u32) -> Self {
38 Self::from_bits_retain(bits)
39 }
40
41 #[inline(always)]
42 pub fn has_unknown_bits(&self) -> bool {
43 self.get_unknown_bits() != 0
44 }
45
46 #[inline(always)]
47 pub fn get_unknown_bits(&self) -> u32 {
48 self.bits() & !Self::all().bits()
49 }
50}
51
52#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
53pub enum BtCoexistenceMode {
54 Enabled,
55 Disabled,
56 Sense,
57 #[doc(hidden)]
58 __SourceBreaking {
59 unknown_ordinal: u32,
60 },
61}
62
63#[macro_export]
65macro_rules! BtCoexistenceModeUnknown {
66 () => {
67 _
68 };
69}
70
71impl BtCoexistenceMode {
72 #[inline]
73 pub fn from_primitive(prim: u32) -> Option<Self> {
74 match prim {
75 1 => Some(Self::Enabled),
76 2 => Some(Self::Disabled),
77 3 => Some(Self::Sense),
78 _ => None,
79 }
80 }
81
82 #[inline]
83 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
84 match prim {
85 1 => Self::Enabled,
86 2 => Self::Disabled,
87 3 => Self::Sense,
88 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
89 }
90 }
91
92 #[inline]
93 pub fn unknown() -> Self {
94 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
95 }
96
97 #[inline]
98 pub const fn into_primitive(self) -> u32 {
99 match self {
100 Self::Enabled => 1,
101 Self::Disabled => 2,
102 Self::Sense => 3,
103 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
104 }
105 }
106
107 #[inline]
108 pub fn is_unknown(&self) -> bool {
109 match self {
110 Self::__SourceBreaking { unknown_ordinal: _ } => true,
111 _ => false,
112 }
113 }
114}
115
116#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
117pub enum IfaceConcurrencyType {
118 Sta,
119 Ap,
120 ApBridged,
121 P2P,
122 NanIface,
123 #[doc(hidden)]
124 __SourceBreaking {
125 unknown_ordinal: u32,
126 },
127}
128
129#[macro_export]
131macro_rules! IfaceConcurrencyTypeUnknown {
132 () => {
133 _
134 };
135}
136
137impl IfaceConcurrencyType {
138 #[inline]
139 pub fn from_primitive(prim: u32) -> Option<Self> {
140 match prim {
141 1 => Some(Self::Sta),
142 2 => Some(Self::Ap),
143 3 => Some(Self::ApBridged),
144 4 => Some(Self::P2P),
145 5 => Some(Self::NanIface),
146 _ => None,
147 }
148 }
149
150 #[inline]
151 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
152 match prim {
153 1 => Self::Sta,
154 2 => Self::Ap,
155 3 => Self::ApBridged,
156 4 => Self::P2P,
157 5 => Self::NanIface,
158 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
159 }
160 }
161
162 #[inline]
163 pub fn unknown() -> Self {
164 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
165 }
166
167 #[inline]
168 pub const fn into_primitive(self) -> u32 {
169 match self {
170 Self::Sta => 1,
171 Self::Ap => 2,
172 Self::ApBridged => 3,
173 Self::P2P => 4,
174 Self::NanIface => 5,
175 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
176 }
177 }
178
179 #[inline]
180 pub fn is_unknown(&self) -> bool {
181 match self {
182 Self::__SourceBreaking { unknown_ordinal: _ } => true,
183 _ => false,
184 }
185 }
186}
187
188#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
189pub enum StaIfaceCallbackState {
190 Disconnected,
191 IfaceDisabled,
192 Inactive,
193 Scanning,
194 Authenticating,
195 Associating,
196 Associated,
197 FourwayHandshake,
198 GroupHandshake,
199 Completed,
200 #[doc(hidden)]
201 __SourceBreaking {
202 unknown_ordinal: u32,
203 },
204}
205
206#[macro_export]
208macro_rules! StaIfaceCallbackStateUnknown {
209 () => {
210 _
211 };
212}
213
214impl StaIfaceCallbackState {
215 #[inline]
216 pub fn from_primitive(prim: u32) -> Option<Self> {
217 match prim {
218 0 => Some(Self::Disconnected),
219 1 => Some(Self::IfaceDisabled),
220 2 => Some(Self::Inactive),
221 3 => Some(Self::Scanning),
222 4 => Some(Self::Authenticating),
223 5 => Some(Self::Associating),
224 6 => Some(Self::Associated),
225 7 => Some(Self::FourwayHandshake),
226 8 => Some(Self::GroupHandshake),
227 9 => Some(Self::Completed),
228 _ => None,
229 }
230 }
231
232 #[inline]
233 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
234 match prim {
235 0 => Self::Disconnected,
236 1 => Self::IfaceDisabled,
237 2 => Self::Inactive,
238 3 => Self::Scanning,
239 4 => Self::Authenticating,
240 5 => Self::Associating,
241 6 => Self::Associated,
242 7 => Self::FourwayHandshake,
243 8 => Self::GroupHandshake,
244 9 => Self::Completed,
245 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
246 }
247 }
248
249 #[inline]
250 pub fn unknown() -> Self {
251 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
252 }
253
254 #[inline]
255 pub const fn into_primitive(self) -> u32 {
256 match self {
257 Self::Disconnected => 0,
258 Self::IfaceDisabled => 1,
259 Self::Inactive => 2,
260 Self::Scanning => 3,
261 Self::Authenticating => 4,
262 Self::Associating => 5,
263 Self::Associated => 6,
264 Self::FourwayHandshake => 7,
265 Self::GroupHandshake => 8,
266 Self::Completed => 9,
267 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
268 }
269 }
270
271 #[inline]
272 pub fn is_unknown(&self) -> bool {
273 match self {
274 Self::__SourceBreaking { unknown_ordinal: _ } => true,
275 _ => false,
276 }
277 }
278}
279
280#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
281pub enum WifiChipTxPowerScenario {
282 VoiceCall,
283 OnHeadCellOff,
284 OnHeadCellOn,
285 OnBodyCellOff,
286 OnBodyCellOn,
287 #[doc(hidden)]
288 __SourceBreaking {
289 unknown_ordinal: u32,
290 },
291}
292
293#[macro_export]
295macro_rules! WifiChipTxPowerScenarioUnknown {
296 () => {
297 _
298 };
299}
300
301impl WifiChipTxPowerScenario {
302 #[inline]
303 pub fn from_primitive(prim: u32) -> Option<Self> {
304 match prim {
305 0 => Some(Self::VoiceCall),
306 1 => Some(Self::OnHeadCellOff),
307 2 => Some(Self::OnHeadCellOn),
308 3 => Some(Self::OnBodyCellOff),
309 4 => Some(Self::OnBodyCellOn),
310 _ => None,
311 }
312 }
313
314 #[inline]
315 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
316 match prim {
317 0 => Self::VoiceCall,
318 1 => Self::OnHeadCellOff,
319 2 => Self::OnHeadCellOn,
320 3 => Self::OnBodyCellOff,
321 4 => Self::OnBodyCellOn,
322 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
323 }
324 }
325
326 #[inline]
327 pub fn unknown() -> Self {
328 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
329 }
330
331 #[inline]
332 pub const fn into_primitive(self) -> u32 {
333 match self {
334 Self::VoiceCall => 0,
335 Self::OnHeadCellOff => 1,
336 Self::OnHeadCellOn => 2,
337 Self::OnBodyCellOff => 3,
338 Self::OnBodyCellOn => 4,
339 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
340 }
341 }
342
343 #[inline]
344 pub fn is_unknown(&self) -> bool {
345 match self {
346 Self::__SourceBreaking { unknown_ordinal: _ } => true,
347 _ => false,
348 }
349 }
350}
351
352#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
353pub enum WifiLegacyHalStatus {
354 NotSupported,
355 Internal,
356 InvalidArgument,
357 #[doc(hidden)]
358 __SourceBreaking {
359 unknown_ordinal: u32,
360 },
361}
362
363#[macro_export]
365macro_rules! WifiLegacyHalStatusUnknown {
366 () => {
367 _
368 };
369}
370
371impl WifiLegacyHalStatus {
372 #[inline]
373 pub fn from_primitive(prim: u32) -> Option<Self> {
374 match prim {
375 1 => Some(Self::NotSupported),
376 2 => Some(Self::Internal),
377 3 => Some(Self::InvalidArgument),
378 _ => None,
379 }
380 }
381
382 #[inline]
383 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
384 match prim {
385 1 => Self::NotSupported,
386 2 => Self::Internal,
387 3 => Self::InvalidArgument,
388 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
389 }
390 }
391
392 #[inline]
393 pub fn unknown() -> Self {
394 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
395 }
396
397 #[inline]
398 pub const fn into_primitive(self) -> u32 {
399 match self {
400 Self::NotSupported => 1,
401 Self::Internal => 2,
402 Self::InvalidArgument => 3,
403 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
404 }
405 }
406
407 #[inline]
408 pub fn is_unknown(&self) -> bool {
409 match self {
410 Self::__SourceBreaking { unknown_ordinal: _ } => true,
411 _ => false,
412 }
413 }
414}
415
416#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
417pub enum WifiLegacyHalTxPowerScenario {
418 Invalid,
419 Default,
420 VoiceCallLegacy,
421 OnHeadCellOff,
422 OnHeadCellOn,
423 OnBodyCellOff,
424 OnBodyCellOn,
425 OnBodyBt,
426 OnHeadHotspot,
427 OnHeadHotspotMmw,
428 OnBodyCellOnBt,
429 OnBodyHotspot,
430 OnBodyHotspotBt,
431 OnBodyHotspotMmw,
432 OnBodyHotspotBtMmw,
433 OnHeadCellOffUnfolded,
434 OnHeadCellOnUnfolded,
435 OnHeadHotspotUnfolded,
436 OnHeadHotspotMmwUnfolded,
437 OnBodyCellOffUnfolded,
438 OnBodyBtUnfolded,
439 OnBodyCellOnUnfolded,
440 OnBodyCellOnBtUnfolded,
441 OnBodyHotspotUnfolded,
442 OnBodyHotspotBtUnfolded,
443 OnBodyHotspotMmwUnfolded,
444 OnBodyHotspotBtMmwUnfolded,
445 OnBodyRearCamera,
446 OnBodyCellOffUnfoldedCap,
447 OnBodyBtUnfoldedCap,
448 OnBodyCellOnUnfoldedCap,
449 OnBodyCellOnBtUnfoldedCap,
450 OnBodyVideoRecording,
451 #[doc(hidden)]
452 __SourceBreaking {
453 unknown_ordinal: i32,
454 },
455}
456
457#[macro_export]
459macro_rules! WifiLegacyHalTxPowerScenarioUnknown {
460 () => {
461 _
462 };
463}
464
465impl WifiLegacyHalTxPowerScenario {
466 #[inline]
467 pub fn from_primitive(prim: i32) -> Option<Self> {
468 match prim {
469 -2 => Some(Self::Invalid),
470 -1 => Some(Self::Default),
471 0 => Some(Self::VoiceCallLegacy),
472 1 => Some(Self::OnHeadCellOff),
473 2 => Some(Self::OnHeadCellOn),
474 3 => Some(Self::OnBodyCellOff),
475 4 => Some(Self::OnBodyCellOn),
476 5 => Some(Self::OnBodyBt),
477 6 => Some(Self::OnHeadHotspot),
478 7 => Some(Self::OnHeadHotspotMmw),
479 8 => Some(Self::OnBodyCellOnBt),
480 9 => Some(Self::OnBodyHotspot),
481 10 => Some(Self::OnBodyHotspotBt),
482 11 => Some(Self::OnBodyHotspotMmw),
483 12 => Some(Self::OnBodyHotspotBtMmw),
484 13 => Some(Self::OnHeadCellOffUnfolded),
485 14 => Some(Self::OnHeadCellOnUnfolded),
486 15 => Some(Self::OnHeadHotspotUnfolded),
487 16 => Some(Self::OnHeadHotspotMmwUnfolded),
488 17 => Some(Self::OnBodyCellOffUnfolded),
489 18 => Some(Self::OnBodyBtUnfolded),
490 19 => Some(Self::OnBodyCellOnUnfolded),
491 20 => Some(Self::OnBodyCellOnBtUnfolded),
492 21 => Some(Self::OnBodyHotspotUnfolded),
493 22 => Some(Self::OnBodyHotspotBtUnfolded),
494 23 => Some(Self::OnBodyHotspotMmwUnfolded),
495 24 => Some(Self::OnBodyHotspotBtMmwUnfolded),
496 25 => Some(Self::OnBodyRearCamera),
497 26 => Some(Self::OnBodyCellOffUnfoldedCap),
498 27 => Some(Self::OnBodyBtUnfoldedCap),
499 28 => Some(Self::OnBodyCellOnUnfoldedCap),
500 29 => Some(Self::OnBodyCellOnBtUnfoldedCap),
501 30 => Some(Self::OnBodyVideoRecording),
502 _ => None,
503 }
504 }
505
506 #[inline]
507 pub fn from_primitive_allow_unknown(prim: i32) -> Self {
508 match prim {
509 -2 => Self::Invalid,
510 -1 => Self::Default,
511 0 => Self::VoiceCallLegacy,
512 1 => Self::OnHeadCellOff,
513 2 => Self::OnHeadCellOn,
514 3 => Self::OnBodyCellOff,
515 4 => Self::OnBodyCellOn,
516 5 => Self::OnBodyBt,
517 6 => Self::OnHeadHotspot,
518 7 => Self::OnHeadHotspotMmw,
519 8 => Self::OnBodyCellOnBt,
520 9 => Self::OnBodyHotspot,
521 10 => Self::OnBodyHotspotBt,
522 11 => Self::OnBodyHotspotMmw,
523 12 => Self::OnBodyHotspotBtMmw,
524 13 => Self::OnHeadCellOffUnfolded,
525 14 => Self::OnHeadCellOnUnfolded,
526 15 => Self::OnHeadHotspotUnfolded,
527 16 => Self::OnHeadHotspotMmwUnfolded,
528 17 => Self::OnBodyCellOffUnfolded,
529 18 => Self::OnBodyBtUnfolded,
530 19 => Self::OnBodyCellOnUnfolded,
531 20 => Self::OnBodyCellOnBtUnfolded,
532 21 => Self::OnBodyHotspotUnfolded,
533 22 => Self::OnBodyHotspotBtUnfolded,
534 23 => Self::OnBodyHotspotMmwUnfolded,
535 24 => Self::OnBodyHotspotBtMmwUnfolded,
536 25 => Self::OnBodyRearCamera,
537 26 => Self::OnBodyCellOffUnfoldedCap,
538 27 => Self::OnBodyBtUnfoldedCap,
539 28 => Self::OnBodyCellOnUnfoldedCap,
540 29 => Self::OnBodyCellOnBtUnfoldedCap,
541 30 => Self::OnBodyVideoRecording,
542 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
543 }
544 }
545
546 #[inline]
547 pub fn unknown() -> Self {
548 Self::__SourceBreaking { unknown_ordinal: 0x7fffffff }
549 }
550
551 #[inline]
552 pub const fn into_primitive(self) -> i32 {
553 match self {
554 Self::Invalid => -2,
555 Self::Default => -1,
556 Self::VoiceCallLegacy => 0,
557 Self::OnHeadCellOff => 1,
558 Self::OnHeadCellOn => 2,
559 Self::OnBodyCellOff => 3,
560 Self::OnBodyCellOn => 4,
561 Self::OnBodyBt => 5,
562 Self::OnHeadHotspot => 6,
563 Self::OnHeadHotspotMmw => 7,
564 Self::OnBodyCellOnBt => 8,
565 Self::OnBodyHotspot => 9,
566 Self::OnBodyHotspotBt => 10,
567 Self::OnBodyHotspotMmw => 11,
568 Self::OnBodyHotspotBtMmw => 12,
569 Self::OnHeadCellOffUnfolded => 13,
570 Self::OnHeadCellOnUnfolded => 14,
571 Self::OnHeadHotspotUnfolded => 15,
572 Self::OnHeadHotspotMmwUnfolded => 16,
573 Self::OnBodyCellOffUnfolded => 17,
574 Self::OnBodyBtUnfolded => 18,
575 Self::OnBodyCellOnUnfolded => 19,
576 Self::OnBodyCellOnBtUnfolded => 20,
577 Self::OnBodyHotspotUnfolded => 21,
578 Self::OnBodyHotspotBtUnfolded => 22,
579 Self::OnBodyHotspotMmwUnfolded => 23,
580 Self::OnBodyHotspotBtMmwUnfolded => 24,
581 Self::OnBodyRearCamera => 25,
582 Self::OnBodyCellOffUnfoldedCap => 26,
583 Self::OnBodyBtUnfoldedCap => 27,
584 Self::OnBodyCellOnUnfoldedCap => 28,
585 Self::OnBodyCellOnBtUnfoldedCap => 29,
586 Self::OnBodyVideoRecording => 30,
587 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
588 }
589 }
590
591 #[inline]
592 pub fn is_unknown(&self) -> bool {
593 match self {
594 Self::__SourceBreaking { unknown_ordinal: _ } => true,
595 _ => false,
596 }
597 }
598}
599
600#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
601pub enum WlanixError {
602 InternalError,
603 InvalidArgs,
604 #[doc(hidden)]
605 __SourceBreaking {
606 unknown_ordinal: u32,
607 },
608}
609
610#[macro_export]
612macro_rules! WlanixErrorUnknown {
613 () => {
614 _
615 };
616}
617
618impl WlanixError {
619 #[inline]
620 pub fn from_primitive(prim: u32) -> Option<Self> {
621 match prim {
622 1 => Some(Self::InternalError),
623 2 => Some(Self::InvalidArgs),
624 _ => None,
625 }
626 }
627
628 #[inline]
629 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
630 match prim {
631 1 => Self::InternalError,
632 2 => Self::InvalidArgs,
633 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
634 }
635 }
636
637 #[inline]
638 pub fn unknown() -> Self {
639 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
640 }
641
642 #[inline]
643 pub const fn into_primitive(self) -> u32 {
644 match self {
645 Self::InternalError => 1,
646 Self::InvalidArgs => 2,
647 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
648 }
649 }
650
651 #[inline]
652 pub fn is_unknown(&self) -> bool {
653 match self {
654 Self::__SourceBreaking { unknown_ordinal: _ } => true,
655 _ => false,
656 }
657 }
658}
659
660#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
661pub struct Ack;
662
663impl fidl::Persistable for Ack {}
664
665#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
666pub struct Done;
667
668impl fidl::Persistable for Done {}
669
670#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
671#[repr(C)]
672pub struct Error {
673 pub error_code: i32,
674}
675
676impl fidl::Persistable for Error {}
677
678#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
679pub struct Message {
680 pub payload: Vec<u8>,
681}
682
683impl fidl::Persistable for Message {}
684
685#[derive(Clone, Debug, PartialEq)]
686pub struct Nl80211MessageArray {
687 pub messages: Vec<Nl80211Message>,
688}
689
690impl fidl::Persistable for Nl80211MessageArray {}
691
692#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
693#[repr(C)]
694pub struct SupplicantStaIfaceGetFactoryMacAddressResponse {
695 pub mac_addr: [u8; 6],
696}
697
698impl fidl::Persistable for SupplicantStaIfaceGetFactoryMacAddressResponse {}
699
700#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
701pub struct WifiChipSelectTxPowerScenarioRequest {
702 pub scenario: WifiChipTxPowerScenario,
703}
704
705impl fidl::Persistable for WifiChipSelectTxPowerScenarioRequest {}
706
707#[derive(Clone, Debug, Default, PartialEq)]
708pub struct ChipConcurrencyCombination {
709 pub limits: Option<Vec<ChipConcurrencyCombinationLimit>>,
710 #[doc(hidden)]
711 pub __source_breaking: fidl::marker::SourceBreaking,
712}
713
714impl fidl::Persistable for ChipConcurrencyCombination {}
715
716#[derive(Clone, Debug, Default, PartialEq)]
717pub struct ChipConcurrencyCombinationLimit {
718 pub types: Option<Vec<IfaceConcurrencyType>>,
719 pub max_ifaces: Option<u32>,
720 #[doc(hidden)]
721 pub __source_breaking: fidl::marker::SourceBreaking,
722}
723
724impl fidl::Persistable for ChipConcurrencyCombinationLimit {}
725
726#[derive(Clone, Debug, Default, PartialEq)]
727pub struct ChipMode {
728 pub id: Option<u32>,
729 pub available_combinations: Option<Vec<ChipConcurrencyCombination>>,
730 #[doc(hidden)]
731 pub __source_breaking: fidl::marker::SourceBreaking,
732}
733
734impl fidl::Persistable for ChipMode {}
735
736#[derive(Clone, Debug, Default, PartialEq)]
737pub struct LinkLayerStats {
738 pub wme: Option<fidl_fuchsia_wlan_stats_common::WmePacketStats>,
739 pub rssi_dbm: Option<i32>,
740 #[doc(hidden)]
741 pub __source_breaking: fidl::marker::SourceBreaking,
742}
743
744impl fidl::Persistable for LinkLayerStats {}
745
746#[derive(Clone, Debug, Default, PartialEq)]
747pub struct SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
748 pub ssid: Option<Vec<u8>>,
749 pub bssid: Option<[u8; 6]>,
750 pub status_code: Option<fidl_fuchsia_wlan_ieee80211_common::StatusCode>,
751 pub timed_out: Option<bool>,
752 #[doc(hidden)]
753 pub __source_breaking: fidl::marker::SourceBreaking,
754}
755
756impl fidl::Persistable for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {}
757
758#[derive(Clone, Debug, Default, PartialEq)]
759pub struct SupplicantStaIfaceCallbackOnDisconnectedRequest {
760 pub bssid: Option<[u8; 6]>,
761 pub locally_generated: Option<bool>,
762 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211_common::ReasonCode>,
763 #[doc(hidden)]
764 pub __source_breaking: fidl::marker::SourceBreaking,
765}
766
767impl fidl::Persistable for SupplicantStaIfaceCallbackOnDisconnectedRequest {}
768
769#[derive(Clone, Debug, Default, PartialEq)]
770pub struct SupplicantStaIfaceCallbackOnStateChangedRequest {
771 pub new_state: Option<StaIfaceCallbackState>,
772 pub bssid: Option<[u8; 6]>,
773 pub id: Option<u32>,
774 pub ssid: Option<Vec<u8>>,
775 #[doc(hidden)]
776 pub __source_breaking: fidl::marker::SourceBreaking,
777}
778
779impl fidl::Persistable for SupplicantStaIfaceCallbackOnStateChangedRequest {}
780
781#[derive(Clone, Debug, Default, PartialEq)]
782pub struct SupplicantStaIfaceSetBtCoexistenceModeRequest {
783 pub mode: Option<BtCoexistenceMode>,
784 #[doc(hidden)]
785 pub __source_breaking: fidl::marker::SourceBreaking,
786}
787
788impl fidl::Persistable for SupplicantStaIfaceSetBtCoexistenceModeRequest {}
789
790#[derive(Clone, Debug, Default, PartialEq)]
791pub struct SupplicantStaIfaceGetMacAddressResponse {
792 pub mac_addr: Option<[u8; 6]>,
793 #[doc(hidden)]
794 pub __source_breaking: fidl::marker::SourceBreaking,
795}
796
797impl fidl::Persistable for SupplicantStaIfaceGetMacAddressResponse {}
798
799#[derive(Clone, Debug, Default, PartialEq)]
800pub struct SupplicantStaIfaceGetSignalPollResultsResponse {
801 pub current_rssi_dbm: Option<i32>,
802 pub tx_bitrate_mbps: Option<u32>,
803 pub rx_bitrate_mbps: Option<u32>,
804 pub frequency_mhz: Option<u32>,
805 #[doc(hidden)]
806 pub __source_breaking: fidl::marker::SourceBreaking,
807}
808
809impl fidl::Persistable for SupplicantStaIfaceGetSignalPollResultsResponse {}
810
811#[derive(Clone, Debug, Default, PartialEq)]
812pub struct SupplicantStaNetworkSetBssidRequest {
813 pub bssid: Option<[u8; 6]>,
814 #[doc(hidden)]
815 pub __source_breaking: fidl::marker::SourceBreaking,
816}
817
818impl fidl::Persistable for SupplicantStaNetworkSetBssidRequest {}
819
820#[derive(Clone, Debug, Default, PartialEq)]
821pub struct SupplicantStaNetworkSetKeyMgmtRequest {
822 pub key_mgmt_mask: Option<KeyMgmtMask>,
823 #[doc(hidden)]
824 pub __source_breaking: fidl::marker::SourceBreaking,
825}
826
827impl fidl::Persistable for SupplicantStaNetworkSetKeyMgmtRequest {}
828
829#[derive(Clone, Debug, Default, PartialEq)]
830pub struct SupplicantStaNetworkSetPskPassphraseRequest {
831 pub passphrase: Option<Vec<u8>>,
832 #[doc(hidden)]
833 pub __source_breaking: fidl::marker::SourceBreaking,
834}
835
836impl fidl::Persistable for SupplicantStaNetworkSetPskPassphraseRequest {}
837
838#[derive(Clone, Debug, Default, PartialEq)]
839pub struct SupplicantStaNetworkSetSaePasswordRequest {
840 pub password: Option<Vec<u8>>,
841 #[doc(hidden)]
842 pub __source_breaking: fidl::marker::SourceBreaking,
843}
844
845impl fidl::Persistable for SupplicantStaNetworkSetSaePasswordRequest {}
846
847#[derive(Clone, Debug, Default, PartialEq)]
848pub struct SupplicantStaNetworkSetSsidRequest {
849 pub ssid: Option<Vec<u8>>,
850 #[doc(hidden)]
851 pub __source_breaking: fidl::marker::SourceBreaking,
852}
853
854impl fidl::Persistable for SupplicantStaNetworkSetSsidRequest {}
855
856#[derive(Clone, Debug, Default, PartialEq)]
857pub struct SupplicantStaNetworkSetWepKeyRequest {
858 pub key: Option<Vec<u8>>,
859 pub key_idx: Option<i32>,
860 #[doc(hidden)]
861 pub __source_breaking: fidl::marker::SourceBreaking,
862}
863
864impl fidl::Persistable for SupplicantStaNetworkSetWepKeyRequest {}
865
866#[derive(Clone, Debug, Default, PartialEq)]
867pub struct SupplicantStaNetworkSetWepTxKeyIdxRequest {
868 pub key_idx: Option<i32>,
869 #[doc(hidden)]
870 pub __source_breaking: fidl::marker::SourceBreaking,
871}
872
873impl fidl::Persistable for SupplicantStaNetworkSetWepTxKeyIdxRequest {}
874
875#[derive(Clone, Debug, Default, PartialEq)]
876pub struct WifiChipGetAvailableModesResponse {
877 pub chip_modes: Option<Vec<ChipMode>>,
878 #[doc(hidden)]
879 pub __source_breaking: fidl::marker::SourceBreaking,
880}
881
882impl fidl::Persistable for WifiChipGetAvailableModesResponse {}
883
884#[derive(Clone, Debug, Default, PartialEq)]
885pub struct WifiChipGetCapabilitiesResponse {
886 pub capabilities_mask: Option<u32>,
887 #[doc(hidden)]
888 pub __source_breaking: fidl::marker::SourceBreaking,
889}
890
891impl fidl::Persistable for WifiChipGetCapabilitiesResponse {}
892
893#[derive(Clone, Debug, Default, PartialEq)]
894pub struct WifiChipGetIdResponse {
895 pub id: Option<u32>,
896 #[doc(hidden)]
897 pub __source_breaking: fidl::marker::SourceBreaking,
898}
899
900impl fidl::Persistable for WifiChipGetIdResponse {}
901
902#[derive(Clone, Debug, Default, PartialEq)]
903pub struct WifiChipGetModeResponse {
904 pub mode: Option<u32>,
905 #[doc(hidden)]
906 pub __source_breaking: fidl::marker::SourceBreaking,
907}
908
909impl fidl::Persistable for WifiChipGetModeResponse {}
910
911#[derive(Clone, Debug, Default, PartialEq)]
912pub struct WifiChipGetStaIfaceNamesResponse {
913 pub iface_names: Option<Vec<String>>,
914 #[doc(hidden)]
915 pub __source_breaking: fidl::marker::SourceBreaking,
916}
917
918impl fidl::Persistable for WifiChipGetStaIfaceNamesResponse {}
919
920#[derive(Clone, Debug, Default, PartialEq)]
921pub struct WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest {
922 pub cmd_id: Option<i32>,
923 pub curr_bssid: Option<[u8; 6]>,
924 pub curr_rssi_dbm: Option<i8>,
925 #[doc(hidden)]
926 pub __source_breaking: fidl::marker::SourceBreaking,
927}
928
929impl fidl::Persistable for WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest {}
930
931#[derive(Clone, Debug, Default, PartialEq)]
932pub struct WifiStaIfaceInstallApfPacketFilterRequest {
933 pub program: Option<Vec<u8>>,
934 #[doc(hidden)]
935 pub __source_breaking: fidl::marker::SourceBreaking,
936}
937
938impl fidl::Persistable for WifiStaIfaceInstallApfPacketFilterRequest {}
939
940#[derive(Clone, Debug, Default, PartialEq)]
941pub struct WifiStaIfaceStartRssiMonitoringRequest {
942 pub cmd_id: Option<i32>,
943 pub max_rssi_dbm: Option<i8>,
944 pub min_rssi_dbm: Option<i8>,
945 #[doc(hidden)]
946 pub __source_breaking: fidl::marker::SourceBreaking,
947}
948
949impl fidl::Persistable for WifiStaIfaceStartRssiMonitoringRequest {}
950
951#[derive(Clone, Debug, Default, PartialEq)]
952pub struct WifiStaIfaceStopRssiMonitoringRequest {
953 pub cmd_id: Option<i32>,
954 #[doc(hidden)]
955 pub __source_breaking: fidl::marker::SourceBreaking,
956}
957
958impl fidl::Persistable for WifiStaIfaceStopRssiMonitoringRequest {}
959
960#[derive(Clone, Debug, Default, PartialEq)]
961pub struct WifiStaIfaceGetApfPacketFilterSupportResponse {
962 pub version: Option<i32>,
963 pub max_filter_length: Option<i32>,
964 #[doc(hidden)]
965 pub __source_breaking: fidl::marker::SourceBreaking,
966}
967
968impl fidl::Persistable for WifiStaIfaceGetApfPacketFilterSupportResponse {}
969
970#[derive(Clone, Debug, Default, PartialEq)]
971pub struct WifiStaIfaceGetFeatureSetResponse {
972 pub rssi_monitor_supported: Option<bool>,
973 #[doc(hidden)]
974 pub __source_breaking: fidl::marker::SourceBreaking,
975}
976
977impl fidl::Persistable for WifiStaIfaceGetFeatureSetResponse {}
978
979#[derive(Clone, Debug, Default, PartialEq)]
980pub struct WifiStaIfaceGetLinkLayerStatsResponse {
981 pub stats: Option<LinkLayerStats>,
982 #[doc(hidden)]
983 pub __source_breaking: fidl::marker::SourceBreaking,
984}
985
986impl fidl::Persistable for WifiStaIfaceGetLinkLayerStatsResponse {}
987
988#[derive(Clone, Debug, Default, PartialEq)]
989pub struct WifiStaIfaceGetNameResponse {
990 pub iface_name: Option<String>,
991 #[doc(hidden)]
992 pub __source_breaking: fidl::marker::SourceBreaking,
993}
994
995impl fidl::Persistable for WifiStaIfaceGetNameResponse {}
996
997#[derive(Clone, Debug, Default, PartialEq)]
998pub struct WifiStaIfaceReadApfPacketFilterDataResponse {
999 pub memory: Option<Vec<u8>>,
1000 #[doc(hidden)]
1001 pub __source_breaking: fidl::marker::SourceBreaking,
1002}
1003
1004impl fidl::Persistable for WifiStaIfaceReadApfPacketFilterDataResponse {}
1005
1006#[derive(Clone, Debug, Default, PartialEq)]
1007pub struct WifiGetChipIdsResponse {
1008 pub chip_ids: Option<Vec<u32>>,
1009 #[doc(hidden)]
1010 pub __source_breaking: fidl::marker::SourceBreaking,
1011}
1012
1013impl fidl::Persistable for WifiGetChipIdsResponse {}
1014
1015#[derive(Clone, Debug, Default, PartialEq)]
1016pub struct WifiGetStateResponse {
1017 pub is_started: Option<bool>,
1018 #[doc(hidden)]
1019 pub __source_breaking: fidl::marker::SourceBreaking,
1020}
1021
1022impl fidl::Persistable for WifiGetStateResponse {}
1023
1024#[derive(Clone, Debug)]
1025pub enum Nl80211Message {
1026 Done(Done),
1027 Error(Error),
1028 Ack(Ack),
1029 Message(Message),
1030 #[doc(hidden)]
1031 __SourceBreaking {
1032 unknown_ordinal: u64,
1033 },
1034}
1035
1036#[macro_export]
1038macro_rules! Nl80211MessageUnknown {
1039 () => {
1040 _
1041 };
1042}
1043
1044impl PartialEq for Nl80211Message {
1046 fn eq(&self, other: &Self) -> bool {
1047 match (self, other) {
1048 (Self::Done(x), Self::Done(y)) => *x == *y,
1049 (Self::Error(x), Self::Error(y)) => *x == *y,
1050 (Self::Ack(x), Self::Ack(y)) => *x == *y,
1051 (Self::Message(x), Self::Message(y)) => *x == *y,
1052 _ => false,
1053 }
1054 }
1055}
1056
1057impl Nl80211Message {
1058 #[inline]
1059 pub fn ordinal(&self) -> u64 {
1060 match *self {
1061 Self::Done(_) => 1,
1062 Self::Error(_) => 2,
1063 Self::Ack(_) => 3,
1064 Self::Message(_) => 4,
1065 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1066 }
1067 }
1068
1069 #[inline]
1070 pub fn unknown_variant_for_testing() -> Self {
1071 Self::__SourceBreaking { unknown_ordinal: 0 }
1072 }
1073
1074 #[inline]
1075 pub fn is_unknown(&self) -> bool {
1076 match self {
1077 Self::__SourceBreaking { .. } => true,
1078 _ => false,
1079 }
1080 }
1081}
1082
1083impl fidl::Persistable for Nl80211Message {}
1084
1085pub mod nl80211_ordinals {
1086 pub const GET_MULTICAST: u64 = 0x58b73dd089681dc2;
1087 pub const MESSAGE: u64 = 0x6336259e15bb3795;
1088 pub const MESSAGE_V2: u64 = 0x4626796aba1e2987;
1089}
1090
1091pub mod nl80211_multicast_ordinals {
1092 pub const MESSAGE: u64 = 0x4cc9241f302f16c0;
1093}
1094
1095pub mod supplicant_ordinals {
1096 pub const ADD_STA_INTERFACE: u64 = 0x73194b2afe9b367e;
1097 pub const REMOVE_INTERFACE: u64 = 0x7f83e5b75b27d242;
1098}
1099
1100pub mod supplicant_sta_iface_ordinals {
1101 pub const REGISTER_CALLBACK: u64 = 0x1be680e863a8e71;
1102 pub const ADD_NETWORK: u64 = 0xa77cf60628766dc;
1103 pub const DISCONNECT: u64 = 0x52a1d38e0b4871fa;
1104 pub const GET_MAC_ADDRESS: u64 = 0x60591d204a3f537f;
1105 pub const GET_FACTORY_MAC_ADDRESS: u64 = 0x58857179ad71e624;
1106 pub const SET_BT_COEXISTENCE_MODE: u64 = 0x14567ff593a9b154;
1107 pub const SET_POWER_SAVE: u64 = 0x5a04c29320085298;
1108 pub const SET_SUSPEND_MODE_ENABLED: u64 = 0xaf10de85bb7023a;
1109 pub const SET_STA_COUNTRY_CODE: u64 = 0x977e22f9b79b26e;
1110 pub const GET_SIGNAL_POLL_RESULTS: u64 = 0x783512ea6925df61;
1111}
1112
1113pub mod supplicant_sta_iface_callback_ordinals {
1114 pub const ON_STATE_CHANGED: u64 = 0x27e086d26c49eb6c;
1115 pub const ON_DISCONNECTED: u64 = 0x69546475f4dee0cc;
1116 pub const ON_ASSOCIATION_REJECTED: u64 = 0x7ef3961518bed988;
1117}
1118
1119pub mod supplicant_sta_network_ordinals {
1120 pub const SET_BSSID: u64 = 0x10a91d044ee6374d;
1121 pub const CLEAR_BSSID: u64 = 0xbc7ad82f541b267;
1122 pub const SET_SSID: u64 = 0x6b598a7a802e3083;
1123 pub const SET_KEY_MGMT: u64 = 0xc67082685b75a5c;
1124 pub const SET_PSK_PASSPHRASE: u64 = 0xf6d438225979307;
1125 pub const SET_SAE_PASSWORD: u64 = 0x2982737e196747b8;
1126 pub const SET_WEP_KEY: u64 = 0x22a7e25ec81f2dee;
1127 pub const SET_WEP_TX_KEY_IDX: u64 = 0x4f25576c21fcb8cb;
1128 pub const SELECT: u64 = 0x354bc361a0c77b45;
1129}
1130
1131pub mod wifi_ordinals {
1132 pub const REGISTER_EVENT_CALLBACK: u64 = 0x12abbdea948dd67b;
1133 pub const START: u64 = 0x427030e4dc6ec07a;
1134 pub const STOP: u64 = 0x67c9bdf61b2888d;
1135 pub const GET_STATE: u64 = 0x4616114a937d1fb0;
1136 pub const GET_CHIP_IDS: u64 = 0x2fb4f92351d802b5;
1137 pub const GET_CHIP: u64 = 0xef95d8246612540;
1138}
1139
1140pub mod wifi_chip_ordinals {
1141 pub const CREATE_STA_IFACE: u64 = 0x6fb2d5892face7af;
1142 pub const GET_STA_IFACE_NAMES: u64 = 0x349257482df6a000;
1143 pub const GET_STA_IFACE: u64 = 0x6d9704eeb36f28a2;
1144 pub const REMOVE_STA_IFACE: u64 = 0x4cd8eee466f8b04c;
1145 pub const SET_COUNTRY_CODE: u64 = 0x1dfe372d1d61a490;
1146 pub const GET_AVAILABLE_MODES: u64 = 0x1701095b452a3acd;
1147 pub const GET_ID: u64 = 0x37d5197325bb3370;
1148 pub const GET_MODE: u64 = 0x4d209e0f3ac84d6f;
1149 pub const GET_CAPABILITIES: u64 = 0x1b253f396dcaa2e0;
1150 pub const TRIGGER_SUBSYSTEM_RESTART: u64 = 0x42ffcae5aad196f9;
1151 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x19287ab52ea72281;
1152 pub const RESET_TX_POWER_SCENARIO: u64 = 0x46408a2fb1eb9d09;
1153}
1154
1155pub mod wifi_event_callback_ordinals {
1156 pub const ON_START: u64 = 0x61189ff44f9d35f3;
1157 pub const ON_STOP: u64 = 0x58b697bcd475e0f9;
1158 pub const ON_SUBSYSTEM_RESTART: u64 = 0x69dfee4d3475db21;
1159}
1160
1161pub mod wifi_legacy_hal_ordinals {
1162 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x49f42620e0a3caf9;
1163 pub const RESET_TX_POWER_SCENARIO: u64 = 0x6c0f8e9203167d8e;
1164}
1165
1166pub mod wifi_sta_iface_ordinals {
1167 pub const REGISTER_EVENT_CALLBACK: u64 = 0x33702cb978821342;
1168 pub const GET_NAME: u64 = 0x5c150b91c80c5789;
1169 pub const SET_SCAN_ONLY_MODE: u64 = 0x22550328583bf0e3;
1170 pub const SET_MAC_ADDRESS: u64 = 0x39c4f355079421b9;
1171 pub const GET_APF_PACKET_FILTER_SUPPORT: u64 = 0x205c538d31d76c8c;
1172 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x6306fbfdb65631ba;
1173 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x4f39e558ddbca39;
1174 pub const GET_LINK_LAYER_STATS: u64 = 0x6c38ee946b9048cd;
1175 pub const GET_FEATURE_SET: u64 = 0x104739199b8e571b;
1176 pub const START_RSSI_MONITORING: u64 = 0x1b39887f5baa2cd7;
1177 pub const STOP_RSSI_MONITORING: u64 = 0x642f2f9517a08f8d;
1178}
1179
1180pub mod wifi_sta_iface_event_callback_ordinals {
1181 pub const ON_RSSI_THRESHOLD_BREACHED: u64 = 0x75c89ec9e4333f0;
1182}
1183
1184pub mod wlanix_ordinals {
1185 pub const GET_WIFI: u64 = 0x142511f44b2c338c;
1186 pub const GET_SUPPLICANT: u64 = 0x55554b37c4021d3d;
1187 pub const GET_NL80211: u64 = 0x48028a25bd855ef9;
1188 pub const GET_WIFI_LEGACY_HAL: u64 = 0x7302d9bb3b8d1edc;
1189}
1190
1191mod internal {
1192 use super::*;
1193 unsafe impl fidl::encoding::TypeMarker for KeyMgmtMask {
1194 type Owned = Self;
1195
1196 #[inline(always)]
1197 fn inline_align(_context: fidl::encoding::Context) -> usize {
1198 4
1199 }
1200
1201 #[inline(always)]
1202 fn inline_size(_context: fidl::encoding::Context) -> usize {
1203 4
1204 }
1205 }
1206
1207 impl fidl::encoding::ValueTypeMarker for KeyMgmtMask {
1208 type Borrowed<'a> = Self;
1209 #[inline(always)]
1210 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1211 *value
1212 }
1213 }
1214
1215 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for KeyMgmtMask {
1216 #[inline]
1217 unsafe fn encode(
1218 self,
1219 encoder: &mut fidl::encoding::Encoder<'_, D>,
1220 offset: usize,
1221 _depth: fidl::encoding::Depth,
1222 ) -> fidl::Result<()> {
1223 encoder.debug_check_bounds::<Self>(offset);
1224 encoder.write_num(self.bits(), offset);
1225 Ok(())
1226 }
1227 }
1228
1229 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for KeyMgmtMask {
1230 #[inline(always)]
1231 fn new_empty() -> Self {
1232 Self::empty()
1233 }
1234
1235 #[inline]
1236 unsafe fn decode(
1237 &mut self,
1238 decoder: &mut fidl::encoding::Decoder<'_, D>,
1239 offset: usize,
1240 _depth: fidl::encoding::Depth,
1241 ) -> fidl::Result<()> {
1242 decoder.debug_check_bounds::<Self>(offset);
1243 let prim = decoder.read_num::<u32>(offset);
1244 *self = Self::from_bits_allow_unknown(prim);
1245 Ok(())
1246 }
1247 }
1248 unsafe impl fidl::encoding::TypeMarker for BtCoexistenceMode {
1249 type Owned = Self;
1250
1251 #[inline(always)]
1252 fn inline_align(_context: fidl::encoding::Context) -> usize {
1253 std::mem::align_of::<u32>()
1254 }
1255
1256 #[inline(always)]
1257 fn inline_size(_context: fidl::encoding::Context) -> usize {
1258 std::mem::size_of::<u32>()
1259 }
1260
1261 #[inline(always)]
1262 fn encode_is_copy() -> bool {
1263 false
1264 }
1265
1266 #[inline(always)]
1267 fn decode_is_copy() -> bool {
1268 false
1269 }
1270 }
1271
1272 impl fidl::encoding::ValueTypeMarker for BtCoexistenceMode {
1273 type Borrowed<'a> = Self;
1274 #[inline(always)]
1275 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1276 *value
1277 }
1278 }
1279
1280 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1281 for BtCoexistenceMode
1282 {
1283 #[inline]
1284 unsafe fn encode(
1285 self,
1286 encoder: &mut fidl::encoding::Encoder<'_, D>,
1287 offset: usize,
1288 _depth: fidl::encoding::Depth,
1289 ) -> fidl::Result<()> {
1290 encoder.debug_check_bounds::<Self>(offset);
1291 encoder.write_num(self.into_primitive(), offset);
1292 Ok(())
1293 }
1294 }
1295
1296 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BtCoexistenceMode {
1297 #[inline(always)]
1298 fn new_empty() -> Self {
1299 Self::unknown()
1300 }
1301
1302 #[inline]
1303 unsafe fn decode(
1304 &mut self,
1305 decoder: &mut fidl::encoding::Decoder<'_, D>,
1306 offset: usize,
1307 _depth: fidl::encoding::Depth,
1308 ) -> fidl::Result<()> {
1309 decoder.debug_check_bounds::<Self>(offset);
1310 let prim = decoder.read_num::<u32>(offset);
1311
1312 *self = Self::from_primitive_allow_unknown(prim);
1313 Ok(())
1314 }
1315 }
1316 unsafe impl fidl::encoding::TypeMarker for IfaceConcurrencyType {
1317 type Owned = Self;
1318
1319 #[inline(always)]
1320 fn inline_align(_context: fidl::encoding::Context) -> usize {
1321 std::mem::align_of::<u32>()
1322 }
1323
1324 #[inline(always)]
1325 fn inline_size(_context: fidl::encoding::Context) -> usize {
1326 std::mem::size_of::<u32>()
1327 }
1328
1329 #[inline(always)]
1330 fn encode_is_copy() -> bool {
1331 false
1332 }
1333
1334 #[inline(always)]
1335 fn decode_is_copy() -> bool {
1336 false
1337 }
1338 }
1339
1340 impl fidl::encoding::ValueTypeMarker for IfaceConcurrencyType {
1341 type Borrowed<'a> = Self;
1342 #[inline(always)]
1343 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1344 *value
1345 }
1346 }
1347
1348 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1349 for IfaceConcurrencyType
1350 {
1351 #[inline]
1352 unsafe fn encode(
1353 self,
1354 encoder: &mut fidl::encoding::Encoder<'_, D>,
1355 offset: usize,
1356 _depth: fidl::encoding::Depth,
1357 ) -> fidl::Result<()> {
1358 encoder.debug_check_bounds::<Self>(offset);
1359 encoder.write_num(self.into_primitive(), offset);
1360 Ok(())
1361 }
1362 }
1363
1364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IfaceConcurrencyType {
1365 #[inline(always)]
1366 fn new_empty() -> Self {
1367 Self::unknown()
1368 }
1369
1370 #[inline]
1371 unsafe fn decode(
1372 &mut self,
1373 decoder: &mut fidl::encoding::Decoder<'_, D>,
1374 offset: usize,
1375 _depth: fidl::encoding::Depth,
1376 ) -> fidl::Result<()> {
1377 decoder.debug_check_bounds::<Self>(offset);
1378 let prim = decoder.read_num::<u32>(offset);
1379
1380 *self = Self::from_primitive_allow_unknown(prim);
1381 Ok(())
1382 }
1383 }
1384 unsafe impl fidl::encoding::TypeMarker for StaIfaceCallbackState {
1385 type Owned = Self;
1386
1387 #[inline(always)]
1388 fn inline_align(_context: fidl::encoding::Context) -> usize {
1389 std::mem::align_of::<u32>()
1390 }
1391
1392 #[inline(always)]
1393 fn inline_size(_context: fidl::encoding::Context) -> usize {
1394 std::mem::size_of::<u32>()
1395 }
1396
1397 #[inline(always)]
1398 fn encode_is_copy() -> bool {
1399 false
1400 }
1401
1402 #[inline(always)]
1403 fn decode_is_copy() -> bool {
1404 false
1405 }
1406 }
1407
1408 impl fidl::encoding::ValueTypeMarker for StaIfaceCallbackState {
1409 type Borrowed<'a> = Self;
1410 #[inline(always)]
1411 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1412 *value
1413 }
1414 }
1415
1416 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1417 for StaIfaceCallbackState
1418 {
1419 #[inline]
1420 unsafe fn encode(
1421 self,
1422 encoder: &mut fidl::encoding::Encoder<'_, D>,
1423 offset: usize,
1424 _depth: fidl::encoding::Depth,
1425 ) -> fidl::Result<()> {
1426 encoder.debug_check_bounds::<Self>(offset);
1427 encoder.write_num(self.into_primitive(), offset);
1428 Ok(())
1429 }
1430 }
1431
1432 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StaIfaceCallbackState {
1433 #[inline(always)]
1434 fn new_empty() -> Self {
1435 Self::unknown()
1436 }
1437
1438 #[inline]
1439 unsafe fn decode(
1440 &mut self,
1441 decoder: &mut fidl::encoding::Decoder<'_, D>,
1442 offset: usize,
1443 _depth: fidl::encoding::Depth,
1444 ) -> fidl::Result<()> {
1445 decoder.debug_check_bounds::<Self>(offset);
1446 let prim = decoder.read_num::<u32>(offset);
1447
1448 *self = Self::from_primitive_allow_unknown(prim);
1449 Ok(())
1450 }
1451 }
1452 unsafe impl fidl::encoding::TypeMarker for WifiChipTxPowerScenario {
1453 type Owned = Self;
1454
1455 #[inline(always)]
1456 fn inline_align(_context: fidl::encoding::Context) -> usize {
1457 std::mem::align_of::<u32>()
1458 }
1459
1460 #[inline(always)]
1461 fn inline_size(_context: fidl::encoding::Context) -> usize {
1462 std::mem::size_of::<u32>()
1463 }
1464
1465 #[inline(always)]
1466 fn encode_is_copy() -> bool {
1467 false
1468 }
1469
1470 #[inline(always)]
1471 fn decode_is_copy() -> bool {
1472 false
1473 }
1474 }
1475
1476 impl fidl::encoding::ValueTypeMarker for WifiChipTxPowerScenario {
1477 type Borrowed<'a> = Self;
1478 #[inline(always)]
1479 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1480 *value
1481 }
1482 }
1483
1484 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1485 for WifiChipTxPowerScenario
1486 {
1487 #[inline]
1488 unsafe fn encode(
1489 self,
1490 encoder: &mut fidl::encoding::Encoder<'_, D>,
1491 offset: usize,
1492 _depth: fidl::encoding::Depth,
1493 ) -> fidl::Result<()> {
1494 encoder.debug_check_bounds::<Self>(offset);
1495 encoder.write_num(self.into_primitive(), offset);
1496 Ok(())
1497 }
1498 }
1499
1500 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1501 for WifiChipTxPowerScenario
1502 {
1503 #[inline(always)]
1504 fn new_empty() -> Self {
1505 Self::unknown()
1506 }
1507
1508 #[inline]
1509 unsafe fn decode(
1510 &mut self,
1511 decoder: &mut fidl::encoding::Decoder<'_, D>,
1512 offset: usize,
1513 _depth: fidl::encoding::Depth,
1514 ) -> fidl::Result<()> {
1515 decoder.debug_check_bounds::<Self>(offset);
1516 let prim = decoder.read_num::<u32>(offset);
1517
1518 *self = Self::from_primitive_allow_unknown(prim);
1519 Ok(())
1520 }
1521 }
1522 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalStatus {
1523 type Owned = Self;
1524
1525 #[inline(always)]
1526 fn inline_align(_context: fidl::encoding::Context) -> usize {
1527 std::mem::align_of::<u32>()
1528 }
1529
1530 #[inline(always)]
1531 fn inline_size(_context: fidl::encoding::Context) -> usize {
1532 std::mem::size_of::<u32>()
1533 }
1534
1535 #[inline(always)]
1536 fn encode_is_copy() -> bool {
1537 false
1538 }
1539
1540 #[inline(always)]
1541 fn decode_is_copy() -> bool {
1542 false
1543 }
1544 }
1545
1546 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalStatus {
1547 type Borrowed<'a> = Self;
1548 #[inline(always)]
1549 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1550 *value
1551 }
1552 }
1553
1554 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1555 for WifiLegacyHalStatus
1556 {
1557 #[inline]
1558 unsafe fn encode(
1559 self,
1560 encoder: &mut fidl::encoding::Encoder<'_, D>,
1561 offset: usize,
1562 _depth: fidl::encoding::Depth,
1563 ) -> fidl::Result<()> {
1564 encoder.debug_check_bounds::<Self>(offset);
1565 encoder.write_num(self.into_primitive(), offset);
1566 Ok(())
1567 }
1568 }
1569
1570 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiLegacyHalStatus {
1571 #[inline(always)]
1572 fn new_empty() -> Self {
1573 Self::unknown()
1574 }
1575
1576 #[inline]
1577 unsafe fn decode(
1578 &mut self,
1579 decoder: &mut fidl::encoding::Decoder<'_, D>,
1580 offset: usize,
1581 _depth: fidl::encoding::Depth,
1582 ) -> fidl::Result<()> {
1583 decoder.debug_check_bounds::<Self>(offset);
1584 let prim = decoder.read_num::<u32>(offset);
1585
1586 *self = Self::from_primitive_allow_unknown(prim);
1587 Ok(())
1588 }
1589 }
1590 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalTxPowerScenario {
1591 type Owned = Self;
1592
1593 #[inline(always)]
1594 fn inline_align(_context: fidl::encoding::Context) -> usize {
1595 std::mem::align_of::<i32>()
1596 }
1597
1598 #[inline(always)]
1599 fn inline_size(_context: fidl::encoding::Context) -> usize {
1600 std::mem::size_of::<i32>()
1601 }
1602
1603 #[inline(always)]
1604 fn encode_is_copy() -> bool {
1605 false
1606 }
1607
1608 #[inline(always)]
1609 fn decode_is_copy() -> bool {
1610 false
1611 }
1612 }
1613
1614 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalTxPowerScenario {
1615 type Borrowed<'a> = Self;
1616 #[inline(always)]
1617 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1618 *value
1619 }
1620 }
1621
1622 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1623 for WifiLegacyHalTxPowerScenario
1624 {
1625 #[inline]
1626 unsafe fn encode(
1627 self,
1628 encoder: &mut fidl::encoding::Encoder<'_, D>,
1629 offset: usize,
1630 _depth: fidl::encoding::Depth,
1631 ) -> fidl::Result<()> {
1632 encoder.debug_check_bounds::<Self>(offset);
1633 encoder.write_num(self.into_primitive(), offset);
1634 Ok(())
1635 }
1636 }
1637
1638 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1639 for WifiLegacyHalTxPowerScenario
1640 {
1641 #[inline(always)]
1642 fn new_empty() -> Self {
1643 Self::unknown()
1644 }
1645
1646 #[inline]
1647 unsafe fn decode(
1648 &mut self,
1649 decoder: &mut fidl::encoding::Decoder<'_, D>,
1650 offset: usize,
1651 _depth: fidl::encoding::Depth,
1652 ) -> fidl::Result<()> {
1653 decoder.debug_check_bounds::<Self>(offset);
1654 let prim = decoder.read_num::<i32>(offset);
1655
1656 *self = Self::from_primitive_allow_unknown(prim);
1657 Ok(())
1658 }
1659 }
1660 unsafe impl fidl::encoding::TypeMarker for WlanixError {
1661 type Owned = Self;
1662
1663 #[inline(always)]
1664 fn inline_align(_context: fidl::encoding::Context) -> usize {
1665 std::mem::align_of::<u32>()
1666 }
1667
1668 #[inline(always)]
1669 fn inline_size(_context: fidl::encoding::Context) -> usize {
1670 std::mem::size_of::<u32>()
1671 }
1672
1673 #[inline(always)]
1674 fn encode_is_copy() -> bool {
1675 false
1676 }
1677
1678 #[inline(always)]
1679 fn decode_is_copy() -> bool {
1680 false
1681 }
1682 }
1683
1684 impl fidl::encoding::ValueTypeMarker for WlanixError {
1685 type Borrowed<'a> = Self;
1686 #[inline(always)]
1687 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1688 *value
1689 }
1690 }
1691
1692 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanixError {
1693 #[inline]
1694 unsafe fn encode(
1695 self,
1696 encoder: &mut fidl::encoding::Encoder<'_, D>,
1697 offset: usize,
1698 _depth: fidl::encoding::Depth,
1699 ) -> fidl::Result<()> {
1700 encoder.debug_check_bounds::<Self>(offset);
1701 encoder.write_num(self.into_primitive(), offset);
1702 Ok(())
1703 }
1704 }
1705
1706 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanixError {
1707 #[inline(always)]
1708 fn new_empty() -> Self {
1709 Self::unknown()
1710 }
1711
1712 #[inline]
1713 unsafe fn decode(
1714 &mut self,
1715 decoder: &mut fidl::encoding::Decoder<'_, D>,
1716 offset: usize,
1717 _depth: fidl::encoding::Depth,
1718 ) -> fidl::Result<()> {
1719 decoder.debug_check_bounds::<Self>(offset);
1720 let prim = decoder.read_num::<u32>(offset);
1721
1722 *self = Self::from_primitive_allow_unknown(prim);
1723 Ok(())
1724 }
1725 }
1726
1727 impl fidl::encoding::ValueTypeMarker for Ack {
1728 type Borrowed<'a> = &'a Self;
1729 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1730 value
1731 }
1732 }
1733
1734 unsafe impl fidl::encoding::TypeMarker for Ack {
1735 type Owned = Self;
1736
1737 #[inline(always)]
1738 fn inline_align(_context: fidl::encoding::Context) -> usize {
1739 1
1740 }
1741
1742 #[inline(always)]
1743 fn inline_size(_context: fidl::encoding::Context) -> usize {
1744 1
1745 }
1746 }
1747
1748 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ack, D> for &Ack {
1749 #[inline]
1750 unsafe fn encode(
1751 self,
1752 encoder: &mut fidl::encoding::Encoder<'_, D>,
1753 offset: usize,
1754 _depth: fidl::encoding::Depth,
1755 ) -> fidl::Result<()> {
1756 encoder.debug_check_bounds::<Ack>(offset);
1757 encoder.write_num(0u8, offset);
1758 Ok(())
1759 }
1760 }
1761
1762 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ack {
1763 #[inline(always)]
1764 fn new_empty() -> Self {
1765 Self
1766 }
1767
1768 #[inline]
1769 unsafe fn decode(
1770 &mut self,
1771 decoder: &mut fidl::encoding::Decoder<'_, D>,
1772 offset: usize,
1773 _depth: fidl::encoding::Depth,
1774 ) -> fidl::Result<()> {
1775 decoder.debug_check_bounds::<Self>(offset);
1776 match decoder.read_num::<u8>(offset) {
1777 0 => Ok(()),
1778 _ => Err(fidl::Error::Invalid),
1779 }
1780 }
1781 }
1782
1783 impl fidl::encoding::ValueTypeMarker for Done {
1784 type Borrowed<'a> = &'a Self;
1785 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1786 value
1787 }
1788 }
1789
1790 unsafe impl fidl::encoding::TypeMarker for Done {
1791 type Owned = Self;
1792
1793 #[inline(always)]
1794 fn inline_align(_context: fidl::encoding::Context) -> usize {
1795 1
1796 }
1797
1798 #[inline(always)]
1799 fn inline_size(_context: fidl::encoding::Context) -> usize {
1800 1
1801 }
1802 }
1803
1804 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Done, D> for &Done {
1805 #[inline]
1806 unsafe fn encode(
1807 self,
1808 encoder: &mut fidl::encoding::Encoder<'_, D>,
1809 offset: usize,
1810 _depth: fidl::encoding::Depth,
1811 ) -> fidl::Result<()> {
1812 encoder.debug_check_bounds::<Done>(offset);
1813 encoder.write_num(0u8, offset);
1814 Ok(())
1815 }
1816 }
1817
1818 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Done {
1819 #[inline(always)]
1820 fn new_empty() -> Self {
1821 Self
1822 }
1823
1824 #[inline]
1825 unsafe fn decode(
1826 &mut self,
1827 decoder: &mut fidl::encoding::Decoder<'_, D>,
1828 offset: usize,
1829 _depth: fidl::encoding::Depth,
1830 ) -> fidl::Result<()> {
1831 decoder.debug_check_bounds::<Self>(offset);
1832 match decoder.read_num::<u8>(offset) {
1833 0 => Ok(()),
1834 _ => Err(fidl::Error::Invalid),
1835 }
1836 }
1837 }
1838
1839 impl fidl::encoding::ValueTypeMarker for Error {
1840 type Borrowed<'a> = &'a Self;
1841 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1842 value
1843 }
1844 }
1845
1846 unsafe impl fidl::encoding::TypeMarker for Error {
1847 type Owned = Self;
1848
1849 #[inline(always)]
1850 fn inline_align(_context: fidl::encoding::Context) -> usize {
1851 4
1852 }
1853
1854 #[inline(always)]
1855 fn inline_size(_context: fidl::encoding::Context) -> usize {
1856 4
1857 }
1858 #[inline(always)]
1859 fn encode_is_copy() -> bool {
1860 true
1861 }
1862
1863 #[inline(always)]
1864 fn decode_is_copy() -> bool {
1865 true
1866 }
1867 }
1868
1869 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Error, D> for &Error {
1870 #[inline]
1871 unsafe fn encode(
1872 self,
1873 encoder: &mut fidl::encoding::Encoder<'_, D>,
1874 offset: usize,
1875 _depth: fidl::encoding::Depth,
1876 ) -> fidl::Result<()> {
1877 encoder.debug_check_bounds::<Error>(offset);
1878 unsafe {
1879 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1881 (buf_ptr as *mut Error).write_unaligned((self as *const Error).read());
1882 }
1885 Ok(())
1886 }
1887 }
1888 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
1889 fidl::encoding::Encode<Error, D> for (T0,)
1890 {
1891 #[inline]
1892 unsafe fn encode(
1893 self,
1894 encoder: &mut fidl::encoding::Encoder<'_, D>,
1895 offset: usize,
1896 depth: fidl::encoding::Depth,
1897 ) -> fidl::Result<()> {
1898 encoder.debug_check_bounds::<Error>(offset);
1899 self.0.encode(encoder, offset + 0, depth)?;
1903 Ok(())
1904 }
1905 }
1906
1907 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Error {
1908 #[inline(always)]
1909 fn new_empty() -> Self {
1910 Self { error_code: fidl::new_empty!(i32, D) }
1911 }
1912
1913 #[inline]
1914 unsafe fn decode(
1915 &mut self,
1916 decoder: &mut fidl::encoding::Decoder<'_, D>,
1917 offset: usize,
1918 _depth: fidl::encoding::Depth,
1919 ) -> fidl::Result<()> {
1920 decoder.debug_check_bounds::<Self>(offset);
1921 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1922 unsafe {
1925 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1926 }
1927 Ok(())
1928 }
1929 }
1930
1931 impl fidl::encoding::ValueTypeMarker for Message {
1932 type Borrowed<'a> = &'a Self;
1933 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1934 value
1935 }
1936 }
1937
1938 unsafe impl fidl::encoding::TypeMarker for Message {
1939 type Owned = Self;
1940
1941 #[inline(always)]
1942 fn inline_align(_context: fidl::encoding::Context) -> usize {
1943 8
1944 }
1945
1946 #[inline(always)]
1947 fn inline_size(_context: fidl::encoding::Context) -> usize {
1948 16
1949 }
1950 }
1951
1952 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Message, D> for &Message {
1953 #[inline]
1954 unsafe fn encode(
1955 self,
1956 encoder: &mut fidl::encoding::Encoder<'_, D>,
1957 offset: usize,
1958 _depth: fidl::encoding::Depth,
1959 ) -> fidl::Result<()> {
1960 encoder.debug_check_bounds::<Message>(offset);
1961 fidl::encoding::Encode::<Message, D>::encode(
1963 (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
1964 &self.payload,
1965 ),),
1966 encoder,
1967 offset,
1968 _depth,
1969 )
1970 }
1971 }
1972 unsafe impl<
1973 D: fidl::encoding::ResourceDialect,
1974 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
1975 > fidl::encoding::Encode<Message, D> for (T0,)
1976 {
1977 #[inline]
1978 unsafe fn encode(
1979 self,
1980 encoder: &mut fidl::encoding::Encoder<'_, D>,
1981 offset: usize,
1982 depth: fidl::encoding::Depth,
1983 ) -> fidl::Result<()> {
1984 encoder.debug_check_bounds::<Message>(offset);
1985 self.0.encode(encoder, offset + 0, depth)?;
1989 Ok(())
1990 }
1991 }
1992
1993 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Message {
1994 #[inline(always)]
1995 fn new_empty() -> Self {
1996 Self { payload: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
1997 }
1998
1999 #[inline]
2000 unsafe fn decode(
2001 &mut self,
2002 decoder: &mut fidl::encoding::Decoder<'_, D>,
2003 offset: usize,
2004 _depth: fidl::encoding::Depth,
2005 ) -> fidl::Result<()> {
2006 decoder.debug_check_bounds::<Self>(offset);
2007 fidl::decode!(
2009 fidl::encoding::UnboundedVector<u8>,
2010 D,
2011 &mut self.payload,
2012 decoder,
2013 offset + 0,
2014 _depth
2015 )?;
2016 Ok(())
2017 }
2018 }
2019
2020 impl fidl::encoding::ValueTypeMarker for Nl80211MessageArray {
2021 type Borrowed<'a> = &'a Self;
2022 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2023 value
2024 }
2025 }
2026
2027 unsafe impl fidl::encoding::TypeMarker for Nl80211MessageArray {
2028 type Owned = Self;
2029
2030 #[inline(always)]
2031 fn inline_align(_context: fidl::encoding::Context) -> usize {
2032 8
2033 }
2034
2035 #[inline(always)]
2036 fn inline_size(_context: fidl::encoding::Context) -> usize {
2037 16
2038 }
2039 }
2040
2041 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211MessageArray, D>
2042 for &Nl80211MessageArray
2043 {
2044 #[inline]
2045 unsafe fn encode(
2046 self,
2047 encoder: &mut fidl::encoding::Encoder<'_, D>,
2048 offset: usize,
2049 _depth: fidl::encoding::Depth,
2050 ) -> fidl::Result<()> {
2051 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
2052 fidl::encoding::Encode::<Nl80211MessageArray, D>::encode(
2054 (
2055 <fidl::encoding::UnboundedVector<Nl80211Message> as fidl::encoding::ValueTypeMarker>::borrow(&self.messages),
2056 ),
2057 encoder, offset, _depth
2058 )
2059 }
2060 }
2061 unsafe impl<
2062 D: fidl::encoding::ResourceDialect,
2063 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Nl80211Message>, D>,
2064 > fidl::encoding::Encode<Nl80211MessageArray, D> for (T0,)
2065 {
2066 #[inline]
2067 unsafe fn encode(
2068 self,
2069 encoder: &mut fidl::encoding::Encoder<'_, D>,
2070 offset: usize,
2071 depth: fidl::encoding::Depth,
2072 ) -> fidl::Result<()> {
2073 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
2074 self.0.encode(encoder, offset + 0, depth)?;
2078 Ok(())
2079 }
2080 }
2081
2082 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211MessageArray {
2083 #[inline(always)]
2084 fn new_empty() -> Self {
2085 Self { messages: fidl::new_empty!(fidl::encoding::UnboundedVector<Nl80211Message>, D) }
2086 }
2087
2088 #[inline]
2089 unsafe fn decode(
2090 &mut self,
2091 decoder: &mut fidl::encoding::Decoder<'_, D>,
2092 offset: usize,
2093 _depth: fidl::encoding::Depth,
2094 ) -> fidl::Result<()> {
2095 decoder.debug_check_bounds::<Self>(offset);
2096 fidl::decode!(
2098 fidl::encoding::UnboundedVector<Nl80211Message>,
2099 D,
2100 &mut self.messages,
2101 decoder,
2102 offset + 0,
2103 _depth
2104 )?;
2105 Ok(())
2106 }
2107 }
2108
2109 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2110 type Borrowed<'a> = &'a Self;
2111 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2112 value
2113 }
2114 }
2115
2116 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2117 type Owned = Self;
2118
2119 #[inline(always)]
2120 fn inline_align(_context: fidl::encoding::Context) -> usize {
2121 1
2122 }
2123
2124 #[inline(always)]
2125 fn inline_size(_context: fidl::encoding::Context) -> usize {
2126 6
2127 }
2128 #[inline(always)]
2129 fn encode_is_copy() -> bool {
2130 true
2131 }
2132
2133 #[inline(always)]
2134 fn decode_is_copy() -> bool {
2135 true
2136 }
2137 }
2138
2139 unsafe impl<D: fidl::encoding::ResourceDialect>
2140 fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D>
2141 for &SupplicantStaIfaceGetFactoryMacAddressResponse
2142 {
2143 #[inline]
2144 unsafe fn encode(
2145 self,
2146 encoder: &mut fidl::encoding::Encoder<'_, D>,
2147 offset: usize,
2148 _depth: fidl::encoding::Depth,
2149 ) -> fidl::Result<()> {
2150 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2151 unsafe {
2152 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2154 (buf_ptr as *mut SupplicantStaIfaceGetFactoryMacAddressResponse).write_unaligned(
2155 (self as *const SupplicantStaIfaceGetFactoryMacAddressResponse).read(),
2156 );
2157 }
2160 Ok(())
2161 }
2162 }
2163 unsafe impl<
2164 D: fidl::encoding::ResourceDialect,
2165 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2166 > fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D> for (T0,)
2167 {
2168 #[inline]
2169 unsafe fn encode(
2170 self,
2171 encoder: &mut fidl::encoding::Encoder<'_, D>,
2172 offset: usize,
2173 depth: fidl::encoding::Depth,
2174 ) -> fidl::Result<()> {
2175 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2176 self.0.encode(encoder, offset + 0, depth)?;
2180 Ok(())
2181 }
2182 }
2183
2184 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2185 for SupplicantStaIfaceGetFactoryMacAddressResponse
2186 {
2187 #[inline(always)]
2188 fn new_empty() -> Self {
2189 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2190 }
2191
2192 #[inline]
2193 unsafe fn decode(
2194 &mut self,
2195 decoder: &mut fidl::encoding::Decoder<'_, D>,
2196 offset: usize,
2197 _depth: fidl::encoding::Depth,
2198 ) -> fidl::Result<()> {
2199 decoder.debug_check_bounds::<Self>(offset);
2200 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2201 unsafe {
2204 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2205 }
2206 Ok(())
2207 }
2208 }
2209
2210 impl fidl::encoding::ValueTypeMarker for WifiChipSelectTxPowerScenarioRequest {
2211 type Borrowed<'a> = &'a Self;
2212 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2213 value
2214 }
2215 }
2216
2217 unsafe impl fidl::encoding::TypeMarker for WifiChipSelectTxPowerScenarioRequest {
2218 type Owned = Self;
2219
2220 #[inline(always)]
2221 fn inline_align(_context: fidl::encoding::Context) -> usize {
2222 4
2223 }
2224
2225 #[inline(always)]
2226 fn inline_size(_context: fidl::encoding::Context) -> usize {
2227 4
2228 }
2229 }
2230
2231 unsafe impl<D: fidl::encoding::ResourceDialect>
2232 fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D>
2233 for &WifiChipSelectTxPowerScenarioRequest
2234 {
2235 #[inline]
2236 unsafe fn encode(
2237 self,
2238 encoder: &mut fidl::encoding::Encoder<'_, D>,
2239 offset: usize,
2240 _depth: fidl::encoding::Depth,
2241 ) -> fidl::Result<()> {
2242 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2243 fidl::encoding::Encode::<WifiChipSelectTxPowerScenarioRequest, D>::encode(
2245 (<WifiChipTxPowerScenario as fidl::encoding::ValueTypeMarker>::borrow(
2246 &self.scenario,
2247 ),),
2248 encoder,
2249 offset,
2250 _depth,
2251 )
2252 }
2253 }
2254 unsafe impl<
2255 D: fidl::encoding::ResourceDialect,
2256 T0: fidl::encoding::Encode<WifiChipTxPowerScenario, D>,
2257 > fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D> for (T0,)
2258 {
2259 #[inline]
2260 unsafe fn encode(
2261 self,
2262 encoder: &mut fidl::encoding::Encoder<'_, D>,
2263 offset: usize,
2264 depth: fidl::encoding::Depth,
2265 ) -> fidl::Result<()> {
2266 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2267 self.0.encode(encoder, offset + 0, depth)?;
2271 Ok(())
2272 }
2273 }
2274
2275 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2276 for WifiChipSelectTxPowerScenarioRequest
2277 {
2278 #[inline(always)]
2279 fn new_empty() -> Self {
2280 Self { scenario: fidl::new_empty!(WifiChipTxPowerScenario, D) }
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 fidl::decode!(
2293 WifiChipTxPowerScenario,
2294 D,
2295 &mut self.scenario,
2296 decoder,
2297 offset + 0,
2298 _depth
2299 )?;
2300 Ok(())
2301 }
2302 }
2303
2304 impl ChipConcurrencyCombination {
2305 #[inline(always)]
2306 fn max_ordinal_present(&self) -> u64 {
2307 if let Some(_) = self.limits {
2308 return 1;
2309 }
2310 0
2311 }
2312 }
2313
2314 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombination {
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 ChipConcurrencyCombination {
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<ChipConcurrencyCombination, D> for &ChipConcurrencyCombination
2337 {
2338 unsafe fn encode(
2339 self,
2340 encoder: &mut fidl::encoding::Encoder<'_, D>,
2341 offset: usize,
2342 mut depth: fidl::encoding::Depth,
2343 ) -> fidl::Result<()> {
2344 encoder.debug_check_bounds::<ChipConcurrencyCombination>(offset);
2345 let max_ordinal: u64 = self.max_ordinal_present();
2347 encoder.write_num(max_ordinal, offset);
2348 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2349 if max_ordinal == 0 {
2351 return Ok(());
2352 }
2353 depth.increment()?;
2354 let envelope_size = 8;
2355 let bytes_len = max_ordinal as usize * envelope_size;
2356 #[allow(unused_variables)]
2357 let offset = encoder.out_of_line_offset(bytes_len);
2358 let mut _prev_end_offset: usize = 0;
2359 if 1 > max_ordinal {
2360 return Ok(());
2361 }
2362
2363 let cur_offset: usize = (1 - 1) * envelope_size;
2366
2367 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2369
2370 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>, D>(
2375 self.limits.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit> as fidl::encoding::ValueTypeMarker>::borrow),
2376 encoder, offset + cur_offset, depth
2377 )?;
2378
2379 _prev_end_offset = cur_offset + envelope_size;
2380
2381 Ok(())
2382 }
2383 }
2384
2385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2386 for ChipConcurrencyCombination
2387 {
2388 #[inline(always)]
2389 fn new_empty() -> Self {
2390 Self::default()
2391 }
2392
2393 unsafe fn decode(
2394 &mut self,
2395 decoder: &mut fidl::encoding::Decoder<'_, D>,
2396 offset: usize,
2397 mut depth: fidl::encoding::Depth,
2398 ) -> fidl::Result<()> {
2399 decoder.debug_check_bounds::<Self>(offset);
2400 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2401 None => return Err(fidl::Error::NotNullable),
2402 Some(len) => len,
2403 };
2404 if len == 0 {
2406 return Ok(());
2407 };
2408 depth.increment()?;
2409 let envelope_size = 8;
2410 let bytes_len = len * envelope_size;
2411 let offset = decoder.out_of_line_offset(bytes_len)?;
2412 let mut _next_ordinal_to_read = 0;
2414 let mut next_offset = offset;
2415 let end_offset = offset + bytes_len;
2416 _next_ordinal_to_read += 1;
2417 if next_offset >= end_offset {
2418 return Ok(());
2419 }
2420
2421 while _next_ordinal_to_read < 1 {
2423 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2424 _next_ordinal_to_read += 1;
2425 next_offset += envelope_size;
2426 }
2427
2428 let next_out_of_line = decoder.next_out_of_line();
2429 let handles_before = decoder.remaining_handles();
2430 if let Some((inlined, num_bytes, num_handles)) =
2431 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2432 {
2433 let member_inline_size = <fidl::encoding::UnboundedVector<
2434 ChipConcurrencyCombinationLimit,
2435 > as fidl::encoding::TypeMarker>::inline_size(
2436 decoder.context
2437 );
2438 if inlined != (member_inline_size <= 4) {
2439 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2440 }
2441 let inner_offset;
2442 let mut inner_depth = depth.clone();
2443 if inlined {
2444 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2445 inner_offset = next_offset;
2446 } else {
2447 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2448 inner_depth.increment()?;
2449 }
2450 let val_ref = self.limits.get_or_insert_with(|| {
2451 fidl::new_empty!(
2452 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2453 D
2454 )
2455 });
2456 fidl::decode!(
2457 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2458 D,
2459 val_ref,
2460 decoder,
2461 inner_offset,
2462 inner_depth
2463 )?;
2464 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2465 {
2466 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2467 }
2468 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2469 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2470 }
2471 }
2472
2473 next_offset += envelope_size;
2474
2475 while next_offset < end_offset {
2477 _next_ordinal_to_read += 1;
2478 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2479 next_offset += envelope_size;
2480 }
2481
2482 Ok(())
2483 }
2484 }
2485
2486 impl ChipConcurrencyCombinationLimit {
2487 #[inline(always)]
2488 fn max_ordinal_present(&self) -> u64 {
2489 if let Some(_) = self.max_ifaces {
2490 return 2;
2491 }
2492 if let Some(_) = self.types {
2493 return 1;
2494 }
2495 0
2496 }
2497 }
2498
2499 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombinationLimit {
2500 type Borrowed<'a> = &'a Self;
2501 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2502 value
2503 }
2504 }
2505
2506 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombinationLimit {
2507 type Owned = Self;
2508
2509 #[inline(always)]
2510 fn inline_align(_context: fidl::encoding::Context) -> usize {
2511 8
2512 }
2513
2514 #[inline(always)]
2515 fn inline_size(_context: fidl::encoding::Context) -> usize {
2516 16
2517 }
2518 }
2519
2520 unsafe impl<D: fidl::encoding::ResourceDialect>
2521 fidl::encoding::Encode<ChipConcurrencyCombinationLimit, D>
2522 for &ChipConcurrencyCombinationLimit
2523 {
2524 unsafe fn encode(
2525 self,
2526 encoder: &mut fidl::encoding::Encoder<'_, D>,
2527 offset: usize,
2528 mut depth: fidl::encoding::Depth,
2529 ) -> fidl::Result<()> {
2530 encoder.debug_check_bounds::<ChipConcurrencyCombinationLimit>(offset);
2531 let max_ordinal: u64 = self.max_ordinal_present();
2533 encoder.write_num(max_ordinal, offset);
2534 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2535 if max_ordinal == 0 {
2537 return Ok(());
2538 }
2539 depth.increment()?;
2540 let envelope_size = 8;
2541 let bytes_len = max_ordinal as usize * envelope_size;
2542 #[allow(unused_variables)]
2543 let offset = encoder.out_of_line_offset(bytes_len);
2544 let mut _prev_end_offset: usize = 0;
2545 if 1 > max_ordinal {
2546 return Ok(());
2547 }
2548
2549 let cur_offset: usize = (1 - 1) * envelope_size;
2552
2553 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2555
2556 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D>(
2561 self.types.as_ref().map(<fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::ValueTypeMarker>::borrow),
2562 encoder, offset + cur_offset, depth
2563 )?;
2564
2565 _prev_end_offset = cur_offset + envelope_size;
2566 if 2 > max_ordinal {
2567 return Ok(());
2568 }
2569
2570 let cur_offset: usize = (2 - 1) * envelope_size;
2573
2574 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2576
2577 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2582 self.max_ifaces.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2583 encoder,
2584 offset + cur_offset,
2585 depth,
2586 )?;
2587
2588 _prev_end_offset = cur_offset + envelope_size;
2589
2590 Ok(())
2591 }
2592 }
2593
2594 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2595 for ChipConcurrencyCombinationLimit
2596 {
2597 #[inline(always)]
2598 fn new_empty() -> Self {
2599 Self::default()
2600 }
2601
2602 unsafe fn decode(
2603 &mut self,
2604 decoder: &mut fidl::encoding::Decoder<'_, D>,
2605 offset: usize,
2606 mut depth: fidl::encoding::Depth,
2607 ) -> fidl::Result<()> {
2608 decoder.debug_check_bounds::<Self>(offset);
2609 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2610 None => return Err(fidl::Error::NotNullable),
2611 Some(len) => len,
2612 };
2613 if len == 0 {
2615 return Ok(());
2616 };
2617 depth.increment()?;
2618 let envelope_size = 8;
2619 let bytes_len = len * envelope_size;
2620 let offset = decoder.out_of_line_offset(bytes_len)?;
2621 let mut _next_ordinal_to_read = 0;
2623 let mut next_offset = offset;
2624 let end_offset = offset + bytes_len;
2625 _next_ordinal_to_read += 1;
2626 if next_offset >= end_offset {
2627 return Ok(());
2628 }
2629
2630 while _next_ordinal_to_read < 1 {
2632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2633 _next_ordinal_to_read += 1;
2634 next_offset += envelope_size;
2635 }
2636
2637 let next_out_of_line = decoder.next_out_of_line();
2638 let handles_before = decoder.remaining_handles();
2639 if let Some((inlined, num_bytes, num_handles)) =
2640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2641 {
2642 let member_inline_size = <fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2643 if inlined != (member_inline_size <= 4) {
2644 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2645 }
2646 let inner_offset;
2647 let mut inner_depth = depth.clone();
2648 if inlined {
2649 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2650 inner_offset = next_offset;
2651 } else {
2652 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2653 inner_depth.increment()?;
2654 }
2655 let val_ref = self.types.get_or_insert_with(|| {
2656 fidl::new_empty!(fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D)
2657 });
2658 fidl::decode!(
2659 fidl::encoding::UnboundedVector<IfaceConcurrencyType>,
2660 D,
2661 val_ref,
2662 decoder,
2663 inner_offset,
2664 inner_depth
2665 )?;
2666 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2667 {
2668 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2669 }
2670 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2671 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2672 }
2673 }
2674
2675 next_offset += envelope_size;
2676 _next_ordinal_to_read += 1;
2677 if next_offset >= end_offset {
2678 return Ok(());
2679 }
2680
2681 while _next_ordinal_to_read < 2 {
2683 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2684 _next_ordinal_to_read += 1;
2685 next_offset += envelope_size;
2686 }
2687
2688 let next_out_of_line = decoder.next_out_of_line();
2689 let handles_before = decoder.remaining_handles();
2690 if let Some((inlined, num_bytes, num_handles)) =
2691 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2692 {
2693 let member_inline_size =
2694 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2695 if inlined != (member_inline_size <= 4) {
2696 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2697 }
2698 let inner_offset;
2699 let mut inner_depth = depth.clone();
2700 if inlined {
2701 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2702 inner_offset = next_offset;
2703 } else {
2704 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2705 inner_depth.increment()?;
2706 }
2707 let val_ref = self.max_ifaces.get_or_insert_with(|| fidl::new_empty!(u32, D));
2708 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2709 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2710 {
2711 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2712 }
2713 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2714 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2715 }
2716 }
2717
2718 next_offset += envelope_size;
2719
2720 while next_offset < end_offset {
2722 _next_ordinal_to_read += 1;
2723 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2724 next_offset += envelope_size;
2725 }
2726
2727 Ok(())
2728 }
2729 }
2730
2731 impl ChipMode {
2732 #[inline(always)]
2733 fn max_ordinal_present(&self) -> u64 {
2734 if let Some(_) = self.available_combinations {
2735 return 2;
2736 }
2737 if let Some(_) = self.id {
2738 return 1;
2739 }
2740 0
2741 }
2742 }
2743
2744 impl fidl::encoding::ValueTypeMarker for ChipMode {
2745 type Borrowed<'a> = &'a Self;
2746 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2747 value
2748 }
2749 }
2750
2751 unsafe impl fidl::encoding::TypeMarker for ChipMode {
2752 type Owned = Self;
2753
2754 #[inline(always)]
2755 fn inline_align(_context: fidl::encoding::Context) -> usize {
2756 8
2757 }
2758
2759 #[inline(always)]
2760 fn inline_size(_context: fidl::encoding::Context) -> usize {
2761 16
2762 }
2763 }
2764
2765 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChipMode, D> for &ChipMode {
2766 unsafe fn encode(
2767 self,
2768 encoder: &mut fidl::encoding::Encoder<'_, D>,
2769 offset: usize,
2770 mut depth: fidl::encoding::Depth,
2771 ) -> fidl::Result<()> {
2772 encoder.debug_check_bounds::<ChipMode>(offset);
2773 let max_ordinal: u64 = self.max_ordinal_present();
2775 encoder.write_num(max_ordinal, offset);
2776 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2777 if max_ordinal == 0 {
2779 return Ok(());
2780 }
2781 depth.increment()?;
2782 let envelope_size = 8;
2783 let bytes_len = max_ordinal as usize * envelope_size;
2784 #[allow(unused_variables)]
2785 let offset = encoder.out_of_line_offset(bytes_len);
2786 let mut _prev_end_offset: usize = 0;
2787 if 1 > max_ordinal {
2788 return Ok(());
2789 }
2790
2791 let cur_offset: usize = (1 - 1) * envelope_size;
2794
2795 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2797
2798 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2803 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2804 encoder,
2805 offset + cur_offset,
2806 depth,
2807 )?;
2808
2809 _prev_end_offset = cur_offset + envelope_size;
2810 if 2 > max_ordinal {
2811 return Ok(());
2812 }
2813
2814 let cur_offset: usize = (2 - 1) * envelope_size;
2817
2818 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2820
2821 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D>(
2826 self.available_combinations.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombination> as fidl::encoding::ValueTypeMarker>::borrow),
2827 encoder, offset + cur_offset, depth
2828 )?;
2829
2830 _prev_end_offset = cur_offset + envelope_size;
2831
2832 Ok(())
2833 }
2834 }
2835
2836 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChipMode {
2837 #[inline(always)]
2838 fn new_empty() -> Self {
2839 Self::default()
2840 }
2841
2842 unsafe fn decode(
2843 &mut self,
2844 decoder: &mut fidl::encoding::Decoder<'_, D>,
2845 offset: usize,
2846 mut depth: fidl::encoding::Depth,
2847 ) -> fidl::Result<()> {
2848 decoder.debug_check_bounds::<Self>(offset);
2849 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2850 None => return Err(fidl::Error::NotNullable),
2851 Some(len) => len,
2852 };
2853 if len == 0 {
2855 return Ok(());
2856 };
2857 depth.increment()?;
2858 let envelope_size = 8;
2859 let bytes_len = len * envelope_size;
2860 let offset = decoder.out_of_line_offset(bytes_len)?;
2861 let mut _next_ordinal_to_read = 0;
2863 let mut next_offset = offset;
2864 let end_offset = offset + bytes_len;
2865 _next_ordinal_to_read += 1;
2866 if next_offset >= end_offset {
2867 return Ok(());
2868 }
2869
2870 while _next_ordinal_to_read < 1 {
2872 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2873 _next_ordinal_to_read += 1;
2874 next_offset += envelope_size;
2875 }
2876
2877 let next_out_of_line = decoder.next_out_of_line();
2878 let handles_before = decoder.remaining_handles();
2879 if let Some((inlined, num_bytes, num_handles)) =
2880 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2881 {
2882 let member_inline_size =
2883 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2884 if inlined != (member_inline_size <= 4) {
2885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2886 }
2887 let inner_offset;
2888 let mut inner_depth = depth.clone();
2889 if inlined {
2890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2891 inner_offset = next_offset;
2892 } else {
2893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2894 inner_depth.increment()?;
2895 }
2896 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
2897 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2898 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2899 {
2900 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2901 }
2902 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2903 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2904 }
2905 }
2906
2907 next_offset += envelope_size;
2908 _next_ordinal_to_read += 1;
2909 if next_offset >= end_offset {
2910 return Ok(());
2911 }
2912
2913 while _next_ordinal_to_read < 2 {
2915 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2916 _next_ordinal_to_read += 1;
2917 next_offset += envelope_size;
2918 }
2919
2920 let next_out_of_line = decoder.next_out_of_line();
2921 let handles_before = decoder.remaining_handles();
2922 if let Some((inlined, num_bytes, num_handles)) =
2923 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2924 {
2925 let member_inline_size = <fidl::encoding::UnboundedVector<
2926 ChipConcurrencyCombination,
2927 > as fidl::encoding::TypeMarker>::inline_size(
2928 decoder.context
2929 );
2930 if inlined != (member_inline_size <= 4) {
2931 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2932 }
2933 let inner_offset;
2934 let mut inner_depth = depth.clone();
2935 if inlined {
2936 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2937 inner_offset = next_offset;
2938 } else {
2939 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2940 inner_depth.increment()?;
2941 }
2942 let val_ref = self.available_combinations.get_or_insert_with(|| {
2943 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D)
2944 });
2945 fidl::decode!(
2946 fidl::encoding::UnboundedVector<ChipConcurrencyCombination>,
2947 D,
2948 val_ref,
2949 decoder,
2950 inner_offset,
2951 inner_depth
2952 )?;
2953 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2954 {
2955 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2956 }
2957 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2958 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2959 }
2960 }
2961
2962 next_offset += envelope_size;
2963
2964 while next_offset < end_offset {
2966 _next_ordinal_to_read += 1;
2967 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2968 next_offset += envelope_size;
2969 }
2970
2971 Ok(())
2972 }
2973 }
2974
2975 impl LinkLayerStats {
2976 #[inline(always)]
2977 fn max_ordinal_present(&self) -> u64 {
2978 if let Some(_) = self.rssi_dbm {
2979 return 2;
2980 }
2981 if let Some(_) = self.wme {
2982 return 1;
2983 }
2984 0
2985 }
2986 }
2987
2988 impl fidl::encoding::ValueTypeMarker for LinkLayerStats {
2989 type Borrowed<'a> = &'a Self;
2990 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2991 value
2992 }
2993 }
2994
2995 unsafe impl fidl::encoding::TypeMarker for LinkLayerStats {
2996 type Owned = Self;
2997
2998 #[inline(always)]
2999 fn inline_align(_context: fidl::encoding::Context) -> usize {
3000 8
3001 }
3002
3003 #[inline(always)]
3004 fn inline_size(_context: fidl::encoding::Context) -> usize {
3005 16
3006 }
3007 }
3008
3009 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LinkLayerStats, D>
3010 for &LinkLayerStats
3011 {
3012 unsafe fn encode(
3013 self,
3014 encoder: &mut fidl::encoding::Encoder<'_, D>,
3015 offset: usize,
3016 mut depth: fidl::encoding::Depth,
3017 ) -> fidl::Result<()> {
3018 encoder.debug_check_bounds::<LinkLayerStats>(offset);
3019 let max_ordinal: u64 = self.max_ordinal_present();
3021 encoder.write_num(max_ordinal, offset);
3022 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3023 if max_ordinal == 0 {
3025 return Ok(());
3026 }
3027 depth.increment()?;
3028 let envelope_size = 8;
3029 let bytes_len = max_ordinal as usize * envelope_size;
3030 #[allow(unused_variables)]
3031 let offset = encoder.out_of_line_offset(bytes_len);
3032 let mut _prev_end_offset: usize = 0;
3033 if 1 > max_ordinal {
3034 return Ok(());
3035 }
3036
3037 let cur_offset: usize = (1 - 1) * envelope_size;
3040
3041 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3043
3044 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_stats_common::WmePacketStats, D>(
3049 self.wme.as_ref().map(<fidl_fuchsia_wlan_stats_common::WmePacketStats as fidl::encoding::ValueTypeMarker>::borrow),
3050 encoder, offset + cur_offset, depth
3051 )?;
3052
3053 _prev_end_offset = cur_offset + envelope_size;
3054 if 2 > max_ordinal {
3055 return Ok(());
3056 }
3057
3058 let cur_offset: usize = (2 - 1) * envelope_size;
3061
3062 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3064
3065 fidl::encoding::encode_in_envelope_optional::<i32, D>(
3070 self.rssi_dbm.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
3071 encoder,
3072 offset + cur_offset,
3073 depth,
3074 )?;
3075
3076 _prev_end_offset = cur_offset + envelope_size;
3077
3078 Ok(())
3079 }
3080 }
3081
3082 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LinkLayerStats {
3083 #[inline(always)]
3084 fn new_empty() -> Self {
3085 Self::default()
3086 }
3087
3088 unsafe fn decode(
3089 &mut self,
3090 decoder: &mut fidl::encoding::Decoder<'_, D>,
3091 offset: usize,
3092 mut depth: fidl::encoding::Depth,
3093 ) -> fidl::Result<()> {
3094 decoder.debug_check_bounds::<Self>(offset);
3095 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3096 None => return Err(fidl::Error::NotNullable),
3097 Some(len) => len,
3098 };
3099 if len == 0 {
3101 return Ok(());
3102 };
3103 depth.increment()?;
3104 let envelope_size = 8;
3105 let bytes_len = len * envelope_size;
3106 let offset = decoder.out_of_line_offset(bytes_len)?;
3107 let mut _next_ordinal_to_read = 0;
3109 let mut next_offset = offset;
3110 let end_offset = offset + bytes_len;
3111 _next_ordinal_to_read += 1;
3112 if next_offset >= end_offset {
3113 return Ok(());
3114 }
3115
3116 while _next_ordinal_to_read < 1 {
3118 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3119 _next_ordinal_to_read += 1;
3120 next_offset += envelope_size;
3121 }
3122
3123 let next_out_of_line = decoder.next_out_of_line();
3124 let handles_before = decoder.remaining_handles();
3125 if let Some((inlined, num_bytes, num_handles)) =
3126 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3127 {
3128 let member_inline_size = <fidl_fuchsia_wlan_stats_common::WmePacketStats as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3129 if inlined != (member_inline_size <= 4) {
3130 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3131 }
3132 let inner_offset;
3133 let mut inner_depth = depth.clone();
3134 if inlined {
3135 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3136 inner_offset = next_offset;
3137 } else {
3138 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3139 inner_depth.increment()?;
3140 }
3141 let val_ref = self.wme.get_or_insert_with(|| {
3142 fidl::new_empty!(fidl_fuchsia_wlan_stats_common::WmePacketStats, D)
3143 });
3144 fidl::decode!(
3145 fidl_fuchsia_wlan_stats_common::WmePacketStats,
3146 D,
3147 val_ref,
3148 decoder,
3149 inner_offset,
3150 inner_depth
3151 )?;
3152 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3153 {
3154 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3155 }
3156 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3157 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3158 }
3159 }
3160
3161 next_offset += envelope_size;
3162 _next_ordinal_to_read += 1;
3163 if next_offset >= end_offset {
3164 return Ok(());
3165 }
3166
3167 while _next_ordinal_to_read < 2 {
3169 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3170 _next_ordinal_to_read += 1;
3171 next_offset += envelope_size;
3172 }
3173
3174 let next_out_of_line = decoder.next_out_of_line();
3175 let handles_before = decoder.remaining_handles();
3176 if let Some((inlined, num_bytes, num_handles)) =
3177 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3178 {
3179 let member_inline_size =
3180 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3181 if inlined != (member_inline_size <= 4) {
3182 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3183 }
3184 let inner_offset;
3185 let mut inner_depth = depth.clone();
3186 if inlined {
3187 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3188 inner_offset = next_offset;
3189 } else {
3190 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3191 inner_depth.increment()?;
3192 }
3193 let val_ref = self.rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i32, D));
3194 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3195 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3196 {
3197 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3198 }
3199 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3200 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3201 }
3202 }
3203
3204 next_offset += envelope_size;
3205
3206 while next_offset < end_offset {
3208 _next_ordinal_to_read += 1;
3209 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3210 next_offset += envelope_size;
3211 }
3212
3213 Ok(())
3214 }
3215 }
3216
3217 impl SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
3218 #[inline(always)]
3219 fn max_ordinal_present(&self) -> u64 {
3220 if let Some(_) = self.timed_out {
3221 return 4;
3222 }
3223 if let Some(_) = self.status_code {
3224 return 3;
3225 }
3226 if let Some(_) = self.bssid {
3227 return 2;
3228 }
3229 if let Some(_) = self.ssid {
3230 return 1;
3231 }
3232 0
3233 }
3234 }
3235
3236 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
3237 type Borrowed<'a> = &'a Self;
3238 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3239 value
3240 }
3241 }
3242
3243 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
3244 type Owned = Self;
3245
3246 #[inline(always)]
3247 fn inline_align(_context: fidl::encoding::Context) -> usize {
3248 8
3249 }
3250
3251 #[inline(always)]
3252 fn inline_size(_context: fidl::encoding::Context) -> usize {
3253 16
3254 }
3255 }
3256
3257 unsafe impl<D: fidl::encoding::ResourceDialect>
3258 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnAssociationRejectedRequest, D>
3259 for &SupplicantStaIfaceCallbackOnAssociationRejectedRequest
3260 {
3261 unsafe fn encode(
3262 self,
3263 encoder: &mut fidl::encoding::Encoder<'_, D>,
3264 offset: usize,
3265 mut depth: fidl::encoding::Depth,
3266 ) -> fidl::Result<()> {
3267 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnAssociationRejectedRequest>(
3268 offset,
3269 );
3270 let max_ordinal: u64 = self.max_ordinal_present();
3272 encoder.write_num(max_ordinal, offset);
3273 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3274 if max_ordinal == 0 {
3276 return Ok(());
3277 }
3278 depth.increment()?;
3279 let envelope_size = 8;
3280 let bytes_len = max_ordinal as usize * envelope_size;
3281 #[allow(unused_variables)]
3282 let offset = encoder.out_of_line_offset(bytes_len);
3283 let mut _prev_end_offset: usize = 0;
3284 if 1 > max_ordinal {
3285 return Ok(());
3286 }
3287
3288 let cur_offset: usize = (1 - 1) * envelope_size;
3291
3292 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3294
3295 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
3300 self.ssid.as_ref().map(
3301 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
3302 ),
3303 encoder,
3304 offset + cur_offset,
3305 depth,
3306 )?;
3307
3308 _prev_end_offset = cur_offset + envelope_size;
3309 if 2 > max_ordinal {
3310 return Ok(());
3311 }
3312
3313 let cur_offset: usize = (2 - 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::encoding::Array<u8, 6>, D>(
3325 self.bssid
3326 .as_ref()
3327 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3328 encoder,
3329 offset + cur_offset,
3330 depth,
3331 )?;
3332
3333 _prev_end_offset = cur_offset + envelope_size;
3334 if 3 > max_ordinal {
3335 return Ok(());
3336 }
3337
3338 let cur_offset: usize = (3 - 1) * envelope_size;
3341
3342 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3344
3345 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::StatusCode, D>(
3350 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3351 encoder, offset + cur_offset, depth
3352 )?;
3353
3354 _prev_end_offset = cur_offset + envelope_size;
3355 if 4 > max_ordinal {
3356 return Ok(());
3357 }
3358
3359 let cur_offset: usize = (4 - 1) * envelope_size;
3362
3363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3365
3366 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3371 self.timed_out.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3372 encoder,
3373 offset + cur_offset,
3374 depth,
3375 )?;
3376
3377 _prev_end_offset = cur_offset + envelope_size;
3378
3379 Ok(())
3380 }
3381 }
3382
3383 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3384 for SupplicantStaIfaceCallbackOnAssociationRejectedRequest
3385 {
3386 #[inline(always)]
3387 fn new_empty() -> Self {
3388 Self::default()
3389 }
3390
3391 unsafe fn decode(
3392 &mut self,
3393 decoder: &mut fidl::encoding::Decoder<'_, D>,
3394 offset: usize,
3395 mut depth: fidl::encoding::Depth,
3396 ) -> fidl::Result<()> {
3397 decoder.debug_check_bounds::<Self>(offset);
3398 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3399 None => return Err(fidl::Error::NotNullable),
3400 Some(len) => len,
3401 };
3402 if len == 0 {
3404 return Ok(());
3405 };
3406 depth.increment()?;
3407 let envelope_size = 8;
3408 let bytes_len = len * envelope_size;
3409 let offset = decoder.out_of_line_offset(bytes_len)?;
3410 let mut _next_ordinal_to_read = 0;
3412 let mut next_offset = offset;
3413 let end_offset = offset + bytes_len;
3414 _next_ordinal_to_read += 1;
3415 if next_offset >= end_offset {
3416 return Ok(());
3417 }
3418
3419 while _next_ordinal_to_read < 1 {
3421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3422 _next_ordinal_to_read += 1;
3423 next_offset += envelope_size;
3424 }
3425
3426 let next_out_of_line = decoder.next_out_of_line();
3427 let handles_before = decoder.remaining_handles();
3428 if let Some((inlined, num_bytes, num_handles)) =
3429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3430 {
3431 let member_inline_size =
3432 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
3433 decoder.context,
3434 );
3435 if inlined != (member_inline_size <= 4) {
3436 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3437 }
3438 let inner_offset;
3439 let mut inner_depth = depth.clone();
3440 if inlined {
3441 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3442 inner_offset = next_offset;
3443 } else {
3444 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3445 inner_depth.increment()?;
3446 }
3447 let val_ref = self
3448 .ssid
3449 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
3450 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
3451 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3452 {
3453 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3454 }
3455 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3456 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3457 }
3458 }
3459
3460 next_offset += envelope_size;
3461 _next_ordinal_to_read += 1;
3462 if next_offset >= end_offset {
3463 return Ok(());
3464 }
3465
3466 while _next_ordinal_to_read < 2 {
3468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3469 _next_ordinal_to_read += 1;
3470 next_offset += envelope_size;
3471 }
3472
3473 let next_out_of_line = decoder.next_out_of_line();
3474 let handles_before = decoder.remaining_handles();
3475 if let Some((inlined, num_bytes, num_handles)) =
3476 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3477 {
3478 let member_inline_size =
3479 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3480 decoder.context,
3481 );
3482 if inlined != (member_inline_size <= 4) {
3483 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3484 }
3485 let inner_offset;
3486 let mut inner_depth = depth.clone();
3487 if inlined {
3488 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3489 inner_offset = next_offset;
3490 } else {
3491 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3492 inner_depth.increment()?;
3493 }
3494 let val_ref = self
3495 .bssid
3496 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3497 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3498 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3499 {
3500 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3501 }
3502 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3503 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3504 }
3505 }
3506
3507 next_offset += envelope_size;
3508 _next_ordinal_to_read += 1;
3509 if next_offset >= end_offset {
3510 return Ok(());
3511 }
3512
3513 while _next_ordinal_to_read < 3 {
3515 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3516 _next_ordinal_to_read += 1;
3517 next_offset += envelope_size;
3518 }
3519
3520 let next_out_of_line = decoder.next_out_of_line();
3521 let handles_before = decoder.remaining_handles();
3522 if let Some((inlined, num_bytes, num_handles)) =
3523 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3524 {
3525 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3526 if inlined != (member_inline_size <= 4) {
3527 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3528 }
3529 let inner_offset;
3530 let mut inner_depth = depth.clone();
3531 if inlined {
3532 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3533 inner_offset = next_offset;
3534 } else {
3535 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3536 inner_depth.increment()?;
3537 }
3538 let val_ref = self.status_code.get_or_insert_with(|| {
3539 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::StatusCode, D)
3540 });
3541 fidl::decode!(
3542 fidl_fuchsia_wlan_ieee80211_common::StatusCode,
3543 D,
3544 val_ref,
3545 decoder,
3546 inner_offset,
3547 inner_depth
3548 )?;
3549 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3550 {
3551 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3552 }
3553 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3554 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3555 }
3556 }
3557
3558 next_offset += envelope_size;
3559 _next_ordinal_to_read += 1;
3560 if next_offset >= end_offset {
3561 return Ok(());
3562 }
3563
3564 while _next_ordinal_to_read < 4 {
3566 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3567 _next_ordinal_to_read += 1;
3568 next_offset += envelope_size;
3569 }
3570
3571 let next_out_of_line = decoder.next_out_of_line();
3572 let handles_before = decoder.remaining_handles();
3573 if let Some((inlined, num_bytes, num_handles)) =
3574 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3575 {
3576 let member_inline_size =
3577 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3578 if inlined != (member_inline_size <= 4) {
3579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3580 }
3581 let inner_offset;
3582 let mut inner_depth = depth.clone();
3583 if inlined {
3584 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3585 inner_offset = next_offset;
3586 } else {
3587 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3588 inner_depth.increment()?;
3589 }
3590 let val_ref = self.timed_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
3591 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3592 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3593 {
3594 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3595 }
3596 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3597 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3598 }
3599 }
3600
3601 next_offset += envelope_size;
3602
3603 while next_offset < end_offset {
3605 _next_ordinal_to_read += 1;
3606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3607 next_offset += envelope_size;
3608 }
3609
3610 Ok(())
3611 }
3612 }
3613
3614 impl SupplicantStaIfaceCallbackOnDisconnectedRequest {
3615 #[inline(always)]
3616 fn max_ordinal_present(&self) -> u64 {
3617 if let Some(_) = self.reason_code {
3618 return 3;
3619 }
3620 if let Some(_) = self.locally_generated {
3621 return 2;
3622 }
3623 if let Some(_) = self.bssid {
3624 return 1;
3625 }
3626 0
3627 }
3628 }
3629
3630 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
3631 type Borrowed<'a> = &'a Self;
3632 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3633 value
3634 }
3635 }
3636
3637 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
3638 type Owned = Self;
3639
3640 #[inline(always)]
3641 fn inline_align(_context: fidl::encoding::Context) -> usize {
3642 8
3643 }
3644
3645 #[inline(always)]
3646 fn inline_size(_context: fidl::encoding::Context) -> usize {
3647 16
3648 }
3649 }
3650
3651 unsafe impl<D: fidl::encoding::ResourceDialect>
3652 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnDisconnectedRequest, D>
3653 for &SupplicantStaIfaceCallbackOnDisconnectedRequest
3654 {
3655 unsafe fn encode(
3656 self,
3657 encoder: &mut fidl::encoding::Encoder<'_, D>,
3658 offset: usize,
3659 mut depth: fidl::encoding::Depth,
3660 ) -> fidl::Result<()> {
3661 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnDisconnectedRequest>(offset);
3662 let max_ordinal: u64 = self.max_ordinal_present();
3664 encoder.write_num(max_ordinal, offset);
3665 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3666 if max_ordinal == 0 {
3668 return Ok(());
3669 }
3670 depth.increment()?;
3671 let envelope_size = 8;
3672 let bytes_len = max_ordinal as usize * envelope_size;
3673 #[allow(unused_variables)]
3674 let offset = encoder.out_of_line_offset(bytes_len);
3675 let mut _prev_end_offset: usize = 0;
3676 if 1 > max_ordinal {
3677 return Ok(());
3678 }
3679
3680 let cur_offset: usize = (1 - 1) * envelope_size;
3683
3684 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3686
3687 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3692 self.bssid
3693 .as_ref()
3694 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3695 encoder,
3696 offset + cur_offset,
3697 depth,
3698 )?;
3699
3700 _prev_end_offset = cur_offset + envelope_size;
3701 if 2 > max_ordinal {
3702 return Ok(());
3703 }
3704
3705 let cur_offset: usize = (2 - 1) * envelope_size;
3708
3709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3711
3712 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3717 self.locally_generated
3718 .as_ref()
3719 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3720 encoder,
3721 offset + cur_offset,
3722 depth,
3723 )?;
3724
3725 _prev_end_offset = cur_offset + envelope_size;
3726 if 3 > max_ordinal {
3727 return Ok(());
3728 }
3729
3730 let cur_offset: usize = (3 - 1) * envelope_size;
3733
3734 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3736
3737 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D>(
3742 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
3743 encoder, offset + cur_offset, depth
3744 )?;
3745
3746 _prev_end_offset = cur_offset + envelope_size;
3747
3748 Ok(())
3749 }
3750 }
3751
3752 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3753 for SupplicantStaIfaceCallbackOnDisconnectedRequest
3754 {
3755 #[inline(always)]
3756 fn new_empty() -> Self {
3757 Self::default()
3758 }
3759
3760 unsafe fn decode(
3761 &mut self,
3762 decoder: &mut fidl::encoding::Decoder<'_, D>,
3763 offset: usize,
3764 mut depth: fidl::encoding::Depth,
3765 ) -> fidl::Result<()> {
3766 decoder.debug_check_bounds::<Self>(offset);
3767 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3768 None => return Err(fidl::Error::NotNullable),
3769 Some(len) => len,
3770 };
3771 if len == 0 {
3773 return Ok(());
3774 };
3775 depth.increment()?;
3776 let envelope_size = 8;
3777 let bytes_len = len * envelope_size;
3778 let offset = decoder.out_of_line_offset(bytes_len)?;
3779 let mut _next_ordinal_to_read = 0;
3781 let mut next_offset = offset;
3782 let end_offset = offset + bytes_len;
3783 _next_ordinal_to_read += 1;
3784 if next_offset >= end_offset {
3785 return Ok(());
3786 }
3787
3788 while _next_ordinal_to_read < 1 {
3790 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3791 _next_ordinal_to_read += 1;
3792 next_offset += envelope_size;
3793 }
3794
3795 let next_out_of_line = decoder.next_out_of_line();
3796 let handles_before = decoder.remaining_handles();
3797 if let Some((inlined, num_bytes, num_handles)) =
3798 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3799 {
3800 let member_inline_size =
3801 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3802 decoder.context,
3803 );
3804 if inlined != (member_inline_size <= 4) {
3805 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3806 }
3807 let inner_offset;
3808 let mut inner_depth = depth.clone();
3809 if inlined {
3810 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3811 inner_offset = next_offset;
3812 } else {
3813 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3814 inner_depth.increment()?;
3815 }
3816 let val_ref = self
3817 .bssid
3818 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3819 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3820 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3821 {
3822 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3823 }
3824 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3825 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3826 }
3827 }
3828
3829 next_offset += envelope_size;
3830 _next_ordinal_to_read += 1;
3831 if next_offset >= end_offset {
3832 return Ok(());
3833 }
3834
3835 while _next_ordinal_to_read < 2 {
3837 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3838 _next_ordinal_to_read += 1;
3839 next_offset += envelope_size;
3840 }
3841
3842 let next_out_of_line = decoder.next_out_of_line();
3843 let handles_before = decoder.remaining_handles();
3844 if let Some((inlined, num_bytes, num_handles)) =
3845 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3846 {
3847 let member_inline_size =
3848 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3849 if inlined != (member_inline_size <= 4) {
3850 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3851 }
3852 let inner_offset;
3853 let mut inner_depth = depth.clone();
3854 if inlined {
3855 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3856 inner_offset = next_offset;
3857 } else {
3858 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3859 inner_depth.increment()?;
3860 }
3861 let val_ref =
3862 self.locally_generated.get_or_insert_with(|| fidl::new_empty!(bool, D));
3863 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3864 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3865 {
3866 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3867 }
3868 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3869 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3870 }
3871 }
3872
3873 next_offset += envelope_size;
3874 _next_ordinal_to_read += 1;
3875 if next_offset >= end_offset {
3876 return Ok(());
3877 }
3878
3879 while _next_ordinal_to_read < 3 {
3881 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3882 _next_ordinal_to_read += 1;
3883 next_offset += envelope_size;
3884 }
3885
3886 let next_out_of_line = decoder.next_out_of_line();
3887 let handles_before = decoder.remaining_handles();
3888 if let Some((inlined, num_bytes, num_handles)) =
3889 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3890 {
3891 let member_inline_size = <fidl_fuchsia_wlan_ieee80211_common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3892 if inlined != (member_inline_size <= 4) {
3893 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3894 }
3895 let inner_offset;
3896 let mut inner_depth = depth.clone();
3897 if inlined {
3898 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3899 inner_offset = next_offset;
3900 } else {
3901 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3902 inner_depth.increment()?;
3903 }
3904 let val_ref = self.reason_code.get_or_insert_with(|| {
3905 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211_common::ReasonCode, D)
3906 });
3907 fidl::decode!(
3908 fidl_fuchsia_wlan_ieee80211_common::ReasonCode,
3909 D,
3910 val_ref,
3911 decoder,
3912 inner_offset,
3913 inner_depth
3914 )?;
3915 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3916 {
3917 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3918 }
3919 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3920 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3921 }
3922 }
3923
3924 next_offset += envelope_size;
3925
3926 while next_offset < end_offset {
3928 _next_ordinal_to_read += 1;
3929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3930 next_offset += envelope_size;
3931 }
3932
3933 Ok(())
3934 }
3935 }
3936
3937 impl SupplicantStaIfaceCallbackOnStateChangedRequest {
3938 #[inline(always)]
3939 fn max_ordinal_present(&self) -> u64 {
3940 if let Some(_) = self.ssid {
3941 return 4;
3942 }
3943 if let Some(_) = self.id {
3944 return 3;
3945 }
3946 if let Some(_) = self.bssid {
3947 return 2;
3948 }
3949 if let Some(_) = self.new_state {
3950 return 1;
3951 }
3952 0
3953 }
3954 }
3955
3956 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
3957 type Borrowed<'a> = &'a Self;
3958 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3959 value
3960 }
3961 }
3962
3963 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
3964 type Owned = Self;
3965
3966 #[inline(always)]
3967 fn inline_align(_context: fidl::encoding::Context) -> usize {
3968 8
3969 }
3970
3971 #[inline(always)]
3972 fn inline_size(_context: fidl::encoding::Context) -> usize {
3973 16
3974 }
3975 }
3976
3977 unsafe impl<D: fidl::encoding::ResourceDialect>
3978 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnStateChangedRequest, D>
3979 for &SupplicantStaIfaceCallbackOnStateChangedRequest
3980 {
3981 unsafe fn encode(
3982 self,
3983 encoder: &mut fidl::encoding::Encoder<'_, D>,
3984 offset: usize,
3985 mut depth: fidl::encoding::Depth,
3986 ) -> fidl::Result<()> {
3987 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnStateChangedRequest>(offset);
3988 let max_ordinal: u64 = self.max_ordinal_present();
3990 encoder.write_num(max_ordinal, offset);
3991 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3992 if max_ordinal == 0 {
3994 return Ok(());
3995 }
3996 depth.increment()?;
3997 let envelope_size = 8;
3998 let bytes_len = max_ordinal as usize * envelope_size;
3999 #[allow(unused_variables)]
4000 let offset = encoder.out_of_line_offset(bytes_len);
4001 let mut _prev_end_offset: usize = 0;
4002 if 1 > max_ordinal {
4003 return Ok(());
4004 }
4005
4006 let cur_offset: usize = (1 - 1) * envelope_size;
4009
4010 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4012
4013 fidl::encoding::encode_in_envelope_optional::<StaIfaceCallbackState, D>(
4018 self.new_state
4019 .as_ref()
4020 .map(<StaIfaceCallbackState as fidl::encoding::ValueTypeMarker>::borrow),
4021 encoder,
4022 offset + cur_offset,
4023 depth,
4024 )?;
4025
4026 _prev_end_offset = cur_offset + envelope_size;
4027 if 2 > max_ordinal {
4028 return Ok(());
4029 }
4030
4031 let cur_offset: usize = (2 - 1) * envelope_size;
4034
4035 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4037
4038 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4043 self.bssid
4044 .as_ref()
4045 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4046 encoder,
4047 offset + cur_offset,
4048 depth,
4049 )?;
4050
4051 _prev_end_offset = cur_offset + envelope_size;
4052 if 3 > max_ordinal {
4053 return Ok(());
4054 }
4055
4056 let cur_offset: usize = (3 - 1) * envelope_size;
4059
4060 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4062
4063 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4068 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4069 encoder,
4070 offset + cur_offset,
4071 depth,
4072 )?;
4073
4074 _prev_end_offset = cur_offset + envelope_size;
4075 if 4 > max_ordinal {
4076 return Ok(());
4077 }
4078
4079 let cur_offset: usize = (4 - 1) * envelope_size;
4082
4083 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4085
4086 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
4091 self.ssid.as_ref().map(
4092 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
4093 ),
4094 encoder,
4095 offset + cur_offset,
4096 depth,
4097 )?;
4098
4099 _prev_end_offset = cur_offset + envelope_size;
4100
4101 Ok(())
4102 }
4103 }
4104
4105 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4106 for SupplicantStaIfaceCallbackOnStateChangedRequest
4107 {
4108 #[inline(always)]
4109 fn new_empty() -> Self {
4110 Self::default()
4111 }
4112
4113 unsafe fn decode(
4114 &mut self,
4115 decoder: &mut fidl::encoding::Decoder<'_, D>,
4116 offset: usize,
4117 mut depth: fidl::encoding::Depth,
4118 ) -> fidl::Result<()> {
4119 decoder.debug_check_bounds::<Self>(offset);
4120 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4121 None => return Err(fidl::Error::NotNullable),
4122 Some(len) => len,
4123 };
4124 if len == 0 {
4126 return Ok(());
4127 };
4128 depth.increment()?;
4129 let envelope_size = 8;
4130 let bytes_len = len * envelope_size;
4131 let offset = decoder.out_of_line_offset(bytes_len)?;
4132 let mut _next_ordinal_to_read = 0;
4134 let mut next_offset = offset;
4135 let end_offset = offset + bytes_len;
4136 _next_ordinal_to_read += 1;
4137 if next_offset >= end_offset {
4138 return Ok(());
4139 }
4140
4141 while _next_ordinal_to_read < 1 {
4143 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4144 _next_ordinal_to_read += 1;
4145 next_offset += envelope_size;
4146 }
4147
4148 let next_out_of_line = decoder.next_out_of_line();
4149 let handles_before = decoder.remaining_handles();
4150 if let Some((inlined, num_bytes, num_handles)) =
4151 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4152 {
4153 let member_inline_size =
4154 <StaIfaceCallbackState as fidl::encoding::TypeMarker>::inline_size(
4155 decoder.context,
4156 );
4157 if inlined != (member_inline_size <= 4) {
4158 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4159 }
4160 let inner_offset;
4161 let mut inner_depth = depth.clone();
4162 if inlined {
4163 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4164 inner_offset = next_offset;
4165 } else {
4166 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4167 inner_depth.increment()?;
4168 }
4169 let val_ref = self
4170 .new_state
4171 .get_or_insert_with(|| fidl::new_empty!(StaIfaceCallbackState, D));
4172 fidl::decode!(
4173 StaIfaceCallbackState,
4174 D,
4175 val_ref,
4176 decoder,
4177 inner_offset,
4178 inner_depth
4179 )?;
4180 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4181 {
4182 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4183 }
4184 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4185 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4186 }
4187 }
4188
4189 next_offset += envelope_size;
4190 _next_ordinal_to_read += 1;
4191 if next_offset >= end_offset {
4192 return Ok(());
4193 }
4194
4195 while _next_ordinal_to_read < 2 {
4197 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4198 _next_ordinal_to_read += 1;
4199 next_offset += envelope_size;
4200 }
4201
4202 let next_out_of_line = decoder.next_out_of_line();
4203 let handles_before = decoder.remaining_handles();
4204 if let Some((inlined, num_bytes, num_handles)) =
4205 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4206 {
4207 let member_inline_size =
4208 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4209 decoder.context,
4210 );
4211 if inlined != (member_inline_size <= 4) {
4212 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4213 }
4214 let inner_offset;
4215 let mut inner_depth = depth.clone();
4216 if inlined {
4217 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4218 inner_offset = next_offset;
4219 } else {
4220 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4221 inner_depth.increment()?;
4222 }
4223 let val_ref = self
4224 .bssid
4225 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4226 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4227 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4228 {
4229 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4230 }
4231 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4232 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4233 }
4234 }
4235
4236 next_offset += envelope_size;
4237 _next_ordinal_to_read += 1;
4238 if next_offset >= end_offset {
4239 return Ok(());
4240 }
4241
4242 while _next_ordinal_to_read < 3 {
4244 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4245 _next_ordinal_to_read += 1;
4246 next_offset += envelope_size;
4247 }
4248
4249 let next_out_of_line = decoder.next_out_of_line();
4250 let handles_before = decoder.remaining_handles();
4251 if let Some((inlined, num_bytes, num_handles)) =
4252 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4253 {
4254 let member_inline_size =
4255 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4256 if inlined != (member_inline_size <= 4) {
4257 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4258 }
4259 let inner_offset;
4260 let mut inner_depth = depth.clone();
4261 if inlined {
4262 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4263 inner_offset = next_offset;
4264 } else {
4265 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4266 inner_depth.increment()?;
4267 }
4268 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
4269 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4270 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4271 {
4272 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4273 }
4274 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4275 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4276 }
4277 }
4278
4279 next_offset += envelope_size;
4280 _next_ordinal_to_read += 1;
4281 if next_offset >= end_offset {
4282 return Ok(());
4283 }
4284
4285 while _next_ordinal_to_read < 4 {
4287 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4288 _next_ordinal_to_read += 1;
4289 next_offset += envelope_size;
4290 }
4291
4292 let next_out_of_line = decoder.next_out_of_line();
4293 let handles_before = decoder.remaining_handles();
4294 if let Some((inlined, num_bytes, num_handles)) =
4295 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4296 {
4297 let member_inline_size =
4298 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
4299 decoder.context,
4300 );
4301 if inlined != (member_inline_size <= 4) {
4302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4303 }
4304 let inner_offset;
4305 let mut inner_depth = depth.clone();
4306 if inlined {
4307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4308 inner_offset = next_offset;
4309 } else {
4310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4311 inner_depth.increment()?;
4312 }
4313 let val_ref = self
4314 .ssid
4315 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
4316 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
4317 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4318 {
4319 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4320 }
4321 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4322 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4323 }
4324 }
4325
4326 next_offset += envelope_size;
4327
4328 while next_offset < end_offset {
4330 _next_ordinal_to_read += 1;
4331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4332 next_offset += envelope_size;
4333 }
4334
4335 Ok(())
4336 }
4337 }
4338
4339 impl SupplicantStaIfaceSetBtCoexistenceModeRequest {
4340 #[inline(always)]
4341 fn max_ordinal_present(&self) -> u64 {
4342 if let Some(_) = self.mode {
4343 return 1;
4344 }
4345 0
4346 }
4347 }
4348
4349 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
4350 type Borrowed<'a> = &'a Self;
4351 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4352 value
4353 }
4354 }
4355
4356 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
4357 type Owned = Self;
4358
4359 #[inline(always)]
4360 fn inline_align(_context: fidl::encoding::Context) -> usize {
4361 8
4362 }
4363
4364 #[inline(always)]
4365 fn inline_size(_context: fidl::encoding::Context) -> usize {
4366 16
4367 }
4368 }
4369
4370 unsafe impl<D: fidl::encoding::ResourceDialect>
4371 fidl::encoding::Encode<SupplicantStaIfaceSetBtCoexistenceModeRequest, D>
4372 for &SupplicantStaIfaceSetBtCoexistenceModeRequest
4373 {
4374 unsafe fn encode(
4375 self,
4376 encoder: &mut fidl::encoding::Encoder<'_, D>,
4377 offset: usize,
4378 mut depth: fidl::encoding::Depth,
4379 ) -> fidl::Result<()> {
4380 encoder.debug_check_bounds::<SupplicantStaIfaceSetBtCoexistenceModeRequest>(offset);
4381 let max_ordinal: u64 = self.max_ordinal_present();
4383 encoder.write_num(max_ordinal, offset);
4384 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4385 if max_ordinal == 0 {
4387 return Ok(());
4388 }
4389 depth.increment()?;
4390 let envelope_size = 8;
4391 let bytes_len = max_ordinal as usize * envelope_size;
4392 #[allow(unused_variables)]
4393 let offset = encoder.out_of_line_offset(bytes_len);
4394 let mut _prev_end_offset: usize = 0;
4395 if 1 > max_ordinal {
4396 return Ok(());
4397 }
4398
4399 let cur_offset: usize = (1 - 1) * envelope_size;
4402
4403 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4405
4406 fidl::encoding::encode_in_envelope_optional::<BtCoexistenceMode, D>(
4411 self.mode
4412 .as_ref()
4413 .map(<BtCoexistenceMode as fidl::encoding::ValueTypeMarker>::borrow),
4414 encoder,
4415 offset + cur_offset,
4416 depth,
4417 )?;
4418
4419 _prev_end_offset = cur_offset + envelope_size;
4420
4421 Ok(())
4422 }
4423 }
4424
4425 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4426 for SupplicantStaIfaceSetBtCoexistenceModeRequest
4427 {
4428 #[inline(always)]
4429 fn new_empty() -> Self {
4430 Self::default()
4431 }
4432
4433 unsafe fn decode(
4434 &mut self,
4435 decoder: &mut fidl::encoding::Decoder<'_, D>,
4436 offset: usize,
4437 mut depth: fidl::encoding::Depth,
4438 ) -> fidl::Result<()> {
4439 decoder.debug_check_bounds::<Self>(offset);
4440 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4441 None => return Err(fidl::Error::NotNullable),
4442 Some(len) => len,
4443 };
4444 if len == 0 {
4446 return Ok(());
4447 };
4448 depth.increment()?;
4449 let envelope_size = 8;
4450 let bytes_len = len * envelope_size;
4451 let offset = decoder.out_of_line_offset(bytes_len)?;
4452 let mut _next_ordinal_to_read = 0;
4454 let mut next_offset = offset;
4455 let end_offset = offset + bytes_len;
4456 _next_ordinal_to_read += 1;
4457 if next_offset >= end_offset {
4458 return Ok(());
4459 }
4460
4461 while _next_ordinal_to_read < 1 {
4463 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4464 _next_ordinal_to_read += 1;
4465 next_offset += envelope_size;
4466 }
4467
4468 let next_out_of_line = decoder.next_out_of_line();
4469 let handles_before = decoder.remaining_handles();
4470 if let Some((inlined, num_bytes, num_handles)) =
4471 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4472 {
4473 let member_inline_size =
4474 <BtCoexistenceMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4475 if inlined != (member_inline_size <= 4) {
4476 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4477 }
4478 let inner_offset;
4479 let mut inner_depth = depth.clone();
4480 if inlined {
4481 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4482 inner_offset = next_offset;
4483 } else {
4484 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4485 inner_depth.increment()?;
4486 }
4487 let val_ref =
4488 self.mode.get_or_insert_with(|| fidl::new_empty!(BtCoexistenceMode, D));
4489 fidl::decode!(BtCoexistenceMode, D, val_ref, decoder, inner_offset, inner_depth)?;
4490 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4491 {
4492 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4493 }
4494 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4495 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4496 }
4497 }
4498
4499 next_offset += envelope_size;
4500
4501 while next_offset < end_offset {
4503 _next_ordinal_to_read += 1;
4504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4505 next_offset += envelope_size;
4506 }
4507
4508 Ok(())
4509 }
4510 }
4511
4512 impl SupplicantStaIfaceGetMacAddressResponse {
4513 #[inline(always)]
4514 fn max_ordinal_present(&self) -> u64 {
4515 if let Some(_) = self.mac_addr {
4516 return 1;
4517 }
4518 0
4519 }
4520 }
4521
4522 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetMacAddressResponse {
4523 type Borrowed<'a> = &'a Self;
4524 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4525 value
4526 }
4527 }
4528
4529 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetMacAddressResponse {
4530 type Owned = Self;
4531
4532 #[inline(always)]
4533 fn inline_align(_context: fidl::encoding::Context) -> usize {
4534 8
4535 }
4536
4537 #[inline(always)]
4538 fn inline_size(_context: fidl::encoding::Context) -> usize {
4539 16
4540 }
4541 }
4542
4543 unsafe impl<D: fidl::encoding::ResourceDialect>
4544 fidl::encoding::Encode<SupplicantStaIfaceGetMacAddressResponse, D>
4545 for &SupplicantStaIfaceGetMacAddressResponse
4546 {
4547 unsafe fn encode(
4548 self,
4549 encoder: &mut fidl::encoding::Encoder<'_, D>,
4550 offset: usize,
4551 mut depth: fidl::encoding::Depth,
4552 ) -> fidl::Result<()> {
4553 encoder.debug_check_bounds::<SupplicantStaIfaceGetMacAddressResponse>(offset);
4554 let max_ordinal: u64 = self.max_ordinal_present();
4556 encoder.write_num(max_ordinal, offset);
4557 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4558 if max_ordinal == 0 {
4560 return Ok(());
4561 }
4562 depth.increment()?;
4563 let envelope_size = 8;
4564 let bytes_len = max_ordinal as usize * envelope_size;
4565 #[allow(unused_variables)]
4566 let offset = encoder.out_of_line_offset(bytes_len);
4567 let mut _prev_end_offset: usize = 0;
4568 if 1 > max_ordinal {
4569 return Ok(());
4570 }
4571
4572 let cur_offset: usize = (1 - 1) * envelope_size;
4575
4576 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4578
4579 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4584 self.mac_addr
4585 .as_ref()
4586 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4587 encoder,
4588 offset + cur_offset,
4589 depth,
4590 )?;
4591
4592 _prev_end_offset = cur_offset + envelope_size;
4593
4594 Ok(())
4595 }
4596 }
4597
4598 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4599 for SupplicantStaIfaceGetMacAddressResponse
4600 {
4601 #[inline(always)]
4602 fn new_empty() -> Self {
4603 Self::default()
4604 }
4605
4606 unsafe fn decode(
4607 &mut self,
4608 decoder: &mut fidl::encoding::Decoder<'_, D>,
4609 offset: usize,
4610 mut depth: fidl::encoding::Depth,
4611 ) -> fidl::Result<()> {
4612 decoder.debug_check_bounds::<Self>(offset);
4613 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4614 None => return Err(fidl::Error::NotNullable),
4615 Some(len) => len,
4616 };
4617 if len == 0 {
4619 return Ok(());
4620 };
4621 depth.increment()?;
4622 let envelope_size = 8;
4623 let bytes_len = len * envelope_size;
4624 let offset = decoder.out_of_line_offset(bytes_len)?;
4625 let mut _next_ordinal_to_read = 0;
4627 let mut next_offset = offset;
4628 let end_offset = offset + bytes_len;
4629 _next_ordinal_to_read += 1;
4630 if next_offset >= end_offset {
4631 return Ok(());
4632 }
4633
4634 while _next_ordinal_to_read < 1 {
4636 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4637 _next_ordinal_to_read += 1;
4638 next_offset += envelope_size;
4639 }
4640
4641 let next_out_of_line = decoder.next_out_of_line();
4642 let handles_before = decoder.remaining_handles();
4643 if let Some((inlined, num_bytes, num_handles)) =
4644 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4645 {
4646 let member_inline_size =
4647 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4648 decoder.context,
4649 );
4650 if inlined != (member_inline_size <= 4) {
4651 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4652 }
4653 let inner_offset;
4654 let mut inner_depth = depth.clone();
4655 if inlined {
4656 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4657 inner_offset = next_offset;
4658 } else {
4659 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4660 inner_depth.increment()?;
4661 }
4662 let val_ref = self
4663 .mac_addr
4664 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4665 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4666 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4667 {
4668 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4669 }
4670 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4671 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4672 }
4673 }
4674
4675 next_offset += envelope_size;
4676
4677 while next_offset < end_offset {
4679 _next_ordinal_to_read += 1;
4680 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4681 next_offset += envelope_size;
4682 }
4683
4684 Ok(())
4685 }
4686 }
4687
4688 impl SupplicantStaIfaceGetSignalPollResultsResponse {
4689 #[inline(always)]
4690 fn max_ordinal_present(&self) -> u64 {
4691 if let Some(_) = self.frequency_mhz {
4692 return 4;
4693 }
4694 if let Some(_) = self.rx_bitrate_mbps {
4695 return 3;
4696 }
4697 if let Some(_) = self.tx_bitrate_mbps {
4698 return 2;
4699 }
4700 if let Some(_) = self.current_rssi_dbm {
4701 return 1;
4702 }
4703 0
4704 }
4705 }
4706
4707 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetSignalPollResultsResponse {
4708 type Borrowed<'a> = &'a Self;
4709 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4710 value
4711 }
4712 }
4713
4714 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetSignalPollResultsResponse {
4715 type Owned = Self;
4716
4717 #[inline(always)]
4718 fn inline_align(_context: fidl::encoding::Context) -> usize {
4719 8
4720 }
4721
4722 #[inline(always)]
4723 fn inline_size(_context: fidl::encoding::Context) -> usize {
4724 16
4725 }
4726 }
4727
4728 unsafe impl<D: fidl::encoding::ResourceDialect>
4729 fidl::encoding::Encode<SupplicantStaIfaceGetSignalPollResultsResponse, D>
4730 for &SupplicantStaIfaceGetSignalPollResultsResponse
4731 {
4732 unsafe fn encode(
4733 self,
4734 encoder: &mut fidl::encoding::Encoder<'_, D>,
4735 offset: usize,
4736 mut depth: fidl::encoding::Depth,
4737 ) -> fidl::Result<()> {
4738 encoder.debug_check_bounds::<SupplicantStaIfaceGetSignalPollResultsResponse>(offset);
4739 let max_ordinal: u64 = self.max_ordinal_present();
4741 encoder.write_num(max_ordinal, offset);
4742 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4743 if max_ordinal == 0 {
4745 return Ok(());
4746 }
4747 depth.increment()?;
4748 let envelope_size = 8;
4749 let bytes_len = max_ordinal as usize * envelope_size;
4750 #[allow(unused_variables)]
4751 let offset = encoder.out_of_line_offset(bytes_len);
4752 let mut _prev_end_offset: usize = 0;
4753 if 1 > max_ordinal {
4754 return Ok(());
4755 }
4756
4757 let cur_offset: usize = (1 - 1) * envelope_size;
4760
4761 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4763
4764 fidl::encoding::encode_in_envelope_optional::<i32, D>(
4769 self.current_rssi_dbm
4770 .as_ref()
4771 .map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
4772 encoder,
4773 offset + cur_offset,
4774 depth,
4775 )?;
4776
4777 _prev_end_offset = cur_offset + envelope_size;
4778 if 2 > max_ordinal {
4779 return Ok(());
4780 }
4781
4782 let cur_offset: usize = (2 - 1) * envelope_size;
4785
4786 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4788
4789 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4794 self.tx_bitrate_mbps.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4795 encoder,
4796 offset + cur_offset,
4797 depth,
4798 )?;
4799
4800 _prev_end_offset = cur_offset + envelope_size;
4801 if 3 > max_ordinal {
4802 return Ok(());
4803 }
4804
4805 let cur_offset: usize = (3 - 1) * envelope_size;
4808
4809 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4811
4812 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4817 self.rx_bitrate_mbps.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4818 encoder,
4819 offset + cur_offset,
4820 depth,
4821 )?;
4822
4823 _prev_end_offset = cur_offset + envelope_size;
4824 if 4 > max_ordinal {
4825 return Ok(());
4826 }
4827
4828 let cur_offset: usize = (4 - 1) * envelope_size;
4831
4832 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4834
4835 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4840 self.frequency_mhz.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4841 encoder,
4842 offset + cur_offset,
4843 depth,
4844 )?;
4845
4846 _prev_end_offset = cur_offset + envelope_size;
4847
4848 Ok(())
4849 }
4850 }
4851
4852 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4853 for SupplicantStaIfaceGetSignalPollResultsResponse
4854 {
4855 #[inline(always)]
4856 fn new_empty() -> Self {
4857 Self::default()
4858 }
4859
4860 unsafe fn decode(
4861 &mut self,
4862 decoder: &mut fidl::encoding::Decoder<'_, D>,
4863 offset: usize,
4864 mut depth: fidl::encoding::Depth,
4865 ) -> fidl::Result<()> {
4866 decoder.debug_check_bounds::<Self>(offset);
4867 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4868 None => return Err(fidl::Error::NotNullable),
4869 Some(len) => len,
4870 };
4871 if len == 0 {
4873 return Ok(());
4874 };
4875 depth.increment()?;
4876 let envelope_size = 8;
4877 let bytes_len = len * envelope_size;
4878 let offset = decoder.out_of_line_offset(bytes_len)?;
4879 let mut _next_ordinal_to_read = 0;
4881 let mut next_offset = offset;
4882 let end_offset = offset + bytes_len;
4883 _next_ordinal_to_read += 1;
4884 if next_offset >= end_offset {
4885 return Ok(());
4886 }
4887
4888 while _next_ordinal_to_read < 1 {
4890 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4891 _next_ordinal_to_read += 1;
4892 next_offset += envelope_size;
4893 }
4894
4895 let next_out_of_line = decoder.next_out_of_line();
4896 let handles_before = decoder.remaining_handles();
4897 if let Some((inlined, num_bytes, num_handles)) =
4898 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4899 {
4900 let member_inline_size =
4901 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4902 if inlined != (member_inline_size <= 4) {
4903 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4904 }
4905 let inner_offset;
4906 let mut inner_depth = depth.clone();
4907 if inlined {
4908 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4909 inner_offset = next_offset;
4910 } else {
4911 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4912 inner_depth.increment()?;
4913 }
4914 let val_ref = self.current_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i32, D));
4915 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
4916 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4917 {
4918 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4919 }
4920 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4921 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4922 }
4923 }
4924
4925 next_offset += envelope_size;
4926 _next_ordinal_to_read += 1;
4927 if next_offset >= end_offset {
4928 return Ok(());
4929 }
4930
4931 while _next_ordinal_to_read < 2 {
4933 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4934 _next_ordinal_to_read += 1;
4935 next_offset += envelope_size;
4936 }
4937
4938 let next_out_of_line = decoder.next_out_of_line();
4939 let handles_before = decoder.remaining_handles();
4940 if let Some((inlined, num_bytes, num_handles)) =
4941 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4942 {
4943 let member_inline_size =
4944 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4945 if inlined != (member_inline_size <= 4) {
4946 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4947 }
4948 let inner_offset;
4949 let mut inner_depth = depth.clone();
4950 if inlined {
4951 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4952 inner_offset = next_offset;
4953 } else {
4954 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4955 inner_depth.increment()?;
4956 }
4957 let val_ref = self.tx_bitrate_mbps.get_or_insert_with(|| fidl::new_empty!(u32, D));
4958 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4959 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4960 {
4961 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4962 }
4963 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4964 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4965 }
4966 }
4967
4968 next_offset += envelope_size;
4969 _next_ordinal_to_read += 1;
4970 if next_offset >= end_offset {
4971 return Ok(());
4972 }
4973
4974 while _next_ordinal_to_read < 3 {
4976 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4977 _next_ordinal_to_read += 1;
4978 next_offset += envelope_size;
4979 }
4980
4981 let next_out_of_line = decoder.next_out_of_line();
4982 let handles_before = decoder.remaining_handles();
4983 if let Some((inlined, num_bytes, num_handles)) =
4984 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4985 {
4986 let member_inline_size =
4987 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4988 if inlined != (member_inline_size <= 4) {
4989 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4990 }
4991 let inner_offset;
4992 let mut inner_depth = depth.clone();
4993 if inlined {
4994 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4995 inner_offset = next_offset;
4996 } else {
4997 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4998 inner_depth.increment()?;
4999 }
5000 let val_ref = self.rx_bitrate_mbps.get_or_insert_with(|| fidl::new_empty!(u32, D));
5001 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5002 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5003 {
5004 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5005 }
5006 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5007 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5008 }
5009 }
5010
5011 next_offset += envelope_size;
5012 _next_ordinal_to_read += 1;
5013 if next_offset >= end_offset {
5014 return Ok(());
5015 }
5016
5017 while _next_ordinal_to_read < 4 {
5019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5020 _next_ordinal_to_read += 1;
5021 next_offset += envelope_size;
5022 }
5023
5024 let next_out_of_line = decoder.next_out_of_line();
5025 let handles_before = decoder.remaining_handles();
5026 if let Some((inlined, num_bytes, num_handles)) =
5027 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5028 {
5029 let member_inline_size =
5030 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5031 if inlined != (member_inline_size <= 4) {
5032 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5033 }
5034 let inner_offset;
5035 let mut inner_depth = depth.clone();
5036 if inlined {
5037 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5038 inner_offset = next_offset;
5039 } else {
5040 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5041 inner_depth.increment()?;
5042 }
5043 let val_ref = self.frequency_mhz.get_or_insert_with(|| fidl::new_empty!(u32, D));
5044 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5045 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5046 {
5047 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5048 }
5049 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5050 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5051 }
5052 }
5053
5054 next_offset += envelope_size;
5055
5056 while next_offset < end_offset {
5058 _next_ordinal_to_read += 1;
5059 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5060 next_offset += envelope_size;
5061 }
5062
5063 Ok(())
5064 }
5065 }
5066
5067 impl SupplicantStaNetworkSetBssidRequest {
5068 #[inline(always)]
5069 fn max_ordinal_present(&self) -> u64 {
5070 if let Some(_) = self.bssid {
5071 return 1;
5072 }
5073 0
5074 }
5075 }
5076
5077 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetBssidRequest {
5078 type Borrowed<'a> = &'a Self;
5079 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5080 value
5081 }
5082 }
5083
5084 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetBssidRequest {
5085 type Owned = Self;
5086
5087 #[inline(always)]
5088 fn inline_align(_context: fidl::encoding::Context) -> usize {
5089 8
5090 }
5091
5092 #[inline(always)]
5093 fn inline_size(_context: fidl::encoding::Context) -> usize {
5094 16
5095 }
5096 }
5097
5098 unsafe impl<D: fidl::encoding::ResourceDialect>
5099 fidl::encoding::Encode<SupplicantStaNetworkSetBssidRequest, D>
5100 for &SupplicantStaNetworkSetBssidRequest
5101 {
5102 unsafe fn encode(
5103 self,
5104 encoder: &mut fidl::encoding::Encoder<'_, D>,
5105 offset: usize,
5106 mut depth: fidl::encoding::Depth,
5107 ) -> fidl::Result<()> {
5108 encoder.debug_check_bounds::<SupplicantStaNetworkSetBssidRequest>(offset);
5109 let max_ordinal: u64 = self.max_ordinal_present();
5111 encoder.write_num(max_ordinal, offset);
5112 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5113 if max_ordinal == 0 {
5115 return Ok(());
5116 }
5117 depth.increment()?;
5118 let envelope_size = 8;
5119 let bytes_len = max_ordinal as usize * envelope_size;
5120 #[allow(unused_variables)]
5121 let offset = encoder.out_of_line_offset(bytes_len);
5122 let mut _prev_end_offset: usize = 0;
5123 if 1 > max_ordinal {
5124 return Ok(());
5125 }
5126
5127 let cur_offset: usize = (1 - 1) * envelope_size;
5130
5131 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5133
5134 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5139 self.bssid
5140 .as_ref()
5141 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5142 encoder,
5143 offset + cur_offset,
5144 depth,
5145 )?;
5146
5147 _prev_end_offset = cur_offset + envelope_size;
5148
5149 Ok(())
5150 }
5151 }
5152
5153 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5154 for SupplicantStaNetworkSetBssidRequest
5155 {
5156 #[inline(always)]
5157 fn new_empty() -> Self {
5158 Self::default()
5159 }
5160
5161 unsafe fn decode(
5162 &mut self,
5163 decoder: &mut fidl::encoding::Decoder<'_, D>,
5164 offset: usize,
5165 mut depth: fidl::encoding::Depth,
5166 ) -> fidl::Result<()> {
5167 decoder.debug_check_bounds::<Self>(offset);
5168 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5169 None => return Err(fidl::Error::NotNullable),
5170 Some(len) => len,
5171 };
5172 if len == 0 {
5174 return Ok(());
5175 };
5176 depth.increment()?;
5177 let envelope_size = 8;
5178 let bytes_len = len * envelope_size;
5179 let offset = decoder.out_of_line_offset(bytes_len)?;
5180 let mut _next_ordinal_to_read = 0;
5182 let mut next_offset = offset;
5183 let end_offset = offset + bytes_len;
5184 _next_ordinal_to_read += 1;
5185 if next_offset >= end_offset {
5186 return Ok(());
5187 }
5188
5189 while _next_ordinal_to_read < 1 {
5191 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5192 _next_ordinal_to_read += 1;
5193 next_offset += envelope_size;
5194 }
5195
5196 let next_out_of_line = decoder.next_out_of_line();
5197 let handles_before = decoder.remaining_handles();
5198 if let Some((inlined, num_bytes, num_handles)) =
5199 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5200 {
5201 let member_inline_size =
5202 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5203 decoder.context,
5204 );
5205 if inlined != (member_inline_size <= 4) {
5206 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5207 }
5208 let inner_offset;
5209 let mut inner_depth = depth.clone();
5210 if inlined {
5211 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5212 inner_offset = next_offset;
5213 } else {
5214 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5215 inner_depth.increment()?;
5216 }
5217 let val_ref = self
5218 .bssid
5219 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5220 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5221 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5222 {
5223 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5224 }
5225 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5226 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5227 }
5228 }
5229
5230 next_offset += envelope_size;
5231
5232 while next_offset < end_offset {
5234 _next_ordinal_to_read += 1;
5235 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5236 next_offset += envelope_size;
5237 }
5238
5239 Ok(())
5240 }
5241 }
5242
5243 impl SupplicantStaNetworkSetKeyMgmtRequest {
5244 #[inline(always)]
5245 fn max_ordinal_present(&self) -> u64 {
5246 if let Some(_) = self.key_mgmt_mask {
5247 return 1;
5248 }
5249 0
5250 }
5251 }
5252
5253 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
5254 type Borrowed<'a> = &'a Self;
5255 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5256 value
5257 }
5258 }
5259
5260 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
5261 type Owned = Self;
5262
5263 #[inline(always)]
5264 fn inline_align(_context: fidl::encoding::Context) -> usize {
5265 8
5266 }
5267
5268 #[inline(always)]
5269 fn inline_size(_context: fidl::encoding::Context) -> usize {
5270 16
5271 }
5272 }
5273
5274 unsafe impl<D: fidl::encoding::ResourceDialect>
5275 fidl::encoding::Encode<SupplicantStaNetworkSetKeyMgmtRequest, D>
5276 for &SupplicantStaNetworkSetKeyMgmtRequest
5277 {
5278 unsafe fn encode(
5279 self,
5280 encoder: &mut fidl::encoding::Encoder<'_, D>,
5281 offset: usize,
5282 mut depth: fidl::encoding::Depth,
5283 ) -> fidl::Result<()> {
5284 encoder.debug_check_bounds::<SupplicantStaNetworkSetKeyMgmtRequest>(offset);
5285 let max_ordinal: u64 = self.max_ordinal_present();
5287 encoder.write_num(max_ordinal, offset);
5288 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5289 if max_ordinal == 0 {
5291 return Ok(());
5292 }
5293 depth.increment()?;
5294 let envelope_size = 8;
5295 let bytes_len = max_ordinal as usize * envelope_size;
5296 #[allow(unused_variables)]
5297 let offset = encoder.out_of_line_offset(bytes_len);
5298 let mut _prev_end_offset: usize = 0;
5299 if 1 > max_ordinal {
5300 return Ok(());
5301 }
5302
5303 let cur_offset: usize = (1 - 1) * envelope_size;
5306
5307 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5309
5310 fidl::encoding::encode_in_envelope_optional::<KeyMgmtMask, D>(
5315 self.key_mgmt_mask
5316 .as_ref()
5317 .map(<KeyMgmtMask as fidl::encoding::ValueTypeMarker>::borrow),
5318 encoder,
5319 offset + cur_offset,
5320 depth,
5321 )?;
5322
5323 _prev_end_offset = cur_offset + envelope_size;
5324
5325 Ok(())
5326 }
5327 }
5328
5329 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5330 for SupplicantStaNetworkSetKeyMgmtRequest
5331 {
5332 #[inline(always)]
5333 fn new_empty() -> Self {
5334 Self::default()
5335 }
5336
5337 unsafe fn decode(
5338 &mut self,
5339 decoder: &mut fidl::encoding::Decoder<'_, D>,
5340 offset: usize,
5341 mut depth: fidl::encoding::Depth,
5342 ) -> fidl::Result<()> {
5343 decoder.debug_check_bounds::<Self>(offset);
5344 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5345 None => return Err(fidl::Error::NotNullable),
5346 Some(len) => len,
5347 };
5348 if len == 0 {
5350 return Ok(());
5351 };
5352 depth.increment()?;
5353 let envelope_size = 8;
5354 let bytes_len = len * envelope_size;
5355 let offset = decoder.out_of_line_offset(bytes_len)?;
5356 let mut _next_ordinal_to_read = 0;
5358 let mut next_offset = offset;
5359 let end_offset = offset + bytes_len;
5360 _next_ordinal_to_read += 1;
5361 if next_offset >= end_offset {
5362 return Ok(());
5363 }
5364
5365 while _next_ordinal_to_read < 1 {
5367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5368 _next_ordinal_to_read += 1;
5369 next_offset += envelope_size;
5370 }
5371
5372 let next_out_of_line = decoder.next_out_of_line();
5373 let handles_before = decoder.remaining_handles();
5374 if let Some((inlined, num_bytes, num_handles)) =
5375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5376 {
5377 let member_inline_size =
5378 <KeyMgmtMask as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5379 if inlined != (member_inline_size <= 4) {
5380 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5381 }
5382 let inner_offset;
5383 let mut inner_depth = depth.clone();
5384 if inlined {
5385 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5386 inner_offset = next_offset;
5387 } else {
5388 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5389 inner_depth.increment()?;
5390 }
5391 let val_ref =
5392 self.key_mgmt_mask.get_or_insert_with(|| fidl::new_empty!(KeyMgmtMask, D));
5393 fidl::decode!(KeyMgmtMask, D, val_ref, decoder, inner_offset, inner_depth)?;
5394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5395 {
5396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5397 }
5398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5400 }
5401 }
5402
5403 next_offset += envelope_size;
5404
5405 while next_offset < end_offset {
5407 _next_ordinal_to_read += 1;
5408 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5409 next_offset += envelope_size;
5410 }
5411
5412 Ok(())
5413 }
5414 }
5415
5416 impl SupplicantStaNetworkSetPskPassphraseRequest {
5417 #[inline(always)]
5418 fn max_ordinal_present(&self) -> u64 {
5419 if let Some(_) = self.passphrase {
5420 return 1;
5421 }
5422 0
5423 }
5424 }
5425
5426 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
5427 type Borrowed<'a> = &'a Self;
5428 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5429 value
5430 }
5431 }
5432
5433 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
5434 type Owned = Self;
5435
5436 #[inline(always)]
5437 fn inline_align(_context: fidl::encoding::Context) -> usize {
5438 8
5439 }
5440
5441 #[inline(always)]
5442 fn inline_size(_context: fidl::encoding::Context) -> usize {
5443 16
5444 }
5445 }
5446
5447 unsafe impl<D: fidl::encoding::ResourceDialect>
5448 fidl::encoding::Encode<SupplicantStaNetworkSetPskPassphraseRequest, D>
5449 for &SupplicantStaNetworkSetPskPassphraseRequest
5450 {
5451 unsafe fn encode(
5452 self,
5453 encoder: &mut fidl::encoding::Encoder<'_, D>,
5454 offset: usize,
5455 mut depth: fidl::encoding::Depth,
5456 ) -> fidl::Result<()> {
5457 encoder.debug_check_bounds::<SupplicantStaNetworkSetPskPassphraseRequest>(offset);
5458 let max_ordinal: u64 = self.max_ordinal_present();
5460 encoder.write_num(max_ordinal, offset);
5461 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5462 if max_ordinal == 0 {
5464 return Ok(());
5465 }
5466 depth.increment()?;
5467 let envelope_size = 8;
5468 let bytes_len = max_ordinal as usize * envelope_size;
5469 #[allow(unused_variables)]
5470 let offset = encoder.out_of_line_offset(bytes_len);
5471 let mut _prev_end_offset: usize = 0;
5472 if 1 > max_ordinal {
5473 return Ok(());
5474 }
5475
5476 let cur_offset: usize = (1 - 1) * envelope_size;
5479
5480 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5482
5483 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5488 self.passphrase.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5489 encoder, offset + cur_offset, depth
5490 )?;
5491
5492 _prev_end_offset = cur_offset + envelope_size;
5493
5494 Ok(())
5495 }
5496 }
5497
5498 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5499 for SupplicantStaNetworkSetPskPassphraseRequest
5500 {
5501 #[inline(always)]
5502 fn new_empty() -> Self {
5503 Self::default()
5504 }
5505
5506 unsafe fn decode(
5507 &mut self,
5508 decoder: &mut fidl::encoding::Decoder<'_, D>,
5509 offset: usize,
5510 mut depth: fidl::encoding::Depth,
5511 ) -> fidl::Result<()> {
5512 decoder.debug_check_bounds::<Self>(offset);
5513 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5514 None => return Err(fidl::Error::NotNullable),
5515 Some(len) => len,
5516 };
5517 if len == 0 {
5519 return Ok(());
5520 };
5521 depth.increment()?;
5522 let envelope_size = 8;
5523 let bytes_len = len * envelope_size;
5524 let offset = decoder.out_of_line_offset(bytes_len)?;
5525 let mut _next_ordinal_to_read = 0;
5527 let mut next_offset = offset;
5528 let end_offset = offset + bytes_len;
5529 _next_ordinal_to_read += 1;
5530 if next_offset >= end_offset {
5531 return Ok(());
5532 }
5533
5534 while _next_ordinal_to_read < 1 {
5536 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5537 _next_ordinal_to_read += 1;
5538 next_offset += envelope_size;
5539 }
5540
5541 let next_out_of_line = decoder.next_out_of_line();
5542 let handles_before = decoder.remaining_handles();
5543 if let Some((inlined, num_bytes, num_handles)) =
5544 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5545 {
5546 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5547 if inlined != (member_inline_size <= 4) {
5548 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5549 }
5550 let inner_offset;
5551 let mut inner_depth = depth.clone();
5552 if inlined {
5553 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5554 inner_offset = next_offset;
5555 } else {
5556 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5557 inner_depth.increment()?;
5558 }
5559 let val_ref = self.passphrase.get_or_insert_with(|| {
5560 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5561 });
5562 fidl::decode!(
5563 fidl::encoding::UnboundedVector<u8>,
5564 D,
5565 val_ref,
5566 decoder,
5567 inner_offset,
5568 inner_depth
5569 )?;
5570 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5571 {
5572 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5573 }
5574 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5575 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5576 }
5577 }
5578
5579 next_offset += envelope_size;
5580
5581 while next_offset < end_offset {
5583 _next_ordinal_to_read += 1;
5584 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5585 next_offset += envelope_size;
5586 }
5587
5588 Ok(())
5589 }
5590 }
5591
5592 impl SupplicantStaNetworkSetSaePasswordRequest {
5593 #[inline(always)]
5594 fn max_ordinal_present(&self) -> u64 {
5595 if let Some(_) = self.password {
5596 return 1;
5597 }
5598 0
5599 }
5600 }
5601
5602 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
5603 type Borrowed<'a> = &'a Self;
5604 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5605 value
5606 }
5607 }
5608
5609 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
5610 type Owned = Self;
5611
5612 #[inline(always)]
5613 fn inline_align(_context: fidl::encoding::Context) -> usize {
5614 8
5615 }
5616
5617 #[inline(always)]
5618 fn inline_size(_context: fidl::encoding::Context) -> usize {
5619 16
5620 }
5621 }
5622
5623 unsafe impl<D: fidl::encoding::ResourceDialect>
5624 fidl::encoding::Encode<SupplicantStaNetworkSetSaePasswordRequest, D>
5625 for &SupplicantStaNetworkSetSaePasswordRequest
5626 {
5627 unsafe fn encode(
5628 self,
5629 encoder: &mut fidl::encoding::Encoder<'_, D>,
5630 offset: usize,
5631 mut depth: fidl::encoding::Depth,
5632 ) -> fidl::Result<()> {
5633 encoder.debug_check_bounds::<SupplicantStaNetworkSetSaePasswordRequest>(offset);
5634 let max_ordinal: u64 = self.max_ordinal_present();
5636 encoder.write_num(max_ordinal, offset);
5637 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5638 if max_ordinal == 0 {
5640 return Ok(());
5641 }
5642 depth.increment()?;
5643 let envelope_size = 8;
5644 let bytes_len = max_ordinal as usize * envelope_size;
5645 #[allow(unused_variables)]
5646 let offset = encoder.out_of_line_offset(bytes_len);
5647 let mut _prev_end_offset: usize = 0;
5648 if 1 > max_ordinal {
5649 return Ok(());
5650 }
5651
5652 let cur_offset: usize = (1 - 1) * envelope_size;
5655
5656 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5658
5659 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5664 self.password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5665 encoder, offset + cur_offset, depth
5666 )?;
5667
5668 _prev_end_offset = cur_offset + envelope_size;
5669
5670 Ok(())
5671 }
5672 }
5673
5674 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5675 for SupplicantStaNetworkSetSaePasswordRequest
5676 {
5677 #[inline(always)]
5678 fn new_empty() -> Self {
5679 Self::default()
5680 }
5681
5682 unsafe fn decode(
5683 &mut self,
5684 decoder: &mut fidl::encoding::Decoder<'_, D>,
5685 offset: usize,
5686 mut depth: fidl::encoding::Depth,
5687 ) -> fidl::Result<()> {
5688 decoder.debug_check_bounds::<Self>(offset);
5689 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5690 None => return Err(fidl::Error::NotNullable),
5691 Some(len) => len,
5692 };
5693 if len == 0 {
5695 return Ok(());
5696 };
5697 depth.increment()?;
5698 let envelope_size = 8;
5699 let bytes_len = len * envelope_size;
5700 let offset = decoder.out_of_line_offset(bytes_len)?;
5701 let mut _next_ordinal_to_read = 0;
5703 let mut next_offset = offset;
5704 let end_offset = offset + bytes_len;
5705 _next_ordinal_to_read += 1;
5706 if next_offset >= end_offset {
5707 return Ok(());
5708 }
5709
5710 while _next_ordinal_to_read < 1 {
5712 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5713 _next_ordinal_to_read += 1;
5714 next_offset += envelope_size;
5715 }
5716
5717 let next_out_of_line = decoder.next_out_of_line();
5718 let handles_before = decoder.remaining_handles();
5719 if let Some((inlined, num_bytes, num_handles)) =
5720 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5721 {
5722 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5723 if inlined != (member_inline_size <= 4) {
5724 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5725 }
5726 let inner_offset;
5727 let mut inner_depth = depth.clone();
5728 if inlined {
5729 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5730 inner_offset = next_offset;
5731 } else {
5732 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5733 inner_depth.increment()?;
5734 }
5735 let val_ref = self.password.get_or_insert_with(|| {
5736 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5737 });
5738 fidl::decode!(
5739 fidl::encoding::UnboundedVector<u8>,
5740 D,
5741 val_ref,
5742 decoder,
5743 inner_offset,
5744 inner_depth
5745 )?;
5746 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5747 {
5748 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5749 }
5750 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5751 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5752 }
5753 }
5754
5755 next_offset += envelope_size;
5756
5757 while next_offset < end_offset {
5759 _next_ordinal_to_read += 1;
5760 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5761 next_offset += envelope_size;
5762 }
5763
5764 Ok(())
5765 }
5766 }
5767
5768 impl SupplicantStaNetworkSetSsidRequest {
5769 #[inline(always)]
5770 fn max_ordinal_present(&self) -> u64 {
5771 if let Some(_) = self.ssid {
5772 return 1;
5773 }
5774 0
5775 }
5776 }
5777
5778 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSsidRequest {
5779 type Borrowed<'a> = &'a Self;
5780 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5781 value
5782 }
5783 }
5784
5785 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSsidRequest {
5786 type Owned = Self;
5787
5788 #[inline(always)]
5789 fn inline_align(_context: fidl::encoding::Context) -> usize {
5790 8
5791 }
5792
5793 #[inline(always)]
5794 fn inline_size(_context: fidl::encoding::Context) -> usize {
5795 16
5796 }
5797 }
5798
5799 unsafe impl<D: fidl::encoding::ResourceDialect>
5800 fidl::encoding::Encode<SupplicantStaNetworkSetSsidRequest, D>
5801 for &SupplicantStaNetworkSetSsidRequest
5802 {
5803 unsafe fn encode(
5804 self,
5805 encoder: &mut fidl::encoding::Encoder<'_, D>,
5806 offset: usize,
5807 mut depth: fidl::encoding::Depth,
5808 ) -> fidl::Result<()> {
5809 encoder.debug_check_bounds::<SupplicantStaNetworkSetSsidRequest>(offset);
5810 let max_ordinal: u64 = self.max_ordinal_present();
5812 encoder.write_num(max_ordinal, offset);
5813 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5814 if max_ordinal == 0 {
5816 return Ok(());
5817 }
5818 depth.increment()?;
5819 let envelope_size = 8;
5820 let bytes_len = max_ordinal as usize * envelope_size;
5821 #[allow(unused_variables)]
5822 let offset = encoder.out_of_line_offset(bytes_len);
5823 let mut _prev_end_offset: usize = 0;
5824 if 1 > max_ordinal {
5825 return Ok(());
5826 }
5827
5828 let cur_offset: usize = (1 - 1) * envelope_size;
5831
5832 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5834
5835 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
5840 self.ssid.as_ref().map(
5841 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
5842 ),
5843 encoder,
5844 offset + cur_offset,
5845 depth,
5846 )?;
5847
5848 _prev_end_offset = cur_offset + envelope_size;
5849
5850 Ok(())
5851 }
5852 }
5853
5854 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5855 for SupplicantStaNetworkSetSsidRequest
5856 {
5857 #[inline(always)]
5858 fn new_empty() -> Self {
5859 Self::default()
5860 }
5861
5862 unsafe fn decode(
5863 &mut self,
5864 decoder: &mut fidl::encoding::Decoder<'_, D>,
5865 offset: usize,
5866 mut depth: fidl::encoding::Depth,
5867 ) -> fidl::Result<()> {
5868 decoder.debug_check_bounds::<Self>(offset);
5869 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5870 None => return Err(fidl::Error::NotNullable),
5871 Some(len) => len,
5872 };
5873 if len == 0 {
5875 return Ok(());
5876 };
5877 depth.increment()?;
5878 let envelope_size = 8;
5879 let bytes_len = len * envelope_size;
5880 let offset = decoder.out_of_line_offset(bytes_len)?;
5881 let mut _next_ordinal_to_read = 0;
5883 let mut next_offset = offset;
5884 let end_offset = offset + bytes_len;
5885 _next_ordinal_to_read += 1;
5886 if next_offset >= end_offset {
5887 return Ok(());
5888 }
5889
5890 while _next_ordinal_to_read < 1 {
5892 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5893 _next_ordinal_to_read += 1;
5894 next_offset += envelope_size;
5895 }
5896
5897 let next_out_of_line = decoder.next_out_of_line();
5898 let handles_before = decoder.remaining_handles();
5899 if let Some((inlined, num_bytes, num_handles)) =
5900 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5901 {
5902 let member_inline_size =
5903 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
5904 decoder.context,
5905 );
5906 if inlined != (member_inline_size <= 4) {
5907 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5908 }
5909 let inner_offset;
5910 let mut inner_depth = depth.clone();
5911 if inlined {
5912 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5913 inner_offset = next_offset;
5914 } else {
5915 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5916 inner_depth.increment()?;
5917 }
5918 let val_ref = self
5919 .ssid
5920 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
5921 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
5922 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5923 {
5924 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5925 }
5926 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5927 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5928 }
5929 }
5930
5931 next_offset += envelope_size;
5932
5933 while next_offset < end_offset {
5935 _next_ordinal_to_read += 1;
5936 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5937 next_offset += envelope_size;
5938 }
5939
5940 Ok(())
5941 }
5942 }
5943
5944 impl SupplicantStaNetworkSetWepKeyRequest {
5945 #[inline(always)]
5946 fn max_ordinal_present(&self) -> u64 {
5947 if let Some(_) = self.key_idx {
5948 return 2;
5949 }
5950 if let Some(_) = self.key {
5951 return 1;
5952 }
5953 0
5954 }
5955 }
5956
5957 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepKeyRequest {
5958 type Borrowed<'a> = &'a Self;
5959 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5960 value
5961 }
5962 }
5963
5964 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepKeyRequest {
5965 type Owned = Self;
5966
5967 #[inline(always)]
5968 fn inline_align(_context: fidl::encoding::Context) -> usize {
5969 8
5970 }
5971
5972 #[inline(always)]
5973 fn inline_size(_context: fidl::encoding::Context) -> usize {
5974 16
5975 }
5976 }
5977
5978 unsafe impl<D: fidl::encoding::ResourceDialect>
5979 fidl::encoding::Encode<SupplicantStaNetworkSetWepKeyRequest, D>
5980 for &SupplicantStaNetworkSetWepKeyRequest
5981 {
5982 unsafe fn encode(
5983 self,
5984 encoder: &mut fidl::encoding::Encoder<'_, D>,
5985 offset: usize,
5986 mut depth: fidl::encoding::Depth,
5987 ) -> fidl::Result<()> {
5988 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepKeyRequest>(offset);
5989 let max_ordinal: u64 = self.max_ordinal_present();
5991 encoder.write_num(max_ordinal, offset);
5992 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5993 if max_ordinal == 0 {
5995 return Ok(());
5996 }
5997 depth.increment()?;
5998 let envelope_size = 8;
5999 let bytes_len = max_ordinal as usize * envelope_size;
6000 #[allow(unused_variables)]
6001 let offset = encoder.out_of_line_offset(bytes_len);
6002 let mut _prev_end_offset: usize = 0;
6003 if 1 > max_ordinal {
6004 return Ok(());
6005 }
6006
6007 let cur_offset: usize = (1 - 1) * envelope_size;
6010
6011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6013
6014 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6019 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6020 encoder, offset + cur_offset, depth
6021 )?;
6022
6023 _prev_end_offset = cur_offset + envelope_size;
6024 if 2 > max_ordinal {
6025 return Ok(());
6026 }
6027
6028 let cur_offset: usize = (2 - 1) * envelope_size;
6031
6032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6034
6035 fidl::encoding::encode_in_envelope_optional::<i32, D>(
6040 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
6041 encoder,
6042 offset + cur_offset,
6043 depth,
6044 )?;
6045
6046 _prev_end_offset = cur_offset + envelope_size;
6047
6048 Ok(())
6049 }
6050 }
6051
6052 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6053 for SupplicantStaNetworkSetWepKeyRequest
6054 {
6055 #[inline(always)]
6056 fn new_empty() -> Self {
6057 Self::default()
6058 }
6059
6060 unsafe fn decode(
6061 &mut self,
6062 decoder: &mut fidl::encoding::Decoder<'_, D>,
6063 offset: usize,
6064 mut depth: fidl::encoding::Depth,
6065 ) -> fidl::Result<()> {
6066 decoder.debug_check_bounds::<Self>(offset);
6067 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6068 None => return Err(fidl::Error::NotNullable),
6069 Some(len) => len,
6070 };
6071 if len == 0 {
6073 return Ok(());
6074 };
6075 depth.increment()?;
6076 let envelope_size = 8;
6077 let bytes_len = len * envelope_size;
6078 let offset = decoder.out_of_line_offset(bytes_len)?;
6079 let mut _next_ordinal_to_read = 0;
6081 let mut next_offset = offset;
6082 let end_offset = offset + bytes_len;
6083 _next_ordinal_to_read += 1;
6084 if next_offset >= end_offset {
6085 return Ok(());
6086 }
6087
6088 while _next_ordinal_to_read < 1 {
6090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6091 _next_ordinal_to_read += 1;
6092 next_offset += envelope_size;
6093 }
6094
6095 let next_out_of_line = decoder.next_out_of_line();
6096 let handles_before = decoder.remaining_handles();
6097 if let Some((inlined, num_bytes, num_handles)) =
6098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6099 {
6100 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6101 if inlined != (member_inline_size <= 4) {
6102 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6103 }
6104 let inner_offset;
6105 let mut inner_depth = depth.clone();
6106 if inlined {
6107 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6108 inner_offset = next_offset;
6109 } else {
6110 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6111 inner_depth.increment()?;
6112 }
6113 let val_ref = self.key.get_or_insert_with(|| {
6114 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6115 });
6116 fidl::decode!(
6117 fidl::encoding::UnboundedVector<u8>,
6118 D,
6119 val_ref,
6120 decoder,
6121 inner_offset,
6122 inner_depth
6123 )?;
6124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6125 {
6126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6127 }
6128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6130 }
6131 }
6132
6133 next_offset += envelope_size;
6134 _next_ordinal_to_read += 1;
6135 if next_offset >= end_offset {
6136 return Ok(());
6137 }
6138
6139 while _next_ordinal_to_read < 2 {
6141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6142 _next_ordinal_to_read += 1;
6143 next_offset += envelope_size;
6144 }
6145
6146 let next_out_of_line = decoder.next_out_of_line();
6147 let handles_before = decoder.remaining_handles();
6148 if let Some((inlined, num_bytes, num_handles)) =
6149 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6150 {
6151 let member_inline_size =
6152 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6153 if inlined != (member_inline_size <= 4) {
6154 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6155 }
6156 let inner_offset;
6157 let mut inner_depth = depth.clone();
6158 if inlined {
6159 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6160 inner_offset = next_offset;
6161 } else {
6162 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6163 inner_depth.increment()?;
6164 }
6165 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
6166 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6168 {
6169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6170 }
6171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6173 }
6174 }
6175
6176 next_offset += envelope_size;
6177
6178 while next_offset < end_offset {
6180 _next_ordinal_to_read += 1;
6181 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6182 next_offset += envelope_size;
6183 }
6184
6185 Ok(())
6186 }
6187 }
6188
6189 impl SupplicantStaNetworkSetWepTxKeyIdxRequest {
6190 #[inline(always)]
6191 fn max_ordinal_present(&self) -> u64 {
6192 if let Some(_) = self.key_idx {
6193 return 1;
6194 }
6195 0
6196 }
6197 }
6198
6199 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
6200 type Borrowed<'a> = &'a Self;
6201 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6202 value
6203 }
6204 }
6205
6206 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
6207 type Owned = Self;
6208
6209 #[inline(always)]
6210 fn inline_align(_context: fidl::encoding::Context) -> usize {
6211 8
6212 }
6213
6214 #[inline(always)]
6215 fn inline_size(_context: fidl::encoding::Context) -> usize {
6216 16
6217 }
6218 }
6219
6220 unsafe impl<D: fidl::encoding::ResourceDialect>
6221 fidl::encoding::Encode<SupplicantStaNetworkSetWepTxKeyIdxRequest, D>
6222 for &SupplicantStaNetworkSetWepTxKeyIdxRequest
6223 {
6224 unsafe fn encode(
6225 self,
6226 encoder: &mut fidl::encoding::Encoder<'_, D>,
6227 offset: usize,
6228 mut depth: fidl::encoding::Depth,
6229 ) -> fidl::Result<()> {
6230 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepTxKeyIdxRequest>(offset);
6231 let max_ordinal: u64 = self.max_ordinal_present();
6233 encoder.write_num(max_ordinal, offset);
6234 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6235 if max_ordinal == 0 {
6237 return Ok(());
6238 }
6239 depth.increment()?;
6240 let envelope_size = 8;
6241 let bytes_len = max_ordinal as usize * envelope_size;
6242 #[allow(unused_variables)]
6243 let offset = encoder.out_of_line_offset(bytes_len);
6244 let mut _prev_end_offset: usize = 0;
6245 if 1 > max_ordinal {
6246 return Ok(());
6247 }
6248
6249 let cur_offset: usize = (1 - 1) * envelope_size;
6252
6253 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6255
6256 fidl::encoding::encode_in_envelope_optional::<i32, D>(
6261 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
6262 encoder,
6263 offset + cur_offset,
6264 depth,
6265 )?;
6266
6267 _prev_end_offset = cur_offset + envelope_size;
6268
6269 Ok(())
6270 }
6271 }
6272
6273 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6274 for SupplicantStaNetworkSetWepTxKeyIdxRequest
6275 {
6276 #[inline(always)]
6277 fn new_empty() -> Self {
6278 Self::default()
6279 }
6280
6281 unsafe fn decode(
6282 &mut self,
6283 decoder: &mut fidl::encoding::Decoder<'_, D>,
6284 offset: usize,
6285 mut depth: fidl::encoding::Depth,
6286 ) -> fidl::Result<()> {
6287 decoder.debug_check_bounds::<Self>(offset);
6288 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6289 None => return Err(fidl::Error::NotNullable),
6290 Some(len) => len,
6291 };
6292 if len == 0 {
6294 return Ok(());
6295 };
6296 depth.increment()?;
6297 let envelope_size = 8;
6298 let bytes_len = len * envelope_size;
6299 let offset = decoder.out_of_line_offset(bytes_len)?;
6300 let mut _next_ordinal_to_read = 0;
6302 let mut next_offset = offset;
6303 let end_offset = offset + bytes_len;
6304 _next_ordinal_to_read += 1;
6305 if next_offset >= end_offset {
6306 return Ok(());
6307 }
6308
6309 while _next_ordinal_to_read < 1 {
6311 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6312 _next_ordinal_to_read += 1;
6313 next_offset += envelope_size;
6314 }
6315
6316 let next_out_of_line = decoder.next_out_of_line();
6317 let handles_before = decoder.remaining_handles();
6318 if let Some((inlined, num_bytes, num_handles)) =
6319 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6320 {
6321 let member_inline_size =
6322 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6323 if inlined != (member_inline_size <= 4) {
6324 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6325 }
6326 let inner_offset;
6327 let mut inner_depth = depth.clone();
6328 if inlined {
6329 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6330 inner_offset = next_offset;
6331 } else {
6332 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6333 inner_depth.increment()?;
6334 }
6335 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
6336 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6337 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6338 {
6339 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6340 }
6341 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6342 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6343 }
6344 }
6345
6346 next_offset += envelope_size;
6347
6348 while next_offset < end_offset {
6350 _next_ordinal_to_read += 1;
6351 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6352 next_offset += envelope_size;
6353 }
6354
6355 Ok(())
6356 }
6357 }
6358
6359 impl WifiChipGetAvailableModesResponse {
6360 #[inline(always)]
6361 fn max_ordinal_present(&self) -> u64 {
6362 if let Some(_) = self.chip_modes {
6363 return 1;
6364 }
6365 0
6366 }
6367 }
6368
6369 impl fidl::encoding::ValueTypeMarker for WifiChipGetAvailableModesResponse {
6370 type Borrowed<'a> = &'a Self;
6371 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6372 value
6373 }
6374 }
6375
6376 unsafe impl fidl::encoding::TypeMarker for WifiChipGetAvailableModesResponse {
6377 type Owned = Self;
6378
6379 #[inline(always)]
6380 fn inline_align(_context: fidl::encoding::Context) -> usize {
6381 8
6382 }
6383
6384 #[inline(always)]
6385 fn inline_size(_context: fidl::encoding::Context) -> usize {
6386 16
6387 }
6388 }
6389
6390 unsafe impl<D: fidl::encoding::ResourceDialect>
6391 fidl::encoding::Encode<WifiChipGetAvailableModesResponse, D>
6392 for &WifiChipGetAvailableModesResponse
6393 {
6394 unsafe fn encode(
6395 self,
6396 encoder: &mut fidl::encoding::Encoder<'_, D>,
6397 offset: usize,
6398 mut depth: fidl::encoding::Depth,
6399 ) -> fidl::Result<()> {
6400 encoder.debug_check_bounds::<WifiChipGetAvailableModesResponse>(offset);
6401 let max_ordinal: u64 = self.max_ordinal_present();
6403 encoder.write_num(max_ordinal, offset);
6404 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6405 if max_ordinal == 0 {
6407 return Ok(());
6408 }
6409 depth.increment()?;
6410 let envelope_size = 8;
6411 let bytes_len = max_ordinal as usize * envelope_size;
6412 #[allow(unused_variables)]
6413 let offset = encoder.out_of_line_offset(bytes_len);
6414 let mut _prev_end_offset: usize = 0;
6415 if 1 > max_ordinal {
6416 return Ok(());
6417 }
6418
6419 let cur_offset: usize = (1 - 1) * envelope_size;
6422
6423 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6425
6426 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipMode>, D>(
6431 self.chip_modes.as_ref().map(<fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::ValueTypeMarker>::borrow),
6432 encoder, offset + cur_offset, depth
6433 )?;
6434
6435 _prev_end_offset = cur_offset + envelope_size;
6436
6437 Ok(())
6438 }
6439 }
6440
6441 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6442 for WifiChipGetAvailableModesResponse
6443 {
6444 #[inline(always)]
6445 fn new_empty() -> Self {
6446 Self::default()
6447 }
6448
6449 unsafe fn decode(
6450 &mut self,
6451 decoder: &mut fidl::encoding::Decoder<'_, D>,
6452 offset: usize,
6453 mut depth: fidl::encoding::Depth,
6454 ) -> fidl::Result<()> {
6455 decoder.debug_check_bounds::<Self>(offset);
6456 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6457 None => return Err(fidl::Error::NotNullable),
6458 Some(len) => len,
6459 };
6460 if len == 0 {
6462 return Ok(());
6463 };
6464 depth.increment()?;
6465 let envelope_size = 8;
6466 let bytes_len = len * envelope_size;
6467 let offset = decoder.out_of_line_offset(bytes_len)?;
6468 let mut _next_ordinal_to_read = 0;
6470 let mut next_offset = offset;
6471 let end_offset = offset + bytes_len;
6472 _next_ordinal_to_read += 1;
6473 if next_offset >= end_offset {
6474 return Ok(());
6475 }
6476
6477 while _next_ordinal_to_read < 1 {
6479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6480 _next_ordinal_to_read += 1;
6481 next_offset += envelope_size;
6482 }
6483
6484 let next_out_of_line = decoder.next_out_of_line();
6485 let handles_before = decoder.remaining_handles();
6486 if let Some((inlined, num_bytes, num_handles)) =
6487 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6488 {
6489 let member_inline_size = <fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6490 if inlined != (member_inline_size <= 4) {
6491 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6492 }
6493 let inner_offset;
6494 let mut inner_depth = depth.clone();
6495 if inlined {
6496 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6497 inner_offset = next_offset;
6498 } else {
6499 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6500 inner_depth.increment()?;
6501 }
6502 let val_ref = self.chip_modes.get_or_insert_with(|| {
6503 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipMode>, D)
6504 });
6505 fidl::decode!(
6506 fidl::encoding::UnboundedVector<ChipMode>,
6507 D,
6508 val_ref,
6509 decoder,
6510 inner_offset,
6511 inner_depth
6512 )?;
6513 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6514 {
6515 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6516 }
6517 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6518 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6519 }
6520 }
6521
6522 next_offset += envelope_size;
6523
6524 while next_offset < end_offset {
6526 _next_ordinal_to_read += 1;
6527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6528 next_offset += envelope_size;
6529 }
6530
6531 Ok(())
6532 }
6533 }
6534
6535 impl WifiChipGetCapabilitiesResponse {
6536 #[inline(always)]
6537 fn max_ordinal_present(&self) -> u64 {
6538 if let Some(_) = self.capabilities_mask {
6539 return 1;
6540 }
6541 0
6542 }
6543 }
6544
6545 impl fidl::encoding::ValueTypeMarker for WifiChipGetCapabilitiesResponse {
6546 type Borrowed<'a> = &'a Self;
6547 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6548 value
6549 }
6550 }
6551
6552 unsafe impl fidl::encoding::TypeMarker for WifiChipGetCapabilitiesResponse {
6553 type Owned = Self;
6554
6555 #[inline(always)]
6556 fn inline_align(_context: fidl::encoding::Context) -> usize {
6557 8
6558 }
6559
6560 #[inline(always)]
6561 fn inline_size(_context: fidl::encoding::Context) -> usize {
6562 16
6563 }
6564 }
6565
6566 unsafe impl<D: fidl::encoding::ResourceDialect>
6567 fidl::encoding::Encode<WifiChipGetCapabilitiesResponse, D>
6568 for &WifiChipGetCapabilitiesResponse
6569 {
6570 unsafe fn encode(
6571 self,
6572 encoder: &mut fidl::encoding::Encoder<'_, D>,
6573 offset: usize,
6574 mut depth: fidl::encoding::Depth,
6575 ) -> fidl::Result<()> {
6576 encoder.debug_check_bounds::<WifiChipGetCapabilitiesResponse>(offset);
6577 let max_ordinal: u64 = self.max_ordinal_present();
6579 encoder.write_num(max_ordinal, offset);
6580 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6581 if max_ordinal == 0 {
6583 return Ok(());
6584 }
6585 depth.increment()?;
6586 let envelope_size = 8;
6587 let bytes_len = max_ordinal as usize * envelope_size;
6588 #[allow(unused_variables)]
6589 let offset = encoder.out_of_line_offset(bytes_len);
6590 let mut _prev_end_offset: usize = 0;
6591 if 1 > max_ordinal {
6592 return Ok(());
6593 }
6594
6595 let cur_offset: usize = (1 - 1) * envelope_size;
6598
6599 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6601
6602 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6607 self.capabilities_mask
6608 .as_ref()
6609 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6610 encoder,
6611 offset + cur_offset,
6612 depth,
6613 )?;
6614
6615 _prev_end_offset = cur_offset + envelope_size;
6616
6617 Ok(())
6618 }
6619 }
6620
6621 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6622 for WifiChipGetCapabilitiesResponse
6623 {
6624 #[inline(always)]
6625 fn new_empty() -> Self {
6626 Self::default()
6627 }
6628
6629 unsafe fn decode(
6630 &mut self,
6631 decoder: &mut fidl::encoding::Decoder<'_, D>,
6632 offset: usize,
6633 mut depth: fidl::encoding::Depth,
6634 ) -> fidl::Result<()> {
6635 decoder.debug_check_bounds::<Self>(offset);
6636 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6637 None => return Err(fidl::Error::NotNullable),
6638 Some(len) => len,
6639 };
6640 if len == 0 {
6642 return Ok(());
6643 };
6644 depth.increment()?;
6645 let envelope_size = 8;
6646 let bytes_len = len * envelope_size;
6647 let offset = decoder.out_of_line_offset(bytes_len)?;
6648 let mut _next_ordinal_to_read = 0;
6650 let mut next_offset = offset;
6651 let end_offset = offset + bytes_len;
6652 _next_ordinal_to_read += 1;
6653 if next_offset >= end_offset {
6654 return Ok(());
6655 }
6656
6657 while _next_ordinal_to_read < 1 {
6659 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6660 _next_ordinal_to_read += 1;
6661 next_offset += envelope_size;
6662 }
6663
6664 let next_out_of_line = decoder.next_out_of_line();
6665 let handles_before = decoder.remaining_handles();
6666 if let Some((inlined, num_bytes, num_handles)) =
6667 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6668 {
6669 let member_inline_size =
6670 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6671 if inlined != (member_inline_size <= 4) {
6672 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6673 }
6674 let inner_offset;
6675 let mut inner_depth = depth.clone();
6676 if inlined {
6677 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6678 inner_offset = next_offset;
6679 } else {
6680 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6681 inner_depth.increment()?;
6682 }
6683 let val_ref =
6684 self.capabilities_mask.get_or_insert_with(|| fidl::new_empty!(u32, D));
6685 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6686 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6687 {
6688 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6689 }
6690 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6691 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6692 }
6693 }
6694
6695 next_offset += envelope_size;
6696
6697 while next_offset < end_offset {
6699 _next_ordinal_to_read += 1;
6700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6701 next_offset += envelope_size;
6702 }
6703
6704 Ok(())
6705 }
6706 }
6707
6708 impl WifiChipGetIdResponse {
6709 #[inline(always)]
6710 fn max_ordinal_present(&self) -> u64 {
6711 if let Some(_) = self.id {
6712 return 1;
6713 }
6714 0
6715 }
6716 }
6717
6718 impl fidl::encoding::ValueTypeMarker for WifiChipGetIdResponse {
6719 type Borrowed<'a> = &'a Self;
6720 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6721 value
6722 }
6723 }
6724
6725 unsafe impl fidl::encoding::TypeMarker for WifiChipGetIdResponse {
6726 type Owned = Self;
6727
6728 #[inline(always)]
6729 fn inline_align(_context: fidl::encoding::Context) -> usize {
6730 8
6731 }
6732
6733 #[inline(always)]
6734 fn inline_size(_context: fidl::encoding::Context) -> usize {
6735 16
6736 }
6737 }
6738
6739 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiChipGetIdResponse, D>
6740 for &WifiChipGetIdResponse
6741 {
6742 unsafe fn encode(
6743 self,
6744 encoder: &mut fidl::encoding::Encoder<'_, D>,
6745 offset: usize,
6746 mut depth: fidl::encoding::Depth,
6747 ) -> fidl::Result<()> {
6748 encoder.debug_check_bounds::<WifiChipGetIdResponse>(offset);
6749 let max_ordinal: u64 = self.max_ordinal_present();
6751 encoder.write_num(max_ordinal, offset);
6752 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6753 if max_ordinal == 0 {
6755 return Ok(());
6756 }
6757 depth.increment()?;
6758 let envelope_size = 8;
6759 let bytes_len = max_ordinal as usize * envelope_size;
6760 #[allow(unused_variables)]
6761 let offset = encoder.out_of_line_offset(bytes_len);
6762 let mut _prev_end_offset: usize = 0;
6763 if 1 > max_ordinal {
6764 return Ok(());
6765 }
6766
6767 let cur_offset: usize = (1 - 1) * envelope_size;
6770
6771 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6773
6774 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6779 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6780 encoder,
6781 offset + cur_offset,
6782 depth,
6783 )?;
6784
6785 _prev_end_offset = cur_offset + envelope_size;
6786
6787 Ok(())
6788 }
6789 }
6790
6791 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiChipGetIdResponse {
6792 #[inline(always)]
6793 fn new_empty() -> Self {
6794 Self::default()
6795 }
6796
6797 unsafe fn decode(
6798 &mut self,
6799 decoder: &mut fidl::encoding::Decoder<'_, D>,
6800 offset: usize,
6801 mut depth: fidl::encoding::Depth,
6802 ) -> fidl::Result<()> {
6803 decoder.debug_check_bounds::<Self>(offset);
6804 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6805 None => return Err(fidl::Error::NotNullable),
6806 Some(len) => len,
6807 };
6808 if len == 0 {
6810 return Ok(());
6811 };
6812 depth.increment()?;
6813 let envelope_size = 8;
6814 let bytes_len = len * envelope_size;
6815 let offset = decoder.out_of_line_offset(bytes_len)?;
6816 let mut _next_ordinal_to_read = 0;
6818 let mut next_offset = offset;
6819 let end_offset = offset + bytes_len;
6820 _next_ordinal_to_read += 1;
6821 if next_offset >= end_offset {
6822 return Ok(());
6823 }
6824
6825 while _next_ordinal_to_read < 1 {
6827 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6828 _next_ordinal_to_read += 1;
6829 next_offset += envelope_size;
6830 }
6831
6832 let next_out_of_line = decoder.next_out_of_line();
6833 let handles_before = decoder.remaining_handles();
6834 if let Some((inlined, num_bytes, num_handles)) =
6835 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6836 {
6837 let member_inline_size =
6838 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6839 if inlined != (member_inline_size <= 4) {
6840 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6841 }
6842 let inner_offset;
6843 let mut inner_depth = depth.clone();
6844 if inlined {
6845 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6846 inner_offset = next_offset;
6847 } else {
6848 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6849 inner_depth.increment()?;
6850 }
6851 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
6852 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6853 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6854 {
6855 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6856 }
6857 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6858 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6859 }
6860 }
6861
6862 next_offset += envelope_size;
6863
6864 while next_offset < end_offset {
6866 _next_ordinal_to_read += 1;
6867 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6868 next_offset += envelope_size;
6869 }
6870
6871 Ok(())
6872 }
6873 }
6874
6875 impl WifiChipGetModeResponse {
6876 #[inline(always)]
6877 fn max_ordinal_present(&self) -> u64 {
6878 if let Some(_) = self.mode {
6879 return 1;
6880 }
6881 0
6882 }
6883 }
6884
6885 impl fidl::encoding::ValueTypeMarker for WifiChipGetModeResponse {
6886 type Borrowed<'a> = &'a Self;
6887 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6888 value
6889 }
6890 }
6891
6892 unsafe impl fidl::encoding::TypeMarker for WifiChipGetModeResponse {
6893 type Owned = Self;
6894
6895 #[inline(always)]
6896 fn inline_align(_context: fidl::encoding::Context) -> usize {
6897 8
6898 }
6899
6900 #[inline(always)]
6901 fn inline_size(_context: fidl::encoding::Context) -> usize {
6902 16
6903 }
6904 }
6905
6906 unsafe impl<D: fidl::encoding::ResourceDialect>
6907 fidl::encoding::Encode<WifiChipGetModeResponse, D> for &WifiChipGetModeResponse
6908 {
6909 unsafe fn encode(
6910 self,
6911 encoder: &mut fidl::encoding::Encoder<'_, D>,
6912 offset: usize,
6913 mut depth: fidl::encoding::Depth,
6914 ) -> fidl::Result<()> {
6915 encoder.debug_check_bounds::<WifiChipGetModeResponse>(offset);
6916 let max_ordinal: u64 = self.max_ordinal_present();
6918 encoder.write_num(max_ordinal, offset);
6919 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6920 if max_ordinal == 0 {
6922 return Ok(());
6923 }
6924 depth.increment()?;
6925 let envelope_size = 8;
6926 let bytes_len = max_ordinal as usize * envelope_size;
6927 #[allow(unused_variables)]
6928 let offset = encoder.out_of_line_offset(bytes_len);
6929 let mut _prev_end_offset: usize = 0;
6930 if 1 > max_ordinal {
6931 return Ok(());
6932 }
6933
6934 let cur_offset: usize = (1 - 1) * envelope_size;
6937
6938 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6940
6941 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6946 self.mode.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6947 encoder,
6948 offset + cur_offset,
6949 depth,
6950 )?;
6951
6952 _prev_end_offset = cur_offset + envelope_size;
6953
6954 Ok(())
6955 }
6956 }
6957
6958 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6959 for WifiChipGetModeResponse
6960 {
6961 #[inline(always)]
6962 fn new_empty() -> Self {
6963 Self::default()
6964 }
6965
6966 unsafe fn decode(
6967 &mut self,
6968 decoder: &mut fidl::encoding::Decoder<'_, D>,
6969 offset: usize,
6970 mut depth: fidl::encoding::Depth,
6971 ) -> fidl::Result<()> {
6972 decoder.debug_check_bounds::<Self>(offset);
6973 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6974 None => return Err(fidl::Error::NotNullable),
6975 Some(len) => len,
6976 };
6977 if len == 0 {
6979 return Ok(());
6980 };
6981 depth.increment()?;
6982 let envelope_size = 8;
6983 let bytes_len = len * envelope_size;
6984 let offset = decoder.out_of_line_offset(bytes_len)?;
6985 let mut _next_ordinal_to_read = 0;
6987 let mut next_offset = offset;
6988 let end_offset = offset + bytes_len;
6989 _next_ordinal_to_read += 1;
6990 if next_offset >= end_offset {
6991 return Ok(());
6992 }
6993
6994 while _next_ordinal_to_read < 1 {
6996 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6997 _next_ordinal_to_read += 1;
6998 next_offset += envelope_size;
6999 }
7000
7001 let next_out_of_line = decoder.next_out_of_line();
7002 let handles_before = decoder.remaining_handles();
7003 if let Some((inlined, num_bytes, num_handles)) =
7004 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7005 {
7006 let member_inline_size =
7007 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7008 if inlined != (member_inline_size <= 4) {
7009 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7010 }
7011 let inner_offset;
7012 let mut inner_depth = depth.clone();
7013 if inlined {
7014 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7015 inner_offset = next_offset;
7016 } else {
7017 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7018 inner_depth.increment()?;
7019 }
7020 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(u32, D));
7021 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7022 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7023 {
7024 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7025 }
7026 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7027 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7028 }
7029 }
7030
7031 next_offset += envelope_size;
7032
7033 while next_offset < end_offset {
7035 _next_ordinal_to_read += 1;
7036 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7037 next_offset += envelope_size;
7038 }
7039
7040 Ok(())
7041 }
7042 }
7043
7044 impl WifiChipGetStaIfaceNamesResponse {
7045 #[inline(always)]
7046 fn max_ordinal_present(&self) -> u64 {
7047 if let Some(_) = self.iface_names {
7048 return 1;
7049 }
7050 0
7051 }
7052 }
7053
7054 impl fidl::encoding::ValueTypeMarker for WifiChipGetStaIfaceNamesResponse {
7055 type Borrowed<'a> = &'a Self;
7056 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7057 value
7058 }
7059 }
7060
7061 unsafe impl fidl::encoding::TypeMarker for WifiChipGetStaIfaceNamesResponse {
7062 type Owned = Self;
7063
7064 #[inline(always)]
7065 fn inline_align(_context: fidl::encoding::Context) -> usize {
7066 8
7067 }
7068
7069 #[inline(always)]
7070 fn inline_size(_context: fidl::encoding::Context) -> usize {
7071 16
7072 }
7073 }
7074
7075 unsafe impl<D: fidl::encoding::ResourceDialect>
7076 fidl::encoding::Encode<WifiChipGetStaIfaceNamesResponse, D>
7077 for &WifiChipGetStaIfaceNamesResponse
7078 {
7079 unsafe fn encode(
7080 self,
7081 encoder: &mut fidl::encoding::Encoder<'_, D>,
7082 offset: usize,
7083 mut depth: fidl::encoding::Depth,
7084 ) -> fidl::Result<()> {
7085 encoder.debug_check_bounds::<WifiChipGetStaIfaceNamesResponse>(offset);
7086 let max_ordinal: u64 = self.max_ordinal_present();
7088 encoder.write_num(max_ordinal, offset);
7089 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7090 if max_ordinal == 0 {
7092 return Ok(());
7093 }
7094 depth.increment()?;
7095 let envelope_size = 8;
7096 let bytes_len = max_ordinal as usize * envelope_size;
7097 #[allow(unused_variables)]
7098 let offset = encoder.out_of_line_offset(bytes_len);
7099 let mut _prev_end_offset: usize = 0;
7100 if 1 > max_ordinal {
7101 return Ok(());
7102 }
7103
7104 let cur_offset: usize = (1 - 1) * envelope_size;
7107
7108 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7110
7111 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>, D>(
7116 self.iface_names.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>> as fidl::encoding::ValueTypeMarker>::borrow),
7117 encoder, offset + cur_offset, depth
7118 )?;
7119
7120 _prev_end_offset = cur_offset + envelope_size;
7121
7122 Ok(())
7123 }
7124 }
7125
7126 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7127 for WifiChipGetStaIfaceNamesResponse
7128 {
7129 #[inline(always)]
7130 fn new_empty() -> Self {
7131 Self::default()
7132 }
7133
7134 unsafe fn decode(
7135 &mut self,
7136 decoder: &mut fidl::encoding::Decoder<'_, D>,
7137 offset: usize,
7138 mut depth: fidl::encoding::Depth,
7139 ) -> fidl::Result<()> {
7140 decoder.debug_check_bounds::<Self>(offset);
7141 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7142 None => return Err(fidl::Error::NotNullable),
7143 Some(len) => len,
7144 };
7145 if len == 0 {
7147 return Ok(());
7148 };
7149 depth.increment()?;
7150 let envelope_size = 8;
7151 let bytes_len = len * envelope_size;
7152 let offset = decoder.out_of_line_offset(bytes_len)?;
7153 let mut _next_ordinal_to_read = 0;
7155 let mut next_offset = offset;
7156 let end_offset = offset + bytes_len;
7157 _next_ordinal_to_read += 1;
7158 if next_offset >= end_offset {
7159 return Ok(());
7160 }
7161
7162 while _next_ordinal_to_read < 1 {
7164 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7165 _next_ordinal_to_read += 1;
7166 next_offset += envelope_size;
7167 }
7168
7169 let next_out_of_line = decoder.next_out_of_line();
7170 let handles_before = decoder.remaining_handles();
7171 if let Some((inlined, num_bytes, num_handles)) =
7172 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7173 {
7174 let member_inline_size = <fidl::encoding::UnboundedVector<
7175 fidl::encoding::BoundedString<16>,
7176 > as fidl::encoding::TypeMarker>::inline_size(
7177 decoder.context
7178 );
7179 if inlined != (member_inline_size <= 4) {
7180 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7181 }
7182 let inner_offset;
7183 let mut inner_depth = depth.clone();
7184 if inlined {
7185 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7186 inner_offset = next_offset;
7187 } else {
7188 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7189 inner_depth.increment()?;
7190 }
7191 let val_ref = self.iface_names.get_or_insert_with(|| {
7192 fidl::new_empty!(
7193 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
7194 D
7195 )
7196 });
7197 fidl::decode!(
7198 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
7199 D,
7200 val_ref,
7201 decoder,
7202 inner_offset,
7203 inner_depth
7204 )?;
7205 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7206 {
7207 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7208 }
7209 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7210 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7211 }
7212 }
7213
7214 next_offset += envelope_size;
7215
7216 while next_offset < end_offset {
7218 _next_ordinal_to_read += 1;
7219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7220 next_offset += envelope_size;
7221 }
7222
7223 Ok(())
7224 }
7225 }
7226
7227 impl WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest {
7228 #[inline(always)]
7229 fn max_ordinal_present(&self) -> u64 {
7230 if let Some(_) = self.curr_rssi_dbm {
7231 return 3;
7232 }
7233 if let Some(_) = self.curr_bssid {
7234 return 2;
7235 }
7236 if let Some(_) = self.cmd_id {
7237 return 1;
7238 }
7239 0
7240 }
7241 }
7242
7243 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest {
7244 type Borrowed<'a> = &'a Self;
7245 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7246 value
7247 }
7248 }
7249
7250 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest {
7251 type Owned = Self;
7252
7253 #[inline(always)]
7254 fn inline_align(_context: fidl::encoding::Context) -> usize {
7255 8
7256 }
7257
7258 #[inline(always)]
7259 fn inline_size(_context: fidl::encoding::Context) -> usize {
7260 16
7261 }
7262 }
7263
7264 unsafe impl<D: fidl::encoding::ResourceDialect>
7265 fidl::encoding::Encode<WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest, D>
7266 for &WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest
7267 {
7268 unsafe fn encode(
7269 self,
7270 encoder: &mut fidl::encoding::Encoder<'_, D>,
7271 offset: usize,
7272 mut depth: fidl::encoding::Depth,
7273 ) -> fidl::Result<()> {
7274 encoder.debug_check_bounds::<WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest>(
7275 offset,
7276 );
7277 let max_ordinal: u64 = self.max_ordinal_present();
7279 encoder.write_num(max_ordinal, offset);
7280 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7281 if max_ordinal == 0 {
7283 return Ok(());
7284 }
7285 depth.increment()?;
7286 let envelope_size = 8;
7287 let bytes_len = max_ordinal as usize * envelope_size;
7288 #[allow(unused_variables)]
7289 let offset = encoder.out_of_line_offset(bytes_len);
7290 let mut _prev_end_offset: usize = 0;
7291 if 1 > max_ordinal {
7292 return Ok(());
7293 }
7294
7295 let cur_offset: usize = (1 - 1) * envelope_size;
7298
7299 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7301
7302 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7307 self.cmd_id.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7308 encoder,
7309 offset + cur_offset,
7310 depth,
7311 )?;
7312
7313 _prev_end_offset = cur_offset + envelope_size;
7314 if 2 > max_ordinal {
7315 return Ok(());
7316 }
7317
7318 let cur_offset: usize = (2 - 1) * envelope_size;
7321
7322 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7324
7325 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
7330 self.curr_bssid
7331 .as_ref()
7332 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
7333 encoder,
7334 offset + cur_offset,
7335 depth,
7336 )?;
7337
7338 _prev_end_offset = cur_offset + envelope_size;
7339 if 3 > max_ordinal {
7340 return Ok(());
7341 }
7342
7343 let cur_offset: usize = (3 - 1) * envelope_size;
7346
7347 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7349
7350 fidl::encoding::encode_in_envelope_optional::<i8, D>(
7355 self.curr_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
7356 encoder,
7357 offset + cur_offset,
7358 depth,
7359 )?;
7360
7361 _prev_end_offset = cur_offset + envelope_size;
7362
7363 Ok(())
7364 }
7365 }
7366
7367 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7368 for WifiStaIfaceEventCallbackOnRssiThresholdBreachedRequest
7369 {
7370 #[inline(always)]
7371 fn new_empty() -> Self {
7372 Self::default()
7373 }
7374
7375 unsafe fn decode(
7376 &mut self,
7377 decoder: &mut fidl::encoding::Decoder<'_, D>,
7378 offset: usize,
7379 mut depth: fidl::encoding::Depth,
7380 ) -> fidl::Result<()> {
7381 decoder.debug_check_bounds::<Self>(offset);
7382 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7383 None => return Err(fidl::Error::NotNullable),
7384 Some(len) => len,
7385 };
7386 if len == 0 {
7388 return Ok(());
7389 };
7390 depth.increment()?;
7391 let envelope_size = 8;
7392 let bytes_len = len * envelope_size;
7393 let offset = decoder.out_of_line_offset(bytes_len)?;
7394 let mut _next_ordinal_to_read = 0;
7396 let mut next_offset = offset;
7397 let end_offset = offset + bytes_len;
7398 _next_ordinal_to_read += 1;
7399 if next_offset >= end_offset {
7400 return Ok(());
7401 }
7402
7403 while _next_ordinal_to_read < 1 {
7405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7406 _next_ordinal_to_read += 1;
7407 next_offset += envelope_size;
7408 }
7409
7410 let next_out_of_line = decoder.next_out_of_line();
7411 let handles_before = decoder.remaining_handles();
7412 if let Some((inlined, num_bytes, num_handles)) =
7413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7414 {
7415 let member_inline_size =
7416 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7417 if inlined != (member_inline_size <= 4) {
7418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7419 }
7420 let inner_offset;
7421 let mut inner_depth = depth.clone();
7422 if inlined {
7423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7424 inner_offset = next_offset;
7425 } else {
7426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7427 inner_depth.increment()?;
7428 }
7429 let val_ref = self.cmd_id.get_or_insert_with(|| fidl::new_empty!(i32, D));
7430 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7432 {
7433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7434 }
7435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7437 }
7438 }
7439
7440 next_offset += envelope_size;
7441 _next_ordinal_to_read += 1;
7442 if next_offset >= end_offset {
7443 return Ok(());
7444 }
7445
7446 while _next_ordinal_to_read < 2 {
7448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7449 _next_ordinal_to_read += 1;
7450 next_offset += envelope_size;
7451 }
7452
7453 let next_out_of_line = decoder.next_out_of_line();
7454 let handles_before = decoder.remaining_handles();
7455 if let Some((inlined, num_bytes, num_handles)) =
7456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7457 {
7458 let member_inline_size =
7459 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
7460 decoder.context,
7461 );
7462 if inlined != (member_inline_size <= 4) {
7463 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7464 }
7465 let inner_offset;
7466 let mut inner_depth = depth.clone();
7467 if inlined {
7468 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7469 inner_offset = next_offset;
7470 } else {
7471 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7472 inner_depth.increment()?;
7473 }
7474 let val_ref = self
7475 .curr_bssid
7476 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
7477 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
7478 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7479 {
7480 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7481 }
7482 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7483 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7484 }
7485 }
7486
7487 next_offset += envelope_size;
7488 _next_ordinal_to_read += 1;
7489 if next_offset >= end_offset {
7490 return Ok(());
7491 }
7492
7493 while _next_ordinal_to_read < 3 {
7495 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7496 _next_ordinal_to_read += 1;
7497 next_offset += envelope_size;
7498 }
7499
7500 let next_out_of_line = decoder.next_out_of_line();
7501 let handles_before = decoder.remaining_handles();
7502 if let Some((inlined, num_bytes, num_handles)) =
7503 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7504 {
7505 let member_inline_size =
7506 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7507 if inlined != (member_inline_size <= 4) {
7508 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7509 }
7510 let inner_offset;
7511 let mut inner_depth = depth.clone();
7512 if inlined {
7513 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7514 inner_offset = next_offset;
7515 } else {
7516 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7517 inner_depth.increment()?;
7518 }
7519 let val_ref = self.curr_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
7520 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
7521 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7522 {
7523 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7524 }
7525 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7526 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7527 }
7528 }
7529
7530 next_offset += envelope_size;
7531
7532 while next_offset < end_offset {
7534 _next_ordinal_to_read += 1;
7535 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7536 next_offset += envelope_size;
7537 }
7538
7539 Ok(())
7540 }
7541 }
7542
7543 impl WifiStaIfaceInstallApfPacketFilterRequest {
7544 #[inline(always)]
7545 fn max_ordinal_present(&self) -> u64 {
7546 if let Some(_) = self.program {
7547 return 1;
7548 }
7549 0
7550 }
7551 }
7552
7553 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
7554 type Borrowed<'a> = &'a Self;
7555 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7556 value
7557 }
7558 }
7559
7560 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
7561 type Owned = Self;
7562
7563 #[inline(always)]
7564 fn inline_align(_context: fidl::encoding::Context) -> usize {
7565 8
7566 }
7567
7568 #[inline(always)]
7569 fn inline_size(_context: fidl::encoding::Context) -> usize {
7570 16
7571 }
7572 }
7573
7574 unsafe impl<D: fidl::encoding::ResourceDialect>
7575 fidl::encoding::Encode<WifiStaIfaceInstallApfPacketFilterRequest, D>
7576 for &WifiStaIfaceInstallApfPacketFilterRequest
7577 {
7578 unsafe fn encode(
7579 self,
7580 encoder: &mut fidl::encoding::Encoder<'_, D>,
7581 offset: usize,
7582 mut depth: fidl::encoding::Depth,
7583 ) -> fidl::Result<()> {
7584 encoder.debug_check_bounds::<WifiStaIfaceInstallApfPacketFilterRequest>(offset);
7585 let max_ordinal: u64 = self.max_ordinal_present();
7587 encoder.write_num(max_ordinal, offset);
7588 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7589 if max_ordinal == 0 {
7591 return Ok(());
7592 }
7593 depth.increment()?;
7594 let envelope_size = 8;
7595 let bytes_len = max_ordinal as usize * envelope_size;
7596 #[allow(unused_variables)]
7597 let offset = encoder.out_of_line_offset(bytes_len);
7598 let mut _prev_end_offset: usize = 0;
7599 if 1 > max_ordinal {
7600 return Ok(());
7601 }
7602
7603 let cur_offset: usize = (1 - 1) * envelope_size;
7606
7607 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7609
7610 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
7615 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
7616 encoder, offset + cur_offset, depth
7617 )?;
7618
7619 _prev_end_offset = cur_offset + envelope_size;
7620
7621 Ok(())
7622 }
7623 }
7624
7625 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7626 for WifiStaIfaceInstallApfPacketFilterRequest
7627 {
7628 #[inline(always)]
7629 fn new_empty() -> Self {
7630 Self::default()
7631 }
7632
7633 unsafe fn decode(
7634 &mut self,
7635 decoder: &mut fidl::encoding::Decoder<'_, D>,
7636 offset: usize,
7637 mut depth: fidl::encoding::Depth,
7638 ) -> fidl::Result<()> {
7639 decoder.debug_check_bounds::<Self>(offset);
7640 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7641 None => return Err(fidl::Error::NotNullable),
7642 Some(len) => len,
7643 };
7644 if len == 0 {
7646 return Ok(());
7647 };
7648 depth.increment()?;
7649 let envelope_size = 8;
7650 let bytes_len = len * envelope_size;
7651 let offset = decoder.out_of_line_offset(bytes_len)?;
7652 let mut _next_ordinal_to_read = 0;
7654 let mut next_offset = offset;
7655 let end_offset = offset + bytes_len;
7656 _next_ordinal_to_read += 1;
7657 if next_offset >= end_offset {
7658 return Ok(());
7659 }
7660
7661 while _next_ordinal_to_read < 1 {
7663 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7664 _next_ordinal_to_read += 1;
7665 next_offset += envelope_size;
7666 }
7667
7668 let next_out_of_line = decoder.next_out_of_line();
7669 let handles_before = decoder.remaining_handles();
7670 if let Some((inlined, num_bytes, num_handles)) =
7671 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7672 {
7673 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7674 if inlined != (member_inline_size <= 4) {
7675 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7676 }
7677 let inner_offset;
7678 let mut inner_depth = depth.clone();
7679 if inlined {
7680 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7681 inner_offset = next_offset;
7682 } else {
7683 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7684 inner_depth.increment()?;
7685 }
7686 let val_ref = self.program.get_or_insert_with(|| {
7687 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7688 });
7689 fidl::decode!(
7690 fidl::encoding::UnboundedVector<u8>,
7691 D,
7692 val_ref,
7693 decoder,
7694 inner_offset,
7695 inner_depth
7696 )?;
7697 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7698 {
7699 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7700 }
7701 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7702 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7703 }
7704 }
7705
7706 next_offset += envelope_size;
7707
7708 while next_offset < end_offset {
7710 _next_ordinal_to_read += 1;
7711 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7712 next_offset += envelope_size;
7713 }
7714
7715 Ok(())
7716 }
7717 }
7718
7719 impl WifiStaIfaceStartRssiMonitoringRequest {
7720 #[inline(always)]
7721 fn max_ordinal_present(&self) -> u64 {
7722 if let Some(_) = self.min_rssi_dbm {
7723 return 3;
7724 }
7725 if let Some(_) = self.max_rssi_dbm {
7726 return 2;
7727 }
7728 if let Some(_) = self.cmd_id {
7729 return 1;
7730 }
7731 0
7732 }
7733 }
7734
7735 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceStartRssiMonitoringRequest {
7736 type Borrowed<'a> = &'a Self;
7737 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7738 value
7739 }
7740 }
7741
7742 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceStartRssiMonitoringRequest {
7743 type Owned = Self;
7744
7745 #[inline(always)]
7746 fn inline_align(_context: fidl::encoding::Context) -> usize {
7747 8
7748 }
7749
7750 #[inline(always)]
7751 fn inline_size(_context: fidl::encoding::Context) -> usize {
7752 16
7753 }
7754 }
7755
7756 unsafe impl<D: fidl::encoding::ResourceDialect>
7757 fidl::encoding::Encode<WifiStaIfaceStartRssiMonitoringRequest, D>
7758 for &WifiStaIfaceStartRssiMonitoringRequest
7759 {
7760 unsafe fn encode(
7761 self,
7762 encoder: &mut fidl::encoding::Encoder<'_, D>,
7763 offset: usize,
7764 mut depth: fidl::encoding::Depth,
7765 ) -> fidl::Result<()> {
7766 encoder.debug_check_bounds::<WifiStaIfaceStartRssiMonitoringRequest>(offset);
7767 let max_ordinal: u64 = self.max_ordinal_present();
7769 encoder.write_num(max_ordinal, offset);
7770 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7771 if max_ordinal == 0 {
7773 return Ok(());
7774 }
7775 depth.increment()?;
7776 let envelope_size = 8;
7777 let bytes_len = max_ordinal as usize * envelope_size;
7778 #[allow(unused_variables)]
7779 let offset = encoder.out_of_line_offset(bytes_len);
7780 let mut _prev_end_offset: usize = 0;
7781 if 1 > max_ordinal {
7782 return Ok(());
7783 }
7784
7785 let cur_offset: usize = (1 - 1) * envelope_size;
7788
7789 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7791
7792 fidl::encoding::encode_in_envelope_optional::<i32, D>(
7797 self.cmd_id.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
7798 encoder,
7799 offset + cur_offset,
7800 depth,
7801 )?;
7802
7803 _prev_end_offset = cur_offset + envelope_size;
7804 if 2 > max_ordinal {
7805 return Ok(());
7806 }
7807
7808 let cur_offset: usize = (2 - 1) * envelope_size;
7811
7812 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7814
7815 fidl::encoding::encode_in_envelope_optional::<i8, D>(
7820 self.max_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
7821 encoder,
7822 offset + cur_offset,
7823 depth,
7824 )?;
7825
7826 _prev_end_offset = cur_offset + envelope_size;
7827 if 3 > max_ordinal {
7828 return Ok(());
7829 }
7830
7831 let cur_offset: usize = (3 - 1) * envelope_size;
7834
7835 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7837
7838 fidl::encoding::encode_in_envelope_optional::<i8, D>(
7843 self.min_rssi_dbm.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
7844 encoder,
7845 offset + cur_offset,
7846 depth,
7847 )?;
7848
7849 _prev_end_offset = cur_offset + envelope_size;
7850
7851 Ok(())
7852 }
7853 }
7854
7855 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7856 for WifiStaIfaceStartRssiMonitoringRequest
7857 {
7858 #[inline(always)]
7859 fn new_empty() -> Self {
7860 Self::default()
7861 }
7862
7863 unsafe fn decode(
7864 &mut self,
7865 decoder: &mut fidl::encoding::Decoder<'_, D>,
7866 offset: usize,
7867 mut depth: fidl::encoding::Depth,
7868 ) -> fidl::Result<()> {
7869 decoder.debug_check_bounds::<Self>(offset);
7870 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7871 None => return Err(fidl::Error::NotNullable),
7872 Some(len) => len,
7873 };
7874 if len == 0 {
7876 return Ok(());
7877 };
7878 depth.increment()?;
7879 let envelope_size = 8;
7880 let bytes_len = len * envelope_size;
7881 let offset = decoder.out_of_line_offset(bytes_len)?;
7882 let mut _next_ordinal_to_read = 0;
7884 let mut next_offset = offset;
7885 let end_offset = offset + bytes_len;
7886 _next_ordinal_to_read += 1;
7887 if next_offset >= end_offset {
7888 return Ok(());
7889 }
7890
7891 while _next_ordinal_to_read < 1 {
7893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7894 _next_ordinal_to_read += 1;
7895 next_offset += envelope_size;
7896 }
7897
7898 let next_out_of_line = decoder.next_out_of_line();
7899 let handles_before = decoder.remaining_handles();
7900 if let Some((inlined, num_bytes, num_handles)) =
7901 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7902 {
7903 let member_inline_size =
7904 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7905 if inlined != (member_inline_size <= 4) {
7906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7907 }
7908 let inner_offset;
7909 let mut inner_depth = depth.clone();
7910 if inlined {
7911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7912 inner_offset = next_offset;
7913 } else {
7914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7915 inner_depth.increment()?;
7916 }
7917 let val_ref = self.cmd_id.get_or_insert_with(|| fidl::new_empty!(i32, D));
7918 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
7919 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7920 {
7921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7922 }
7923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7925 }
7926 }
7927
7928 next_offset += envelope_size;
7929 _next_ordinal_to_read += 1;
7930 if next_offset >= end_offset {
7931 return Ok(());
7932 }
7933
7934 while _next_ordinal_to_read < 2 {
7936 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7937 _next_ordinal_to_read += 1;
7938 next_offset += envelope_size;
7939 }
7940
7941 let next_out_of_line = decoder.next_out_of_line();
7942 let handles_before = decoder.remaining_handles();
7943 if let Some((inlined, num_bytes, num_handles)) =
7944 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7945 {
7946 let member_inline_size =
7947 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7948 if inlined != (member_inline_size <= 4) {
7949 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7950 }
7951 let inner_offset;
7952 let mut inner_depth = depth.clone();
7953 if inlined {
7954 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7955 inner_offset = next_offset;
7956 } else {
7957 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7958 inner_depth.increment()?;
7959 }
7960 let val_ref = self.max_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
7961 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
7962 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7963 {
7964 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7965 }
7966 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7967 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7968 }
7969 }
7970
7971 next_offset += envelope_size;
7972 _next_ordinal_to_read += 1;
7973 if next_offset >= end_offset {
7974 return Ok(());
7975 }
7976
7977 while _next_ordinal_to_read < 3 {
7979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7980 _next_ordinal_to_read += 1;
7981 next_offset += envelope_size;
7982 }
7983
7984 let next_out_of_line = decoder.next_out_of_line();
7985 let handles_before = decoder.remaining_handles();
7986 if let Some((inlined, num_bytes, num_handles)) =
7987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7988 {
7989 let member_inline_size =
7990 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7991 if inlined != (member_inline_size <= 4) {
7992 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7993 }
7994 let inner_offset;
7995 let mut inner_depth = depth.clone();
7996 if inlined {
7997 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7998 inner_offset = next_offset;
7999 } else {
8000 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8001 inner_depth.increment()?;
8002 }
8003 let val_ref = self.min_rssi_dbm.get_or_insert_with(|| fidl::new_empty!(i8, D));
8004 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
8005 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8006 {
8007 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8008 }
8009 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8010 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8011 }
8012 }
8013
8014 next_offset += envelope_size;
8015
8016 while next_offset < end_offset {
8018 _next_ordinal_to_read += 1;
8019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8020 next_offset += envelope_size;
8021 }
8022
8023 Ok(())
8024 }
8025 }
8026
8027 impl WifiStaIfaceStopRssiMonitoringRequest {
8028 #[inline(always)]
8029 fn max_ordinal_present(&self) -> u64 {
8030 if let Some(_) = self.cmd_id {
8031 return 1;
8032 }
8033 0
8034 }
8035 }
8036
8037 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceStopRssiMonitoringRequest {
8038 type Borrowed<'a> = &'a Self;
8039 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8040 value
8041 }
8042 }
8043
8044 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceStopRssiMonitoringRequest {
8045 type Owned = Self;
8046
8047 #[inline(always)]
8048 fn inline_align(_context: fidl::encoding::Context) -> usize {
8049 8
8050 }
8051
8052 #[inline(always)]
8053 fn inline_size(_context: fidl::encoding::Context) -> usize {
8054 16
8055 }
8056 }
8057
8058 unsafe impl<D: fidl::encoding::ResourceDialect>
8059 fidl::encoding::Encode<WifiStaIfaceStopRssiMonitoringRequest, D>
8060 for &WifiStaIfaceStopRssiMonitoringRequest
8061 {
8062 unsafe fn encode(
8063 self,
8064 encoder: &mut fidl::encoding::Encoder<'_, D>,
8065 offset: usize,
8066 mut depth: fidl::encoding::Depth,
8067 ) -> fidl::Result<()> {
8068 encoder.debug_check_bounds::<WifiStaIfaceStopRssiMonitoringRequest>(offset);
8069 let max_ordinal: u64 = self.max_ordinal_present();
8071 encoder.write_num(max_ordinal, offset);
8072 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8073 if max_ordinal == 0 {
8075 return Ok(());
8076 }
8077 depth.increment()?;
8078 let envelope_size = 8;
8079 let bytes_len = max_ordinal as usize * envelope_size;
8080 #[allow(unused_variables)]
8081 let offset = encoder.out_of_line_offset(bytes_len);
8082 let mut _prev_end_offset: usize = 0;
8083 if 1 > max_ordinal {
8084 return Ok(());
8085 }
8086
8087 let cur_offset: usize = (1 - 1) * envelope_size;
8090
8091 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8093
8094 fidl::encoding::encode_in_envelope_optional::<i32, D>(
8099 self.cmd_id.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
8100 encoder,
8101 offset + cur_offset,
8102 depth,
8103 )?;
8104
8105 _prev_end_offset = cur_offset + envelope_size;
8106
8107 Ok(())
8108 }
8109 }
8110
8111 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8112 for WifiStaIfaceStopRssiMonitoringRequest
8113 {
8114 #[inline(always)]
8115 fn new_empty() -> Self {
8116 Self::default()
8117 }
8118
8119 unsafe fn decode(
8120 &mut self,
8121 decoder: &mut fidl::encoding::Decoder<'_, D>,
8122 offset: usize,
8123 mut depth: fidl::encoding::Depth,
8124 ) -> fidl::Result<()> {
8125 decoder.debug_check_bounds::<Self>(offset);
8126 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8127 None => return Err(fidl::Error::NotNullable),
8128 Some(len) => len,
8129 };
8130 if len == 0 {
8132 return Ok(());
8133 };
8134 depth.increment()?;
8135 let envelope_size = 8;
8136 let bytes_len = len * envelope_size;
8137 let offset = decoder.out_of_line_offset(bytes_len)?;
8138 let mut _next_ordinal_to_read = 0;
8140 let mut next_offset = offset;
8141 let end_offset = offset + bytes_len;
8142 _next_ordinal_to_read += 1;
8143 if next_offset >= end_offset {
8144 return Ok(());
8145 }
8146
8147 while _next_ordinal_to_read < 1 {
8149 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8150 _next_ordinal_to_read += 1;
8151 next_offset += envelope_size;
8152 }
8153
8154 let next_out_of_line = decoder.next_out_of_line();
8155 let handles_before = decoder.remaining_handles();
8156 if let Some((inlined, num_bytes, num_handles)) =
8157 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8158 {
8159 let member_inline_size =
8160 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8161 if inlined != (member_inline_size <= 4) {
8162 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8163 }
8164 let inner_offset;
8165 let mut inner_depth = depth.clone();
8166 if inlined {
8167 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8168 inner_offset = next_offset;
8169 } else {
8170 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8171 inner_depth.increment()?;
8172 }
8173 let val_ref = self.cmd_id.get_or_insert_with(|| fidl::new_empty!(i32, D));
8174 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
8175 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8176 {
8177 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8178 }
8179 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8180 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8181 }
8182 }
8183
8184 next_offset += envelope_size;
8185
8186 while next_offset < end_offset {
8188 _next_ordinal_to_read += 1;
8189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8190 next_offset += envelope_size;
8191 }
8192
8193 Ok(())
8194 }
8195 }
8196
8197 impl WifiStaIfaceGetApfPacketFilterSupportResponse {
8198 #[inline(always)]
8199 fn max_ordinal_present(&self) -> u64 {
8200 if let Some(_) = self.max_filter_length {
8201 return 2;
8202 }
8203 if let Some(_) = self.version {
8204 return 1;
8205 }
8206 0
8207 }
8208 }
8209
8210 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
8211 type Borrowed<'a> = &'a Self;
8212 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8213 value
8214 }
8215 }
8216
8217 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
8218 type Owned = Self;
8219
8220 #[inline(always)]
8221 fn inline_align(_context: fidl::encoding::Context) -> usize {
8222 8
8223 }
8224
8225 #[inline(always)]
8226 fn inline_size(_context: fidl::encoding::Context) -> usize {
8227 16
8228 }
8229 }
8230
8231 unsafe impl<D: fidl::encoding::ResourceDialect>
8232 fidl::encoding::Encode<WifiStaIfaceGetApfPacketFilterSupportResponse, D>
8233 for &WifiStaIfaceGetApfPacketFilterSupportResponse
8234 {
8235 unsafe fn encode(
8236 self,
8237 encoder: &mut fidl::encoding::Encoder<'_, D>,
8238 offset: usize,
8239 mut depth: fidl::encoding::Depth,
8240 ) -> fidl::Result<()> {
8241 encoder.debug_check_bounds::<WifiStaIfaceGetApfPacketFilterSupportResponse>(offset);
8242 let max_ordinal: u64 = self.max_ordinal_present();
8244 encoder.write_num(max_ordinal, offset);
8245 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8246 if max_ordinal == 0 {
8248 return Ok(());
8249 }
8250 depth.increment()?;
8251 let envelope_size = 8;
8252 let bytes_len = max_ordinal as usize * envelope_size;
8253 #[allow(unused_variables)]
8254 let offset = encoder.out_of_line_offset(bytes_len);
8255 let mut _prev_end_offset: usize = 0;
8256 if 1 > max_ordinal {
8257 return Ok(());
8258 }
8259
8260 let cur_offset: usize = (1 - 1) * envelope_size;
8263
8264 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8266
8267 fidl::encoding::encode_in_envelope_optional::<i32, D>(
8272 self.version.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
8273 encoder,
8274 offset + cur_offset,
8275 depth,
8276 )?;
8277
8278 _prev_end_offset = cur_offset + envelope_size;
8279 if 2 > max_ordinal {
8280 return Ok(());
8281 }
8282
8283 let cur_offset: usize = (2 - 1) * envelope_size;
8286
8287 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8289
8290 fidl::encoding::encode_in_envelope_optional::<i32, D>(
8295 self.max_filter_length
8296 .as_ref()
8297 .map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
8298 encoder,
8299 offset + cur_offset,
8300 depth,
8301 )?;
8302
8303 _prev_end_offset = cur_offset + envelope_size;
8304
8305 Ok(())
8306 }
8307 }
8308
8309 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8310 for WifiStaIfaceGetApfPacketFilterSupportResponse
8311 {
8312 #[inline(always)]
8313 fn new_empty() -> Self {
8314 Self::default()
8315 }
8316
8317 unsafe fn decode(
8318 &mut self,
8319 decoder: &mut fidl::encoding::Decoder<'_, D>,
8320 offset: usize,
8321 mut depth: fidl::encoding::Depth,
8322 ) -> fidl::Result<()> {
8323 decoder.debug_check_bounds::<Self>(offset);
8324 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8325 None => return Err(fidl::Error::NotNullable),
8326 Some(len) => len,
8327 };
8328 if len == 0 {
8330 return Ok(());
8331 };
8332 depth.increment()?;
8333 let envelope_size = 8;
8334 let bytes_len = len * envelope_size;
8335 let offset = decoder.out_of_line_offset(bytes_len)?;
8336 let mut _next_ordinal_to_read = 0;
8338 let mut next_offset = offset;
8339 let end_offset = offset + bytes_len;
8340 _next_ordinal_to_read += 1;
8341 if next_offset >= end_offset {
8342 return Ok(());
8343 }
8344
8345 while _next_ordinal_to_read < 1 {
8347 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8348 _next_ordinal_to_read += 1;
8349 next_offset += envelope_size;
8350 }
8351
8352 let next_out_of_line = decoder.next_out_of_line();
8353 let handles_before = decoder.remaining_handles();
8354 if let Some((inlined, num_bytes, num_handles)) =
8355 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8356 {
8357 let member_inline_size =
8358 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8359 if inlined != (member_inline_size <= 4) {
8360 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8361 }
8362 let inner_offset;
8363 let mut inner_depth = depth.clone();
8364 if inlined {
8365 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8366 inner_offset = next_offset;
8367 } else {
8368 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8369 inner_depth.increment()?;
8370 }
8371 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(i32, D));
8372 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
8373 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8374 {
8375 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8376 }
8377 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8378 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8379 }
8380 }
8381
8382 next_offset += envelope_size;
8383 _next_ordinal_to_read += 1;
8384 if next_offset >= end_offset {
8385 return Ok(());
8386 }
8387
8388 while _next_ordinal_to_read < 2 {
8390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8391 _next_ordinal_to_read += 1;
8392 next_offset += envelope_size;
8393 }
8394
8395 let next_out_of_line = decoder.next_out_of_line();
8396 let handles_before = decoder.remaining_handles();
8397 if let Some((inlined, num_bytes, num_handles)) =
8398 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8399 {
8400 let member_inline_size =
8401 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8402 if inlined != (member_inline_size <= 4) {
8403 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8404 }
8405 let inner_offset;
8406 let mut inner_depth = depth.clone();
8407 if inlined {
8408 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8409 inner_offset = next_offset;
8410 } else {
8411 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8412 inner_depth.increment()?;
8413 }
8414 let val_ref =
8415 self.max_filter_length.get_or_insert_with(|| fidl::new_empty!(i32, D));
8416 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
8417 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8418 {
8419 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8420 }
8421 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8422 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8423 }
8424 }
8425
8426 next_offset += envelope_size;
8427
8428 while next_offset < end_offset {
8430 _next_ordinal_to_read += 1;
8431 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8432 next_offset += envelope_size;
8433 }
8434
8435 Ok(())
8436 }
8437 }
8438
8439 impl WifiStaIfaceGetFeatureSetResponse {
8440 #[inline(always)]
8441 fn max_ordinal_present(&self) -> u64 {
8442 if let Some(_) = self.rssi_monitor_supported {
8443 return 1;
8444 }
8445 0
8446 }
8447 }
8448
8449 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetFeatureSetResponse {
8450 type Borrowed<'a> = &'a Self;
8451 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8452 value
8453 }
8454 }
8455
8456 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetFeatureSetResponse {
8457 type Owned = Self;
8458
8459 #[inline(always)]
8460 fn inline_align(_context: fidl::encoding::Context) -> usize {
8461 8
8462 }
8463
8464 #[inline(always)]
8465 fn inline_size(_context: fidl::encoding::Context) -> usize {
8466 16
8467 }
8468 }
8469
8470 unsafe impl<D: fidl::encoding::ResourceDialect>
8471 fidl::encoding::Encode<WifiStaIfaceGetFeatureSetResponse, D>
8472 for &WifiStaIfaceGetFeatureSetResponse
8473 {
8474 unsafe fn encode(
8475 self,
8476 encoder: &mut fidl::encoding::Encoder<'_, D>,
8477 offset: usize,
8478 mut depth: fidl::encoding::Depth,
8479 ) -> fidl::Result<()> {
8480 encoder.debug_check_bounds::<WifiStaIfaceGetFeatureSetResponse>(offset);
8481 let max_ordinal: u64 = self.max_ordinal_present();
8483 encoder.write_num(max_ordinal, offset);
8484 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8485 if max_ordinal == 0 {
8487 return Ok(());
8488 }
8489 depth.increment()?;
8490 let envelope_size = 8;
8491 let bytes_len = max_ordinal as usize * envelope_size;
8492 #[allow(unused_variables)]
8493 let offset = encoder.out_of_line_offset(bytes_len);
8494 let mut _prev_end_offset: usize = 0;
8495 if 1 > max_ordinal {
8496 return Ok(());
8497 }
8498
8499 let cur_offset: usize = (1 - 1) * envelope_size;
8502
8503 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8505
8506 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8511 self.rssi_monitor_supported
8512 .as_ref()
8513 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8514 encoder,
8515 offset + cur_offset,
8516 depth,
8517 )?;
8518
8519 _prev_end_offset = cur_offset + envelope_size;
8520
8521 Ok(())
8522 }
8523 }
8524
8525 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8526 for WifiStaIfaceGetFeatureSetResponse
8527 {
8528 #[inline(always)]
8529 fn new_empty() -> Self {
8530 Self::default()
8531 }
8532
8533 unsafe fn decode(
8534 &mut self,
8535 decoder: &mut fidl::encoding::Decoder<'_, D>,
8536 offset: usize,
8537 mut depth: fidl::encoding::Depth,
8538 ) -> fidl::Result<()> {
8539 decoder.debug_check_bounds::<Self>(offset);
8540 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8541 None => return Err(fidl::Error::NotNullable),
8542 Some(len) => len,
8543 };
8544 if len == 0 {
8546 return Ok(());
8547 };
8548 depth.increment()?;
8549 let envelope_size = 8;
8550 let bytes_len = len * envelope_size;
8551 let offset = decoder.out_of_line_offset(bytes_len)?;
8552 let mut _next_ordinal_to_read = 0;
8554 let mut next_offset = offset;
8555 let end_offset = offset + bytes_len;
8556 _next_ordinal_to_read += 1;
8557 if next_offset >= end_offset {
8558 return Ok(());
8559 }
8560
8561 while _next_ordinal_to_read < 1 {
8563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8564 _next_ordinal_to_read += 1;
8565 next_offset += envelope_size;
8566 }
8567
8568 let next_out_of_line = decoder.next_out_of_line();
8569 let handles_before = decoder.remaining_handles();
8570 if let Some((inlined, num_bytes, num_handles)) =
8571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8572 {
8573 let member_inline_size =
8574 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8575 if inlined != (member_inline_size <= 4) {
8576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8577 }
8578 let inner_offset;
8579 let mut inner_depth = depth.clone();
8580 if inlined {
8581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8582 inner_offset = next_offset;
8583 } else {
8584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8585 inner_depth.increment()?;
8586 }
8587 let val_ref =
8588 self.rssi_monitor_supported.get_or_insert_with(|| fidl::new_empty!(bool, D));
8589 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8590 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8591 {
8592 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8593 }
8594 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8595 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8596 }
8597 }
8598
8599 next_offset += envelope_size;
8600
8601 while next_offset < end_offset {
8603 _next_ordinal_to_read += 1;
8604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8605 next_offset += envelope_size;
8606 }
8607
8608 Ok(())
8609 }
8610 }
8611
8612 impl WifiStaIfaceGetLinkLayerStatsResponse {
8613 #[inline(always)]
8614 fn max_ordinal_present(&self) -> u64 {
8615 if let Some(_) = self.stats {
8616 return 1;
8617 }
8618 0
8619 }
8620 }
8621
8622 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetLinkLayerStatsResponse {
8623 type Borrowed<'a> = &'a Self;
8624 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8625 value
8626 }
8627 }
8628
8629 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetLinkLayerStatsResponse {
8630 type Owned = Self;
8631
8632 #[inline(always)]
8633 fn inline_align(_context: fidl::encoding::Context) -> usize {
8634 8
8635 }
8636
8637 #[inline(always)]
8638 fn inline_size(_context: fidl::encoding::Context) -> usize {
8639 16
8640 }
8641 }
8642
8643 unsafe impl<D: fidl::encoding::ResourceDialect>
8644 fidl::encoding::Encode<WifiStaIfaceGetLinkLayerStatsResponse, D>
8645 for &WifiStaIfaceGetLinkLayerStatsResponse
8646 {
8647 unsafe fn encode(
8648 self,
8649 encoder: &mut fidl::encoding::Encoder<'_, D>,
8650 offset: usize,
8651 mut depth: fidl::encoding::Depth,
8652 ) -> fidl::Result<()> {
8653 encoder.debug_check_bounds::<WifiStaIfaceGetLinkLayerStatsResponse>(offset);
8654 let max_ordinal: u64 = self.max_ordinal_present();
8656 encoder.write_num(max_ordinal, offset);
8657 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8658 if max_ordinal == 0 {
8660 return Ok(());
8661 }
8662 depth.increment()?;
8663 let envelope_size = 8;
8664 let bytes_len = max_ordinal as usize * envelope_size;
8665 #[allow(unused_variables)]
8666 let offset = encoder.out_of_line_offset(bytes_len);
8667 let mut _prev_end_offset: usize = 0;
8668 if 1 > max_ordinal {
8669 return Ok(());
8670 }
8671
8672 let cur_offset: usize = (1 - 1) * envelope_size;
8675
8676 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8678
8679 fidl::encoding::encode_in_envelope_optional::<LinkLayerStats, D>(
8684 self.stats
8685 .as_ref()
8686 .map(<LinkLayerStats as fidl::encoding::ValueTypeMarker>::borrow),
8687 encoder,
8688 offset + cur_offset,
8689 depth,
8690 )?;
8691
8692 _prev_end_offset = cur_offset + envelope_size;
8693
8694 Ok(())
8695 }
8696 }
8697
8698 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8699 for WifiStaIfaceGetLinkLayerStatsResponse
8700 {
8701 #[inline(always)]
8702 fn new_empty() -> Self {
8703 Self::default()
8704 }
8705
8706 unsafe fn decode(
8707 &mut self,
8708 decoder: &mut fidl::encoding::Decoder<'_, D>,
8709 offset: usize,
8710 mut depth: fidl::encoding::Depth,
8711 ) -> fidl::Result<()> {
8712 decoder.debug_check_bounds::<Self>(offset);
8713 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8714 None => return Err(fidl::Error::NotNullable),
8715 Some(len) => len,
8716 };
8717 if len == 0 {
8719 return Ok(());
8720 };
8721 depth.increment()?;
8722 let envelope_size = 8;
8723 let bytes_len = len * envelope_size;
8724 let offset = decoder.out_of_line_offset(bytes_len)?;
8725 let mut _next_ordinal_to_read = 0;
8727 let mut next_offset = offset;
8728 let end_offset = offset + bytes_len;
8729 _next_ordinal_to_read += 1;
8730 if next_offset >= end_offset {
8731 return Ok(());
8732 }
8733
8734 while _next_ordinal_to_read < 1 {
8736 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8737 _next_ordinal_to_read += 1;
8738 next_offset += envelope_size;
8739 }
8740
8741 let next_out_of_line = decoder.next_out_of_line();
8742 let handles_before = decoder.remaining_handles();
8743 if let Some((inlined, num_bytes, num_handles)) =
8744 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8745 {
8746 let member_inline_size =
8747 <LinkLayerStats as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8748 if inlined != (member_inline_size <= 4) {
8749 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8750 }
8751 let inner_offset;
8752 let mut inner_depth = depth.clone();
8753 if inlined {
8754 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8755 inner_offset = next_offset;
8756 } else {
8757 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8758 inner_depth.increment()?;
8759 }
8760 let val_ref = self.stats.get_or_insert_with(|| fidl::new_empty!(LinkLayerStats, D));
8761 fidl::decode!(LinkLayerStats, D, val_ref, decoder, inner_offset, inner_depth)?;
8762 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8763 {
8764 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8765 }
8766 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8767 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8768 }
8769 }
8770
8771 next_offset += envelope_size;
8772
8773 while next_offset < end_offset {
8775 _next_ordinal_to_read += 1;
8776 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8777 next_offset += envelope_size;
8778 }
8779
8780 Ok(())
8781 }
8782 }
8783
8784 impl WifiStaIfaceGetNameResponse {
8785 #[inline(always)]
8786 fn max_ordinal_present(&self) -> u64 {
8787 if let Some(_) = self.iface_name {
8788 return 1;
8789 }
8790 0
8791 }
8792 }
8793
8794 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetNameResponse {
8795 type Borrowed<'a> = &'a Self;
8796 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8797 value
8798 }
8799 }
8800
8801 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetNameResponse {
8802 type Owned = Self;
8803
8804 #[inline(always)]
8805 fn inline_align(_context: fidl::encoding::Context) -> usize {
8806 8
8807 }
8808
8809 #[inline(always)]
8810 fn inline_size(_context: fidl::encoding::Context) -> usize {
8811 16
8812 }
8813 }
8814
8815 unsafe impl<D: fidl::encoding::ResourceDialect>
8816 fidl::encoding::Encode<WifiStaIfaceGetNameResponse, D> for &WifiStaIfaceGetNameResponse
8817 {
8818 unsafe fn encode(
8819 self,
8820 encoder: &mut fidl::encoding::Encoder<'_, D>,
8821 offset: usize,
8822 mut depth: fidl::encoding::Depth,
8823 ) -> fidl::Result<()> {
8824 encoder.debug_check_bounds::<WifiStaIfaceGetNameResponse>(offset);
8825 let max_ordinal: u64 = self.max_ordinal_present();
8827 encoder.write_num(max_ordinal, offset);
8828 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8829 if max_ordinal == 0 {
8831 return Ok(());
8832 }
8833 depth.increment()?;
8834 let envelope_size = 8;
8835 let bytes_len = max_ordinal as usize * envelope_size;
8836 #[allow(unused_variables)]
8837 let offset = encoder.out_of_line_offset(bytes_len);
8838 let mut _prev_end_offset: usize = 0;
8839 if 1 > max_ordinal {
8840 return Ok(());
8841 }
8842
8843 let cur_offset: usize = (1 - 1) * envelope_size;
8846
8847 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8849
8850 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<16>, D>(
8855 self.iface_name.as_ref().map(
8856 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow,
8857 ),
8858 encoder,
8859 offset + cur_offset,
8860 depth,
8861 )?;
8862
8863 _prev_end_offset = cur_offset + envelope_size;
8864
8865 Ok(())
8866 }
8867 }
8868
8869 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8870 for WifiStaIfaceGetNameResponse
8871 {
8872 #[inline(always)]
8873 fn new_empty() -> Self {
8874 Self::default()
8875 }
8876
8877 unsafe fn decode(
8878 &mut self,
8879 decoder: &mut fidl::encoding::Decoder<'_, D>,
8880 offset: usize,
8881 mut depth: fidl::encoding::Depth,
8882 ) -> fidl::Result<()> {
8883 decoder.debug_check_bounds::<Self>(offset);
8884 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8885 None => return Err(fidl::Error::NotNullable),
8886 Some(len) => len,
8887 };
8888 if len == 0 {
8890 return Ok(());
8891 };
8892 depth.increment()?;
8893 let envelope_size = 8;
8894 let bytes_len = len * envelope_size;
8895 let offset = decoder.out_of_line_offset(bytes_len)?;
8896 let mut _next_ordinal_to_read = 0;
8898 let mut next_offset = offset;
8899 let end_offset = offset + bytes_len;
8900 _next_ordinal_to_read += 1;
8901 if next_offset >= end_offset {
8902 return Ok(());
8903 }
8904
8905 while _next_ordinal_to_read < 1 {
8907 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8908 _next_ordinal_to_read += 1;
8909 next_offset += envelope_size;
8910 }
8911
8912 let next_out_of_line = decoder.next_out_of_line();
8913 let handles_before = decoder.remaining_handles();
8914 if let Some((inlined, num_bytes, num_handles)) =
8915 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8916 {
8917 let member_inline_size =
8918 <fidl::encoding::BoundedString<16> as fidl::encoding::TypeMarker>::inline_size(
8919 decoder.context,
8920 );
8921 if inlined != (member_inline_size <= 4) {
8922 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8923 }
8924 let inner_offset;
8925 let mut inner_depth = depth.clone();
8926 if inlined {
8927 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8928 inner_offset = next_offset;
8929 } else {
8930 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8931 inner_depth.increment()?;
8932 }
8933 let val_ref = self
8934 .iface_name
8935 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<16>, D));
8936 fidl::decode!(
8937 fidl::encoding::BoundedString<16>,
8938 D,
8939 val_ref,
8940 decoder,
8941 inner_offset,
8942 inner_depth
8943 )?;
8944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8945 {
8946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8947 }
8948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8950 }
8951 }
8952
8953 next_offset += envelope_size;
8954
8955 while next_offset < end_offset {
8957 _next_ordinal_to_read += 1;
8958 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8959 next_offset += envelope_size;
8960 }
8961
8962 Ok(())
8963 }
8964 }
8965
8966 impl WifiStaIfaceReadApfPacketFilterDataResponse {
8967 #[inline(always)]
8968 fn max_ordinal_present(&self) -> u64 {
8969 if let Some(_) = self.memory {
8970 return 1;
8971 }
8972 0
8973 }
8974 }
8975
8976 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
8977 type Borrowed<'a> = &'a Self;
8978 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8979 value
8980 }
8981 }
8982
8983 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
8984 type Owned = Self;
8985
8986 #[inline(always)]
8987 fn inline_align(_context: fidl::encoding::Context) -> usize {
8988 8
8989 }
8990
8991 #[inline(always)]
8992 fn inline_size(_context: fidl::encoding::Context) -> usize {
8993 16
8994 }
8995 }
8996
8997 unsafe impl<D: fidl::encoding::ResourceDialect>
8998 fidl::encoding::Encode<WifiStaIfaceReadApfPacketFilterDataResponse, D>
8999 for &WifiStaIfaceReadApfPacketFilterDataResponse
9000 {
9001 unsafe fn encode(
9002 self,
9003 encoder: &mut fidl::encoding::Encoder<'_, D>,
9004 offset: usize,
9005 mut depth: fidl::encoding::Depth,
9006 ) -> fidl::Result<()> {
9007 encoder.debug_check_bounds::<WifiStaIfaceReadApfPacketFilterDataResponse>(offset);
9008 let max_ordinal: u64 = self.max_ordinal_present();
9010 encoder.write_num(max_ordinal, offset);
9011 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9012 if max_ordinal == 0 {
9014 return Ok(());
9015 }
9016 depth.increment()?;
9017 let envelope_size = 8;
9018 let bytes_len = max_ordinal as usize * envelope_size;
9019 #[allow(unused_variables)]
9020 let offset = encoder.out_of_line_offset(bytes_len);
9021 let mut _prev_end_offset: usize = 0;
9022 if 1 > max_ordinal {
9023 return Ok(());
9024 }
9025
9026 let cur_offset: usize = (1 - 1) * envelope_size;
9029
9030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9032
9033 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
9038 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
9039 encoder, offset + cur_offset, depth
9040 )?;
9041
9042 _prev_end_offset = cur_offset + envelope_size;
9043
9044 Ok(())
9045 }
9046 }
9047
9048 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9049 for WifiStaIfaceReadApfPacketFilterDataResponse
9050 {
9051 #[inline(always)]
9052 fn new_empty() -> Self {
9053 Self::default()
9054 }
9055
9056 unsafe fn decode(
9057 &mut self,
9058 decoder: &mut fidl::encoding::Decoder<'_, D>,
9059 offset: usize,
9060 mut depth: fidl::encoding::Depth,
9061 ) -> fidl::Result<()> {
9062 decoder.debug_check_bounds::<Self>(offset);
9063 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9064 None => return Err(fidl::Error::NotNullable),
9065 Some(len) => len,
9066 };
9067 if len == 0 {
9069 return Ok(());
9070 };
9071 depth.increment()?;
9072 let envelope_size = 8;
9073 let bytes_len = len * envelope_size;
9074 let offset = decoder.out_of_line_offset(bytes_len)?;
9075 let mut _next_ordinal_to_read = 0;
9077 let mut next_offset = offset;
9078 let end_offset = offset + bytes_len;
9079 _next_ordinal_to_read += 1;
9080 if next_offset >= end_offset {
9081 return Ok(());
9082 }
9083
9084 while _next_ordinal_to_read < 1 {
9086 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9087 _next_ordinal_to_read += 1;
9088 next_offset += envelope_size;
9089 }
9090
9091 let next_out_of_line = decoder.next_out_of_line();
9092 let handles_before = decoder.remaining_handles();
9093 if let Some((inlined, num_bytes, num_handles)) =
9094 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9095 {
9096 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9097 if inlined != (member_inline_size <= 4) {
9098 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9099 }
9100 let inner_offset;
9101 let mut inner_depth = depth.clone();
9102 if inlined {
9103 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9104 inner_offset = next_offset;
9105 } else {
9106 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9107 inner_depth.increment()?;
9108 }
9109 let val_ref = self.memory.get_or_insert_with(|| {
9110 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
9111 });
9112 fidl::decode!(
9113 fidl::encoding::UnboundedVector<u8>,
9114 D,
9115 val_ref,
9116 decoder,
9117 inner_offset,
9118 inner_depth
9119 )?;
9120 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9121 {
9122 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9123 }
9124 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9125 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9126 }
9127 }
9128
9129 next_offset += envelope_size;
9130
9131 while next_offset < end_offset {
9133 _next_ordinal_to_read += 1;
9134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9135 next_offset += envelope_size;
9136 }
9137
9138 Ok(())
9139 }
9140 }
9141
9142 impl WifiGetChipIdsResponse {
9143 #[inline(always)]
9144 fn max_ordinal_present(&self) -> u64 {
9145 if let Some(_) = self.chip_ids {
9146 return 1;
9147 }
9148 0
9149 }
9150 }
9151
9152 impl fidl::encoding::ValueTypeMarker for WifiGetChipIdsResponse {
9153 type Borrowed<'a> = &'a Self;
9154 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9155 value
9156 }
9157 }
9158
9159 unsafe impl fidl::encoding::TypeMarker for WifiGetChipIdsResponse {
9160 type Owned = Self;
9161
9162 #[inline(always)]
9163 fn inline_align(_context: fidl::encoding::Context) -> usize {
9164 8
9165 }
9166
9167 #[inline(always)]
9168 fn inline_size(_context: fidl::encoding::Context) -> usize {
9169 16
9170 }
9171 }
9172
9173 unsafe impl<D: fidl::encoding::ResourceDialect>
9174 fidl::encoding::Encode<WifiGetChipIdsResponse, D> for &WifiGetChipIdsResponse
9175 {
9176 unsafe fn encode(
9177 self,
9178 encoder: &mut fidl::encoding::Encoder<'_, D>,
9179 offset: usize,
9180 mut depth: fidl::encoding::Depth,
9181 ) -> fidl::Result<()> {
9182 encoder.debug_check_bounds::<WifiGetChipIdsResponse>(offset);
9183 let max_ordinal: u64 = self.max_ordinal_present();
9185 encoder.write_num(max_ordinal, offset);
9186 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9187 if max_ordinal == 0 {
9189 return Ok(());
9190 }
9191 depth.increment()?;
9192 let envelope_size = 8;
9193 let bytes_len = max_ordinal as usize * envelope_size;
9194 #[allow(unused_variables)]
9195 let offset = encoder.out_of_line_offset(bytes_len);
9196 let mut _prev_end_offset: usize = 0;
9197 if 1 > max_ordinal {
9198 return Ok(());
9199 }
9200
9201 let cur_offset: usize = (1 - 1) * envelope_size;
9204
9205 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9207
9208 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u32>, D>(
9213 self.chip_ids.as_ref().map(<fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow),
9214 encoder, offset + cur_offset, depth
9215 )?;
9216
9217 _prev_end_offset = cur_offset + envelope_size;
9218
9219 Ok(())
9220 }
9221 }
9222
9223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9224 for WifiGetChipIdsResponse
9225 {
9226 #[inline(always)]
9227 fn new_empty() -> Self {
9228 Self::default()
9229 }
9230
9231 unsafe fn decode(
9232 &mut self,
9233 decoder: &mut fidl::encoding::Decoder<'_, D>,
9234 offset: usize,
9235 mut depth: fidl::encoding::Depth,
9236 ) -> fidl::Result<()> {
9237 decoder.debug_check_bounds::<Self>(offset);
9238 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9239 None => return Err(fidl::Error::NotNullable),
9240 Some(len) => len,
9241 };
9242 if len == 0 {
9244 return Ok(());
9245 };
9246 depth.increment()?;
9247 let envelope_size = 8;
9248 let bytes_len = len * envelope_size;
9249 let offset = decoder.out_of_line_offset(bytes_len)?;
9250 let mut _next_ordinal_to_read = 0;
9252 let mut next_offset = offset;
9253 let end_offset = offset + bytes_len;
9254 _next_ordinal_to_read += 1;
9255 if next_offset >= end_offset {
9256 return Ok(());
9257 }
9258
9259 while _next_ordinal_to_read < 1 {
9261 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9262 _next_ordinal_to_read += 1;
9263 next_offset += envelope_size;
9264 }
9265
9266 let next_out_of_line = decoder.next_out_of_line();
9267 let handles_before = decoder.remaining_handles();
9268 if let Some((inlined, num_bytes, num_handles)) =
9269 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9270 {
9271 let member_inline_size = <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9272 if inlined != (member_inline_size <= 4) {
9273 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9274 }
9275 let inner_offset;
9276 let mut inner_depth = depth.clone();
9277 if inlined {
9278 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9279 inner_offset = next_offset;
9280 } else {
9281 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9282 inner_depth.increment()?;
9283 }
9284 let val_ref = self.chip_ids.get_or_insert_with(|| {
9285 fidl::new_empty!(fidl::encoding::UnboundedVector<u32>, D)
9286 });
9287 fidl::decode!(
9288 fidl::encoding::UnboundedVector<u32>,
9289 D,
9290 val_ref,
9291 decoder,
9292 inner_offset,
9293 inner_depth
9294 )?;
9295 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9296 {
9297 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9298 }
9299 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9300 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9301 }
9302 }
9303
9304 next_offset += envelope_size;
9305
9306 while next_offset < end_offset {
9308 _next_ordinal_to_read += 1;
9309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9310 next_offset += envelope_size;
9311 }
9312
9313 Ok(())
9314 }
9315 }
9316
9317 impl WifiGetStateResponse {
9318 #[inline(always)]
9319 fn max_ordinal_present(&self) -> u64 {
9320 if let Some(_) = self.is_started {
9321 return 1;
9322 }
9323 0
9324 }
9325 }
9326
9327 impl fidl::encoding::ValueTypeMarker for WifiGetStateResponse {
9328 type Borrowed<'a> = &'a Self;
9329 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9330 value
9331 }
9332 }
9333
9334 unsafe impl fidl::encoding::TypeMarker for WifiGetStateResponse {
9335 type Owned = Self;
9336
9337 #[inline(always)]
9338 fn inline_align(_context: fidl::encoding::Context) -> usize {
9339 8
9340 }
9341
9342 #[inline(always)]
9343 fn inline_size(_context: fidl::encoding::Context) -> usize {
9344 16
9345 }
9346 }
9347
9348 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiGetStateResponse, D>
9349 for &WifiGetStateResponse
9350 {
9351 unsafe fn encode(
9352 self,
9353 encoder: &mut fidl::encoding::Encoder<'_, D>,
9354 offset: usize,
9355 mut depth: fidl::encoding::Depth,
9356 ) -> fidl::Result<()> {
9357 encoder.debug_check_bounds::<WifiGetStateResponse>(offset);
9358 let max_ordinal: u64 = self.max_ordinal_present();
9360 encoder.write_num(max_ordinal, offset);
9361 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9362 if max_ordinal == 0 {
9364 return Ok(());
9365 }
9366 depth.increment()?;
9367 let envelope_size = 8;
9368 let bytes_len = max_ordinal as usize * envelope_size;
9369 #[allow(unused_variables)]
9370 let offset = encoder.out_of_line_offset(bytes_len);
9371 let mut _prev_end_offset: usize = 0;
9372 if 1 > max_ordinal {
9373 return Ok(());
9374 }
9375
9376 let cur_offset: usize = (1 - 1) * envelope_size;
9379
9380 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9382
9383 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9388 self.is_started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9389 encoder,
9390 offset + cur_offset,
9391 depth,
9392 )?;
9393
9394 _prev_end_offset = cur_offset + envelope_size;
9395
9396 Ok(())
9397 }
9398 }
9399
9400 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiGetStateResponse {
9401 #[inline(always)]
9402 fn new_empty() -> Self {
9403 Self::default()
9404 }
9405
9406 unsafe fn decode(
9407 &mut self,
9408 decoder: &mut fidl::encoding::Decoder<'_, D>,
9409 offset: usize,
9410 mut depth: fidl::encoding::Depth,
9411 ) -> fidl::Result<()> {
9412 decoder.debug_check_bounds::<Self>(offset);
9413 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9414 None => return Err(fidl::Error::NotNullable),
9415 Some(len) => len,
9416 };
9417 if len == 0 {
9419 return Ok(());
9420 };
9421 depth.increment()?;
9422 let envelope_size = 8;
9423 let bytes_len = len * envelope_size;
9424 let offset = decoder.out_of_line_offset(bytes_len)?;
9425 let mut _next_ordinal_to_read = 0;
9427 let mut next_offset = offset;
9428 let end_offset = offset + bytes_len;
9429 _next_ordinal_to_read += 1;
9430 if next_offset >= end_offset {
9431 return Ok(());
9432 }
9433
9434 while _next_ordinal_to_read < 1 {
9436 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9437 _next_ordinal_to_read += 1;
9438 next_offset += envelope_size;
9439 }
9440
9441 let next_out_of_line = decoder.next_out_of_line();
9442 let handles_before = decoder.remaining_handles();
9443 if let Some((inlined, num_bytes, num_handles)) =
9444 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9445 {
9446 let member_inline_size =
9447 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9448 if inlined != (member_inline_size <= 4) {
9449 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9450 }
9451 let inner_offset;
9452 let mut inner_depth = depth.clone();
9453 if inlined {
9454 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9455 inner_offset = next_offset;
9456 } else {
9457 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9458 inner_depth.increment()?;
9459 }
9460 let val_ref = self.is_started.get_or_insert_with(|| fidl::new_empty!(bool, D));
9461 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9462 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9463 {
9464 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9465 }
9466 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9467 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9468 }
9469 }
9470
9471 next_offset += envelope_size;
9472
9473 while next_offset < end_offset {
9475 _next_ordinal_to_read += 1;
9476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9477 next_offset += envelope_size;
9478 }
9479
9480 Ok(())
9481 }
9482 }
9483
9484 impl fidl::encoding::ValueTypeMarker for Nl80211Message {
9485 type Borrowed<'a> = &'a Self;
9486 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9487 value
9488 }
9489 }
9490
9491 unsafe impl fidl::encoding::TypeMarker for Nl80211Message {
9492 type Owned = Self;
9493
9494 #[inline(always)]
9495 fn inline_align(_context: fidl::encoding::Context) -> usize {
9496 8
9497 }
9498
9499 #[inline(always)]
9500 fn inline_size(_context: fidl::encoding::Context) -> usize {
9501 16
9502 }
9503 }
9504
9505 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211Message, D>
9506 for &Nl80211Message
9507 {
9508 #[inline]
9509 unsafe fn encode(
9510 self,
9511 encoder: &mut fidl::encoding::Encoder<'_, D>,
9512 offset: usize,
9513 _depth: fidl::encoding::Depth,
9514 ) -> fidl::Result<()> {
9515 encoder.debug_check_bounds::<Nl80211Message>(offset);
9516 encoder.write_num::<u64>(self.ordinal(), offset);
9517 match self {
9518 Nl80211Message::Done(ref val) => fidl::encoding::encode_in_envelope::<Done, D>(
9519 <Done as fidl::encoding::ValueTypeMarker>::borrow(val),
9520 encoder,
9521 offset + 8,
9522 _depth,
9523 ),
9524 Nl80211Message::Error(ref val) => fidl::encoding::encode_in_envelope::<Error, D>(
9525 <Error as fidl::encoding::ValueTypeMarker>::borrow(val),
9526 encoder,
9527 offset + 8,
9528 _depth,
9529 ),
9530 Nl80211Message::Ack(ref val) => fidl::encoding::encode_in_envelope::<Ack, D>(
9531 <Ack as fidl::encoding::ValueTypeMarker>::borrow(val),
9532 encoder,
9533 offset + 8,
9534 _depth,
9535 ),
9536 Nl80211Message::Message(ref val) => {
9537 fidl::encoding::encode_in_envelope::<Message, D>(
9538 <Message as fidl::encoding::ValueTypeMarker>::borrow(val),
9539 encoder,
9540 offset + 8,
9541 _depth,
9542 )
9543 }
9544 Nl80211Message::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
9545 }
9546 }
9547 }
9548
9549 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211Message {
9550 #[inline(always)]
9551 fn new_empty() -> Self {
9552 Self::__SourceBreaking { unknown_ordinal: 0 }
9553 }
9554
9555 #[inline]
9556 unsafe fn decode(
9557 &mut self,
9558 decoder: &mut fidl::encoding::Decoder<'_, D>,
9559 offset: usize,
9560 mut depth: fidl::encoding::Depth,
9561 ) -> fidl::Result<()> {
9562 decoder.debug_check_bounds::<Self>(offset);
9563 #[allow(unused_variables)]
9564 let next_out_of_line = decoder.next_out_of_line();
9565 let handles_before = decoder.remaining_handles();
9566 let (ordinal, inlined, num_bytes, num_handles) =
9567 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
9568
9569 let member_inline_size = match ordinal {
9570 1 => <Done as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9571 2 => <Error as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9572 3 => <Ack as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9573 4 => <Message as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9574 0 => return Err(fidl::Error::UnknownUnionTag),
9575 _ => num_bytes as usize,
9576 };
9577
9578 if inlined != (member_inline_size <= 4) {
9579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9580 }
9581 let _inner_offset;
9582 if inlined {
9583 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
9584 _inner_offset = offset + 8;
9585 } else {
9586 depth.increment()?;
9587 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9588 }
9589 match ordinal {
9590 1 => {
9591 #[allow(irrefutable_let_patterns)]
9592 if let Nl80211Message::Done(_) = self {
9593 } else {
9595 *self = Nl80211Message::Done(fidl::new_empty!(Done, D));
9597 }
9598 #[allow(irrefutable_let_patterns)]
9599 if let Nl80211Message::Done(ref mut val) = self {
9600 fidl::decode!(Done, D, val, decoder, _inner_offset, depth)?;
9601 } else {
9602 unreachable!()
9603 }
9604 }
9605 2 => {
9606 #[allow(irrefutable_let_patterns)]
9607 if let Nl80211Message::Error(_) = self {
9608 } else {
9610 *self = Nl80211Message::Error(fidl::new_empty!(Error, D));
9612 }
9613 #[allow(irrefutable_let_patterns)]
9614 if let Nl80211Message::Error(ref mut val) = self {
9615 fidl::decode!(Error, D, val, decoder, _inner_offset, depth)?;
9616 } else {
9617 unreachable!()
9618 }
9619 }
9620 3 => {
9621 #[allow(irrefutable_let_patterns)]
9622 if let Nl80211Message::Ack(_) = self {
9623 } else {
9625 *self = Nl80211Message::Ack(fidl::new_empty!(Ack, D));
9627 }
9628 #[allow(irrefutable_let_patterns)]
9629 if let Nl80211Message::Ack(ref mut val) = self {
9630 fidl::decode!(Ack, D, val, decoder, _inner_offset, depth)?;
9631 } else {
9632 unreachable!()
9633 }
9634 }
9635 4 => {
9636 #[allow(irrefutable_let_patterns)]
9637 if let Nl80211Message::Message(_) = self {
9638 } else {
9640 *self = Nl80211Message::Message(fidl::new_empty!(Message, D));
9642 }
9643 #[allow(irrefutable_let_patterns)]
9644 if let Nl80211Message::Message(ref mut val) = self {
9645 fidl::decode!(Message, D, val, decoder, _inner_offset, depth)?;
9646 } else {
9647 unreachable!()
9648 }
9649 }
9650 #[allow(deprecated)]
9651 ordinal => {
9652 for _ in 0..num_handles {
9653 decoder.drop_next_handle()?;
9654 }
9655 *self = Nl80211Message::__SourceBreaking { unknown_ordinal: ordinal };
9656 }
9657 }
9658 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
9659 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9660 }
9661 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9662 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9663 }
9664 Ok(())
9665 }
9666 }
9667}