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
11#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
12pub enum IfaceConcurrencyType {
13 Sta,
14 Ap,
15 ApBridged,
16 P2P,
17 NanIface,
18 #[doc(hidden)]
19 __SourceBreaking {
20 unknown_ordinal: u32,
21 },
22}
23
24#[macro_export]
26macro_rules! IfaceConcurrencyTypeUnknown {
27 () => {
28 _
29 };
30}
31
32impl IfaceConcurrencyType {
33 #[inline]
34 pub fn from_primitive(prim: u32) -> Option<Self> {
35 match prim {
36 1 => Some(Self::Sta),
37 2 => Some(Self::Ap),
38 3 => Some(Self::ApBridged),
39 4 => Some(Self::P2P),
40 5 => Some(Self::NanIface),
41 _ => None,
42 }
43 }
44
45 #[inline]
46 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
47 match prim {
48 1 => Self::Sta,
49 2 => Self::Ap,
50 3 => Self::ApBridged,
51 4 => Self::P2P,
52 5 => Self::NanIface,
53 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
54 }
55 }
56
57 #[inline]
58 pub fn unknown() -> Self {
59 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
60 }
61
62 #[inline]
63 pub const fn into_primitive(self) -> u32 {
64 match self {
65 Self::Sta => 1,
66 Self::Ap => 2,
67 Self::ApBridged => 3,
68 Self::P2P => 4,
69 Self::NanIface => 5,
70 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
71 }
72 }
73
74 #[inline]
75 pub fn is_unknown(&self) -> bool {
76 match self {
77 Self::__SourceBreaking { unknown_ordinal: _ } => true,
78 _ => false,
79 }
80 }
81}
82
83#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
84pub enum Nl80211MessageType {
85 Done,
86 Error,
87 Ack,
88 NoOp,
89 Overrun,
90 Message,
91 #[doc(hidden)]
92 __SourceBreaking {
93 unknown_ordinal: u32,
94 },
95}
96
97#[macro_export]
99macro_rules! Nl80211MessageTypeUnknown {
100 () => {
101 _
102 };
103}
104
105impl Nl80211MessageType {
106 #[inline]
107 pub fn from_primitive(prim: u32) -> Option<Self> {
108 match prim {
109 1 => Some(Self::Done),
110 2 => Some(Self::Error),
111 3 => Some(Self::Ack),
112 4 => Some(Self::NoOp),
113 5 => Some(Self::Overrun),
114 6 => Some(Self::Message),
115 _ => None,
116 }
117 }
118
119 #[inline]
120 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
121 match prim {
122 1 => Self::Done,
123 2 => Self::Error,
124 3 => Self::Ack,
125 4 => Self::NoOp,
126 5 => Self::Overrun,
127 6 => Self::Message,
128 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
129 }
130 }
131
132 #[inline]
133 pub fn unknown() -> Self {
134 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
135 }
136
137 #[inline]
138 pub const fn into_primitive(self) -> u32 {
139 match self {
140 Self::Done => 1,
141 Self::Error => 2,
142 Self::Ack => 3,
143 Self::NoOp => 4,
144 Self::Overrun => 5,
145 Self::Message => 6,
146 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
147 }
148 }
149
150 #[inline]
151 pub fn is_unknown(&self) -> bool {
152 match self {
153 Self::__SourceBreaking { unknown_ordinal: _ } => true,
154 _ => false,
155 }
156 }
157}
158
159#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
160pub enum StaIfaceCallbackState {
161 Disconnected,
162 IfaceDisabled,
163 Inactive,
164 Scanning,
165 Authenticating,
166 Associating,
167 Associated,
168 FourwayHandshake,
169 GroupHandshake,
170 Completed,
171 #[doc(hidden)]
172 __SourceBreaking {
173 unknown_ordinal: u32,
174 },
175}
176
177#[macro_export]
179macro_rules! StaIfaceCallbackStateUnknown {
180 () => {
181 _
182 };
183}
184
185impl StaIfaceCallbackState {
186 #[inline]
187 pub fn from_primitive(prim: u32) -> Option<Self> {
188 match prim {
189 0 => Some(Self::Disconnected),
190 1 => Some(Self::IfaceDisabled),
191 2 => Some(Self::Inactive),
192 3 => Some(Self::Scanning),
193 4 => Some(Self::Authenticating),
194 5 => Some(Self::Associating),
195 6 => Some(Self::Associated),
196 7 => Some(Self::FourwayHandshake),
197 8 => Some(Self::GroupHandshake),
198 9 => Some(Self::Completed),
199 _ => None,
200 }
201 }
202
203 #[inline]
204 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
205 match prim {
206 0 => Self::Disconnected,
207 1 => Self::IfaceDisabled,
208 2 => Self::Inactive,
209 3 => Self::Scanning,
210 4 => Self::Authenticating,
211 5 => Self::Associating,
212 6 => Self::Associated,
213 7 => Self::FourwayHandshake,
214 8 => Self::GroupHandshake,
215 9 => Self::Completed,
216 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
217 }
218 }
219
220 #[inline]
221 pub fn unknown() -> Self {
222 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
223 }
224
225 #[inline]
226 pub const fn into_primitive(self) -> u32 {
227 match self {
228 Self::Disconnected => 0,
229 Self::IfaceDisabled => 1,
230 Self::Inactive => 2,
231 Self::Scanning => 3,
232 Self::Authenticating => 4,
233 Self::Associating => 5,
234 Self::Associated => 6,
235 Self::FourwayHandshake => 7,
236 Self::GroupHandshake => 8,
237 Self::Completed => 9,
238 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
239 }
240 }
241
242 #[inline]
243 pub fn is_unknown(&self) -> bool {
244 match self {
245 Self::__SourceBreaking { unknown_ordinal: _ } => true,
246 _ => false,
247 }
248 }
249}
250
251#[derive(Clone, Debug, PartialEq)]
252pub struct Nl80211MessageArray {
253 pub messages: Vec<Nl80211Message>,
254}
255
256impl fidl::Persistable for Nl80211MessageArray {}
257
258#[derive(Clone, Debug, Default, PartialEq)]
259pub struct ChipConcurrencyCombination {
260 pub limits: Option<Vec<ChipConcurrencyCombinationLimit>>,
261 #[doc(hidden)]
262 pub __source_breaking: fidl::marker::SourceBreaking,
263}
264
265impl fidl::Persistable for ChipConcurrencyCombination {}
266
267#[derive(Clone, Debug, Default, PartialEq)]
268pub struct ChipConcurrencyCombinationLimit {
269 pub types: Option<Vec<IfaceConcurrencyType>>,
270 pub max_ifaces: Option<u32>,
271 #[doc(hidden)]
272 pub __source_breaking: fidl::marker::SourceBreaking,
273}
274
275impl fidl::Persistable for ChipConcurrencyCombinationLimit {}
276
277#[derive(Clone, Debug, Default, PartialEq)]
278pub struct ChipMode {
279 pub id: Option<u32>,
280 pub available_combinations: Option<Vec<ChipConcurrencyCombination>>,
281 #[doc(hidden)]
282 pub __source_breaking: fidl::marker::SourceBreaking,
283}
284
285impl fidl::Persistable for ChipMode {}
286
287#[derive(Clone, Debug, Default, PartialEq)]
288pub struct Nl80211Message {
289 pub message_type: Option<Nl80211MessageType>,
290 pub payload: Option<Vec<u8>>,
291 #[doc(hidden)]
292 pub __source_breaking: fidl::marker::SourceBreaking,
293}
294
295impl fidl::Persistable for Nl80211Message {}
296
297#[derive(Clone, Debug, Default, PartialEq)]
298pub struct SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
299 pub ssid: Option<Vec<u8>>,
300 pub bssid: Option<[u8; 6]>,
301 pub status_code: Option<fidl_fuchsia_wlan_ieee80211__common::StatusCode>,
302 pub timed_out: Option<bool>,
303 #[doc(hidden)]
304 pub __source_breaking: fidl::marker::SourceBreaking,
305}
306
307impl fidl::Persistable for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {}
308
309#[derive(Clone, Debug, Default, PartialEq)]
310pub struct SupplicantStaIfaceCallbackOnDisconnectedRequest {
311 pub bssid: Option<[u8; 6]>,
312 pub locally_generated: Option<bool>,
313 pub reason_code: Option<fidl_fuchsia_wlan_ieee80211__common::ReasonCode>,
314 #[doc(hidden)]
315 pub __source_breaking: fidl::marker::SourceBreaking,
316}
317
318impl fidl::Persistable for SupplicantStaIfaceCallbackOnDisconnectedRequest {}
319
320#[derive(Clone, Debug, Default, PartialEq)]
321pub struct SupplicantStaIfaceCallbackOnStateChangedRequest {
322 pub new_state: Option<StaIfaceCallbackState>,
323 pub bssid: Option<[u8; 6]>,
324 pub id: Option<u32>,
325 pub ssid: Option<Vec<u8>>,
326 #[doc(hidden)]
327 pub __source_breaking: fidl::marker::SourceBreaking,
328}
329
330impl fidl::Persistable for SupplicantStaIfaceCallbackOnStateChangedRequest {}
331
332#[derive(Clone, Debug, Default, PartialEq)]
333pub struct SupplicantStaIfaceGetMacAddressResponse {
334 pub mac_addr: Option<[u8; 6]>,
335 #[doc(hidden)]
336 pub __source_breaking: fidl::marker::SourceBreaking,
337}
338
339impl fidl::Persistable for SupplicantStaIfaceGetMacAddressResponse {}
340
341#[derive(Clone, Debug, Default, PartialEq)]
342pub struct SupplicantStaNetworkSetBssidRequest {
343 pub bssid: Option<[u8; 6]>,
344 #[doc(hidden)]
345 pub __source_breaking: fidl::marker::SourceBreaking,
346}
347
348impl fidl::Persistable for SupplicantStaNetworkSetBssidRequest {}
349
350#[derive(Clone, Debug, Default, PartialEq)]
351pub struct SupplicantStaNetworkSetPskPassphraseRequest {
352 pub passphrase: Option<Vec<u8>>,
353 #[doc(hidden)]
354 pub __source_breaking: fidl::marker::SourceBreaking,
355}
356
357impl fidl::Persistable for SupplicantStaNetworkSetPskPassphraseRequest {}
358
359#[derive(Clone, Debug, Default, PartialEq)]
360pub struct SupplicantStaNetworkSetSsidRequest {
361 pub ssid: Option<Vec<u8>>,
362 #[doc(hidden)]
363 pub __source_breaking: fidl::marker::SourceBreaking,
364}
365
366impl fidl::Persistable for SupplicantStaNetworkSetSsidRequest {}
367
368#[derive(Clone, Debug, Default, PartialEq)]
369pub struct SupplicantStaNetworkSetWepKeyRequest {
370 pub key: Option<Vec<u8>>,
371 pub key_idx: Option<i32>,
372 #[doc(hidden)]
373 pub __source_breaking: fidl::marker::SourceBreaking,
374}
375
376impl fidl::Persistable for SupplicantStaNetworkSetWepKeyRequest {}
377
378#[derive(Clone, Debug, Default, PartialEq)]
379pub struct SupplicantStaNetworkSetWepTxKeyIdxRequest {
380 pub key_idx: Option<i32>,
381 #[doc(hidden)]
382 pub __source_breaking: fidl::marker::SourceBreaking,
383}
384
385impl fidl::Persistable for SupplicantStaNetworkSetWepTxKeyIdxRequest {}
386
387#[derive(Clone, Debug, Default, PartialEq)]
388pub struct WifiChipGetAvailableModesResponse {
389 pub chip_modes: Option<Vec<ChipMode>>,
390 #[doc(hidden)]
391 pub __source_breaking: fidl::marker::SourceBreaking,
392}
393
394impl fidl::Persistable for WifiChipGetAvailableModesResponse {}
395
396#[derive(Clone, Debug, Default, PartialEq)]
397pub struct WifiChipGetCapabilitiesResponse {
398 pub capabilities_mask: Option<u32>,
399 #[doc(hidden)]
400 pub __source_breaking: fidl::marker::SourceBreaking,
401}
402
403impl fidl::Persistable for WifiChipGetCapabilitiesResponse {}
404
405#[derive(Clone, Debug, Default, PartialEq)]
406pub struct WifiChipGetIdResponse {
407 pub id: Option<u32>,
408 #[doc(hidden)]
409 pub __source_breaking: fidl::marker::SourceBreaking,
410}
411
412impl fidl::Persistable for WifiChipGetIdResponse {}
413
414#[derive(Clone, Debug, Default, PartialEq)]
415pub struct WifiChipGetModeResponse {
416 pub mode: Option<u32>,
417 #[doc(hidden)]
418 pub __source_breaking: fidl::marker::SourceBreaking,
419}
420
421impl fidl::Persistable for WifiChipGetModeResponse {}
422
423#[derive(Clone, Debug, Default, PartialEq)]
424pub struct WifiChipGetStaIfaceNamesResponse {
425 pub iface_names: Option<Vec<String>>,
426 #[doc(hidden)]
427 pub __source_breaking: fidl::marker::SourceBreaking,
428}
429
430impl fidl::Persistable for WifiChipGetStaIfaceNamesResponse {}
431
432#[derive(Clone, Debug, Default, PartialEq)]
433pub struct WifiStaIfaceGetNameResponse {
434 pub iface_name: Option<String>,
435 #[doc(hidden)]
436 pub __source_breaking: fidl::marker::SourceBreaking,
437}
438
439impl fidl::Persistable for WifiStaIfaceGetNameResponse {}
440
441#[derive(Clone, Debug, Default, PartialEq)]
442pub struct WifiGetChipIdsResponse {
443 pub chip_ids: Option<Vec<u32>>,
444 #[doc(hidden)]
445 pub __source_breaking: fidl::marker::SourceBreaking,
446}
447
448impl fidl::Persistable for WifiGetChipIdsResponse {}
449
450#[derive(Clone, Debug, Default, PartialEq)]
451pub struct WifiGetStateResponse {
452 pub is_started: Option<bool>,
453 #[doc(hidden)]
454 pub __source_breaking: fidl::marker::SourceBreaking,
455}
456
457impl fidl::Persistable for WifiGetStateResponse {}
458
459pub mod nl80211_ordinals {
460 pub const GET_MULTICAST: u64 = 0x58b73dd089681dc2;
461 pub const MESSAGE: u64 = 0x6336259e15bb3795;
462 pub const MESSAGE_V2: u64 = 0x4626796aba1e2987;
463}
464
465pub mod nl80211_multicast_ordinals {
466 pub const MESSAGE: u64 = 0x4cc9241f302f16c0;
467}
468
469pub mod supplicant_ordinals {
470 pub const ADD_STA_INTERFACE: u64 = 0x73194b2afe9b367e;
471 pub const REMOVE_INTERFACE: u64 = 0x7f83e5b75b27d242;
472}
473
474pub mod supplicant_sta_iface_ordinals {
475 pub const REGISTER_CALLBACK: u64 = 0x1be680e863a8e71;
476 pub const ADD_NETWORK: u64 = 0xa77cf60628766dc;
477 pub const DISCONNECT: u64 = 0x52a1d38e0b4871fa;
478 pub const GET_MAC_ADDRESS: u64 = 0x60591d204a3f537f;
479 pub const SET_POWER_SAVE: u64 = 0x5a04c29320085298;
480 pub const SET_SUSPEND_MODE_ENABLED: u64 = 0xaf10de85bb7023a;
481 pub const SET_STA_COUNTRY_CODE: u64 = 0x977e22f9b79b26e;
482}
483
484pub mod supplicant_sta_iface_callback_ordinals {
485 pub const ON_STATE_CHANGED: u64 = 0x27e086d26c49eb6c;
486 pub const ON_DISCONNECTED: u64 = 0x69546475f4dee0cc;
487 pub const ON_ASSOCIATION_REJECTED: u64 = 0x7ef3961518bed988;
488}
489
490pub mod supplicant_sta_network_ordinals {
491 pub const SET_BSSID: u64 = 0x10a91d044ee6374d;
492 pub const CLEAR_BSSID: u64 = 0xbc7ad82f541b267;
493 pub const SET_SSID: u64 = 0x6b598a7a802e3083;
494 pub const SET_PSK_PASSPHRASE: u64 = 0xf6d438225979307;
495 pub const SET_WEP_KEY: u64 = 0x22a7e25ec81f2dee;
496 pub const SET_WEP_TX_KEY_IDX: u64 = 0x4f25576c21fcb8cb;
497 pub const SELECT: u64 = 0x354bc361a0c77b45;
498}
499
500pub mod wifi_ordinals {
501 pub const REGISTER_EVENT_CALLBACK: u64 = 0x12abbdea948dd67b;
502 pub const START: u64 = 0x427030e4dc6ec07a;
503 pub const STOP: u64 = 0x67c9bdf61b2888d;
504 pub const GET_STATE: u64 = 0x4616114a937d1fb0;
505 pub const GET_CHIP_IDS: u64 = 0x2fb4f92351d802b5;
506 pub const GET_CHIP: u64 = 0xef95d8246612540;
507}
508
509pub mod wifi_chip_ordinals {
510 pub const CREATE_STA_IFACE: u64 = 0x6fb2d5892face7af;
511 pub const GET_STA_IFACE_NAMES: u64 = 0x349257482df6a000;
512 pub const GET_STA_IFACE: u64 = 0x6d9704eeb36f28a2;
513 pub const REMOVE_STA_IFACE: u64 = 0x4cd8eee466f8b04c;
514 pub const SET_COUNTRY_CODE: u64 = 0x1dfe372d1d61a490;
515 pub const GET_AVAILABLE_MODES: u64 = 0x1701095b452a3acd;
516 pub const GET_ID: u64 = 0x37d5197325bb3370;
517 pub const GET_MODE: u64 = 0x4d209e0f3ac84d6f;
518 pub const GET_CAPABILITIES: u64 = 0x1b253f396dcaa2e0;
519 pub const TRIGGER_SUBSYSTEM_RESTART: u64 = 0x42ffcae5aad196f9;
520}
521
522pub mod wifi_event_callback_ordinals {
523 pub const ON_START: u64 = 0x61189ff44f9d35f3;
524 pub const ON_STOP: u64 = 0x58b697bcd475e0f9;
525}
526
527pub mod wifi_sta_iface_ordinals {
528 pub const GET_NAME: u64 = 0x5c150b91c80c5789;
529}
530
531pub mod wlanix_ordinals {
532 pub const GET_WIFI: u64 = 0x142511f44b2c338c;
533 pub const GET_SUPPLICANT: u64 = 0x55554b37c4021d3d;
534 pub const GET_NL80211: u64 = 0x48028a25bd855ef9;
535}
536
537mod internal {
538 use super::*;
539 unsafe impl fidl::encoding::TypeMarker for IfaceConcurrencyType {
540 type Owned = Self;
541
542 #[inline(always)]
543 fn inline_align(_context: fidl::encoding::Context) -> usize {
544 std::mem::align_of::<u32>()
545 }
546
547 #[inline(always)]
548 fn inline_size(_context: fidl::encoding::Context) -> usize {
549 std::mem::size_of::<u32>()
550 }
551
552 #[inline(always)]
553 fn encode_is_copy() -> bool {
554 false
555 }
556
557 #[inline(always)]
558 fn decode_is_copy() -> bool {
559 false
560 }
561 }
562
563 impl fidl::encoding::ValueTypeMarker for IfaceConcurrencyType {
564 type Borrowed<'a> = Self;
565 #[inline(always)]
566 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
567 *value
568 }
569 }
570
571 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
572 for IfaceConcurrencyType
573 {
574 #[inline]
575 unsafe fn encode(
576 self,
577 encoder: &mut fidl::encoding::Encoder<'_, D>,
578 offset: usize,
579 _depth: fidl::encoding::Depth,
580 ) -> fidl::Result<()> {
581 encoder.debug_check_bounds::<Self>(offset);
582 encoder.write_num(self.into_primitive(), offset);
583 Ok(())
584 }
585 }
586
587 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IfaceConcurrencyType {
588 #[inline(always)]
589 fn new_empty() -> Self {
590 Self::unknown()
591 }
592
593 #[inline]
594 unsafe fn decode(
595 &mut self,
596 decoder: &mut fidl::encoding::Decoder<'_, D>,
597 offset: usize,
598 _depth: fidl::encoding::Depth,
599 ) -> fidl::Result<()> {
600 decoder.debug_check_bounds::<Self>(offset);
601 let prim = decoder.read_num::<u32>(offset);
602
603 *self = Self::from_primitive_allow_unknown(prim);
604 Ok(())
605 }
606 }
607 unsafe impl fidl::encoding::TypeMarker for Nl80211MessageType {
608 type Owned = Self;
609
610 #[inline(always)]
611 fn inline_align(_context: fidl::encoding::Context) -> usize {
612 std::mem::align_of::<u32>()
613 }
614
615 #[inline(always)]
616 fn inline_size(_context: fidl::encoding::Context) -> usize {
617 std::mem::size_of::<u32>()
618 }
619
620 #[inline(always)]
621 fn encode_is_copy() -> bool {
622 false
623 }
624
625 #[inline(always)]
626 fn decode_is_copy() -> bool {
627 false
628 }
629 }
630
631 impl fidl::encoding::ValueTypeMarker for Nl80211MessageType {
632 type Borrowed<'a> = Self;
633 #[inline(always)]
634 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
635 *value
636 }
637 }
638
639 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
640 for Nl80211MessageType
641 {
642 #[inline]
643 unsafe fn encode(
644 self,
645 encoder: &mut fidl::encoding::Encoder<'_, D>,
646 offset: usize,
647 _depth: fidl::encoding::Depth,
648 ) -> fidl::Result<()> {
649 encoder.debug_check_bounds::<Self>(offset);
650 encoder.write_num(self.into_primitive(), offset);
651 Ok(())
652 }
653 }
654
655 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211MessageType {
656 #[inline(always)]
657 fn new_empty() -> Self {
658 Self::unknown()
659 }
660
661 #[inline]
662 unsafe fn decode(
663 &mut self,
664 decoder: &mut fidl::encoding::Decoder<'_, D>,
665 offset: usize,
666 _depth: fidl::encoding::Depth,
667 ) -> fidl::Result<()> {
668 decoder.debug_check_bounds::<Self>(offset);
669 let prim = decoder.read_num::<u32>(offset);
670
671 *self = Self::from_primitive_allow_unknown(prim);
672 Ok(())
673 }
674 }
675 unsafe impl fidl::encoding::TypeMarker for StaIfaceCallbackState {
676 type Owned = Self;
677
678 #[inline(always)]
679 fn inline_align(_context: fidl::encoding::Context) -> usize {
680 std::mem::align_of::<u32>()
681 }
682
683 #[inline(always)]
684 fn inline_size(_context: fidl::encoding::Context) -> usize {
685 std::mem::size_of::<u32>()
686 }
687
688 #[inline(always)]
689 fn encode_is_copy() -> bool {
690 false
691 }
692
693 #[inline(always)]
694 fn decode_is_copy() -> bool {
695 false
696 }
697 }
698
699 impl fidl::encoding::ValueTypeMarker for StaIfaceCallbackState {
700 type Borrowed<'a> = Self;
701 #[inline(always)]
702 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
703 *value
704 }
705 }
706
707 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
708 for StaIfaceCallbackState
709 {
710 #[inline]
711 unsafe fn encode(
712 self,
713 encoder: &mut fidl::encoding::Encoder<'_, D>,
714 offset: usize,
715 _depth: fidl::encoding::Depth,
716 ) -> fidl::Result<()> {
717 encoder.debug_check_bounds::<Self>(offset);
718 encoder.write_num(self.into_primitive(), offset);
719 Ok(())
720 }
721 }
722
723 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StaIfaceCallbackState {
724 #[inline(always)]
725 fn new_empty() -> Self {
726 Self::unknown()
727 }
728
729 #[inline]
730 unsafe fn decode(
731 &mut self,
732 decoder: &mut fidl::encoding::Decoder<'_, D>,
733 offset: usize,
734 _depth: fidl::encoding::Depth,
735 ) -> fidl::Result<()> {
736 decoder.debug_check_bounds::<Self>(offset);
737 let prim = decoder.read_num::<u32>(offset);
738
739 *self = Self::from_primitive_allow_unknown(prim);
740 Ok(())
741 }
742 }
743
744 impl fidl::encoding::ValueTypeMarker for Nl80211MessageArray {
745 type Borrowed<'a> = &'a Self;
746 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
747 value
748 }
749 }
750
751 unsafe impl fidl::encoding::TypeMarker for Nl80211MessageArray {
752 type Owned = Self;
753
754 #[inline(always)]
755 fn inline_align(_context: fidl::encoding::Context) -> usize {
756 8
757 }
758
759 #[inline(always)]
760 fn inline_size(_context: fidl::encoding::Context) -> usize {
761 16
762 }
763 }
764
765 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211MessageArray, D>
766 for &Nl80211MessageArray
767 {
768 #[inline]
769 unsafe fn encode(
770 self,
771 encoder: &mut fidl::encoding::Encoder<'_, D>,
772 offset: usize,
773 _depth: fidl::encoding::Depth,
774 ) -> fidl::Result<()> {
775 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
776 fidl::encoding::Encode::<Nl80211MessageArray, D>::encode(
778 (
779 <fidl::encoding::UnboundedVector<Nl80211Message> as fidl::encoding::ValueTypeMarker>::borrow(&self.messages),
780 ),
781 encoder, offset, _depth
782 )
783 }
784 }
785 unsafe impl<
786 D: fidl::encoding::ResourceDialect,
787 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Nl80211Message>, D>,
788 > fidl::encoding::Encode<Nl80211MessageArray, D> for (T0,)
789 {
790 #[inline]
791 unsafe fn encode(
792 self,
793 encoder: &mut fidl::encoding::Encoder<'_, D>,
794 offset: usize,
795 depth: fidl::encoding::Depth,
796 ) -> fidl::Result<()> {
797 encoder.debug_check_bounds::<Nl80211MessageArray>(offset);
798 self.0.encode(encoder, offset + 0, depth)?;
802 Ok(())
803 }
804 }
805
806 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211MessageArray {
807 #[inline(always)]
808 fn new_empty() -> Self {
809 Self { messages: fidl::new_empty!(fidl::encoding::UnboundedVector<Nl80211Message>, D) }
810 }
811
812 #[inline]
813 unsafe fn decode(
814 &mut self,
815 decoder: &mut fidl::encoding::Decoder<'_, D>,
816 offset: usize,
817 _depth: fidl::encoding::Depth,
818 ) -> fidl::Result<()> {
819 decoder.debug_check_bounds::<Self>(offset);
820 fidl::decode!(
822 fidl::encoding::UnboundedVector<Nl80211Message>,
823 D,
824 &mut self.messages,
825 decoder,
826 offset + 0,
827 _depth
828 )?;
829 Ok(())
830 }
831 }
832
833 impl ChipConcurrencyCombination {
834 #[inline(always)]
835 fn max_ordinal_present(&self) -> u64 {
836 if let Some(_) = self.limits {
837 return 1;
838 }
839 0
840 }
841 }
842
843 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombination {
844 type Borrowed<'a> = &'a Self;
845 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
846 value
847 }
848 }
849
850 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombination {
851 type Owned = Self;
852
853 #[inline(always)]
854 fn inline_align(_context: fidl::encoding::Context) -> usize {
855 8
856 }
857
858 #[inline(always)]
859 fn inline_size(_context: fidl::encoding::Context) -> usize {
860 16
861 }
862 }
863
864 unsafe impl<D: fidl::encoding::ResourceDialect>
865 fidl::encoding::Encode<ChipConcurrencyCombination, D> for &ChipConcurrencyCombination
866 {
867 unsafe fn encode(
868 self,
869 encoder: &mut fidl::encoding::Encoder<'_, D>,
870 offset: usize,
871 mut depth: fidl::encoding::Depth,
872 ) -> fidl::Result<()> {
873 encoder.debug_check_bounds::<ChipConcurrencyCombination>(offset);
874 let max_ordinal: u64 = self.max_ordinal_present();
876 encoder.write_num(max_ordinal, offset);
877 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
878 if max_ordinal == 0 {
880 return Ok(());
881 }
882 depth.increment()?;
883 let envelope_size = 8;
884 let bytes_len = max_ordinal as usize * envelope_size;
885 #[allow(unused_variables)]
886 let offset = encoder.out_of_line_offset(bytes_len);
887 let mut _prev_end_offset: usize = 0;
888 if 1 > max_ordinal {
889 return Ok(());
890 }
891
892 let cur_offset: usize = (1 - 1) * envelope_size;
895
896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
898
899 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>, D>(
904 self.limits.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit> as fidl::encoding::ValueTypeMarker>::borrow),
905 encoder, offset + cur_offset, depth
906 )?;
907
908 _prev_end_offset = cur_offset + envelope_size;
909
910 Ok(())
911 }
912 }
913
914 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
915 for ChipConcurrencyCombination
916 {
917 #[inline(always)]
918 fn new_empty() -> Self {
919 Self::default()
920 }
921
922 unsafe fn decode(
923 &mut self,
924 decoder: &mut fidl::encoding::Decoder<'_, D>,
925 offset: usize,
926 mut depth: fidl::encoding::Depth,
927 ) -> fidl::Result<()> {
928 decoder.debug_check_bounds::<Self>(offset);
929 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
930 None => return Err(fidl::Error::NotNullable),
931 Some(len) => len,
932 };
933 if len == 0 {
935 return Ok(());
936 };
937 depth.increment()?;
938 let envelope_size = 8;
939 let bytes_len = len * envelope_size;
940 let offset = decoder.out_of_line_offset(bytes_len)?;
941 let mut _next_ordinal_to_read = 0;
943 let mut next_offset = offset;
944 let end_offset = offset + bytes_len;
945 _next_ordinal_to_read += 1;
946 if next_offset >= end_offset {
947 return Ok(());
948 }
949
950 while _next_ordinal_to_read < 1 {
952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
953 _next_ordinal_to_read += 1;
954 next_offset += envelope_size;
955 }
956
957 let next_out_of_line = decoder.next_out_of_line();
958 let handles_before = decoder.remaining_handles();
959 if let Some((inlined, num_bytes, num_handles)) =
960 fidl::encoding::decode_envelope_header(decoder, next_offset)?
961 {
962 let member_inline_size = <fidl::encoding::UnboundedVector<
963 ChipConcurrencyCombinationLimit,
964 > as fidl::encoding::TypeMarker>::inline_size(
965 decoder.context
966 );
967 if inlined != (member_inline_size <= 4) {
968 return Err(fidl::Error::InvalidInlineBitInEnvelope);
969 }
970 let inner_offset;
971 let mut inner_depth = depth.clone();
972 if inlined {
973 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
974 inner_offset = next_offset;
975 } else {
976 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
977 inner_depth.increment()?;
978 }
979 let val_ref = self.limits.get_or_insert_with(|| {
980 fidl::new_empty!(
981 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
982 D
983 )
984 });
985 fidl::decode!(
986 fidl::encoding::UnboundedVector<ChipConcurrencyCombinationLimit>,
987 D,
988 val_ref,
989 decoder,
990 inner_offset,
991 inner_depth
992 )?;
993 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
994 {
995 return Err(fidl::Error::InvalidNumBytesInEnvelope);
996 }
997 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
998 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
999 }
1000 }
1001
1002 next_offset += envelope_size;
1003
1004 while next_offset < end_offset {
1006 _next_ordinal_to_read += 1;
1007 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1008 next_offset += envelope_size;
1009 }
1010
1011 Ok(())
1012 }
1013 }
1014
1015 impl ChipConcurrencyCombinationLimit {
1016 #[inline(always)]
1017 fn max_ordinal_present(&self) -> u64 {
1018 if let Some(_) = self.max_ifaces {
1019 return 2;
1020 }
1021 if let Some(_) = self.types {
1022 return 1;
1023 }
1024 0
1025 }
1026 }
1027
1028 impl fidl::encoding::ValueTypeMarker for ChipConcurrencyCombinationLimit {
1029 type Borrowed<'a> = &'a Self;
1030 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1031 value
1032 }
1033 }
1034
1035 unsafe impl fidl::encoding::TypeMarker for ChipConcurrencyCombinationLimit {
1036 type Owned = Self;
1037
1038 #[inline(always)]
1039 fn inline_align(_context: fidl::encoding::Context) -> usize {
1040 8
1041 }
1042
1043 #[inline(always)]
1044 fn inline_size(_context: fidl::encoding::Context) -> usize {
1045 16
1046 }
1047 }
1048
1049 unsafe impl<D: fidl::encoding::ResourceDialect>
1050 fidl::encoding::Encode<ChipConcurrencyCombinationLimit, D>
1051 for &ChipConcurrencyCombinationLimit
1052 {
1053 unsafe fn encode(
1054 self,
1055 encoder: &mut fidl::encoding::Encoder<'_, D>,
1056 offset: usize,
1057 mut depth: fidl::encoding::Depth,
1058 ) -> fidl::Result<()> {
1059 encoder.debug_check_bounds::<ChipConcurrencyCombinationLimit>(offset);
1060 let max_ordinal: u64 = self.max_ordinal_present();
1062 encoder.write_num(max_ordinal, offset);
1063 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1064 if max_ordinal == 0 {
1066 return Ok(());
1067 }
1068 depth.increment()?;
1069 let envelope_size = 8;
1070 let bytes_len = max_ordinal as usize * envelope_size;
1071 #[allow(unused_variables)]
1072 let offset = encoder.out_of_line_offset(bytes_len);
1073 let mut _prev_end_offset: usize = 0;
1074 if 1 > max_ordinal {
1075 return Ok(());
1076 }
1077
1078 let cur_offset: usize = (1 - 1) * envelope_size;
1081
1082 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1084
1085 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D>(
1090 self.types.as_ref().map(<fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::ValueTypeMarker>::borrow),
1091 encoder, offset + cur_offset, depth
1092 )?;
1093
1094 _prev_end_offset = cur_offset + envelope_size;
1095 if 2 > max_ordinal {
1096 return Ok(());
1097 }
1098
1099 let cur_offset: usize = (2 - 1) * envelope_size;
1102
1103 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1105
1106 fidl::encoding::encode_in_envelope_optional::<u32, D>(
1111 self.max_ifaces.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1112 encoder,
1113 offset + cur_offset,
1114 depth,
1115 )?;
1116
1117 _prev_end_offset = cur_offset + envelope_size;
1118
1119 Ok(())
1120 }
1121 }
1122
1123 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1124 for ChipConcurrencyCombinationLimit
1125 {
1126 #[inline(always)]
1127 fn new_empty() -> Self {
1128 Self::default()
1129 }
1130
1131 unsafe fn decode(
1132 &mut self,
1133 decoder: &mut fidl::encoding::Decoder<'_, D>,
1134 offset: usize,
1135 mut depth: fidl::encoding::Depth,
1136 ) -> fidl::Result<()> {
1137 decoder.debug_check_bounds::<Self>(offset);
1138 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1139 None => return Err(fidl::Error::NotNullable),
1140 Some(len) => len,
1141 };
1142 if len == 0 {
1144 return Ok(());
1145 };
1146 depth.increment()?;
1147 let envelope_size = 8;
1148 let bytes_len = len * envelope_size;
1149 let offset = decoder.out_of_line_offset(bytes_len)?;
1150 let mut _next_ordinal_to_read = 0;
1152 let mut next_offset = offset;
1153 let end_offset = offset + bytes_len;
1154 _next_ordinal_to_read += 1;
1155 if next_offset >= end_offset {
1156 return Ok(());
1157 }
1158
1159 while _next_ordinal_to_read < 1 {
1161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1162 _next_ordinal_to_read += 1;
1163 next_offset += envelope_size;
1164 }
1165
1166 let next_out_of_line = decoder.next_out_of_line();
1167 let handles_before = decoder.remaining_handles();
1168 if let Some((inlined, num_bytes, num_handles)) =
1169 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1170 {
1171 let member_inline_size = <fidl::encoding::UnboundedVector<IfaceConcurrencyType> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1172 if inlined != (member_inline_size <= 4) {
1173 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1174 }
1175 let inner_offset;
1176 let mut inner_depth = depth.clone();
1177 if inlined {
1178 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1179 inner_offset = next_offset;
1180 } else {
1181 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1182 inner_depth.increment()?;
1183 }
1184 let val_ref = self.types.get_or_insert_with(|| {
1185 fidl::new_empty!(fidl::encoding::UnboundedVector<IfaceConcurrencyType>, D)
1186 });
1187 fidl::decode!(
1188 fidl::encoding::UnboundedVector<IfaceConcurrencyType>,
1189 D,
1190 val_ref,
1191 decoder,
1192 inner_offset,
1193 inner_depth
1194 )?;
1195 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1196 {
1197 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1198 }
1199 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1200 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1201 }
1202 }
1203
1204 next_offset += envelope_size;
1205 _next_ordinal_to_read += 1;
1206 if next_offset >= end_offset {
1207 return Ok(());
1208 }
1209
1210 while _next_ordinal_to_read < 2 {
1212 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1213 _next_ordinal_to_read += 1;
1214 next_offset += envelope_size;
1215 }
1216
1217 let next_out_of_line = decoder.next_out_of_line();
1218 let handles_before = decoder.remaining_handles();
1219 if let Some((inlined, num_bytes, num_handles)) =
1220 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1221 {
1222 let member_inline_size =
1223 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1224 if inlined != (member_inline_size <= 4) {
1225 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1226 }
1227 let inner_offset;
1228 let mut inner_depth = depth.clone();
1229 if inlined {
1230 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1231 inner_offset = next_offset;
1232 } else {
1233 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1234 inner_depth.increment()?;
1235 }
1236 let val_ref = self.max_ifaces.get_or_insert_with(|| fidl::new_empty!(u32, D));
1237 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
1238 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1239 {
1240 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1241 }
1242 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1243 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1244 }
1245 }
1246
1247 next_offset += envelope_size;
1248
1249 while next_offset < end_offset {
1251 _next_ordinal_to_read += 1;
1252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1253 next_offset += envelope_size;
1254 }
1255
1256 Ok(())
1257 }
1258 }
1259
1260 impl ChipMode {
1261 #[inline(always)]
1262 fn max_ordinal_present(&self) -> u64 {
1263 if let Some(_) = self.available_combinations {
1264 return 2;
1265 }
1266 if let Some(_) = self.id {
1267 return 1;
1268 }
1269 0
1270 }
1271 }
1272
1273 impl fidl::encoding::ValueTypeMarker for ChipMode {
1274 type Borrowed<'a> = &'a Self;
1275 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1276 value
1277 }
1278 }
1279
1280 unsafe impl fidl::encoding::TypeMarker for ChipMode {
1281 type Owned = Self;
1282
1283 #[inline(always)]
1284 fn inline_align(_context: fidl::encoding::Context) -> usize {
1285 8
1286 }
1287
1288 #[inline(always)]
1289 fn inline_size(_context: fidl::encoding::Context) -> usize {
1290 16
1291 }
1292 }
1293
1294 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChipMode, D> for &ChipMode {
1295 unsafe fn encode(
1296 self,
1297 encoder: &mut fidl::encoding::Encoder<'_, D>,
1298 offset: usize,
1299 mut depth: fidl::encoding::Depth,
1300 ) -> fidl::Result<()> {
1301 encoder.debug_check_bounds::<ChipMode>(offset);
1302 let max_ordinal: u64 = self.max_ordinal_present();
1304 encoder.write_num(max_ordinal, offset);
1305 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1306 if max_ordinal == 0 {
1308 return Ok(());
1309 }
1310 depth.increment()?;
1311 let envelope_size = 8;
1312 let bytes_len = max_ordinal as usize * envelope_size;
1313 #[allow(unused_variables)]
1314 let offset = encoder.out_of_line_offset(bytes_len);
1315 let mut _prev_end_offset: usize = 0;
1316 if 1 > max_ordinal {
1317 return Ok(());
1318 }
1319
1320 let cur_offset: usize = (1 - 1) * envelope_size;
1323
1324 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1326
1327 fidl::encoding::encode_in_envelope_optional::<u32, D>(
1332 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1333 encoder,
1334 offset + cur_offset,
1335 depth,
1336 )?;
1337
1338 _prev_end_offset = cur_offset + envelope_size;
1339 if 2 > max_ordinal {
1340 return Ok(());
1341 }
1342
1343 let cur_offset: usize = (2 - 1) * envelope_size;
1346
1347 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1349
1350 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D>(
1355 self.available_combinations.as_ref().map(<fidl::encoding::UnboundedVector<ChipConcurrencyCombination> as fidl::encoding::ValueTypeMarker>::borrow),
1356 encoder, offset + cur_offset, depth
1357 )?;
1358
1359 _prev_end_offset = cur_offset + envelope_size;
1360
1361 Ok(())
1362 }
1363 }
1364
1365 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChipMode {
1366 #[inline(always)]
1367 fn new_empty() -> Self {
1368 Self::default()
1369 }
1370
1371 unsafe fn decode(
1372 &mut self,
1373 decoder: &mut fidl::encoding::Decoder<'_, D>,
1374 offset: usize,
1375 mut depth: fidl::encoding::Depth,
1376 ) -> fidl::Result<()> {
1377 decoder.debug_check_bounds::<Self>(offset);
1378 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1379 None => return Err(fidl::Error::NotNullable),
1380 Some(len) => len,
1381 };
1382 if len == 0 {
1384 return Ok(());
1385 };
1386 depth.increment()?;
1387 let envelope_size = 8;
1388 let bytes_len = len * envelope_size;
1389 let offset = decoder.out_of_line_offset(bytes_len)?;
1390 let mut _next_ordinal_to_read = 0;
1392 let mut next_offset = offset;
1393 let end_offset = offset + bytes_len;
1394 _next_ordinal_to_read += 1;
1395 if next_offset >= end_offset {
1396 return Ok(());
1397 }
1398
1399 while _next_ordinal_to_read < 1 {
1401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1402 _next_ordinal_to_read += 1;
1403 next_offset += envelope_size;
1404 }
1405
1406 let next_out_of_line = decoder.next_out_of_line();
1407 let handles_before = decoder.remaining_handles();
1408 if let Some((inlined, num_bytes, num_handles)) =
1409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1410 {
1411 let member_inline_size =
1412 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1413 if inlined != (member_inline_size <= 4) {
1414 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1415 }
1416 let inner_offset;
1417 let mut inner_depth = depth.clone();
1418 if inlined {
1419 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1420 inner_offset = next_offset;
1421 } else {
1422 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1423 inner_depth.increment()?;
1424 }
1425 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
1426 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
1427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1428 {
1429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1430 }
1431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1433 }
1434 }
1435
1436 next_offset += envelope_size;
1437 _next_ordinal_to_read += 1;
1438 if next_offset >= end_offset {
1439 return Ok(());
1440 }
1441
1442 while _next_ordinal_to_read < 2 {
1444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1445 _next_ordinal_to_read += 1;
1446 next_offset += envelope_size;
1447 }
1448
1449 let next_out_of_line = decoder.next_out_of_line();
1450 let handles_before = decoder.remaining_handles();
1451 if let Some((inlined, num_bytes, num_handles)) =
1452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1453 {
1454 let member_inline_size = <fidl::encoding::UnboundedVector<
1455 ChipConcurrencyCombination,
1456 > as fidl::encoding::TypeMarker>::inline_size(
1457 decoder.context
1458 );
1459 if inlined != (member_inline_size <= 4) {
1460 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1461 }
1462 let inner_offset;
1463 let mut inner_depth = depth.clone();
1464 if inlined {
1465 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1466 inner_offset = next_offset;
1467 } else {
1468 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1469 inner_depth.increment()?;
1470 }
1471 let val_ref = self.available_combinations.get_or_insert_with(|| {
1472 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipConcurrencyCombination>, D)
1473 });
1474 fidl::decode!(
1475 fidl::encoding::UnboundedVector<ChipConcurrencyCombination>,
1476 D,
1477 val_ref,
1478 decoder,
1479 inner_offset,
1480 inner_depth
1481 )?;
1482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1483 {
1484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1485 }
1486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1488 }
1489 }
1490
1491 next_offset += envelope_size;
1492
1493 while next_offset < end_offset {
1495 _next_ordinal_to_read += 1;
1496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1497 next_offset += envelope_size;
1498 }
1499
1500 Ok(())
1501 }
1502 }
1503
1504 impl Nl80211Message {
1505 #[inline(always)]
1506 fn max_ordinal_present(&self) -> u64 {
1507 if let Some(_) = self.payload {
1508 return 2;
1509 }
1510 if let Some(_) = self.message_type {
1511 return 1;
1512 }
1513 0
1514 }
1515 }
1516
1517 impl fidl::encoding::ValueTypeMarker for Nl80211Message {
1518 type Borrowed<'a> = &'a Self;
1519 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1520 value
1521 }
1522 }
1523
1524 unsafe impl fidl::encoding::TypeMarker for Nl80211Message {
1525 type Owned = Self;
1526
1527 #[inline(always)]
1528 fn inline_align(_context: fidl::encoding::Context) -> usize {
1529 8
1530 }
1531
1532 #[inline(always)]
1533 fn inline_size(_context: fidl::encoding::Context) -> usize {
1534 16
1535 }
1536 }
1537
1538 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Nl80211Message, D>
1539 for &Nl80211Message
1540 {
1541 unsafe fn encode(
1542 self,
1543 encoder: &mut fidl::encoding::Encoder<'_, D>,
1544 offset: usize,
1545 mut depth: fidl::encoding::Depth,
1546 ) -> fidl::Result<()> {
1547 encoder.debug_check_bounds::<Nl80211Message>(offset);
1548 let max_ordinal: u64 = self.max_ordinal_present();
1550 encoder.write_num(max_ordinal, offset);
1551 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1552 if max_ordinal == 0 {
1554 return Ok(());
1555 }
1556 depth.increment()?;
1557 let envelope_size = 8;
1558 let bytes_len = max_ordinal as usize * envelope_size;
1559 #[allow(unused_variables)]
1560 let offset = encoder.out_of_line_offset(bytes_len);
1561 let mut _prev_end_offset: usize = 0;
1562 if 1 > max_ordinal {
1563 return Ok(());
1564 }
1565
1566 let cur_offset: usize = (1 - 1) * envelope_size;
1569
1570 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1572
1573 fidl::encoding::encode_in_envelope_optional::<Nl80211MessageType, D>(
1578 self.message_type
1579 .as_ref()
1580 .map(<Nl80211MessageType as fidl::encoding::ValueTypeMarker>::borrow),
1581 encoder,
1582 offset + cur_offset,
1583 depth,
1584 )?;
1585
1586 _prev_end_offset = cur_offset + envelope_size;
1587 if 2 > max_ordinal {
1588 return Ok(());
1589 }
1590
1591 let cur_offset: usize = (2 - 1) * envelope_size;
1594
1595 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1597
1598 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
1603 self.payload.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
1604 encoder, offset + cur_offset, depth
1605 )?;
1606
1607 _prev_end_offset = cur_offset + envelope_size;
1608
1609 Ok(())
1610 }
1611 }
1612
1613 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Nl80211Message {
1614 #[inline(always)]
1615 fn new_empty() -> Self {
1616 Self::default()
1617 }
1618
1619 unsafe fn decode(
1620 &mut self,
1621 decoder: &mut fidl::encoding::Decoder<'_, D>,
1622 offset: usize,
1623 mut depth: fidl::encoding::Depth,
1624 ) -> fidl::Result<()> {
1625 decoder.debug_check_bounds::<Self>(offset);
1626 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1627 None => return Err(fidl::Error::NotNullable),
1628 Some(len) => len,
1629 };
1630 if len == 0 {
1632 return Ok(());
1633 };
1634 depth.increment()?;
1635 let envelope_size = 8;
1636 let bytes_len = len * envelope_size;
1637 let offset = decoder.out_of_line_offset(bytes_len)?;
1638 let mut _next_ordinal_to_read = 0;
1640 let mut next_offset = offset;
1641 let end_offset = offset + bytes_len;
1642 _next_ordinal_to_read += 1;
1643 if next_offset >= end_offset {
1644 return Ok(());
1645 }
1646
1647 while _next_ordinal_to_read < 1 {
1649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1650 _next_ordinal_to_read += 1;
1651 next_offset += envelope_size;
1652 }
1653
1654 let next_out_of_line = decoder.next_out_of_line();
1655 let handles_before = decoder.remaining_handles();
1656 if let Some((inlined, num_bytes, num_handles)) =
1657 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1658 {
1659 let member_inline_size =
1660 <Nl80211MessageType as fidl::encoding::TypeMarker>::inline_size(
1661 decoder.context,
1662 );
1663 if inlined != (member_inline_size <= 4) {
1664 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1665 }
1666 let inner_offset;
1667 let mut inner_depth = depth.clone();
1668 if inlined {
1669 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1670 inner_offset = next_offset;
1671 } else {
1672 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1673 inner_depth.increment()?;
1674 }
1675 let val_ref = self
1676 .message_type
1677 .get_or_insert_with(|| fidl::new_empty!(Nl80211MessageType, D));
1678 fidl::decode!(Nl80211MessageType, D, val_ref, decoder, inner_offset, inner_depth)?;
1679 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1680 {
1681 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1682 }
1683 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1684 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1685 }
1686 }
1687
1688 next_offset += envelope_size;
1689 _next_ordinal_to_read += 1;
1690 if next_offset >= end_offset {
1691 return Ok(());
1692 }
1693
1694 while _next_ordinal_to_read < 2 {
1696 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1697 _next_ordinal_to_read += 1;
1698 next_offset += envelope_size;
1699 }
1700
1701 let next_out_of_line = decoder.next_out_of_line();
1702 let handles_before = decoder.remaining_handles();
1703 if let Some((inlined, num_bytes, num_handles)) =
1704 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1705 {
1706 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1707 if inlined != (member_inline_size <= 4) {
1708 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1709 }
1710 let inner_offset;
1711 let mut inner_depth = depth.clone();
1712 if inlined {
1713 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1714 inner_offset = next_offset;
1715 } else {
1716 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1717 inner_depth.increment()?;
1718 }
1719 let val_ref = self.payload.get_or_insert_with(|| {
1720 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
1721 });
1722 fidl::decode!(
1723 fidl::encoding::UnboundedVector<u8>,
1724 D,
1725 val_ref,
1726 decoder,
1727 inner_offset,
1728 inner_depth
1729 )?;
1730 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1731 {
1732 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1733 }
1734 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1735 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1736 }
1737 }
1738
1739 next_offset += envelope_size;
1740
1741 while next_offset < end_offset {
1743 _next_ordinal_to_read += 1;
1744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1745 next_offset += envelope_size;
1746 }
1747
1748 Ok(())
1749 }
1750 }
1751
1752 impl SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
1753 #[inline(always)]
1754 fn max_ordinal_present(&self) -> u64 {
1755 if let Some(_) = self.timed_out {
1756 return 4;
1757 }
1758 if let Some(_) = self.status_code {
1759 return 3;
1760 }
1761 if let Some(_) = self.bssid {
1762 return 2;
1763 }
1764 if let Some(_) = self.ssid {
1765 return 1;
1766 }
1767 0
1768 }
1769 }
1770
1771 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
1772 type Borrowed<'a> = &'a Self;
1773 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1774 value
1775 }
1776 }
1777
1778 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnAssociationRejectedRequest {
1779 type Owned = Self;
1780
1781 #[inline(always)]
1782 fn inline_align(_context: fidl::encoding::Context) -> usize {
1783 8
1784 }
1785
1786 #[inline(always)]
1787 fn inline_size(_context: fidl::encoding::Context) -> usize {
1788 16
1789 }
1790 }
1791
1792 unsafe impl<D: fidl::encoding::ResourceDialect>
1793 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnAssociationRejectedRequest, D>
1794 for &SupplicantStaIfaceCallbackOnAssociationRejectedRequest
1795 {
1796 unsafe fn encode(
1797 self,
1798 encoder: &mut fidl::encoding::Encoder<'_, D>,
1799 offset: usize,
1800 mut depth: fidl::encoding::Depth,
1801 ) -> fidl::Result<()> {
1802 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnAssociationRejectedRequest>(
1803 offset,
1804 );
1805 let max_ordinal: u64 = self.max_ordinal_present();
1807 encoder.write_num(max_ordinal, offset);
1808 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1809 if max_ordinal == 0 {
1811 return Ok(());
1812 }
1813 depth.increment()?;
1814 let envelope_size = 8;
1815 let bytes_len = max_ordinal as usize * envelope_size;
1816 #[allow(unused_variables)]
1817 let offset = encoder.out_of_line_offset(bytes_len);
1818 let mut _prev_end_offset: usize = 0;
1819 if 1 > max_ordinal {
1820 return Ok(());
1821 }
1822
1823 let cur_offset: usize = (1 - 1) * envelope_size;
1826
1827 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1829
1830 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
1835 self.ssid.as_ref().map(
1836 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
1837 ),
1838 encoder,
1839 offset + cur_offset,
1840 depth,
1841 )?;
1842
1843 _prev_end_offset = cur_offset + envelope_size;
1844 if 2 > max_ordinal {
1845 return Ok(());
1846 }
1847
1848 let cur_offset: usize = (2 - 1) * envelope_size;
1851
1852 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1854
1855 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
1860 self.bssid
1861 .as_ref()
1862 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
1863 encoder,
1864 offset + cur_offset,
1865 depth,
1866 )?;
1867
1868 _prev_end_offset = cur_offset + envelope_size;
1869 if 3 > max_ordinal {
1870 return Ok(());
1871 }
1872
1873 let cur_offset: usize = (3 - 1) * envelope_size;
1876
1877 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1879
1880 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::StatusCode, D>(
1885 self.status_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::ValueTypeMarker>::borrow),
1886 encoder, offset + cur_offset, depth
1887 )?;
1888
1889 _prev_end_offset = cur_offset + envelope_size;
1890 if 4 > max_ordinal {
1891 return Ok(());
1892 }
1893
1894 let cur_offset: usize = (4 - 1) * envelope_size;
1897
1898 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1900
1901 fidl::encoding::encode_in_envelope_optional::<bool, D>(
1906 self.timed_out.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1907 encoder,
1908 offset + cur_offset,
1909 depth,
1910 )?;
1911
1912 _prev_end_offset = cur_offset + envelope_size;
1913
1914 Ok(())
1915 }
1916 }
1917
1918 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1919 for SupplicantStaIfaceCallbackOnAssociationRejectedRequest
1920 {
1921 #[inline(always)]
1922 fn new_empty() -> Self {
1923 Self::default()
1924 }
1925
1926 unsafe fn decode(
1927 &mut self,
1928 decoder: &mut fidl::encoding::Decoder<'_, D>,
1929 offset: usize,
1930 mut depth: fidl::encoding::Depth,
1931 ) -> fidl::Result<()> {
1932 decoder.debug_check_bounds::<Self>(offset);
1933 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1934 None => return Err(fidl::Error::NotNullable),
1935 Some(len) => len,
1936 };
1937 if len == 0 {
1939 return Ok(());
1940 };
1941 depth.increment()?;
1942 let envelope_size = 8;
1943 let bytes_len = len * envelope_size;
1944 let offset = decoder.out_of_line_offset(bytes_len)?;
1945 let mut _next_ordinal_to_read = 0;
1947 let mut next_offset = offset;
1948 let end_offset = offset + bytes_len;
1949 _next_ordinal_to_read += 1;
1950 if next_offset >= end_offset {
1951 return Ok(());
1952 }
1953
1954 while _next_ordinal_to_read < 1 {
1956 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1957 _next_ordinal_to_read += 1;
1958 next_offset += envelope_size;
1959 }
1960
1961 let next_out_of_line = decoder.next_out_of_line();
1962 let handles_before = decoder.remaining_handles();
1963 if let Some((inlined, num_bytes, num_handles)) =
1964 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1965 {
1966 let member_inline_size =
1967 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
1968 decoder.context,
1969 );
1970 if inlined != (member_inline_size <= 4) {
1971 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1972 }
1973 let inner_offset;
1974 let mut inner_depth = depth.clone();
1975 if inlined {
1976 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1977 inner_offset = next_offset;
1978 } else {
1979 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1980 inner_depth.increment()?;
1981 }
1982 let val_ref = self
1983 .ssid
1984 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
1985 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
1986 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1987 {
1988 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1989 }
1990 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1991 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1992 }
1993 }
1994
1995 next_offset += envelope_size;
1996 _next_ordinal_to_read += 1;
1997 if next_offset >= end_offset {
1998 return Ok(());
1999 }
2000
2001 while _next_ordinal_to_read < 2 {
2003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2004 _next_ordinal_to_read += 1;
2005 next_offset += envelope_size;
2006 }
2007
2008 let next_out_of_line = decoder.next_out_of_line();
2009 let handles_before = decoder.remaining_handles();
2010 if let Some((inlined, num_bytes, num_handles)) =
2011 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2012 {
2013 let member_inline_size =
2014 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
2015 decoder.context,
2016 );
2017 if inlined != (member_inline_size <= 4) {
2018 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2019 }
2020 let inner_offset;
2021 let mut inner_depth = depth.clone();
2022 if inlined {
2023 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2024 inner_offset = next_offset;
2025 } else {
2026 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2027 inner_depth.increment()?;
2028 }
2029 let val_ref = self
2030 .bssid
2031 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
2032 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
2033 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2034 {
2035 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2036 }
2037 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2038 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2039 }
2040 }
2041
2042 next_offset += envelope_size;
2043 _next_ordinal_to_read += 1;
2044 if next_offset >= end_offset {
2045 return Ok(());
2046 }
2047
2048 while _next_ordinal_to_read < 3 {
2050 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2051 _next_ordinal_to_read += 1;
2052 next_offset += envelope_size;
2053 }
2054
2055 let next_out_of_line = decoder.next_out_of_line();
2056 let handles_before = decoder.remaining_handles();
2057 if let Some((inlined, num_bytes, num_handles)) =
2058 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2059 {
2060 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::StatusCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2061 if inlined != (member_inline_size <= 4) {
2062 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2063 }
2064 let inner_offset;
2065 let mut inner_depth = depth.clone();
2066 if inlined {
2067 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2068 inner_offset = next_offset;
2069 } else {
2070 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2071 inner_depth.increment()?;
2072 }
2073 let val_ref = self.status_code.get_or_insert_with(|| {
2074 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::StatusCode, D)
2075 });
2076 fidl::decode!(
2077 fidl_fuchsia_wlan_ieee80211__common::StatusCode,
2078 D,
2079 val_ref,
2080 decoder,
2081 inner_offset,
2082 inner_depth
2083 )?;
2084 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2085 {
2086 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2087 }
2088 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2089 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2090 }
2091 }
2092
2093 next_offset += envelope_size;
2094 _next_ordinal_to_read += 1;
2095 if next_offset >= end_offset {
2096 return Ok(());
2097 }
2098
2099 while _next_ordinal_to_read < 4 {
2101 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2102 _next_ordinal_to_read += 1;
2103 next_offset += envelope_size;
2104 }
2105
2106 let next_out_of_line = decoder.next_out_of_line();
2107 let handles_before = decoder.remaining_handles();
2108 if let Some((inlined, num_bytes, num_handles)) =
2109 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2110 {
2111 let member_inline_size =
2112 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2113 if inlined != (member_inline_size <= 4) {
2114 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2115 }
2116 let inner_offset;
2117 let mut inner_depth = depth.clone();
2118 if inlined {
2119 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2120 inner_offset = next_offset;
2121 } else {
2122 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2123 inner_depth.increment()?;
2124 }
2125 let val_ref = self.timed_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
2126 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2127 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2128 {
2129 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2130 }
2131 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2132 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2133 }
2134 }
2135
2136 next_offset += envelope_size;
2137
2138 while next_offset < end_offset {
2140 _next_ordinal_to_read += 1;
2141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2142 next_offset += envelope_size;
2143 }
2144
2145 Ok(())
2146 }
2147 }
2148
2149 impl SupplicantStaIfaceCallbackOnDisconnectedRequest {
2150 #[inline(always)]
2151 fn max_ordinal_present(&self) -> u64 {
2152 if let Some(_) = self.reason_code {
2153 return 3;
2154 }
2155 if let Some(_) = self.locally_generated {
2156 return 2;
2157 }
2158 if let Some(_) = self.bssid {
2159 return 1;
2160 }
2161 0
2162 }
2163 }
2164
2165 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
2166 type Borrowed<'a> = &'a Self;
2167 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2168 value
2169 }
2170 }
2171
2172 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnDisconnectedRequest {
2173 type Owned = Self;
2174
2175 #[inline(always)]
2176 fn inline_align(_context: fidl::encoding::Context) -> usize {
2177 8
2178 }
2179
2180 #[inline(always)]
2181 fn inline_size(_context: fidl::encoding::Context) -> usize {
2182 16
2183 }
2184 }
2185
2186 unsafe impl<D: fidl::encoding::ResourceDialect>
2187 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnDisconnectedRequest, D>
2188 for &SupplicantStaIfaceCallbackOnDisconnectedRequest
2189 {
2190 unsafe fn encode(
2191 self,
2192 encoder: &mut fidl::encoding::Encoder<'_, D>,
2193 offset: usize,
2194 mut depth: fidl::encoding::Depth,
2195 ) -> fidl::Result<()> {
2196 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnDisconnectedRequest>(offset);
2197 let max_ordinal: u64 = self.max_ordinal_present();
2199 encoder.write_num(max_ordinal, offset);
2200 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2201 if max_ordinal == 0 {
2203 return Ok(());
2204 }
2205 depth.increment()?;
2206 let envelope_size = 8;
2207 let bytes_len = max_ordinal as usize * envelope_size;
2208 #[allow(unused_variables)]
2209 let offset = encoder.out_of_line_offset(bytes_len);
2210 let mut _prev_end_offset: usize = 0;
2211 if 1 > max_ordinal {
2212 return Ok(());
2213 }
2214
2215 let cur_offset: usize = (1 - 1) * envelope_size;
2218
2219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2221
2222 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
2227 self.bssid
2228 .as_ref()
2229 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
2230 encoder,
2231 offset + cur_offset,
2232 depth,
2233 )?;
2234
2235 _prev_end_offset = cur_offset + envelope_size;
2236 if 2 > max_ordinal {
2237 return Ok(());
2238 }
2239
2240 let cur_offset: usize = (2 - 1) * envelope_size;
2243
2244 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2246
2247 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2252 self.locally_generated
2253 .as_ref()
2254 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2255 encoder,
2256 offset + cur_offset,
2257 depth,
2258 )?;
2259
2260 _prev_end_offset = cur_offset + envelope_size;
2261 if 3 > max_ordinal {
2262 return Ok(());
2263 }
2264
2265 let cur_offset: usize = (3 - 1) * envelope_size;
2268
2269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2271
2272 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D>(
2277 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::ValueTypeMarker>::borrow),
2278 encoder, offset + cur_offset, depth
2279 )?;
2280
2281 _prev_end_offset = cur_offset + envelope_size;
2282
2283 Ok(())
2284 }
2285 }
2286
2287 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2288 for SupplicantStaIfaceCallbackOnDisconnectedRequest
2289 {
2290 #[inline(always)]
2291 fn new_empty() -> Self {
2292 Self::default()
2293 }
2294
2295 unsafe fn decode(
2296 &mut self,
2297 decoder: &mut fidl::encoding::Decoder<'_, D>,
2298 offset: usize,
2299 mut depth: fidl::encoding::Depth,
2300 ) -> fidl::Result<()> {
2301 decoder.debug_check_bounds::<Self>(offset);
2302 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2303 None => return Err(fidl::Error::NotNullable),
2304 Some(len) => len,
2305 };
2306 if len == 0 {
2308 return Ok(());
2309 };
2310 depth.increment()?;
2311 let envelope_size = 8;
2312 let bytes_len = len * envelope_size;
2313 let offset = decoder.out_of_line_offset(bytes_len)?;
2314 let mut _next_ordinal_to_read = 0;
2316 let mut next_offset = offset;
2317 let end_offset = offset + bytes_len;
2318 _next_ordinal_to_read += 1;
2319 if next_offset >= end_offset {
2320 return Ok(());
2321 }
2322
2323 while _next_ordinal_to_read < 1 {
2325 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2326 _next_ordinal_to_read += 1;
2327 next_offset += envelope_size;
2328 }
2329
2330 let next_out_of_line = decoder.next_out_of_line();
2331 let handles_before = decoder.remaining_handles();
2332 if let Some((inlined, num_bytes, num_handles)) =
2333 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2334 {
2335 let member_inline_size =
2336 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
2337 decoder.context,
2338 );
2339 if inlined != (member_inline_size <= 4) {
2340 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2341 }
2342 let inner_offset;
2343 let mut inner_depth = depth.clone();
2344 if inlined {
2345 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2346 inner_offset = next_offset;
2347 } else {
2348 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2349 inner_depth.increment()?;
2350 }
2351 let val_ref = self
2352 .bssid
2353 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
2354 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
2355 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2356 {
2357 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2358 }
2359 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2360 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2361 }
2362 }
2363
2364 next_offset += envelope_size;
2365 _next_ordinal_to_read += 1;
2366 if next_offset >= end_offset {
2367 return Ok(());
2368 }
2369
2370 while _next_ordinal_to_read < 2 {
2372 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2373 _next_ordinal_to_read += 1;
2374 next_offset += envelope_size;
2375 }
2376
2377 let next_out_of_line = decoder.next_out_of_line();
2378 let handles_before = decoder.remaining_handles();
2379 if let Some((inlined, num_bytes, num_handles)) =
2380 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2381 {
2382 let member_inline_size =
2383 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2384 if inlined != (member_inline_size <= 4) {
2385 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2386 }
2387 let inner_offset;
2388 let mut inner_depth = depth.clone();
2389 if inlined {
2390 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2391 inner_offset = next_offset;
2392 } else {
2393 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2394 inner_depth.increment()?;
2395 }
2396 let val_ref =
2397 self.locally_generated.get_or_insert_with(|| fidl::new_empty!(bool, D));
2398 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2399 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2400 {
2401 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2402 }
2403 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2404 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2405 }
2406 }
2407
2408 next_offset += envelope_size;
2409 _next_ordinal_to_read += 1;
2410 if next_offset >= end_offset {
2411 return Ok(());
2412 }
2413
2414 while _next_ordinal_to_read < 3 {
2416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2417 _next_ordinal_to_read += 1;
2418 next_offset += envelope_size;
2419 }
2420
2421 let next_out_of_line = decoder.next_out_of_line();
2422 let handles_before = decoder.remaining_handles();
2423 if let Some((inlined, num_bytes, num_handles)) =
2424 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2425 {
2426 let member_inline_size = <fidl_fuchsia_wlan_ieee80211__common::ReasonCode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2427 if inlined != (member_inline_size <= 4) {
2428 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2429 }
2430 let inner_offset;
2431 let mut inner_depth = depth.clone();
2432 if inlined {
2433 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2434 inner_offset = next_offset;
2435 } else {
2436 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2437 inner_depth.increment()?;
2438 }
2439 let val_ref = self.reason_code.get_or_insert_with(|| {
2440 fidl::new_empty!(fidl_fuchsia_wlan_ieee80211__common::ReasonCode, D)
2441 });
2442 fidl::decode!(
2443 fidl_fuchsia_wlan_ieee80211__common::ReasonCode,
2444 D,
2445 val_ref,
2446 decoder,
2447 inner_offset,
2448 inner_depth
2449 )?;
2450 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2451 {
2452 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2453 }
2454 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2455 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2456 }
2457 }
2458
2459 next_offset += envelope_size;
2460
2461 while next_offset < end_offset {
2463 _next_ordinal_to_read += 1;
2464 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2465 next_offset += envelope_size;
2466 }
2467
2468 Ok(())
2469 }
2470 }
2471
2472 impl SupplicantStaIfaceCallbackOnStateChangedRequest {
2473 #[inline(always)]
2474 fn max_ordinal_present(&self) -> u64 {
2475 if let Some(_) = self.ssid {
2476 return 4;
2477 }
2478 if let Some(_) = self.id {
2479 return 3;
2480 }
2481 if let Some(_) = self.bssid {
2482 return 2;
2483 }
2484 if let Some(_) = self.new_state {
2485 return 1;
2486 }
2487 0
2488 }
2489 }
2490
2491 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
2492 type Borrowed<'a> = &'a Self;
2493 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2494 value
2495 }
2496 }
2497
2498 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceCallbackOnStateChangedRequest {
2499 type Owned = Self;
2500
2501 #[inline(always)]
2502 fn inline_align(_context: fidl::encoding::Context) -> usize {
2503 8
2504 }
2505
2506 #[inline(always)]
2507 fn inline_size(_context: fidl::encoding::Context) -> usize {
2508 16
2509 }
2510 }
2511
2512 unsafe impl<D: fidl::encoding::ResourceDialect>
2513 fidl::encoding::Encode<SupplicantStaIfaceCallbackOnStateChangedRequest, D>
2514 for &SupplicantStaIfaceCallbackOnStateChangedRequest
2515 {
2516 unsafe fn encode(
2517 self,
2518 encoder: &mut fidl::encoding::Encoder<'_, D>,
2519 offset: usize,
2520 mut depth: fidl::encoding::Depth,
2521 ) -> fidl::Result<()> {
2522 encoder.debug_check_bounds::<SupplicantStaIfaceCallbackOnStateChangedRequest>(offset);
2523 let max_ordinal: u64 = self.max_ordinal_present();
2525 encoder.write_num(max_ordinal, offset);
2526 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2527 if max_ordinal == 0 {
2529 return Ok(());
2530 }
2531 depth.increment()?;
2532 let envelope_size = 8;
2533 let bytes_len = max_ordinal as usize * envelope_size;
2534 #[allow(unused_variables)]
2535 let offset = encoder.out_of_line_offset(bytes_len);
2536 let mut _prev_end_offset: usize = 0;
2537 if 1 > max_ordinal {
2538 return Ok(());
2539 }
2540
2541 let cur_offset: usize = (1 - 1) * envelope_size;
2544
2545 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2547
2548 fidl::encoding::encode_in_envelope_optional::<StaIfaceCallbackState, D>(
2553 self.new_state
2554 .as_ref()
2555 .map(<StaIfaceCallbackState as fidl::encoding::ValueTypeMarker>::borrow),
2556 encoder,
2557 offset + cur_offset,
2558 depth,
2559 )?;
2560
2561 _prev_end_offset = cur_offset + envelope_size;
2562 if 2 > max_ordinal {
2563 return Ok(());
2564 }
2565
2566 let cur_offset: usize = (2 - 1) * envelope_size;
2569
2570 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2572
2573 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
2578 self.bssid
2579 .as_ref()
2580 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
2581 encoder,
2582 offset + cur_offset,
2583 depth,
2584 )?;
2585
2586 _prev_end_offset = cur_offset + envelope_size;
2587 if 3 > max_ordinal {
2588 return Ok(());
2589 }
2590
2591 let cur_offset: usize = (3 - 1) * envelope_size;
2594
2595 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2597
2598 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2603 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2604 encoder,
2605 offset + cur_offset,
2606 depth,
2607 )?;
2608
2609 _prev_end_offset = cur_offset + envelope_size;
2610 if 4 > max_ordinal {
2611 return Ok(());
2612 }
2613
2614 let cur_offset: usize = (4 - 1) * envelope_size;
2617
2618 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2620
2621 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
2626 self.ssid.as_ref().map(
2627 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
2628 ),
2629 encoder,
2630 offset + cur_offset,
2631 depth,
2632 )?;
2633
2634 _prev_end_offset = cur_offset + envelope_size;
2635
2636 Ok(())
2637 }
2638 }
2639
2640 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2641 for SupplicantStaIfaceCallbackOnStateChangedRequest
2642 {
2643 #[inline(always)]
2644 fn new_empty() -> Self {
2645 Self::default()
2646 }
2647
2648 unsafe fn decode(
2649 &mut self,
2650 decoder: &mut fidl::encoding::Decoder<'_, D>,
2651 offset: usize,
2652 mut depth: fidl::encoding::Depth,
2653 ) -> fidl::Result<()> {
2654 decoder.debug_check_bounds::<Self>(offset);
2655 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2656 None => return Err(fidl::Error::NotNullable),
2657 Some(len) => len,
2658 };
2659 if len == 0 {
2661 return Ok(());
2662 };
2663 depth.increment()?;
2664 let envelope_size = 8;
2665 let bytes_len = len * envelope_size;
2666 let offset = decoder.out_of_line_offset(bytes_len)?;
2667 let mut _next_ordinal_to_read = 0;
2669 let mut next_offset = offset;
2670 let end_offset = offset + bytes_len;
2671 _next_ordinal_to_read += 1;
2672 if next_offset >= end_offset {
2673 return Ok(());
2674 }
2675
2676 while _next_ordinal_to_read < 1 {
2678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2679 _next_ordinal_to_read += 1;
2680 next_offset += envelope_size;
2681 }
2682
2683 let next_out_of_line = decoder.next_out_of_line();
2684 let handles_before = decoder.remaining_handles();
2685 if let Some((inlined, num_bytes, num_handles)) =
2686 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2687 {
2688 let member_inline_size =
2689 <StaIfaceCallbackState as fidl::encoding::TypeMarker>::inline_size(
2690 decoder.context,
2691 );
2692 if inlined != (member_inline_size <= 4) {
2693 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2694 }
2695 let inner_offset;
2696 let mut inner_depth = depth.clone();
2697 if inlined {
2698 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2699 inner_offset = next_offset;
2700 } else {
2701 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2702 inner_depth.increment()?;
2703 }
2704 let val_ref = self
2705 .new_state
2706 .get_or_insert_with(|| fidl::new_empty!(StaIfaceCallbackState, D));
2707 fidl::decode!(
2708 StaIfaceCallbackState,
2709 D,
2710 val_ref,
2711 decoder,
2712 inner_offset,
2713 inner_depth
2714 )?;
2715 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2716 {
2717 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2718 }
2719 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2720 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2721 }
2722 }
2723
2724 next_offset += envelope_size;
2725 _next_ordinal_to_read += 1;
2726 if next_offset >= end_offset {
2727 return Ok(());
2728 }
2729
2730 while _next_ordinal_to_read < 2 {
2732 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2733 _next_ordinal_to_read += 1;
2734 next_offset += envelope_size;
2735 }
2736
2737 let next_out_of_line = decoder.next_out_of_line();
2738 let handles_before = decoder.remaining_handles();
2739 if let Some((inlined, num_bytes, num_handles)) =
2740 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2741 {
2742 let member_inline_size =
2743 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
2744 decoder.context,
2745 );
2746 if inlined != (member_inline_size <= 4) {
2747 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2748 }
2749 let inner_offset;
2750 let mut inner_depth = depth.clone();
2751 if inlined {
2752 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2753 inner_offset = next_offset;
2754 } else {
2755 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2756 inner_depth.increment()?;
2757 }
2758 let val_ref = self
2759 .bssid
2760 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
2761 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
2762 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2763 {
2764 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2765 }
2766 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2767 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2768 }
2769 }
2770
2771 next_offset += envelope_size;
2772 _next_ordinal_to_read += 1;
2773 if next_offset >= end_offset {
2774 return Ok(());
2775 }
2776
2777 while _next_ordinal_to_read < 3 {
2779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2780 _next_ordinal_to_read += 1;
2781 next_offset += envelope_size;
2782 }
2783
2784 let next_out_of_line = decoder.next_out_of_line();
2785 let handles_before = decoder.remaining_handles();
2786 if let Some((inlined, num_bytes, num_handles)) =
2787 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2788 {
2789 let member_inline_size =
2790 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2791 if inlined != (member_inline_size <= 4) {
2792 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2793 }
2794 let inner_offset;
2795 let mut inner_depth = depth.clone();
2796 if inlined {
2797 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2798 inner_offset = next_offset;
2799 } else {
2800 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2801 inner_depth.increment()?;
2802 }
2803 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
2804 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2805 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2806 {
2807 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2808 }
2809 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2810 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2811 }
2812 }
2813
2814 next_offset += envelope_size;
2815 _next_ordinal_to_read += 1;
2816 if next_offset >= end_offset {
2817 return Ok(());
2818 }
2819
2820 while _next_ordinal_to_read < 4 {
2822 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2823 _next_ordinal_to_read += 1;
2824 next_offset += envelope_size;
2825 }
2826
2827 let next_out_of_line = decoder.next_out_of_line();
2828 let handles_before = decoder.remaining_handles();
2829 if let Some((inlined, num_bytes, num_handles)) =
2830 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2831 {
2832 let member_inline_size =
2833 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
2834 decoder.context,
2835 );
2836 if inlined != (member_inline_size <= 4) {
2837 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2838 }
2839 let inner_offset;
2840 let mut inner_depth = depth.clone();
2841 if inlined {
2842 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2843 inner_offset = next_offset;
2844 } else {
2845 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2846 inner_depth.increment()?;
2847 }
2848 let val_ref = self
2849 .ssid
2850 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
2851 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
2852 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2853 {
2854 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2855 }
2856 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2857 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2858 }
2859 }
2860
2861 next_offset += envelope_size;
2862
2863 while next_offset < end_offset {
2865 _next_ordinal_to_read += 1;
2866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2867 next_offset += envelope_size;
2868 }
2869
2870 Ok(())
2871 }
2872 }
2873
2874 impl SupplicantStaIfaceGetMacAddressResponse {
2875 #[inline(always)]
2876 fn max_ordinal_present(&self) -> u64 {
2877 if let Some(_) = self.mac_addr {
2878 return 1;
2879 }
2880 0
2881 }
2882 }
2883
2884 impl fidl::encoding::ValueTypeMarker for SupplicantStaIfaceGetMacAddressResponse {
2885 type Borrowed<'a> = &'a Self;
2886 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2887 value
2888 }
2889 }
2890
2891 unsafe impl fidl::encoding::TypeMarker for SupplicantStaIfaceGetMacAddressResponse {
2892 type Owned = Self;
2893
2894 #[inline(always)]
2895 fn inline_align(_context: fidl::encoding::Context) -> usize {
2896 8
2897 }
2898
2899 #[inline(always)]
2900 fn inline_size(_context: fidl::encoding::Context) -> usize {
2901 16
2902 }
2903 }
2904
2905 unsafe impl<D: fidl::encoding::ResourceDialect>
2906 fidl::encoding::Encode<SupplicantStaIfaceGetMacAddressResponse, D>
2907 for &SupplicantStaIfaceGetMacAddressResponse
2908 {
2909 unsafe fn encode(
2910 self,
2911 encoder: &mut fidl::encoding::Encoder<'_, D>,
2912 offset: usize,
2913 mut depth: fidl::encoding::Depth,
2914 ) -> fidl::Result<()> {
2915 encoder.debug_check_bounds::<SupplicantStaIfaceGetMacAddressResponse>(offset);
2916 let max_ordinal: u64 = self.max_ordinal_present();
2918 encoder.write_num(max_ordinal, offset);
2919 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2920 if max_ordinal == 0 {
2922 return Ok(());
2923 }
2924 depth.increment()?;
2925 let envelope_size = 8;
2926 let bytes_len = max_ordinal as usize * envelope_size;
2927 #[allow(unused_variables)]
2928 let offset = encoder.out_of_line_offset(bytes_len);
2929 let mut _prev_end_offset: usize = 0;
2930 if 1 > max_ordinal {
2931 return Ok(());
2932 }
2933
2934 let cur_offset: usize = (1 - 1) * envelope_size;
2937
2938 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2940
2941 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
2946 self.mac_addr
2947 .as_ref()
2948 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
2949 encoder,
2950 offset + cur_offset,
2951 depth,
2952 )?;
2953
2954 _prev_end_offset = cur_offset + envelope_size;
2955
2956 Ok(())
2957 }
2958 }
2959
2960 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2961 for SupplicantStaIfaceGetMacAddressResponse
2962 {
2963 #[inline(always)]
2964 fn new_empty() -> Self {
2965 Self::default()
2966 }
2967
2968 unsafe fn decode(
2969 &mut self,
2970 decoder: &mut fidl::encoding::Decoder<'_, D>,
2971 offset: usize,
2972 mut depth: fidl::encoding::Depth,
2973 ) -> fidl::Result<()> {
2974 decoder.debug_check_bounds::<Self>(offset);
2975 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2976 None => return Err(fidl::Error::NotNullable),
2977 Some(len) => len,
2978 };
2979 if len == 0 {
2981 return Ok(());
2982 };
2983 depth.increment()?;
2984 let envelope_size = 8;
2985 let bytes_len = len * envelope_size;
2986 let offset = decoder.out_of_line_offset(bytes_len)?;
2987 let mut _next_ordinal_to_read = 0;
2989 let mut next_offset = offset;
2990 let end_offset = offset + bytes_len;
2991 _next_ordinal_to_read += 1;
2992 if next_offset >= end_offset {
2993 return Ok(());
2994 }
2995
2996 while _next_ordinal_to_read < 1 {
2998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2999 _next_ordinal_to_read += 1;
3000 next_offset += envelope_size;
3001 }
3002
3003 let next_out_of_line = decoder.next_out_of_line();
3004 let handles_before = decoder.remaining_handles();
3005 if let Some((inlined, num_bytes, num_handles)) =
3006 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3007 {
3008 let member_inline_size =
3009 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3010 decoder.context,
3011 );
3012 if inlined != (member_inline_size <= 4) {
3013 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3014 }
3015 let inner_offset;
3016 let mut inner_depth = depth.clone();
3017 if inlined {
3018 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3019 inner_offset = next_offset;
3020 } else {
3021 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3022 inner_depth.increment()?;
3023 }
3024 let val_ref = self
3025 .mac_addr
3026 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3027 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3028 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3029 {
3030 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3031 }
3032 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3033 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3034 }
3035 }
3036
3037 next_offset += envelope_size;
3038
3039 while next_offset < end_offset {
3041 _next_ordinal_to_read += 1;
3042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3043 next_offset += envelope_size;
3044 }
3045
3046 Ok(())
3047 }
3048 }
3049
3050 impl SupplicantStaNetworkSetBssidRequest {
3051 #[inline(always)]
3052 fn max_ordinal_present(&self) -> u64 {
3053 if let Some(_) = self.bssid {
3054 return 1;
3055 }
3056 0
3057 }
3058 }
3059
3060 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetBssidRequest {
3061 type Borrowed<'a> = &'a Self;
3062 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3063 value
3064 }
3065 }
3066
3067 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetBssidRequest {
3068 type Owned = Self;
3069
3070 #[inline(always)]
3071 fn inline_align(_context: fidl::encoding::Context) -> usize {
3072 8
3073 }
3074
3075 #[inline(always)]
3076 fn inline_size(_context: fidl::encoding::Context) -> usize {
3077 16
3078 }
3079 }
3080
3081 unsafe impl<D: fidl::encoding::ResourceDialect>
3082 fidl::encoding::Encode<SupplicantStaNetworkSetBssidRequest, D>
3083 for &SupplicantStaNetworkSetBssidRequest
3084 {
3085 unsafe fn encode(
3086 self,
3087 encoder: &mut fidl::encoding::Encoder<'_, D>,
3088 offset: usize,
3089 mut depth: fidl::encoding::Depth,
3090 ) -> fidl::Result<()> {
3091 encoder.debug_check_bounds::<SupplicantStaNetworkSetBssidRequest>(offset);
3092 let max_ordinal: u64 = self.max_ordinal_present();
3094 encoder.write_num(max_ordinal, offset);
3095 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3096 if max_ordinal == 0 {
3098 return Ok(());
3099 }
3100 depth.increment()?;
3101 let envelope_size = 8;
3102 let bytes_len = max_ordinal as usize * envelope_size;
3103 #[allow(unused_variables)]
3104 let offset = encoder.out_of_line_offset(bytes_len);
3105 let mut _prev_end_offset: usize = 0;
3106 if 1 > max_ordinal {
3107 return Ok(());
3108 }
3109
3110 let cur_offset: usize = (1 - 1) * envelope_size;
3113
3114 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3116
3117 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
3122 self.bssid
3123 .as_ref()
3124 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
3125 encoder,
3126 offset + cur_offset,
3127 depth,
3128 )?;
3129
3130 _prev_end_offset = cur_offset + envelope_size;
3131
3132 Ok(())
3133 }
3134 }
3135
3136 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3137 for SupplicantStaNetworkSetBssidRequest
3138 {
3139 #[inline(always)]
3140 fn new_empty() -> Self {
3141 Self::default()
3142 }
3143
3144 unsafe fn decode(
3145 &mut self,
3146 decoder: &mut fidl::encoding::Decoder<'_, D>,
3147 offset: usize,
3148 mut depth: fidl::encoding::Depth,
3149 ) -> fidl::Result<()> {
3150 decoder.debug_check_bounds::<Self>(offset);
3151 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3152 None => return Err(fidl::Error::NotNullable),
3153 Some(len) => len,
3154 };
3155 if len == 0 {
3157 return Ok(());
3158 };
3159 depth.increment()?;
3160 let envelope_size = 8;
3161 let bytes_len = len * envelope_size;
3162 let offset = decoder.out_of_line_offset(bytes_len)?;
3163 let mut _next_ordinal_to_read = 0;
3165 let mut next_offset = offset;
3166 let end_offset = offset + bytes_len;
3167 _next_ordinal_to_read += 1;
3168 if next_offset >= end_offset {
3169 return Ok(());
3170 }
3171
3172 while _next_ordinal_to_read < 1 {
3174 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3175 _next_ordinal_to_read += 1;
3176 next_offset += envelope_size;
3177 }
3178
3179 let next_out_of_line = decoder.next_out_of_line();
3180 let handles_before = decoder.remaining_handles();
3181 if let Some((inlined, num_bytes, num_handles)) =
3182 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3183 {
3184 let member_inline_size =
3185 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
3186 decoder.context,
3187 );
3188 if inlined != (member_inline_size <= 4) {
3189 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3190 }
3191 let inner_offset;
3192 let mut inner_depth = depth.clone();
3193 if inlined {
3194 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3195 inner_offset = next_offset;
3196 } else {
3197 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3198 inner_depth.increment()?;
3199 }
3200 let val_ref = self
3201 .bssid
3202 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
3203 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
3204 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3205 {
3206 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3207 }
3208 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3209 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3210 }
3211 }
3212
3213 next_offset += envelope_size;
3214
3215 while next_offset < end_offset {
3217 _next_ordinal_to_read += 1;
3218 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3219 next_offset += envelope_size;
3220 }
3221
3222 Ok(())
3223 }
3224 }
3225
3226 impl SupplicantStaNetworkSetPskPassphraseRequest {
3227 #[inline(always)]
3228 fn max_ordinal_present(&self) -> u64 {
3229 if let Some(_) = self.passphrase {
3230 return 1;
3231 }
3232 0
3233 }
3234 }
3235
3236 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
3237 type Borrowed<'a> = &'a Self;
3238 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3239 value
3240 }
3241 }
3242
3243 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetPskPassphraseRequest {
3244 type Owned = Self;
3245
3246 #[inline(always)]
3247 fn inline_align(_context: fidl::encoding::Context) -> usize {
3248 8
3249 }
3250
3251 #[inline(always)]
3252 fn inline_size(_context: fidl::encoding::Context) -> usize {
3253 16
3254 }
3255 }
3256
3257 unsafe impl<D: fidl::encoding::ResourceDialect>
3258 fidl::encoding::Encode<SupplicantStaNetworkSetPskPassphraseRequest, D>
3259 for &SupplicantStaNetworkSetPskPassphraseRequest
3260 {
3261 unsafe fn encode(
3262 self,
3263 encoder: &mut fidl::encoding::Encoder<'_, D>,
3264 offset: usize,
3265 mut depth: fidl::encoding::Depth,
3266 ) -> fidl::Result<()> {
3267 encoder.debug_check_bounds::<SupplicantStaNetworkSetPskPassphraseRequest>(offset);
3268 let max_ordinal: u64 = self.max_ordinal_present();
3270 encoder.write_num(max_ordinal, offset);
3271 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3272 if max_ordinal == 0 {
3274 return Ok(());
3275 }
3276 depth.increment()?;
3277 let envelope_size = 8;
3278 let bytes_len = max_ordinal as usize * envelope_size;
3279 #[allow(unused_variables)]
3280 let offset = encoder.out_of_line_offset(bytes_len);
3281 let mut _prev_end_offset: usize = 0;
3282 if 1 > max_ordinal {
3283 return Ok(());
3284 }
3285
3286 let cur_offset: usize = (1 - 1) * envelope_size;
3289
3290 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3292
3293 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3298 self.passphrase.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3299 encoder, offset + cur_offset, depth
3300 )?;
3301
3302 _prev_end_offset = cur_offset + envelope_size;
3303
3304 Ok(())
3305 }
3306 }
3307
3308 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3309 for SupplicantStaNetworkSetPskPassphraseRequest
3310 {
3311 #[inline(always)]
3312 fn new_empty() -> Self {
3313 Self::default()
3314 }
3315
3316 unsafe fn decode(
3317 &mut self,
3318 decoder: &mut fidl::encoding::Decoder<'_, D>,
3319 offset: usize,
3320 mut depth: fidl::encoding::Depth,
3321 ) -> fidl::Result<()> {
3322 decoder.debug_check_bounds::<Self>(offset);
3323 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3324 None => return Err(fidl::Error::NotNullable),
3325 Some(len) => len,
3326 };
3327 if len == 0 {
3329 return Ok(());
3330 };
3331 depth.increment()?;
3332 let envelope_size = 8;
3333 let bytes_len = len * envelope_size;
3334 let offset = decoder.out_of_line_offset(bytes_len)?;
3335 let mut _next_ordinal_to_read = 0;
3337 let mut next_offset = offset;
3338 let end_offset = offset + bytes_len;
3339 _next_ordinal_to_read += 1;
3340 if next_offset >= end_offset {
3341 return Ok(());
3342 }
3343
3344 while _next_ordinal_to_read < 1 {
3346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3347 _next_ordinal_to_read += 1;
3348 next_offset += envelope_size;
3349 }
3350
3351 let next_out_of_line = decoder.next_out_of_line();
3352 let handles_before = decoder.remaining_handles();
3353 if let Some((inlined, num_bytes, num_handles)) =
3354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3355 {
3356 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3357 if inlined != (member_inline_size <= 4) {
3358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3359 }
3360 let inner_offset;
3361 let mut inner_depth = depth.clone();
3362 if inlined {
3363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3364 inner_offset = next_offset;
3365 } else {
3366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3367 inner_depth.increment()?;
3368 }
3369 let val_ref = self.passphrase.get_or_insert_with(|| {
3370 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3371 });
3372 fidl::decode!(
3373 fidl::encoding::UnboundedVector<u8>,
3374 D,
3375 val_ref,
3376 decoder,
3377 inner_offset,
3378 inner_depth
3379 )?;
3380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3381 {
3382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3383 }
3384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3386 }
3387 }
3388
3389 next_offset += envelope_size;
3390
3391 while next_offset < end_offset {
3393 _next_ordinal_to_read += 1;
3394 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3395 next_offset += envelope_size;
3396 }
3397
3398 Ok(())
3399 }
3400 }
3401
3402 impl SupplicantStaNetworkSetSsidRequest {
3403 #[inline(always)]
3404 fn max_ordinal_present(&self) -> u64 {
3405 if let Some(_) = self.ssid {
3406 return 1;
3407 }
3408 0
3409 }
3410 }
3411
3412 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetSsidRequest {
3413 type Borrowed<'a> = &'a Self;
3414 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3415 value
3416 }
3417 }
3418
3419 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetSsidRequest {
3420 type Owned = Self;
3421
3422 #[inline(always)]
3423 fn inline_align(_context: fidl::encoding::Context) -> usize {
3424 8
3425 }
3426
3427 #[inline(always)]
3428 fn inline_size(_context: fidl::encoding::Context) -> usize {
3429 16
3430 }
3431 }
3432
3433 unsafe impl<D: fidl::encoding::ResourceDialect>
3434 fidl::encoding::Encode<SupplicantStaNetworkSetSsidRequest, D>
3435 for &SupplicantStaNetworkSetSsidRequest
3436 {
3437 unsafe fn encode(
3438 self,
3439 encoder: &mut fidl::encoding::Encoder<'_, D>,
3440 offset: usize,
3441 mut depth: fidl::encoding::Depth,
3442 ) -> fidl::Result<()> {
3443 encoder.debug_check_bounds::<SupplicantStaNetworkSetSsidRequest>(offset);
3444 let max_ordinal: u64 = self.max_ordinal_present();
3446 encoder.write_num(max_ordinal, offset);
3447 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3448 if max_ordinal == 0 {
3450 return Ok(());
3451 }
3452 depth.increment()?;
3453 let envelope_size = 8;
3454 let bytes_len = max_ordinal as usize * envelope_size;
3455 #[allow(unused_variables)]
3456 let offset = encoder.out_of_line_offset(bytes_len);
3457 let mut _prev_end_offset: usize = 0;
3458 if 1 > max_ordinal {
3459 return Ok(());
3460 }
3461
3462 let cur_offset: usize = (1 - 1) * envelope_size;
3465
3466 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3468
3469 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 32>, D>(
3474 self.ssid.as_ref().map(
3475 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow,
3476 ),
3477 encoder,
3478 offset + cur_offset,
3479 depth,
3480 )?;
3481
3482 _prev_end_offset = cur_offset + envelope_size;
3483
3484 Ok(())
3485 }
3486 }
3487
3488 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3489 for SupplicantStaNetworkSetSsidRequest
3490 {
3491 #[inline(always)]
3492 fn new_empty() -> Self {
3493 Self::default()
3494 }
3495
3496 unsafe fn decode(
3497 &mut self,
3498 decoder: &mut fidl::encoding::Decoder<'_, D>,
3499 offset: usize,
3500 mut depth: fidl::encoding::Depth,
3501 ) -> fidl::Result<()> {
3502 decoder.debug_check_bounds::<Self>(offset);
3503 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3504 None => return Err(fidl::Error::NotNullable),
3505 Some(len) => len,
3506 };
3507 if len == 0 {
3509 return Ok(());
3510 };
3511 depth.increment()?;
3512 let envelope_size = 8;
3513 let bytes_len = len * envelope_size;
3514 let offset = decoder.out_of_line_offset(bytes_len)?;
3515 let mut _next_ordinal_to_read = 0;
3517 let mut next_offset = offset;
3518 let end_offset = offset + bytes_len;
3519 _next_ordinal_to_read += 1;
3520 if next_offset >= end_offset {
3521 return Ok(());
3522 }
3523
3524 while _next_ordinal_to_read < 1 {
3526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3527 _next_ordinal_to_read += 1;
3528 next_offset += envelope_size;
3529 }
3530
3531 let next_out_of_line = decoder.next_out_of_line();
3532 let handles_before = decoder.remaining_handles();
3533 if let Some((inlined, num_bytes, num_handles)) =
3534 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3535 {
3536 let member_inline_size =
3537 <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
3538 decoder.context,
3539 );
3540 if inlined != (member_inline_size <= 4) {
3541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3542 }
3543 let inner_offset;
3544 let mut inner_depth = depth.clone();
3545 if inlined {
3546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3547 inner_offset = next_offset;
3548 } else {
3549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3550 inner_depth.increment()?;
3551 }
3552 let val_ref = self
3553 .ssid
3554 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D));
3555 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val_ref, decoder, inner_offset, inner_depth)?;
3556 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3557 {
3558 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3559 }
3560 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3561 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3562 }
3563 }
3564
3565 next_offset += envelope_size;
3566
3567 while next_offset < end_offset {
3569 _next_ordinal_to_read += 1;
3570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3571 next_offset += envelope_size;
3572 }
3573
3574 Ok(())
3575 }
3576 }
3577
3578 impl SupplicantStaNetworkSetWepKeyRequest {
3579 #[inline(always)]
3580 fn max_ordinal_present(&self) -> u64 {
3581 if let Some(_) = self.key_idx {
3582 return 2;
3583 }
3584 if let Some(_) = self.key {
3585 return 1;
3586 }
3587 0
3588 }
3589 }
3590
3591 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepKeyRequest {
3592 type Borrowed<'a> = &'a Self;
3593 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3594 value
3595 }
3596 }
3597
3598 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepKeyRequest {
3599 type Owned = Self;
3600
3601 #[inline(always)]
3602 fn inline_align(_context: fidl::encoding::Context) -> usize {
3603 8
3604 }
3605
3606 #[inline(always)]
3607 fn inline_size(_context: fidl::encoding::Context) -> usize {
3608 16
3609 }
3610 }
3611
3612 unsafe impl<D: fidl::encoding::ResourceDialect>
3613 fidl::encoding::Encode<SupplicantStaNetworkSetWepKeyRequest, D>
3614 for &SupplicantStaNetworkSetWepKeyRequest
3615 {
3616 unsafe fn encode(
3617 self,
3618 encoder: &mut fidl::encoding::Encoder<'_, D>,
3619 offset: usize,
3620 mut depth: fidl::encoding::Depth,
3621 ) -> fidl::Result<()> {
3622 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepKeyRequest>(offset);
3623 let max_ordinal: u64 = self.max_ordinal_present();
3625 encoder.write_num(max_ordinal, offset);
3626 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3627 if max_ordinal == 0 {
3629 return Ok(());
3630 }
3631 depth.increment()?;
3632 let envelope_size = 8;
3633 let bytes_len = max_ordinal as usize * envelope_size;
3634 #[allow(unused_variables)]
3635 let offset = encoder.out_of_line_offset(bytes_len);
3636 let mut _prev_end_offset: usize = 0;
3637 if 1 > max_ordinal {
3638 return Ok(());
3639 }
3640
3641 let cur_offset: usize = (1 - 1) * envelope_size;
3644
3645 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3647
3648 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3653 self.key.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3654 encoder, offset + cur_offset, depth
3655 )?;
3656
3657 _prev_end_offset = cur_offset + envelope_size;
3658 if 2 > max_ordinal {
3659 return Ok(());
3660 }
3661
3662 let cur_offset: usize = (2 - 1) * envelope_size;
3665
3666 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3668
3669 fidl::encoding::encode_in_envelope_optional::<i32, D>(
3674 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
3675 encoder,
3676 offset + cur_offset,
3677 depth,
3678 )?;
3679
3680 _prev_end_offset = cur_offset + envelope_size;
3681
3682 Ok(())
3683 }
3684 }
3685
3686 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3687 for SupplicantStaNetworkSetWepKeyRequest
3688 {
3689 #[inline(always)]
3690 fn new_empty() -> Self {
3691 Self::default()
3692 }
3693
3694 unsafe fn decode(
3695 &mut self,
3696 decoder: &mut fidl::encoding::Decoder<'_, D>,
3697 offset: usize,
3698 mut depth: fidl::encoding::Depth,
3699 ) -> fidl::Result<()> {
3700 decoder.debug_check_bounds::<Self>(offset);
3701 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3702 None => return Err(fidl::Error::NotNullable),
3703 Some(len) => len,
3704 };
3705 if len == 0 {
3707 return Ok(());
3708 };
3709 depth.increment()?;
3710 let envelope_size = 8;
3711 let bytes_len = len * envelope_size;
3712 let offset = decoder.out_of_line_offset(bytes_len)?;
3713 let mut _next_ordinal_to_read = 0;
3715 let mut next_offset = offset;
3716 let end_offset = offset + bytes_len;
3717 _next_ordinal_to_read += 1;
3718 if next_offset >= end_offset {
3719 return Ok(());
3720 }
3721
3722 while _next_ordinal_to_read < 1 {
3724 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3725 _next_ordinal_to_read += 1;
3726 next_offset += envelope_size;
3727 }
3728
3729 let next_out_of_line = decoder.next_out_of_line();
3730 let handles_before = decoder.remaining_handles();
3731 if let Some((inlined, num_bytes, num_handles)) =
3732 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3733 {
3734 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3735 if inlined != (member_inline_size <= 4) {
3736 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3737 }
3738 let inner_offset;
3739 let mut inner_depth = depth.clone();
3740 if inlined {
3741 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3742 inner_offset = next_offset;
3743 } else {
3744 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3745 inner_depth.increment()?;
3746 }
3747 let val_ref = self.key.get_or_insert_with(|| {
3748 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
3749 });
3750 fidl::decode!(
3751 fidl::encoding::UnboundedVector<u8>,
3752 D,
3753 val_ref,
3754 decoder,
3755 inner_offset,
3756 inner_depth
3757 )?;
3758 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3759 {
3760 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3761 }
3762 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3763 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3764 }
3765 }
3766
3767 next_offset += envelope_size;
3768 _next_ordinal_to_read += 1;
3769 if next_offset >= end_offset {
3770 return Ok(());
3771 }
3772
3773 while _next_ordinal_to_read < 2 {
3775 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3776 _next_ordinal_to_read += 1;
3777 next_offset += envelope_size;
3778 }
3779
3780 let next_out_of_line = decoder.next_out_of_line();
3781 let handles_before = decoder.remaining_handles();
3782 if let Some((inlined, num_bytes, num_handles)) =
3783 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3784 {
3785 let member_inline_size =
3786 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3787 if inlined != (member_inline_size <= 4) {
3788 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3789 }
3790 let inner_offset;
3791 let mut inner_depth = depth.clone();
3792 if inlined {
3793 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3794 inner_offset = next_offset;
3795 } else {
3796 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3797 inner_depth.increment()?;
3798 }
3799 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
3800 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3801 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3802 {
3803 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3804 }
3805 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3806 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3807 }
3808 }
3809
3810 next_offset += envelope_size;
3811
3812 while next_offset < end_offset {
3814 _next_ordinal_to_read += 1;
3815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3816 next_offset += envelope_size;
3817 }
3818
3819 Ok(())
3820 }
3821 }
3822
3823 impl SupplicantStaNetworkSetWepTxKeyIdxRequest {
3824 #[inline(always)]
3825 fn max_ordinal_present(&self) -> u64 {
3826 if let Some(_) = self.key_idx {
3827 return 1;
3828 }
3829 0
3830 }
3831 }
3832
3833 impl fidl::encoding::ValueTypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
3834 type Borrowed<'a> = &'a Self;
3835 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3836 value
3837 }
3838 }
3839
3840 unsafe impl fidl::encoding::TypeMarker for SupplicantStaNetworkSetWepTxKeyIdxRequest {
3841 type Owned = Self;
3842
3843 #[inline(always)]
3844 fn inline_align(_context: fidl::encoding::Context) -> usize {
3845 8
3846 }
3847
3848 #[inline(always)]
3849 fn inline_size(_context: fidl::encoding::Context) -> usize {
3850 16
3851 }
3852 }
3853
3854 unsafe impl<D: fidl::encoding::ResourceDialect>
3855 fidl::encoding::Encode<SupplicantStaNetworkSetWepTxKeyIdxRequest, D>
3856 for &SupplicantStaNetworkSetWepTxKeyIdxRequest
3857 {
3858 unsafe fn encode(
3859 self,
3860 encoder: &mut fidl::encoding::Encoder<'_, D>,
3861 offset: usize,
3862 mut depth: fidl::encoding::Depth,
3863 ) -> fidl::Result<()> {
3864 encoder.debug_check_bounds::<SupplicantStaNetworkSetWepTxKeyIdxRequest>(offset);
3865 let max_ordinal: u64 = self.max_ordinal_present();
3867 encoder.write_num(max_ordinal, offset);
3868 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3869 if max_ordinal == 0 {
3871 return Ok(());
3872 }
3873 depth.increment()?;
3874 let envelope_size = 8;
3875 let bytes_len = max_ordinal as usize * envelope_size;
3876 #[allow(unused_variables)]
3877 let offset = encoder.out_of_line_offset(bytes_len);
3878 let mut _prev_end_offset: usize = 0;
3879 if 1 > max_ordinal {
3880 return Ok(());
3881 }
3882
3883 let cur_offset: usize = (1 - 1) * envelope_size;
3886
3887 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3889
3890 fidl::encoding::encode_in_envelope_optional::<i32, D>(
3895 self.key_idx.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
3896 encoder,
3897 offset + cur_offset,
3898 depth,
3899 )?;
3900
3901 _prev_end_offset = cur_offset + envelope_size;
3902
3903 Ok(())
3904 }
3905 }
3906
3907 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3908 for SupplicantStaNetworkSetWepTxKeyIdxRequest
3909 {
3910 #[inline(always)]
3911 fn new_empty() -> Self {
3912 Self::default()
3913 }
3914
3915 unsafe fn decode(
3916 &mut self,
3917 decoder: &mut fidl::encoding::Decoder<'_, D>,
3918 offset: usize,
3919 mut depth: fidl::encoding::Depth,
3920 ) -> fidl::Result<()> {
3921 decoder.debug_check_bounds::<Self>(offset);
3922 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3923 None => return Err(fidl::Error::NotNullable),
3924 Some(len) => len,
3925 };
3926 if len == 0 {
3928 return Ok(());
3929 };
3930 depth.increment()?;
3931 let envelope_size = 8;
3932 let bytes_len = len * envelope_size;
3933 let offset = decoder.out_of_line_offset(bytes_len)?;
3934 let mut _next_ordinal_to_read = 0;
3936 let mut next_offset = offset;
3937 let end_offset = offset + bytes_len;
3938 _next_ordinal_to_read += 1;
3939 if next_offset >= end_offset {
3940 return Ok(());
3941 }
3942
3943 while _next_ordinal_to_read < 1 {
3945 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3946 _next_ordinal_to_read += 1;
3947 next_offset += envelope_size;
3948 }
3949
3950 let next_out_of_line = decoder.next_out_of_line();
3951 let handles_before = decoder.remaining_handles();
3952 if let Some((inlined, num_bytes, num_handles)) =
3953 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3954 {
3955 let member_inline_size =
3956 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3957 if inlined != (member_inline_size <= 4) {
3958 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3959 }
3960 let inner_offset;
3961 let mut inner_depth = depth.clone();
3962 if inlined {
3963 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3964 inner_offset = next_offset;
3965 } else {
3966 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3967 inner_depth.increment()?;
3968 }
3969 let val_ref = self.key_idx.get_or_insert_with(|| fidl::new_empty!(i32, D));
3970 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3971 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3972 {
3973 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3974 }
3975 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3976 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3977 }
3978 }
3979
3980 next_offset += envelope_size;
3981
3982 while next_offset < end_offset {
3984 _next_ordinal_to_read += 1;
3985 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3986 next_offset += envelope_size;
3987 }
3988
3989 Ok(())
3990 }
3991 }
3992
3993 impl WifiChipGetAvailableModesResponse {
3994 #[inline(always)]
3995 fn max_ordinal_present(&self) -> u64 {
3996 if let Some(_) = self.chip_modes {
3997 return 1;
3998 }
3999 0
4000 }
4001 }
4002
4003 impl fidl::encoding::ValueTypeMarker for WifiChipGetAvailableModesResponse {
4004 type Borrowed<'a> = &'a Self;
4005 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4006 value
4007 }
4008 }
4009
4010 unsafe impl fidl::encoding::TypeMarker for WifiChipGetAvailableModesResponse {
4011 type Owned = Self;
4012
4013 #[inline(always)]
4014 fn inline_align(_context: fidl::encoding::Context) -> usize {
4015 8
4016 }
4017
4018 #[inline(always)]
4019 fn inline_size(_context: fidl::encoding::Context) -> usize {
4020 16
4021 }
4022 }
4023
4024 unsafe impl<D: fidl::encoding::ResourceDialect>
4025 fidl::encoding::Encode<WifiChipGetAvailableModesResponse, D>
4026 for &WifiChipGetAvailableModesResponse
4027 {
4028 unsafe fn encode(
4029 self,
4030 encoder: &mut fidl::encoding::Encoder<'_, D>,
4031 offset: usize,
4032 mut depth: fidl::encoding::Depth,
4033 ) -> fidl::Result<()> {
4034 encoder.debug_check_bounds::<WifiChipGetAvailableModesResponse>(offset);
4035 let max_ordinal: u64 = self.max_ordinal_present();
4037 encoder.write_num(max_ordinal, offset);
4038 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4039 if max_ordinal == 0 {
4041 return Ok(());
4042 }
4043 depth.increment()?;
4044 let envelope_size = 8;
4045 let bytes_len = max_ordinal as usize * envelope_size;
4046 #[allow(unused_variables)]
4047 let offset = encoder.out_of_line_offset(bytes_len);
4048 let mut _prev_end_offset: usize = 0;
4049 if 1 > max_ordinal {
4050 return Ok(());
4051 }
4052
4053 let cur_offset: usize = (1 - 1) * envelope_size;
4056
4057 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4059
4060 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ChipMode>, D>(
4065 self.chip_modes.as_ref().map(<fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::ValueTypeMarker>::borrow),
4066 encoder, offset + cur_offset, depth
4067 )?;
4068
4069 _prev_end_offset = cur_offset + envelope_size;
4070
4071 Ok(())
4072 }
4073 }
4074
4075 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4076 for WifiChipGetAvailableModesResponse
4077 {
4078 #[inline(always)]
4079 fn new_empty() -> Self {
4080 Self::default()
4081 }
4082
4083 unsafe fn decode(
4084 &mut self,
4085 decoder: &mut fidl::encoding::Decoder<'_, D>,
4086 offset: usize,
4087 mut depth: fidl::encoding::Depth,
4088 ) -> fidl::Result<()> {
4089 decoder.debug_check_bounds::<Self>(offset);
4090 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4091 None => return Err(fidl::Error::NotNullable),
4092 Some(len) => len,
4093 };
4094 if len == 0 {
4096 return Ok(());
4097 };
4098 depth.increment()?;
4099 let envelope_size = 8;
4100 let bytes_len = len * envelope_size;
4101 let offset = decoder.out_of_line_offset(bytes_len)?;
4102 let mut _next_ordinal_to_read = 0;
4104 let mut next_offset = offset;
4105 let end_offset = offset + bytes_len;
4106 _next_ordinal_to_read += 1;
4107 if next_offset >= end_offset {
4108 return Ok(());
4109 }
4110
4111 while _next_ordinal_to_read < 1 {
4113 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4114 _next_ordinal_to_read += 1;
4115 next_offset += envelope_size;
4116 }
4117
4118 let next_out_of_line = decoder.next_out_of_line();
4119 let handles_before = decoder.remaining_handles();
4120 if let Some((inlined, num_bytes, num_handles)) =
4121 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4122 {
4123 let member_inline_size = <fidl::encoding::UnboundedVector<ChipMode> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4124 if inlined != (member_inline_size <= 4) {
4125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4126 }
4127 let inner_offset;
4128 let mut inner_depth = depth.clone();
4129 if inlined {
4130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4131 inner_offset = next_offset;
4132 } else {
4133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4134 inner_depth.increment()?;
4135 }
4136 let val_ref = self.chip_modes.get_or_insert_with(|| {
4137 fidl::new_empty!(fidl::encoding::UnboundedVector<ChipMode>, D)
4138 });
4139 fidl::decode!(
4140 fidl::encoding::UnboundedVector<ChipMode>,
4141 D,
4142 val_ref,
4143 decoder,
4144 inner_offset,
4145 inner_depth
4146 )?;
4147 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4148 {
4149 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4150 }
4151 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4152 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4153 }
4154 }
4155
4156 next_offset += envelope_size;
4157
4158 while next_offset < end_offset {
4160 _next_ordinal_to_read += 1;
4161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4162 next_offset += envelope_size;
4163 }
4164
4165 Ok(())
4166 }
4167 }
4168
4169 impl WifiChipGetCapabilitiesResponse {
4170 #[inline(always)]
4171 fn max_ordinal_present(&self) -> u64 {
4172 if let Some(_) = self.capabilities_mask {
4173 return 1;
4174 }
4175 0
4176 }
4177 }
4178
4179 impl fidl::encoding::ValueTypeMarker for WifiChipGetCapabilitiesResponse {
4180 type Borrowed<'a> = &'a Self;
4181 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4182 value
4183 }
4184 }
4185
4186 unsafe impl fidl::encoding::TypeMarker for WifiChipGetCapabilitiesResponse {
4187 type Owned = Self;
4188
4189 #[inline(always)]
4190 fn inline_align(_context: fidl::encoding::Context) -> usize {
4191 8
4192 }
4193
4194 #[inline(always)]
4195 fn inline_size(_context: fidl::encoding::Context) -> usize {
4196 16
4197 }
4198 }
4199
4200 unsafe impl<D: fidl::encoding::ResourceDialect>
4201 fidl::encoding::Encode<WifiChipGetCapabilitiesResponse, D>
4202 for &WifiChipGetCapabilitiesResponse
4203 {
4204 unsafe fn encode(
4205 self,
4206 encoder: &mut fidl::encoding::Encoder<'_, D>,
4207 offset: usize,
4208 mut depth: fidl::encoding::Depth,
4209 ) -> fidl::Result<()> {
4210 encoder.debug_check_bounds::<WifiChipGetCapabilitiesResponse>(offset);
4211 let max_ordinal: u64 = self.max_ordinal_present();
4213 encoder.write_num(max_ordinal, offset);
4214 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4215 if max_ordinal == 0 {
4217 return Ok(());
4218 }
4219 depth.increment()?;
4220 let envelope_size = 8;
4221 let bytes_len = max_ordinal as usize * envelope_size;
4222 #[allow(unused_variables)]
4223 let offset = encoder.out_of_line_offset(bytes_len);
4224 let mut _prev_end_offset: usize = 0;
4225 if 1 > max_ordinal {
4226 return Ok(());
4227 }
4228
4229 let cur_offset: usize = (1 - 1) * envelope_size;
4232
4233 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4235
4236 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4241 self.capabilities_mask
4242 .as_ref()
4243 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4244 encoder,
4245 offset + cur_offset,
4246 depth,
4247 )?;
4248
4249 _prev_end_offset = cur_offset + envelope_size;
4250
4251 Ok(())
4252 }
4253 }
4254
4255 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4256 for WifiChipGetCapabilitiesResponse
4257 {
4258 #[inline(always)]
4259 fn new_empty() -> Self {
4260 Self::default()
4261 }
4262
4263 unsafe fn decode(
4264 &mut self,
4265 decoder: &mut fidl::encoding::Decoder<'_, D>,
4266 offset: usize,
4267 mut depth: fidl::encoding::Depth,
4268 ) -> fidl::Result<()> {
4269 decoder.debug_check_bounds::<Self>(offset);
4270 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4271 None => return Err(fidl::Error::NotNullable),
4272 Some(len) => len,
4273 };
4274 if len == 0 {
4276 return Ok(());
4277 };
4278 depth.increment()?;
4279 let envelope_size = 8;
4280 let bytes_len = len * envelope_size;
4281 let offset = decoder.out_of_line_offset(bytes_len)?;
4282 let mut _next_ordinal_to_read = 0;
4284 let mut next_offset = offset;
4285 let end_offset = offset + bytes_len;
4286 _next_ordinal_to_read += 1;
4287 if next_offset >= end_offset {
4288 return Ok(());
4289 }
4290
4291 while _next_ordinal_to_read < 1 {
4293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4294 _next_ordinal_to_read += 1;
4295 next_offset += envelope_size;
4296 }
4297
4298 let next_out_of_line = decoder.next_out_of_line();
4299 let handles_before = decoder.remaining_handles();
4300 if let Some((inlined, num_bytes, num_handles)) =
4301 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4302 {
4303 let member_inline_size =
4304 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4305 if inlined != (member_inline_size <= 4) {
4306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4307 }
4308 let inner_offset;
4309 let mut inner_depth = depth.clone();
4310 if inlined {
4311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4312 inner_offset = next_offset;
4313 } else {
4314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4315 inner_depth.increment()?;
4316 }
4317 let val_ref =
4318 self.capabilities_mask.get_or_insert_with(|| fidl::new_empty!(u32, D));
4319 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4320 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4321 {
4322 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4323 }
4324 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4325 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4326 }
4327 }
4328
4329 next_offset += envelope_size;
4330
4331 while next_offset < end_offset {
4333 _next_ordinal_to_read += 1;
4334 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4335 next_offset += envelope_size;
4336 }
4337
4338 Ok(())
4339 }
4340 }
4341
4342 impl WifiChipGetIdResponse {
4343 #[inline(always)]
4344 fn max_ordinal_present(&self) -> u64 {
4345 if let Some(_) = self.id {
4346 return 1;
4347 }
4348 0
4349 }
4350 }
4351
4352 impl fidl::encoding::ValueTypeMarker for WifiChipGetIdResponse {
4353 type Borrowed<'a> = &'a Self;
4354 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4355 value
4356 }
4357 }
4358
4359 unsafe impl fidl::encoding::TypeMarker for WifiChipGetIdResponse {
4360 type Owned = Self;
4361
4362 #[inline(always)]
4363 fn inline_align(_context: fidl::encoding::Context) -> usize {
4364 8
4365 }
4366
4367 #[inline(always)]
4368 fn inline_size(_context: fidl::encoding::Context) -> usize {
4369 16
4370 }
4371 }
4372
4373 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiChipGetIdResponse, D>
4374 for &WifiChipGetIdResponse
4375 {
4376 unsafe fn encode(
4377 self,
4378 encoder: &mut fidl::encoding::Encoder<'_, D>,
4379 offset: usize,
4380 mut depth: fidl::encoding::Depth,
4381 ) -> fidl::Result<()> {
4382 encoder.debug_check_bounds::<WifiChipGetIdResponse>(offset);
4383 let max_ordinal: u64 = self.max_ordinal_present();
4385 encoder.write_num(max_ordinal, offset);
4386 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4387 if max_ordinal == 0 {
4389 return Ok(());
4390 }
4391 depth.increment()?;
4392 let envelope_size = 8;
4393 let bytes_len = max_ordinal as usize * envelope_size;
4394 #[allow(unused_variables)]
4395 let offset = encoder.out_of_line_offset(bytes_len);
4396 let mut _prev_end_offset: usize = 0;
4397 if 1 > max_ordinal {
4398 return Ok(());
4399 }
4400
4401 let cur_offset: usize = (1 - 1) * envelope_size;
4404
4405 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4407
4408 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4413 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4414 encoder,
4415 offset + cur_offset,
4416 depth,
4417 )?;
4418
4419 _prev_end_offset = cur_offset + envelope_size;
4420
4421 Ok(())
4422 }
4423 }
4424
4425 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiChipGetIdResponse {
4426 #[inline(always)]
4427 fn new_empty() -> Self {
4428 Self::default()
4429 }
4430
4431 unsafe fn decode(
4432 &mut self,
4433 decoder: &mut fidl::encoding::Decoder<'_, D>,
4434 offset: usize,
4435 mut depth: fidl::encoding::Depth,
4436 ) -> fidl::Result<()> {
4437 decoder.debug_check_bounds::<Self>(offset);
4438 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4439 None => return Err(fidl::Error::NotNullable),
4440 Some(len) => len,
4441 };
4442 if len == 0 {
4444 return Ok(());
4445 };
4446 depth.increment()?;
4447 let envelope_size = 8;
4448 let bytes_len = len * envelope_size;
4449 let offset = decoder.out_of_line_offset(bytes_len)?;
4450 let mut _next_ordinal_to_read = 0;
4452 let mut next_offset = offset;
4453 let end_offset = offset + bytes_len;
4454 _next_ordinal_to_read += 1;
4455 if next_offset >= end_offset {
4456 return Ok(());
4457 }
4458
4459 while _next_ordinal_to_read < 1 {
4461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4462 _next_ordinal_to_read += 1;
4463 next_offset += envelope_size;
4464 }
4465
4466 let next_out_of_line = decoder.next_out_of_line();
4467 let handles_before = decoder.remaining_handles();
4468 if let Some((inlined, num_bytes, num_handles)) =
4469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4470 {
4471 let member_inline_size =
4472 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4473 if inlined != (member_inline_size <= 4) {
4474 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4475 }
4476 let inner_offset;
4477 let mut inner_depth = depth.clone();
4478 if inlined {
4479 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4480 inner_offset = next_offset;
4481 } else {
4482 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4483 inner_depth.increment()?;
4484 }
4485 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
4486 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4487 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4488 {
4489 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4490 }
4491 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4492 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4493 }
4494 }
4495
4496 next_offset += envelope_size;
4497
4498 while next_offset < end_offset {
4500 _next_ordinal_to_read += 1;
4501 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4502 next_offset += envelope_size;
4503 }
4504
4505 Ok(())
4506 }
4507 }
4508
4509 impl WifiChipGetModeResponse {
4510 #[inline(always)]
4511 fn max_ordinal_present(&self) -> u64 {
4512 if let Some(_) = self.mode {
4513 return 1;
4514 }
4515 0
4516 }
4517 }
4518
4519 impl fidl::encoding::ValueTypeMarker for WifiChipGetModeResponse {
4520 type Borrowed<'a> = &'a Self;
4521 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4522 value
4523 }
4524 }
4525
4526 unsafe impl fidl::encoding::TypeMarker for WifiChipGetModeResponse {
4527 type Owned = Self;
4528
4529 #[inline(always)]
4530 fn inline_align(_context: fidl::encoding::Context) -> usize {
4531 8
4532 }
4533
4534 #[inline(always)]
4535 fn inline_size(_context: fidl::encoding::Context) -> usize {
4536 16
4537 }
4538 }
4539
4540 unsafe impl<D: fidl::encoding::ResourceDialect>
4541 fidl::encoding::Encode<WifiChipGetModeResponse, D> for &WifiChipGetModeResponse
4542 {
4543 unsafe fn encode(
4544 self,
4545 encoder: &mut fidl::encoding::Encoder<'_, D>,
4546 offset: usize,
4547 mut depth: fidl::encoding::Depth,
4548 ) -> fidl::Result<()> {
4549 encoder.debug_check_bounds::<WifiChipGetModeResponse>(offset);
4550 let max_ordinal: u64 = self.max_ordinal_present();
4552 encoder.write_num(max_ordinal, offset);
4553 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4554 if max_ordinal == 0 {
4556 return Ok(());
4557 }
4558 depth.increment()?;
4559 let envelope_size = 8;
4560 let bytes_len = max_ordinal as usize * envelope_size;
4561 #[allow(unused_variables)]
4562 let offset = encoder.out_of_line_offset(bytes_len);
4563 let mut _prev_end_offset: usize = 0;
4564 if 1 > max_ordinal {
4565 return Ok(());
4566 }
4567
4568 let cur_offset: usize = (1 - 1) * envelope_size;
4571
4572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4574
4575 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4580 self.mode.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4581 encoder,
4582 offset + cur_offset,
4583 depth,
4584 )?;
4585
4586 _prev_end_offset = cur_offset + envelope_size;
4587
4588 Ok(())
4589 }
4590 }
4591
4592 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4593 for WifiChipGetModeResponse
4594 {
4595 #[inline(always)]
4596 fn new_empty() -> Self {
4597 Self::default()
4598 }
4599
4600 unsafe fn decode(
4601 &mut self,
4602 decoder: &mut fidl::encoding::Decoder<'_, D>,
4603 offset: usize,
4604 mut depth: fidl::encoding::Depth,
4605 ) -> fidl::Result<()> {
4606 decoder.debug_check_bounds::<Self>(offset);
4607 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4608 None => return Err(fidl::Error::NotNullable),
4609 Some(len) => len,
4610 };
4611 if len == 0 {
4613 return Ok(());
4614 };
4615 depth.increment()?;
4616 let envelope_size = 8;
4617 let bytes_len = len * envelope_size;
4618 let offset = decoder.out_of_line_offset(bytes_len)?;
4619 let mut _next_ordinal_to_read = 0;
4621 let mut next_offset = offset;
4622 let end_offset = offset + bytes_len;
4623 _next_ordinal_to_read += 1;
4624 if next_offset >= end_offset {
4625 return Ok(());
4626 }
4627
4628 while _next_ordinal_to_read < 1 {
4630 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4631 _next_ordinal_to_read += 1;
4632 next_offset += envelope_size;
4633 }
4634
4635 let next_out_of_line = decoder.next_out_of_line();
4636 let handles_before = decoder.remaining_handles();
4637 if let Some((inlined, num_bytes, num_handles)) =
4638 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4639 {
4640 let member_inline_size =
4641 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4642 if inlined != (member_inline_size <= 4) {
4643 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4644 }
4645 let inner_offset;
4646 let mut inner_depth = depth.clone();
4647 if inlined {
4648 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4649 inner_offset = next_offset;
4650 } else {
4651 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4652 inner_depth.increment()?;
4653 }
4654 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(u32, D));
4655 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4656 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4657 {
4658 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4659 }
4660 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4661 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4662 }
4663 }
4664
4665 next_offset += envelope_size;
4666
4667 while next_offset < end_offset {
4669 _next_ordinal_to_read += 1;
4670 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4671 next_offset += envelope_size;
4672 }
4673
4674 Ok(())
4675 }
4676 }
4677
4678 impl WifiChipGetStaIfaceNamesResponse {
4679 #[inline(always)]
4680 fn max_ordinal_present(&self) -> u64 {
4681 if let Some(_) = self.iface_names {
4682 return 1;
4683 }
4684 0
4685 }
4686 }
4687
4688 impl fidl::encoding::ValueTypeMarker for WifiChipGetStaIfaceNamesResponse {
4689 type Borrowed<'a> = &'a Self;
4690 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4691 value
4692 }
4693 }
4694
4695 unsafe impl fidl::encoding::TypeMarker for WifiChipGetStaIfaceNamesResponse {
4696 type Owned = Self;
4697
4698 #[inline(always)]
4699 fn inline_align(_context: fidl::encoding::Context) -> usize {
4700 8
4701 }
4702
4703 #[inline(always)]
4704 fn inline_size(_context: fidl::encoding::Context) -> usize {
4705 16
4706 }
4707 }
4708
4709 unsafe impl<D: fidl::encoding::ResourceDialect>
4710 fidl::encoding::Encode<WifiChipGetStaIfaceNamesResponse, D>
4711 for &WifiChipGetStaIfaceNamesResponse
4712 {
4713 unsafe fn encode(
4714 self,
4715 encoder: &mut fidl::encoding::Encoder<'_, D>,
4716 offset: usize,
4717 mut depth: fidl::encoding::Depth,
4718 ) -> fidl::Result<()> {
4719 encoder.debug_check_bounds::<WifiChipGetStaIfaceNamesResponse>(offset);
4720 let max_ordinal: u64 = self.max_ordinal_present();
4722 encoder.write_num(max_ordinal, offset);
4723 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4724 if max_ordinal == 0 {
4726 return Ok(());
4727 }
4728 depth.increment()?;
4729 let envelope_size = 8;
4730 let bytes_len = max_ordinal as usize * envelope_size;
4731 #[allow(unused_variables)]
4732 let offset = encoder.out_of_line_offset(bytes_len);
4733 let mut _prev_end_offset: usize = 0;
4734 if 1 > max_ordinal {
4735 return Ok(());
4736 }
4737
4738 let cur_offset: usize = (1 - 1) * envelope_size;
4741
4742 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4744
4745 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>, D>(
4750 self.iface_names.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>> as fidl::encoding::ValueTypeMarker>::borrow),
4751 encoder, offset + cur_offset, depth
4752 )?;
4753
4754 _prev_end_offset = cur_offset + envelope_size;
4755
4756 Ok(())
4757 }
4758 }
4759
4760 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4761 for WifiChipGetStaIfaceNamesResponse
4762 {
4763 #[inline(always)]
4764 fn new_empty() -> Self {
4765 Self::default()
4766 }
4767
4768 unsafe fn decode(
4769 &mut self,
4770 decoder: &mut fidl::encoding::Decoder<'_, D>,
4771 offset: usize,
4772 mut depth: fidl::encoding::Depth,
4773 ) -> fidl::Result<()> {
4774 decoder.debug_check_bounds::<Self>(offset);
4775 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4776 None => return Err(fidl::Error::NotNullable),
4777 Some(len) => len,
4778 };
4779 if len == 0 {
4781 return Ok(());
4782 };
4783 depth.increment()?;
4784 let envelope_size = 8;
4785 let bytes_len = len * envelope_size;
4786 let offset = decoder.out_of_line_offset(bytes_len)?;
4787 let mut _next_ordinal_to_read = 0;
4789 let mut next_offset = offset;
4790 let end_offset = offset + bytes_len;
4791 _next_ordinal_to_read += 1;
4792 if next_offset >= end_offset {
4793 return Ok(());
4794 }
4795
4796 while _next_ordinal_to_read < 1 {
4798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4799 _next_ordinal_to_read += 1;
4800 next_offset += envelope_size;
4801 }
4802
4803 let next_out_of_line = decoder.next_out_of_line();
4804 let handles_before = decoder.remaining_handles();
4805 if let Some((inlined, num_bytes, num_handles)) =
4806 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4807 {
4808 let member_inline_size = <fidl::encoding::UnboundedVector<
4809 fidl::encoding::BoundedString<16>,
4810 > as fidl::encoding::TypeMarker>::inline_size(
4811 decoder.context
4812 );
4813 if inlined != (member_inline_size <= 4) {
4814 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4815 }
4816 let inner_offset;
4817 let mut inner_depth = depth.clone();
4818 if inlined {
4819 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4820 inner_offset = next_offset;
4821 } else {
4822 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4823 inner_depth.increment()?;
4824 }
4825 let val_ref = self.iface_names.get_or_insert_with(|| {
4826 fidl::new_empty!(
4827 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
4828 D
4829 )
4830 });
4831 fidl::decode!(
4832 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<16>>,
4833 D,
4834 val_ref,
4835 decoder,
4836 inner_offset,
4837 inner_depth
4838 )?;
4839 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4840 {
4841 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4842 }
4843 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4844 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4845 }
4846 }
4847
4848 next_offset += envelope_size;
4849
4850 while next_offset < end_offset {
4852 _next_ordinal_to_read += 1;
4853 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4854 next_offset += envelope_size;
4855 }
4856
4857 Ok(())
4858 }
4859 }
4860
4861 impl WifiStaIfaceGetNameResponse {
4862 #[inline(always)]
4863 fn max_ordinal_present(&self) -> u64 {
4864 if let Some(_) = self.iface_name {
4865 return 1;
4866 }
4867 0
4868 }
4869 }
4870
4871 impl fidl::encoding::ValueTypeMarker for WifiStaIfaceGetNameResponse {
4872 type Borrowed<'a> = &'a Self;
4873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4874 value
4875 }
4876 }
4877
4878 unsafe impl fidl::encoding::TypeMarker for WifiStaIfaceGetNameResponse {
4879 type Owned = Self;
4880
4881 #[inline(always)]
4882 fn inline_align(_context: fidl::encoding::Context) -> usize {
4883 8
4884 }
4885
4886 #[inline(always)]
4887 fn inline_size(_context: fidl::encoding::Context) -> usize {
4888 16
4889 }
4890 }
4891
4892 unsafe impl<D: fidl::encoding::ResourceDialect>
4893 fidl::encoding::Encode<WifiStaIfaceGetNameResponse, D> for &WifiStaIfaceGetNameResponse
4894 {
4895 unsafe fn encode(
4896 self,
4897 encoder: &mut fidl::encoding::Encoder<'_, D>,
4898 offset: usize,
4899 mut depth: fidl::encoding::Depth,
4900 ) -> fidl::Result<()> {
4901 encoder.debug_check_bounds::<WifiStaIfaceGetNameResponse>(offset);
4902 let max_ordinal: u64 = self.max_ordinal_present();
4904 encoder.write_num(max_ordinal, offset);
4905 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4906 if max_ordinal == 0 {
4908 return Ok(());
4909 }
4910 depth.increment()?;
4911 let envelope_size = 8;
4912 let bytes_len = max_ordinal as usize * envelope_size;
4913 #[allow(unused_variables)]
4914 let offset = encoder.out_of_line_offset(bytes_len);
4915 let mut _prev_end_offset: usize = 0;
4916 if 1 > max_ordinal {
4917 return Ok(());
4918 }
4919
4920 let cur_offset: usize = (1 - 1) * envelope_size;
4923
4924 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4926
4927 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<16>, D>(
4932 self.iface_name.as_ref().map(
4933 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow,
4934 ),
4935 encoder,
4936 offset + cur_offset,
4937 depth,
4938 )?;
4939
4940 _prev_end_offset = cur_offset + envelope_size;
4941
4942 Ok(())
4943 }
4944 }
4945
4946 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4947 for WifiStaIfaceGetNameResponse
4948 {
4949 #[inline(always)]
4950 fn new_empty() -> Self {
4951 Self::default()
4952 }
4953
4954 unsafe fn decode(
4955 &mut self,
4956 decoder: &mut fidl::encoding::Decoder<'_, D>,
4957 offset: usize,
4958 mut depth: fidl::encoding::Depth,
4959 ) -> fidl::Result<()> {
4960 decoder.debug_check_bounds::<Self>(offset);
4961 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4962 None => return Err(fidl::Error::NotNullable),
4963 Some(len) => len,
4964 };
4965 if len == 0 {
4967 return Ok(());
4968 };
4969 depth.increment()?;
4970 let envelope_size = 8;
4971 let bytes_len = len * envelope_size;
4972 let offset = decoder.out_of_line_offset(bytes_len)?;
4973 let mut _next_ordinal_to_read = 0;
4975 let mut next_offset = offset;
4976 let end_offset = offset + bytes_len;
4977 _next_ordinal_to_read += 1;
4978 if next_offset >= end_offset {
4979 return Ok(());
4980 }
4981
4982 while _next_ordinal_to_read < 1 {
4984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4985 _next_ordinal_to_read += 1;
4986 next_offset += envelope_size;
4987 }
4988
4989 let next_out_of_line = decoder.next_out_of_line();
4990 let handles_before = decoder.remaining_handles();
4991 if let Some((inlined, num_bytes, num_handles)) =
4992 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4993 {
4994 let member_inline_size =
4995 <fidl::encoding::BoundedString<16> as fidl::encoding::TypeMarker>::inline_size(
4996 decoder.context,
4997 );
4998 if inlined != (member_inline_size <= 4) {
4999 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5000 }
5001 let inner_offset;
5002 let mut inner_depth = depth.clone();
5003 if inlined {
5004 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5005 inner_offset = next_offset;
5006 } else {
5007 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5008 inner_depth.increment()?;
5009 }
5010 let val_ref = self
5011 .iface_name
5012 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<16>, D));
5013 fidl::decode!(
5014 fidl::encoding::BoundedString<16>,
5015 D,
5016 val_ref,
5017 decoder,
5018 inner_offset,
5019 inner_depth
5020 )?;
5021 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5022 {
5023 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5024 }
5025 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5026 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5027 }
5028 }
5029
5030 next_offset += envelope_size;
5031
5032 while next_offset < end_offset {
5034 _next_ordinal_to_read += 1;
5035 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5036 next_offset += envelope_size;
5037 }
5038
5039 Ok(())
5040 }
5041 }
5042
5043 impl WifiGetChipIdsResponse {
5044 #[inline(always)]
5045 fn max_ordinal_present(&self) -> u64 {
5046 if let Some(_) = self.chip_ids {
5047 return 1;
5048 }
5049 0
5050 }
5051 }
5052
5053 impl fidl::encoding::ValueTypeMarker for WifiGetChipIdsResponse {
5054 type Borrowed<'a> = &'a Self;
5055 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5056 value
5057 }
5058 }
5059
5060 unsafe impl fidl::encoding::TypeMarker for WifiGetChipIdsResponse {
5061 type Owned = Self;
5062
5063 #[inline(always)]
5064 fn inline_align(_context: fidl::encoding::Context) -> usize {
5065 8
5066 }
5067
5068 #[inline(always)]
5069 fn inline_size(_context: fidl::encoding::Context) -> usize {
5070 16
5071 }
5072 }
5073
5074 unsafe impl<D: fidl::encoding::ResourceDialect>
5075 fidl::encoding::Encode<WifiGetChipIdsResponse, D> for &WifiGetChipIdsResponse
5076 {
5077 unsafe fn encode(
5078 self,
5079 encoder: &mut fidl::encoding::Encoder<'_, D>,
5080 offset: usize,
5081 mut depth: fidl::encoding::Depth,
5082 ) -> fidl::Result<()> {
5083 encoder.debug_check_bounds::<WifiGetChipIdsResponse>(offset);
5084 let max_ordinal: u64 = self.max_ordinal_present();
5086 encoder.write_num(max_ordinal, offset);
5087 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5088 if max_ordinal == 0 {
5090 return Ok(());
5091 }
5092 depth.increment()?;
5093 let envelope_size = 8;
5094 let bytes_len = max_ordinal as usize * envelope_size;
5095 #[allow(unused_variables)]
5096 let offset = encoder.out_of_line_offset(bytes_len);
5097 let mut _prev_end_offset: usize = 0;
5098 if 1 > max_ordinal {
5099 return Ok(());
5100 }
5101
5102 let cur_offset: usize = (1 - 1) * envelope_size;
5105
5106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5108
5109 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u32>, D>(
5114 self.chip_ids.as_ref().map(<fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow),
5115 encoder, offset + cur_offset, depth
5116 )?;
5117
5118 _prev_end_offset = cur_offset + envelope_size;
5119
5120 Ok(())
5121 }
5122 }
5123
5124 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5125 for WifiGetChipIdsResponse
5126 {
5127 #[inline(always)]
5128 fn new_empty() -> Self {
5129 Self::default()
5130 }
5131
5132 unsafe fn decode(
5133 &mut self,
5134 decoder: &mut fidl::encoding::Decoder<'_, D>,
5135 offset: usize,
5136 mut depth: fidl::encoding::Depth,
5137 ) -> fidl::Result<()> {
5138 decoder.debug_check_bounds::<Self>(offset);
5139 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5140 None => return Err(fidl::Error::NotNullable),
5141 Some(len) => len,
5142 };
5143 if len == 0 {
5145 return Ok(());
5146 };
5147 depth.increment()?;
5148 let envelope_size = 8;
5149 let bytes_len = len * envelope_size;
5150 let offset = decoder.out_of_line_offset(bytes_len)?;
5151 let mut _next_ordinal_to_read = 0;
5153 let mut next_offset = offset;
5154 let end_offset = offset + bytes_len;
5155 _next_ordinal_to_read += 1;
5156 if next_offset >= end_offset {
5157 return Ok(());
5158 }
5159
5160 while _next_ordinal_to_read < 1 {
5162 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5163 _next_ordinal_to_read += 1;
5164 next_offset += envelope_size;
5165 }
5166
5167 let next_out_of_line = decoder.next_out_of_line();
5168 let handles_before = decoder.remaining_handles();
5169 if let Some((inlined, num_bytes, num_handles)) =
5170 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5171 {
5172 let member_inline_size = <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5173 if inlined != (member_inline_size <= 4) {
5174 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5175 }
5176 let inner_offset;
5177 let mut inner_depth = depth.clone();
5178 if inlined {
5179 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5180 inner_offset = next_offset;
5181 } else {
5182 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5183 inner_depth.increment()?;
5184 }
5185 let val_ref = self.chip_ids.get_or_insert_with(|| {
5186 fidl::new_empty!(fidl::encoding::UnboundedVector<u32>, D)
5187 });
5188 fidl::decode!(
5189 fidl::encoding::UnboundedVector<u32>,
5190 D,
5191 val_ref,
5192 decoder,
5193 inner_offset,
5194 inner_depth
5195 )?;
5196 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5197 {
5198 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5199 }
5200 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5201 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5202 }
5203 }
5204
5205 next_offset += envelope_size;
5206
5207 while next_offset < end_offset {
5209 _next_ordinal_to_read += 1;
5210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5211 next_offset += envelope_size;
5212 }
5213
5214 Ok(())
5215 }
5216 }
5217
5218 impl WifiGetStateResponse {
5219 #[inline(always)]
5220 fn max_ordinal_present(&self) -> u64 {
5221 if let Some(_) = self.is_started {
5222 return 1;
5223 }
5224 0
5225 }
5226 }
5227
5228 impl fidl::encoding::ValueTypeMarker for WifiGetStateResponse {
5229 type Borrowed<'a> = &'a Self;
5230 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5231 value
5232 }
5233 }
5234
5235 unsafe impl fidl::encoding::TypeMarker for WifiGetStateResponse {
5236 type Owned = Self;
5237
5238 #[inline(always)]
5239 fn inline_align(_context: fidl::encoding::Context) -> usize {
5240 8
5241 }
5242
5243 #[inline(always)]
5244 fn inline_size(_context: fidl::encoding::Context) -> usize {
5245 16
5246 }
5247 }
5248
5249 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WifiGetStateResponse, D>
5250 for &WifiGetStateResponse
5251 {
5252 unsafe fn encode(
5253 self,
5254 encoder: &mut fidl::encoding::Encoder<'_, D>,
5255 offset: usize,
5256 mut depth: fidl::encoding::Depth,
5257 ) -> fidl::Result<()> {
5258 encoder.debug_check_bounds::<WifiGetStateResponse>(offset);
5259 let max_ordinal: u64 = self.max_ordinal_present();
5261 encoder.write_num(max_ordinal, offset);
5262 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5263 if max_ordinal == 0 {
5265 return Ok(());
5266 }
5267 depth.increment()?;
5268 let envelope_size = 8;
5269 let bytes_len = max_ordinal as usize * envelope_size;
5270 #[allow(unused_variables)]
5271 let offset = encoder.out_of_line_offset(bytes_len);
5272 let mut _prev_end_offset: usize = 0;
5273 if 1 > max_ordinal {
5274 return Ok(());
5275 }
5276
5277 let cur_offset: usize = (1 - 1) * envelope_size;
5280
5281 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5283
5284 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5289 self.is_started.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5290 encoder,
5291 offset + cur_offset,
5292 depth,
5293 )?;
5294
5295 _prev_end_offset = cur_offset + envelope_size;
5296
5297 Ok(())
5298 }
5299 }
5300
5301 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WifiGetStateResponse {
5302 #[inline(always)]
5303 fn new_empty() -> Self {
5304 Self::default()
5305 }
5306
5307 unsafe fn decode(
5308 &mut self,
5309 decoder: &mut fidl::encoding::Decoder<'_, D>,
5310 offset: usize,
5311 mut depth: fidl::encoding::Depth,
5312 ) -> fidl::Result<()> {
5313 decoder.debug_check_bounds::<Self>(offset);
5314 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5315 None => return Err(fidl::Error::NotNullable),
5316 Some(len) => len,
5317 };
5318 if len == 0 {
5320 return Ok(());
5321 };
5322 depth.increment()?;
5323 let envelope_size = 8;
5324 let bytes_len = len * envelope_size;
5325 let offset = decoder.out_of_line_offset(bytes_len)?;
5326 let mut _next_ordinal_to_read = 0;
5328 let mut next_offset = offset;
5329 let end_offset = offset + bytes_len;
5330 _next_ordinal_to_read += 1;
5331 if next_offset >= end_offset {
5332 return Ok(());
5333 }
5334
5335 while _next_ordinal_to_read < 1 {
5337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5338 _next_ordinal_to_read += 1;
5339 next_offset += envelope_size;
5340 }
5341
5342 let next_out_of_line = decoder.next_out_of_line();
5343 let handles_before = decoder.remaining_handles();
5344 if let Some((inlined, num_bytes, num_handles)) =
5345 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5346 {
5347 let member_inline_size =
5348 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5349 if inlined != (member_inline_size <= 4) {
5350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5351 }
5352 let inner_offset;
5353 let mut inner_depth = depth.clone();
5354 if inlined {
5355 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5356 inner_offset = next_offset;
5357 } else {
5358 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5359 inner_depth.increment()?;
5360 }
5361 let val_ref = self.is_started.get_or_insert_with(|| fidl::new_empty!(bool, D));
5362 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5363 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5364 {
5365 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5366 }
5367 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5368 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5369 }
5370 }
5371
5372 next_offset += envelope_size;
5373
5374 while next_offset < end_offset {
5376 _next_ordinal_to_read += 1;
5377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5378 next_offset += envelope_size;
5379 }
5380
5381 Ok(())
5382 }
5383 }
5384}