1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const MAX_FILTERED: u16 = 100;
13
14pub const MAX_NEIGHBORS: u32 = 1024;
15
16#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
18#[repr(i32)]
19pub enum MacAddressFilterMode {
20 Disabled = 0,
23 Allow = 1,
32 Deny = 2,
35}
36
37impl MacAddressFilterMode {
38 #[inline]
39 pub fn from_primitive(prim: i32) -> Option<Self> {
40 match prim {
41 0 => Some(Self::Disabled),
42 1 => Some(Self::Allow),
43 2 => Some(Self::Deny),
44 _ => None,
45 }
46 }
47
48 #[inline]
49 pub const fn into_primitive(self) -> i32 {
50 self as i32
51 }
52}
53
54#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
55#[repr(C)]
56pub struct DeviceTestGetCurrentChannelResponse {
57 pub channel_index: u16,
58}
59
60impl fidl::Persistable for DeviceTestGetCurrentChannelResponse {}
61
62#[derive(Clone, Debug, PartialEq)]
63pub struct DeviceTestGetCurrentMacAddressResponse {
64 pub address: fidl_fuchsia_lowpan::MacAddress,
65}
66
67impl fidl::Persistable for DeviceTestGetCurrentMacAddressResponse {}
68
69#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
70#[repr(C)]
71pub struct DeviceTestGetCurrentRssiResponse {
72 pub rssi: i8,
73}
74
75impl fidl::Persistable for DeviceTestGetCurrentRssiResponse {}
76
77#[derive(Clone, Debug, PartialEq)]
78pub struct DeviceTestGetFactoryMacAddressResponse {
79 pub address: fidl_fuchsia_lowpan::MacAddress,
80}
81
82impl fidl::Persistable for DeviceTestGetFactoryMacAddressResponse {}
83
84#[derive(Clone, Debug, PartialEq)]
85pub struct DeviceTestGetMacAddressFilterSettingsResponse {
86 pub settings: MacAddressFilterSettings,
87}
88
89impl fidl::Persistable for DeviceTestGetMacAddressFilterSettingsResponse {}
90
91#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
92pub struct DeviceTestGetNcpVersionResponse {
93 pub version: String,
94}
95
96impl fidl::Persistable for DeviceTestGetNcpVersionResponse {}
97
98#[derive(Clone, Debug, PartialEq)]
99pub struct DeviceTestGetNeighborTableResponse {
100 pub neighbor_table: Vec<NeighborInfo>,
101}
102
103impl fidl::Persistable for DeviceTestGetNeighborTableResponse {}
104
105#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
106#[repr(C)]
107pub struct DeviceTestGetPartitionIdResponse {
108 pub pid: u32,
109}
110
111impl fidl::Persistable for DeviceTestGetPartitionIdResponse {}
112
113#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
114#[repr(C)]
115pub struct DeviceTestGetThreadRloc16Response {
116 pub rloc: u16,
117}
118
119impl fidl::Persistable for DeviceTestGetThreadRloc16Response {}
120
121#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
122#[repr(C)]
123pub struct DeviceTestGetThreadRouterIdResponse {
124 pub router_id: u8,
125}
126
127impl fidl::Persistable for DeviceTestGetThreadRouterIdResponse {}
128
129#[derive(Clone, Debug, PartialEq)]
130pub struct DeviceTestReplaceMacAddressFilterSettingsRequest {
131 pub settings: MacAddressFilterSettings,
132}
133
134impl fidl::Persistable for DeviceTestReplaceMacAddressFilterSettingsRequest {}
135
136#[derive(Clone, Debug, Default, PartialEq)]
138pub struct MacAddressFilterItem {
139 pub mac_address: Option<fidl_fuchsia_lowpan::MacAddress>,
141 pub rssi: Option<i8>,
148 #[doc(hidden)]
149 pub __source_breaking: fidl::marker::SourceBreaking,
150}
151
152impl fidl::Persistable for MacAddressFilterItem {}
153
154#[derive(Clone, Debug, Default, PartialEq)]
155pub struct MacAddressFilterSettings {
156 pub mode: Option<MacAddressFilterMode>,
162 pub items: Option<Vec<MacAddressFilterItem>>,
166 #[doc(hidden)]
167 pub __source_breaking: fidl::marker::SourceBreaking,
168}
169
170impl fidl::Persistable for MacAddressFilterSettings {}
171
172#[derive(Clone, Debug, Default, PartialEq)]
181pub struct NeighborInfo {
182 pub mac_address: Option<fidl_fuchsia_lowpan::MacAddress>,
186 pub short_address: Option<u16>,
190 pub age: Option<i64>,
195 pub is_child: Option<bool>,
200 pub link_frame_count: Option<u32>,
202 pub mgmt_frame_count: Option<u32>,
204 pub last_rssi_in: Option<i32>,
206 pub avg_rssi_in: Option<i8>,
208 pub lqi_in: Option<u8>,
222 pub thread_mode: Option<u8>,
226 pub frame_error_rate: Option<u16>,
230 pub ipv6_error_rate: Option<u16>,
234 pub child_is_csl_synced: Option<bool>,
239 pub child_is_state_restoring: Option<bool>,
241 pub net_data_version: Option<u8>,
243 pub queued_messages: Option<u16>,
245 pub thread_mle_version: Option<u8>,
247 #[doc(hidden)]
248 pub __source_breaking: fidl::marker::SourceBreaking,
249}
250
251impl fidl::Persistable for NeighborInfo {}
252
253mod internal {
254 use super::*;
255 unsafe impl fidl::encoding::TypeMarker for MacAddressFilterMode {
256 type Owned = Self;
257
258 #[inline(always)]
259 fn inline_align(_context: fidl::encoding::Context) -> usize {
260 std::mem::align_of::<i32>()
261 }
262
263 #[inline(always)]
264 fn inline_size(_context: fidl::encoding::Context) -> usize {
265 std::mem::size_of::<i32>()
266 }
267
268 #[inline(always)]
269 fn encode_is_copy() -> bool {
270 true
271 }
272
273 #[inline(always)]
274 fn decode_is_copy() -> bool {
275 false
276 }
277 }
278
279 impl fidl::encoding::ValueTypeMarker for MacAddressFilterMode {
280 type Borrowed<'a> = Self;
281 #[inline(always)]
282 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
283 *value
284 }
285 }
286
287 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
288 for MacAddressFilterMode
289 {
290 #[inline]
291 unsafe fn encode(
292 self,
293 encoder: &mut fidl::encoding::Encoder<'_, D>,
294 offset: usize,
295 _depth: fidl::encoding::Depth,
296 ) -> fidl::Result<()> {
297 encoder.debug_check_bounds::<Self>(offset);
298 encoder.write_num(self.into_primitive(), offset);
299 Ok(())
300 }
301 }
302
303 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MacAddressFilterMode {
304 #[inline(always)]
305 fn new_empty() -> Self {
306 Self::Disabled
307 }
308
309 #[inline]
310 unsafe fn decode(
311 &mut self,
312 decoder: &mut fidl::encoding::Decoder<'_, D>,
313 offset: usize,
314 _depth: fidl::encoding::Depth,
315 ) -> fidl::Result<()> {
316 decoder.debug_check_bounds::<Self>(offset);
317 let prim = decoder.read_num::<i32>(offset);
318
319 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
320 Ok(())
321 }
322 }
323
324 impl fidl::encoding::ValueTypeMarker for DeviceTestGetCurrentChannelResponse {
325 type Borrowed<'a> = &'a Self;
326 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
327 value
328 }
329 }
330
331 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetCurrentChannelResponse {
332 type Owned = Self;
333
334 #[inline(always)]
335 fn inline_align(_context: fidl::encoding::Context) -> usize {
336 2
337 }
338
339 #[inline(always)]
340 fn inline_size(_context: fidl::encoding::Context) -> usize {
341 2
342 }
343 #[inline(always)]
344 fn encode_is_copy() -> bool {
345 true
346 }
347
348 #[inline(always)]
349 fn decode_is_copy() -> bool {
350 true
351 }
352 }
353
354 unsafe impl<D: fidl::encoding::ResourceDialect>
355 fidl::encoding::Encode<DeviceTestGetCurrentChannelResponse, D>
356 for &DeviceTestGetCurrentChannelResponse
357 {
358 #[inline]
359 unsafe fn encode(
360 self,
361 encoder: &mut fidl::encoding::Encoder<'_, D>,
362 offset: usize,
363 _depth: fidl::encoding::Depth,
364 ) -> fidl::Result<()> {
365 encoder.debug_check_bounds::<DeviceTestGetCurrentChannelResponse>(offset);
366 unsafe {
367 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
369 (buf_ptr as *mut DeviceTestGetCurrentChannelResponse)
370 .write_unaligned((self as *const DeviceTestGetCurrentChannelResponse).read());
371 }
374 Ok(())
375 }
376 }
377 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u16, D>>
378 fidl::encoding::Encode<DeviceTestGetCurrentChannelResponse, D> for (T0,)
379 {
380 #[inline]
381 unsafe fn encode(
382 self,
383 encoder: &mut fidl::encoding::Encoder<'_, D>,
384 offset: usize,
385 depth: fidl::encoding::Depth,
386 ) -> fidl::Result<()> {
387 encoder.debug_check_bounds::<DeviceTestGetCurrentChannelResponse>(offset);
388 self.0.encode(encoder, offset + 0, depth)?;
392 Ok(())
393 }
394 }
395
396 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
397 for DeviceTestGetCurrentChannelResponse
398 {
399 #[inline(always)]
400 fn new_empty() -> Self {
401 Self { channel_index: fidl::new_empty!(u16, D) }
402 }
403
404 #[inline]
405 unsafe fn decode(
406 &mut self,
407 decoder: &mut fidl::encoding::Decoder<'_, D>,
408 offset: usize,
409 _depth: fidl::encoding::Depth,
410 ) -> fidl::Result<()> {
411 decoder.debug_check_bounds::<Self>(offset);
412 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
413 unsafe {
416 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
417 }
418 Ok(())
419 }
420 }
421
422 impl fidl::encoding::ValueTypeMarker for DeviceTestGetCurrentMacAddressResponse {
423 type Borrowed<'a> = &'a Self;
424 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
425 value
426 }
427 }
428
429 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetCurrentMacAddressResponse {
430 type Owned = Self;
431
432 #[inline(always)]
433 fn inline_align(_context: fidl::encoding::Context) -> usize {
434 1
435 }
436
437 #[inline(always)]
438 fn inline_size(_context: fidl::encoding::Context) -> usize {
439 8
440 }
441 }
442
443 unsafe impl<D: fidl::encoding::ResourceDialect>
444 fidl::encoding::Encode<DeviceTestGetCurrentMacAddressResponse, D>
445 for &DeviceTestGetCurrentMacAddressResponse
446 {
447 #[inline]
448 unsafe fn encode(
449 self,
450 encoder: &mut fidl::encoding::Encoder<'_, D>,
451 offset: usize,
452 _depth: fidl::encoding::Depth,
453 ) -> fidl::Result<()> {
454 encoder.debug_check_bounds::<DeviceTestGetCurrentMacAddressResponse>(offset);
455 fidl::encoding::Encode::<DeviceTestGetCurrentMacAddressResponse, D>::encode(
457 (<fidl_fuchsia_lowpan::MacAddress as fidl::encoding::ValueTypeMarker>::borrow(
458 &self.address,
459 ),),
460 encoder,
461 offset,
462 _depth,
463 )
464 }
465 }
466 unsafe impl<
467 D: fidl::encoding::ResourceDialect,
468 T0: fidl::encoding::Encode<fidl_fuchsia_lowpan::MacAddress, D>,
469 > fidl::encoding::Encode<DeviceTestGetCurrentMacAddressResponse, D> for (T0,)
470 {
471 #[inline]
472 unsafe fn encode(
473 self,
474 encoder: &mut fidl::encoding::Encoder<'_, D>,
475 offset: usize,
476 depth: fidl::encoding::Depth,
477 ) -> fidl::Result<()> {
478 encoder.debug_check_bounds::<DeviceTestGetCurrentMacAddressResponse>(offset);
479 self.0.encode(encoder, offset + 0, depth)?;
483 Ok(())
484 }
485 }
486
487 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
488 for DeviceTestGetCurrentMacAddressResponse
489 {
490 #[inline(always)]
491 fn new_empty() -> Self {
492 Self { address: fidl::new_empty!(fidl_fuchsia_lowpan::MacAddress, D) }
493 }
494
495 #[inline]
496 unsafe fn decode(
497 &mut self,
498 decoder: &mut fidl::encoding::Decoder<'_, D>,
499 offset: usize,
500 _depth: fidl::encoding::Depth,
501 ) -> fidl::Result<()> {
502 decoder.debug_check_bounds::<Self>(offset);
503 fidl::decode!(
505 fidl_fuchsia_lowpan::MacAddress,
506 D,
507 &mut self.address,
508 decoder,
509 offset + 0,
510 _depth
511 )?;
512 Ok(())
513 }
514 }
515
516 impl fidl::encoding::ValueTypeMarker for DeviceTestGetCurrentRssiResponse {
517 type Borrowed<'a> = &'a Self;
518 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
519 value
520 }
521 }
522
523 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetCurrentRssiResponse {
524 type Owned = Self;
525
526 #[inline(always)]
527 fn inline_align(_context: fidl::encoding::Context) -> usize {
528 1
529 }
530
531 #[inline(always)]
532 fn inline_size(_context: fidl::encoding::Context) -> usize {
533 1
534 }
535 #[inline(always)]
536 fn encode_is_copy() -> bool {
537 true
538 }
539
540 #[inline(always)]
541 fn decode_is_copy() -> bool {
542 true
543 }
544 }
545
546 unsafe impl<D: fidl::encoding::ResourceDialect>
547 fidl::encoding::Encode<DeviceTestGetCurrentRssiResponse, D>
548 for &DeviceTestGetCurrentRssiResponse
549 {
550 #[inline]
551 unsafe fn encode(
552 self,
553 encoder: &mut fidl::encoding::Encoder<'_, D>,
554 offset: usize,
555 _depth: fidl::encoding::Depth,
556 ) -> fidl::Result<()> {
557 encoder.debug_check_bounds::<DeviceTestGetCurrentRssiResponse>(offset);
558 unsafe {
559 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
561 (buf_ptr as *mut DeviceTestGetCurrentRssiResponse)
562 .write_unaligned((self as *const DeviceTestGetCurrentRssiResponse).read());
563 }
566 Ok(())
567 }
568 }
569 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i8, D>>
570 fidl::encoding::Encode<DeviceTestGetCurrentRssiResponse, D> for (T0,)
571 {
572 #[inline]
573 unsafe fn encode(
574 self,
575 encoder: &mut fidl::encoding::Encoder<'_, D>,
576 offset: usize,
577 depth: fidl::encoding::Depth,
578 ) -> fidl::Result<()> {
579 encoder.debug_check_bounds::<DeviceTestGetCurrentRssiResponse>(offset);
580 self.0.encode(encoder, offset + 0, depth)?;
584 Ok(())
585 }
586 }
587
588 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
589 for DeviceTestGetCurrentRssiResponse
590 {
591 #[inline(always)]
592 fn new_empty() -> Self {
593 Self { rssi: fidl::new_empty!(i8, D) }
594 }
595
596 #[inline]
597 unsafe fn decode(
598 &mut self,
599 decoder: &mut fidl::encoding::Decoder<'_, D>,
600 offset: usize,
601 _depth: fidl::encoding::Depth,
602 ) -> fidl::Result<()> {
603 decoder.debug_check_bounds::<Self>(offset);
604 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
605 unsafe {
608 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
609 }
610 Ok(())
611 }
612 }
613
614 impl fidl::encoding::ValueTypeMarker for DeviceTestGetFactoryMacAddressResponse {
615 type Borrowed<'a> = &'a Self;
616 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
617 value
618 }
619 }
620
621 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetFactoryMacAddressResponse {
622 type Owned = Self;
623
624 #[inline(always)]
625 fn inline_align(_context: fidl::encoding::Context) -> usize {
626 1
627 }
628
629 #[inline(always)]
630 fn inline_size(_context: fidl::encoding::Context) -> usize {
631 8
632 }
633 }
634
635 unsafe impl<D: fidl::encoding::ResourceDialect>
636 fidl::encoding::Encode<DeviceTestGetFactoryMacAddressResponse, D>
637 for &DeviceTestGetFactoryMacAddressResponse
638 {
639 #[inline]
640 unsafe fn encode(
641 self,
642 encoder: &mut fidl::encoding::Encoder<'_, D>,
643 offset: usize,
644 _depth: fidl::encoding::Depth,
645 ) -> fidl::Result<()> {
646 encoder.debug_check_bounds::<DeviceTestGetFactoryMacAddressResponse>(offset);
647 fidl::encoding::Encode::<DeviceTestGetFactoryMacAddressResponse, D>::encode(
649 (<fidl_fuchsia_lowpan::MacAddress as fidl::encoding::ValueTypeMarker>::borrow(
650 &self.address,
651 ),),
652 encoder,
653 offset,
654 _depth,
655 )
656 }
657 }
658 unsafe impl<
659 D: fidl::encoding::ResourceDialect,
660 T0: fidl::encoding::Encode<fidl_fuchsia_lowpan::MacAddress, D>,
661 > fidl::encoding::Encode<DeviceTestGetFactoryMacAddressResponse, D> for (T0,)
662 {
663 #[inline]
664 unsafe fn encode(
665 self,
666 encoder: &mut fidl::encoding::Encoder<'_, D>,
667 offset: usize,
668 depth: fidl::encoding::Depth,
669 ) -> fidl::Result<()> {
670 encoder.debug_check_bounds::<DeviceTestGetFactoryMacAddressResponse>(offset);
671 self.0.encode(encoder, offset + 0, depth)?;
675 Ok(())
676 }
677 }
678
679 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
680 for DeviceTestGetFactoryMacAddressResponse
681 {
682 #[inline(always)]
683 fn new_empty() -> Self {
684 Self { address: fidl::new_empty!(fidl_fuchsia_lowpan::MacAddress, D) }
685 }
686
687 #[inline]
688 unsafe fn decode(
689 &mut self,
690 decoder: &mut fidl::encoding::Decoder<'_, D>,
691 offset: usize,
692 _depth: fidl::encoding::Depth,
693 ) -> fidl::Result<()> {
694 decoder.debug_check_bounds::<Self>(offset);
695 fidl::decode!(
697 fidl_fuchsia_lowpan::MacAddress,
698 D,
699 &mut self.address,
700 decoder,
701 offset + 0,
702 _depth
703 )?;
704 Ok(())
705 }
706 }
707
708 impl fidl::encoding::ValueTypeMarker for DeviceTestGetMacAddressFilterSettingsResponse {
709 type Borrowed<'a> = &'a Self;
710 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
711 value
712 }
713 }
714
715 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetMacAddressFilterSettingsResponse {
716 type Owned = Self;
717
718 #[inline(always)]
719 fn inline_align(_context: fidl::encoding::Context) -> usize {
720 8
721 }
722
723 #[inline(always)]
724 fn inline_size(_context: fidl::encoding::Context) -> usize {
725 16
726 }
727 }
728
729 unsafe impl<D: fidl::encoding::ResourceDialect>
730 fidl::encoding::Encode<DeviceTestGetMacAddressFilterSettingsResponse, D>
731 for &DeviceTestGetMacAddressFilterSettingsResponse
732 {
733 #[inline]
734 unsafe fn encode(
735 self,
736 encoder: &mut fidl::encoding::Encoder<'_, D>,
737 offset: usize,
738 _depth: fidl::encoding::Depth,
739 ) -> fidl::Result<()> {
740 encoder.debug_check_bounds::<DeviceTestGetMacAddressFilterSettingsResponse>(offset);
741 fidl::encoding::Encode::<DeviceTestGetMacAddressFilterSettingsResponse, D>::encode(
743 (<MacAddressFilterSettings as fidl::encoding::ValueTypeMarker>::borrow(
744 &self.settings,
745 ),),
746 encoder,
747 offset,
748 _depth,
749 )
750 }
751 }
752 unsafe impl<
753 D: fidl::encoding::ResourceDialect,
754 T0: fidl::encoding::Encode<MacAddressFilterSettings, D>,
755 > fidl::encoding::Encode<DeviceTestGetMacAddressFilterSettingsResponse, D> for (T0,)
756 {
757 #[inline]
758 unsafe fn encode(
759 self,
760 encoder: &mut fidl::encoding::Encoder<'_, D>,
761 offset: usize,
762 depth: fidl::encoding::Depth,
763 ) -> fidl::Result<()> {
764 encoder.debug_check_bounds::<DeviceTestGetMacAddressFilterSettingsResponse>(offset);
765 self.0.encode(encoder, offset + 0, depth)?;
769 Ok(())
770 }
771 }
772
773 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
774 for DeviceTestGetMacAddressFilterSettingsResponse
775 {
776 #[inline(always)]
777 fn new_empty() -> Self {
778 Self { settings: fidl::new_empty!(MacAddressFilterSettings, D) }
779 }
780
781 #[inline]
782 unsafe fn decode(
783 &mut self,
784 decoder: &mut fidl::encoding::Decoder<'_, D>,
785 offset: usize,
786 _depth: fidl::encoding::Depth,
787 ) -> fidl::Result<()> {
788 decoder.debug_check_bounds::<Self>(offset);
789 fidl::decode!(
791 MacAddressFilterSettings,
792 D,
793 &mut self.settings,
794 decoder,
795 offset + 0,
796 _depth
797 )?;
798 Ok(())
799 }
800 }
801
802 impl fidl::encoding::ValueTypeMarker for DeviceTestGetNcpVersionResponse {
803 type Borrowed<'a> = &'a Self;
804 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
805 value
806 }
807 }
808
809 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetNcpVersionResponse {
810 type Owned = Self;
811
812 #[inline(always)]
813 fn inline_align(_context: fidl::encoding::Context) -> usize {
814 8
815 }
816
817 #[inline(always)]
818 fn inline_size(_context: fidl::encoding::Context) -> usize {
819 16
820 }
821 }
822
823 unsafe impl<D: fidl::encoding::ResourceDialect>
824 fidl::encoding::Encode<DeviceTestGetNcpVersionResponse, D>
825 for &DeviceTestGetNcpVersionResponse
826 {
827 #[inline]
828 unsafe fn encode(
829 self,
830 encoder: &mut fidl::encoding::Encoder<'_, D>,
831 offset: usize,
832 _depth: fidl::encoding::Depth,
833 ) -> fidl::Result<()> {
834 encoder.debug_check_bounds::<DeviceTestGetNcpVersionResponse>(offset);
835 fidl::encoding::Encode::<DeviceTestGetNcpVersionResponse, D>::encode(
837 (<fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
838 &self.version,
839 ),),
840 encoder,
841 offset,
842 _depth,
843 )
844 }
845 }
846 unsafe impl<
847 D: fidl::encoding::ResourceDialect,
848 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
849 > fidl::encoding::Encode<DeviceTestGetNcpVersionResponse, D> for (T0,)
850 {
851 #[inline]
852 unsafe fn encode(
853 self,
854 encoder: &mut fidl::encoding::Encoder<'_, D>,
855 offset: usize,
856 depth: fidl::encoding::Depth,
857 ) -> fidl::Result<()> {
858 encoder.debug_check_bounds::<DeviceTestGetNcpVersionResponse>(offset);
859 self.0.encode(encoder, offset + 0, depth)?;
863 Ok(())
864 }
865 }
866
867 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
868 for DeviceTestGetNcpVersionResponse
869 {
870 #[inline(always)]
871 fn new_empty() -> Self {
872 Self { version: fidl::new_empty!(fidl::encoding::BoundedString<256>, D) }
873 }
874
875 #[inline]
876 unsafe fn decode(
877 &mut self,
878 decoder: &mut fidl::encoding::Decoder<'_, D>,
879 offset: usize,
880 _depth: fidl::encoding::Depth,
881 ) -> fidl::Result<()> {
882 decoder.debug_check_bounds::<Self>(offset);
883 fidl::decode!(
885 fidl::encoding::BoundedString<256>,
886 D,
887 &mut self.version,
888 decoder,
889 offset + 0,
890 _depth
891 )?;
892 Ok(())
893 }
894 }
895
896 impl fidl::encoding::ValueTypeMarker for DeviceTestGetNeighborTableResponse {
897 type Borrowed<'a> = &'a Self;
898 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
899 value
900 }
901 }
902
903 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetNeighborTableResponse {
904 type Owned = Self;
905
906 #[inline(always)]
907 fn inline_align(_context: fidl::encoding::Context) -> usize {
908 8
909 }
910
911 #[inline(always)]
912 fn inline_size(_context: fidl::encoding::Context) -> usize {
913 16
914 }
915 }
916
917 unsafe impl<D: fidl::encoding::ResourceDialect>
918 fidl::encoding::Encode<DeviceTestGetNeighborTableResponse, D>
919 for &DeviceTestGetNeighborTableResponse
920 {
921 #[inline]
922 unsafe fn encode(
923 self,
924 encoder: &mut fidl::encoding::Encoder<'_, D>,
925 offset: usize,
926 _depth: fidl::encoding::Depth,
927 ) -> fidl::Result<()> {
928 encoder.debug_check_bounds::<DeviceTestGetNeighborTableResponse>(offset);
929 fidl::encoding::Encode::<DeviceTestGetNeighborTableResponse, D>::encode(
931 (
932 <fidl::encoding::Vector<NeighborInfo, 1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.neighbor_table),
933 ),
934 encoder, offset, _depth
935 )
936 }
937 }
938 unsafe impl<
939 D: fidl::encoding::ResourceDialect,
940 T0: fidl::encoding::Encode<fidl::encoding::Vector<NeighborInfo, 1024>, D>,
941 > fidl::encoding::Encode<DeviceTestGetNeighborTableResponse, D> for (T0,)
942 {
943 #[inline]
944 unsafe fn encode(
945 self,
946 encoder: &mut fidl::encoding::Encoder<'_, D>,
947 offset: usize,
948 depth: fidl::encoding::Depth,
949 ) -> fidl::Result<()> {
950 encoder.debug_check_bounds::<DeviceTestGetNeighborTableResponse>(offset);
951 self.0.encode(encoder, offset + 0, depth)?;
955 Ok(())
956 }
957 }
958
959 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
960 for DeviceTestGetNeighborTableResponse
961 {
962 #[inline(always)]
963 fn new_empty() -> Self {
964 Self { neighbor_table: fidl::new_empty!(fidl::encoding::Vector<NeighborInfo, 1024>, D) }
965 }
966
967 #[inline]
968 unsafe fn decode(
969 &mut self,
970 decoder: &mut fidl::encoding::Decoder<'_, D>,
971 offset: usize,
972 _depth: fidl::encoding::Depth,
973 ) -> fidl::Result<()> {
974 decoder.debug_check_bounds::<Self>(offset);
975 fidl::decode!(fidl::encoding::Vector<NeighborInfo, 1024>, D, &mut self.neighbor_table, decoder, offset + 0, _depth)?;
977 Ok(())
978 }
979 }
980
981 impl fidl::encoding::ValueTypeMarker for DeviceTestGetPartitionIdResponse {
982 type Borrowed<'a> = &'a Self;
983 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
984 value
985 }
986 }
987
988 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetPartitionIdResponse {
989 type Owned = Self;
990
991 #[inline(always)]
992 fn inline_align(_context: fidl::encoding::Context) -> usize {
993 4
994 }
995
996 #[inline(always)]
997 fn inline_size(_context: fidl::encoding::Context) -> usize {
998 4
999 }
1000 #[inline(always)]
1001 fn encode_is_copy() -> bool {
1002 true
1003 }
1004
1005 #[inline(always)]
1006 fn decode_is_copy() -> bool {
1007 true
1008 }
1009 }
1010
1011 unsafe impl<D: fidl::encoding::ResourceDialect>
1012 fidl::encoding::Encode<DeviceTestGetPartitionIdResponse, D>
1013 for &DeviceTestGetPartitionIdResponse
1014 {
1015 #[inline]
1016 unsafe fn encode(
1017 self,
1018 encoder: &mut fidl::encoding::Encoder<'_, D>,
1019 offset: usize,
1020 _depth: fidl::encoding::Depth,
1021 ) -> fidl::Result<()> {
1022 encoder.debug_check_bounds::<DeviceTestGetPartitionIdResponse>(offset);
1023 unsafe {
1024 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1026 (buf_ptr as *mut DeviceTestGetPartitionIdResponse)
1027 .write_unaligned((self as *const DeviceTestGetPartitionIdResponse).read());
1028 }
1031 Ok(())
1032 }
1033 }
1034 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1035 fidl::encoding::Encode<DeviceTestGetPartitionIdResponse, D> for (T0,)
1036 {
1037 #[inline]
1038 unsafe fn encode(
1039 self,
1040 encoder: &mut fidl::encoding::Encoder<'_, D>,
1041 offset: usize,
1042 depth: fidl::encoding::Depth,
1043 ) -> fidl::Result<()> {
1044 encoder.debug_check_bounds::<DeviceTestGetPartitionIdResponse>(offset);
1045 self.0.encode(encoder, offset + 0, depth)?;
1049 Ok(())
1050 }
1051 }
1052
1053 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1054 for DeviceTestGetPartitionIdResponse
1055 {
1056 #[inline(always)]
1057 fn new_empty() -> Self {
1058 Self { pid: fidl::new_empty!(u32, D) }
1059 }
1060
1061 #[inline]
1062 unsafe fn decode(
1063 &mut self,
1064 decoder: &mut fidl::encoding::Decoder<'_, D>,
1065 offset: usize,
1066 _depth: fidl::encoding::Depth,
1067 ) -> fidl::Result<()> {
1068 decoder.debug_check_bounds::<Self>(offset);
1069 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1070 unsafe {
1073 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1074 }
1075 Ok(())
1076 }
1077 }
1078
1079 impl fidl::encoding::ValueTypeMarker for DeviceTestGetThreadRloc16Response {
1080 type Borrowed<'a> = &'a Self;
1081 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1082 value
1083 }
1084 }
1085
1086 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetThreadRloc16Response {
1087 type Owned = Self;
1088
1089 #[inline(always)]
1090 fn inline_align(_context: fidl::encoding::Context) -> usize {
1091 2
1092 }
1093
1094 #[inline(always)]
1095 fn inline_size(_context: fidl::encoding::Context) -> usize {
1096 2
1097 }
1098 #[inline(always)]
1099 fn encode_is_copy() -> bool {
1100 true
1101 }
1102
1103 #[inline(always)]
1104 fn decode_is_copy() -> bool {
1105 true
1106 }
1107 }
1108
1109 unsafe impl<D: fidl::encoding::ResourceDialect>
1110 fidl::encoding::Encode<DeviceTestGetThreadRloc16Response, D>
1111 for &DeviceTestGetThreadRloc16Response
1112 {
1113 #[inline]
1114 unsafe fn encode(
1115 self,
1116 encoder: &mut fidl::encoding::Encoder<'_, D>,
1117 offset: usize,
1118 _depth: fidl::encoding::Depth,
1119 ) -> fidl::Result<()> {
1120 encoder.debug_check_bounds::<DeviceTestGetThreadRloc16Response>(offset);
1121 unsafe {
1122 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1124 (buf_ptr as *mut DeviceTestGetThreadRloc16Response)
1125 .write_unaligned((self as *const DeviceTestGetThreadRloc16Response).read());
1126 }
1129 Ok(())
1130 }
1131 }
1132 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u16, D>>
1133 fidl::encoding::Encode<DeviceTestGetThreadRloc16Response, D> for (T0,)
1134 {
1135 #[inline]
1136 unsafe fn encode(
1137 self,
1138 encoder: &mut fidl::encoding::Encoder<'_, D>,
1139 offset: usize,
1140 depth: fidl::encoding::Depth,
1141 ) -> fidl::Result<()> {
1142 encoder.debug_check_bounds::<DeviceTestGetThreadRloc16Response>(offset);
1143 self.0.encode(encoder, offset + 0, depth)?;
1147 Ok(())
1148 }
1149 }
1150
1151 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1152 for DeviceTestGetThreadRloc16Response
1153 {
1154 #[inline(always)]
1155 fn new_empty() -> Self {
1156 Self { rloc: fidl::new_empty!(u16, D) }
1157 }
1158
1159 #[inline]
1160 unsafe fn decode(
1161 &mut self,
1162 decoder: &mut fidl::encoding::Decoder<'_, D>,
1163 offset: usize,
1164 _depth: fidl::encoding::Depth,
1165 ) -> fidl::Result<()> {
1166 decoder.debug_check_bounds::<Self>(offset);
1167 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1168 unsafe {
1171 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
1172 }
1173 Ok(())
1174 }
1175 }
1176
1177 impl fidl::encoding::ValueTypeMarker for DeviceTestGetThreadRouterIdResponse {
1178 type Borrowed<'a> = &'a Self;
1179 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1180 value
1181 }
1182 }
1183
1184 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetThreadRouterIdResponse {
1185 type Owned = Self;
1186
1187 #[inline(always)]
1188 fn inline_align(_context: fidl::encoding::Context) -> usize {
1189 1
1190 }
1191
1192 #[inline(always)]
1193 fn inline_size(_context: fidl::encoding::Context) -> usize {
1194 1
1195 }
1196 #[inline(always)]
1197 fn encode_is_copy() -> bool {
1198 true
1199 }
1200
1201 #[inline(always)]
1202 fn decode_is_copy() -> bool {
1203 true
1204 }
1205 }
1206
1207 unsafe impl<D: fidl::encoding::ResourceDialect>
1208 fidl::encoding::Encode<DeviceTestGetThreadRouterIdResponse, D>
1209 for &DeviceTestGetThreadRouterIdResponse
1210 {
1211 #[inline]
1212 unsafe fn encode(
1213 self,
1214 encoder: &mut fidl::encoding::Encoder<'_, D>,
1215 offset: usize,
1216 _depth: fidl::encoding::Depth,
1217 ) -> fidl::Result<()> {
1218 encoder.debug_check_bounds::<DeviceTestGetThreadRouterIdResponse>(offset);
1219 unsafe {
1220 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1222 (buf_ptr as *mut DeviceTestGetThreadRouterIdResponse)
1223 .write_unaligned((self as *const DeviceTestGetThreadRouterIdResponse).read());
1224 }
1227 Ok(())
1228 }
1229 }
1230 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
1231 fidl::encoding::Encode<DeviceTestGetThreadRouterIdResponse, D> for (T0,)
1232 {
1233 #[inline]
1234 unsafe fn encode(
1235 self,
1236 encoder: &mut fidl::encoding::Encoder<'_, D>,
1237 offset: usize,
1238 depth: fidl::encoding::Depth,
1239 ) -> fidl::Result<()> {
1240 encoder.debug_check_bounds::<DeviceTestGetThreadRouterIdResponse>(offset);
1241 self.0.encode(encoder, offset + 0, depth)?;
1245 Ok(())
1246 }
1247 }
1248
1249 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1250 for DeviceTestGetThreadRouterIdResponse
1251 {
1252 #[inline(always)]
1253 fn new_empty() -> Self {
1254 Self { router_id: fidl::new_empty!(u8, D) }
1255 }
1256
1257 #[inline]
1258 unsafe fn decode(
1259 &mut self,
1260 decoder: &mut fidl::encoding::Decoder<'_, D>,
1261 offset: usize,
1262 _depth: fidl::encoding::Depth,
1263 ) -> fidl::Result<()> {
1264 decoder.debug_check_bounds::<Self>(offset);
1265 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1266 unsafe {
1269 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1270 }
1271 Ok(())
1272 }
1273 }
1274
1275 impl fidl::encoding::ValueTypeMarker for DeviceTestReplaceMacAddressFilterSettingsRequest {
1276 type Borrowed<'a> = &'a Self;
1277 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1278 value
1279 }
1280 }
1281
1282 unsafe impl fidl::encoding::TypeMarker for DeviceTestReplaceMacAddressFilterSettingsRequest {
1283 type Owned = Self;
1284
1285 #[inline(always)]
1286 fn inline_align(_context: fidl::encoding::Context) -> usize {
1287 8
1288 }
1289
1290 #[inline(always)]
1291 fn inline_size(_context: fidl::encoding::Context) -> usize {
1292 16
1293 }
1294 }
1295
1296 unsafe impl<D: fidl::encoding::ResourceDialect>
1297 fidl::encoding::Encode<DeviceTestReplaceMacAddressFilterSettingsRequest, D>
1298 for &DeviceTestReplaceMacAddressFilterSettingsRequest
1299 {
1300 #[inline]
1301 unsafe fn encode(
1302 self,
1303 encoder: &mut fidl::encoding::Encoder<'_, D>,
1304 offset: usize,
1305 _depth: fidl::encoding::Depth,
1306 ) -> fidl::Result<()> {
1307 encoder.debug_check_bounds::<DeviceTestReplaceMacAddressFilterSettingsRequest>(offset);
1308 fidl::encoding::Encode::<DeviceTestReplaceMacAddressFilterSettingsRequest, D>::encode(
1310 (<MacAddressFilterSettings as fidl::encoding::ValueTypeMarker>::borrow(
1311 &self.settings,
1312 ),),
1313 encoder,
1314 offset,
1315 _depth,
1316 )
1317 }
1318 }
1319 unsafe impl<
1320 D: fidl::encoding::ResourceDialect,
1321 T0: fidl::encoding::Encode<MacAddressFilterSettings, D>,
1322 > fidl::encoding::Encode<DeviceTestReplaceMacAddressFilterSettingsRequest, D> for (T0,)
1323 {
1324 #[inline]
1325 unsafe fn encode(
1326 self,
1327 encoder: &mut fidl::encoding::Encoder<'_, D>,
1328 offset: usize,
1329 depth: fidl::encoding::Depth,
1330 ) -> fidl::Result<()> {
1331 encoder.debug_check_bounds::<DeviceTestReplaceMacAddressFilterSettingsRequest>(offset);
1332 self.0.encode(encoder, offset + 0, depth)?;
1336 Ok(())
1337 }
1338 }
1339
1340 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1341 for DeviceTestReplaceMacAddressFilterSettingsRequest
1342 {
1343 #[inline(always)]
1344 fn new_empty() -> Self {
1345 Self { settings: fidl::new_empty!(MacAddressFilterSettings, D) }
1346 }
1347
1348 #[inline]
1349 unsafe fn decode(
1350 &mut self,
1351 decoder: &mut fidl::encoding::Decoder<'_, D>,
1352 offset: usize,
1353 _depth: fidl::encoding::Depth,
1354 ) -> fidl::Result<()> {
1355 decoder.debug_check_bounds::<Self>(offset);
1356 fidl::decode!(
1358 MacAddressFilterSettings,
1359 D,
1360 &mut self.settings,
1361 decoder,
1362 offset + 0,
1363 _depth
1364 )?;
1365 Ok(())
1366 }
1367 }
1368
1369 impl MacAddressFilterItem {
1370 #[inline(always)]
1371 fn max_ordinal_present(&self) -> u64 {
1372 if let Some(_) = self.rssi {
1373 return 2;
1374 }
1375 if let Some(_) = self.mac_address {
1376 return 1;
1377 }
1378 0
1379 }
1380 }
1381
1382 impl fidl::encoding::ValueTypeMarker for MacAddressFilterItem {
1383 type Borrowed<'a> = &'a Self;
1384 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1385 value
1386 }
1387 }
1388
1389 unsafe impl fidl::encoding::TypeMarker for MacAddressFilterItem {
1390 type Owned = Self;
1391
1392 #[inline(always)]
1393 fn inline_align(_context: fidl::encoding::Context) -> usize {
1394 8
1395 }
1396
1397 #[inline(always)]
1398 fn inline_size(_context: fidl::encoding::Context) -> usize {
1399 16
1400 }
1401 }
1402
1403 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MacAddressFilterItem, D>
1404 for &MacAddressFilterItem
1405 {
1406 unsafe fn encode(
1407 self,
1408 encoder: &mut fidl::encoding::Encoder<'_, D>,
1409 offset: usize,
1410 mut depth: fidl::encoding::Depth,
1411 ) -> fidl::Result<()> {
1412 encoder.debug_check_bounds::<MacAddressFilterItem>(offset);
1413 let max_ordinal: u64 = self.max_ordinal_present();
1415 encoder.write_num(max_ordinal, offset);
1416 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1417 if max_ordinal == 0 {
1419 return Ok(());
1420 }
1421 depth.increment()?;
1422 let envelope_size = 8;
1423 let bytes_len = max_ordinal as usize * envelope_size;
1424 #[allow(unused_variables)]
1425 let offset = encoder.out_of_line_offset(bytes_len);
1426 let mut _prev_end_offset: usize = 0;
1427 if 1 > max_ordinal {
1428 return Ok(());
1429 }
1430
1431 let cur_offset: usize = (1 - 1) * envelope_size;
1434
1435 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1437
1438 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_lowpan::MacAddress, D>(
1443 self.mac_address.as_ref().map(
1444 <fidl_fuchsia_lowpan::MacAddress as fidl::encoding::ValueTypeMarker>::borrow,
1445 ),
1446 encoder,
1447 offset + cur_offset,
1448 depth,
1449 )?;
1450
1451 _prev_end_offset = cur_offset + envelope_size;
1452 if 2 > max_ordinal {
1453 return Ok(());
1454 }
1455
1456 let cur_offset: usize = (2 - 1) * envelope_size;
1459
1460 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1462
1463 fidl::encoding::encode_in_envelope_optional::<i8, D>(
1468 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
1469 encoder,
1470 offset + cur_offset,
1471 depth,
1472 )?;
1473
1474 _prev_end_offset = cur_offset + envelope_size;
1475
1476 Ok(())
1477 }
1478 }
1479
1480 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MacAddressFilterItem {
1481 #[inline(always)]
1482 fn new_empty() -> Self {
1483 Self::default()
1484 }
1485
1486 unsafe fn decode(
1487 &mut self,
1488 decoder: &mut fidl::encoding::Decoder<'_, D>,
1489 offset: usize,
1490 mut depth: fidl::encoding::Depth,
1491 ) -> fidl::Result<()> {
1492 decoder.debug_check_bounds::<Self>(offset);
1493 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1494 None => return Err(fidl::Error::NotNullable),
1495 Some(len) => len,
1496 };
1497 if len == 0 {
1499 return Ok(());
1500 };
1501 depth.increment()?;
1502 let envelope_size = 8;
1503 let bytes_len = len * envelope_size;
1504 let offset = decoder.out_of_line_offset(bytes_len)?;
1505 let mut _next_ordinal_to_read = 0;
1507 let mut next_offset = offset;
1508 let end_offset = offset + bytes_len;
1509 _next_ordinal_to_read += 1;
1510 if next_offset >= end_offset {
1511 return Ok(());
1512 }
1513
1514 while _next_ordinal_to_read < 1 {
1516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1517 _next_ordinal_to_read += 1;
1518 next_offset += envelope_size;
1519 }
1520
1521 let next_out_of_line = decoder.next_out_of_line();
1522 let handles_before = decoder.remaining_handles();
1523 if let Some((inlined, num_bytes, num_handles)) =
1524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1525 {
1526 let member_inline_size =
1527 <fidl_fuchsia_lowpan::MacAddress as fidl::encoding::TypeMarker>::inline_size(
1528 decoder.context,
1529 );
1530 if inlined != (member_inline_size <= 4) {
1531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1532 }
1533 let inner_offset;
1534 let mut inner_depth = depth.clone();
1535 if inlined {
1536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1537 inner_offset = next_offset;
1538 } else {
1539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1540 inner_depth.increment()?;
1541 }
1542 let val_ref = self
1543 .mac_address
1544 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_lowpan::MacAddress, D));
1545 fidl::decode!(
1546 fidl_fuchsia_lowpan::MacAddress,
1547 D,
1548 val_ref,
1549 decoder,
1550 inner_offset,
1551 inner_depth
1552 )?;
1553 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1554 {
1555 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1556 }
1557 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1558 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1559 }
1560 }
1561
1562 next_offset += envelope_size;
1563 _next_ordinal_to_read += 1;
1564 if next_offset >= end_offset {
1565 return Ok(());
1566 }
1567
1568 while _next_ordinal_to_read < 2 {
1570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1571 _next_ordinal_to_read += 1;
1572 next_offset += envelope_size;
1573 }
1574
1575 let next_out_of_line = decoder.next_out_of_line();
1576 let handles_before = decoder.remaining_handles();
1577 if let Some((inlined, num_bytes, num_handles)) =
1578 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1579 {
1580 let member_inline_size =
1581 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1582 if inlined != (member_inline_size <= 4) {
1583 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1584 }
1585 let inner_offset;
1586 let mut inner_depth = depth.clone();
1587 if inlined {
1588 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1589 inner_offset = next_offset;
1590 } else {
1591 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1592 inner_depth.increment()?;
1593 }
1594 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
1595 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
1596 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1597 {
1598 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1599 }
1600 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1601 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1602 }
1603 }
1604
1605 next_offset += envelope_size;
1606
1607 while next_offset < end_offset {
1609 _next_ordinal_to_read += 1;
1610 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1611 next_offset += envelope_size;
1612 }
1613
1614 Ok(())
1615 }
1616 }
1617
1618 impl MacAddressFilterSettings {
1619 #[inline(always)]
1620 fn max_ordinal_present(&self) -> u64 {
1621 if let Some(_) = self.items {
1622 return 2;
1623 }
1624 if let Some(_) = self.mode {
1625 return 1;
1626 }
1627 0
1628 }
1629 }
1630
1631 impl fidl::encoding::ValueTypeMarker for MacAddressFilterSettings {
1632 type Borrowed<'a> = &'a Self;
1633 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1634 value
1635 }
1636 }
1637
1638 unsafe impl fidl::encoding::TypeMarker for MacAddressFilterSettings {
1639 type Owned = Self;
1640
1641 #[inline(always)]
1642 fn inline_align(_context: fidl::encoding::Context) -> usize {
1643 8
1644 }
1645
1646 #[inline(always)]
1647 fn inline_size(_context: fidl::encoding::Context) -> usize {
1648 16
1649 }
1650 }
1651
1652 unsafe impl<D: fidl::encoding::ResourceDialect>
1653 fidl::encoding::Encode<MacAddressFilterSettings, D> for &MacAddressFilterSettings
1654 {
1655 unsafe fn encode(
1656 self,
1657 encoder: &mut fidl::encoding::Encoder<'_, D>,
1658 offset: usize,
1659 mut depth: fidl::encoding::Depth,
1660 ) -> fidl::Result<()> {
1661 encoder.debug_check_bounds::<MacAddressFilterSettings>(offset);
1662 let max_ordinal: u64 = self.max_ordinal_present();
1664 encoder.write_num(max_ordinal, offset);
1665 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1666 if max_ordinal == 0 {
1668 return Ok(());
1669 }
1670 depth.increment()?;
1671 let envelope_size = 8;
1672 let bytes_len = max_ordinal as usize * envelope_size;
1673 #[allow(unused_variables)]
1674 let offset = encoder.out_of_line_offset(bytes_len);
1675 let mut _prev_end_offset: usize = 0;
1676 if 1 > max_ordinal {
1677 return Ok(());
1678 }
1679
1680 let cur_offset: usize = (1 - 1) * envelope_size;
1683
1684 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1686
1687 fidl::encoding::encode_in_envelope_optional::<MacAddressFilterMode, D>(
1692 self.mode
1693 .as_ref()
1694 .map(<MacAddressFilterMode as fidl::encoding::ValueTypeMarker>::borrow),
1695 encoder,
1696 offset + cur_offset,
1697 depth,
1698 )?;
1699
1700 _prev_end_offset = cur_offset + envelope_size;
1701 if 2 > max_ordinal {
1702 return Ok(());
1703 }
1704
1705 let cur_offset: usize = (2 - 1) * envelope_size;
1708
1709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1711
1712 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<MacAddressFilterItem, 100>, D>(
1717 self.items.as_ref().map(<fidl::encoding::Vector<MacAddressFilterItem, 100> as fidl::encoding::ValueTypeMarker>::borrow),
1718 encoder, offset + cur_offset, depth
1719 )?;
1720
1721 _prev_end_offset = cur_offset + envelope_size;
1722
1723 Ok(())
1724 }
1725 }
1726
1727 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1728 for MacAddressFilterSettings
1729 {
1730 #[inline(always)]
1731 fn new_empty() -> Self {
1732 Self::default()
1733 }
1734
1735 unsafe fn decode(
1736 &mut self,
1737 decoder: &mut fidl::encoding::Decoder<'_, D>,
1738 offset: usize,
1739 mut depth: fidl::encoding::Depth,
1740 ) -> fidl::Result<()> {
1741 decoder.debug_check_bounds::<Self>(offset);
1742 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1743 None => return Err(fidl::Error::NotNullable),
1744 Some(len) => len,
1745 };
1746 if len == 0 {
1748 return Ok(());
1749 };
1750 depth.increment()?;
1751 let envelope_size = 8;
1752 let bytes_len = len * envelope_size;
1753 let offset = decoder.out_of_line_offset(bytes_len)?;
1754 let mut _next_ordinal_to_read = 0;
1756 let mut next_offset = offset;
1757 let end_offset = offset + bytes_len;
1758 _next_ordinal_to_read += 1;
1759 if next_offset >= end_offset {
1760 return Ok(());
1761 }
1762
1763 while _next_ordinal_to_read < 1 {
1765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1766 _next_ordinal_to_read += 1;
1767 next_offset += envelope_size;
1768 }
1769
1770 let next_out_of_line = decoder.next_out_of_line();
1771 let handles_before = decoder.remaining_handles();
1772 if let Some((inlined, num_bytes, num_handles)) =
1773 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1774 {
1775 let member_inline_size =
1776 <MacAddressFilterMode as fidl::encoding::TypeMarker>::inline_size(
1777 decoder.context,
1778 );
1779 if inlined != (member_inline_size <= 4) {
1780 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1781 }
1782 let inner_offset;
1783 let mut inner_depth = depth.clone();
1784 if inlined {
1785 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1786 inner_offset = next_offset;
1787 } else {
1788 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1789 inner_depth.increment()?;
1790 }
1791 let val_ref =
1792 self.mode.get_or_insert_with(|| fidl::new_empty!(MacAddressFilterMode, D));
1793 fidl::decode!(
1794 MacAddressFilterMode,
1795 D,
1796 val_ref,
1797 decoder,
1798 inner_offset,
1799 inner_depth
1800 )?;
1801 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1802 {
1803 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1804 }
1805 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1806 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1807 }
1808 }
1809
1810 next_offset += envelope_size;
1811 _next_ordinal_to_read += 1;
1812 if next_offset >= end_offset {
1813 return Ok(());
1814 }
1815
1816 while _next_ordinal_to_read < 2 {
1818 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1819 _next_ordinal_to_read += 1;
1820 next_offset += envelope_size;
1821 }
1822
1823 let next_out_of_line = decoder.next_out_of_line();
1824 let handles_before = decoder.remaining_handles();
1825 if let Some((inlined, num_bytes, num_handles)) =
1826 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1827 {
1828 let member_inline_size = <fidl::encoding::Vector<MacAddressFilterItem, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1829 if inlined != (member_inline_size <= 4) {
1830 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1831 }
1832 let inner_offset;
1833 let mut inner_depth = depth.clone();
1834 if inlined {
1835 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1836 inner_offset = next_offset;
1837 } else {
1838 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1839 inner_depth.increment()?;
1840 }
1841 let val_ref = self.items.get_or_insert_with(
1842 || fidl::new_empty!(fidl::encoding::Vector<MacAddressFilterItem, 100>, D),
1843 );
1844 fidl::decode!(fidl::encoding::Vector<MacAddressFilterItem, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
1845 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1846 {
1847 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1848 }
1849 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1850 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1851 }
1852 }
1853
1854 next_offset += envelope_size;
1855
1856 while next_offset < end_offset {
1858 _next_ordinal_to_read += 1;
1859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1860 next_offset += envelope_size;
1861 }
1862
1863 Ok(())
1864 }
1865 }
1866
1867 impl NeighborInfo {
1868 #[inline(always)]
1869 fn max_ordinal_present(&self) -> u64 {
1870 if let Some(_) = self.thread_mle_version {
1871 return 17;
1872 }
1873 if let Some(_) = self.queued_messages {
1874 return 16;
1875 }
1876 if let Some(_) = self.net_data_version {
1877 return 15;
1878 }
1879 if let Some(_) = self.child_is_state_restoring {
1880 return 14;
1881 }
1882 if let Some(_) = self.child_is_csl_synced {
1883 return 13;
1884 }
1885 if let Some(_) = self.ipv6_error_rate {
1886 return 12;
1887 }
1888 if let Some(_) = self.frame_error_rate {
1889 return 11;
1890 }
1891 if let Some(_) = self.thread_mode {
1892 return 10;
1893 }
1894 if let Some(_) = self.lqi_in {
1895 return 9;
1896 }
1897 if let Some(_) = self.avg_rssi_in {
1898 return 8;
1899 }
1900 if let Some(_) = self.last_rssi_in {
1901 return 7;
1902 }
1903 if let Some(_) = self.mgmt_frame_count {
1904 return 6;
1905 }
1906 if let Some(_) = self.link_frame_count {
1907 return 5;
1908 }
1909 if let Some(_) = self.is_child {
1910 return 4;
1911 }
1912 if let Some(_) = self.age {
1913 return 3;
1914 }
1915 if let Some(_) = self.short_address {
1916 return 2;
1917 }
1918 if let Some(_) = self.mac_address {
1919 return 1;
1920 }
1921 0
1922 }
1923 }
1924
1925 impl fidl::encoding::ValueTypeMarker for NeighborInfo {
1926 type Borrowed<'a> = &'a Self;
1927 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1928 value
1929 }
1930 }
1931
1932 unsafe impl fidl::encoding::TypeMarker for NeighborInfo {
1933 type Owned = Self;
1934
1935 #[inline(always)]
1936 fn inline_align(_context: fidl::encoding::Context) -> usize {
1937 8
1938 }
1939
1940 #[inline(always)]
1941 fn inline_size(_context: fidl::encoding::Context) -> usize {
1942 16
1943 }
1944 }
1945
1946 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NeighborInfo, D>
1947 for &NeighborInfo
1948 {
1949 unsafe fn encode(
1950 self,
1951 encoder: &mut fidl::encoding::Encoder<'_, D>,
1952 offset: usize,
1953 mut depth: fidl::encoding::Depth,
1954 ) -> fidl::Result<()> {
1955 encoder.debug_check_bounds::<NeighborInfo>(offset);
1956 let max_ordinal: u64 = self.max_ordinal_present();
1958 encoder.write_num(max_ordinal, offset);
1959 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1960 if max_ordinal == 0 {
1962 return Ok(());
1963 }
1964 depth.increment()?;
1965 let envelope_size = 8;
1966 let bytes_len = max_ordinal as usize * envelope_size;
1967 #[allow(unused_variables)]
1968 let offset = encoder.out_of_line_offset(bytes_len);
1969 let mut _prev_end_offset: usize = 0;
1970 if 1 > max_ordinal {
1971 return Ok(());
1972 }
1973
1974 let cur_offset: usize = (1 - 1) * envelope_size;
1977
1978 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1980
1981 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_lowpan::MacAddress, D>(
1986 self.mac_address.as_ref().map(
1987 <fidl_fuchsia_lowpan::MacAddress as fidl::encoding::ValueTypeMarker>::borrow,
1988 ),
1989 encoder,
1990 offset + cur_offset,
1991 depth,
1992 )?;
1993
1994 _prev_end_offset = cur_offset + envelope_size;
1995 if 2 > max_ordinal {
1996 return Ok(());
1997 }
1998
1999 let cur_offset: usize = (2 - 1) * envelope_size;
2002
2003 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2005
2006 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2011 self.short_address.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2012 encoder,
2013 offset + cur_offset,
2014 depth,
2015 )?;
2016
2017 _prev_end_offset = cur_offset + envelope_size;
2018 if 3 > max_ordinal {
2019 return Ok(());
2020 }
2021
2022 let cur_offset: usize = (3 - 1) * envelope_size;
2025
2026 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2028
2029 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2034 self.age.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2035 encoder,
2036 offset + cur_offset,
2037 depth,
2038 )?;
2039
2040 _prev_end_offset = cur_offset + envelope_size;
2041 if 4 > max_ordinal {
2042 return Ok(());
2043 }
2044
2045 let cur_offset: usize = (4 - 1) * envelope_size;
2048
2049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2051
2052 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2057 self.is_child.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2058 encoder,
2059 offset + cur_offset,
2060 depth,
2061 )?;
2062
2063 _prev_end_offset = cur_offset + envelope_size;
2064 if 5 > max_ordinal {
2065 return Ok(());
2066 }
2067
2068 let cur_offset: usize = (5 - 1) * envelope_size;
2071
2072 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2074
2075 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2080 self.link_frame_count
2081 .as_ref()
2082 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2083 encoder,
2084 offset + cur_offset,
2085 depth,
2086 )?;
2087
2088 _prev_end_offset = cur_offset + envelope_size;
2089 if 6 > max_ordinal {
2090 return Ok(());
2091 }
2092
2093 let cur_offset: usize = (6 - 1) * envelope_size;
2096
2097 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2099
2100 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2105 self.mgmt_frame_count
2106 .as_ref()
2107 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2108 encoder,
2109 offset + cur_offset,
2110 depth,
2111 )?;
2112
2113 _prev_end_offset = cur_offset + envelope_size;
2114 if 7 > max_ordinal {
2115 return Ok(());
2116 }
2117
2118 let cur_offset: usize = (7 - 1) * envelope_size;
2121
2122 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2124
2125 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2130 self.last_rssi_in.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2131 encoder,
2132 offset + cur_offset,
2133 depth,
2134 )?;
2135
2136 _prev_end_offset = cur_offset + envelope_size;
2137 if 8 > max_ordinal {
2138 return Ok(());
2139 }
2140
2141 let cur_offset: usize = (8 - 1) * envelope_size;
2144
2145 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2147
2148 fidl::encoding::encode_in_envelope_optional::<i8, D>(
2153 self.avg_rssi_in.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
2154 encoder,
2155 offset + cur_offset,
2156 depth,
2157 )?;
2158
2159 _prev_end_offset = cur_offset + envelope_size;
2160 if 9 > max_ordinal {
2161 return Ok(());
2162 }
2163
2164 let cur_offset: usize = (9 - 1) * envelope_size;
2167
2168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2170
2171 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2176 self.lqi_in.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2177 encoder,
2178 offset + cur_offset,
2179 depth,
2180 )?;
2181
2182 _prev_end_offset = cur_offset + envelope_size;
2183 if 10 > max_ordinal {
2184 return Ok(());
2185 }
2186
2187 let cur_offset: usize = (10 - 1) * envelope_size;
2190
2191 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2193
2194 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2199 self.thread_mode.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2200 encoder,
2201 offset + cur_offset,
2202 depth,
2203 )?;
2204
2205 _prev_end_offset = cur_offset + envelope_size;
2206 if 11 > max_ordinal {
2207 return Ok(());
2208 }
2209
2210 let cur_offset: usize = (11 - 1) * envelope_size;
2213
2214 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2216
2217 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2222 self.frame_error_rate
2223 .as_ref()
2224 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2225 encoder,
2226 offset + cur_offset,
2227 depth,
2228 )?;
2229
2230 _prev_end_offset = cur_offset + envelope_size;
2231 if 12 > max_ordinal {
2232 return Ok(());
2233 }
2234
2235 let cur_offset: usize = (12 - 1) * envelope_size;
2238
2239 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2241
2242 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2247 self.ipv6_error_rate.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2248 encoder,
2249 offset + cur_offset,
2250 depth,
2251 )?;
2252
2253 _prev_end_offset = cur_offset + envelope_size;
2254 if 13 > max_ordinal {
2255 return Ok(());
2256 }
2257
2258 let cur_offset: usize = (13 - 1) * envelope_size;
2261
2262 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2264
2265 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2270 self.child_is_csl_synced
2271 .as_ref()
2272 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2273 encoder,
2274 offset + cur_offset,
2275 depth,
2276 )?;
2277
2278 _prev_end_offset = cur_offset + envelope_size;
2279 if 14 > max_ordinal {
2280 return Ok(());
2281 }
2282
2283 let cur_offset: usize = (14 - 1) * envelope_size;
2286
2287 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2289
2290 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2295 self.child_is_state_restoring
2296 .as_ref()
2297 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2298 encoder,
2299 offset + cur_offset,
2300 depth,
2301 )?;
2302
2303 _prev_end_offset = cur_offset + envelope_size;
2304 if 15 > max_ordinal {
2305 return Ok(());
2306 }
2307
2308 let cur_offset: usize = (15 - 1) * envelope_size;
2311
2312 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2314
2315 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2320 self.net_data_version.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2321 encoder,
2322 offset + cur_offset,
2323 depth,
2324 )?;
2325
2326 _prev_end_offset = cur_offset + envelope_size;
2327 if 16 > max_ordinal {
2328 return Ok(());
2329 }
2330
2331 let cur_offset: usize = (16 - 1) * envelope_size;
2334
2335 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2337
2338 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2343 self.queued_messages.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2344 encoder,
2345 offset + cur_offset,
2346 depth,
2347 )?;
2348
2349 _prev_end_offset = cur_offset + envelope_size;
2350 if 17 > max_ordinal {
2351 return Ok(());
2352 }
2353
2354 let cur_offset: usize = (17 - 1) * envelope_size;
2357
2358 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2360
2361 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2366 self.thread_mle_version
2367 .as_ref()
2368 .map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2369 encoder,
2370 offset + cur_offset,
2371 depth,
2372 )?;
2373
2374 _prev_end_offset = cur_offset + envelope_size;
2375
2376 Ok(())
2377 }
2378 }
2379
2380 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NeighborInfo {
2381 #[inline(always)]
2382 fn new_empty() -> Self {
2383 Self::default()
2384 }
2385
2386 unsafe fn decode(
2387 &mut self,
2388 decoder: &mut fidl::encoding::Decoder<'_, D>,
2389 offset: usize,
2390 mut depth: fidl::encoding::Depth,
2391 ) -> fidl::Result<()> {
2392 decoder.debug_check_bounds::<Self>(offset);
2393 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2394 None => return Err(fidl::Error::NotNullable),
2395 Some(len) => len,
2396 };
2397 if len == 0 {
2399 return Ok(());
2400 };
2401 depth.increment()?;
2402 let envelope_size = 8;
2403 let bytes_len = len * envelope_size;
2404 let offset = decoder.out_of_line_offset(bytes_len)?;
2405 let mut _next_ordinal_to_read = 0;
2407 let mut next_offset = offset;
2408 let end_offset = offset + bytes_len;
2409 _next_ordinal_to_read += 1;
2410 if next_offset >= end_offset {
2411 return Ok(());
2412 }
2413
2414 while _next_ordinal_to_read < 1 {
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 =
2427 <fidl_fuchsia_lowpan::MacAddress as fidl::encoding::TypeMarker>::inline_size(
2428 decoder.context,
2429 );
2430 if inlined != (member_inline_size <= 4) {
2431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2432 }
2433 let inner_offset;
2434 let mut inner_depth = depth.clone();
2435 if inlined {
2436 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2437 inner_offset = next_offset;
2438 } else {
2439 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2440 inner_depth.increment()?;
2441 }
2442 let val_ref = self
2443 .mac_address
2444 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_lowpan::MacAddress, D));
2445 fidl::decode!(
2446 fidl_fuchsia_lowpan::MacAddress,
2447 D,
2448 val_ref,
2449 decoder,
2450 inner_offset,
2451 inner_depth
2452 )?;
2453 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2454 {
2455 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2456 }
2457 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2458 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2459 }
2460 }
2461
2462 next_offset += envelope_size;
2463 _next_ordinal_to_read += 1;
2464 if next_offset >= end_offset {
2465 return Ok(());
2466 }
2467
2468 while _next_ordinal_to_read < 2 {
2470 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2471 _next_ordinal_to_read += 1;
2472 next_offset += envelope_size;
2473 }
2474
2475 let next_out_of_line = decoder.next_out_of_line();
2476 let handles_before = decoder.remaining_handles();
2477 if let Some((inlined, num_bytes, num_handles)) =
2478 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2479 {
2480 let member_inline_size =
2481 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2482 if inlined != (member_inline_size <= 4) {
2483 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2484 }
2485 let inner_offset;
2486 let mut inner_depth = depth.clone();
2487 if inlined {
2488 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2489 inner_offset = next_offset;
2490 } else {
2491 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2492 inner_depth.increment()?;
2493 }
2494 let val_ref = self.short_address.get_or_insert_with(|| fidl::new_empty!(u16, D));
2495 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2496 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2497 {
2498 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2499 }
2500 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2501 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2502 }
2503 }
2504
2505 next_offset += envelope_size;
2506 _next_ordinal_to_read += 1;
2507 if next_offset >= end_offset {
2508 return Ok(());
2509 }
2510
2511 while _next_ordinal_to_read < 3 {
2513 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2514 _next_ordinal_to_read += 1;
2515 next_offset += envelope_size;
2516 }
2517
2518 let next_out_of_line = decoder.next_out_of_line();
2519 let handles_before = decoder.remaining_handles();
2520 if let Some((inlined, num_bytes, num_handles)) =
2521 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2522 {
2523 let member_inline_size =
2524 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2525 if inlined != (member_inline_size <= 4) {
2526 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2527 }
2528 let inner_offset;
2529 let mut inner_depth = depth.clone();
2530 if inlined {
2531 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2532 inner_offset = next_offset;
2533 } else {
2534 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2535 inner_depth.increment()?;
2536 }
2537 let val_ref = self.age.get_or_insert_with(|| fidl::new_empty!(i64, D));
2538 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2539 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2540 {
2541 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2542 }
2543 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2544 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2545 }
2546 }
2547
2548 next_offset += envelope_size;
2549 _next_ordinal_to_read += 1;
2550 if next_offset >= end_offset {
2551 return Ok(());
2552 }
2553
2554 while _next_ordinal_to_read < 4 {
2556 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2557 _next_ordinal_to_read += 1;
2558 next_offset += envelope_size;
2559 }
2560
2561 let next_out_of_line = decoder.next_out_of_line();
2562 let handles_before = decoder.remaining_handles();
2563 if let Some((inlined, num_bytes, num_handles)) =
2564 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2565 {
2566 let member_inline_size =
2567 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2568 if inlined != (member_inline_size <= 4) {
2569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2570 }
2571 let inner_offset;
2572 let mut inner_depth = depth.clone();
2573 if inlined {
2574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2575 inner_offset = next_offset;
2576 } else {
2577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2578 inner_depth.increment()?;
2579 }
2580 let val_ref = self.is_child.get_or_insert_with(|| fidl::new_empty!(bool, D));
2581 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2582 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2583 {
2584 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2585 }
2586 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2587 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2588 }
2589 }
2590
2591 next_offset += envelope_size;
2592 _next_ordinal_to_read += 1;
2593 if next_offset >= end_offset {
2594 return Ok(());
2595 }
2596
2597 while _next_ordinal_to_read < 5 {
2599 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2600 _next_ordinal_to_read += 1;
2601 next_offset += envelope_size;
2602 }
2603
2604 let next_out_of_line = decoder.next_out_of_line();
2605 let handles_before = decoder.remaining_handles();
2606 if let Some((inlined, num_bytes, num_handles)) =
2607 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2608 {
2609 let member_inline_size =
2610 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2611 if inlined != (member_inline_size <= 4) {
2612 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2613 }
2614 let inner_offset;
2615 let mut inner_depth = depth.clone();
2616 if inlined {
2617 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2618 inner_offset = next_offset;
2619 } else {
2620 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2621 inner_depth.increment()?;
2622 }
2623 let val_ref = self.link_frame_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
2624 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2625 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2626 {
2627 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2628 }
2629 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2630 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2631 }
2632 }
2633
2634 next_offset += envelope_size;
2635 _next_ordinal_to_read += 1;
2636 if next_offset >= end_offset {
2637 return Ok(());
2638 }
2639
2640 while _next_ordinal_to_read < 6 {
2642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2643 _next_ordinal_to_read += 1;
2644 next_offset += envelope_size;
2645 }
2646
2647 let next_out_of_line = decoder.next_out_of_line();
2648 let handles_before = decoder.remaining_handles();
2649 if let Some((inlined, num_bytes, num_handles)) =
2650 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2651 {
2652 let member_inline_size =
2653 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2654 if inlined != (member_inline_size <= 4) {
2655 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2656 }
2657 let inner_offset;
2658 let mut inner_depth = depth.clone();
2659 if inlined {
2660 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2661 inner_offset = next_offset;
2662 } else {
2663 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2664 inner_depth.increment()?;
2665 }
2666 let val_ref = self.mgmt_frame_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
2667 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2668 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2669 {
2670 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2671 }
2672 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2673 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2674 }
2675 }
2676
2677 next_offset += envelope_size;
2678 _next_ordinal_to_read += 1;
2679 if next_offset >= end_offset {
2680 return Ok(());
2681 }
2682
2683 while _next_ordinal_to_read < 7 {
2685 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2686 _next_ordinal_to_read += 1;
2687 next_offset += envelope_size;
2688 }
2689
2690 let next_out_of_line = decoder.next_out_of_line();
2691 let handles_before = decoder.remaining_handles();
2692 if let Some((inlined, num_bytes, num_handles)) =
2693 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2694 {
2695 let member_inline_size =
2696 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2697 if inlined != (member_inline_size <= 4) {
2698 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2699 }
2700 let inner_offset;
2701 let mut inner_depth = depth.clone();
2702 if inlined {
2703 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2704 inner_offset = next_offset;
2705 } else {
2706 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2707 inner_depth.increment()?;
2708 }
2709 let val_ref = self.last_rssi_in.get_or_insert_with(|| fidl::new_empty!(i32, D));
2710 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
2711 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2712 {
2713 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2714 }
2715 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2716 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2717 }
2718 }
2719
2720 next_offset += envelope_size;
2721 _next_ordinal_to_read += 1;
2722 if next_offset >= end_offset {
2723 return Ok(());
2724 }
2725
2726 while _next_ordinal_to_read < 8 {
2728 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2729 _next_ordinal_to_read += 1;
2730 next_offset += envelope_size;
2731 }
2732
2733 let next_out_of_line = decoder.next_out_of_line();
2734 let handles_before = decoder.remaining_handles();
2735 if let Some((inlined, num_bytes, num_handles)) =
2736 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2737 {
2738 let member_inline_size =
2739 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2740 if inlined != (member_inline_size <= 4) {
2741 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2742 }
2743 let inner_offset;
2744 let mut inner_depth = depth.clone();
2745 if inlined {
2746 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2747 inner_offset = next_offset;
2748 } else {
2749 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2750 inner_depth.increment()?;
2751 }
2752 let val_ref = self.avg_rssi_in.get_or_insert_with(|| fidl::new_empty!(i8, D));
2753 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
2754 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2755 {
2756 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2757 }
2758 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2759 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2760 }
2761 }
2762
2763 next_offset += envelope_size;
2764 _next_ordinal_to_read += 1;
2765 if next_offset >= end_offset {
2766 return Ok(());
2767 }
2768
2769 while _next_ordinal_to_read < 9 {
2771 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2772 _next_ordinal_to_read += 1;
2773 next_offset += envelope_size;
2774 }
2775
2776 let next_out_of_line = decoder.next_out_of_line();
2777 let handles_before = decoder.remaining_handles();
2778 if let Some((inlined, num_bytes, num_handles)) =
2779 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2780 {
2781 let member_inline_size =
2782 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2783 if inlined != (member_inline_size <= 4) {
2784 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2785 }
2786 let inner_offset;
2787 let mut inner_depth = depth.clone();
2788 if inlined {
2789 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2790 inner_offset = next_offset;
2791 } else {
2792 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2793 inner_depth.increment()?;
2794 }
2795 let val_ref = self.lqi_in.get_or_insert_with(|| fidl::new_empty!(u8, D));
2796 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
2797 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2798 {
2799 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2800 }
2801 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2802 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2803 }
2804 }
2805
2806 next_offset += envelope_size;
2807 _next_ordinal_to_read += 1;
2808 if next_offset >= end_offset {
2809 return Ok(());
2810 }
2811
2812 while _next_ordinal_to_read < 10 {
2814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2815 _next_ordinal_to_read += 1;
2816 next_offset += envelope_size;
2817 }
2818
2819 let next_out_of_line = decoder.next_out_of_line();
2820 let handles_before = decoder.remaining_handles();
2821 if let Some((inlined, num_bytes, num_handles)) =
2822 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2823 {
2824 let member_inline_size =
2825 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2826 if inlined != (member_inline_size <= 4) {
2827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2828 }
2829 let inner_offset;
2830 let mut inner_depth = depth.clone();
2831 if inlined {
2832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2833 inner_offset = next_offset;
2834 } else {
2835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2836 inner_depth.increment()?;
2837 }
2838 let val_ref = self.thread_mode.get_or_insert_with(|| fidl::new_empty!(u8, D));
2839 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
2840 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2841 {
2842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2843 }
2844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2846 }
2847 }
2848
2849 next_offset += envelope_size;
2850 _next_ordinal_to_read += 1;
2851 if next_offset >= end_offset {
2852 return Ok(());
2853 }
2854
2855 while _next_ordinal_to_read < 11 {
2857 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2858 _next_ordinal_to_read += 1;
2859 next_offset += envelope_size;
2860 }
2861
2862 let next_out_of_line = decoder.next_out_of_line();
2863 let handles_before = decoder.remaining_handles();
2864 if let Some((inlined, num_bytes, num_handles)) =
2865 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2866 {
2867 let member_inline_size =
2868 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2869 if inlined != (member_inline_size <= 4) {
2870 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2871 }
2872 let inner_offset;
2873 let mut inner_depth = depth.clone();
2874 if inlined {
2875 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2876 inner_offset = next_offset;
2877 } else {
2878 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2879 inner_depth.increment()?;
2880 }
2881 let val_ref = self.frame_error_rate.get_or_insert_with(|| fidl::new_empty!(u16, D));
2882 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2883 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2884 {
2885 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2886 }
2887 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2888 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2889 }
2890 }
2891
2892 next_offset += envelope_size;
2893 _next_ordinal_to_read += 1;
2894 if next_offset >= end_offset {
2895 return Ok(());
2896 }
2897
2898 while _next_ordinal_to_read < 12 {
2900 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2901 _next_ordinal_to_read += 1;
2902 next_offset += envelope_size;
2903 }
2904
2905 let next_out_of_line = decoder.next_out_of_line();
2906 let handles_before = decoder.remaining_handles();
2907 if let Some((inlined, num_bytes, num_handles)) =
2908 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2909 {
2910 let member_inline_size =
2911 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2912 if inlined != (member_inline_size <= 4) {
2913 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2914 }
2915 let inner_offset;
2916 let mut inner_depth = depth.clone();
2917 if inlined {
2918 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2919 inner_offset = next_offset;
2920 } else {
2921 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2922 inner_depth.increment()?;
2923 }
2924 let val_ref = self.ipv6_error_rate.get_or_insert_with(|| fidl::new_empty!(u16, D));
2925 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2926 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2927 {
2928 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2929 }
2930 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2931 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2932 }
2933 }
2934
2935 next_offset += envelope_size;
2936 _next_ordinal_to_read += 1;
2937 if next_offset >= end_offset {
2938 return Ok(());
2939 }
2940
2941 while _next_ordinal_to_read < 13 {
2943 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2944 _next_ordinal_to_read += 1;
2945 next_offset += envelope_size;
2946 }
2947
2948 let next_out_of_line = decoder.next_out_of_line();
2949 let handles_before = decoder.remaining_handles();
2950 if let Some((inlined, num_bytes, num_handles)) =
2951 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2952 {
2953 let member_inline_size =
2954 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2955 if inlined != (member_inline_size <= 4) {
2956 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2957 }
2958 let inner_offset;
2959 let mut inner_depth = depth.clone();
2960 if inlined {
2961 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2962 inner_offset = next_offset;
2963 } else {
2964 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2965 inner_depth.increment()?;
2966 }
2967 let val_ref =
2968 self.child_is_csl_synced.get_or_insert_with(|| fidl::new_empty!(bool, D));
2969 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2970 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2971 {
2972 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2973 }
2974 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2975 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2976 }
2977 }
2978
2979 next_offset += envelope_size;
2980 _next_ordinal_to_read += 1;
2981 if next_offset >= end_offset {
2982 return Ok(());
2983 }
2984
2985 while _next_ordinal_to_read < 14 {
2987 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2988 _next_ordinal_to_read += 1;
2989 next_offset += envelope_size;
2990 }
2991
2992 let next_out_of_line = decoder.next_out_of_line();
2993 let handles_before = decoder.remaining_handles();
2994 if let Some((inlined, num_bytes, num_handles)) =
2995 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2996 {
2997 let member_inline_size =
2998 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2999 if inlined != (member_inline_size <= 4) {
3000 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3001 }
3002 let inner_offset;
3003 let mut inner_depth = depth.clone();
3004 if inlined {
3005 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3006 inner_offset = next_offset;
3007 } else {
3008 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3009 inner_depth.increment()?;
3010 }
3011 let val_ref =
3012 self.child_is_state_restoring.get_or_insert_with(|| fidl::new_empty!(bool, D));
3013 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3014 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3015 {
3016 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3017 }
3018 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3019 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3020 }
3021 }
3022
3023 next_offset += envelope_size;
3024 _next_ordinal_to_read += 1;
3025 if next_offset >= end_offset {
3026 return Ok(());
3027 }
3028
3029 while _next_ordinal_to_read < 15 {
3031 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3032 _next_ordinal_to_read += 1;
3033 next_offset += envelope_size;
3034 }
3035
3036 let next_out_of_line = decoder.next_out_of_line();
3037 let handles_before = decoder.remaining_handles();
3038 if let Some((inlined, num_bytes, num_handles)) =
3039 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3040 {
3041 let member_inline_size =
3042 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3043 if inlined != (member_inline_size <= 4) {
3044 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3045 }
3046 let inner_offset;
3047 let mut inner_depth = depth.clone();
3048 if inlined {
3049 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3050 inner_offset = next_offset;
3051 } else {
3052 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3053 inner_depth.increment()?;
3054 }
3055 let val_ref = self.net_data_version.get_or_insert_with(|| fidl::new_empty!(u8, D));
3056 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
3057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3058 {
3059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3060 }
3061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3063 }
3064 }
3065
3066 next_offset += envelope_size;
3067 _next_ordinal_to_read += 1;
3068 if next_offset >= end_offset {
3069 return Ok(());
3070 }
3071
3072 while _next_ordinal_to_read < 16 {
3074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3075 _next_ordinal_to_read += 1;
3076 next_offset += envelope_size;
3077 }
3078
3079 let next_out_of_line = decoder.next_out_of_line();
3080 let handles_before = decoder.remaining_handles();
3081 if let Some((inlined, num_bytes, num_handles)) =
3082 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3083 {
3084 let member_inline_size =
3085 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3086 if inlined != (member_inline_size <= 4) {
3087 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3088 }
3089 let inner_offset;
3090 let mut inner_depth = depth.clone();
3091 if inlined {
3092 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3093 inner_offset = next_offset;
3094 } else {
3095 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3096 inner_depth.increment()?;
3097 }
3098 let val_ref = self.queued_messages.get_or_insert_with(|| fidl::new_empty!(u16, D));
3099 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3100 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3101 {
3102 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3103 }
3104 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3105 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3106 }
3107 }
3108
3109 next_offset += envelope_size;
3110 _next_ordinal_to_read += 1;
3111 if next_offset >= end_offset {
3112 return Ok(());
3113 }
3114
3115 while _next_ordinal_to_read < 17 {
3117 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3118 _next_ordinal_to_read += 1;
3119 next_offset += envelope_size;
3120 }
3121
3122 let next_out_of_line = decoder.next_out_of_line();
3123 let handles_before = decoder.remaining_handles();
3124 if let Some((inlined, num_bytes, num_handles)) =
3125 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3126 {
3127 let member_inline_size =
3128 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3129 if inlined != (member_inline_size <= 4) {
3130 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3131 }
3132 let inner_offset;
3133 let mut inner_depth = depth.clone();
3134 if inlined {
3135 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3136 inner_offset = next_offset;
3137 } else {
3138 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3139 inner_depth.increment()?;
3140 }
3141 let val_ref =
3142 self.thread_mle_version.get_or_insert_with(|| fidl::new_empty!(u8, D));
3143 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
3144 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3145 {
3146 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3147 }
3148 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3149 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3150 }
3151 }
3152
3153 next_offset += envelope_size;
3154
3155 while next_offset < end_offset {
3157 _next_ordinal_to_read += 1;
3158 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3159 next_offset += envelope_size;
3160 }
3161
3162 Ok(())
3163 }
3164 }
3165}