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 SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
738 pub ssid: Option<Vec<u8>>,
739 pub bssid: Option<[u8; 6]>,
740 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
741 pub timed_out: Option<bool>,
742 #[doc(hidden)]
743 pub __source_breaking: fidl::marker::SourceBreaking,
744}
745
746impl fidl::Persistable for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {}
747
748#[derive(Clone, Debug, Default, PartialEq)]
749pub struct SupplicantStaIfaceCallbackOnDisconnectedRequest {
750 pub bssid: Option<[u8; 6]>,
751 pub locally_generated: Option<bool>,
752 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
753 #[doc(hidden)]
754 pub __source_breaking: fidl::marker::SourceBreaking,
755}
756
757impl fidl::Persistable for SupplicantStaIfaceCallbackOnDisconnectedRequest {}
758
759#[derive(Clone, Debug, Default, PartialEq)]
760pub struct SupplicantStaIfaceCallbackOnStateChangedRequest {
761 pub new_state: Option<StaIfaceCallbackState>,
762 pub bssid: Option<[u8; 6]>,
763 pub id: Option<u32>,
764 pub ssid: Option<Vec<u8>>,
765 #[doc(hidden)]
766 pub __source_breaking: fidl::marker::SourceBreaking,
767}
768
769impl fidl::Persistable for SupplicantStaIfaceCallbackOnStateChangedRequest {}
770
771#[derive(Clone, Debug, Default, PartialEq)]
772pub struct SupplicantStaIfaceSetBtCoexistenceModeRequest {
773 pub mode: Option<BtCoexistenceMode>,
774 #[doc(hidden)]
775 pub __source_breaking: fidl::marker::SourceBreaking,
776}
777
778impl fidl::Persistable for SupplicantStaIfaceSetBtCoexistenceModeRequest {}
779
780#[derive(Clone, Debug, Default, PartialEq)]
781pub struct SupplicantStaIfaceGetMacAddressResponse {
782 pub mac_addr: Option<[u8; 6]>,
783 #[doc(hidden)]
784 pub __source_breaking: fidl::marker::SourceBreaking,
785}
786
787impl fidl::Persistable for SupplicantStaIfaceGetMacAddressResponse {}
788
789#[derive(Clone, Debug, Default, PartialEq)]
790pub struct SupplicantStaNetworkSetBssidRequest {
791 pub bssid: Option<[u8; 6]>,
792 #[doc(hidden)]
793 pub __source_breaking: fidl::marker::SourceBreaking,
794}
795
796impl fidl::Persistable for SupplicantStaNetworkSetBssidRequest {}
797
798#[derive(Clone, Debug, Default, PartialEq)]
799pub struct SupplicantStaNetworkSetKeyMgmtRequest {
800 pub key_mgmt_mask: Option<KeyMgmtMask>,
801 #[doc(hidden)]
802 pub __source_breaking: fidl::marker::SourceBreaking,
803}
804
805impl fidl::Persistable for SupplicantStaNetworkSetKeyMgmtRequest {}
806
807#[derive(Clone, Debug, Default, PartialEq)]
808pub struct SupplicantStaNetworkSetPskPassphraseRequest {
809 pub passphrase: Option<Vec<u8>>,
810 #[doc(hidden)]
811 pub __source_breaking: fidl::marker::SourceBreaking,
812}
813
814impl fidl::Persistable for SupplicantStaNetworkSetPskPassphraseRequest {}
815
816#[derive(Clone, Debug, Default, PartialEq)]
817pub struct SupplicantStaNetworkSetSaePasswordRequest {
818 pub password: Option<Vec<u8>>,
819 #[doc(hidden)]
820 pub __source_breaking: fidl::marker::SourceBreaking,
821}
822
823impl fidl::Persistable for SupplicantStaNetworkSetSaePasswordRequest {}
824
825#[derive(Clone, Debug, Default, PartialEq)]
826pub struct SupplicantStaNetworkSetSsidRequest {
827 pub ssid: Option<Vec<u8>>,
828 #[doc(hidden)]
829 pub __source_breaking: fidl::marker::SourceBreaking,
830}
831
832impl fidl::Persistable for SupplicantStaNetworkSetSsidRequest {}
833
834#[derive(Clone, Debug, Default, PartialEq)]
835pub struct SupplicantStaNetworkSetWepKeyRequest {
836 pub key: Option<Vec<u8>>,
837 pub key_idx: Option<i32>,
838 #[doc(hidden)]
839 pub __source_breaking: fidl::marker::SourceBreaking,
840}
841
842impl fidl::Persistable for SupplicantStaNetworkSetWepKeyRequest {}
843
844#[derive(Clone, Debug, Default, PartialEq)]
845pub struct SupplicantStaNetworkSetWepTxKeyIdxRequest {
846 pub key_idx: Option<i32>,
847 #[doc(hidden)]
848 pub __source_breaking: fidl::marker::SourceBreaking,
849}
850
851impl fidl::Persistable for SupplicantStaNetworkSetWepTxKeyIdxRequest {}
852
853#[derive(Clone, Debug, Default, PartialEq)]
854pub struct WifiChipGetAvailableModesResponse {
855 pub chip_modes: Option<Vec<ChipMode>>,
856 #[doc(hidden)]
857 pub __source_breaking: fidl::marker::SourceBreaking,
858}
859
860impl fidl::Persistable for WifiChipGetAvailableModesResponse {}
861
862#[derive(Clone, Debug, Default, PartialEq)]
863pub struct WifiChipGetCapabilitiesResponse {
864 pub capabilities_mask: Option<u32>,
865 #[doc(hidden)]
866 pub __source_breaking: fidl::marker::SourceBreaking,
867}
868
869impl fidl::Persistable for WifiChipGetCapabilitiesResponse {}
870
871#[derive(Clone, Debug, Default, PartialEq)]
872pub struct WifiChipGetIdResponse {
873 pub id: Option<u32>,
874 #[doc(hidden)]
875 pub __source_breaking: fidl::marker::SourceBreaking,
876}
877
878impl fidl::Persistable for WifiChipGetIdResponse {}
879
880#[derive(Clone, Debug, Default, PartialEq)]
881pub struct WifiChipGetModeResponse {
882 pub mode: Option<u32>,
883 #[doc(hidden)]
884 pub __source_breaking: fidl::marker::SourceBreaking,
885}
886
887impl fidl::Persistable for WifiChipGetModeResponse {}
888
889#[derive(Clone, Debug, Default, PartialEq)]
890pub struct WifiChipGetStaIfaceNamesResponse {
891 pub iface_names: Option<Vec<String>>,
892 #[doc(hidden)]
893 pub __source_breaking: fidl::marker::SourceBreaking,
894}
895
896impl fidl::Persistable for WifiChipGetStaIfaceNamesResponse {}
897
898#[derive(Clone, Debug, Default, PartialEq)]
899pub struct WifiStaIfaceInstallApfPacketFilterRequest {
900 pub program: Option<Vec<u8>>,
901 #[doc(hidden)]
902 pub __source_breaking: fidl::marker::SourceBreaking,
903}
904
905impl fidl::Persistable for WifiStaIfaceInstallApfPacketFilterRequest {}
906
907#[derive(Clone, Debug, Default, PartialEq)]
908pub struct WifiStaIfaceGetApfPacketFilterSupportResponse {
909 pub version: Option<i32>,
910 pub max_filter_length: Option<i32>,
911 #[doc(hidden)]
912 pub __source_breaking: fidl::marker::SourceBreaking,
913}
914
915impl fidl::Persistable for WifiStaIfaceGetApfPacketFilterSupportResponse {}
916
917#[derive(Clone, Debug, Default, PartialEq)]
918pub struct WifiStaIfaceGetNameResponse {
919 pub iface_name: Option<String>,
920 #[doc(hidden)]
921 pub __source_breaking: fidl::marker::SourceBreaking,
922}
923
924impl fidl::Persistable for WifiStaIfaceGetNameResponse {}
925
926#[derive(Clone, Debug, Default, PartialEq)]
927pub struct WifiStaIfaceReadApfPacketFilterDataResponse {
928 pub memory: Option<Vec<u8>>,
929 #[doc(hidden)]
930 pub __source_breaking: fidl::marker::SourceBreaking,
931}
932
933impl fidl::Persistable for WifiStaIfaceReadApfPacketFilterDataResponse {}
934
935#[derive(Clone, Debug, Default, PartialEq)]
936pub struct WifiGetChipIdsResponse {
937 pub chip_ids: Option<Vec<u32>>,
938 #[doc(hidden)]
939 pub __source_breaking: fidl::marker::SourceBreaking,
940}
941
942impl fidl::Persistable for WifiGetChipIdsResponse {}
943
944#[derive(Clone, Debug, Default, PartialEq)]
945pub struct WifiGetStateResponse {
946 pub is_started: Option<bool>,
947 #[doc(hidden)]
948 pub __source_breaking: fidl::marker::SourceBreaking,
949}
950
951impl fidl::Persistable for WifiGetStateResponse {}
952
953#[derive(Clone, Debug)]
954pub enum Nl80211Message {
955 Done(Done),
956 Error(Error),
957 Ack(Ack),
958 Message(Message),
959 #[doc(hidden)]
960 __SourceBreaking {
961 unknown_ordinal: u64,
962 },
963}
964
965#[macro_export]
967macro_rules! Nl80211MessageUnknown {
968 () => {
969 _
970 };
971}
972
973impl PartialEq for Nl80211Message {
975 fn eq(&self, other: &Self) -> bool {
976 match (self, other) {
977 (Self::Done(x), Self::Done(y)) => *x == *y,
978 (Self::Error(x), Self::Error(y)) => *x == *y,
979 (Self::Ack(x), Self::Ack(y)) => *x == *y,
980 (Self::Message(x), Self::Message(y)) => *x == *y,
981 _ => false,
982 }
983 }
984}
985
986impl Nl80211Message {
987 #[inline]
988 pub fn ordinal(&self) -> u64 {
989 match *self {
990 Self::Done(_) => 1,
991 Self::Error(_) => 2,
992 Self::Ack(_) => 3,
993 Self::Message(_) => 4,
994 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
995 }
996 }
997
998 #[inline]
999 pub fn unknown_variant_for_testing() -> Self {
1000 Self::__SourceBreaking { unknown_ordinal: 0 }
1001 }
1002
1003 #[inline]
1004 pub fn is_unknown(&self) -> bool {
1005 match self {
1006 Self::__SourceBreaking { .. } => true,
1007 _ => false,
1008 }
1009 }
1010}
1011
1012impl fidl::Persistable for Nl80211Message {}
1013
1014pub mod nl80211_ordinals {
1015 pub const GET_MULTICAST: u64 = 0x58b73dd089681dc2;
1016 pub const MESSAGE: u64 = 0x6336259e15bb3795;
1017 pub const MESSAGE_V2: u64 = 0x4626796aba1e2987;
1018}
1019
1020pub mod nl80211_multicast_ordinals {
1021 pub const MESSAGE: u64 = 0x4cc9241f302f16c0;
1022}
1023
1024pub mod supplicant_ordinals {
1025 pub const ADD_STA_INTERFACE: u64 = 0x73194b2afe9b367e;
1026 pub const REMOVE_INTERFACE: u64 = 0x7f83e5b75b27d242;
1027}
1028
1029pub mod supplicant_sta_iface_ordinals {
1030 pub const REGISTER_CALLBACK: u64 = 0x1be680e863a8e71;
1031 pub const ADD_NETWORK: u64 = 0xa77cf60628766dc;
1032 pub const DISCONNECT: u64 = 0x52a1d38e0b4871fa;
1033 pub const GET_MAC_ADDRESS: u64 = 0x60591d204a3f537f;
1034 pub const GET_FACTORY_MAC_ADDRESS: u64 = 0x58857179ad71e624;
1035 pub const SET_BT_COEXISTENCE_MODE: u64 = 0x14567ff593a9b154;
1036 pub const SET_POWER_SAVE: u64 = 0x5a04c29320085298;
1037 pub const SET_SUSPEND_MODE_ENABLED: u64 = 0xaf10de85bb7023a;
1038 pub const SET_STA_COUNTRY_CODE: u64 = 0x977e22f9b79b26e;
1039}
1040
1041pub mod supplicant_sta_iface_callback_ordinals {
1042 pub const ON_STATE_CHANGED: u64 = 0x27e086d26c49eb6c;
1043 pub const ON_DISCONNECTED: u64 = 0x69546475f4dee0cc;
1044 pub const ON_ASSOCIATION_REJECTED: u64 = 0x7ef3961518bed988;
1045}
1046
1047pub mod supplicant_sta_network_ordinals {
1048 pub const SET_BSSID: u64 = 0x10a91d044ee6374d;
1049 pub const CLEAR_BSSID: u64 = 0xbc7ad82f541b267;
1050 pub const SET_SSID: u64 = 0x6b598a7a802e3083;
1051 pub const SET_KEY_MGMT: u64 = 0xc67082685b75a5c;
1052 pub const SET_PSK_PASSPHRASE: u64 = 0xf6d438225979307;
1053 pub const SET_SAE_PASSWORD: u64 = 0x2982737e196747b8;
1054 pub const SET_WEP_KEY: u64 = 0x22a7e25ec81f2dee;
1055 pub const SET_WEP_TX_KEY_IDX: u64 = 0x4f25576c21fcb8cb;
1056 pub const SELECT: u64 = 0x354bc361a0c77b45;
1057}
1058
1059pub mod wifi_ordinals {
1060 pub const REGISTER_EVENT_CALLBACK: u64 = 0x12abbdea948dd67b;
1061 pub const START: u64 = 0x427030e4dc6ec07a;
1062 pub const STOP: u64 = 0x67c9bdf61b2888d;
1063 pub const GET_STATE: u64 = 0x4616114a937d1fb0;
1064 pub const GET_CHIP_IDS: u64 = 0x2fb4f92351d802b5;
1065 pub const GET_CHIP: u64 = 0xef95d8246612540;
1066}
1067
1068pub mod wifi_chip_ordinals {
1069 pub const CREATE_STA_IFACE: u64 = 0x6fb2d5892face7af;
1070 pub const GET_STA_IFACE_NAMES: u64 = 0x349257482df6a000;
1071 pub const GET_STA_IFACE: u64 = 0x6d9704eeb36f28a2;
1072 pub const REMOVE_STA_IFACE: u64 = 0x4cd8eee466f8b04c;
1073 pub const SET_COUNTRY_CODE: u64 = 0x1dfe372d1d61a490;
1074 pub const GET_AVAILABLE_MODES: u64 = 0x1701095b452a3acd;
1075 pub const GET_ID: u64 = 0x37d5197325bb3370;
1076 pub const GET_MODE: u64 = 0x4d209e0f3ac84d6f;
1077 pub const GET_CAPABILITIES: u64 = 0x1b253f396dcaa2e0;
1078 pub const TRIGGER_SUBSYSTEM_RESTART: u64 = 0x42ffcae5aad196f9;
1079 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x19287ab52ea72281;
1080 pub const RESET_TX_POWER_SCENARIO: u64 = 0x46408a2fb1eb9d09;
1081}
1082
1083pub mod wifi_event_callback_ordinals {
1084 pub const ON_START: u64 = 0x61189ff44f9d35f3;
1085 pub const ON_STOP: u64 = 0x58b697bcd475e0f9;
1086 pub const ON_SUBSYSTEM_RESTART: u64 = 0x69dfee4d3475db21;
1087}
1088
1089pub mod wifi_legacy_hal_ordinals {
1090 pub const SELECT_TX_POWER_SCENARIO: u64 = 0x49f42620e0a3caf9;
1091 pub const RESET_TX_POWER_SCENARIO: u64 = 0x6c0f8e9203167d8e;
1092}
1093
1094pub mod wifi_sta_iface_ordinals {
1095 pub const GET_NAME: u64 = 0x5c150b91c80c5789;
1096 pub const SET_SCAN_ONLY_MODE: u64 = 0x22550328583bf0e3;
1097 pub const SET_MAC_ADDRESS: u64 = 0x39c4f355079421b9;
1098 pub const GET_APF_PACKET_FILTER_SUPPORT: u64 = 0x205c538d31d76c8c;
1099 pub const INSTALL_APF_PACKET_FILTER: u64 = 0x6306fbfdb65631ba;
1100 pub const READ_APF_PACKET_FILTER_DATA: u64 = 0x4f39e558ddbca39;
1101}
1102
1103pub mod wlanix_ordinals {
1104 pub const GET_WIFI: u64 = 0x142511f44b2c338c;
1105 pub const GET_SUPPLICANT: u64 = 0x55554b37c4021d3d;
1106 pub const GET_NL80211: u64 = 0x48028a25bd855ef9;
1107 pub const GET_WIFI_LEGACY_HAL: u64 = 0x7302d9bb3b8d1edc;
1108}
1109
1110mod internal {
1111 use super::*;
1112 unsafe impl fidl::encoding::TypeMarker for KeyMgmtMask {
1113 type Owned = Self;
1114
1115 #[inline(always)]
1116 fn inline_align(_context: fidl::encoding::Context) -> usize {
1117 4
1118 }
1119
1120 #[inline(always)]
1121 fn inline_size(_context: fidl::encoding::Context) -> usize {
1122 4
1123 }
1124 }
1125
1126 impl fidl::encoding::ValueTypeMarker for KeyMgmtMask {
1127 type Borrowed<'a> = Self;
1128 #[inline(always)]
1129 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1130 *value
1131 }
1132 }
1133
1134 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for KeyMgmtMask {
1135 #[inline]
1136 unsafe fn encode(
1137 self,
1138 encoder: &mut fidl::encoding::Encoder<'_, D>,
1139 offset: usize,
1140 _depth: fidl::encoding::Depth,
1141 ) -> fidl::Result<()> {
1142 encoder.debug_check_bounds::<Self>(offset);
1143 encoder.write_num(self.bits(), offset);
1144 Ok(())
1145 }
1146 }
1147
1148 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for KeyMgmtMask {
1149 #[inline(always)]
1150 fn new_empty() -> Self {
1151 Self::empty()
1152 }
1153
1154 #[inline]
1155 unsafe fn decode(
1156 &mut self,
1157 decoder: &mut fidl::encoding::Decoder<'_, D>,
1158 offset: usize,
1159 _depth: fidl::encoding::Depth,
1160 ) -> fidl::Result<()> {
1161 decoder.debug_check_bounds::<Self>(offset);
1162 let prim = decoder.read_num::<u32>(offset);
1163 *self = Self::from_bits_allow_unknown(prim);
1164 Ok(())
1165 }
1166 }
1167 unsafe impl fidl::encoding::TypeMarker for BtCoexistenceMode {
1168 type Owned = Self;
1169
1170 #[inline(always)]
1171 fn inline_align(_context: fidl::encoding::Context) -> usize {
1172 std::mem::align_of::<u32>()
1173 }
1174
1175 #[inline(always)]
1176 fn inline_size(_context: fidl::encoding::Context) -> usize {
1177 std::mem::size_of::<u32>()
1178 }
1179
1180 #[inline(always)]
1181 fn encode_is_copy() -> bool {
1182 false
1183 }
1184
1185 #[inline(always)]
1186 fn decode_is_copy() -> bool {
1187 false
1188 }
1189 }
1190
1191 impl fidl::encoding::ValueTypeMarker for BtCoexistenceMode {
1192 type Borrowed<'a> = Self;
1193 #[inline(always)]
1194 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1195 *value
1196 }
1197 }
1198
1199 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1200 for BtCoexistenceMode
1201 {
1202 #[inline]
1203 unsafe fn encode(
1204 self,
1205 encoder: &mut fidl::encoding::Encoder<'_, D>,
1206 offset: usize,
1207 _depth: fidl::encoding::Depth,
1208 ) -> fidl::Result<()> {
1209 encoder.debug_check_bounds::<Self>(offset);
1210 encoder.write_num(self.into_primitive(), offset);
1211 Ok(())
1212 }
1213 }
1214
1215 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BtCoexistenceMode {
1216 #[inline(always)]
1217 fn new_empty() -> Self {
1218 Self::unknown()
1219 }
1220
1221 #[inline]
1222 unsafe fn decode(
1223 &mut self,
1224 decoder: &mut fidl::encoding::Decoder<'_, D>,
1225 offset: usize,
1226 _depth: fidl::encoding::Depth,
1227 ) -> fidl::Result<()> {
1228 decoder.debug_check_bounds::<Self>(offset);
1229 let prim = decoder.read_num::<u32>(offset);
1230
1231 *self = Self::from_primitive_allow_unknown(prim);
1232 Ok(())
1233 }
1234 }
1235 unsafe impl fidl::encoding::TypeMarker for IfaceConcurrencyType {
1236 type Owned = Self;
1237
1238 #[inline(always)]
1239 fn inline_align(_context: fidl::encoding::Context) -> usize {
1240 std::mem::align_of::<u32>()
1241 }
1242
1243 #[inline(always)]
1244 fn inline_size(_context: fidl::encoding::Context) -> usize {
1245 std::mem::size_of::<u32>()
1246 }
1247
1248 #[inline(always)]
1249 fn encode_is_copy() -> bool {
1250 false
1251 }
1252
1253 #[inline(always)]
1254 fn decode_is_copy() -> bool {
1255 false
1256 }
1257 }
1258
1259 impl fidl::encoding::ValueTypeMarker for IfaceConcurrencyType {
1260 type Borrowed<'a> = Self;
1261 #[inline(always)]
1262 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1263 *value
1264 }
1265 }
1266
1267 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1268 for IfaceConcurrencyType
1269 {
1270 #[inline]
1271 unsafe fn encode(
1272 self,
1273 encoder: &mut fidl::encoding::Encoder<'_, D>,
1274 offset: usize,
1275 _depth: fidl::encoding::Depth,
1276 ) -> fidl::Result<()> {
1277 encoder.debug_check_bounds::<Self>(offset);
1278 encoder.write_num(self.into_primitive(), offset);
1279 Ok(())
1280 }
1281 }
1282
1283 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IfaceConcurrencyType {
1284 #[inline(always)]
1285 fn new_empty() -> Self {
1286 Self::unknown()
1287 }
1288
1289 #[inline]
1290 unsafe fn decode(
1291 &mut self,
1292 decoder: &mut fidl::encoding::Decoder<'_, D>,
1293 offset: usize,
1294 _depth: fidl::encoding::Depth,
1295 ) -> fidl::Result<()> {
1296 decoder.debug_check_bounds::<Self>(offset);
1297 let prim = decoder.read_num::<u32>(offset);
1298
1299 *self = Self::from_primitive_allow_unknown(prim);
1300 Ok(())
1301 }
1302 }
1303 unsafe impl fidl::encoding::TypeMarker for StaIfaceCallbackState {
1304 type Owned = Self;
1305
1306 #[inline(always)]
1307 fn inline_align(_context: fidl::encoding::Context) -> usize {
1308 std::mem::align_of::<u32>()
1309 }
1310
1311 #[inline(always)]
1312 fn inline_size(_context: fidl::encoding::Context) -> usize {
1313 std::mem::size_of::<u32>()
1314 }
1315
1316 #[inline(always)]
1317 fn encode_is_copy() -> bool {
1318 false
1319 }
1320
1321 #[inline(always)]
1322 fn decode_is_copy() -> bool {
1323 false
1324 }
1325 }
1326
1327 impl fidl::encoding::ValueTypeMarker for StaIfaceCallbackState {
1328 type Borrowed<'a> = Self;
1329 #[inline(always)]
1330 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1331 *value
1332 }
1333 }
1334
1335 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1336 for StaIfaceCallbackState
1337 {
1338 #[inline]
1339 unsafe fn encode(
1340 self,
1341 encoder: &mut fidl::encoding::Encoder<'_, D>,
1342 offset: usize,
1343 _depth: fidl::encoding::Depth,
1344 ) -> fidl::Result<()> {
1345 encoder.debug_check_bounds::<Self>(offset);
1346 encoder.write_num(self.into_primitive(), offset);
1347 Ok(())
1348 }
1349 }
1350
1351 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StaIfaceCallbackState {
1352 #[inline(always)]
1353 fn new_empty() -> Self {
1354 Self::unknown()
1355 }
1356
1357 #[inline]
1358 unsafe fn decode(
1359 &mut self,
1360 decoder: &mut fidl::encoding::Decoder<'_, D>,
1361 offset: usize,
1362 _depth: fidl::encoding::Depth,
1363 ) -> fidl::Result<()> {
1364 decoder.debug_check_bounds::<Self>(offset);
1365 let prim = decoder.read_num::<u32>(offset);
1366
1367 *self = Self::from_primitive_allow_unknown(prim);
1368 Ok(())
1369 }
1370 }
1371 unsafe impl fidl::encoding::TypeMarker for WifiChipTxPowerScenario {
1372 type Owned = Self;
1373
1374 #[inline(always)]
1375 fn inline_align(_context: fidl::encoding::Context) -> usize {
1376 std::mem::align_of::<u32>()
1377 }
1378
1379 #[inline(always)]
1380 fn inline_size(_context: fidl::encoding::Context) -> usize {
1381 std::mem::size_of::<u32>()
1382 }
1383
1384 #[inline(always)]
1385 fn encode_is_copy() -> bool {
1386 false
1387 }
1388
1389 #[inline(always)]
1390 fn decode_is_copy() -> bool {
1391 false
1392 }
1393 }
1394
1395 impl fidl::encoding::ValueTypeMarker for WifiChipTxPowerScenario {
1396 type Borrowed<'a> = Self;
1397 #[inline(always)]
1398 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1399 *value
1400 }
1401 }
1402
1403 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1404 for WifiChipTxPowerScenario
1405 {
1406 #[inline]
1407 unsafe fn encode(
1408 self,
1409 encoder: &mut fidl::encoding::Encoder<'_, D>,
1410 offset: usize,
1411 _depth: fidl::encoding::Depth,
1412 ) -> fidl::Result<()> {
1413 encoder.debug_check_bounds::<Self>(offset);
1414 encoder.write_num(self.into_primitive(), offset);
1415 Ok(())
1416 }
1417 }
1418
1419 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1420 for WifiChipTxPowerScenario
1421 {
1422 #[inline(always)]
1423 fn new_empty() -> Self {
1424 Self::unknown()
1425 }
1426
1427 #[inline]
1428 unsafe fn decode(
1429 &mut self,
1430 decoder: &mut fidl::encoding::Decoder<'_, D>,
1431 offset: usize,
1432 _depth: fidl::encoding::Depth,
1433 ) -> fidl::Result<()> {
1434 decoder.debug_check_bounds::<Self>(offset);
1435 let prim = decoder.read_num::<u32>(offset);
1436
1437 *self = Self::from_primitive_allow_unknown(prim);
1438 Ok(())
1439 }
1440 }
1441 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalStatus {
1442 type Owned = Self;
1443
1444 #[inline(always)]
1445 fn inline_align(_context: fidl::encoding::Context) -> usize {
1446 std::mem::align_of::<u32>()
1447 }
1448
1449 #[inline(always)]
1450 fn inline_size(_context: fidl::encoding::Context) -> usize {
1451 std::mem::size_of::<u32>()
1452 }
1453
1454 #[inline(always)]
1455 fn encode_is_copy() -> bool {
1456 false
1457 }
1458
1459 #[inline(always)]
1460 fn decode_is_copy() -> bool {
1461 false
1462 }
1463 }
1464
1465 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalStatus {
1466 type Borrowed<'a> = Self;
1467 #[inline(always)]
1468 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1469 *value
1470 }
1471 }
1472
1473 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1474 for WifiLegacyHalStatus
1475 {
1476 #[inline]
1477 unsafe fn encode(
1478 self,
1479 encoder: &mut fidl::encoding::Encoder<'_, D>,
1480 offset: usize,
1481 _depth: fidl::encoding::Depth,
1482 ) -> fidl::Result<()> {
1483 encoder.debug_check_bounds::<Self>(offset);
1484 encoder.write_num(self.into_primitive(), offset);
1485 Ok(())
1486 }
1487 }
1488
1489 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiLegacyHalStatus {
1490 #[inline(always)]
1491 fn new_empty() -> Self {
1492 Self::unknown()
1493 }
1494
1495 #[inline]
1496 unsafe fn decode(
1497 &mut self,
1498 decoder: &mut fidl::encoding::Decoder<'_, D>,
1499 offset: usize,
1500 _depth: fidl::encoding::Depth,
1501 ) -> fidl::Result<()> {
1502 decoder.debug_check_bounds::<Self>(offset);
1503 let prim = decoder.read_num::<u32>(offset);
1504
1505 *self = Self::from_primitive_allow_unknown(prim);
1506 Ok(())
1507 }
1508 }
1509 unsafe impl fidl::encoding::TypeMarker for WifiLegacyHalTxPowerScenario {
1510 type Owned = Self;
1511
1512 #[inline(always)]
1513 fn inline_align(_context: fidl::encoding::Context) -> usize {
1514 std::mem::align_of::<i32>()
1515 }
1516
1517 #[inline(always)]
1518 fn inline_size(_context: fidl::encoding::Context) -> usize {
1519 std::mem::size_of::<i32>()
1520 }
1521
1522 #[inline(always)]
1523 fn encode_is_copy() -> bool {
1524 false
1525 }
1526
1527 #[inline(always)]
1528 fn decode_is_copy() -> bool {
1529 false
1530 }
1531 }
1532
1533 impl fidl::encoding::ValueTypeMarker for WifiLegacyHalTxPowerScenario {
1534 type Borrowed<'a> = Self;
1535 #[inline(always)]
1536 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1537 *value
1538 }
1539 }
1540
1541 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1542 for WifiLegacyHalTxPowerScenario
1543 {
1544 #[inline]
1545 unsafe fn encode(
1546 self,
1547 encoder: &mut fidl::encoding::Encoder<'_, D>,
1548 offset: usize,
1549 _depth: fidl::encoding::Depth,
1550 ) -> fidl::Result<()> {
1551 encoder.debug_check_bounds::<Self>(offset);
1552 encoder.write_num(self.into_primitive(), offset);
1553 Ok(())
1554 }
1555 }
1556
1557 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1558 for WifiLegacyHalTxPowerScenario
1559 {
1560 #[inline(always)]
1561 fn new_empty() -> Self {
1562 Self::unknown()
1563 }
1564
1565 #[inline]
1566 unsafe fn decode(
1567 &mut self,
1568 decoder: &mut fidl::encoding::Decoder<'_, D>,
1569 offset: usize,
1570 _depth: fidl::encoding::Depth,
1571 ) -> fidl::Result<()> {
1572 decoder.debug_check_bounds::<Self>(offset);
1573 let prim = decoder.read_num::<i32>(offset);
1574
1575 *self = Self::from_primitive_allow_unknown(prim);
1576 Ok(())
1577 }
1578 }
1579 unsafe impl fidl::encoding::TypeMarker for WlanixError {
1580 type Owned = Self;
1581
1582 #[inline(always)]
1583 fn inline_align(_context: fidl::encoding::Context) -> usize {
1584 std::mem::align_of::<u32>()
1585 }
1586
1587 #[inline(always)]
1588 fn inline_size(_context: fidl::encoding::Context) -> usize {
1589 std::mem::size_of::<u32>()
1590 }
1591
1592 #[inline(always)]
1593 fn encode_is_copy() -> bool {
1594 false
1595 }
1596
1597 #[inline(always)]
1598 fn decode_is_copy() -> bool {
1599 false
1600 }
1601 }
1602
1603 impl fidl::encoding::ValueTypeMarker for WlanixError {
1604 type Borrowed<'a> = Self;
1605 #[inline(always)]
1606 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1607 *value
1608 }
1609 }
1610
1611 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for WlanixError {
1612 #[inline]
1613 unsafe fn encode(
1614 self,
1615 encoder: &mut fidl::encoding::Encoder<'_, D>,
1616 offset: usize,
1617 _depth: fidl::encoding::Depth,
1618 ) -> fidl::Result<()> {
1619 encoder.debug_check_bounds::<Self>(offset);
1620 encoder.write_num(self.into_primitive(), offset);
1621 Ok(())
1622 }
1623 }
1624
1625 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanixError {
1626 #[inline(always)]
1627 fn new_empty() -> Self {
1628 Self::unknown()
1629 }
1630
1631 #[inline]
1632 unsafe fn decode(
1633 &mut self,
1634 decoder: &mut fidl::encoding::Decoder<'_, D>,
1635 offset: usize,
1636 _depth: fidl::encoding::Depth,
1637 ) -> fidl::Result<()> {
1638 decoder.debug_check_bounds::<Self>(offset);
1639 let prim = decoder.read_num::<u32>(offset);
1640
1641 *self = Self::from_primitive_allow_unknown(prim);
1642 Ok(())
1643 }
1644 }
1645
1646 impl fidl::encoding::ValueTypeMarker for Ack {
1647 type Borrowed<'a> = &'a Self;
1648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1649 value
1650 }
1651 }
1652
1653 unsafe impl fidl::encoding::TypeMarker for Ack {
1654 type Owned = Self;
1655
1656 #[inline(always)]
1657 fn inline_align(_context: fidl::encoding::Context) -> usize {
1658 1
1659 }
1660
1661 #[inline(always)]
1662 fn inline_size(_context: fidl::encoding::Context) -> usize {
1663 1
1664 }
1665 }
1666
1667 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ack, D> for &Ack {
1668 #[inline]
1669 unsafe fn encode(
1670 self,
1671 encoder: &mut fidl::encoding::Encoder<'_, D>,
1672 offset: usize,
1673 _depth: fidl::encoding::Depth,
1674 ) -> fidl::Result<()> {
1675 encoder.debug_check_bounds::<Ack>(offset);
1676 encoder.write_num(0u8, offset);
1677 Ok(())
1678 }
1679 }
1680
1681 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ack {
1682 #[inline(always)]
1683 fn new_empty() -> Self {
1684 Self
1685 }
1686
1687 #[inline]
1688 unsafe fn decode(
1689 &mut self,
1690 decoder: &mut fidl::encoding::Decoder<'_, D>,
1691 offset: usize,
1692 _depth: fidl::encoding::Depth,
1693 ) -> fidl::Result<()> {
1694 decoder.debug_check_bounds::<Self>(offset);
1695 match decoder.read_num::<u8>(offset) {
1696 0 => Ok(()),
1697 _ => Err(fidl::Error::Invalid),
1698 }
1699 }
1700 }
1701
1702 impl fidl::encoding::ValueTypeMarker for Done {
1703 type Borrowed<'a> = &'a Self;
1704 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1705 value
1706 }
1707 }
1708
1709 unsafe impl fidl::encoding::TypeMarker for Done {
1710 type Owned = Self;
1711
1712 #[inline(always)]
1713 fn inline_align(_context: fidl::encoding::Context) -> usize {
1714 1
1715 }
1716
1717 #[inline(always)]
1718 fn inline_size(_context: fidl::encoding::Context) -> usize {
1719 1
1720 }
1721 }
1722
1723 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Done, D> for &Done {
1724 #[inline]
1725 unsafe fn encode(
1726 self,
1727 encoder: &mut fidl::encoding::Encoder<'_, D>,
1728 offset: usize,
1729 _depth: fidl::encoding::Depth,
1730 ) -> fidl::Result<()> {
1731 encoder.debug_check_bounds::<Done>(offset);
1732 encoder.write_num(0u8, offset);
1733 Ok(())
1734 }
1735 }
1736
1737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Done {
1738 #[inline(always)]
1739 fn new_empty() -> Self {
1740 Self
1741 }
1742
1743 #[inline]
1744 unsafe fn decode(
1745 &mut self,
1746 decoder: &mut fidl::encoding::Decoder<'_, D>,
1747 offset: usize,
1748 _depth: fidl::encoding::Depth,
1749 ) -> fidl::Result<()> {
1750 decoder.debug_check_bounds::<Self>(offset);
1751 match decoder.read_num::<u8>(offset) {
1752 0 => Ok(()),
1753 _ => Err(fidl::Error::Invalid),
1754 }
1755 }
1756 }
1757
1758 impl fidl::encoding::ValueTypeMarker for Error {
1759 type Borrowed<'a> = &'a Self;
1760 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1761 value
1762 }
1763 }
1764
1765 unsafe impl fidl::encoding::TypeMarker for Error {
1766 type Owned = Self;
1767
1768 #[inline(always)]
1769 fn inline_align(_context: fidl::encoding::Context) -> usize {
1770 4
1771 }
1772
1773 #[inline(always)]
1774 fn inline_size(_context: fidl::encoding::Context) -> usize {
1775 4
1776 }
1777 #[inline(always)]
1778 fn encode_is_copy() -> bool {
1779 true
1780 }
1781
1782 #[inline(always)]
1783 fn decode_is_copy() -> bool {
1784 true
1785 }
1786 }
1787
1788 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Error, D> for &Error {
1789 #[inline]
1790 unsafe fn encode(
1791 self,
1792 encoder: &mut fidl::encoding::Encoder<'_, D>,
1793 offset: usize,
1794 _depth: fidl::encoding::Depth,
1795 ) -> fidl::Result<()> {
1796 encoder.debug_check_bounds::<Error>(offset);
1797 unsafe {
1798 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1800 (buf_ptr as *mut Error).write_unaligned((self as *const Error).read());
1801 }
1804 Ok(())
1805 }
1806 }
1807 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
1808 fidl::encoding::Encode<Error, D> for (T0,)
1809 {
1810 #[inline]
1811 unsafe fn encode(
1812 self,
1813 encoder: &mut fidl::encoding::Encoder<'_, D>,
1814 offset: usize,
1815 depth: fidl::encoding::Depth,
1816 ) -> fidl::Result<()> {
1817 encoder.debug_check_bounds::<Error>(offset);
1818 self.0.encode(encoder, offset + 0, depth)?;
1822 Ok(())
1823 }
1824 }
1825
1826 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Error {
1827 #[inline(always)]
1828 fn new_empty() -> Self {
1829 Self { error_code: fidl::new_empty!(i32, D) }
1830 }
1831
1832 #[inline]
1833 unsafe fn decode(
1834 &mut self,
1835 decoder: &mut fidl::encoding::Decoder<'_, D>,
1836 offset: usize,
1837 _depth: fidl::encoding::Depth,
1838 ) -> fidl::Result<()> {
1839 decoder.debug_check_bounds::<Self>(offset);
1840 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1841 unsafe {
1844 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1845 }
1846 Ok(())
1847 }
1848 }
1849
1850 impl fidl::encoding::ValueTypeMarker for Message {
1851 type Borrowed<'a> = &'a Self;
1852 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1853 value
1854 }
1855 }
1856
1857 unsafe impl fidl::encoding::TypeMarker for Message {
1858 type Owned = Self;
1859
1860 #[inline(always)]
1861 fn inline_align(_context: fidl::encoding::Context) -> usize {
1862 8
1863 }
1864
1865 #[inline(always)]
1866 fn inline_size(_context: fidl::encoding::Context) -> usize {
1867 16
1868 }
1869 }
1870
1871 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Message, D> for &Message {
1872 #[inline]
1873 unsafe fn encode(
1874 self,
1875 encoder: &mut fidl::encoding::Encoder<'_, D>,
1876 offset: usize,
1877 _depth: fidl::encoding::Depth,
1878 ) -> fidl::Result<()> {
1879 encoder.debug_check_bounds::<Message>(offset);
1880 fidl::encoding::Encode::<Message, D>::encode(
1882 (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
1883 &self.payload,
1884 ),),
1885 encoder,
1886 offset,
1887 _depth,
1888 )
1889 }
1890 }
1891 unsafe impl<
1892 D: fidl::encoding::ResourceDialect,
1893 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
1894 > fidl::encoding::Encode<Message, D> for (T0,)
1895 {
1896 #[inline]
1897 unsafe fn encode(
1898 self,
1899 encoder: &mut fidl::encoding::Encoder<'_, D>,
1900 offset: usize,
1901 depth: fidl::encoding::Depth,
1902 ) -> fidl::Result<()> {
1903 encoder.debug_check_bounds::<Message>(offset);
1904 self.0.encode(encoder, offset + 0, depth)?;
1908 Ok(())
1909 }
1910 }
1911
1912 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Message {
1913 #[inline(always)]
1914 fn new_empty() -> Self {
1915 Self { payload: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
1916 }
1917
1918 #[inline]
1919 unsafe fn decode(
1920 &mut self,
1921 decoder: &mut fidl::encoding::Decoder<'_, D>,
1922 offset: usize,
1923 _depth: fidl::encoding::Depth,
1924 ) -> fidl::Result<()> {
1925 decoder.debug_check_bounds::<Self>(offset);
1926 fidl::decode!(
1928 fidl::encoding::UnboundedVector<u8>,
1929 D,
1930 &mut self.payload,
1931 decoder,
1932 offset + 0,
1933 _depth
1934 )?;
1935 Ok(())
1936 }
1937 }
1938
1939 impl fidl::encoding::ValueTypeMarker for Nl80211MessageArray {
1940 type Borrowed<'a> = &'a Self;
1941 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1942 value
1943 }
1944 }
1945
1946 unsafe impl fidl::encoding::TypeMarker for Nl80211MessageArray {
1947 type Owned = Self;
1948
1949 #[inline(always)]
1950 fn inline_align(_context: fidl::encoding::Context) -> usize {
1951 8
1952 }
1953
1954 #[inline(always)]
1955 fn inline_size(_context: fidl::encoding::Context) -> usize {
1956 16
1957 }
1958 }
1959
1960 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211MessageArray, D>
1961 for &Nl80211MessageArray
1962 {
1963 #[inline]
1964 unsafe fn encode(
1965 self,
1966 encoder: &mut fidl::encoding::Encoder<'_, D>,
1967 offset: usize,
1968 _depth: fidl::encoding::Depth,
1969 ) -> fidl::Result<()> {
1970 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
1971 fidl::encoding::Encode::<Nl80211MessageArray, D>::encode(
1973 (
1974 <fidl::encoding::UnboundedVector<Nl80211Message> as fidl::encoding::ValueTypeMarker>::borrow(&self.messages),
1975 ),
1976 encoder, offset, _depth
1977 )
1978 }
1979 }
1980 unsafe impl<
1981 D: fidl::encoding::ResourceDialect,
1982 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Nl80211Message>, D>,
1983 > fidl::encoding::Encode<Nl80211MessageArray, D> for (T0,)
1984 {
1985 #[inline]
1986 unsafe fn encode(
1987 self,
1988 encoder: &mut fidl::encoding::Encoder<'_, D>,
1989 offset: usize,
1990 depth: fidl::encoding::Depth,
1991 ) -> fidl::Result<()> {
1992 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
1993 self.0.encode(encoder, offset + 0, depth)?;
1997 Ok(())
1998 }
1999 }
2000
2001 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211MessageArray {
2002 #[inline(always)]
2003 fn new_empty() -> Self {
2004 Self { messages: fidl::new_empty!(fidl::encoding::UnboundedVector<Nl80211Message>, D) }
2005 }
2006
2007 #[inline]
2008 unsafe fn decode(
2009 &mut self,
2010 decoder: &mut fidl::encoding::Decoder<'_, D>,
2011 offset: usize,
2012 _depth: fidl::encoding::Depth,
2013 ) -> fidl::Result<()> {
2014 decoder.debug_check_bounds::<Self>(offset);
2015 fidl::decode!(
2017 fidl::encoding::UnboundedVector<Nl80211Message>,
2018 D,
2019 &mut self.messages,
2020 decoder,
2021 offset + 0,
2022 _depth
2023 )?;
2024 Ok(())
2025 }
2026 }
2027
2028 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2029 type Borrowed<'a> = &'a Self;
2030 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2031 value
2032 }
2033 }
2034
2035 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetFactoryMacAddressResponse {
2036 type Owned = Self;
2037
2038 #[inline(always)]
2039 fn inline_align(_context: fidl::encoding::Context) -> usize {
2040 1
2041 }
2042
2043 #[inline(always)]
2044 fn inline_size(_context: fidl::encoding::Context) -> usize {
2045 6
2046 }
2047 #[inline(always)]
2048 fn encode_is_copy() -> bool {
2049 true
2050 }
2051
2052 #[inline(always)]
2053 fn decode_is_copy() -> bool {
2054 true
2055 }
2056 }
2057
2058 unsafe impl<D: fidl::encoding::ResourceDialect>
2059 fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D>
2060 for &SupplicantStaIfaceGetFactoryMacAddressResponse
2061 {
2062 #[inline]
2063 unsafe fn encode(
2064 self,
2065 encoder: &mut fidl::encoding::Encoder<'_, D>,
2066 offset: usize,
2067 _depth: fidl::encoding::Depth,
2068 ) -> fidl::Result<()> {
2069 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2070 unsafe {
2071 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2073 (buf_ptr as *mut SupplicantStaIfaceGetFactoryMacAddressResponse).write_unaligned(
2074 (self as *const SupplicantStaIfaceGetFactoryMacAddressResponse).read(),
2075 );
2076 }
2079 Ok(())
2080 }
2081 }
2082 unsafe impl<
2083 D: fidl::encoding::ResourceDialect,
2084 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 6>, D>,
2085 > fidl::encoding::Encode<SupplicantStaIfaceGetFactoryMacAddressResponse, D> for (T0,)
2086 {
2087 #[inline]
2088 unsafe fn encode(
2089 self,
2090 encoder: &mut fidl::encoding::Encoder<'_, D>,
2091 offset: usize,
2092 depth: fidl::encoding::Depth,
2093 ) -> fidl::Result<()> {
2094 encoder.debug_check_bounds::<SupplicantStaIfaceGetFactoryMacAddressResponse>(offset);
2095 self.0.encode(encoder, offset + 0, depth)?;
2099 Ok(())
2100 }
2101 }
2102
2103 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2104 for SupplicantStaIfaceGetFactoryMacAddressResponse
2105 {
2106 #[inline(always)]
2107 fn new_empty() -> Self {
2108 Self { mac_addr: fidl::new_empty!(fidl::encoding::Array<u8, 6>, D) }
2109 }
2110
2111 #[inline]
2112 unsafe fn decode(
2113 &mut self,
2114 decoder: &mut fidl::encoding::Decoder<'_, D>,
2115 offset: usize,
2116 _depth: fidl::encoding::Depth,
2117 ) -> fidl::Result<()> {
2118 decoder.debug_check_bounds::<Self>(offset);
2119 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2120 unsafe {
2123 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
2124 }
2125 Ok(())
2126 }
2127 }
2128
2129 impl fidl::encoding::ValueTypeMarker for WifiChipSelectTxPowerScenarioRequest {
2130 type Borrowed<'a> = &'a Self;
2131 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2132 value
2133 }
2134 }
2135
2136 unsafe impl fidl::encoding::TypeMarker for WifiChipSelectTxPowerScenarioRequest {
2137 type Owned = Self;
2138
2139 #[inline(always)]
2140 fn inline_align(_context: fidl::encoding::Context) -> usize {
2141 4
2142 }
2143
2144 #[inline(always)]
2145 fn inline_size(_context: fidl::encoding::Context) -> usize {
2146 4
2147 }
2148 }
2149
2150 unsafe impl<D: fidl::encoding::ResourceDialect>
2151 fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D>
2152 for &WifiChipSelectTxPowerScenarioRequest
2153 {
2154 #[inline]
2155 unsafe fn encode(
2156 self,
2157 encoder: &mut fidl::encoding::Encoder<'_, D>,
2158 offset: usize,
2159 _depth: fidl::encoding::Depth,
2160 ) -> fidl::Result<()> {
2161 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2162 fidl::encoding::Encode::<WifiChipSelectTxPowerScenarioRequest, D>::encode(
2164 (<WifiChipTxPowerScenario as fidl::encoding::ValueTypeMarker>::borrow(
2165 &self.scenario,
2166 ),),
2167 encoder,
2168 offset,
2169 _depth,
2170 )
2171 }
2172 }
2173 unsafe impl<
2174 D: fidl::encoding::ResourceDialect,
2175 T0: fidl::encoding::Encode<WifiChipTxPowerScenario, D>,
2176 > fidl::encoding::Encode<WifiChipSelectTxPowerScenarioRequest, D> for (T0,)
2177 {
2178 #[inline]
2179 unsafe fn encode(
2180 self,
2181 encoder: &mut fidl::encoding::Encoder<'_, D>,
2182 offset: usize,
2183 depth: fidl::encoding::Depth,
2184 ) -> fidl::Result<()> {
2185 encoder.debug_check_bounds::<WifiChipSelectTxPowerScenarioRequest>(offset);
2186 self.0.encode(encoder, offset + 0, depth)?;
2190 Ok(())
2191 }
2192 }
2193
2194 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2195 for WifiChipSelectTxPowerScenarioRequest
2196 {
2197 #[inline(always)]
2198 fn new_empty() -> Self {
2199 Self { scenario: fidl::new_empty!(WifiChipTxPowerScenario, D) }
2200 }
2201
2202 #[inline]
2203 unsafe fn decode(
2204 &mut self,
2205 decoder: &mut fidl::encoding::Decoder<'_, D>,
2206 offset: usize,
2207 _depth: fidl::encoding::Depth,
2208 ) -> fidl::Result<()> {
2209 decoder.debug_check_bounds::<Self>(offset);
2210 fidl::decode!(
2212 WifiChipTxPowerScenario,
2213 D,
2214 &mut self.scenario,
2215 decoder,
2216 offset + 0,
2217 _depth
2218 )?;
2219 Ok(())
2220 }
2221 }
2222
2223 impl ChipConcurrencyCombination {
2224 #[inline(always)]
2225 fn max_ordinal_present(&self) -> u64 {
2226 if let Some(_) = self.limits {
2227 return 1;
2228 }
2229 0
2230 }
2231 }
2232
2233 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombination {
2234 type Borrowed<'a> = &'a Self;
2235 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2236 value
2237 }
2238 }
2239
2240 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombination {
2241 type Owned = Self;
2242
2243 #[inline(always)]
2244 fn inline_align(_context: fidl::encoding::Context) -> usize {
2245 8
2246 }
2247
2248 #[inline(always)]
2249 fn inline_size(_context: fidl::encoding::Context) -> usize {
2250 16
2251 }
2252 }
2253
2254 unsafe impl<D: fidl::encoding::ResourceDialect>
2255 fidl::encoding::Encode<ChipConcurrencyCombination, D> for &ChipConcurrencyCombination
2256 {
2257 unsafe fn encode(
2258 self,
2259 encoder: &mut fidl::encoding::Encoder<'_, D>,
2260 offset: usize,
2261 mut depth: fidl::encoding::Depth,
2262 ) -> fidl::Result<()> {
2263 encoder.debug_check_bounds::<ChipConcurrencyCombination>(offset);
2264 let max_ordinal: u64 = self.max_ordinal_present();
2266 encoder.write_num(max_ordinal, offset);
2267 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2268 if max_ordinal == 0 {
2270 return Ok(());
2271 }
2272 depth.increment()?;
2273 let envelope_size = 8;
2274 let bytes_len = max_ordinal as usize * envelope_size;
2275 #[allow(unused_variables)]
2276 let offset = encoder.out_of_line_offset(bytes_len);
2277 let mut _prev_end_offset: usize = 0;
2278 if 1 > max_ordinal {
2279 return Ok(());
2280 }
2281
2282 let cur_offset: usize = (1 - 1) * envelope_size;
2285
2286 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2288
2289 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>, D>(
2294 self.limits.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit> as fidl::encoding::ValueTypeMarker>::borrow),
2295 encoder, offset + cur_offset, depth
2296 )?;
2297
2298 _prev_end_offset = cur_offset + envelope_size;
2299
2300 Ok(())
2301 }
2302 }
2303
2304 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2305 for ChipConcurrencyCombination
2306 {
2307 #[inline(always)]
2308 fn new_empty() -> Self {
2309 Self::default()
2310 }
2311
2312 unsafe fn decode(
2313 &mut self,
2314 decoder: &mut fidl::encoding::Decoder<'_, D>,
2315 offset: usize,
2316 mut depth: fidl::encoding::Depth,
2317 ) -> fidl::Result<()> {
2318 decoder.debug_check_bounds::<Self>(offset);
2319 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2320 None => return Err(fidl::Error::NotNullable),
2321 Some(len) => len,
2322 };
2323 if len == 0 {
2325 return Ok(());
2326 };
2327 depth.increment()?;
2328 let envelope_size = 8;
2329 let bytes_len = len * envelope_size;
2330 let offset = decoder.out_of_line_offset(bytes_len)?;
2331 let mut _next_ordinal_to_read = 0;
2333 let mut next_offset = offset;
2334 let end_offset = offset + bytes_len;
2335 _next_ordinal_to_read += 1;
2336 if next_offset >= end_offset {
2337 return Ok(());
2338 }
2339
2340 while _next_ordinal_to_read < 1 {
2342 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2343 _next_ordinal_to_read += 1;
2344 next_offset += envelope_size;
2345 }
2346
2347 let next_out_of_line = decoder.next_out_of_line();
2348 let handles_before = decoder.remaining_handles();
2349 if let Some((inlined, num_bytes, num_handles)) =
2350 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2351 {
2352 let member_inline_size = <fidl::encoding::UnboundedVector<
2353 ChipConcurrencyCombinationLimit,
2354 > as fidl::encoding::TypeMarker>::inline_size(
2355 decoder.context
2356 );
2357 if inlined != (member_inline_size <= 4) {
2358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2359 }
2360 let inner_offset;
2361 let mut inner_depth = depth.clone();
2362 if inlined {
2363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2364 inner_offset = next_offset;
2365 } else {
2366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2367 inner_depth.increment()?;
2368 }
2369 let val_ref = self.limits.get_or_insert_with(|| {
2370 fidl::new_empty!(
2371 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2372 D
2373 )
2374 });
2375 fidl::decode!(
2376 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
2377 D,
2378 val_ref,
2379 decoder,
2380 inner_offset,
2381 inner_depth
2382 )?;
2383 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2384 {
2385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2386 }
2387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2389 }
2390 }
2391
2392 next_offset += envelope_size;
2393
2394 while next_offset < end_offset {
2396 _next_ordinal_to_read += 1;
2397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2398 next_offset += envelope_size;
2399 }
2400
2401 Ok(())
2402 }
2403 }
2404
2405 impl ChipConcurrencyCombinationLimit {
2406 #[inline(always)]
2407 fn max_ordinal_present(&self) -> u64 {
2408 if let Some(_) = self.max_ifaces {
2409 return 2;
2410 }
2411 if let Some(_) = self.types {
2412 return 1;
2413 }
2414 0
2415 }
2416 }
2417
2418 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombinationLimit {
2419 type Borrowed<'a> = &'a Self;
2420 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2421 value
2422 }
2423 }
2424
2425 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombinationLimit {
2426 type Owned = Self;
2427
2428 #[inline(always)]
2429 fn inline_align(_context: fidl::encoding::Context) -> usize {
2430 8
2431 }
2432
2433 #[inline(always)]
2434 fn inline_size(_context: fidl::encoding::Context) -> usize {
2435 16
2436 }
2437 }
2438
2439 unsafe impl<D: fidl::encoding::ResourceDialect>
2440 fidl::encoding::Encode<ChipConcurrencyCombinationLimit, D>
2441 for &ChipConcurrencyCombinationLimit
2442 {
2443 unsafe fn encode(
2444 self,
2445 encoder: &mut fidl::encoding::Encoder<'_, D>,
2446 offset: usize,
2447 mut depth: fidl::encoding::Depth,
2448 ) -> fidl::Result<()> {
2449 encoder.debug_check_bounds::<ChipConcurrencyCombinationLimit>(offset);
2450 let max_ordinal: u64 = self.max_ordinal_present();
2452 encoder.write_num(max_ordinal, offset);
2453 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2454 if max_ordinal == 0 {
2456 return Ok(());
2457 }
2458 depth.increment()?;
2459 let envelope_size = 8;
2460 let bytes_len = max_ordinal as usize * envelope_size;
2461 #[allow(unused_variables)]
2462 let offset = encoder.out_of_line_offset(bytes_len);
2463 let mut _prev_end_offset: usize = 0;
2464 if 1 > max_ordinal {
2465 return Ok(());
2466 }
2467
2468 let cur_offset: usize = (1 - 1) * envelope_size;
2471
2472 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2474
2475 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D>(
2480 self.types.as_ref().map(<fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::ValueTypeMarker>::borrow),
2481 encoder, offset + cur_offset, depth
2482 )?;
2483
2484 _prev_end_offset = cur_offset + envelope_size;
2485 if 2 > max_ordinal {
2486 return Ok(());
2487 }
2488
2489 let cur_offset: usize = (2 - 1) * envelope_size;
2492
2493 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2495
2496 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2501 self.max_ifaces.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2502 encoder,
2503 offset + cur_offset,
2504 depth,
2505 )?;
2506
2507 _prev_end_offset = cur_offset + envelope_size;
2508
2509 Ok(())
2510 }
2511 }
2512
2513 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2514 for ChipConcurrencyCombinationLimit
2515 {
2516 #[inline(always)]
2517 fn new_empty() -> Self {
2518 Self::default()
2519 }
2520
2521 unsafe fn decode(
2522 &mut self,
2523 decoder: &mut fidl::encoding::Decoder<'_, D>,
2524 offset: usize,
2525 mut depth: fidl::encoding::Depth,
2526 ) -> fidl::Result<()> {
2527 decoder.debug_check_bounds::<Self>(offset);
2528 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2529 None => return Err(fidl::Error::NotNullable),
2530 Some(len) => len,
2531 };
2532 if len == 0 {
2534 return Ok(());
2535 };
2536 depth.increment()?;
2537 let envelope_size = 8;
2538 let bytes_len = len * envelope_size;
2539 let offset = decoder.out_of_line_offset(bytes_len)?;
2540 let mut _next_ordinal_to_read = 0;
2542 let mut next_offset = offset;
2543 let end_offset = offset + bytes_len;
2544 _next_ordinal_to_read += 1;
2545 if next_offset >= end_offset {
2546 return Ok(());
2547 }
2548
2549 while _next_ordinal_to_read < 1 {
2551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2552 _next_ordinal_to_read += 1;
2553 next_offset += envelope_size;
2554 }
2555
2556 let next_out_of_line = decoder.next_out_of_line();
2557 let handles_before = decoder.remaining_handles();
2558 if let Some((inlined, num_bytes, num_handles)) =
2559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2560 {
2561 let member_inline_size = <fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2562 if inlined != (member_inline_size <= 4) {
2563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2564 }
2565 let inner_offset;
2566 let mut inner_depth = depth.clone();
2567 if inlined {
2568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2569 inner_offset = next_offset;
2570 } else {
2571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2572 inner_depth.increment()?;
2573 }
2574 let val_ref = self.types.get_or_insert_with(|| {
2575 fidl::new_empty!(fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D)
2576 });
2577 fidl::decode!(
2578 fidl::encoding::UnboundedVector<IfaceConcurrencyType>,
2579 D,
2580 val_ref,
2581 decoder,
2582 inner_offset,
2583 inner_depth
2584 )?;
2585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2586 {
2587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2588 }
2589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2591 }
2592 }
2593
2594 next_offset += envelope_size;
2595 _next_ordinal_to_read += 1;
2596 if next_offset >= end_offset {
2597 return Ok(());
2598 }
2599
2600 while _next_ordinal_to_read < 2 {
2602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2603 _next_ordinal_to_read += 1;
2604 next_offset += envelope_size;
2605 }
2606
2607 let next_out_of_line = decoder.next_out_of_line();
2608 let handles_before = decoder.remaining_handles();
2609 if let Some((inlined, num_bytes, num_handles)) =
2610 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2611 {
2612 let member_inline_size =
2613 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2614 if inlined != (member_inline_size <= 4) {
2615 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2616 }
2617 let inner_offset;
2618 let mut inner_depth = depth.clone();
2619 if inlined {
2620 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2621 inner_offset = next_offset;
2622 } else {
2623 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2624 inner_depth.increment()?;
2625 }
2626 let val_ref = self.max_ifaces.get_or_insert_with(|| fidl::new_empty!(u32, D));
2627 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2628 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2629 {
2630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2631 }
2632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2634 }
2635 }
2636
2637 next_offset += envelope_size;
2638
2639 while next_offset < end_offset {
2641 _next_ordinal_to_read += 1;
2642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2643 next_offset += envelope_size;
2644 }
2645
2646 Ok(())
2647 }
2648 }
2649
2650 impl ChipMode {
2651 #[inline(always)]
2652 fn max_ordinal_present(&self) -> u64 {
2653 if let Some(_) = self.available_combinations {
2654 return 2;
2655 }
2656 if let Some(_) = self.id {
2657 return 1;
2658 }
2659 0
2660 }
2661 }
2662
2663 impl fidl::encoding::ValueTypeMarker for ChipMode {
2664 type Borrowed<'a> = &'a Self;
2665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2666 value
2667 }
2668 }
2669
2670 unsafe impl fidl::encoding::TypeMarker for ChipMode {
2671 type Owned = Self;
2672
2673 #[inline(always)]
2674 fn inline_align(_context: fidl::encoding::Context) -> usize {
2675 8
2676 }
2677
2678 #[inline(always)]
2679 fn inline_size(_context: fidl::encoding::Context) -> usize {
2680 16
2681 }
2682 }
2683
2684 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChipMode, D> for &ChipMode {
2685 unsafe fn encode(
2686 self,
2687 encoder: &mut fidl::encoding::Encoder<'_, D>,
2688 offset: usize,
2689 mut depth: fidl::encoding::Depth,
2690 ) -> fidl::Result<()> {
2691 encoder.debug_check_bounds::<ChipMode>(offset);
2692 let max_ordinal: u64 = self.max_ordinal_present();
2694 encoder.write_num(max_ordinal, offset);
2695 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2696 if max_ordinal == 0 {
2698 return Ok(());
2699 }
2700 depth.increment()?;
2701 let envelope_size = 8;
2702 let bytes_len = max_ordinal as usize * envelope_size;
2703 #[allow(unused_variables)]
2704 let offset = encoder.out_of_line_offset(bytes_len);
2705 let mut _prev_end_offset: usize = 0;
2706 if 1 > max_ordinal {
2707 return Ok(());
2708 }
2709
2710 let cur_offset: usize = (1 - 1) * envelope_size;
2713
2714 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2716
2717 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2722 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2723 encoder,
2724 offset + cur_offset,
2725 depth,
2726 )?;
2727
2728 _prev_end_offset = cur_offset + envelope_size;
2729 if 2 > max_ordinal {
2730 return Ok(());
2731 }
2732
2733 let cur_offset: usize = (2 - 1) * envelope_size;
2736
2737 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2739
2740 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D>(
2745 self.available_combinations.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombination> as fidl::encoding::ValueTypeMarker>::borrow),
2746 encoder, offset + cur_offset, depth
2747 )?;
2748
2749 _prev_end_offset = cur_offset + envelope_size;
2750
2751 Ok(())
2752 }
2753 }
2754
2755 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChipMode {
2756 #[inline(always)]
2757 fn new_empty() -> Self {
2758 Self::default()
2759 }
2760
2761 unsafe fn decode(
2762 &mut self,
2763 decoder: &mut fidl::encoding::Decoder<'_, D>,
2764 offset: usize,
2765 mut depth: fidl::encoding::Depth,
2766 ) -> fidl::Result<()> {
2767 decoder.debug_check_bounds::<Self>(offset);
2768 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2769 None => return Err(fidl::Error::NotNullable),
2770 Some(len) => len,
2771 };
2772 if len == 0 {
2774 return Ok(());
2775 };
2776 depth.increment()?;
2777 let envelope_size = 8;
2778 let bytes_len = len * envelope_size;
2779 let offset = decoder.out_of_line_offset(bytes_len)?;
2780 let mut _next_ordinal_to_read = 0;
2782 let mut next_offset = offset;
2783 let end_offset = offset + bytes_len;
2784 _next_ordinal_to_read += 1;
2785 if next_offset >= end_offset {
2786 return Ok(());
2787 }
2788
2789 while _next_ordinal_to_read < 1 {
2791 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2792 _next_ordinal_to_read += 1;
2793 next_offset += envelope_size;
2794 }
2795
2796 let next_out_of_line = decoder.next_out_of_line();
2797 let handles_before = decoder.remaining_handles();
2798 if let Some((inlined, num_bytes, num_handles)) =
2799 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2800 {
2801 let member_inline_size =
2802 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2803 if inlined != (member_inline_size <= 4) {
2804 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2805 }
2806 let inner_offset;
2807 let mut inner_depth = depth.clone();
2808 if inlined {
2809 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2810 inner_offset = next_offset;
2811 } else {
2812 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2813 inner_depth.increment()?;
2814 }
2815 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
2816 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2818 {
2819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2820 }
2821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2823 }
2824 }
2825
2826 next_offset += envelope_size;
2827 _next_ordinal_to_read += 1;
2828 if next_offset >= end_offset {
2829 return Ok(());
2830 }
2831
2832 while _next_ordinal_to_read < 2 {
2834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2835 _next_ordinal_to_read += 1;
2836 next_offset += envelope_size;
2837 }
2838
2839 let next_out_of_line = decoder.next_out_of_line();
2840 let handles_before = decoder.remaining_handles();
2841 if let Some((inlined, num_bytes, num_handles)) =
2842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2843 {
2844 let member_inline_size = <fidl::encoding::UnboundedVector<
2845 ChipConcurrencyCombination,
2846 > as fidl::encoding::TypeMarker>::inline_size(
2847 decoder.context
2848 );
2849 if inlined != (member_inline_size <= 4) {
2850 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2851 }
2852 let inner_offset;
2853 let mut inner_depth = depth.clone();
2854 if inlined {
2855 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2856 inner_offset = next_offset;
2857 } else {
2858 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2859 inner_depth.increment()?;
2860 }
2861 let val_ref = self.available_combinations.get_or_insert_with(|| {
2862 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D)
2863 });
2864 fidl::decode!(
2865 fidl::encoding::UnboundedVector<ChipConcurrencyCombination>,
2866 D,
2867 val_ref,
2868 decoder,
2869 inner_offset,
2870 inner_depth
2871 )?;
2872 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2873 {
2874 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2875 }
2876 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2877 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2878 }
2879 }
2880
2881 next_offset += envelope_size;
2882
2883 while next_offset < end_offset {
2885 _next_ordinal_to_read += 1;
2886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2887 next_offset += envelope_size;
2888 }
2889
2890 Ok(())
2891 }
2892 }
2893
2894 impl SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
2895 #[inline(always)]
2896 fn max_ordinal_present(&self) -> u64 {
2897 if let Some(_) = self.timed_out {
2898 return 4;
2899 }
2900 if let Some(_) = self.status_code {
2901 return 3;
2902 }
2903 if let Some(_) = self.bssid {
2904 return 2;
2905 }
2906 if let Some(_) = self.ssid {
2907 return 1;
2908 }
2909 0
2910 }
2911 }
2912
2913 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
2914 type Borrowed<'a> = &'a Self;
2915 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2916 value
2917 }
2918 }
2919
2920 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
2921 type Owned = Self;
2922
2923 #[inline(always)]
2924 fn inline_align(_context: fidl::encoding::Context) -> usize {
2925 8
2926 }
2927
2928 #[inline(always)]
2929 fn inline_size(_context: fidl::encoding::Context) -> usize {
2930 16
2931 }
2932 }
2933
2934 unsafe impl<D: fidl::encoding::ResourceDialect>
2935 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnAssociationRejectedRequest, D>
2936 for &SupplicantStaIfaceCallbackOnAssociationRejectedRequest
2937 {
2938 unsafe fn encode(
2939 self,
2940 encoder: &mut fidl::encoding::Encoder<'_, D>,
2941 offset: usize,
2942 mut depth: fidl::encoding::Depth,
2943 ) -> fidl::Result<()> {
2944 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnAssociationRejectedRequest>(
2945 offset,
2946 );
2947 let max_ordinal: u64 = self.max_ordinal_present();
2949 encoder.write_num(max_ordinal, offset);
2950 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2951 if max_ordinal == 0 {
2953 return Ok(());
2954 }
2955 depth.increment()?;
2956 let envelope_size = 8;
2957 let bytes_len = max_ordinal as usize * envelope_size;
2958 #[allow(unused_variables)]
2959 let offset = encoder.out_of_line_offset(bytes_len);
2960 let mut _prev_end_offset: usize = 0;
2961 if 1 > max_ordinal {
2962 return Ok(());
2963 }
2964
2965 let cur_offset: usize = (1 - 1) * envelope_size;
2968
2969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2971
2972 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
2977 self.ssid.as_ref().map(
2978 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
2979 ),
2980 encoder,
2981 offset + cur_offset,
2982 depth,
2983 )?;
2984
2985 _prev_end_offset = cur_offset + envelope_size;
2986 if 2 > max_ordinal {
2987 return Ok(());
2988 }
2989
2990 let cur_offset: usize = (2 - 1) * envelope_size;
2993
2994 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2996
2997 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3002 self.bssid
3003 .as_ref()
3004 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3005 encoder,
3006 offset + cur_offset,
3007 depth,
3008 )?;
3009
3010 _prev_end_offset = cur_offset + envelope_size;
3011 if 3 > max_ordinal {
3012 return Ok(());
3013 }
3014
3015 let cur_offset: usize = (3 - 1) * envelope_size;
3018
3019 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3021
3022 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
3027 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
3028 encoder, offset + cur_offset, depth
3029 )?;
3030
3031 _prev_end_offset = cur_offset + envelope_size;
3032 if 4 > max_ordinal {
3033 return Ok(());
3034 }
3035
3036 let cur_offset: usize = (4 - 1) * envelope_size;
3039
3040 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3042
3043 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3048 self.timed_out.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3049 encoder,
3050 offset + cur_offset,
3051 depth,
3052 )?;
3053
3054 _prev_end_offset = cur_offset + envelope_size;
3055
3056 Ok(())
3057 }
3058 }
3059
3060 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3061 for SupplicantStaIfaceCallbackOnAssociationRejectedRequest
3062 {
3063 #[inline(always)]
3064 fn new_empty() -> Self {
3065 Self::default()
3066 }
3067
3068 unsafe fn decode(
3069 &mut self,
3070 decoder: &mut fidl::encoding::Decoder<'_, D>,
3071 offset: usize,
3072 mut depth: fidl::encoding::Depth,
3073 ) -> fidl::Result<()> {
3074 decoder.debug_check_bounds::<Self>(offset);
3075 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3076 None => return Err(fidl::Error::NotNullable),
3077 Some(len) => len,
3078 };
3079 if len == 0 {
3081 return Ok(());
3082 };
3083 depth.increment()?;
3084 let envelope_size = 8;
3085 let bytes_len = len * envelope_size;
3086 let offset = decoder.out_of_line_offset(bytes_len)?;
3087 let mut _next_ordinal_to_read = 0;
3089 let mut next_offset = offset;
3090 let end_offset = offset + bytes_len;
3091 _next_ordinal_to_read += 1;
3092 if next_offset >= end_offset {
3093 return Ok(());
3094 }
3095
3096 while _next_ordinal_to_read < 1 {
3098 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3099 _next_ordinal_to_read += 1;
3100 next_offset += envelope_size;
3101 }
3102
3103 let next_out_of_line = decoder.next_out_of_line();
3104 let handles_before = decoder.remaining_handles();
3105 if let Some((inlined, num_bytes, num_handles)) =
3106 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3107 {
3108 let member_inline_size =
3109 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
3110 decoder.context,
3111 );
3112 if inlined != (member_inline_size <= 4) {
3113 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3114 }
3115 let inner_offset;
3116 let mut inner_depth = depth.clone();
3117 if inlined {
3118 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3119 inner_offset = next_offset;
3120 } else {
3121 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3122 inner_depth.increment()?;
3123 }
3124 let val_ref = self
3125 .ssid
3126 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
3127 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
3128 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3129 {
3130 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3131 }
3132 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3133 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3134 }
3135 }
3136
3137 next_offset += envelope_size;
3138 _next_ordinal_to_read += 1;
3139 if next_offset >= end_offset {
3140 return Ok(());
3141 }
3142
3143 while _next_ordinal_to_read < 2 {
3145 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3146 _next_ordinal_to_read += 1;
3147 next_offset += envelope_size;
3148 }
3149
3150 let next_out_of_line = decoder.next_out_of_line();
3151 let handles_before = decoder.remaining_handles();
3152 if let Some((inlined, num_bytes, num_handles)) =
3153 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3154 {
3155 let member_inline_size =
3156 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3157 decoder.context,
3158 );
3159 if inlined != (member_inline_size <= 4) {
3160 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3161 }
3162 let inner_offset;
3163 let mut inner_depth = depth.clone();
3164 if inlined {
3165 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3166 inner_offset = next_offset;
3167 } else {
3168 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3169 inner_depth.increment()?;
3170 }
3171 let val_ref = self
3172 .bssid
3173 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3174 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3175 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3176 {
3177 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3178 }
3179 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3180 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3181 }
3182 }
3183
3184 next_offset += envelope_size;
3185 _next_ordinal_to_read += 1;
3186 if next_offset >= end_offset {
3187 return Ok(());
3188 }
3189
3190 while _next_ordinal_to_read < 3 {
3192 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3193 _next_ordinal_to_read += 1;
3194 next_offset += envelope_size;
3195 }
3196
3197 let next_out_of_line = decoder.next_out_of_line();
3198 let handles_before = decoder.remaining_handles();
3199 if let Some((inlined, num_bytes, num_handles)) =
3200 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3201 {
3202 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3203 if inlined != (member_inline_size <= 4) {
3204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3205 }
3206 let inner_offset;
3207 let mut inner_depth = depth.clone();
3208 if inlined {
3209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3210 inner_offset = next_offset;
3211 } else {
3212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3213 inner_depth.increment()?;
3214 }
3215 let val_ref = self.status_code.get_or_insert_with(|| {
3216 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
3217 });
3218 fidl::decode!(
3219 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
3220 D,
3221 val_ref,
3222 decoder,
3223 inner_offset,
3224 inner_depth
3225 )?;
3226 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3227 {
3228 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3229 }
3230 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3231 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3232 }
3233 }
3234
3235 next_offset += envelope_size;
3236 _next_ordinal_to_read += 1;
3237 if next_offset >= end_offset {
3238 return Ok(());
3239 }
3240
3241 while _next_ordinal_to_read < 4 {
3243 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3244 _next_ordinal_to_read += 1;
3245 next_offset += envelope_size;
3246 }
3247
3248 let next_out_of_line = decoder.next_out_of_line();
3249 let handles_before = decoder.remaining_handles();
3250 if let Some((inlined, num_bytes, num_handles)) =
3251 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3252 {
3253 let member_inline_size =
3254 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3255 if inlined != (member_inline_size <= 4) {
3256 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3257 }
3258 let inner_offset;
3259 let mut inner_depth = depth.clone();
3260 if inlined {
3261 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3262 inner_offset = next_offset;
3263 } else {
3264 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3265 inner_depth.increment()?;
3266 }
3267 let val_ref = self.timed_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
3268 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3269 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3270 {
3271 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3272 }
3273 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3274 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3275 }
3276 }
3277
3278 next_offset += envelope_size;
3279
3280 while next_offset < end_offset {
3282 _next_ordinal_to_read += 1;
3283 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3284 next_offset += envelope_size;
3285 }
3286
3287 Ok(())
3288 }
3289 }
3290
3291 impl SupplicantStaIfaceCallbackOnDisconnectedRequest {
3292 #[inline(always)]
3293 fn max_ordinal_present(&self) -> u64 {
3294 if let Some(_) = self.reason_code {
3295 return 3;
3296 }
3297 if let Some(_) = self.locally_generated {
3298 return 2;
3299 }
3300 if let Some(_) = self.bssid {
3301 return 1;
3302 }
3303 0
3304 }
3305 }
3306
3307 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
3308 type Borrowed<'a> = &'a Self;
3309 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3310 value
3311 }
3312 }
3313
3314 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
3315 type Owned = Self;
3316
3317 #[inline(always)]
3318 fn inline_align(_context: fidl::encoding::Context) -> usize {
3319 8
3320 }
3321
3322 #[inline(always)]
3323 fn inline_size(_context: fidl::encoding::Context) -> usize {
3324 16
3325 }
3326 }
3327
3328 unsafe impl<D: fidl::encoding::ResourceDialect>
3329 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnDisconnectedRequest, D>
3330 for &SupplicantStaIfaceCallbackOnDisconnectedRequest
3331 {
3332 unsafe fn encode(
3333 self,
3334 encoder: &mut fidl::encoding::Encoder<'_, D>,
3335 offset: usize,
3336 mut depth: fidl::encoding::Depth,
3337 ) -> fidl::Result<()> {
3338 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnDisconnectedRequest>(offset);
3339 let max_ordinal: u64 = self.max_ordinal_present();
3341 encoder.write_num(max_ordinal, offset);
3342 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3343 if max_ordinal == 0 {
3345 return Ok(());
3346 }
3347 depth.increment()?;
3348 let envelope_size = 8;
3349 let bytes_len = max_ordinal as usize * envelope_size;
3350 #[allow(unused_variables)]
3351 let offset = encoder.out_of_line_offset(bytes_len);
3352 let mut _prev_end_offset: usize = 0;
3353 if 1 > max_ordinal {
3354 return Ok(());
3355 }
3356
3357 let cur_offset: usize = (1 - 1) * envelope_size;
3360
3361 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3363
3364 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3369 self.bssid
3370 .as_ref()
3371 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3372 encoder,
3373 offset + cur_offset,
3374 depth,
3375 )?;
3376
3377 _prev_end_offset = cur_offset + envelope_size;
3378 if 2 > max_ordinal {
3379 return Ok(());
3380 }
3381
3382 let cur_offset: usize = (2 - 1) * envelope_size;
3385
3386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3388
3389 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3394 self.locally_generated
3395 .as_ref()
3396 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3397 encoder,
3398 offset + cur_offset,
3399 depth,
3400 )?;
3401
3402 _prev_end_offset = cur_offset + envelope_size;
3403 if 3 > max_ordinal {
3404 return Ok(());
3405 }
3406
3407 let cur_offset: usize = (3 - 1) * envelope_size;
3410
3411 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3413
3414 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
3419 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
3420 encoder, offset + cur_offset, depth
3421 )?;
3422
3423 _prev_end_offset = cur_offset + envelope_size;
3424
3425 Ok(())
3426 }
3427 }
3428
3429 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3430 for SupplicantStaIfaceCallbackOnDisconnectedRequest
3431 {
3432 #[inline(always)]
3433 fn new_empty() -> Self {
3434 Self::default()
3435 }
3436
3437 unsafe fn decode(
3438 &mut self,
3439 decoder: &mut fidl::encoding::Decoder<'_, D>,
3440 offset: usize,
3441 mut depth: fidl::encoding::Depth,
3442 ) -> fidl::Result<()> {
3443 decoder.debug_check_bounds::<Self>(offset);
3444 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3445 None => return Err(fidl::Error::NotNullable),
3446 Some(len) => len,
3447 };
3448 if len == 0 {
3450 return Ok(());
3451 };
3452 depth.increment()?;
3453 let envelope_size = 8;
3454 let bytes_len = len * envelope_size;
3455 let offset = decoder.out_of_line_offset(bytes_len)?;
3456 let mut _next_ordinal_to_read = 0;
3458 let mut next_offset = offset;
3459 let end_offset = offset + bytes_len;
3460 _next_ordinal_to_read += 1;
3461 if next_offset >= end_offset {
3462 return Ok(());
3463 }
3464
3465 while _next_ordinal_to_read < 1 {
3467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3468 _next_ordinal_to_read += 1;
3469 next_offset += envelope_size;
3470 }
3471
3472 let next_out_of_line = decoder.next_out_of_line();
3473 let handles_before = decoder.remaining_handles();
3474 if let Some((inlined, num_bytes, num_handles)) =
3475 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3476 {
3477 let member_inline_size =
3478 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3479 decoder.context,
3480 );
3481 if inlined != (member_inline_size <= 4) {
3482 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3483 }
3484 let inner_offset;
3485 let mut inner_depth = depth.clone();
3486 if inlined {
3487 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3488 inner_offset = next_offset;
3489 } else {
3490 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3491 inner_depth.increment()?;
3492 }
3493 let val_ref = self
3494 .bssid
3495 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3496 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3497 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3498 {
3499 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3500 }
3501 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3502 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3503 }
3504 }
3505
3506 next_offset += envelope_size;
3507 _next_ordinal_to_read += 1;
3508 if next_offset >= end_offset {
3509 return Ok(());
3510 }
3511
3512 while _next_ordinal_to_read < 2 {
3514 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3515 _next_ordinal_to_read += 1;
3516 next_offset += envelope_size;
3517 }
3518
3519 let next_out_of_line = decoder.next_out_of_line();
3520 let handles_before = decoder.remaining_handles();
3521 if let Some((inlined, num_bytes, num_handles)) =
3522 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3523 {
3524 let member_inline_size =
3525 <bool 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 =
3539 self.locally_generated.get_or_insert_with(|| fidl::new_empty!(bool, D));
3540 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3541 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3542 {
3543 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3544 }
3545 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3546 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3547 }
3548 }
3549
3550 next_offset += envelope_size;
3551 _next_ordinal_to_read += 1;
3552 if next_offset >= end_offset {
3553 return Ok(());
3554 }
3555
3556 while _next_ordinal_to_read < 3 {
3558 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3559 _next_ordinal_to_read += 1;
3560 next_offset += envelope_size;
3561 }
3562
3563 let next_out_of_line = decoder.next_out_of_line();
3564 let handles_before = decoder.remaining_handles();
3565 if let Some((inlined, num_bytes, num_handles)) =
3566 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3567 {
3568 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3569 if inlined != (member_inline_size <= 4) {
3570 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3571 }
3572 let inner_offset;
3573 let mut inner_depth = depth.clone();
3574 if inlined {
3575 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3576 inner_offset = next_offset;
3577 } else {
3578 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3579 inner_depth.increment()?;
3580 }
3581 let val_ref = self.reason_code.get_or_insert_with(|| {
3582 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
3583 });
3584 fidl::decode!(
3585 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
3586 D,
3587 val_ref,
3588 decoder,
3589 inner_offset,
3590 inner_depth
3591 )?;
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 SupplicantStaIfaceCallbackOnStateChangedRequest {
3615 #[inline(always)]
3616 fn max_ordinal_present(&self) -> u64 {
3617 if let Some(_) = self.ssid {
3618 return 4;
3619 }
3620 if let Some(_) = self.id {
3621 return 3;
3622 }
3623 if let Some(_) = self.bssid {
3624 return 2;
3625 }
3626 if let Some(_) = self.new_state {
3627 return 1;
3628 }
3629 0
3630 }
3631 }
3632
3633 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
3634 type Borrowed<'a> = &'a Self;
3635 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3636 value
3637 }
3638 }
3639
3640 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
3641 type Owned = Self;
3642
3643 #[inline(always)]
3644 fn inline_align(_context: fidl::encoding::Context) -> usize {
3645 8
3646 }
3647
3648 #[inline(always)]
3649 fn inline_size(_context: fidl::encoding::Context) -> usize {
3650 16
3651 }
3652 }
3653
3654 unsafe impl<D: fidl::encoding::ResourceDialect>
3655 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnStateChangedRequest, D>
3656 for &SupplicantStaIfaceCallbackOnStateChangedRequest
3657 {
3658 unsafe fn encode(
3659 self,
3660 encoder: &mut fidl::encoding::Encoder<'_, D>,
3661 offset: usize,
3662 mut depth: fidl::encoding::Depth,
3663 ) -> fidl::Result<()> {
3664 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnStateChangedRequest>(offset);
3665 let max_ordinal: u64 = self.max_ordinal_present();
3667 encoder.write_num(max_ordinal, offset);
3668 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3669 if max_ordinal == 0 {
3671 return Ok(());
3672 }
3673 depth.increment()?;
3674 let envelope_size = 8;
3675 let bytes_len = max_ordinal as usize * envelope_size;
3676 #[allow(unused_variables)]
3677 let offset = encoder.out_of_line_offset(bytes_len);
3678 let mut _prev_end_offset: usize = 0;
3679 if 1 > max_ordinal {
3680 return Ok(());
3681 }
3682
3683 let cur_offset: usize = (1 - 1) * envelope_size;
3686
3687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3689
3690 fidl::encoding::encode_in_envelope_optional::<StaIfaceCallbackState, D>(
3695 self.new_state
3696 .as_ref()
3697 .map(<StaIfaceCallbackState as fidl::encoding::ValueTypeMarker>::borrow),
3698 encoder,
3699 offset + cur_offset,
3700 depth,
3701 )?;
3702
3703 _prev_end_offset = cur_offset + envelope_size;
3704 if 2 > max_ordinal {
3705 return Ok(());
3706 }
3707
3708 let cur_offset: usize = (2 - 1) * envelope_size;
3711
3712 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3714
3715 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3720 self.bssid
3721 .as_ref()
3722 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3723 encoder,
3724 offset + cur_offset,
3725 depth,
3726 )?;
3727
3728 _prev_end_offset = cur_offset + envelope_size;
3729 if 3 > max_ordinal {
3730 return Ok(());
3731 }
3732
3733 let cur_offset: usize = (3 - 1) * envelope_size;
3736
3737 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3739
3740 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3745 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3746 encoder,
3747 offset + cur_offset,
3748 depth,
3749 )?;
3750
3751 _prev_end_offset = cur_offset + envelope_size;
3752 if 4 > max_ordinal {
3753 return Ok(());
3754 }
3755
3756 let cur_offset: usize = (4 - 1) * envelope_size;
3759
3760 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3762
3763 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
3768 self.ssid.as_ref().map(
3769 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
3770 ),
3771 encoder,
3772 offset + cur_offset,
3773 depth,
3774 )?;
3775
3776 _prev_end_offset = cur_offset + envelope_size;
3777
3778 Ok(())
3779 }
3780 }
3781
3782 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3783 for SupplicantStaIfaceCallbackOnStateChangedRequest
3784 {
3785 #[inline(always)]
3786 fn new_empty() -> Self {
3787 Self::default()
3788 }
3789
3790 unsafe fn decode(
3791 &mut self,
3792 decoder: &mut fidl::encoding::Decoder<'_, D>,
3793 offset: usize,
3794 mut depth: fidl::encoding::Depth,
3795 ) -> fidl::Result<()> {
3796 decoder.debug_check_bounds::<Self>(offset);
3797 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3798 None => return Err(fidl::Error::NotNullable),
3799 Some(len) => len,
3800 };
3801 if len == 0 {
3803 return Ok(());
3804 };
3805 depth.increment()?;
3806 let envelope_size = 8;
3807 let bytes_len = len * envelope_size;
3808 let offset = decoder.out_of_line_offset(bytes_len)?;
3809 let mut _next_ordinal_to_read = 0;
3811 let mut next_offset = offset;
3812 let end_offset = offset + bytes_len;
3813 _next_ordinal_to_read += 1;
3814 if next_offset >= end_offset {
3815 return Ok(());
3816 }
3817
3818 while _next_ordinal_to_read < 1 {
3820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3821 _next_ordinal_to_read += 1;
3822 next_offset += envelope_size;
3823 }
3824
3825 let next_out_of_line = decoder.next_out_of_line();
3826 let handles_before = decoder.remaining_handles();
3827 if let Some((inlined, num_bytes, num_handles)) =
3828 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3829 {
3830 let member_inline_size =
3831 <StaIfaceCallbackState as fidl::encoding::TypeMarker>::inline_size(
3832 decoder.context,
3833 );
3834 if inlined != (member_inline_size <= 4) {
3835 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3836 }
3837 let inner_offset;
3838 let mut inner_depth = depth.clone();
3839 if inlined {
3840 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3841 inner_offset = next_offset;
3842 } else {
3843 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3844 inner_depth.increment()?;
3845 }
3846 let val_ref = self
3847 .new_state
3848 .get_or_insert_with(|| fidl::new_empty!(StaIfaceCallbackState, D));
3849 fidl::decode!(
3850 StaIfaceCallbackState,
3851 D,
3852 val_ref,
3853 decoder,
3854 inner_offset,
3855 inner_depth
3856 )?;
3857 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3858 {
3859 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3860 }
3861 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3862 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3863 }
3864 }
3865
3866 next_offset += envelope_size;
3867 _next_ordinal_to_read += 1;
3868 if next_offset >= end_offset {
3869 return Ok(());
3870 }
3871
3872 while _next_ordinal_to_read < 2 {
3874 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3875 _next_ordinal_to_read += 1;
3876 next_offset += envelope_size;
3877 }
3878
3879 let next_out_of_line = decoder.next_out_of_line();
3880 let handles_before = decoder.remaining_handles();
3881 if let Some((inlined, num_bytes, num_handles)) =
3882 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3883 {
3884 let member_inline_size =
3885 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3886 decoder.context,
3887 );
3888 if inlined != (member_inline_size <= 4) {
3889 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3890 }
3891 let inner_offset;
3892 let mut inner_depth = depth.clone();
3893 if inlined {
3894 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3895 inner_offset = next_offset;
3896 } else {
3897 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3898 inner_depth.increment()?;
3899 }
3900 let val_ref = self
3901 .bssid
3902 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3903 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3904 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3905 {
3906 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3907 }
3908 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3909 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3910 }
3911 }
3912
3913 next_offset += envelope_size;
3914 _next_ordinal_to_read += 1;
3915 if next_offset >= end_offset {
3916 return Ok(());
3917 }
3918
3919 while _next_ordinal_to_read < 3 {
3921 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3922 _next_ordinal_to_read += 1;
3923 next_offset += envelope_size;
3924 }
3925
3926 let next_out_of_line = decoder.next_out_of_line();
3927 let handles_before = decoder.remaining_handles();
3928 if let Some((inlined, num_bytes, num_handles)) =
3929 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3930 {
3931 let member_inline_size =
3932 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3933 if inlined != (member_inline_size <= 4) {
3934 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3935 }
3936 let inner_offset;
3937 let mut inner_depth = depth.clone();
3938 if inlined {
3939 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3940 inner_offset = next_offset;
3941 } else {
3942 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3943 inner_depth.increment()?;
3944 }
3945 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
3946 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3947 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3948 {
3949 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3950 }
3951 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3952 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3953 }
3954 }
3955
3956 next_offset += envelope_size;
3957 _next_ordinal_to_read += 1;
3958 if next_offset >= end_offset {
3959 return Ok(());
3960 }
3961
3962 while _next_ordinal_to_read < 4 {
3964 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3965 _next_ordinal_to_read += 1;
3966 next_offset += envelope_size;
3967 }
3968
3969 let next_out_of_line = decoder.next_out_of_line();
3970 let handles_before = decoder.remaining_handles();
3971 if let Some((inlined, num_bytes, num_handles)) =
3972 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3973 {
3974 let member_inline_size =
3975 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
3976 decoder.context,
3977 );
3978 if inlined != (member_inline_size <= 4) {
3979 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3980 }
3981 let inner_offset;
3982 let mut inner_depth = depth.clone();
3983 if inlined {
3984 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3985 inner_offset = next_offset;
3986 } else {
3987 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3988 inner_depth.increment()?;
3989 }
3990 let val_ref = self
3991 .ssid
3992 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
3993 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
3994 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3995 {
3996 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3997 }
3998 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3999 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4000 }
4001 }
4002
4003 next_offset += envelope_size;
4004
4005 while next_offset < end_offset {
4007 _next_ordinal_to_read += 1;
4008 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4009 next_offset += envelope_size;
4010 }
4011
4012 Ok(())
4013 }
4014 }
4015
4016 impl SupplicantStaIfaceSetBtCoexistenceModeRequest {
4017 #[inline(always)]
4018 fn max_ordinal_present(&self) -> u64 {
4019 if let Some(_) = self.mode {
4020 return 1;
4021 }
4022 0
4023 }
4024 }
4025
4026 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
4027 type Borrowed<'a> = &'a Self;
4028 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4029 value
4030 }
4031 }
4032
4033 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceSetBtCoexistenceModeRequest {
4034 type Owned = Self;
4035
4036 #[inline(always)]
4037 fn inline_align(_context: fidl::encoding::Context) -> usize {
4038 8
4039 }
4040
4041 #[inline(always)]
4042 fn inline_size(_context: fidl::encoding::Context) -> usize {
4043 16
4044 }
4045 }
4046
4047 unsafe impl<D: fidl::encoding::ResourceDialect>
4048 fidl::encoding::Encode<SupplicantStaIfaceSetBtCoexistenceModeRequest, D>
4049 for &SupplicantStaIfaceSetBtCoexistenceModeRequest
4050 {
4051 unsafe fn encode(
4052 self,
4053 encoder: &mut fidl::encoding::Encoder<'_, D>,
4054 offset: usize,
4055 mut depth: fidl::encoding::Depth,
4056 ) -> fidl::Result<()> {
4057 encoder.debug_check_bounds::<SupplicantStaIfaceSetBtCoexistenceModeRequest>(offset);
4058 let max_ordinal: u64 = self.max_ordinal_present();
4060 encoder.write_num(max_ordinal, offset);
4061 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4062 if max_ordinal == 0 {
4064 return Ok(());
4065 }
4066 depth.increment()?;
4067 let envelope_size = 8;
4068 let bytes_len = max_ordinal as usize * envelope_size;
4069 #[allow(unused_variables)]
4070 let offset = encoder.out_of_line_offset(bytes_len);
4071 let mut _prev_end_offset: usize = 0;
4072 if 1 > max_ordinal {
4073 return Ok(());
4074 }
4075
4076 let cur_offset: usize = (1 - 1) * envelope_size;
4079
4080 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4082
4083 fidl::encoding::encode_in_envelope_optional::<BtCoexistenceMode, D>(
4088 self.mode
4089 .as_ref()
4090 .map(<BtCoexistenceMode as fidl::encoding::ValueTypeMarker>::borrow),
4091 encoder,
4092 offset + cur_offset,
4093 depth,
4094 )?;
4095
4096 _prev_end_offset = cur_offset + envelope_size;
4097
4098 Ok(())
4099 }
4100 }
4101
4102 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4103 for SupplicantStaIfaceSetBtCoexistenceModeRequest
4104 {
4105 #[inline(always)]
4106 fn new_empty() -> Self {
4107 Self::default()
4108 }
4109
4110 unsafe fn decode(
4111 &mut self,
4112 decoder: &mut fidl::encoding::Decoder<'_, D>,
4113 offset: usize,
4114 mut depth: fidl::encoding::Depth,
4115 ) -> fidl::Result<()> {
4116 decoder.debug_check_bounds::<Self>(offset);
4117 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4118 None => return Err(fidl::Error::NotNullable),
4119 Some(len) => len,
4120 };
4121 if len == 0 {
4123 return Ok(());
4124 };
4125 depth.increment()?;
4126 let envelope_size = 8;
4127 let bytes_len = len * envelope_size;
4128 let offset = decoder.out_of_line_offset(bytes_len)?;
4129 let mut _next_ordinal_to_read = 0;
4131 let mut next_offset = offset;
4132 let end_offset = offset + bytes_len;
4133 _next_ordinal_to_read += 1;
4134 if next_offset >= end_offset {
4135 return Ok(());
4136 }
4137
4138 while _next_ordinal_to_read < 1 {
4140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4141 _next_ordinal_to_read += 1;
4142 next_offset += envelope_size;
4143 }
4144
4145 let next_out_of_line = decoder.next_out_of_line();
4146 let handles_before = decoder.remaining_handles();
4147 if let Some((inlined, num_bytes, num_handles)) =
4148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4149 {
4150 let member_inline_size =
4151 <BtCoexistenceMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4152 if inlined != (member_inline_size <= 4) {
4153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4154 }
4155 let inner_offset;
4156 let mut inner_depth = depth.clone();
4157 if inlined {
4158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4159 inner_offset = next_offset;
4160 } else {
4161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4162 inner_depth.increment()?;
4163 }
4164 let val_ref =
4165 self.mode.get_or_insert_with(|| fidl::new_empty!(BtCoexistenceMode, D));
4166 fidl::decode!(BtCoexistenceMode, D, val_ref, decoder, inner_offset, inner_depth)?;
4167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4168 {
4169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4170 }
4171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4173 }
4174 }
4175
4176 next_offset += envelope_size;
4177
4178 while next_offset < end_offset {
4180 _next_ordinal_to_read += 1;
4181 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4182 next_offset += envelope_size;
4183 }
4184
4185 Ok(())
4186 }
4187 }
4188
4189 impl SupplicantStaIfaceGetMacAddressResponse {
4190 #[inline(always)]
4191 fn max_ordinal_present(&self) -> u64 {
4192 if let Some(_) = self.mac_addr {
4193 return 1;
4194 }
4195 0
4196 }
4197 }
4198
4199 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetMacAddressResponse {
4200 type Borrowed<'a> = &'a Self;
4201 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4202 value
4203 }
4204 }
4205
4206 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetMacAddressResponse {
4207 type Owned = Self;
4208
4209 #[inline(always)]
4210 fn inline_align(_context: fidl::encoding::Context) -> usize {
4211 8
4212 }
4213
4214 #[inline(always)]
4215 fn inline_size(_context: fidl::encoding::Context) -> usize {
4216 16
4217 }
4218 }
4219
4220 unsafe impl<D: fidl::encoding::ResourceDialect>
4221 fidl::encoding::Encode<SupplicantStaIfaceGetMacAddressResponse, D>
4222 for &SupplicantStaIfaceGetMacAddressResponse
4223 {
4224 unsafe fn encode(
4225 self,
4226 encoder: &mut fidl::encoding::Encoder<'_, D>,
4227 offset: usize,
4228 mut depth: fidl::encoding::Depth,
4229 ) -> fidl::Result<()> {
4230 encoder.debug_check_bounds::<SupplicantStaIfaceGetMacAddressResponse>(offset);
4231 let max_ordinal: u64 = self.max_ordinal_present();
4233 encoder.write_num(max_ordinal, offset);
4234 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4235 if max_ordinal == 0 {
4237 return Ok(());
4238 }
4239 depth.increment()?;
4240 let envelope_size = 8;
4241 let bytes_len = max_ordinal as usize * envelope_size;
4242 #[allow(unused_variables)]
4243 let offset = encoder.out_of_line_offset(bytes_len);
4244 let mut _prev_end_offset: usize = 0;
4245 if 1 > max_ordinal {
4246 return Ok(());
4247 }
4248
4249 let cur_offset: usize = (1 - 1) * envelope_size;
4252
4253 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4255
4256 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4261 self.mac_addr
4262 .as_ref()
4263 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4264 encoder,
4265 offset + cur_offset,
4266 depth,
4267 )?;
4268
4269 _prev_end_offset = cur_offset + envelope_size;
4270
4271 Ok(())
4272 }
4273 }
4274
4275 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4276 for SupplicantStaIfaceGetMacAddressResponse
4277 {
4278 #[inline(always)]
4279 fn new_empty() -> Self {
4280 Self::default()
4281 }
4282
4283 unsafe fn decode(
4284 &mut self,
4285 decoder: &mut fidl::encoding::Decoder<'_, D>,
4286 offset: usize,
4287 mut depth: fidl::encoding::Depth,
4288 ) -> fidl::Result<()> {
4289 decoder.debug_check_bounds::<Self>(offset);
4290 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4291 None => return Err(fidl::Error::NotNullable),
4292 Some(len) => len,
4293 };
4294 if len == 0 {
4296 return Ok(());
4297 };
4298 depth.increment()?;
4299 let envelope_size = 8;
4300 let bytes_len = len * envelope_size;
4301 let offset = decoder.out_of_line_offset(bytes_len)?;
4302 let mut _next_ordinal_to_read = 0;
4304 let mut next_offset = offset;
4305 let end_offset = offset + bytes_len;
4306 _next_ordinal_to_read += 1;
4307 if next_offset >= end_offset {
4308 return Ok(());
4309 }
4310
4311 while _next_ordinal_to_read < 1 {
4313 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4314 _next_ordinal_to_read += 1;
4315 next_offset += envelope_size;
4316 }
4317
4318 let next_out_of_line = decoder.next_out_of_line();
4319 let handles_before = decoder.remaining_handles();
4320 if let Some((inlined, num_bytes, num_handles)) =
4321 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4322 {
4323 let member_inline_size =
4324 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4325 decoder.context,
4326 );
4327 if inlined != (member_inline_size <= 4) {
4328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4329 }
4330 let inner_offset;
4331 let mut inner_depth = depth.clone();
4332 if inlined {
4333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4334 inner_offset = next_offset;
4335 } else {
4336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4337 inner_depth.increment()?;
4338 }
4339 let val_ref = self
4340 .mac_addr
4341 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4342 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4343 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4344 {
4345 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4346 }
4347 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4348 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4349 }
4350 }
4351
4352 next_offset += envelope_size;
4353
4354 while next_offset < end_offset {
4356 _next_ordinal_to_read += 1;
4357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4358 next_offset += envelope_size;
4359 }
4360
4361 Ok(())
4362 }
4363 }
4364
4365 impl SupplicantStaNetworkSetBssidRequest {
4366 #[inline(always)]
4367 fn max_ordinal_present(&self) -> u64 {
4368 if let Some(_) = self.bssid {
4369 return 1;
4370 }
4371 0
4372 }
4373 }
4374
4375 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetBssidRequest {
4376 type Borrowed<'a> = &'a Self;
4377 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4378 value
4379 }
4380 }
4381
4382 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetBssidRequest {
4383 type Owned = Self;
4384
4385 #[inline(always)]
4386 fn inline_align(_context: fidl::encoding::Context) -> usize {
4387 8
4388 }
4389
4390 #[inline(always)]
4391 fn inline_size(_context: fidl::encoding::Context) -> usize {
4392 16
4393 }
4394 }
4395
4396 unsafe impl<D: fidl::encoding::ResourceDialect>
4397 fidl::encoding::Encode<SupplicantStaNetworkSetBssidRequest, D>
4398 for &SupplicantStaNetworkSetBssidRequest
4399 {
4400 unsafe fn encode(
4401 self,
4402 encoder: &mut fidl::encoding::Encoder<'_, D>,
4403 offset: usize,
4404 mut depth: fidl::encoding::Depth,
4405 ) -> fidl::Result<()> {
4406 encoder.debug_check_bounds::<SupplicantStaNetworkSetBssidRequest>(offset);
4407 let max_ordinal: u64 = self.max_ordinal_present();
4409 encoder.write_num(max_ordinal, offset);
4410 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4411 if max_ordinal == 0 {
4413 return Ok(());
4414 }
4415 depth.increment()?;
4416 let envelope_size = 8;
4417 let bytes_len = max_ordinal as usize * envelope_size;
4418 #[allow(unused_variables)]
4419 let offset = encoder.out_of_line_offset(bytes_len);
4420 let mut _prev_end_offset: usize = 0;
4421 if 1 > max_ordinal {
4422 return Ok(());
4423 }
4424
4425 let cur_offset: usize = (1 - 1) * envelope_size;
4428
4429 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4431
4432 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
4437 self.bssid
4438 .as_ref()
4439 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
4440 encoder,
4441 offset + cur_offset,
4442 depth,
4443 )?;
4444
4445 _prev_end_offset = cur_offset + envelope_size;
4446
4447 Ok(())
4448 }
4449 }
4450
4451 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4452 for SupplicantStaNetworkSetBssidRequest
4453 {
4454 #[inline(always)]
4455 fn new_empty() -> Self {
4456 Self::default()
4457 }
4458
4459 unsafe fn decode(
4460 &mut self,
4461 decoder: &mut fidl::encoding::Decoder<'_, D>,
4462 offset: usize,
4463 mut depth: fidl::encoding::Depth,
4464 ) -> fidl::Result<()> {
4465 decoder.debug_check_bounds::<Self>(offset);
4466 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4467 None => return Err(fidl::Error::NotNullable),
4468 Some(len) => len,
4469 };
4470 if len == 0 {
4472 return Ok(());
4473 };
4474 depth.increment()?;
4475 let envelope_size = 8;
4476 let bytes_len = len * envelope_size;
4477 let offset = decoder.out_of_line_offset(bytes_len)?;
4478 let mut _next_ordinal_to_read = 0;
4480 let mut next_offset = offset;
4481 let end_offset = offset + bytes_len;
4482 _next_ordinal_to_read += 1;
4483 if next_offset >= end_offset {
4484 return Ok(());
4485 }
4486
4487 while _next_ordinal_to_read < 1 {
4489 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4490 _next_ordinal_to_read += 1;
4491 next_offset += envelope_size;
4492 }
4493
4494 let next_out_of_line = decoder.next_out_of_line();
4495 let handles_before = decoder.remaining_handles();
4496 if let Some((inlined, num_bytes, num_handles)) =
4497 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4498 {
4499 let member_inline_size =
4500 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
4501 decoder.context,
4502 );
4503 if inlined != (member_inline_size <= 4) {
4504 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4505 }
4506 let inner_offset;
4507 let mut inner_depth = depth.clone();
4508 if inlined {
4509 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4510 inner_offset = next_offset;
4511 } else {
4512 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4513 inner_depth.increment()?;
4514 }
4515 let val_ref = self
4516 .bssid
4517 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
4518 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
4519 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4520 {
4521 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4522 }
4523 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4524 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4525 }
4526 }
4527
4528 next_offset += envelope_size;
4529
4530 while next_offset < end_offset {
4532 _next_ordinal_to_read += 1;
4533 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4534 next_offset += envelope_size;
4535 }
4536
4537 Ok(())
4538 }
4539 }
4540
4541 impl SupplicantStaNetworkSetKeyMgmtRequest {
4542 #[inline(always)]
4543 fn max_ordinal_present(&self) -> u64 {
4544 if let Some(_) = self.key_mgmt_mask {
4545 return 1;
4546 }
4547 0
4548 }
4549 }
4550
4551 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
4552 type Borrowed<'a> = &'a Self;
4553 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4554 value
4555 }
4556 }
4557
4558 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetKeyMgmtRequest {
4559 type Owned = Self;
4560
4561 #[inline(always)]
4562 fn inline_align(_context: fidl::encoding::Context) -> usize {
4563 8
4564 }
4565
4566 #[inline(always)]
4567 fn inline_size(_context: fidl::encoding::Context) -> usize {
4568 16
4569 }
4570 }
4571
4572 unsafe impl<D: fidl::encoding::ResourceDialect>
4573 fidl::encoding::Encode<SupplicantStaNetworkSetKeyMgmtRequest, D>
4574 for &SupplicantStaNetworkSetKeyMgmtRequest
4575 {
4576 unsafe fn encode(
4577 self,
4578 encoder: &mut fidl::encoding::Encoder<'_, D>,
4579 offset: usize,
4580 mut depth: fidl::encoding::Depth,
4581 ) -> fidl::Result<()> {
4582 encoder.debug_check_bounds::<SupplicantStaNetworkSetKeyMgmtRequest>(offset);
4583 let max_ordinal: u64 = self.max_ordinal_present();
4585 encoder.write_num(max_ordinal, offset);
4586 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4587 if max_ordinal == 0 {
4589 return Ok(());
4590 }
4591 depth.increment()?;
4592 let envelope_size = 8;
4593 let bytes_len = max_ordinal as usize * envelope_size;
4594 #[allow(unused_variables)]
4595 let offset = encoder.out_of_line_offset(bytes_len);
4596 let mut _prev_end_offset: usize = 0;
4597 if 1 > max_ordinal {
4598 return Ok(());
4599 }
4600
4601 let cur_offset: usize = (1 - 1) * envelope_size;
4604
4605 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4607
4608 fidl::encoding::encode_in_envelope_optional::<KeyMgmtMask, D>(
4613 self.key_mgmt_mask
4614 .as_ref()
4615 .map(<KeyMgmtMask as fidl::encoding::ValueTypeMarker>::borrow),
4616 encoder,
4617 offset + cur_offset,
4618 depth,
4619 )?;
4620
4621 _prev_end_offset = cur_offset + envelope_size;
4622
4623 Ok(())
4624 }
4625 }
4626
4627 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4628 for SupplicantStaNetworkSetKeyMgmtRequest
4629 {
4630 #[inline(always)]
4631 fn new_empty() -> Self {
4632 Self::default()
4633 }
4634
4635 unsafe fn decode(
4636 &mut self,
4637 decoder: &mut fidl::encoding::Decoder<'_, D>,
4638 offset: usize,
4639 mut depth: fidl::encoding::Depth,
4640 ) -> fidl::Result<()> {
4641 decoder.debug_check_bounds::<Self>(offset);
4642 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4643 None => return Err(fidl::Error::NotNullable),
4644 Some(len) => len,
4645 };
4646 if len == 0 {
4648 return Ok(());
4649 };
4650 depth.increment()?;
4651 let envelope_size = 8;
4652 let bytes_len = len * envelope_size;
4653 let offset = decoder.out_of_line_offset(bytes_len)?;
4654 let mut _next_ordinal_to_read = 0;
4656 let mut next_offset = offset;
4657 let end_offset = offset + bytes_len;
4658 _next_ordinal_to_read += 1;
4659 if next_offset >= end_offset {
4660 return Ok(());
4661 }
4662
4663 while _next_ordinal_to_read < 1 {
4665 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4666 _next_ordinal_to_read += 1;
4667 next_offset += envelope_size;
4668 }
4669
4670 let next_out_of_line = decoder.next_out_of_line();
4671 let handles_before = decoder.remaining_handles();
4672 if let Some((inlined, num_bytes, num_handles)) =
4673 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4674 {
4675 let member_inline_size =
4676 <KeyMgmtMask as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4677 if inlined != (member_inline_size <= 4) {
4678 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4679 }
4680 let inner_offset;
4681 let mut inner_depth = depth.clone();
4682 if inlined {
4683 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4684 inner_offset = next_offset;
4685 } else {
4686 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4687 inner_depth.increment()?;
4688 }
4689 let val_ref =
4690 self.key_mgmt_mask.get_or_insert_with(|| fidl::new_empty!(KeyMgmtMask, D));
4691 fidl::decode!(KeyMgmtMask, D, val_ref, decoder, inner_offset, inner_depth)?;
4692 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4693 {
4694 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4695 }
4696 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4697 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4698 }
4699 }
4700
4701 next_offset += envelope_size;
4702
4703 while next_offset < end_offset {
4705 _next_ordinal_to_read += 1;
4706 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4707 next_offset += envelope_size;
4708 }
4709
4710 Ok(())
4711 }
4712 }
4713
4714 impl SupplicantStaNetworkSetPskPassphraseRequest {
4715 #[inline(always)]
4716 fn max_ordinal_present(&self) -> u64 {
4717 if let Some(_) = self.passphrase {
4718 return 1;
4719 }
4720 0
4721 }
4722 }
4723
4724 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
4725 type Borrowed<'a> = &'a Self;
4726 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4727 value
4728 }
4729 }
4730
4731 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
4732 type Owned = Self;
4733
4734 #[inline(always)]
4735 fn inline_align(_context: fidl::encoding::Context) -> usize {
4736 8
4737 }
4738
4739 #[inline(always)]
4740 fn inline_size(_context: fidl::encoding::Context) -> usize {
4741 16
4742 }
4743 }
4744
4745 unsafe impl<D: fidl::encoding::ResourceDialect>
4746 fidl::encoding::Encode<SupplicantStaNetworkSetPskPassphraseRequest, D>
4747 for &SupplicantStaNetworkSetPskPassphraseRequest
4748 {
4749 unsafe fn encode(
4750 self,
4751 encoder: &mut fidl::encoding::Encoder<'_, D>,
4752 offset: usize,
4753 mut depth: fidl::encoding::Depth,
4754 ) -> fidl::Result<()> {
4755 encoder.debug_check_bounds::<SupplicantStaNetworkSetPskPassphraseRequest>(offset);
4756 let max_ordinal: u64 = self.max_ordinal_present();
4758 encoder.write_num(max_ordinal, offset);
4759 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4760 if max_ordinal == 0 {
4762 return Ok(());
4763 }
4764 depth.increment()?;
4765 let envelope_size = 8;
4766 let bytes_len = max_ordinal as usize * envelope_size;
4767 #[allow(unused_variables)]
4768 let offset = encoder.out_of_line_offset(bytes_len);
4769 let mut _prev_end_offset: usize = 0;
4770 if 1 > max_ordinal {
4771 return Ok(());
4772 }
4773
4774 let cur_offset: usize = (1 - 1) * envelope_size;
4777
4778 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4780
4781 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4786 self.passphrase.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4787 encoder, offset + cur_offset, depth
4788 )?;
4789
4790 _prev_end_offset = cur_offset + envelope_size;
4791
4792 Ok(())
4793 }
4794 }
4795
4796 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4797 for SupplicantStaNetworkSetPskPassphraseRequest
4798 {
4799 #[inline(always)]
4800 fn new_empty() -> Self {
4801 Self::default()
4802 }
4803
4804 unsafe fn decode(
4805 &mut self,
4806 decoder: &mut fidl::encoding::Decoder<'_, D>,
4807 offset: usize,
4808 mut depth: fidl::encoding::Depth,
4809 ) -> fidl::Result<()> {
4810 decoder.debug_check_bounds::<Self>(offset);
4811 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4812 None => return Err(fidl::Error::NotNullable),
4813 Some(len) => len,
4814 };
4815 if len == 0 {
4817 return Ok(());
4818 };
4819 depth.increment()?;
4820 let envelope_size = 8;
4821 let bytes_len = len * envelope_size;
4822 let offset = decoder.out_of_line_offset(bytes_len)?;
4823 let mut _next_ordinal_to_read = 0;
4825 let mut next_offset = offset;
4826 let end_offset = offset + bytes_len;
4827 _next_ordinal_to_read += 1;
4828 if next_offset >= end_offset {
4829 return Ok(());
4830 }
4831
4832 while _next_ordinal_to_read < 1 {
4834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4835 _next_ordinal_to_read += 1;
4836 next_offset += envelope_size;
4837 }
4838
4839 let next_out_of_line = decoder.next_out_of_line();
4840 let handles_before = decoder.remaining_handles();
4841 if let Some((inlined, num_bytes, num_handles)) =
4842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4843 {
4844 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4845 if inlined != (member_inline_size <= 4) {
4846 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4847 }
4848 let inner_offset;
4849 let mut inner_depth = depth.clone();
4850 if inlined {
4851 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4852 inner_offset = next_offset;
4853 } else {
4854 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4855 inner_depth.increment()?;
4856 }
4857 let val_ref = self.passphrase.get_or_insert_with(|| {
4858 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4859 });
4860 fidl::decode!(
4861 fidl::encoding::UnboundedVector<u8>,
4862 D,
4863 val_ref,
4864 decoder,
4865 inner_offset,
4866 inner_depth
4867 )?;
4868 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4869 {
4870 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4871 }
4872 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4873 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4874 }
4875 }
4876
4877 next_offset += envelope_size;
4878
4879 while next_offset < end_offset {
4881 _next_ordinal_to_read += 1;
4882 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4883 next_offset += envelope_size;
4884 }
4885
4886 Ok(())
4887 }
4888 }
4889
4890 impl SupplicantStaNetworkSetSaePasswordRequest {
4891 #[inline(always)]
4892 fn max_ordinal_present(&self) -> u64 {
4893 if let Some(_) = self.password {
4894 return 1;
4895 }
4896 0
4897 }
4898 }
4899
4900 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
4901 type Borrowed<'a> = &'a Self;
4902 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4903 value
4904 }
4905 }
4906
4907 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSaePasswordRequest {
4908 type Owned = Self;
4909
4910 #[inline(always)]
4911 fn inline_align(_context: fidl::encoding::Context) -> usize {
4912 8
4913 }
4914
4915 #[inline(always)]
4916 fn inline_size(_context: fidl::encoding::Context) -> usize {
4917 16
4918 }
4919 }
4920
4921 unsafe impl<D: fidl::encoding::ResourceDialect>
4922 fidl::encoding::Encode<SupplicantStaNetworkSetSaePasswordRequest, D>
4923 for &SupplicantStaNetworkSetSaePasswordRequest
4924 {
4925 unsafe fn encode(
4926 self,
4927 encoder: &mut fidl::encoding::Encoder<'_, D>,
4928 offset: usize,
4929 mut depth: fidl::encoding::Depth,
4930 ) -> fidl::Result<()> {
4931 encoder.debug_check_bounds::<SupplicantStaNetworkSetSaePasswordRequest>(offset);
4932 let max_ordinal: u64 = self.max_ordinal_present();
4934 encoder.write_num(max_ordinal, offset);
4935 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4936 if max_ordinal == 0 {
4938 return Ok(());
4939 }
4940 depth.increment()?;
4941 let envelope_size = 8;
4942 let bytes_len = max_ordinal as usize * envelope_size;
4943 #[allow(unused_variables)]
4944 let offset = encoder.out_of_line_offset(bytes_len);
4945 let mut _prev_end_offset: usize = 0;
4946 if 1 > max_ordinal {
4947 return Ok(());
4948 }
4949
4950 let cur_offset: usize = (1 - 1) * envelope_size;
4953
4954 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4956
4957 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
4962 self.password.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
4963 encoder, offset + cur_offset, depth
4964 )?;
4965
4966 _prev_end_offset = cur_offset + envelope_size;
4967
4968 Ok(())
4969 }
4970 }
4971
4972 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4973 for SupplicantStaNetworkSetSaePasswordRequest
4974 {
4975 #[inline(always)]
4976 fn new_empty() -> Self {
4977 Self::default()
4978 }
4979
4980 unsafe fn decode(
4981 &mut self,
4982 decoder: &mut fidl::encoding::Decoder<'_, D>,
4983 offset: usize,
4984 mut depth: fidl::encoding::Depth,
4985 ) -> fidl::Result<()> {
4986 decoder.debug_check_bounds::<Self>(offset);
4987 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4988 None => return Err(fidl::Error::NotNullable),
4989 Some(len) => len,
4990 };
4991 if len == 0 {
4993 return Ok(());
4994 };
4995 depth.increment()?;
4996 let envelope_size = 8;
4997 let bytes_len = len * envelope_size;
4998 let offset = decoder.out_of_line_offset(bytes_len)?;
4999 let mut _next_ordinal_to_read = 0;
5001 let mut next_offset = offset;
5002 let end_offset = offset + bytes_len;
5003 _next_ordinal_to_read += 1;
5004 if next_offset >= end_offset {
5005 return Ok(());
5006 }
5007
5008 while _next_ordinal_to_read < 1 {
5010 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5011 _next_ordinal_to_read += 1;
5012 next_offset += envelope_size;
5013 }
5014
5015 let next_out_of_line = decoder.next_out_of_line();
5016 let handles_before = decoder.remaining_handles();
5017 if let Some((inlined, num_bytes, num_handles)) =
5018 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5019 {
5020 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5021 if inlined != (member_inline_size <= 4) {
5022 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5023 }
5024 let inner_offset;
5025 let mut inner_depth = depth.clone();
5026 if inlined {
5027 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5028 inner_offset = next_offset;
5029 } else {
5030 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5031 inner_depth.increment()?;
5032 }
5033 let val_ref = self.password.get_or_insert_with(|| {
5034 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5035 });
5036 fidl::decode!(
5037 fidl::encoding::UnboundedVector<u8>,
5038 D,
5039 val_ref,
5040 decoder,
5041 inner_offset,
5042 inner_depth
5043 )?;
5044 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5045 {
5046 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5047 }
5048 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5049 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5050 }
5051 }
5052
5053 next_offset += envelope_size;
5054
5055 while next_offset < end_offset {
5057 _next_ordinal_to_read += 1;
5058 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5059 next_offset += envelope_size;
5060 }
5061
5062 Ok(())
5063 }
5064 }
5065
5066 impl SupplicantStaNetworkSetSsidRequest {
5067 #[inline(always)]
5068 fn max_ordinal_present(&self) -> u64 {
5069 if let Some(_) = self.ssid {
5070 return 1;
5071 }
5072 0
5073 }
5074 }
5075
5076 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSsidRequest {
5077 type Borrowed<'a> = &'a Self;
5078 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5079 value
5080 }
5081 }
5082
5083 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSsidRequest {
5084 type Owned = Self;
5085
5086 #[inline(always)]
5087 fn inline_align(_context: fidl::encoding::Context) -> usize {
5088 8
5089 }
5090
5091 #[inline(always)]
5092 fn inline_size(_context: fidl::encoding::Context) -> usize {
5093 16
5094 }
5095 }
5096
5097 unsafe impl<D: fidl::encoding::ResourceDialect>
5098 fidl::encoding::Encode<SupplicantStaNetworkSetSsidRequest, D>
5099 for &SupplicantStaNetworkSetSsidRequest
5100 {
5101 unsafe fn encode(
5102 self,
5103 encoder: &mut fidl::encoding::Encoder<'_, D>,
5104 offset: usize,
5105 mut depth: fidl::encoding::Depth,
5106 ) -> fidl::Result<()> {
5107 encoder.debug_check_bounds::<SupplicantStaNetworkSetSsidRequest>(offset);
5108 let max_ordinal: u64 = self.max_ordinal_present();
5110 encoder.write_num(max_ordinal, offset);
5111 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5112 if max_ordinal == 0 {
5114 return Ok(());
5115 }
5116 depth.increment()?;
5117 let envelope_size = 8;
5118 let bytes_len = max_ordinal as usize * envelope_size;
5119 #[allow(unused_variables)]
5120 let offset = encoder.out_of_line_offset(bytes_len);
5121 let mut _prev_end_offset: usize = 0;
5122 if 1 > max_ordinal {
5123 return Ok(());
5124 }
5125
5126 let cur_offset: usize = (1 - 1) * envelope_size;
5129
5130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5132
5133 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
5138 self.ssid.as_ref().map(
5139 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
5140 ),
5141 encoder,
5142 offset + cur_offset,
5143 depth,
5144 )?;
5145
5146 _prev_end_offset = cur_offset + envelope_size;
5147
5148 Ok(())
5149 }
5150 }
5151
5152 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5153 for SupplicantStaNetworkSetSsidRequest
5154 {
5155 #[inline(always)]
5156 fn new_empty() -> Self {
5157 Self::default()
5158 }
5159
5160 unsafe fn decode(
5161 &mut self,
5162 decoder: &mut fidl::encoding::Decoder<'_, D>,
5163 offset: usize,
5164 mut depth: fidl::encoding::Depth,
5165 ) -> fidl::Result<()> {
5166 decoder.debug_check_bounds::<Self>(offset);
5167 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5168 None => return Err(fidl::Error::NotNullable),
5169 Some(len) => len,
5170 };
5171 if len == 0 {
5173 return Ok(());
5174 };
5175 depth.increment()?;
5176 let envelope_size = 8;
5177 let bytes_len = len * envelope_size;
5178 let offset = decoder.out_of_line_offset(bytes_len)?;
5179 let mut _next_ordinal_to_read = 0;
5181 let mut next_offset = offset;
5182 let end_offset = offset + bytes_len;
5183 _next_ordinal_to_read += 1;
5184 if next_offset >= end_offset {
5185 return Ok(());
5186 }
5187
5188 while _next_ordinal_to_read < 1 {
5190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5191 _next_ordinal_to_read += 1;
5192 next_offset += envelope_size;
5193 }
5194
5195 let next_out_of_line = decoder.next_out_of_line();
5196 let handles_before = decoder.remaining_handles();
5197 if let Some((inlined, num_bytes, num_handles)) =
5198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5199 {
5200 let member_inline_size =
5201 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
5202 decoder.context,
5203 );
5204 if inlined != (member_inline_size <= 4) {
5205 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5206 }
5207 let inner_offset;
5208 let mut inner_depth = depth.clone();
5209 if inlined {
5210 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5211 inner_offset = next_offset;
5212 } else {
5213 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5214 inner_depth.increment()?;
5215 }
5216 let val_ref = self
5217 .ssid
5218 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
5219 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
5220 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5221 {
5222 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5223 }
5224 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5225 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5226 }
5227 }
5228
5229 next_offset += envelope_size;
5230
5231 while next_offset < end_offset {
5233 _next_ordinal_to_read += 1;
5234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5235 next_offset += envelope_size;
5236 }
5237
5238 Ok(())
5239 }
5240 }
5241
5242 impl SupplicantStaNetworkSetWepKeyRequest {
5243 #[inline(always)]
5244 fn max_ordinal_present(&self) -> u64 {
5245 if let Some(_) = self.key_idx {
5246 return 2;
5247 }
5248 if let Some(_) = self.key {
5249 return 1;
5250 }
5251 0
5252 }
5253 }
5254
5255 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepKeyRequest {
5256 type Borrowed<'a> = &'a Self;
5257 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5258 value
5259 }
5260 }
5261
5262 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepKeyRequest {
5263 type Owned = Self;
5264
5265 #[inline(always)]
5266 fn inline_align(_context: fidl::encoding::Context) -> usize {
5267 8
5268 }
5269
5270 #[inline(always)]
5271 fn inline_size(_context: fidl::encoding::Context) -> usize {
5272 16
5273 }
5274 }
5275
5276 unsafe impl<D: fidl::encoding::ResourceDialect>
5277 fidl::encoding::Encode<SupplicantStaNetworkSetWepKeyRequest, D>
5278 for &SupplicantStaNetworkSetWepKeyRequest
5279 {
5280 unsafe fn encode(
5281 self,
5282 encoder: &mut fidl::encoding::Encoder<'_, D>,
5283 offset: usize,
5284 mut depth: fidl::encoding::Depth,
5285 ) -> fidl::Result<()> {
5286 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepKeyRequest>(offset);
5287 let max_ordinal: u64 = self.max_ordinal_present();
5289 encoder.write_num(max_ordinal, offset);
5290 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5291 if max_ordinal == 0 {
5293 return Ok(());
5294 }
5295 depth.increment()?;
5296 let envelope_size = 8;
5297 let bytes_len = max_ordinal as usize * envelope_size;
5298 #[allow(unused_variables)]
5299 let offset = encoder.out_of_line_offset(bytes_len);
5300 let mut _prev_end_offset: usize = 0;
5301 if 1 > max_ordinal {
5302 return Ok(());
5303 }
5304
5305 let cur_offset: usize = (1 - 1) * envelope_size;
5308
5309 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5311
5312 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
5317 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
5318 encoder, offset + cur_offset, depth
5319 )?;
5320
5321 _prev_end_offset = cur_offset + envelope_size;
5322 if 2 > max_ordinal {
5323 return Ok(());
5324 }
5325
5326 let cur_offset: usize = (2 - 1) * envelope_size;
5329
5330 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5332
5333 fidl::encoding::encode_in_envelope_optional::<i32, D>(
5338 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
5339 encoder,
5340 offset + cur_offset,
5341 depth,
5342 )?;
5343
5344 _prev_end_offset = cur_offset + envelope_size;
5345
5346 Ok(())
5347 }
5348 }
5349
5350 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5351 for SupplicantStaNetworkSetWepKeyRequest
5352 {
5353 #[inline(always)]
5354 fn new_empty() -> Self {
5355 Self::default()
5356 }
5357
5358 unsafe fn decode(
5359 &mut self,
5360 decoder: &mut fidl::encoding::Decoder<'_, D>,
5361 offset: usize,
5362 mut depth: fidl::encoding::Depth,
5363 ) -> fidl::Result<()> {
5364 decoder.debug_check_bounds::<Self>(offset);
5365 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5366 None => return Err(fidl::Error::NotNullable),
5367 Some(len) => len,
5368 };
5369 if len == 0 {
5371 return Ok(());
5372 };
5373 depth.increment()?;
5374 let envelope_size = 8;
5375 let bytes_len = len * envelope_size;
5376 let offset = decoder.out_of_line_offset(bytes_len)?;
5377 let mut _next_ordinal_to_read = 0;
5379 let mut next_offset = offset;
5380 let end_offset = offset + bytes_len;
5381 _next_ordinal_to_read += 1;
5382 if next_offset >= end_offset {
5383 return Ok(());
5384 }
5385
5386 while _next_ordinal_to_read < 1 {
5388 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5389 _next_ordinal_to_read += 1;
5390 next_offset += envelope_size;
5391 }
5392
5393 let next_out_of_line = decoder.next_out_of_line();
5394 let handles_before = decoder.remaining_handles();
5395 if let Some((inlined, num_bytes, num_handles)) =
5396 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5397 {
5398 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5399 if inlined != (member_inline_size <= 4) {
5400 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5401 }
5402 let inner_offset;
5403 let mut inner_depth = depth.clone();
5404 if inlined {
5405 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5406 inner_offset = next_offset;
5407 } else {
5408 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5409 inner_depth.increment()?;
5410 }
5411 let val_ref = self.key.get_or_insert_with(|| {
5412 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
5413 });
5414 fidl::decode!(
5415 fidl::encoding::UnboundedVector<u8>,
5416 D,
5417 val_ref,
5418 decoder,
5419 inner_offset,
5420 inner_depth
5421 )?;
5422 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5423 {
5424 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5425 }
5426 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5427 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5428 }
5429 }
5430
5431 next_offset += envelope_size;
5432 _next_ordinal_to_read += 1;
5433 if next_offset >= end_offset {
5434 return Ok(());
5435 }
5436
5437 while _next_ordinal_to_read < 2 {
5439 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5440 _next_ordinal_to_read += 1;
5441 next_offset += envelope_size;
5442 }
5443
5444 let next_out_of_line = decoder.next_out_of_line();
5445 let handles_before = decoder.remaining_handles();
5446 if let Some((inlined, num_bytes, num_handles)) =
5447 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5448 {
5449 let member_inline_size =
5450 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5451 if inlined != (member_inline_size <= 4) {
5452 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5453 }
5454 let inner_offset;
5455 let mut inner_depth = depth.clone();
5456 if inlined {
5457 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5458 inner_offset = next_offset;
5459 } else {
5460 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5461 inner_depth.increment()?;
5462 }
5463 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
5464 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
5465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5466 {
5467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5468 }
5469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5471 }
5472 }
5473
5474 next_offset += envelope_size;
5475
5476 while next_offset < end_offset {
5478 _next_ordinal_to_read += 1;
5479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5480 next_offset += envelope_size;
5481 }
5482
5483 Ok(())
5484 }
5485 }
5486
5487 impl SupplicantStaNetworkSetWepTxKeyIdxRequest {
5488 #[inline(always)]
5489 fn max_ordinal_present(&self) -> u64 {
5490 if let Some(_) = self.key_idx {
5491 return 1;
5492 }
5493 0
5494 }
5495 }
5496
5497 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
5498 type Borrowed<'a> = &'a Self;
5499 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5500 value
5501 }
5502 }
5503
5504 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
5505 type Owned = Self;
5506
5507 #[inline(always)]
5508 fn inline_align(_context: fidl::encoding::Context) -> usize {
5509 8
5510 }
5511
5512 #[inline(always)]
5513 fn inline_size(_context: fidl::encoding::Context) -> usize {
5514 16
5515 }
5516 }
5517
5518 unsafe impl<D: fidl::encoding::ResourceDialect>
5519 fidl::encoding::Encode<SupplicantStaNetworkSetWepTxKeyIdxRequest, D>
5520 for &SupplicantStaNetworkSetWepTxKeyIdxRequest
5521 {
5522 unsafe fn encode(
5523 self,
5524 encoder: &mut fidl::encoding::Encoder<'_, D>,
5525 offset: usize,
5526 mut depth: fidl::encoding::Depth,
5527 ) -> fidl::Result<()> {
5528 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepTxKeyIdxRequest>(offset);
5529 let max_ordinal: u64 = self.max_ordinal_present();
5531 encoder.write_num(max_ordinal, offset);
5532 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5533 if max_ordinal == 0 {
5535 return Ok(());
5536 }
5537 depth.increment()?;
5538 let envelope_size = 8;
5539 let bytes_len = max_ordinal as usize * envelope_size;
5540 #[allow(unused_variables)]
5541 let offset = encoder.out_of_line_offset(bytes_len);
5542 let mut _prev_end_offset: usize = 0;
5543 if 1 > max_ordinal {
5544 return Ok(());
5545 }
5546
5547 let cur_offset: usize = (1 - 1) * envelope_size;
5550
5551 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5553
5554 fidl::encoding::encode_in_envelope_optional::<i32, D>(
5559 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
5560 encoder,
5561 offset + cur_offset,
5562 depth,
5563 )?;
5564
5565 _prev_end_offset = cur_offset + envelope_size;
5566
5567 Ok(())
5568 }
5569 }
5570
5571 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5572 for SupplicantStaNetworkSetWepTxKeyIdxRequest
5573 {
5574 #[inline(always)]
5575 fn new_empty() -> Self {
5576 Self::default()
5577 }
5578
5579 unsafe fn decode(
5580 &mut self,
5581 decoder: &mut fidl::encoding::Decoder<'_, D>,
5582 offset: usize,
5583 mut depth: fidl::encoding::Depth,
5584 ) -> fidl::Result<()> {
5585 decoder.debug_check_bounds::<Self>(offset);
5586 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5587 None => return Err(fidl::Error::NotNullable),
5588 Some(len) => len,
5589 };
5590 if len == 0 {
5592 return Ok(());
5593 };
5594 depth.increment()?;
5595 let envelope_size = 8;
5596 let bytes_len = len * envelope_size;
5597 let offset = decoder.out_of_line_offset(bytes_len)?;
5598 let mut _next_ordinal_to_read = 0;
5600 let mut next_offset = offset;
5601 let end_offset = offset + bytes_len;
5602 _next_ordinal_to_read += 1;
5603 if next_offset >= end_offset {
5604 return Ok(());
5605 }
5606
5607 while _next_ordinal_to_read < 1 {
5609 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5610 _next_ordinal_to_read += 1;
5611 next_offset += envelope_size;
5612 }
5613
5614 let next_out_of_line = decoder.next_out_of_line();
5615 let handles_before = decoder.remaining_handles();
5616 if let Some((inlined, num_bytes, num_handles)) =
5617 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5618 {
5619 let member_inline_size =
5620 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5621 if inlined != (member_inline_size <= 4) {
5622 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5623 }
5624 let inner_offset;
5625 let mut inner_depth = depth.clone();
5626 if inlined {
5627 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5628 inner_offset = next_offset;
5629 } else {
5630 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5631 inner_depth.increment()?;
5632 }
5633 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
5634 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
5635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5636 {
5637 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5638 }
5639 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5640 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5641 }
5642 }
5643
5644 next_offset += envelope_size;
5645
5646 while next_offset < end_offset {
5648 _next_ordinal_to_read += 1;
5649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5650 next_offset += envelope_size;
5651 }
5652
5653 Ok(())
5654 }
5655 }
5656
5657 impl WifiChipGetAvailableModesResponse {
5658 #[inline(always)]
5659 fn max_ordinal_present(&self) -> u64 {
5660 if let Some(_) = self.chip_modes {
5661 return 1;
5662 }
5663 0
5664 }
5665 }
5666
5667 impl fidl::encoding::ValueTypeMarker for WifiChipGetAvailableModesResponse {
5668 type Borrowed<'a> = &'a Self;
5669 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5670 value
5671 }
5672 }
5673
5674 unsafe impl fidl::encoding::TypeMarker for WifiChipGetAvailableModesResponse {
5675 type Owned = Self;
5676
5677 #[inline(always)]
5678 fn inline_align(_context: fidl::encoding::Context) -> usize {
5679 8
5680 }
5681
5682 #[inline(always)]
5683 fn inline_size(_context: fidl::encoding::Context) -> usize {
5684 16
5685 }
5686 }
5687
5688 unsafe impl<D: fidl::encoding::ResourceDialect>
5689 fidl::encoding::Encode<WifiChipGetAvailableModesResponse, D>
5690 for &WifiChipGetAvailableModesResponse
5691 {
5692 unsafe fn encode(
5693 self,
5694 encoder: &mut fidl::encoding::Encoder<'_, D>,
5695 offset: usize,
5696 mut depth: fidl::encoding::Depth,
5697 ) -> fidl::Result<()> {
5698 encoder.debug_check_bounds::<WifiChipGetAvailableModesResponse>(offset);
5699 let max_ordinal: u64 = self.max_ordinal_present();
5701 encoder.write_num(max_ordinal, offset);
5702 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5703 if max_ordinal == 0 {
5705 return Ok(());
5706 }
5707 depth.increment()?;
5708 let envelope_size = 8;
5709 let bytes_len = max_ordinal as usize * envelope_size;
5710 #[allow(unused_variables)]
5711 let offset = encoder.out_of_line_offset(bytes_len);
5712 let mut _prev_end_offset: usize = 0;
5713 if 1 > max_ordinal {
5714 return Ok(());
5715 }
5716
5717 let cur_offset: usize = (1 - 1) * envelope_size;
5720
5721 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5723
5724 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipMode>, D>(
5729 self.chip_modes.as_ref().map(<fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::ValueTypeMarker>::borrow),
5730 encoder, offset + cur_offset, depth
5731 )?;
5732
5733 _prev_end_offset = cur_offset + envelope_size;
5734
5735 Ok(())
5736 }
5737 }
5738
5739 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5740 for WifiChipGetAvailableModesResponse
5741 {
5742 #[inline(always)]
5743 fn new_empty() -> Self {
5744 Self::default()
5745 }
5746
5747 unsafe fn decode(
5748 &mut self,
5749 decoder: &mut fidl::encoding::Decoder<'_, D>,
5750 offset: usize,
5751 mut depth: fidl::encoding::Depth,
5752 ) -> fidl::Result<()> {
5753 decoder.debug_check_bounds::<Self>(offset);
5754 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5755 None => return Err(fidl::Error::NotNullable),
5756 Some(len) => len,
5757 };
5758 if len == 0 {
5760 return Ok(());
5761 };
5762 depth.increment()?;
5763 let envelope_size = 8;
5764 let bytes_len = len * envelope_size;
5765 let offset = decoder.out_of_line_offset(bytes_len)?;
5766 let mut _next_ordinal_to_read = 0;
5768 let mut next_offset = offset;
5769 let end_offset = offset + bytes_len;
5770 _next_ordinal_to_read += 1;
5771 if next_offset >= end_offset {
5772 return Ok(());
5773 }
5774
5775 while _next_ordinal_to_read < 1 {
5777 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5778 _next_ordinal_to_read += 1;
5779 next_offset += envelope_size;
5780 }
5781
5782 let next_out_of_line = decoder.next_out_of_line();
5783 let handles_before = decoder.remaining_handles();
5784 if let Some((inlined, num_bytes, num_handles)) =
5785 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5786 {
5787 let member_inline_size = <fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5788 if inlined != (member_inline_size <= 4) {
5789 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5790 }
5791 let inner_offset;
5792 let mut inner_depth = depth.clone();
5793 if inlined {
5794 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5795 inner_offset = next_offset;
5796 } else {
5797 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5798 inner_depth.increment()?;
5799 }
5800 let val_ref = self.chip_modes.get_or_insert_with(|| {
5801 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipMode>, D)
5802 });
5803 fidl::decode!(
5804 fidl::encoding::UnboundedVector<ChipMode>,
5805 D,
5806 val_ref,
5807 decoder,
5808 inner_offset,
5809 inner_depth
5810 )?;
5811 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5812 {
5813 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5814 }
5815 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5816 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5817 }
5818 }
5819
5820 next_offset += envelope_size;
5821
5822 while next_offset < end_offset {
5824 _next_ordinal_to_read += 1;
5825 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5826 next_offset += envelope_size;
5827 }
5828
5829 Ok(())
5830 }
5831 }
5832
5833 impl WifiChipGetCapabilitiesResponse {
5834 #[inline(always)]
5835 fn max_ordinal_present(&self) -> u64 {
5836 if let Some(_) = self.capabilities_mask {
5837 return 1;
5838 }
5839 0
5840 }
5841 }
5842
5843 impl fidl::encoding::ValueTypeMarker for WifiChipGetCapabilitiesResponse {
5844 type Borrowed<'a> = &'a Self;
5845 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5846 value
5847 }
5848 }
5849
5850 unsafe impl fidl::encoding::TypeMarker for WifiChipGetCapabilitiesResponse {
5851 type Owned = Self;
5852
5853 #[inline(always)]
5854 fn inline_align(_context: fidl::encoding::Context) -> usize {
5855 8
5856 }
5857
5858 #[inline(always)]
5859 fn inline_size(_context: fidl::encoding::Context) -> usize {
5860 16
5861 }
5862 }
5863
5864 unsafe impl<D: fidl::encoding::ResourceDialect>
5865 fidl::encoding::Encode<WifiChipGetCapabilitiesResponse, D>
5866 for &WifiChipGetCapabilitiesResponse
5867 {
5868 unsafe fn encode(
5869 self,
5870 encoder: &mut fidl::encoding::Encoder<'_, D>,
5871 offset: usize,
5872 mut depth: fidl::encoding::Depth,
5873 ) -> fidl::Result<()> {
5874 encoder.debug_check_bounds::<WifiChipGetCapabilitiesResponse>(offset);
5875 let max_ordinal: u64 = self.max_ordinal_present();
5877 encoder.write_num(max_ordinal, offset);
5878 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5879 if max_ordinal == 0 {
5881 return Ok(());
5882 }
5883 depth.increment()?;
5884 let envelope_size = 8;
5885 let bytes_len = max_ordinal as usize * envelope_size;
5886 #[allow(unused_variables)]
5887 let offset = encoder.out_of_line_offset(bytes_len);
5888 let mut _prev_end_offset: usize = 0;
5889 if 1 > max_ordinal {
5890 return Ok(());
5891 }
5892
5893 let cur_offset: usize = (1 - 1) * envelope_size;
5896
5897 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5899
5900 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5905 self.capabilities_mask
5906 .as_ref()
5907 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5908 encoder,
5909 offset + cur_offset,
5910 depth,
5911 )?;
5912
5913 _prev_end_offset = cur_offset + envelope_size;
5914
5915 Ok(())
5916 }
5917 }
5918
5919 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5920 for WifiChipGetCapabilitiesResponse
5921 {
5922 #[inline(always)]
5923 fn new_empty() -> Self {
5924 Self::default()
5925 }
5926
5927 unsafe fn decode(
5928 &mut self,
5929 decoder: &mut fidl::encoding::Decoder<'_, D>,
5930 offset: usize,
5931 mut depth: fidl::encoding::Depth,
5932 ) -> fidl::Result<()> {
5933 decoder.debug_check_bounds::<Self>(offset);
5934 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5935 None => return Err(fidl::Error::NotNullable),
5936 Some(len) => len,
5937 };
5938 if len == 0 {
5940 return Ok(());
5941 };
5942 depth.increment()?;
5943 let envelope_size = 8;
5944 let bytes_len = len * envelope_size;
5945 let offset = decoder.out_of_line_offset(bytes_len)?;
5946 let mut _next_ordinal_to_read = 0;
5948 let mut next_offset = offset;
5949 let end_offset = offset + bytes_len;
5950 _next_ordinal_to_read += 1;
5951 if next_offset >= end_offset {
5952 return Ok(());
5953 }
5954
5955 while _next_ordinal_to_read < 1 {
5957 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5958 _next_ordinal_to_read += 1;
5959 next_offset += envelope_size;
5960 }
5961
5962 let next_out_of_line = decoder.next_out_of_line();
5963 let handles_before = decoder.remaining_handles();
5964 if let Some((inlined, num_bytes, num_handles)) =
5965 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5966 {
5967 let member_inline_size =
5968 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5969 if inlined != (member_inline_size <= 4) {
5970 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5971 }
5972 let inner_offset;
5973 let mut inner_depth = depth.clone();
5974 if inlined {
5975 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5976 inner_offset = next_offset;
5977 } else {
5978 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5979 inner_depth.increment()?;
5980 }
5981 let val_ref =
5982 self.capabilities_mask.get_or_insert_with(|| fidl::new_empty!(u32, D));
5983 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5984 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5985 {
5986 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5987 }
5988 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5989 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5990 }
5991 }
5992
5993 next_offset += envelope_size;
5994
5995 while next_offset < end_offset {
5997 _next_ordinal_to_read += 1;
5998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5999 next_offset += envelope_size;
6000 }
6001
6002 Ok(())
6003 }
6004 }
6005
6006 impl WifiChipGetIdResponse {
6007 #[inline(always)]
6008 fn max_ordinal_present(&self) -> u64 {
6009 if let Some(_) = self.id {
6010 return 1;
6011 }
6012 0
6013 }
6014 }
6015
6016 impl fidl::encoding::ValueTypeMarker for WifiChipGetIdResponse {
6017 type Borrowed<'a> = &'a Self;
6018 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6019 value
6020 }
6021 }
6022
6023 unsafe impl fidl::encoding::TypeMarker for WifiChipGetIdResponse {
6024 type Owned = Self;
6025
6026 #[inline(always)]
6027 fn inline_align(_context: fidl::encoding::Context) -> usize {
6028 8
6029 }
6030
6031 #[inline(always)]
6032 fn inline_size(_context: fidl::encoding::Context) -> usize {
6033 16
6034 }
6035 }
6036
6037 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiChipGetIdResponse, D>
6038 for &WifiChipGetIdResponse
6039 {
6040 unsafe fn encode(
6041 self,
6042 encoder: &mut fidl::encoding::Encoder<'_, D>,
6043 offset: usize,
6044 mut depth: fidl::encoding::Depth,
6045 ) -> fidl::Result<()> {
6046 encoder.debug_check_bounds::<WifiChipGetIdResponse>(offset);
6047 let max_ordinal: u64 = self.max_ordinal_present();
6049 encoder.write_num(max_ordinal, offset);
6050 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6051 if max_ordinal == 0 {
6053 return Ok(());
6054 }
6055 depth.increment()?;
6056 let envelope_size = 8;
6057 let bytes_len = max_ordinal as usize * envelope_size;
6058 #[allow(unused_variables)]
6059 let offset = encoder.out_of_line_offset(bytes_len);
6060 let mut _prev_end_offset: usize = 0;
6061 if 1 > max_ordinal {
6062 return Ok(());
6063 }
6064
6065 let cur_offset: usize = (1 - 1) * envelope_size;
6068
6069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6071
6072 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6077 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6078 encoder,
6079 offset + cur_offset,
6080 depth,
6081 )?;
6082
6083 _prev_end_offset = cur_offset + envelope_size;
6084
6085 Ok(())
6086 }
6087 }
6088
6089 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiChipGetIdResponse {
6090 #[inline(always)]
6091 fn new_empty() -> Self {
6092 Self::default()
6093 }
6094
6095 unsafe fn decode(
6096 &mut self,
6097 decoder: &mut fidl::encoding::Decoder<'_, D>,
6098 offset: usize,
6099 mut depth: fidl::encoding::Depth,
6100 ) -> fidl::Result<()> {
6101 decoder.debug_check_bounds::<Self>(offset);
6102 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6103 None => return Err(fidl::Error::NotNullable),
6104 Some(len) => len,
6105 };
6106 if len == 0 {
6108 return Ok(());
6109 };
6110 depth.increment()?;
6111 let envelope_size = 8;
6112 let bytes_len = len * envelope_size;
6113 let offset = decoder.out_of_line_offset(bytes_len)?;
6114 let mut _next_ordinal_to_read = 0;
6116 let mut next_offset = offset;
6117 let end_offset = offset + bytes_len;
6118 _next_ordinal_to_read += 1;
6119 if next_offset >= end_offset {
6120 return Ok(());
6121 }
6122
6123 while _next_ordinal_to_read < 1 {
6125 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6126 _next_ordinal_to_read += 1;
6127 next_offset += envelope_size;
6128 }
6129
6130 let next_out_of_line = decoder.next_out_of_line();
6131 let handles_before = decoder.remaining_handles();
6132 if let Some((inlined, num_bytes, num_handles)) =
6133 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6134 {
6135 let member_inline_size =
6136 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6137 if inlined != (member_inline_size <= 4) {
6138 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6139 }
6140 let inner_offset;
6141 let mut inner_depth = depth.clone();
6142 if inlined {
6143 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6144 inner_offset = next_offset;
6145 } else {
6146 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6147 inner_depth.increment()?;
6148 }
6149 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
6150 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6152 {
6153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6154 }
6155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6157 }
6158 }
6159
6160 next_offset += envelope_size;
6161
6162 while next_offset < end_offset {
6164 _next_ordinal_to_read += 1;
6165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6166 next_offset += envelope_size;
6167 }
6168
6169 Ok(())
6170 }
6171 }
6172
6173 impl WifiChipGetModeResponse {
6174 #[inline(always)]
6175 fn max_ordinal_present(&self) -> u64 {
6176 if let Some(_) = self.mode {
6177 return 1;
6178 }
6179 0
6180 }
6181 }
6182
6183 impl fidl::encoding::ValueTypeMarker for WifiChipGetModeResponse {
6184 type Borrowed<'a> = &'a Self;
6185 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6186 value
6187 }
6188 }
6189
6190 unsafe impl fidl::encoding::TypeMarker for WifiChipGetModeResponse {
6191 type Owned = Self;
6192
6193 #[inline(always)]
6194 fn inline_align(_context: fidl::encoding::Context) -> usize {
6195 8
6196 }
6197
6198 #[inline(always)]
6199 fn inline_size(_context: fidl::encoding::Context) -> usize {
6200 16
6201 }
6202 }
6203
6204 unsafe impl<D: fidl::encoding::ResourceDialect>
6205 fidl::encoding::Encode<WifiChipGetModeResponse, D> for &WifiChipGetModeResponse
6206 {
6207 unsafe fn encode(
6208 self,
6209 encoder: &mut fidl::encoding::Encoder<'_, D>,
6210 offset: usize,
6211 mut depth: fidl::encoding::Depth,
6212 ) -> fidl::Result<()> {
6213 encoder.debug_check_bounds::<WifiChipGetModeResponse>(offset);
6214 let max_ordinal: u64 = self.max_ordinal_present();
6216 encoder.write_num(max_ordinal, offset);
6217 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6218 if max_ordinal == 0 {
6220 return Ok(());
6221 }
6222 depth.increment()?;
6223 let envelope_size = 8;
6224 let bytes_len = max_ordinal as usize * envelope_size;
6225 #[allow(unused_variables)]
6226 let offset = encoder.out_of_line_offset(bytes_len);
6227 let mut _prev_end_offset: usize = 0;
6228 if 1 > max_ordinal {
6229 return Ok(());
6230 }
6231
6232 let cur_offset: usize = (1 - 1) * envelope_size;
6235
6236 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6238
6239 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6244 self.mode.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6245 encoder,
6246 offset + cur_offset,
6247 depth,
6248 )?;
6249
6250 _prev_end_offset = cur_offset + envelope_size;
6251
6252 Ok(())
6253 }
6254 }
6255
6256 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6257 for WifiChipGetModeResponse
6258 {
6259 #[inline(always)]
6260 fn new_empty() -> Self {
6261 Self::default()
6262 }
6263
6264 unsafe fn decode(
6265 &mut self,
6266 decoder: &mut fidl::encoding::Decoder<'_, D>,
6267 offset: usize,
6268 mut depth: fidl::encoding::Depth,
6269 ) -> fidl::Result<()> {
6270 decoder.debug_check_bounds::<Self>(offset);
6271 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6272 None => return Err(fidl::Error::NotNullable),
6273 Some(len) => len,
6274 };
6275 if len == 0 {
6277 return Ok(());
6278 };
6279 depth.increment()?;
6280 let envelope_size = 8;
6281 let bytes_len = len * envelope_size;
6282 let offset = decoder.out_of_line_offset(bytes_len)?;
6283 let mut _next_ordinal_to_read = 0;
6285 let mut next_offset = offset;
6286 let end_offset = offset + bytes_len;
6287 _next_ordinal_to_read += 1;
6288 if next_offset >= end_offset {
6289 return Ok(());
6290 }
6291
6292 while _next_ordinal_to_read < 1 {
6294 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6295 _next_ordinal_to_read += 1;
6296 next_offset += envelope_size;
6297 }
6298
6299 let next_out_of_line = decoder.next_out_of_line();
6300 let handles_before = decoder.remaining_handles();
6301 if let Some((inlined, num_bytes, num_handles)) =
6302 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6303 {
6304 let member_inline_size =
6305 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6306 if inlined != (member_inline_size <= 4) {
6307 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6308 }
6309 let inner_offset;
6310 let mut inner_depth = depth.clone();
6311 if inlined {
6312 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6313 inner_offset = next_offset;
6314 } else {
6315 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6316 inner_depth.increment()?;
6317 }
6318 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(u32, D));
6319 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6320 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6321 {
6322 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6323 }
6324 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6325 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6326 }
6327 }
6328
6329 next_offset += envelope_size;
6330
6331 while next_offset < end_offset {
6333 _next_ordinal_to_read += 1;
6334 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6335 next_offset += envelope_size;
6336 }
6337
6338 Ok(())
6339 }
6340 }
6341
6342 impl WifiChipGetStaIfaceNamesResponse {
6343 #[inline(always)]
6344 fn max_ordinal_present(&self) -> u64 {
6345 if let Some(_) = self.iface_names {
6346 return 1;
6347 }
6348 0
6349 }
6350 }
6351
6352 impl fidl::encoding::ValueTypeMarker for WifiChipGetStaIfaceNamesResponse {
6353 type Borrowed<'a> = &'a Self;
6354 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6355 value
6356 }
6357 }
6358
6359 unsafe impl fidl::encoding::TypeMarker for WifiChipGetStaIfaceNamesResponse {
6360 type Owned = Self;
6361
6362 #[inline(always)]
6363 fn inline_align(_context: fidl::encoding::Context) -> usize {
6364 8
6365 }
6366
6367 #[inline(always)]
6368 fn inline_size(_context: fidl::encoding::Context) -> usize {
6369 16
6370 }
6371 }
6372
6373 unsafe impl<D: fidl::encoding::ResourceDialect>
6374 fidl::encoding::Encode<WifiChipGetStaIfaceNamesResponse, D>
6375 for &WifiChipGetStaIfaceNamesResponse
6376 {
6377 unsafe fn encode(
6378 self,
6379 encoder: &mut fidl::encoding::Encoder<'_, D>,
6380 offset: usize,
6381 mut depth: fidl::encoding::Depth,
6382 ) -> fidl::Result<()> {
6383 encoder.debug_check_bounds::<WifiChipGetStaIfaceNamesResponse>(offset);
6384 let max_ordinal: u64 = self.max_ordinal_present();
6386 encoder.write_num(max_ordinal, offset);
6387 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6388 if max_ordinal == 0 {
6390 return Ok(());
6391 }
6392 depth.increment()?;
6393 let envelope_size = 8;
6394 let bytes_len = max_ordinal as usize * envelope_size;
6395 #[allow(unused_variables)]
6396 let offset = encoder.out_of_line_offset(bytes_len);
6397 let mut _prev_end_offset: usize = 0;
6398 if 1 > max_ordinal {
6399 return Ok(());
6400 }
6401
6402 let cur_offset: usize = (1 - 1) * envelope_size;
6405
6406 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6408
6409 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>, D>(
6414 self.iface_names.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>> as fidl::encoding::ValueTypeMarker>::borrow),
6415 encoder, offset + cur_offset, depth
6416 )?;
6417
6418 _prev_end_offset = cur_offset + envelope_size;
6419
6420 Ok(())
6421 }
6422 }
6423
6424 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6425 for WifiChipGetStaIfaceNamesResponse
6426 {
6427 #[inline(always)]
6428 fn new_empty() -> Self {
6429 Self::default()
6430 }
6431
6432 unsafe fn decode(
6433 &mut self,
6434 decoder: &mut fidl::encoding::Decoder<'_, D>,
6435 offset: usize,
6436 mut depth: fidl::encoding::Depth,
6437 ) -> fidl::Result<()> {
6438 decoder.debug_check_bounds::<Self>(offset);
6439 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6440 None => return Err(fidl::Error::NotNullable),
6441 Some(len) => len,
6442 };
6443 if len == 0 {
6445 return Ok(());
6446 };
6447 depth.increment()?;
6448 let envelope_size = 8;
6449 let bytes_len = len * envelope_size;
6450 let offset = decoder.out_of_line_offset(bytes_len)?;
6451 let mut _next_ordinal_to_read = 0;
6453 let mut next_offset = offset;
6454 let end_offset = offset + bytes_len;
6455 _next_ordinal_to_read += 1;
6456 if next_offset >= end_offset {
6457 return Ok(());
6458 }
6459
6460 while _next_ordinal_to_read < 1 {
6462 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6463 _next_ordinal_to_read += 1;
6464 next_offset += envelope_size;
6465 }
6466
6467 let next_out_of_line = decoder.next_out_of_line();
6468 let handles_before = decoder.remaining_handles();
6469 if let Some((inlined, num_bytes, num_handles)) =
6470 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6471 {
6472 let member_inline_size = <fidl::encoding::UnboundedVector<
6473 fidl::encoding::BoundedString<16>,
6474 > as fidl::encoding::TypeMarker>::inline_size(
6475 decoder.context
6476 );
6477 if inlined != (member_inline_size <= 4) {
6478 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6479 }
6480 let inner_offset;
6481 let mut inner_depth = depth.clone();
6482 if inlined {
6483 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6484 inner_offset = next_offset;
6485 } else {
6486 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6487 inner_depth.increment()?;
6488 }
6489 let val_ref = self.iface_names.get_or_insert_with(|| {
6490 fidl::new_empty!(
6491 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
6492 D
6493 )
6494 });
6495 fidl::decode!(
6496 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
6497 D,
6498 val_ref,
6499 decoder,
6500 inner_offset,
6501 inner_depth
6502 )?;
6503 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6504 {
6505 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6506 }
6507 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6508 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6509 }
6510 }
6511
6512 next_offset += envelope_size;
6513
6514 while next_offset < end_offset {
6516 _next_ordinal_to_read += 1;
6517 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6518 next_offset += envelope_size;
6519 }
6520
6521 Ok(())
6522 }
6523 }
6524
6525 impl WifiStaIfaceInstallApfPacketFilterRequest {
6526 #[inline(always)]
6527 fn max_ordinal_present(&self) -> u64 {
6528 if let Some(_) = self.program {
6529 return 1;
6530 }
6531 0
6532 }
6533 }
6534
6535 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
6536 type Borrowed<'a> = &'a Self;
6537 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6538 value
6539 }
6540 }
6541
6542 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceInstallApfPacketFilterRequest {
6543 type Owned = Self;
6544
6545 #[inline(always)]
6546 fn inline_align(_context: fidl::encoding::Context) -> usize {
6547 8
6548 }
6549
6550 #[inline(always)]
6551 fn inline_size(_context: fidl::encoding::Context) -> usize {
6552 16
6553 }
6554 }
6555
6556 unsafe impl<D: fidl::encoding::ResourceDialect>
6557 fidl::encoding::Encode<WifiStaIfaceInstallApfPacketFilterRequest, D>
6558 for &WifiStaIfaceInstallApfPacketFilterRequest
6559 {
6560 unsafe fn encode(
6561 self,
6562 encoder: &mut fidl::encoding::Encoder<'_, D>,
6563 offset: usize,
6564 mut depth: fidl::encoding::Depth,
6565 ) -> fidl::Result<()> {
6566 encoder.debug_check_bounds::<WifiStaIfaceInstallApfPacketFilterRequest>(offset);
6567 let max_ordinal: u64 = self.max_ordinal_present();
6569 encoder.write_num(max_ordinal, offset);
6570 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6571 if max_ordinal == 0 {
6573 return Ok(());
6574 }
6575 depth.increment()?;
6576 let envelope_size = 8;
6577 let bytes_len = max_ordinal as usize * envelope_size;
6578 #[allow(unused_variables)]
6579 let offset = encoder.out_of_line_offset(bytes_len);
6580 let mut _prev_end_offset: usize = 0;
6581 if 1 > max_ordinal {
6582 return Ok(());
6583 }
6584
6585 let cur_offset: usize = (1 - 1) * envelope_size;
6588
6589 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6591
6592 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
6597 self.program.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
6598 encoder, offset + cur_offset, depth
6599 )?;
6600
6601 _prev_end_offset = cur_offset + envelope_size;
6602
6603 Ok(())
6604 }
6605 }
6606
6607 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6608 for WifiStaIfaceInstallApfPacketFilterRequest
6609 {
6610 #[inline(always)]
6611 fn new_empty() -> Self {
6612 Self::default()
6613 }
6614
6615 unsafe fn decode(
6616 &mut self,
6617 decoder: &mut fidl::encoding::Decoder<'_, D>,
6618 offset: usize,
6619 mut depth: fidl::encoding::Depth,
6620 ) -> fidl::Result<()> {
6621 decoder.debug_check_bounds::<Self>(offset);
6622 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6623 None => return Err(fidl::Error::NotNullable),
6624 Some(len) => len,
6625 };
6626 if len == 0 {
6628 return Ok(());
6629 };
6630 depth.increment()?;
6631 let envelope_size = 8;
6632 let bytes_len = len * envelope_size;
6633 let offset = decoder.out_of_line_offset(bytes_len)?;
6634 let mut _next_ordinal_to_read = 0;
6636 let mut next_offset = offset;
6637 let end_offset = offset + bytes_len;
6638 _next_ordinal_to_read += 1;
6639 if next_offset >= end_offset {
6640 return Ok(());
6641 }
6642
6643 while _next_ordinal_to_read < 1 {
6645 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6646 _next_ordinal_to_read += 1;
6647 next_offset += envelope_size;
6648 }
6649
6650 let next_out_of_line = decoder.next_out_of_line();
6651 let handles_before = decoder.remaining_handles();
6652 if let Some((inlined, num_bytes, num_handles)) =
6653 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6654 {
6655 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6656 if inlined != (member_inline_size <= 4) {
6657 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6658 }
6659 let inner_offset;
6660 let mut inner_depth = depth.clone();
6661 if inlined {
6662 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6663 inner_offset = next_offset;
6664 } else {
6665 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6666 inner_depth.increment()?;
6667 }
6668 let val_ref = self.program.get_or_insert_with(|| {
6669 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
6670 });
6671 fidl::decode!(
6672 fidl::encoding::UnboundedVector<u8>,
6673 D,
6674 val_ref,
6675 decoder,
6676 inner_offset,
6677 inner_depth
6678 )?;
6679 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6680 {
6681 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6682 }
6683 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6684 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6685 }
6686 }
6687
6688 next_offset += envelope_size;
6689
6690 while next_offset < end_offset {
6692 _next_ordinal_to_read += 1;
6693 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6694 next_offset += envelope_size;
6695 }
6696
6697 Ok(())
6698 }
6699 }
6700
6701 impl WifiStaIfaceGetApfPacketFilterSupportResponse {
6702 #[inline(always)]
6703 fn max_ordinal_present(&self) -> u64 {
6704 if let Some(_) = self.max_filter_length {
6705 return 2;
6706 }
6707 if let Some(_) = self.version {
6708 return 1;
6709 }
6710 0
6711 }
6712 }
6713
6714 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
6715 type Borrowed<'a> = &'a Self;
6716 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6717 value
6718 }
6719 }
6720
6721 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetApfPacketFilterSupportResponse {
6722 type Owned = Self;
6723
6724 #[inline(always)]
6725 fn inline_align(_context: fidl::encoding::Context) -> usize {
6726 8
6727 }
6728
6729 #[inline(always)]
6730 fn inline_size(_context: fidl::encoding::Context) -> usize {
6731 16
6732 }
6733 }
6734
6735 unsafe impl<D: fidl::encoding::ResourceDialect>
6736 fidl::encoding::Encode<WifiStaIfaceGetApfPacketFilterSupportResponse, D>
6737 for &WifiStaIfaceGetApfPacketFilterSupportResponse
6738 {
6739 unsafe fn encode(
6740 self,
6741 encoder: &mut fidl::encoding::Encoder<'_, D>,
6742 offset: usize,
6743 mut depth: fidl::encoding::Depth,
6744 ) -> fidl::Result<()> {
6745 encoder.debug_check_bounds::<WifiStaIfaceGetApfPacketFilterSupportResponse>(offset);
6746 let max_ordinal: u64 = self.max_ordinal_present();
6748 encoder.write_num(max_ordinal, offset);
6749 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6750 if max_ordinal == 0 {
6752 return Ok(());
6753 }
6754 depth.increment()?;
6755 let envelope_size = 8;
6756 let bytes_len = max_ordinal as usize * envelope_size;
6757 #[allow(unused_variables)]
6758 let offset = encoder.out_of_line_offset(bytes_len);
6759 let mut _prev_end_offset: usize = 0;
6760 if 1 > max_ordinal {
6761 return Ok(());
6762 }
6763
6764 let cur_offset: usize = (1 - 1) * envelope_size;
6767
6768 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6770
6771 fidl::encoding::encode_in_envelope_optional::<i32, D>(
6776 self.version.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
6777 encoder,
6778 offset + cur_offset,
6779 depth,
6780 )?;
6781
6782 _prev_end_offset = cur_offset + envelope_size;
6783 if 2 > max_ordinal {
6784 return Ok(());
6785 }
6786
6787 let cur_offset: usize = (2 - 1) * envelope_size;
6790
6791 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6793
6794 fidl::encoding::encode_in_envelope_optional::<i32, D>(
6799 self.max_filter_length
6800 .as_ref()
6801 .map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
6802 encoder,
6803 offset + cur_offset,
6804 depth,
6805 )?;
6806
6807 _prev_end_offset = cur_offset + envelope_size;
6808
6809 Ok(())
6810 }
6811 }
6812
6813 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6814 for WifiStaIfaceGetApfPacketFilterSupportResponse
6815 {
6816 #[inline(always)]
6817 fn new_empty() -> Self {
6818 Self::default()
6819 }
6820
6821 unsafe fn decode(
6822 &mut self,
6823 decoder: &mut fidl::encoding::Decoder<'_, D>,
6824 offset: usize,
6825 mut depth: fidl::encoding::Depth,
6826 ) -> fidl::Result<()> {
6827 decoder.debug_check_bounds::<Self>(offset);
6828 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6829 None => return Err(fidl::Error::NotNullable),
6830 Some(len) => len,
6831 };
6832 if len == 0 {
6834 return Ok(());
6835 };
6836 depth.increment()?;
6837 let envelope_size = 8;
6838 let bytes_len = len * envelope_size;
6839 let offset = decoder.out_of_line_offset(bytes_len)?;
6840 let mut _next_ordinal_to_read = 0;
6842 let mut next_offset = offset;
6843 let end_offset = offset + bytes_len;
6844 _next_ordinal_to_read += 1;
6845 if next_offset >= end_offset {
6846 return Ok(());
6847 }
6848
6849 while _next_ordinal_to_read < 1 {
6851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6852 _next_ordinal_to_read += 1;
6853 next_offset += envelope_size;
6854 }
6855
6856 let next_out_of_line = decoder.next_out_of_line();
6857 let handles_before = decoder.remaining_handles();
6858 if let Some((inlined, num_bytes, num_handles)) =
6859 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6860 {
6861 let member_inline_size =
6862 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6863 if inlined != (member_inline_size <= 4) {
6864 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6865 }
6866 let inner_offset;
6867 let mut inner_depth = depth.clone();
6868 if inlined {
6869 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6870 inner_offset = next_offset;
6871 } else {
6872 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6873 inner_depth.increment()?;
6874 }
6875 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(i32, D));
6876 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6877 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6878 {
6879 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6880 }
6881 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6882 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6883 }
6884 }
6885
6886 next_offset += envelope_size;
6887 _next_ordinal_to_read += 1;
6888 if next_offset >= end_offset {
6889 return Ok(());
6890 }
6891
6892 while _next_ordinal_to_read < 2 {
6894 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6895 _next_ordinal_to_read += 1;
6896 next_offset += envelope_size;
6897 }
6898
6899 let next_out_of_line = decoder.next_out_of_line();
6900 let handles_before = decoder.remaining_handles();
6901 if let Some((inlined, num_bytes, num_handles)) =
6902 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6903 {
6904 let member_inline_size =
6905 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6906 if inlined != (member_inline_size <= 4) {
6907 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6908 }
6909 let inner_offset;
6910 let mut inner_depth = depth.clone();
6911 if inlined {
6912 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6913 inner_offset = next_offset;
6914 } else {
6915 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6916 inner_depth.increment()?;
6917 }
6918 let val_ref =
6919 self.max_filter_length.get_or_insert_with(|| fidl::new_empty!(i32, D));
6920 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
6921 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6922 {
6923 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6924 }
6925 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6926 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6927 }
6928 }
6929
6930 next_offset += envelope_size;
6931
6932 while next_offset < end_offset {
6934 _next_ordinal_to_read += 1;
6935 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6936 next_offset += envelope_size;
6937 }
6938
6939 Ok(())
6940 }
6941 }
6942
6943 impl WifiStaIfaceGetNameResponse {
6944 #[inline(always)]
6945 fn max_ordinal_present(&self) -> u64 {
6946 if let Some(_) = self.iface_name {
6947 return 1;
6948 }
6949 0
6950 }
6951 }
6952
6953 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetNameResponse {
6954 type Borrowed<'a> = &'a Self;
6955 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6956 value
6957 }
6958 }
6959
6960 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetNameResponse {
6961 type Owned = Self;
6962
6963 #[inline(always)]
6964 fn inline_align(_context: fidl::encoding::Context) -> usize {
6965 8
6966 }
6967
6968 #[inline(always)]
6969 fn inline_size(_context: fidl::encoding::Context) -> usize {
6970 16
6971 }
6972 }
6973
6974 unsafe impl<D: fidl::encoding::ResourceDialect>
6975 fidl::encoding::Encode<WifiStaIfaceGetNameResponse, D> for &WifiStaIfaceGetNameResponse
6976 {
6977 unsafe fn encode(
6978 self,
6979 encoder: &mut fidl::encoding::Encoder<'_, D>,
6980 offset: usize,
6981 mut depth: fidl::encoding::Depth,
6982 ) -> fidl::Result<()> {
6983 encoder.debug_check_bounds::<WifiStaIfaceGetNameResponse>(offset);
6984 let max_ordinal: u64 = self.max_ordinal_present();
6986 encoder.write_num(max_ordinal, offset);
6987 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6988 if max_ordinal == 0 {
6990 return Ok(());
6991 }
6992 depth.increment()?;
6993 let envelope_size = 8;
6994 let bytes_len = max_ordinal as usize * envelope_size;
6995 #[allow(unused_variables)]
6996 let offset = encoder.out_of_line_offset(bytes_len);
6997 let mut _prev_end_offset: usize = 0;
6998 if 1 > max_ordinal {
6999 return Ok(());
7000 }
7001
7002 let cur_offset: usize = (1 - 1) * envelope_size;
7005
7006 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7008
7009 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<16>, D>(
7014 self.iface_name.as_ref().map(
7015 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow,
7016 ),
7017 encoder,
7018 offset + cur_offset,
7019 depth,
7020 )?;
7021
7022 _prev_end_offset = cur_offset + envelope_size;
7023
7024 Ok(())
7025 }
7026 }
7027
7028 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7029 for WifiStaIfaceGetNameResponse
7030 {
7031 #[inline(always)]
7032 fn new_empty() -> Self {
7033 Self::default()
7034 }
7035
7036 unsafe fn decode(
7037 &mut self,
7038 decoder: &mut fidl::encoding::Decoder<'_, D>,
7039 offset: usize,
7040 mut depth: fidl::encoding::Depth,
7041 ) -> fidl::Result<()> {
7042 decoder.debug_check_bounds::<Self>(offset);
7043 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7044 None => return Err(fidl::Error::NotNullable),
7045 Some(len) => len,
7046 };
7047 if len == 0 {
7049 return Ok(());
7050 };
7051 depth.increment()?;
7052 let envelope_size = 8;
7053 let bytes_len = len * envelope_size;
7054 let offset = decoder.out_of_line_offset(bytes_len)?;
7055 let mut _next_ordinal_to_read = 0;
7057 let mut next_offset = offset;
7058 let end_offset = offset + bytes_len;
7059 _next_ordinal_to_read += 1;
7060 if next_offset >= end_offset {
7061 return Ok(());
7062 }
7063
7064 while _next_ordinal_to_read < 1 {
7066 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7067 _next_ordinal_to_read += 1;
7068 next_offset += envelope_size;
7069 }
7070
7071 let next_out_of_line = decoder.next_out_of_line();
7072 let handles_before = decoder.remaining_handles();
7073 if let Some((inlined, num_bytes, num_handles)) =
7074 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7075 {
7076 let member_inline_size =
7077 <fidl::encoding::BoundedString<16> as fidl::encoding::TypeMarker>::inline_size(
7078 decoder.context,
7079 );
7080 if inlined != (member_inline_size <= 4) {
7081 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7082 }
7083 let inner_offset;
7084 let mut inner_depth = depth.clone();
7085 if inlined {
7086 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7087 inner_offset = next_offset;
7088 } else {
7089 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7090 inner_depth.increment()?;
7091 }
7092 let val_ref = self
7093 .iface_name
7094 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<16>, D));
7095 fidl::decode!(
7096 fidl::encoding::BoundedString<16>,
7097 D,
7098 val_ref,
7099 decoder,
7100 inner_offset,
7101 inner_depth
7102 )?;
7103 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7104 {
7105 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7106 }
7107 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7108 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7109 }
7110 }
7111
7112 next_offset += envelope_size;
7113
7114 while next_offset < end_offset {
7116 _next_ordinal_to_read += 1;
7117 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7118 next_offset += envelope_size;
7119 }
7120
7121 Ok(())
7122 }
7123 }
7124
7125 impl WifiStaIfaceReadApfPacketFilterDataResponse {
7126 #[inline(always)]
7127 fn max_ordinal_present(&self) -> u64 {
7128 if let Some(_) = self.memory {
7129 return 1;
7130 }
7131 0
7132 }
7133 }
7134
7135 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
7136 type Borrowed<'a> = &'a Self;
7137 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7138 value
7139 }
7140 }
7141
7142 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceReadApfPacketFilterDataResponse {
7143 type Owned = Self;
7144
7145 #[inline(always)]
7146 fn inline_align(_context: fidl::encoding::Context) -> usize {
7147 8
7148 }
7149
7150 #[inline(always)]
7151 fn inline_size(_context: fidl::encoding::Context) -> usize {
7152 16
7153 }
7154 }
7155
7156 unsafe impl<D: fidl::encoding::ResourceDialect>
7157 fidl::encoding::Encode<WifiStaIfaceReadApfPacketFilterDataResponse, D>
7158 for &WifiStaIfaceReadApfPacketFilterDataResponse
7159 {
7160 unsafe fn encode(
7161 self,
7162 encoder: &mut fidl::encoding::Encoder<'_, D>,
7163 offset: usize,
7164 mut depth: fidl::encoding::Depth,
7165 ) -> fidl::Result<()> {
7166 encoder.debug_check_bounds::<WifiStaIfaceReadApfPacketFilterDataResponse>(offset);
7167 let max_ordinal: u64 = self.max_ordinal_present();
7169 encoder.write_num(max_ordinal, offset);
7170 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7171 if max_ordinal == 0 {
7173 return Ok(());
7174 }
7175 depth.increment()?;
7176 let envelope_size = 8;
7177 let bytes_len = max_ordinal as usize * envelope_size;
7178 #[allow(unused_variables)]
7179 let offset = encoder.out_of_line_offset(bytes_len);
7180 let mut _prev_end_offset: usize = 0;
7181 if 1 > max_ordinal {
7182 return Ok(());
7183 }
7184
7185 let cur_offset: usize = (1 - 1) * envelope_size;
7188
7189 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7191
7192 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
7197 self.memory.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
7198 encoder, offset + cur_offset, depth
7199 )?;
7200
7201 _prev_end_offset = cur_offset + envelope_size;
7202
7203 Ok(())
7204 }
7205 }
7206
7207 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7208 for WifiStaIfaceReadApfPacketFilterDataResponse
7209 {
7210 #[inline(always)]
7211 fn new_empty() -> Self {
7212 Self::default()
7213 }
7214
7215 unsafe fn decode(
7216 &mut self,
7217 decoder: &mut fidl::encoding::Decoder<'_, D>,
7218 offset: usize,
7219 mut depth: fidl::encoding::Depth,
7220 ) -> fidl::Result<()> {
7221 decoder.debug_check_bounds::<Self>(offset);
7222 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7223 None => return Err(fidl::Error::NotNullable),
7224 Some(len) => len,
7225 };
7226 if len == 0 {
7228 return Ok(());
7229 };
7230 depth.increment()?;
7231 let envelope_size = 8;
7232 let bytes_len = len * envelope_size;
7233 let offset = decoder.out_of_line_offset(bytes_len)?;
7234 let mut _next_ordinal_to_read = 0;
7236 let mut next_offset = offset;
7237 let end_offset = offset + bytes_len;
7238 _next_ordinal_to_read += 1;
7239 if next_offset >= end_offset {
7240 return Ok(());
7241 }
7242
7243 while _next_ordinal_to_read < 1 {
7245 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7246 _next_ordinal_to_read += 1;
7247 next_offset += envelope_size;
7248 }
7249
7250 let next_out_of_line = decoder.next_out_of_line();
7251 let handles_before = decoder.remaining_handles();
7252 if let Some((inlined, num_bytes, num_handles)) =
7253 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7254 {
7255 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7256 if inlined != (member_inline_size <= 4) {
7257 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7258 }
7259 let inner_offset;
7260 let mut inner_depth = depth.clone();
7261 if inlined {
7262 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7263 inner_offset = next_offset;
7264 } else {
7265 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7266 inner_depth.increment()?;
7267 }
7268 let val_ref = self.memory.get_or_insert_with(|| {
7269 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
7270 });
7271 fidl::decode!(
7272 fidl::encoding::UnboundedVector<u8>,
7273 D,
7274 val_ref,
7275 decoder,
7276 inner_offset,
7277 inner_depth
7278 )?;
7279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7280 {
7281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7282 }
7283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7285 }
7286 }
7287
7288 next_offset += envelope_size;
7289
7290 while next_offset < end_offset {
7292 _next_ordinal_to_read += 1;
7293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7294 next_offset += envelope_size;
7295 }
7296
7297 Ok(())
7298 }
7299 }
7300
7301 impl WifiGetChipIdsResponse {
7302 #[inline(always)]
7303 fn max_ordinal_present(&self) -> u64 {
7304 if let Some(_) = self.chip_ids {
7305 return 1;
7306 }
7307 0
7308 }
7309 }
7310
7311 impl fidl::encoding::ValueTypeMarker for WifiGetChipIdsResponse {
7312 type Borrowed<'a> = &'a Self;
7313 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7314 value
7315 }
7316 }
7317
7318 unsafe impl fidl::encoding::TypeMarker for WifiGetChipIdsResponse {
7319 type Owned = Self;
7320
7321 #[inline(always)]
7322 fn inline_align(_context: fidl::encoding::Context) -> usize {
7323 8
7324 }
7325
7326 #[inline(always)]
7327 fn inline_size(_context: fidl::encoding::Context) -> usize {
7328 16
7329 }
7330 }
7331
7332 unsafe impl<D: fidl::encoding::ResourceDialect>
7333 fidl::encoding::Encode<WifiGetChipIdsResponse, D> for &WifiGetChipIdsResponse
7334 {
7335 unsafe fn encode(
7336 self,
7337 encoder: &mut fidl::encoding::Encoder<'_, D>,
7338 offset: usize,
7339 mut depth: fidl::encoding::Depth,
7340 ) -> fidl::Result<()> {
7341 encoder.debug_check_bounds::<WifiGetChipIdsResponse>(offset);
7342 let max_ordinal: u64 = self.max_ordinal_present();
7344 encoder.write_num(max_ordinal, offset);
7345 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7346 if max_ordinal == 0 {
7348 return Ok(());
7349 }
7350 depth.increment()?;
7351 let envelope_size = 8;
7352 let bytes_len = max_ordinal as usize * envelope_size;
7353 #[allow(unused_variables)]
7354 let offset = encoder.out_of_line_offset(bytes_len);
7355 let mut _prev_end_offset: usize = 0;
7356 if 1 > max_ordinal {
7357 return Ok(());
7358 }
7359
7360 let cur_offset: usize = (1 - 1) * envelope_size;
7363
7364 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7366
7367 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u32>, D>(
7372 self.chip_ids.as_ref().map(<fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow),
7373 encoder, offset + cur_offset, depth
7374 )?;
7375
7376 _prev_end_offset = cur_offset + envelope_size;
7377
7378 Ok(())
7379 }
7380 }
7381
7382 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7383 for WifiGetChipIdsResponse
7384 {
7385 #[inline(always)]
7386 fn new_empty() -> Self {
7387 Self::default()
7388 }
7389
7390 unsafe fn decode(
7391 &mut self,
7392 decoder: &mut fidl::encoding::Decoder<'_, D>,
7393 offset: usize,
7394 mut depth: fidl::encoding::Depth,
7395 ) -> fidl::Result<()> {
7396 decoder.debug_check_bounds::<Self>(offset);
7397 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7398 None => return Err(fidl::Error::NotNullable),
7399 Some(len) => len,
7400 };
7401 if len == 0 {
7403 return Ok(());
7404 };
7405 depth.increment()?;
7406 let envelope_size = 8;
7407 let bytes_len = len * envelope_size;
7408 let offset = decoder.out_of_line_offset(bytes_len)?;
7409 let mut _next_ordinal_to_read = 0;
7411 let mut next_offset = offset;
7412 let end_offset = offset + bytes_len;
7413 _next_ordinal_to_read += 1;
7414 if next_offset >= end_offset {
7415 return Ok(());
7416 }
7417
7418 while _next_ordinal_to_read < 1 {
7420 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7421 _next_ordinal_to_read += 1;
7422 next_offset += envelope_size;
7423 }
7424
7425 let next_out_of_line = decoder.next_out_of_line();
7426 let handles_before = decoder.remaining_handles();
7427 if let Some((inlined, num_bytes, num_handles)) =
7428 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7429 {
7430 let member_inline_size = <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7431 if inlined != (member_inline_size <= 4) {
7432 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7433 }
7434 let inner_offset;
7435 let mut inner_depth = depth.clone();
7436 if inlined {
7437 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7438 inner_offset = next_offset;
7439 } else {
7440 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7441 inner_depth.increment()?;
7442 }
7443 let val_ref = self.chip_ids.get_or_insert_with(|| {
7444 fidl::new_empty!(fidl::encoding::UnboundedVector<u32>, D)
7445 });
7446 fidl::decode!(
7447 fidl::encoding::UnboundedVector<u32>,
7448 D,
7449 val_ref,
7450 decoder,
7451 inner_offset,
7452 inner_depth
7453 )?;
7454 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7455 {
7456 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7457 }
7458 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7459 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7460 }
7461 }
7462
7463 next_offset += envelope_size;
7464
7465 while next_offset < end_offset {
7467 _next_ordinal_to_read += 1;
7468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7469 next_offset += envelope_size;
7470 }
7471
7472 Ok(())
7473 }
7474 }
7475
7476 impl WifiGetStateResponse {
7477 #[inline(always)]
7478 fn max_ordinal_present(&self) -> u64 {
7479 if let Some(_) = self.is_started {
7480 return 1;
7481 }
7482 0
7483 }
7484 }
7485
7486 impl fidl::encoding::ValueTypeMarker for WifiGetStateResponse {
7487 type Borrowed<'a> = &'a Self;
7488 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7489 value
7490 }
7491 }
7492
7493 unsafe impl fidl::encoding::TypeMarker for WifiGetStateResponse {
7494 type Owned = Self;
7495
7496 #[inline(always)]
7497 fn inline_align(_context: fidl::encoding::Context) -> usize {
7498 8
7499 }
7500
7501 #[inline(always)]
7502 fn inline_size(_context: fidl::encoding::Context) -> usize {
7503 16
7504 }
7505 }
7506
7507 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiGetStateResponse, D>
7508 for &WifiGetStateResponse
7509 {
7510 unsafe fn encode(
7511 self,
7512 encoder: &mut fidl::encoding::Encoder<'_, D>,
7513 offset: usize,
7514 mut depth: fidl::encoding::Depth,
7515 ) -> fidl::Result<()> {
7516 encoder.debug_check_bounds::<WifiGetStateResponse>(offset);
7517 let max_ordinal: u64 = self.max_ordinal_present();
7519 encoder.write_num(max_ordinal, offset);
7520 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7521 if max_ordinal == 0 {
7523 return Ok(());
7524 }
7525 depth.increment()?;
7526 let envelope_size = 8;
7527 let bytes_len = max_ordinal as usize * envelope_size;
7528 #[allow(unused_variables)]
7529 let offset = encoder.out_of_line_offset(bytes_len);
7530 let mut _prev_end_offset: usize = 0;
7531 if 1 > max_ordinal {
7532 return Ok(());
7533 }
7534
7535 let cur_offset: usize = (1 - 1) * envelope_size;
7538
7539 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7541
7542 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7547 self.is_started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7548 encoder,
7549 offset + cur_offset,
7550 depth,
7551 )?;
7552
7553 _prev_end_offset = cur_offset + envelope_size;
7554
7555 Ok(())
7556 }
7557 }
7558
7559 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiGetStateResponse {
7560 #[inline(always)]
7561 fn new_empty() -> Self {
7562 Self::default()
7563 }
7564
7565 unsafe fn decode(
7566 &mut self,
7567 decoder: &mut fidl::encoding::Decoder<'_, D>,
7568 offset: usize,
7569 mut depth: fidl::encoding::Depth,
7570 ) -> fidl::Result<()> {
7571 decoder.debug_check_bounds::<Self>(offset);
7572 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7573 None => return Err(fidl::Error::NotNullable),
7574 Some(len) => len,
7575 };
7576 if len == 0 {
7578 return Ok(());
7579 };
7580 depth.increment()?;
7581 let envelope_size = 8;
7582 let bytes_len = len * envelope_size;
7583 let offset = decoder.out_of_line_offset(bytes_len)?;
7584 let mut _next_ordinal_to_read = 0;
7586 let mut next_offset = offset;
7587 let end_offset = offset + bytes_len;
7588 _next_ordinal_to_read += 1;
7589 if next_offset >= end_offset {
7590 return Ok(());
7591 }
7592
7593 while _next_ordinal_to_read < 1 {
7595 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7596 _next_ordinal_to_read += 1;
7597 next_offset += envelope_size;
7598 }
7599
7600 let next_out_of_line = decoder.next_out_of_line();
7601 let handles_before = decoder.remaining_handles();
7602 if let Some((inlined, num_bytes, num_handles)) =
7603 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7604 {
7605 let member_inline_size =
7606 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7607 if inlined != (member_inline_size <= 4) {
7608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7609 }
7610 let inner_offset;
7611 let mut inner_depth = depth.clone();
7612 if inlined {
7613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7614 inner_offset = next_offset;
7615 } else {
7616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7617 inner_depth.increment()?;
7618 }
7619 let val_ref = self.is_started.get_or_insert_with(|| fidl::new_empty!(bool, D));
7620 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7621 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7622 {
7623 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7624 }
7625 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7626 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7627 }
7628 }
7629
7630 next_offset += envelope_size;
7631
7632 while next_offset < end_offset {
7634 _next_ordinal_to_read += 1;
7635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7636 next_offset += envelope_size;
7637 }
7638
7639 Ok(())
7640 }
7641 }
7642
7643 impl fidl::encoding::ValueTypeMarker for Nl80211Message {
7644 type Borrowed<'a> = &'a Self;
7645 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7646 value
7647 }
7648 }
7649
7650 unsafe impl fidl::encoding::TypeMarker for Nl80211Message {
7651 type Owned = Self;
7652
7653 #[inline(always)]
7654 fn inline_align(_context: fidl::encoding::Context) -> usize {
7655 8
7656 }
7657
7658 #[inline(always)]
7659 fn inline_size(_context: fidl::encoding::Context) -> usize {
7660 16
7661 }
7662 }
7663
7664 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211Message, D>
7665 for &Nl80211Message
7666 {
7667 #[inline]
7668 unsafe fn encode(
7669 self,
7670 encoder: &mut fidl::encoding::Encoder<'_, D>,
7671 offset: usize,
7672 _depth: fidl::encoding::Depth,
7673 ) -> fidl::Result<()> {
7674 encoder.debug_check_bounds::<Nl80211Message>(offset);
7675 encoder.write_num::<u64>(self.ordinal(), offset);
7676 match self {
7677 Nl80211Message::Done(ref val) => fidl::encoding::encode_in_envelope::<Done, D>(
7678 <Done as fidl::encoding::ValueTypeMarker>::borrow(val),
7679 encoder,
7680 offset + 8,
7681 _depth,
7682 ),
7683 Nl80211Message::Error(ref val) => fidl::encoding::encode_in_envelope::<Error, D>(
7684 <Error as fidl::encoding::ValueTypeMarker>::borrow(val),
7685 encoder,
7686 offset + 8,
7687 _depth,
7688 ),
7689 Nl80211Message::Ack(ref val) => fidl::encoding::encode_in_envelope::<Ack, D>(
7690 <Ack as fidl::encoding::ValueTypeMarker>::borrow(val),
7691 encoder,
7692 offset + 8,
7693 _depth,
7694 ),
7695 Nl80211Message::Message(ref val) => {
7696 fidl::encoding::encode_in_envelope::<Message, D>(
7697 <Message as fidl::encoding::ValueTypeMarker>::borrow(val),
7698 encoder,
7699 offset + 8,
7700 _depth,
7701 )
7702 }
7703 Nl80211Message::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7704 }
7705 }
7706 }
7707
7708 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211Message {
7709 #[inline(always)]
7710 fn new_empty() -> Self {
7711 Self::__SourceBreaking { unknown_ordinal: 0 }
7712 }
7713
7714 #[inline]
7715 unsafe fn decode(
7716 &mut self,
7717 decoder: &mut fidl::encoding::Decoder<'_, D>,
7718 offset: usize,
7719 mut depth: fidl::encoding::Depth,
7720 ) -> fidl::Result<()> {
7721 decoder.debug_check_bounds::<Self>(offset);
7722 #[allow(unused_variables)]
7723 let next_out_of_line = decoder.next_out_of_line();
7724 let handles_before = decoder.remaining_handles();
7725 let (ordinal, inlined, num_bytes, num_handles) =
7726 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7727
7728 let member_inline_size = match ordinal {
7729 1 => <Done as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7730 2 => <Error as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7731 3 => <Ack as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7732 4 => <Message as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7733 0 => return Err(fidl::Error::UnknownUnionTag),
7734 _ => num_bytes as usize,
7735 };
7736
7737 if inlined != (member_inline_size <= 4) {
7738 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7739 }
7740 let _inner_offset;
7741 if inlined {
7742 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7743 _inner_offset = offset + 8;
7744 } else {
7745 depth.increment()?;
7746 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7747 }
7748 match ordinal {
7749 1 => {
7750 #[allow(irrefutable_let_patterns)]
7751 if let Nl80211Message::Done(_) = self {
7752 } else {
7754 *self = Nl80211Message::Done(fidl::new_empty!(Done, D));
7756 }
7757 #[allow(irrefutable_let_patterns)]
7758 if let Nl80211Message::Done(ref mut val) = self {
7759 fidl::decode!(Done, D, val, decoder, _inner_offset, depth)?;
7760 } else {
7761 unreachable!()
7762 }
7763 }
7764 2 => {
7765 #[allow(irrefutable_let_patterns)]
7766 if let Nl80211Message::Error(_) = self {
7767 } else {
7769 *self = Nl80211Message::Error(fidl::new_empty!(Error, D));
7771 }
7772 #[allow(irrefutable_let_patterns)]
7773 if let Nl80211Message::Error(ref mut val) = self {
7774 fidl::decode!(Error, D, val, decoder, _inner_offset, depth)?;
7775 } else {
7776 unreachable!()
7777 }
7778 }
7779 3 => {
7780 #[allow(irrefutable_let_patterns)]
7781 if let Nl80211Message::Ack(_) = self {
7782 } else {
7784 *self = Nl80211Message::Ack(fidl::new_empty!(Ack, D));
7786 }
7787 #[allow(irrefutable_let_patterns)]
7788 if let Nl80211Message::Ack(ref mut val) = self {
7789 fidl::decode!(Ack, D, val, decoder, _inner_offset, depth)?;
7790 } else {
7791 unreachable!()
7792 }
7793 }
7794 4 => {
7795 #[allow(irrefutable_let_patterns)]
7796 if let Nl80211Message::Message(_) = self {
7797 } else {
7799 *self = Nl80211Message::Message(fidl::new_empty!(Message, D));
7801 }
7802 #[allow(irrefutable_let_patterns)]
7803 if let Nl80211Message::Message(ref mut val) = self {
7804 fidl::decode!(Message, D, val, decoder, _inner_offset, depth)?;
7805 } else {
7806 unreachable!()
7807 }
7808 }
7809 #[allow(deprecated)]
7810 ordinal => {
7811 for _ in 0..num_handles {
7812 decoder.drop_next_handle()?;
7813 }
7814 *self = Nl80211Message::__SourceBreaking { unknown_ordinal: ordinal };
7815 }
7816 }
7817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7819 }
7820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7822 }
7823 Ok(())
7824 }
7825 }
7826}