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 WlanPhyNotifyError {
13 Internal,
15 NotSupported,
17 ShouldWait,
19 InvalidArgs,
21 #[doc(hidden)]
22 __SourceBreaking { unknown_ordinal: u32 },
23}
24
25#[macro_export]
27macro_rules! WlanPhyNotifyErrorUnknown {
28 () => {
29 _
30 };
31}
32
33impl WlanPhyNotifyError {
34 #[inline]
35 pub fn from_primitive(prim: u32) -> Option<Self> {
36 match prim {
37 1 => Some(Self::Internal),
38 2 => Some(Self::NotSupported),
39 3 => Some(Self::ShouldWait),
40 4 => Some(Self::InvalidArgs),
41 _ => None,
42 }
43 }
44
45 #[inline]
46 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
47 match prim {
48 1 => Self::Internal,
49 2 => Self::NotSupported,
50 3 => Self::ShouldWait,
51 4 => Self::InvalidArgs,
52 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
53 }
54 }
55
56 #[inline]
57 pub fn unknown() -> Self {
58 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
59 }
60
61 #[inline]
62 pub const fn into_primitive(self) -> u32 {
63 match self {
64 Self::Internal => 1,
65 Self::NotSupported => 2,
66 Self::ShouldWait => 3,
67 Self::InvalidArgs => 4,
68 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
69 }
70 }
71
72 #[inline]
73 pub fn is_unknown(&self) -> bool {
74 match self {
75 Self::__SourceBreaking { unknown_ordinal: _ } => true,
76 _ => false,
77 }
78 }
79}
80
81#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
82#[repr(C)]
83pub struct WlanPhySetCountryRequest {
84 pub country: [u8; 2],
85}
86
87impl fidl::Persistable for WlanPhySetCountryRequest {}
88
89#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
90#[repr(C)]
91pub struct WlanPhyGetCountryResponse {
92 pub country: [u8; 2],
93}
94
95impl fidl::Persistable for WlanPhyGetCountryResponse {}
96
97#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
98pub struct WlanPhyGetTxPowerScenarioResponse {
99 pub scenario: fidl_fuchsia_wlan_internal_common::TxPowerScenario,
100}
101
102impl fidl::Persistable for WlanPhyGetTxPowerScenarioResponse {}
103
104#[derive(Clone, Debug, Default, PartialEq)]
105pub struct WlanPhyDestroyIfaceRequest {
106 pub iface_id: Option<u16>,
108 #[doc(hidden)]
109 pub __source_breaking: fidl::marker::SourceBreaking,
110}
111
112impl fidl::Persistable for WlanPhyDestroyIfaceRequest {}
113
114#[derive(Clone, Debug, Default, PartialEq)]
115pub struct WlanPhyNotifyOnCountryCodeChangeRequest {
116 pub phy_country: Option<[u8; 2]>,
117 #[doc(hidden)]
118 pub __source_breaking: fidl::marker::SourceBreaking,
119}
120
121impl fidl::Persistable for WlanPhyNotifyOnCountryCodeChangeRequest {}
122
123#[derive(Clone, Debug, Default, PartialEq)]
124pub struct WlanPhyNotifyOnCriticalErrorRequest {
125 pub reason_code: Option<fidl_fuchsia_wlan_internal_common::CriticalErrorReason>,
126 #[doc(hidden)]
127 pub __source_breaking: fidl::marker::SourceBreaking,
128}
129
130impl fidl::Persistable for WlanPhyNotifyOnCriticalErrorRequest {}
131
132#[derive(Clone, Debug, Default, PartialEq)]
133pub struct WlanPhySetBtCoexistenceModeRequest {
134 pub mode: Option<fidl_fuchsia_wlan_internal_common::BtCoexistenceMode>,
135 #[doc(hidden)]
136 pub __source_breaking: fidl::marker::SourceBreaking,
137}
138
139impl fidl::Persistable for WlanPhySetBtCoexistenceModeRequest {}
140
141#[derive(Clone, Debug, Default, PartialEq)]
142pub struct WlanPhySetPowerSaveModeRequest {
143 pub ps_mode: Option<fidl_fuchsia_wlan_common_common::PowerSaveType>,
145 #[doc(hidden)]
146 pub __source_breaking: fidl::marker::SourceBreaking,
147}
148
149impl fidl::Persistable for WlanPhySetPowerSaveModeRequest {}
150
151#[derive(Clone, Debug, Default, PartialEq)]
152pub struct WlanPhySetTxPowerScenarioRequest {
153 pub scenario: Option<fidl_fuchsia_wlan_internal_common::TxPowerScenario>,
154 #[doc(hidden)]
155 pub __source_breaking: fidl::marker::SourceBreaking,
156}
157
158impl fidl::Persistable for WlanPhySetTxPowerScenarioRequest {}
159
160#[derive(Clone, Debug, Default, PartialEq)]
161pub struct WlanPhyCreateIfaceResponse {
162 pub iface_id: Option<u16>,
164 #[doc(hidden)]
165 pub __source_breaking: fidl::marker::SourceBreaking,
166}
167
168impl fidl::Persistable for WlanPhyCreateIfaceResponse {}
169
170#[derive(Clone, Debug, Default, PartialEq)]
171pub struct WlanPhyGetPowerSaveModeResponse {
172 pub ps_mode: Option<fidl_fuchsia_wlan_common_common::PowerSaveType>,
174 #[doc(hidden)]
175 pub __source_breaking: fidl::marker::SourceBreaking,
176}
177
178impl fidl::Persistable for WlanPhyGetPowerSaveModeResponse {}
179
180#[derive(Clone, Debug, Default, PartialEq)]
181pub struct WlanPhyGetPowerStateResponse {
182 pub power_on: Option<bool>,
183 #[doc(hidden)]
184 pub __source_breaking: fidl::marker::SourceBreaking,
185}
186
187impl fidl::Persistable for WlanPhyGetPowerStateResponse {}
188
189#[derive(Clone, Debug, Default, PartialEq)]
190pub struct WlanPhyGetSupportedMacRolesResponse {
191 pub supported_mac_roles: Option<Vec<fidl_fuchsia_wlan_common_common::WlanMacRole>>,
192 #[doc(hidden)]
193 pub __source_breaking: fidl::marker::SourceBreaking,
194}
195
196impl fidl::Persistable for WlanPhyGetSupportedMacRolesResponse {}
197
198pub mod wlan_phy_ordinals {
199 pub const INIT: u64 = 0x399fe5e97bb0eff3;
200 pub const GET_SUPPORTED_MAC_ROLES: u64 = 0x36891bcf679ad34a;
201 pub const CREATE_IFACE: u64 = 0x4cc00e15727fbb8e;
202 pub const DESTROY_IFACE: u64 = 0xfa408ede62bf8bc;
203 pub const SET_COUNTRY: u64 = 0x6d1258ed25af4a0f;
204 pub const CLEAR_COUNTRY: u64 = 0x73f333d223cec34f;
205 pub const GET_COUNTRY: u64 = 0x13ee2c5158d8507a;
206 pub const SET_POWER_SAVE_MODE: u64 = 0x4e164c65070f890d;
207 pub const GET_POWER_SAVE_MODE: u64 = 0x1cbd3390a4230826;
208 pub const RESET: u64 = 0x2f0f1d8f2f22988f;
209 pub const GET_POWER_STATE: u64 = 0x4639d1e5e93102c1;
210 pub const SET_BT_COEXISTENCE_MODE: u64 = 0x5ac69f24a87cac05;
211 pub const SET_TX_POWER_SCENARIO: u64 = 0x72e4d055cd3a18dc;
212 pub const RESET_TX_POWER_SCENARIO: u64 = 0x78c3bd271b3bb712;
213 pub const GET_TX_POWER_SCENARIO: u64 = 0x62f9717d964b3c8e;
214}
215
216pub mod wlan_phy_notify_ordinals {
217 pub const ON_CRITICAL_ERROR: u64 = 0x621a4bea612fda2;
218 pub const ON_COUNTRY_CODE_CHANGE: u64 = 0x9db74ddfe1fa156;
219}
220
221mod internal {
222 use super::*;
223 unsafe impl fidl::encoding::TypeMarker for WlanPhyNotifyError {
224 type Owned = Self;
225
226 #[inline(always)]
227 fn inline_align(_context: fidl::encoding::Context) -> usize {
228 std::mem::align_of::<u32>()
229 }
230
231 #[inline(always)]
232 fn inline_size(_context: fidl::encoding::Context) -> usize {
233 std::mem::size_of::<u32>()
234 }
235
236 #[inline(always)]
237 fn encode_is_copy() -> bool {
238 false
239 }
240
241 #[inline(always)]
242 fn decode_is_copy() -> bool {
243 false
244 }
245 }
246
247 impl fidl::encoding::ValueTypeMarker for WlanPhyNotifyError {
248 type Borrowed<'a> = Self;
249 #[inline(always)]
250 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
251 *value
252 }
253 }
254
255 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
256 for WlanPhyNotifyError
257 {
258 #[inline]
259 unsafe fn encode(
260 self,
261 encoder: &mut fidl::encoding::Encoder<'_, D>,
262 offset: usize,
263 _depth: fidl::encoding::Depth,
264 ) -> fidl::Result<()> {
265 encoder.debug_check_bounds::<Self>(offset);
266 encoder.write_num(self.into_primitive(), offset);
267 Ok(())
268 }
269 }
270
271 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WlanPhyNotifyError {
272 #[inline(always)]
273 fn new_empty() -> Self {
274 Self::unknown()
275 }
276
277 #[inline]
278 unsafe fn decode(
279 &mut self,
280 decoder: &mut fidl::encoding::Decoder<'_, D>,
281 offset: usize,
282 _depth: fidl::encoding::Depth,
283 ) -> fidl::Result<()> {
284 decoder.debug_check_bounds::<Self>(offset);
285 let prim = decoder.read_num::<u32>(offset);
286
287 *self = Self::from_primitive_allow_unknown(prim);
288 Ok(())
289 }
290 }
291
292 impl fidl::encoding::ValueTypeMarker for WlanPhySetCountryRequest {
293 type Borrowed<'a> = &'a Self;
294 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
295 value
296 }
297 }
298
299 unsafe impl fidl::encoding::TypeMarker for WlanPhySetCountryRequest {
300 type Owned = Self;
301
302 #[inline(always)]
303 fn inline_align(_context: fidl::encoding::Context) -> usize {
304 1
305 }
306
307 #[inline(always)]
308 fn inline_size(_context: fidl::encoding::Context) -> usize {
309 2
310 }
311 #[inline(always)]
312 fn encode_is_copy() -> bool {
313 true
314 }
315
316 #[inline(always)]
317 fn decode_is_copy() -> bool {
318 true
319 }
320 }
321
322 unsafe impl<D: fidl::encoding::ResourceDialect>
323 fidl::encoding::Encode<WlanPhySetCountryRequest, D> for &WlanPhySetCountryRequest
324 {
325 #[inline]
326 unsafe fn encode(
327 self,
328 encoder: &mut fidl::encoding::Encoder<'_, D>,
329 offset: usize,
330 _depth: fidl::encoding::Depth,
331 ) -> fidl::Result<()> {
332 encoder.debug_check_bounds::<WlanPhySetCountryRequest>(offset);
333 unsafe {
334 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
336 (buf_ptr as *mut WlanPhySetCountryRequest)
337 .write_unaligned((self as *const WlanPhySetCountryRequest).read());
338 }
341 Ok(())
342 }
343 }
344 unsafe impl<
345 D: fidl::encoding::ResourceDialect,
346 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 2>, D>,
347 > fidl::encoding::Encode<WlanPhySetCountryRequest, D> for (T0,)
348 {
349 #[inline]
350 unsafe fn encode(
351 self,
352 encoder: &mut fidl::encoding::Encoder<'_, D>,
353 offset: usize,
354 depth: fidl::encoding::Depth,
355 ) -> fidl::Result<()> {
356 encoder.debug_check_bounds::<WlanPhySetCountryRequest>(offset);
357 self.0.encode(encoder, offset + 0, depth)?;
361 Ok(())
362 }
363 }
364
365 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
366 for WlanPhySetCountryRequest
367 {
368 #[inline(always)]
369 fn new_empty() -> Self {
370 Self { country: fidl::new_empty!(fidl::encoding::Array<u8, 2>, D) }
371 }
372
373 #[inline]
374 unsafe fn decode(
375 &mut self,
376 decoder: &mut fidl::encoding::Decoder<'_, D>,
377 offset: usize,
378 _depth: fidl::encoding::Depth,
379 ) -> fidl::Result<()> {
380 decoder.debug_check_bounds::<Self>(offset);
381 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
382 unsafe {
385 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
386 }
387 Ok(())
388 }
389 }
390
391 impl fidl::encoding::ValueTypeMarker for WlanPhyGetCountryResponse {
392 type Borrowed<'a> = &'a Self;
393 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
394 value
395 }
396 }
397
398 unsafe impl fidl::encoding::TypeMarker for WlanPhyGetCountryResponse {
399 type Owned = Self;
400
401 #[inline(always)]
402 fn inline_align(_context: fidl::encoding::Context) -> usize {
403 1
404 }
405
406 #[inline(always)]
407 fn inline_size(_context: fidl::encoding::Context) -> usize {
408 2
409 }
410 #[inline(always)]
411 fn encode_is_copy() -> bool {
412 true
413 }
414
415 #[inline(always)]
416 fn decode_is_copy() -> bool {
417 true
418 }
419 }
420
421 unsafe impl<D: fidl::encoding::ResourceDialect>
422 fidl::encoding::Encode<WlanPhyGetCountryResponse, D> for &WlanPhyGetCountryResponse
423 {
424 #[inline]
425 unsafe fn encode(
426 self,
427 encoder: &mut fidl::encoding::Encoder<'_, D>,
428 offset: usize,
429 _depth: fidl::encoding::Depth,
430 ) -> fidl::Result<()> {
431 encoder.debug_check_bounds::<WlanPhyGetCountryResponse>(offset);
432 unsafe {
433 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
435 (buf_ptr as *mut WlanPhyGetCountryResponse)
436 .write_unaligned((self as *const WlanPhyGetCountryResponse).read());
437 }
440 Ok(())
441 }
442 }
443 unsafe impl<
444 D: fidl::encoding::ResourceDialect,
445 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 2>, D>,
446 > fidl::encoding::Encode<WlanPhyGetCountryResponse, D> for (T0,)
447 {
448 #[inline]
449 unsafe fn encode(
450 self,
451 encoder: &mut fidl::encoding::Encoder<'_, D>,
452 offset: usize,
453 depth: fidl::encoding::Depth,
454 ) -> fidl::Result<()> {
455 encoder.debug_check_bounds::<WlanPhyGetCountryResponse>(offset);
456 self.0.encode(encoder, offset + 0, depth)?;
460 Ok(())
461 }
462 }
463
464 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
465 for WlanPhyGetCountryResponse
466 {
467 #[inline(always)]
468 fn new_empty() -> Self {
469 Self { country: fidl::new_empty!(fidl::encoding::Array<u8, 2>, D) }
470 }
471
472 #[inline]
473 unsafe fn decode(
474 &mut self,
475 decoder: &mut fidl::encoding::Decoder<'_, D>,
476 offset: usize,
477 _depth: fidl::encoding::Depth,
478 ) -> fidl::Result<()> {
479 decoder.debug_check_bounds::<Self>(offset);
480 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
481 unsafe {
484 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
485 }
486 Ok(())
487 }
488 }
489
490 impl fidl::encoding::ValueTypeMarker for WlanPhyGetTxPowerScenarioResponse {
491 type Borrowed<'a> = &'a Self;
492 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
493 value
494 }
495 }
496
497 unsafe impl fidl::encoding::TypeMarker for WlanPhyGetTxPowerScenarioResponse {
498 type Owned = Self;
499
500 #[inline(always)]
501 fn inline_align(_context: fidl::encoding::Context) -> usize {
502 4
503 }
504
505 #[inline(always)]
506 fn inline_size(_context: fidl::encoding::Context) -> usize {
507 4
508 }
509 }
510
511 unsafe impl<D: fidl::encoding::ResourceDialect>
512 fidl::encoding::Encode<WlanPhyGetTxPowerScenarioResponse, D>
513 for &WlanPhyGetTxPowerScenarioResponse
514 {
515 #[inline]
516 unsafe fn encode(
517 self,
518 encoder: &mut fidl::encoding::Encoder<'_, D>,
519 offset: usize,
520 _depth: fidl::encoding::Depth,
521 ) -> fidl::Result<()> {
522 encoder.debug_check_bounds::<WlanPhyGetTxPowerScenarioResponse>(offset);
523 fidl::encoding::Encode::<WlanPhyGetTxPowerScenarioResponse, D>::encode(
525 (
526 <fidl_fuchsia_wlan_internal_common::TxPowerScenario as fidl::encoding::ValueTypeMarker>::borrow(&self.scenario),
527 ),
528 encoder, offset, _depth
529 )
530 }
531 }
532 unsafe impl<
533 D: fidl::encoding::ResourceDialect,
534 T0: fidl::encoding::Encode<fidl_fuchsia_wlan_internal_common::TxPowerScenario, D>,
535 > fidl::encoding::Encode<WlanPhyGetTxPowerScenarioResponse, D> for (T0,)
536 {
537 #[inline]
538 unsafe fn encode(
539 self,
540 encoder: &mut fidl::encoding::Encoder<'_, D>,
541 offset: usize,
542 depth: fidl::encoding::Depth,
543 ) -> fidl::Result<()> {
544 encoder.debug_check_bounds::<WlanPhyGetTxPowerScenarioResponse>(offset);
545 self.0.encode(encoder, offset + 0, depth)?;
549 Ok(())
550 }
551 }
552
553 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
554 for WlanPhyGetTxPowerScenarioResponse
555 {
556 #[inline(always)]
557 fn new_empty() -> Self {
558 Self {
559 scenario: fidl::new_empty!(fidl_fuchsia_wlan_internal_common::TxPowerScenario, D),
560 }
561 }
562
563 #[inline]
564 unsafe fn decode(
565 &mut self,
566 decoder: &mut fidl::encoding::Decoder<'_, D>,
567 offset: usize,
568 _depth: fidl::encoding::Depth,
569 ) -> fidl::Result<()> {
570 decoder.debug_check_bounds::<Self>(offset);
571 fidl::decode!(
573 fidl_fuchsia_wlan_internal_common::TxPowerScenario,
574 D,
575 &mut self.scenario,
576 decoder,
577 offset + 0,
578 _depth
579 )?;
580 Ok(())
581 }
582 }
583
584 impl WlanPhyDestroyIfaceRequest {
585 #[inline(always)]
586 fn max_ordinal_present(&self) -> u64 {
587 if let Some(_) = self.iface_id {
588 return 1;
589 }
590 0
591 }
592 }
593
594 impl fidl::encoding::ValueTypeMarker for WlanPhyDestroyIfaceRequest {
595 type Borrowed<'a> = &'a Self;
596 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
597 value
598 }
599 }
600
601 unsafe impl fidl::encoding::TypeMarker for WlanPhyDestroyIfaceRequest {
602 type Owned = Self;
603
604 #[inline(always)]
605 fn inline_align(_context: fidl::encoding::Context) -> usize {
606 8
607 }
608
609 #[inline(always)]
610 fn inline_size(_context: fidl::encoding::Context) -> usize {
611 16
612 }
613 }
614
615 unsafe impl<D: fidl::encoding::ResourceDialect>
616 fidl::encoding::Encode<WlanPhyDestroyIfaceRequest, D> for &WlanPhyDestroyIfaceRequest
617 {
618 unsafe fn encode(
619 self,
620 encoder: &mut fidl::encoding::Encoder<'_, D>,
621 offset: usize,
622 mut depth: fidl::encoding::Depth,
623 ) -> fidl::Result<()> {
624 encoder.debug_check_bounds::<WlanPhyDestroyIfaceRequest>(offset);
625 let max_ordinal: u64 = self.max_ordinal_present();
627 encoder.write_num(max_ordinal, offset);
628 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
629 if max_ordinal == 0 {
631 return Ok(());
632 }
633 depth.increment()?;
634 let envelope_size = 8;
635 let bytes_len = max_ordinal as usize * envelope_size;
636 #[allow(unused_variables)]
637 let offset = encoder.out_of_line_offset(bytes_len);
638 let mut _prev_end_offset: usize = 0;
639 if 1 > max_ordinal {
640 return Ok(());
641 }
642
643 let cur_offset: usize = (1 - 1) * envelope_size;
646
647 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
649
650 fidl::encoding::encode_in_envelope_optional::<u16, D>(
655 self.iface_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
656 encoder,
657 offset + cur_offset,
658 depth,
659 )?;
660
661 _prev_end_offset = cur_offset + envelope_size;
662
663 Ok(())
664 }
665 }
666
667 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
668 for WlanPhyDestroyIfaceRequest
669 {
670 #[inline(always)]
671 fn new_empty() -> Self {
672 Self::default()
673 }
674
675 unsafe fn decode(
676 &mut self,
677 decoder: &mut fidl::encoding::Decoder<'_, D>,
678 offset: usize,
679 mut depth: fidl::encoding::Depth,
680 ) -> fidl::Result<()> {
681 decoder.debug_check_bounds::<Self>(offset);
682 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
683 None => return Err(fidl::Error::NotNullable),
684 Some(len) => len,
685 };
686 if len == 0 {
688 return Ok(());
689 };
690 depth.increment()?;
691 let envelope_size = 8;
692 let bytes_len = len * envelope_size;
693 let offset = decoder.out_of_line_offset(bytes_len)?;
694 let mut _next_ordinal_to_read = 0;
696 let mut next_offset = offset;
697 let end_offset = offset + bytes_len;
698 _next_ordinal_to_read += 1;
699 if next_offset >= end_offset {
700 return Ok(());
701 }
702
703 while _next_ordinal_to_read < 1 {
705 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
706 _next_ordinal_to_read += 1;
707 next_offset += envelope_size;
708 }
709
710 let next_out_of_line = decoder.next_out_of_line();
711 let handles_before = decoder.remaining_handles();
712 if let Some((inlined, num_bytes, num_handles)) =
713 fidl::encoding::decode_envelope_header(decoder, next_offset)?
714 {
715 let member_inline_size =
716 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
717 if inlined != (member_inline_size <= 4) {
718 return Err(fidl::Error::InvalidInlineBitInEnvelope);
719 }
720 let inner_offset;
721 let mut inner_depth = depth.clone();
722 if inlined {
723 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
724 inner_offset = next_offset;
725 } else {
726 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
727 inner_depth.increment()?;
728 }
729 let val_ref = self.iface_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
730 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
731 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
732 {
733 return Err(fidl::Error::InvalidNumBytesInEnvelope);
734 }
735 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
736 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
737 }
738 }
739
740 next_offset += envelope_size;
741
742 while next_offset < end_offset {
744 _next_ordinal_to_read += 1;
745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
746 next_offset += envelope_size;
747 }
748
749 Ok(())
750 }
751 }
752
753 impl WlanPhyNotifyOnCountryCodeChangeRequest {
754 #[inline(always)]
755 fn max_ordinal_present(&self) -> u64 {
756 if let Some(_) = self.phy_country {
757 return 1;
758 }
759 0
760 }
761 }
762
763 impl fidl::encoding::ValueTypeMarker for WlanPhyNotifyOnCountryCodeChangeRequest {
764 type Borrowed<'a> = &'a Self;
765 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
766 value
767 }
768 }
769
770 unsafe impl fidl::encoding::TypeMarker for WlanPhyNotifyOnCountryCodeChangeRequest {
771 type Owned = Self;
772
773 #[inline(always)]
774 fn inline_align(_context: fidl::encoding::Context) -> usize {
775 8
776 }
777
778 #[inline(always)]
779 fn inline_size(_context: fidl::encoding::Context) -> usize {
780 16
781 }
782 }
783
784 unsafe impl<D: fidl::encoding::ResourceDialect>
785 fidl::encoding::Encode<WlanPhyNotifyOnCountryCodeChangeRequest, D>
786 for &WlanPhyNotifyOnCountryCodeChangeRequest
787 {
788 unsafe fn encode(
789 self,
790 encoder: &mut fidl::encoding::Encoder<'_, D>,
791 offset: usize,
792 mut depth: fidl::encoding::Depth,
793 ) -> fidl::Result<()> {
794 encoder.debug_check_bounds::<WlanPhyNotifyOnCountryCodeChangeRequest>(offset);
795 let max_ordinal: u64 = self.max_ordinal_present();
797 encoder.write_num(max_ordinal, offset);
798 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
799 if max_ordinal == 0 {
801 return Ok(());
802 }
803 depth.increment()?;
804 let envelope_size = 8;
805 let bytes_len = max_ordinal as usize * envelope_size;
806 #[allow(unused_variables)]
807 let offset = encoder.out_of_line_offset(bytes_len);
808 let mut _prev_end_offset: usize = 0;
809 if 1 > max_ordinal {
810 return Ok(());
811 }
812
813 let cur_offset: usize = (1 - 1) * envelope_size;
816
817 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
819
820 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 2>, D>(
825 self.phy_country
826 .as_ref()
827 .map(<fidl::encoding::Array<u8, 2> as fidl::encoding::ValueTypeMarker>::borrow),
828 encoder,
829 offset + cur_offset,
830 depth,
831 )?;
832
833 _prev_end_offset = cur_offset + envelope_size;
834
835 Ok(())
836 }
837 }
838
839 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
840 for WlanPhyNotifyOnCountryCodeChangeRequest
841 {
842 #[inline(always)]
843 fn new_empty() -> Self {
844 Self::default()
845 }
846
847 unsafe fn decode(
848 &mut self,
849 decoder: &mut fidl::encoding::Decoder<'_, D>,
850 offset: usize,
851 mut depth: fidl::encoding::Depth,
852 ) -> fidl::Result<()> {
853 decoder.debug_check_bounds::<Self>(offset);
854 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
855 None => return Err(fidl::Error::NotNullable),
856 Some(len) => len,
857 };
858 if len == 0 {
860 return Ok(());
861 };
862 depth.increment()?;
863 let envelope_size = 8;
864 let bytes_len = len * envelope_size;
865 let offset = decoder.out_of_line_offset(bytes_len)?;
866 let mut _next_ordinal_to_read = 0;
868 let mut next_offset = offset;
869 let end_offset = offset + bytes_len;
870 _next_ordinal_to_read += 1;
871 if next_offset >= end_offset {
872 return Ok(());
873 }
874
875 while _next_ordinal_to_read < 1 {
877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
878 _next_ordinal_to_read += 1;
879 next_offset += envelope_size;
880 }
881
882 let next_out_of_line = decoder.next_out_of_line();
883 let handles_before = decoder.remaining_handles();
884 if let Some((inlined, num_bytes, num_handles)) =
885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
886 {
887 let member_inline_size =
888 <fidl::encoding::Array<u8, 2> as fidl::encoding::TypeMarker>::inline_size(
889 decoder.context,
890 );
891 if inlined != (member_inline_size <= 4) {
892 return Err(fidl::Error::InvalidInlineBitInEnvelope);
893 }
894 let inner_offset;
895 let mut inner_depth = depth.clone();
896 if inlined {
897 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
898 inner_offset = next_offset;
899 } else {
900 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
901 inner_depth.increment()?;
902 }
903 let val_ref = self
904 .phy_country
905 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 2>, D));
906 fidl::decode!(fidl::encoding::Array<u8, 2>, D, val_ref, decoder, inner_offset, inner_depth)?;
907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
908 {
909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
910 }
911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
913 }
914 }
915
916 next_offset += envelope_size;
917
918 while next_offset < end_offset {
920 _next_ordinal_to_read += 1;
921 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
922 next_offset += envelope_size;
923 }
924
925 Ok(())
926 }
927 }
928
929 impl WlanPhyNotifyOnCriticalErrorRequest {
930 #[inline(always)]
931 fn max_ordinal_present(&self) -> u64 {
932 if let Some(_) = self.reason_code {
933 return 1;
934 }
935 0
936 }
937 }
938
939 impl fidl::encoding::ValueTypeMarker for WlanPhyNotifyOnCriticalErrorRequest {
940 type Borrowed<'a> = &'a Self;
941 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
942 value
943 }
944 }
945
946 unsafe impl fidl::encoding::TypeMarker for WlanPhyNotifyOnCriticalErrorRequest {
947 type Owned = Self;
948
949 #[inline(always)]
950 fn inline_align(_context: fidl::encoding::Context) -> usize {
951 8
952 }
953
954 #[inline(always)]
955 fn inline_size(_context: fidl::encoding::Context) -> usize {
956 16
957 }
958 }
959
960 unsafe impl<D: fidl::encoding::ResourceDialect>
961 fidl::encoding::Encode<WlanPhyNotifyOnCriticalErrorRequest, D>
962 for &WlanPhyNotifyOnCriticalErrorRequest
963 {
964 unsafe fn encode(
965 self,
966 encoder: &mut fidl::encoding::Encoder<'_, D>,
967 offset: usize,
968 mut depth: fidl::encoding::Depth,
969 ) -> fidl::Result<()> {
970 encoder.debug_check_bounds::<WlanPhyNotifyOnCriticalErrorRequest>(offset);
971 let max_ordinal: u64 = self.max_ordinal_present();
973 encoder.write_num(max_ordinal, offset);
974 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
975 if max_ordinal == 0 {
977 return Ok(());
978 }
979 depth.increment()?;
980 let envelope_size = 8;
981 let bytes_len = max_ordinal as usize * envelope_size;
982 #[allow(unused_variables)]
983 let offset = encoder.out_of_line_offset(bytes_len);
984 let mut _prev_end_offset: usize = 0;
985 if 1 > max_ordinal {
986 return Ok(());
987 }
988
989 let cur_offset: usize = (1 - 1) * envelope_size;
992
993 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
995
996 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_internal_common::CriticalErrorReason, D>(
1001 self.reason_code.as_ref().map(<fidl_fuchsia_wlan_internal_common::CriticalErrorReason as fidl::encoding::ValueTypeMarker>::borrow),
1002 encoder, offset + cur_offset, depth
1003 )?;
1004
1005 _prev_end_offset = cur_offset + envelope_size;
1006
1007 Ok(())
1008 }
1009 }
1010
1011 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1012 for WlanPhyNotifyOnCriticalErrorRequest
1013 {
1014 #[inline(always)]
1015 fn new_empty() -> Self {
1016 Self::default()
1017 }
1018
1019 unsafe fn decode(
1020 &mut self,
1021 decoder: &mut fidl::encoding::Decoder<'_, D>,
1022 offset: usize,
1023 mut depth: fidl::encoding::Depth,
1024 ) -> fidl::Result<()> {
1025 decoder.debug_check_bounds::<Self>(offset);
1026 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1027 None => return Err(fidl::Error::NotNullable),
1028 Some(len) => len,
1029 };
1030 if len == 0 {
1032 return Ok(());
1033 };
1034 depth.increment()?;
1035 let envelope_size = 8;
1036 let bytes_len = len * envelope_size;
1037 let offset = decoder.out_of_line_offset(bytes_len)?;
1038 let mut _next_ordinal_to_read = 0;
1040 let mut next_offset = offset;
1041 let end_offset = offset + bytes_len;
1042 _next_ordinal_to_read += 1;
1043 if next_offset >= end_offset {
1044 return Ok(());
1045 }
1046
1047 while _next_ordinal_to_read < 1 {
1049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1050 _next_ordinal_to_read += 1;
1051 next_offset += envelope_size;
1052 }
1053
1054 let next_out_of_line = decoder.next_out_of_line();
1055 let handles_before = decoder.remaining_handles();
1056 if let Some((inlined, num_bytes, num_handles)) =
1057 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1058 {
1059 let member_inline_size = <fidl_fuchsia_wlan_internal_common::CriticalErrorReason as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1060 if inlined != (member_inline_size <= 4) {
1061 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1062 }
1063 let inner_offset;
1064 let mut inner_depth = depth.clone();
1065 if inlined {
1066 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1067 inner_offset = next_offset;
1068 } else {
1069 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1070 inner_depth.increment()?;
1071 }
1072 let val_ref = self.reason_code.get_or_insert_with(|| {
1073 fidl::new_empty!(fidl_fuchsia_wlan_internal_common::CriticalErrorReason, D)
1074 });
1075 fidl::decode!(
1076 fidl_fuchsia_wlan_internal_common::CriticalErrorReason,
1077 D,
1078 val_ref,
1079 decoder,
1080 inner_offset,
1081 inner_depth
1082 )?;
1083 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1084 {
1085 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1086 }
1087 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1088 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1089 }
1090 }
1091
1092 next_offset += envelope_size;
1093
1094 while next_offset < end_offset {
1096 _next_ordinal_to_read += 1;
1097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1098 next_offset += envelope_size;
1099 }
1100
1101 Ok(())
1102 }
1103 }
1104
1105 impl WlanPhySetBtCoexistenceModeRequest {
1106 #[inline(always)]
1107 fn max_ordinal_present(&self) -> u64 {
1108 if let Some(_) = self.mode {
1109 return 1;
1110 }
1111 0
1112 }
1113 }
1114
1115 impl fidl::encoding::ValueTypeMarker for WlanPhySetBtCoexistenceModeRequest {
1116 type Borrowed<'a> = &'a Self;
1117 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1118 value
1119 }
1120 }
1121
1122 unsafe impl fidl::encoding::TypeMarker for WlanPhySetBtCoexistenceModeRequest {
1123 type Owned = Self;
1124
1125 #[inline(always)]
1126 fn inline_align(_context: fidl::encoding::Context) -> usize {
1127 8
1128 }
1129
1130 #[inline(always)]
1131 fn inline_size(_context: fidl::encoding::Context) -> usize {
1132 16
1133 }
1134 }
1135
1136 unsafe impl<D: fidl::encoding::ResourceDialect>
1137 fidl::encoding::Encode<WlanPhySetBtCoexistenceModeRequest, D>
1138 for &WlanPhySetBtCoexistenceModeRequest
1139 {
1140 unsafe fn encode(
1141 self,
1142 encoder: &mut fidl::encoding::Encoder<'_, D>,
1143 offset: usize,
1144 mut depth: fidl::encoding::Depth,
1145 ) -> fidl::Result<()> {
1146 encoder.debug_check_bounds::<WlanPhySetBtCoexistenceModeRequest>(offset);
1147 let max_ordinal: u64 = self.max_ordinal_present();
1149 encoder.write_num(max_ordinal, offset);
1150 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1151 if max_ordinal == 0 {
1153 return Ok(());
1154 }
1155 depth.increment()?;
1156 let envelope_size = 8;
1157 let bytes_len = max_ordinal as usize * envelope_size;
1158 #[allow(unused_variables)]
1159 let offset = encoder.out_of_line_offset(bytes_len);
1160 let mut _prev_end_offset: usize = 0;
1161 if 1 > max_ordinal {
1162 return Ok(());
1163 }
1164
1165 let cur_offset: usize = (1 - 1) * envelope_size;
1168
1169 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1171
1172 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_internal_common::BtCoexistenceMode, D>(
1177 self.mode.as_ref().map(<fidl_fuchsia_wlan_internal_common::BtCoexistenceMode as fidl::encoding::ValueTypeMarker>::borrow),
1178 encoder, offset + cur_offset, depth
1179 )?;
1180
1181 _prev_end_offset = cur_offset + envelope_size;
1182
1183 Ok(())
1184 }
1185 }
1186
1187 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1188 for WlanPhySetBtCoexistenceModeRequest
1189 {
1190 #[inline(always)]
1191 fn new_empty() -> Self {
1192 Self::default()
1193 }
1194
1195 unsafe fn decode(
1196 &mut self,
1197 decoder: &mut fidl::encoding::Decoder<'_, D>,
1198 offset: usize,
1199 mut depth: fidl::encoding::Depth,
1200 ) -> fidl::Result<()> {
1201 decoder.debug_check_bounds::<Self>(offset);
1202 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1203 None => return Err(fidl::Error::NotNullable),
1204 Some(len) => len,
1205 };
1206 if len == 0 {
1208 return Ok(());
1209 };
1210 depth.increment()?;
1211 let envelope_size = 8;
1212 let bytes_len = len * envelope_size;
1213 let offset = decoder.out_of_line_offset(bytes_len)?;
1214 let mut _next_ordinal_to_read = 0;
1216 let mut next_offset = offset;
1217 let end_offset = offset + bytes_len;
1218 _next_ordinal_to_read += 1;
1219 if next_offset >= end_offset {
1220 return Ok(());
1221 }
1222
1223 while _next_ordinal_to_read < 1 {
1225 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1226 _next_ordinal_to_read += 1;
1227 next_offset += envelope_size;
1228 }
1229
1230 let next_out_of_line = decoder.next_out_of_line();
1231 let handles_before = decoder.remaining_handles();
1232 if let Some((inlined, num_bytes, num_handles)) =
1233 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1234 {
1235 let member_inline_size = <fidl_fuchsia_wlan_internal_common::BtCoexistenceMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1236 if inlined != (member_inline_size <= 4) {
1237 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1238 }
1239 let inner_offset;
1240 let mut inner_depth = depth.clone();
1241 if inlined {
1242 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1243 inner_offset = next_offset;
1244 } else {
1245 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1246 inner_depth.increment()?;
1247 }
1248 let val_ref = self.mode.get_or_insert_with(|| {
1249 fidl::new_empty!(fidl_fuchsia_wlan_internal_common::BtCoexistenceMode, D)
1250 });
1251 fidl::decode!(
1252 fidl_fuchsia_wlan_internal_common::BtCoexistenceMode,
1253 D,
1254 val_ref,
1255 decoder,
1256 inner_offset,
1257 inner_depth
1258 )?;
1259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1260 {
1261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1262 }
1263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1265 }
1266 }
1267
1268 next_offset += envelope_size;
1269
1270 while next_offset < end_offset {
1272 _next_ordinal_to_read += 1;
1273 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1274 next_offset += envelope_size;
1275 }
1276
1277 Ok(())
1278 }
1279 }
1280
1281 impl WlanPhySetPowerSaveModeRequest {
1282 #[inline(always)]
1283 fn max_ordinal_present(&self) -> u64 {
1284 if let Some(_) = self.ps_mode {
1285 return 1;
1286 }
1287 0
1288 }
1289 }
1290
1291 impl fidl::encoding::ValueTypeMarker for WlanPhySetPowerSaveModeRequest {
1292 type Borrowed<'a> = &'a Self;
1293 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1294 value
1295 }
1296 }
1297
1298 unsafe impl fidl::encoding::TypeMarker for WlanPhySetPowerSaveModeRequest {
1299 type Owned = Self;
1300
1301 #[inline(always)]
1302 fn inline_align(_context: fidl::encoding::Context) -> usize {
1303 8
1304 }
1305
1306 #[inline(always)]
1307 fn inline_size(_context: fidl::encoding::Context) -> usize {
1308 16
1309 }
1310 }
1311
1312 unsafe impl<D: fidl::encoding::ResourceDialect>
1313 fidl::encoding::Encode<WlanPhySetPowerSaveModeRequest, D>
1314 for &WlanPhySetPowerSaveModeRequest
1315 {
1316 unsafe fn encode(
1317 self,
1318 encoder: &mut fidl::encoding::Encoder<'_, D>,
1319 offset: usize,
1320 mut depth: fidl::encoding::Depth,
1321 ) -> fidl::Result<()> {
1322 encoder.debug_check_bounds::<WlanPhySetPowerSaveModeRequest>(offset);
1323 let max_ordinal: u64 = self.max_ordinal_present();
1325 encoder.write_num(max_ordinal, offset);
1326 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1327 if max_ordinal == 0 {
1329 return Ok(());
1330 }
1331 depth.increment()?;
1332 let envelope_size = 8;
1333 let bytes_len = max_ordinal as usize * envelope_size;
1334 #[allow(unused_variables)]
1335 let offset = encoder.out_of_line_offset(bytes_len);
1336 let mut _prev_end_offset: usize = 0;
1337 if 1 > max_ordinal {
1338 return Ok(());
1339 }
1340
1341 let cur_offset: usize = (1 - 1) * envelope_size;
1344
1345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1347
1348 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::PowerSaveType, D>(
1353 self.ps_mode.as_ref().map(<fidl_fuchsia_wlan_common_common::PowerSaveType as fidl::encoding::ValueTypeMarker>::borrow),
1354 encoder, offset + cur_offset, depth
1355 )?;
1356
1357 _prev_end_offset = cur_offset + envelope_size;
1358
1359 Ok(())
1360 }
1361 }
1362
1363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1364 for WlanPhySetPowerSaveModeRequest
1365 {
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 = <fidl_fuchsia_wlan_common_common::PowerSaveType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1412 if inlined != (member_inline_size <= 4) {
1413 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1414 }
1415 let inner_offset;
1416 let mut inner_depth = depth.clone();
1417 if inlined {
1418 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1419 inner_offset = next_offset;
1420 } else {
1421 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1422 inner_depth.increment()?;
1423 }
1424 let val_ref = self.ps_mode.get_or_insert_with(|| {
1425 fidl::new_empty!(fidl_fuchsia_wlan_common_common::PowerSaveType, D)
1426 });
1427 fidl::decode!(
1428 fidl_fuchsia_wlan_common_common::PowerSaveType,
1429 D,
1430 val_ref,
1431 decoder,
1432 inner_offset,
1433 inner_depth
1434 )?;
1435 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1436 {
1437 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1438 }
1439 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1440 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1441 }
1442 }
1443
1444 next_offset += envelope_size;
1445
1446 while next_offset < end_offset {
1448 _next_ordinal_to_read += 1;
1449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1450 next_offset += envelope_size;
1451 }
1452
1453 Ok(())
1454 }
1455 }
1456
1457 impl WlanPhySetTxPowerScenarioRequest {
1458 #[inline(always)]
1459 fn max_ordinal_present(&self) -> u64 {
1460 if let Some(_) = self.scenario {
1461 return 1;
1462 }
1463 0
1464 }
1465 }
1466
1467 impl fidl::encoding::ValueTypeMarker for WlanPhySetTxPowerScenarioRequest {
1468 type Borrowed<'a> = &'a Self;
1469 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1470 value
1471 }
1472 }
1473
1474 unsafe impl fidl::encoding::TypeMarker for WlanPhySetTxPowerScenarioRequest {
1475 type Owned = Self;
1476
1477 #[inline(always)]
1478 fn inline_align(_context: fidl::encoding::Context) -> usize {
1479 8
1480 }
1481
1482 #[inline(always)]
1483 fn inline_size(_context: fidl::encoding::Context) -> usize {
1484 16
1485 }
1486 }
1487
1488 unsafe impl<D: fidl::encoding::ResourceDialect>
1489 fidl::encoding::Encode<WlanPhySetTxPowerScenarioRequest, D>
1490 for &WlanPhySetTxPowerScenarioRequest
1491 {
1492 unsafe fn encode(
1493 self,
1494 encoder: &mut fidl::encoding::Encoder<'_, D>,
1495 offset: usize,
1496 mut depth: fidl::encoding::Depth,
1497 ) -> fidl::Result<()> {
1498 encoder.debug_check_bounds::<WlanPhySetTxPowerScenarioRequest>(offset);
1499 let max_ordinal: u64 = self.max_ordinal_present();
1501 encoder.write_num(max_ordinal, offset);
1502 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1503 if max_ordinal == 0 {
1505 return Ok(());
1506 }
1507 depth.increment()?;
1508 let envelope_size = 8;
1509 let bytes_len = max_ordinal as usize * envelope_size;
1510 #[allow(unused_variables)]
1511 let offset = encoder.out_of_line_offset(bytes_len);
1512 let mut _prev_end_offset: usize = 0;
1513 if 1 > max_ordinal {
1514 return Ok(());
1515 }
1516
1517 let cur_offset: usize = (1 - 1) * envelope_size;
1520
1521 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1523
1524 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_internal_common::TxPowerScenario, D>(
1529 self.scenario.as_ref().map(<fidl_fuchsia_wlan_internal_common::TxPowerScenario as fidl::encoding::ValueTypeMarker>::borrow),
1530 encoder, offset + cur_offset, depth
1531 )?;
1532
1533 _prev_end_offset = cur_offset + envelope_size;
1534
1535 Ok(())
1536 }
1537 }
1538
1539 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1540 for WlanPhySetTxPowerScenarioRequest
1541 {
1542 #[inline(always)]
1543 fn new_empty() -> Self {
1544 Self::default()
1545 }
1546
1547 unsafe fn decode(
1548 &mut self,
1549 decoder: &mut fidl::encoding::Decoder<'_, D>,
1550 offset: usize,
1551 mut depth: fidl::encoding::Depth,
1552 ) -> fidl::Result<()> {
1553 decoder.debug_check_bounds::<Self>(offset);
1554 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1555 None => return Err(fidl::Error::NotNullable),
1556 Some(len) => len,
1557 };
1558 if len == 0 {
1560 return Ok(());
1561 };
1562 depth.increment()?;
1563 let envelope_size = 8;
1564 let bytes_len = len * envelope_size;
1565 let offset = decoder.out_of_line_offset(bytes_len)?;
1566 let mut _next_ordinal_to_read = 0;
1568 let mut next_offset = offset;
1569 let end_offset = offset + bytes_len;
1570 _next_ordinal_to_read += 1;
1571 if next_offset >= end_offset {
1572 return Ok(());
1573 }
1574
1575 while _next_ordinal_to_read < 1 {
1577 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1578 _next_ordinal_to_read += 1;
1579 next_offset += envelope_size;
1580 }
1581
1582 let next_out_of_line = decoder.next_out_of_line();
1583 let handles_before = decoder.remaining_handles();
1584 if let Some((inlined, num_bytes, num_handles)) =
1585 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1586 {
1587 let member_inline_size = <fidl_fuchsia_wlan_internal_common::TxPowerScenario as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1588 if inlined != (member_inline_size <= 4) {
1589 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1590 }
1591 let inner_offset;
1592 let mut inner_depth = depth.clone();
1593 if inlined {
1594 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1595 inner_offset = next_offset;
1596 } else {
1597 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1598 inner_depth.increment()?;
1599 }
1600 let val_ref = self.scenario.get_or_insert_with(|| {
1601 fidl::new_empty!(fidl_fuchsia_wlan_internal_common::TxPowerScenario, D)
1602 });
1603 fidl::decode!(
1604 fidl_fuchsia_wlan_internal_common::TxPowerScenario,
1605 D,
1606 val_ref,
1607 decoder,
1608 inner_offset,
1609 inner_depth
1610 )?;
1611 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1612 {
1613 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1614 }
1615 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1616 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1617 }
1618 }
1619
1620 next_offset += envelope_size;
1621
1622 while next_offset < end_offset {
1624 _next_ordinal_to_read += 1;
1625 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1626 next_offset += envelope_size;
1627 }
1628
1629 Ok(())
1630 }
1631 }
1632
1633 impl WlanPhyCreateIfaceResponse {
1634 #[inline(always)]
1635 fn max_ordinal_present(&self) -> u64 {
1636 if let Some(_) = self.iface_id {
1637 return 1;
1638 }
1639 0
1640 }
1641 }
1642
1643 impl fidl::encoding::ValueTypeMarker for WlanPhyCreateIfaceResponse {
1644 type Borrowed<'a> = &'a Self;
1645 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1646 value
1647 }
1648 }
1649
1650 unsafe impl fidl::encoding::TypeMarker for WlanPhyCreateIfaceResponse {
1651 type Owned = Self;
1652
1653 #[inline(always)]
1654 fn inline_align(_context: fidl::encoding::Context) -> usize {
1655 8
1656 }
1657
1658 #[inline(always)]
1659 fn inline_size(_context: fidl::encoding::Context) -> usize {
1660 16
1661 }
1662 }
1663
1664 unsafe impl<D: fidl::encoding::ResourceDialect>
1665 fidl::encoding::Encode<WlanPhyCreateIfaceResponse, D> for &WlanPhyCreateIfaceResponse
1666 {
1667 unsafe fn encode(
1668 self,
1669 encoder: &mut fidl::encoding::Encoder<'_, D>,
1670 offset: usize,
1671 mut depth: fidl::encoding::Depth,
1672 ) -> fidl::Result<()> {
1673 encoder.debug_check_bounds::<WlanPhyCreateIfaceResponse>(offset);
1674 let max_ordinal: u64 = self.max_ordinal_present();
1676 encoder.write_num(max_ordinal, offset);
1677 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1678 if max_ordinal == 0 {
1680 return Ok(());
1681 }
1682 depth.increment()?;
1683 let envelope_size = 8;
1684 let bytes_len = max_ordinal as usize * envelope_size;
1685 #[allow(unused_variables)]
1686 let offset = encoder.out_of_line_offset(bytes_len);
1687 let mut _prev_end_offset: usize = 0;
1688 if 1 > max_ordinal {
1689 return Ok(());
1690 }
1691
1692 let cur_offset: usize = (1 - 1) * envelope_size;
1695
1696 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1698
1699 fidl::encoding::encode_in_envelope_optional::<u16, D>(
1704 self.iface_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
1705 encoder,
1706 offset + cur_offset,
1707 depth,
1708 )?;
1709
1710 _prev_end_offset = cur_offset + envelope_size;
1711
1712 Ok(())
1713 }
1714 }
1715
1716 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1717 for WlanPhyCreateIfaceResponse
1718 {
1719 #[inline(always)]
1720 fn new_empty() -> Self {
1721 Self::default()
1722 }
1723
1724 unsafe fn decode(
1725 &mut self,
1726 decoder: &mut fidl::encoding::Decoder<'_, D>,
1727 offset: usize,
1728 mut depth: fidl::encoding::Depth,
1729 ) -> fidl::Result<()> {
1730 decoder.debug_check_bounds::<Self>(offset);
1731 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1732 None => return Err(fidl::Error::NotNullable),
1733 Some(len) => len,
1734 };
1735 if len == 0 {
1737 return Ok(());
1738 };
1739 depth.increment()?;
1740 let envelope_size = 8;
1741 let bytes_len = len * envelope_size;
1742 let offset = decoder.out_of_line_offset(bytes_len)?;
1743 let mut _next_ordinal_to_read = 0;
1745 let mut next_offset = offset;
1746 let end_offset = offset + bytes_len;
1747 _next_ordinal_to_read += 1;
1748 if next_offset >= end_offset {
1749 return Ok(());
1750 }
1751
1752 while _next_ordinal_to_read < 1 {
1754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1755 _next_ordinal_to_read += 1;
1756 next_offset += envelope_size;
1757 }
1758
1759 let next_out_of_line = decoder.next_out_of_line();
1760 let handles_before = decoder.remaining_handles();
1761 if let Some((inlined, num_bytes, num_handles)) =
1762 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1763 {
1764 let member_inline_size =
1765 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1766 if inlined != (member_inline_size <= 4) {
1767 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1768 }
1769 let inner_offset;
1770 let mut inner_depth = depth.clone();
1771 if inlined {
1772 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1773 inner_offset = next_offset;
1774 } else {
1775 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1776 inner_depth.increment()?;
1777 }
1778 let val_ref = self.iface_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
1779 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
1780 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1781 {
1782 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1783 }
1784 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1785 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1786 }
1787 }
1788
1789 next_offset += envelope_size;
1790
1791 while next_offset < end_offset {
1793 _next_ordinal_to_read += 1;
1794 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1795 next_offset += envelope_size;
1796 }
1797
1798 Ok(())
1799 }
1800 }
1801
1802 impl WlanPhyGetPowerSaveModeResponse {
1803 #[inline(always)]
1804 fn max_ordinal_present(&self) -> u64 {
1805 if let Some(_) = self.ps_mode {
1806 return 1;
1807 }
1808 0
1809 }
1810 }
1811
1812 impl fidl::encoding::ValueTypeMarker for WlanPhyGetPowerSaveModeResponse {
1813 type Borrowed<'a> = &'a Self;
1814 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1815 value
1816 }
1817 }
1818
1819 unsafe impl fidl::encoding::TypeMarker for WlanPhyGetPowerSaveModeResponse {
1820 type Owned = Self;
1821
1822 #[inline(always)]
1823 fn inline_align(_context: fidl::encoding::Context) -> usize {
1824 8
1825 }
1826
1827 #[inline(always)]
1828 fn inline_size(_context: fidl::encoding::Context) -> usize {
1829 16
1830 }
1831 }
1832
1833 unsafe impl<D: fidl::encoding::ResourceDialect>
1834 fidl::encoding::Encode<WlanPhyGetPowerSaveModeResponse, D>
1835 for &WlanPhyGetPowerSaveModeResponse
1836 {
1837 unsafe fn encode(
1838 self,
1839 encoder: &mut fidl::encoding::Encoder<'_, D>,
1840 offset: usize,
1841 mut depth: fidl::encoding::Depth,
1842 ) -> fidl::Result<()> {
1843 encoder.debug_check_bounds::<WlanPhyGetPowerSaveModeResponse>(offset);
1844 let max_ordinal: u64 = self.max_ordinal_present();
1846 encoder.write_num(max_ordinal, offset);
1847 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1848 if max_ordinal == 0 {
1850 return Ok(());
1851 }
1852 depth.increment()?;
1853 let envelope_size = 8;
1854 let bytes_len = max_ordinal as usize * envelope_size;
1855 #[allow(unused_variables)]
1856 let offset = encoder.out_of_line_offset(bytes_len);
1857 let mut _prev_end_offset: usize = 0;
1858 if 1 > max_ordinal {
1859 return Ok(());
1860 }
1861
1862 let cur_offset: usize = (1 - 1) * envelope_size;
1865
1866 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1868
1869 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_wlan_common_common::PowerSaveType, D>(
1874 self.ps_mode.as_ref().map(<fidl_fuchsia_wlan_common_common::PowerSaveType as fidl::encoding::ValueTypeMarker>::borrow),
1875 encoder, offset + cur_offset, depth
1876 )?;
1877
1878 _prev_end_offset = cur_offset + envelope_size;
1879
1880 Ok(())
1881 }
1882 }
1883
1884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1885 for WlanPhyGetPowerSaveModeResponse
1886 {
1887 #[inline(always)]
1888 fn new_empty() -> Self {
1889 Self::default()
1890 }
1891
1892 unsafe fn decode(
1893 &mut self,
1894 decoder: &mut fidl::encoding::Decoder<'_, D>,
1895 offset: usize,
1896 mut depth: fidl::encoding::Depth,
1897 ) -> fidl::Result<()> {
1898 decoder.debug_check_bounds::<Self>(offset);
1899 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1900 None => return Err(fidl::Error::NotNullable),
1901 Some(len) => len,
1902 };
1903 if len == 0 {
1905 return Ok(());
1906 };
1907 depth.increment()?;
1908 let envelope_size = 8;
1909 let bytes_len = len * envelope_size;
1910 let offset = decoder.out_of_line_offset(bytes_len)?;
1911 let mut _next_ordinal_to_read = 0;
1913 let mut next_offset = offset;
1914 let end_offset = offset + bytes_len;
1915 _next_ordinal_to_read += 1;
1916 if next_offset >= end_offset {
1917 return Ok(());
1918 }
1919
1920 while _next_ordinal_to_read < 1 {
1922 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1923 _next_ordinal_to_read += 1;
1924 next_offset += envelope_size;
1925 }
1926
1927 let next_out_of_line = decoder.next_out_of_line();
1928 let handles_before = decoder.remaining_handles();
1929 if let Some((inlined, num_bytes, num_handles)) =
1930 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1931 {
1932 let member_inline_size = <fidl_fuchsia_wlan_common_common::PowerSaveType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1933 if inlined != (member_inline_size <= 4) {
1934 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1935 }
1936 let inner_offset;
1937 let mut inner_depth = depth.clone();
1938 if inlined {
1939 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1940 inner_offset = next_offset;
1941 } else {
1942 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1943 inner_depth.increment()?;
1944 }
1945 let val_ref = self.ps_mode.get_or_insert_with(|| {
1946 fidl::new_empty!(fidl_fuchsia_wlan_common_common::PowerSaveType, D)
1947 });
1948 fidl::decode!(
1949 fidl_fuchsia_wlan_common_common::PowerSaveType,
1950 D,
1951 val_ref,
1952 decoder,
1953 inner_offset,
1954 inner_depth
1955 )?;
1956 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1957 {
1958 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1959 }
1960 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1961 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1962 }
1963 }
1964
1965 next_offset += envelope_size;
1966
1967 while next_offset < end_offset {
1969 _next_ordinal_to_read += 1;
1970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1971 next_offset += envelope_size;
1972 }
1973
1974 Ok(())
1975 }
1976 }
1977
1978 impl WlanPhyGetPowerStateResponse {
1979 #[inline(always)]
1980 fn max_ordinal_present(&self) -> u64 {
1981 if let Some(_) = self.power_on {
1982 return 1;
1983 }
1984 0
1985 }
1986 }
1987
1988 impl fidl::encoding::ValueTypeMarker for WlanPhyGetPowerStateResponse {
1989 type Borrowed<'a> = &'a Self;
1990 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1991 value
1992 }
1993 }
1994
1995 unsafe impl fidl::encoding::TypeMarker for WlanPhyGetPowerStateResponse {
1996 type Owned = Self;
1997
1998 #[inline(always)]
1999 fn inline_align(_context: fidl::encoding::Context) -> usize {
2000 8
2001 }
2002
2003 #[inline(always)]
2004 fn inline_size(_context: fidl::encoding::Context) -> usize {
2005 16
2006 }
2007 }
2008
2009 unsafe impl<D: fidl::encoding::ResourceDialect>
2010 fidl::encoding::Encode<WlanPhyGetPowerStateResponse, D> for &WlanPhyGetPowerStateResponse
2011 {
2012 unsafe fn encode(
2013 self,
2014 encoder: &mut fidl::encoding::Encoder<'_, D>,
2015 offset: usize,
2016 mut depth: fidl::encoding::Depth,
2017 ) -> fidl::Result<()> {
2018 encoder.debug_check_bounds::<WlanPhyGetPowerStateResponse>(offset);
2019 let max_ordinal: u64 = self.max_ordinal_present();
2021 encoder.write_num(max_ordinal, offset);
2022 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2023 if max_ordinal == 0 {
2025 return Ok(());
2026 }
2027 depth.increment()?;
2028 let envelope_size = 8;
2029 let bytes_len = max_ordinal as usize * envelope_size;
2030 #[allow(unused_variables)]
2031 let offset = encoder.out_of_line_offset(bytes_len);
2032 let mut _prev_end_offset: usize = 0;
2033 if 1 > max_ordinal {
2034 return Ok(());
2035 }
2036
2037 let cur_offset: usize = (1 - 1) * envelope_size;
2040
2041 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2043
2044 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2049 self.power_on.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2050 encoder,
2051 offset + cur_offset,
2052 depth,
2053 )?;
2054
2055 _prev_end_offset = cur_offset + envelope_size;
2056
2057 Ok(())
2058 }
2059 }
2060
2061 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2062 for WlanPhyGetPowerStateResponse
2063 {
2064 #[inline(always)]
2065 fn new_empty() -> Self {
2066 Self::default()
2067 }
2068
2069 unsafe fn decode(
2070 &mut self,
2071 decoder: &mut fidl::encoding::Decoder<'_, D>,
2072 offset: usize,
2073 mut depth: fidl::encoding::Depth,
2074 ) -> fidl::Result<()> {
2075 decoder.debug_check_bounds::<Self>(offset);
2076 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2077 None => return Err(fidl::Error::NotNullable),
2078 Some(len) => len,
2079 };
2080 if len == 0 {
2082 return Ok(());
2083 };
2084 depth.increment()?;
2085 let envelope_size = 8;
2086 let bytes_len = len * envelope_size;
2087 let offset = decoder.out_of_line_offset(bytes_len)?;
2088 let mut _next_ordinal_to_read = 0;
2090 let mut next_offset = offset;
2091 let end_offset = offset + bytes_len;
2092 _next_ordinal_to_read += 1;
2093 if next_offset >= end_offset {
2094 return Ok(());
2095 }
2096
2097 while _next_ordinal_to_read < 1 {
2099 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2100 _next_ordinal_to_read += 1;
2101 next_offset += envelope_size;
2102 }
2103
2104 let next_out_of_line = decoder.next_out_of_line();
2105 let handles_before = decoder.remaining_handles();
2106 if let Some((inlined, num_bytes, num_handles)) =
2107 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2108 {
2109 let member_inline_size =
2110 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2111 if inlined != (member_inline_size <= 4) {
2112 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2113 }
2114 let inner_offset;
2115 let mut inner_depth = depth.clone();
2116 if inlined {
2117 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2118 inner_offset = next_offset;
2119 } else {
2120 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2121 inner_depth.increment()?;
2122 }
2123 let val_ref = self.power_on.get_or_insert_with(|| fidl::new_empty!(bool, D));
2124 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2125 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2126 {
2127 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2128 }
2129 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2130 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2131 }
2132 }
2133
2134 next_offset += envelope_size;
2135
2136 while next_offset < end_offset {
2138 _next_ordinal_to_read += 1;
2139 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2140 next_offset += envelope_size;
2141 }
2142
2143 Ok(())
2144 }
2145 }
2146
2147 impl WlanPhyGetSupportedMacRolesResponse {
2148 #[inline(always)]
2149 fn max_ordinal_present(&self) -> u64 {
2150 if let Some(_) = self.supported_mac_roles {
2151 return 1;
2152 }
2153 0
2154 }
2155 }
2156
2157 impl fidl::encoding::ValueTypeMarker for WlanPhyGetSupportedMacRolesResponse {
2158 type Borrowed<'a> = &'a Self;
2159 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2160 value
2161 }
2162 }
2163
2164 unsafe impl fidl::encoding::TypeMarker for WlanPhyGetSupportedMacRolesResponse {
2165 type Owned = Self;
2166
2167 #[inline(always)]
2168 fn inline_align(_context: fidl::encoding::Context) -> usize {
2169 8
2170 }
2171
2172 #[inline(always)]
2173 fn inline_size(_context: fidl::encoding::Context) -> usize {
2174 16
2175 }
2176 }
2177
2178 unsafe impl<D: fidl::encoding::ResourceDialect>
2179 fidl::encoding::Encode<WlanPhyGetSupportedMacRolesResponse, D>
2180 for &WlanPhyGetSupportedMacRolesResponse
2181 {
2182 unsafe fn encode(
2183 self,
2184 encoder: &mut fidl::encoding::Encoder<'_, D>,
2185 offset: usize,
2186 mut depth: fidl::encoding::Depth,
2187 ) -> fidl::Result<()> {
2188 encoder.debug_check_bounds::<WlanPhyGetSupportedMacRolesResponse>(offset);
2189 let max_ordinal: u64 = self.max_ordinal_present();
2191 encoder.write_num(max_ordinal, offset);
2192 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2193 if max_ordinal == 0 {
2195 return Ok(());
2196 }
2197 depth.increment()?;
2198 let envelope_size = 8;
2199 let bytes_len = max_ordinal as usize * envelope_size;
2200 #[allow(unused_variables)]
2201 let offset = encoder.out_of_line_offset(bytes_len);
2202 let mut _prev_end_offset: usize = 0;
2203 if 1 > max_ordinal {
2204 return Ok(());
2205 }
2206
2207 let cur_offset: usize = (1 - 1) * envelope_size;
2210
2211 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2213
2214 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_wlan_common_common::WlanMacRole, 16>, D>(
2219 self.supported_mac_roles.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_wlan_common_common::WlanMacRole, 16> as fidl::encoding::ValueTypeMarker>::borrow),
2220 encoder, offset + cur_offset, depth
2221 )?;
2222
2223 _prev_end_offset = cur_offset + envelope_size;
2224
2225 Ok(())
2226 }
2227 }
2228
2229 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2230 for WlanPhyGetSupportedMacRolesResponse
2231 {
2232 #[inline(always)]
2233 fn new_empty() -> Self {
2234 Self::default()
2235 }
2236
2237 unsafe fn decode(
2238 &mut self,
2239 decoder: &mut fidl::encoding::Decoder<'_, D>,
2240 offset: usize,
2241 mut depth: fidl::encoding::Depth,
2242 ) -> fidl::Result<()> {
2243 decoder.debug_check_bounds::<Self>(offset);
2244 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2245 None => return Err(fidl::Error::NotNullable),
2246 Some(len) => len,
2247 };
2248 if len == 0 {
2250 return Ok(());
2251 };
2252 depth.increment()?;
2253 let envelope_size = 8;
2254 let bytes_len = len * envelope_size;
2255 let offset = decoder.out_of_line_offset(bytes_len)?;
2256 let mut _next_ordinal_to_read = 0;
2258 let mut next_offset = offset;
2259 let end_offset = offset + bytes_len;
2260 _next_ordinal_to_read += 1;
2261 if next_offset >= end_offset {
2262 return Ok(());
2263 }
2264
2265 while _next_ordinal_to_read < 1 {
2267 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2268 _next_ordinal_to_read += 1;
2269 next_offset += envelope_size;
2270 }
2271
2272 let next_out_of_line = decoder.next_out_of_line();
2273 let handles_before = decoder.remaining_handles();
2274 if let Some((inlined, num_bytes, num_handles)) =
2275 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2276 {
2277 let member_inline_size = <fidl::encoding::Vector<
2278 fidl_fuchsia_wlan_common_common::WlanMacRole,
2279 16,
2280 > as fidl::encoding::TypeMarker>::inline_size(
2281 decoder.context
2282 );
2283 if inlined != (member_inline_size <= 4) {
2284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2285 }
2286 let inner_offset;
2287 let mut inner_depth = depth.clone();
2288 if inlined {
2289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2290 inner_offset = next_offset;
2291 } else {
2292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2293 inner_depth.increment()?;
2294 }
2295 let val_ref =
2296 self.supported_mac_roles.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_wlan_common_common::WlanMacRole, 16>, D));
2297 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_wlan_common_common::WlanMacRole, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
2298 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2299 {
2300 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2301 }
2302 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2303 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2304 }
2305 }
2306
2307 next_offset += envelope_size;
2308
2309 while next_offset < end_offset {
2311 _next_ordinal_to_read += 1;
2312 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2313 next_offset += envelope_size;
2314 }
2315
2316 Ok(())
2317 }
2318 }
2319}