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__common::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__common::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__common::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__common::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 pub conntime: Option<i64>,
249 #[doc(hidden)]
250 pub __source_breaking: fidl::marker::SourceBreaking,
251}
252
253impl fidl::Persistable for NeighborInfo {}
254
255pub mod device_test_ordinals {
256 pub const RESET: u64 = 0x772795fd82e287e;
257 pub const GET_NCP_VERSION: u64 = 0x5006d66ecaa992f2;
258 pub const GET_CURRENT_RSSI: u64 = 0x6ac289cf16a976ab;
259 pub const GET_FACTORY_MAC_ADDRESS: u64 = 0x2a32094f1da3372;
260 pub const GET_CURRENT_MAC_ADDRESS: u64 = 0x39fc2f974a484b62;
261 pub const GET_CURRENT_CHANNEL: u64 = 0x2bd32ba980668d13;
262 pub const GET_PARTITION_ID: u64 = 0x32be448a6dc88b33;
263 pub const GET_THREAD_RLOC16: u64 = 0x4e554e42c1953d31;
264 pub const GET_THREAD_ROUTER_ID: u64 = 0x753df71fce9f3563;
265 pub const REPLACE_MAC_ADDRESS_FILTER_SETTINGS: u64 = 0x66eb4780f869de19;
266 pub const GET_MAC_ADDRESS_FILTER_SETTINGS: u64 = 0x2d727bf2dd3e231c;
267 pub const GET_NEIGHBOR_TABLE: u64 = 0x6f2db4573c413cde;
268}
269
270pub mod device_test_connector_ordinals {
271 pub const CONNECT: u64 = 0x366c1167cee8caa3;
272}
273
274mod internal {
275 use super::*;
276 unsafe impl fidl::encoding::TypeMarker for MacAddressFilterMode {
277 type Owned = Self;
278
279 #[inline(always)]
280 fn inline_align(_context: fidl::encoding::Context) -> usize {
281 std::mem::align_of::<i32>()
282 }
283
284 #[inline(always)]
285 fn inline_size(_context: fidl::encoding::Context) -> usize {
286 std::mem::size_of::<i32>()
287 }
288
289 #[inline(always)]
290 fn encode_is_copy() -> bool {
291 true
292 }
293
294 #[inline(always)]
295 fn decode_is_copy() -> bool {
296 false
297 }
298 }
299
300 impl fidl::encoding::ValueTypeMarker for MacAddressFilterMode {
301 type Borrowed<'a> = Self;
302 #[inline(always)]
303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
304 *value
305 }
306 }
307
308 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
309 for MacAddressFilterMode
310 {
311 #[inline]
312 unsafe fn encode(
313 self,
314 encoder: &mut fidl::encoding::Encoder<'_, D>,
315 offset: usize,
316 _depth: fidl::encoding::Depth,
317 ) -> fidl::Result<()> {
318 encoder.debug_check_bounds::<Self>(offset);
319 encoder.write_num(self.into_primitive(), offset);
320 Ok(())
321 }
322 }
323
324 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MacAddressFilterMode {
325 #[inline(always)]
326 fn new_empty() -> Self {
327 Self::Disabled
328 }
329
330 #[inline]
331 unsafe fn decode(
332 &mut self,
333 decoder: &mut fidl::encoding::Decoder<'_, D>,
334 offset: usize,
335 _depth: fidl::encoding::Depth,
336 ) -> fidl::Result<()> {
337 decoder.debug_check_bounds::<Self>(offset);
338 let prim = decoder.read_num::<i32>(offset);
339
340 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
341 Ok(())
342 }
343 }
344
345 impl fidl::encoding::ValueTypeMarker for DeviceTestGetCurrentChannelResponse {
346 type Borrowed<'a> = &'a Self;
347 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
348 value
349 }
350 }
351
352 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetCurrentChannelResponse {
353 type Owned = Self;
354
355 #[inline(always)]
356 fn inline_align(_context: fidl::encoding::Context) -> usize {
357 2
358 }
359
360 #[inline(always)]
361 fn inline_size(_context: fidl::encoding::Context) -> usize {
362 2
363 }
364 #[inline(always)]
365 fn encode_is_copy() -> bool {
366 true
367 }
368
369 #[inline(always)]
370 fn decode_is_copy() -> bool {
371 true
372 }
373 }
374
375 unsafe impl<D: fidl::encoding::ResourceDialect>
376 fidl::encoding::Encode<DeviceTestGetCurrentChannelResponse, D>
377 for &DeviceTestGetCurrentChannelResponse
378 {
379 #[inline]
380 unsafe fn encode(
381 self,
382 encoder: &mut fidl::encoding::Encoder<'_, D>,
383 offset: usize,
384 _depth: fidl::encoding::Depth,
385 ) -> fidl::Result<()> {
386 encoder.debug_check_bounds::<DeviceTestGetCurrentChannelResponse>(offset);
387 unsafe {
388 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
390 (buf_ptr as *mut DeviceTestGetCurrentChannelResponse)
391 .write_unaligned((self as *const DeviceTestGetCurrentChannelResponse).read());
392 }
395 Ok(())
396 }
397 }
398 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u16, D>>
399 fidl::encoding::Encode<DeviceTestGetCurrentChannelResponse, D> for (T0,)
400 {
401 #[inline]
402 unsafe fn encode(
403 self,
404 encoder: &mut fidl::encoding::Encoder<'_, D>,
405 offset: usize,
406 depth: fidl::encoding::Depth,
407 ) -> fidl::Result<()> {
408 encoder.debug_check_bounds::<DeviceTestGetCurrentChannelResponse>(offset);
409 self.0.encode(encoder, offset + 0, depth)?;
413 Ok(())
414 }
415 }
416
417 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
418 for DeviceTestGetCurrentChannelResponse
419 {
420 #[inline(always)]
421 fn new_empty() -> Self {
422 Self { channel_index: fidl::new_empty!(u16, D) }
423 }
424
425 #[inline]
426 unsafe fn decode(
427 &mut self,
428 decoder: &mut fidl::encoding::Decoder<'_, D>,
429 offset: usize,
430 _depth: fidl::encoding::Depth,
431 ) -> fidl::Result<()> {
432 decoder.debug_check_bounds::<Self>(offset);
433 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
434 unsafe {
437 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
438 }
439 Ok(())
440 }
441 }
442
443 impl fidl::encoding::ValueTypeMarker for DeviceTestGetCurrentMacAddressResponse {
444 type Borrowed<'a> = &'a Self;
445 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
446 value
447 }
448 }
449
450 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetCurrentMacAddressResponse {
451 type Owned = Self;
452
453 #[inline(always)]
454 fn inline_align(_context: fidl::encoding::Context) -> usize {
455 1
456 }
457
458 #[inline(always)]
459 fn inline_size(_context: fidl::encoding::Context) -> usize {
460 8
461 }
462 }
463
464 unsafe impl<D: fidl::encoding::ResourceDialect>
465 fidl::encoding::Encode<DeviceTestGetCurrentMacAddressResponse, D>
466 for &DeviceTestGetCurrentMacAddressResponse
467 {
468 #[inline]
469 unsafe fn encode(
470 self,
471 encoder: &mut fidl::encoding::Encoder<'_, D>,
472 offset: usize,
473 _depth: fidl::encoding::Depth,
474 ) -> fidl::Result<()> {
475 encoder.debug_check_bounds::<DeviceTestGetCurrentMacAddressResponse>(offset);
476 fidl::encoding::Encode::<DeviceTestGetCurrentMacAddressResponse, D>::encode(
478 (
479 <fidl_fuchsia_lowpan__common::MacAddress as fidl::encoding::ValueTypeMarker>::borrow(&self.address),
480 ),
481 encoder, offset, _depth
482 )
483 }
484 }
485 unsafe impl<
486 D: fidl::encoding::ResourceDialect,
487 T0: fidl::encoding::Encode<fidl_fuchsia_lowpan__common::MacAddress, D>,
488 > fidl::encoding::Encode<DeviceTestGetCurrentMacAddressResponse, D> for (T0,)
489 {
490 #[inline]
491 unsafe fn encode(
492 self,
493 encoder: &mut fidl::encoding::Encoder<'_, D>,
494 offset: usize,
495 depth: fidl::encoding::Depth,
496 ) -> fidl::Result<()> {
497 encoder.debug_check_bounds::<DeviceTestGetCurrentMacAddressResponse>(offset);
498 self.0.encode(encoder, offset + 0, depth)?;
502 Ok(())
503 }
504 }
505
506 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
507 for DeviceTestGetCurrentMacAddressResponse
508 {
509 #[inline(always)]
510 fn new_empty() -> Self {
511 Self { address: fidl::new_empty!(fidl_fuchsia_lowpan__common::MacAddress, D) }
512 }
513
514 #[inline]
515 unsafe fn decode(
516 &mut self,
517 decoder: &mut fidl::encoding::Decoder<'_, D>,
518 offset: usize,
519 _depth: fidl::encoding::Depth,
520 ) -> fidl::Result<()> {
521 decoder.debug_check_bounds::<Self>(offset);
522 fidl::decode!(
524 fidl_fuchsia_lowpan__common::MacAddress,
525 D,
526 &mut self.address,
527 decoder,
528 offset + 0,
529 _depth
530 )?;
531 Ok(())
532 }
533 }
534
535 impl fidl::encoding::ValueTypeMarker for DeviceTestGetCurrentRssiResponse {
536 type Borrowed<'a> = &'a Self;
537 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
538 value
539 }
540 }
541
542 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetCurrentRssiResponse {
543 type Owned = Self;
544
545 #[inline(always)]
546 fn inline_align(_context: fidl::encoding::Context) -> usize {
547 1
548 }
549
550 #[inline(always)]
551 fn inline_size(_context: fidl::encoding::Context) -> usize {
552 1
553 }
554 #[inline(always)]
555 fn encode_is_copy() -> bool {
556 true
557 }
558
559 #[inline(always)]
560 fn decode_is_copy() -> bool {
561 true
562 }
563 }
564
565 unsafe impl<D: fidl::encoding::ResourceDialect>
566 fidl::encoding::Encode<DeviceTestGetCurrentRssiResponse, D>
567 for &DeviceTestGetCurrentRssiResponse
568 {
569 #[inline]
570 unsafe fn encode(
571 self,
572 encoder: &mut fidl::encoding::Encoder<'_, D>,
573 offset: usize,
574 _depth: fidl::encoding::Depth,
575 ) -> fidl::Result<()> {
576 encoder.debug_check_bounds::<DeviceTestGetCurrentRssiResponse>(offset);
577 unsafe {
578 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
580 (buf_ptr as *mut DeviceTestGetCurrentRssiResponse)
581 .write_unaligned((self as *const DeviceTestGetCurrentRssiResponse).read());
582 }
585 Ok(())
586 }
587 }
588 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i8, D>>
589 fidl::encoding::Encode<DeviceTestGetCurrentRssiResponse, D> for (T0,)
590 {
591 #[inline]
592 unsafe fn encode(
593 self,
594 encoder: &mut fidl::encoding::Encoder<'_, D>,
595 offset: usize,
596 depth: fidl::encoding::Depth,
597 ) -> fidl::Result<()> {
598 encoder.debug_check_bounds::<DeviceTestGetCurrentRssiResponse>(offset);
599 self.0.encode(encoder, offset + 0, depth)?;
603 Ok(())
604 }
605 }
606
607 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
608 for DeviceTestGetCurrentRssiResponse
609 {
610 #[inline(always)]
611 fn new_empty() -> Self {
612 Self { rssi: fidl::new_empty!(i8, D) }
613 }
614
615 #[inline]
616 unsafe fn decode(
617 &mut self,
618 decoder: &mut fidl::encoding::Decoder<'_, D>,
619 offset: usize,
620 _depth: fidl::encoding::Depth,
621 ) -> fidl::Result<()> {
622 decoder.debug_check_bounds::<Self>(offset);
623 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
624 unsafe {
627 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
628 }
629 Ok(())
630 }
631 }
632
633 impl fidl::encoding::ValueTypeMarker for DeviceTestGetFactoryMacAddressResponse {
634 type Borrowed<'a> = &'a Self;
635 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
636 value
637 }
638 }
639
640 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetFactoryMacAddressResponse {
641 type Owned = Self;
642
643 #[inline(always)]
644 fn inline_align(_context: fidl::encoding::Context) -> usize {
645 1
646 }
647
648 #[inline(always)]
649 fn inline_size(_context: fidl::encoding::Context) -> usize {
650 8
651 }
652 }
653
654 unsafe impl<D: fidl::encoding::ResourceDialect>
655 fidl::encoding::Encode<DeviceTestGetFactoryMacAddressResponse, D>
656 for &DeviceTestGetFactoryMacAddressResponse
657 {
658 #[inline]
659 unsafe fn encode(
660 self,
661 encoder: &mut fidl::encoding::Encoder<'_, D>,
662 offset: usize,
663 _depth: fidl::encoding::Depth,
664 ) -> fidl::Result<()> {
665 encoder.debug_check_bounds::<DeviceTestGetFactoryMacAddressResponse>(offset);
666 fidl::encoding::Encode::<DeviceTestGetFactoryMacAddressResponse, D>::encode(
668 (
669 <fidl_fuchsia_lowpan__common::MacAddress as fidl::encoding::ValueTypeMarker>::borrow(&self.address),
670 ),
671 encoder, offset, _depth
672 )
673 }
674 }
675 unsafe impl<
676 D: fidl::encoding::ResourceDialect,
677 T0: fidl::encoding::Encode<fidl_fuchsia_lowpan__common::MacAddress, D>,
678 > fidl::encoding::Encode<DeviceTestGetFactoryMacAddressResponse, D> for (T0,)
679 {
680 #[inline]
681 unsafe fn encode(
682 self,
683 encoder: &mut fidl::encoding::Encoder<'_, D>,
684 offset: usize,
685 depth: fidl::encoding::Depth,
686 ) -> fidl::Result<()> {
687 encoder.debug_check_bounds::<DeviceTestGetFactoryMacAddressResponse>(offset);
688 self.0.encode(encoder, offset + 0, depth)?;
692 Ok(())
693 }
694 }
695
696 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
697 for DeviceTestGetFactoryMacAddressResponse
698 {
699 #[inline(always)]
700 fn new_empty() -> Self {
701 Self { address: fidl::new_empty!(fidl_fuchsia_lowpan__common::MacAddress, D) }
702 }
703
704 #[inline]
705 unsafe fn decode(
706 &mut self,
707 decoder: &mut fidl::encoding::Decoder<'_, D>,
708 offset: usize,
709 _depth: fidl::encoding::Depth,
710 ) -> fidl::Result<()> {
711 decoder.debug_check_bounds::<Self>(offset);
712 fidl::decode!(
714 fidl_fuchsia_lowpan__common::MacAddress,
715 D,
716 &mut self.address,
717 decoder,
718 offset + 0,
719 _depth
720 )?;
721 Ok(())
722 }
723 }
724
725 impl fidl::encoding::ValueTypeMarker for DeviceTestGetMacAddressFilterSettingsResponse {
726 type Borrowed<'a> = &'a Self;
727 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
728 value
729 }
730 }
731
732 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetMacAddressFilterSettingsResponse {
733 type Owned = Self;
734
735 #[inline(always)]
736 fn inline_align(_context: fidl::encoding::Context) -> usize {
737 8
738 }
739
740 #[inline(always)]
741 fn inline_size(_context: fidl::encoding::Context) -> usize {
742 16
743 }
744 }
745
746 unsafe impl<D: fidl::encoding::ResourceDialect>
747 fidl::encoding::Encode<DeviceTestGetMacAddressFilterSettingsResponse, D>
748 for &DeviceTestGetMacAddressFilterSettingsResponse
749 {
750 #[inline]
751 unsafe fn encode(
752 self,
753 encoder: &mut fidl::encoding::Encoder<'_, D>,
754 offset: usize,
755 _depth: fidl::encoding::Depth,
756 ) -> fidl::Result<()> {
757 encoder.debug_check_bounds::<DeviceTestGetMacAddressFilterSettingsResponse>(offset);
758 fidl::encoding::Encode::<DeviceTestGetMacAddressFilterSettingsResponse, D>::encode(
760 (<MacAddressFilterSettings as fidl::encoding::ValueTypeMarker>::borrow(
761 &self.settings,
762 ),),
763 encoder,
764 offset,
765 _depth,
766 )
767 }
768 }
769 unsafe impl<
770 D: fidl::encoding::ResourceDialect,
771 T0: fidl::encoding::Encode<MacAddressFilterSettings, D>,
772 > fidl::encoding::Encode<DeviceTestGetMacAddressFilterSettingsResponse, D> for (T0,)
773 {
774 #[inline]
775 unsafe fn encode(
776 self,
777 encoder: &mut fidl::encoding::Encoder<'_, D>,
778 offset: usize,
779 depth: fidl::encoding::Depth,
780 ) -> fidl::Result<()> {
781 encoder.debug_check_bounds::<DeviceTestGetMacAddressFilterSettingsResponse>(offset);
782 self.0.encode(encoder, offset + 0, depth)?;
786 Ok(())
787 }
788 }
789
790 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
791 for DeviceTestGetMacAddressFilterSettingsResponse
792 {
793 #[inline(always)]
794 fn new_empty() -> Self {
795 Self { settings: fidl::new_empty!(MacAddressFilterSettings, D) }
796 }
797
798 #[inline]
799 unsafe fn decode(
800 &mut self,
801 decoder: &mut fidl::encoding::Decoder<'_, D>,
802 offset: usize,
803 _depth: fidl::encoding::Depth,
804 ) -> fidl::Result<()> {
805 decoder.debug_check_bounds::<Self>(offset);
806 fidl::decode!(
808 MacAddressFilterSettings,
809 D,
810 &mut self.settings,
811 decoder,
812 offset + 0,
813 _depth
814 )?;
815 Ok(())
816 }
817 }
818
819 impl fidl::encoding::ValueTypeMarker for DeviceTestGetNcpVersionResponse {
820 type Borrowed<'a> = &'a Self;
821 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
822 value
823 }
824 }
825
826 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetNcpVersionResponse {
827 type Owned = Self;
828
829 #[inline(always)]
830 fn inline_align(_context: fidl::encoding::Context) -> usize {
831 8
832 }
833
834 #[inline(always)]
835 fn inline_size(_context: fidl::encoding::Context) -> usize {
836 16
837 }
838 }
839
840 unsafe impl<D: fidl::encoding::ResourceDialect>
841 fidl::encoding::Encode<DeviceTestGetNcpVersionResponse, D>
842 for &DeviceTestGetNcpVersionResponse
843 {
844 #[inline]
845 unsafe fn encode(
846 self,
847 encoder: &mut fidl::encoding::Encoder<'_, D>,
848 offset: usize,
849 _depth: fidl::encoding::Depth,
850 ) -> fidl::Result<()> {
851 encoder.debug_check_bounds::<DeviceTestGetNcpVersionResponse>(offset);
852 fidl::encoding::Encode::<DeviceTestGetNcpVersionResponse, D>::encode(
854 (<fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
855 &self.version,
856 ),),
857 encoder,
858 offset,
859 _depth,
860 )
861 }
862 }
863 unsafe impl<
864 D: fidl::encoding::ResourceDialect,
865 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
866 > fidl::encoding::Encode<DeviceTestGetNcpVersionResponse, D> for (T0,)
867 {
868 #[inline]
869 unsafe fn encode(
870 self,
871 encoder: &mut fidl::encoding::Encoder<'_, D>,
872 offset: usize,
873 depth: fidl::encoding::Depth,
874 ) -> fidl::Result<()> {
875 encoder.debug_check_bounds::<DeviceTestGetNcpVersionResponse>(offset);
876 self.0.encode(encoder, offset + 0, depth)?;
880 Ok(())
881 }
882 }
883
884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
885 for DeviceTestGetNcpVersionResponse
886 {
887 #[inline(always)]
888 fn new_empty() -> Self {
889 Self { version: fidl::new_empty!(fidl::encoding::BoundedString<256>, D) }
890 }
891
892 #[inline]
893 unsafe fn decode(
894 &mut self,
895 decoder: &mut fidl::encoding::Decoder<'_, D>,
896 offset: usize,
897 _depth: fidl::encoding::Depth,
898 ) -> fidl::Result<()> {
899 decoder.debug_check_bounds::<Self>(offset);
900 fidl::decode!(
902 fidl::encoding::BoundedString<256>,
903 D,
904 &mut self.version,
905 decoder,
906 offset + 0,
907 _depth
908 )?;
909 Ok(())
910 }
911 }
912
913 impl fidl::encoding::ValueTypeMarker for DeviceTestGetNeighborTableResponse {
914 type Borrowed<'a> = &'a Self;
915 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
916 value
917 }
918 }
919
920 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetNeighborTableResponse {
921 type Owned = Self;
922
923 #[inline(always)]
924 fn inline_align(_context: fidl::encoding::Context) -> usize {
925 8
926 }
927
928 #[inline(always)]
929 fn inline_size(_context: fidl::encoding::Context) -> usize {
930 16
931 }
932 }
933
934 unsafe impl<D: fidl::encoding::ResourceDialect>
935 fidl::encoding::Encode<DeviceTestGetNeighborTableResponse, D>
936 for &DeviceTestGetNeighborTableResponse
937 {
938 #[inline]
939 unsafe fn encode(
940 self,
941 encoder: &mut fidl::encoding::Encoder<'_, D>,
942 offset: usize,
943 _depth: fidl::encoding::Depth,
944 ) -> fidl::Result<()> {
945 encoder.debug_check_bounds::<DeviceTestGetNeighborTableResponse>(offset);
946 fidl::encoding::Encode::<DeviceTestGetNeighborTableResponse, D>::encode(
948 (
949 <fidl::encoding::Vector<NeighborInfo, 1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.neighbor_table),
950 ),
951 encoder, offset, _depth
952 )
953 }
954 }
955 unsafe impl<
956 D: fidl::encoding::ResourceDialect,
957 T0: fidl::encoding::Encode<fidl::encoding::Vector<NeighborInfo, 1024>, D>,
958 > fidl::encoding::Encode<DeviceTestGetNeighborTableResponse, D> for (T0,)
959 {
960 #[inline]
961 unsafe fn encode(
962 self,
963 encoder: &mut fidl::encoding::Encoder<'_, D>,
964 offset: usize,
965 depth: fidl::encoding::Depth,
966 ) -> fidl::Result<()> {
967 encoder.debug_check_bounds::<DeviceTestGetNeighborTableResponse>(offset);
968 self.0.encode(encoder, offset + 0, depth)?;
972 Ok(())
973 }
974 }
975
976 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
977 for DeviceTestGetNeighborTableResponse
978 {
979 #[inline(always)]
980 fn new_empty() -> Self {
981 Self { neighbor_table: fidl::new_empty!(fidl::encoding::Vector<NeighborInfo, 1024>, D) }
982 }
983
984 #[inline]
985 unsafe fn decode(
986 &mut self,
987 decoder: &mut fidl::encoding::Decoder<'_, D>,
988 offset: usize,
989 _depth: fidl::encoding::Depth,
990 ) -> fidl::Result<()> {
991 decoder.debug_check_bounds::<Self>(offset);
992 fidl::decode!(fidl::encoding::Vector<NeighborInfo, 1024>, D, &mut self.neighbor_table, decoder, offset + 0, _depth)?;
994 Ok(())
995 }
996 }
997
998 impl fidl::encoding::ValueTypeMarker for DeviceTestGetPartitionIdResponse {
999 type Borrowed<'a> = &'a Self;
1000 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1001 value
1002 }
1003 }
1004
1005 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetPartitionIdResponse {
1006 type Owned = Self;
1007
1008 #[inline(always)]
1009 fn inline_align(_context: fidl::encoding::Context) -> usize {
1010 4
1011 }
1012
1013 #[inline(always)]
1014 fn inline_size(_context: fidl::encoding::Context) -> usize {
1015 4
1016 }
1017 #[inline(always)]
1018 fn encode_is_copy() -> bool {
1019 true
1020 }
1021
1022 #[inline(always)]
1023 fn decode_is_copy() -> bool {
1024 true
1025 }
1026 }
1027
1028 unsafe impl<D: fidl::encoding::ResourceDialect>
1029 fidl::encoding::Encode<DeviceTestGetPartitionIdResponse, D>
1030 for &DeviceTestGetPartitionIdResponse
1031 {
1032 #[inline]
1033 unsafe fn encode(
1034 self,
1035 encoder: &mut fidl::encoding::Encoder<'_, D>,
1036 offset: usize,
1037 _depth: fidl::encoding::Depth,
1038 ) -> fidl::Result<()> {
1039 encoder.debug_check_bounds::<DeviceTestGetPartitionIdResponse>(offset);
1040 unsafe {
1041 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1043 (buf_ptr as *mut DeviceTestGetPartitionIdResponse)
1044 .write_unaligned((self as *const DeviceTestGetPartitionIdResponse).read());
1045 }
1048 Ok(())
1049 }
1050 }
1051 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1052 fidl::encoding::Encode<DeviceTestGetPartitionIdResponse, D> for (T0,)
1053 {
1054 #[inline]
1055 unsafe fn encode(
1056 self,
1057 encoder: &mut fidl::encoding::Encoder<'_, D>,
1058 offset: usize,
1059 depth: fidl::encoding::Depth,
1060 ) -> fidl::Result<()> {
1061 encoder.debug_check_bounds::<DeviceTestGetPartitionIdResponse>(offset);
1062 self.0.encode(encoder, offset + 0, depth)?;
1066 Ok(())
1067 }
1068 }
1069
1070 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1071 for DeviceTestGetPartitionIdResponse
1072 {
1073 #[inline(always)]
1074 fn new_empty() -> Self {
1075 Self { pid: fidl::new_empty!(u32, D) }
1076 }
1077
1078 #[inline]
1079 unsafe fn decode(
1080 &mut self,
1081 decoder: &mut fidl::encoding::Decoder<'_, D>,
1082 offset: usize,
1083 _depth: fidl::encoding::Depth,
1084 ) -> fidl::Result<()> {
1085 decoder.debug_check_bounds::<Self>(offset);
1086 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1087 unsafe {
1090 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1091 }
1092 Ok(())
1093 }
1094 }
1095
1096 impl fidl::encoding::ValueTypeMarker for DeviceTestGetThreadRloc16Response {
1097 type Borrowed<'a> = &'a Self;
1098 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1099 value
1100 }
1101 }
1102
1103 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetThreadRloc16Response {
1104 type Owned = Self;
1105
1106 #[inline(always)]
1107 fn inline_align(_context: fidl::encoding::Context) -> usize {
1108 2
1109 }
1110
1111 #[inline(always)]
1112 fn inline_size(_context: fidl::encoding::Context) -> usize {
1113 2
1114 }
1115 #[inline(always)]
1116 fn encode_is_copy() -> bool {
1117 true
1118 }
1119
1120 #[inline(always)]
1121 fn decode_is_copy() -> bool {
1122 true
1123 }
1124 }
1125
1126 unsafe impl<D: fidl::encoding::ResourceDialect>
1127 fidl::encoding::Encode<DeviceTestGetThreadRloc16Response, D>
1128 for &DeviceTestGetThreadRloc16Response
1129 {
1130 #[inline]
1131 unsafe fn encode(
1132 self,
1133 encoder: &mut fidl::encoding::Encoder<'_, D>,
1134 offset: usize,
1135 _depth: fidl::encoding::Depth,
1136 ) -> fidl::Result<()> {
1137 encoder.debug_check_bounds::<DeviceTestGetThreadRloc16Response>(offset);
1138 unsafe {
1139 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1141 (buf_ptr as *mut DeviceTestGetThreadRloc16Response)
1142 .write_unaligned((self as *const DeviceTestGetThreadRloc16Response).read());
1143 }
1146 Ok(())
1147 }
1148 }
1149 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u16, D>>
1150 fidl::encoding::Encode<DeviceTestGetThreadRloc16Response, D> for (T0,)
1151 {
1152 #[inline]
1153 unsafe fn encode(
1154 self,
1155 encoder: &mut fidl::encoding::Encoder<'_, D>,
1156 offset: usize,
1157 depth: fidl::encoding::Depth,
1158 ) -> fidl::Result<()> {
1159 encoder.debug_check_bounds::<DeviceTestGetThreadRloc16Response>(offset);
1160 self.0.encode(encoder, offset + 0, depth)?;
1164 Ok(())
1165 }
1166 }
1167
1168 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1169 for DeviceTestGetThreadRloc16Response
1170 {
1171 #[inline(always)]
1172 fn new_empty() -> Self {
1173 Self { rloc: fidl::new_empty!(u16, D) }
1174 }
1175
1176 #[inline]
1177 unsafe fn decode(
1178 &mut self,
1179 decoder: &mut fidl::encoding::Decoder<'_, D>,
1180 offset: usize,
1181 _depth: fidl::encoding::Depth,
1182 ) -> fidl::Result<()> {
1183 decoder.debug_check_bounds::<Self>(offset);
1184 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1185 unsafe {
1188 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
1189 }
1190 Ok(())
1191 }
1192 }
1193
1194 impl fidl::encoding::ValueTypeMarker for DeviceTestGetThreadRouterIdResponse {
1195 type Borrowed<'a> = &'a Self;
1196 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1197 value
1198 }
1199 }
1200
1201 unsafe impl fidl::encoding::TypeMarker for DeviceTestGetThreadRouterIdResponse {
1202 type Owned = Self;
1203
1204 #[inline(always)]
1205 fn inline_align(_context: fidl::encoding::Context) -> usize {
1206 1
1207 }
1208
1209 #[inline(always)]
1210 fn inline_size(_context: fidl::encoding::Context) -> usize {
1211 1
1212 }
1213 #[inline(always)]
1214 fn encode_is_copy() -> bool {
1215 true
1216 }
1217
1218 #[inline(always)]
1219 fn decode_is_copy() -> bool {
1220 true
1221 }
1222 }
1223
1224 unsafe impl<D: fidl::encoding::ResourceDialect>
1225 fidl::encoding::Encode<DeviceTestGetThreadRouterIdResponse, D>
1226 for &DeviceTestGetThreadRouterIdResponse
1227 {
1228 #[inline]
1229 unsafe fn encode(
1230 self,
1231 encoder: &mut fidl::encoding::Encoder<'_, D>,
1232 offset: usize,
1233 _depth: fidl::encoding::Depth,
1234 ) -> fidl::Result<()> {
1235 encoder.debug_check_bounds::<DeviceTestGetThreadRouterIdResponse>(offset);
1236 unsafe {
1237 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1239 (buf_ptr as *mut DeviceTestGetThreadRouterIdResponse)
1240 .write_unaligned((self as *const DeviceTestGetThreadRouterIdResponse).read());
1241 }
1244 Ok(())
1245 }
1246 }
1247 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
1248 fidl::encoding::Encode<DeviceTestGetThreadRouterIdResponse, D> for (T0,)
1249 {
1250 #[inline]
1251 unsafe fn encode(
1252 self,
1253 encoder: &mut fidl::encoding::Encoder<'_, D>,
1254 offset: usize,
1255 depth: fidl::encoding::Depth,
1256 ) -> fidl::Result<()> {
1257 encoder.debug_check_bounds::<DeviceTestGetThreadRouterIdResponse>(offset);
1258 self.0.encode(encoder, offset + 0, depth)?;
1262 Ok(())
1263 }
1264 }
1265
1266 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1267 for DeviceTestGetThreadRouterIdResponse
1268 {
1269 #[inline(always)]
1270 fn new_empty() -> Self {
1271 Self { router_id: fidl::new_empty!(u8, D) }
1272 }
1273
1274 #[inline]
1275 unsafe fn decode(
1276 &mut self,
1277 decoder: &mut fidl::encoding::Decoder<'_, D>,
1278 offset: usize,
1279 _depth: fidl::encoding::Depth,
1280 ) -> fidl::Result<()> {
1281 decoder.debug_check_bounds::<Self>(offset);
1282 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1283 unsafe {
1286 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1287 }
1288 Ok(())
1289 }
1290 }
1291
1292 impl fidl::encoding::ValueTypeMarker for DeviceTestReplaceMacAddressFilterSettingsRequest {
1293 type Borrowed<'a> = &'a Self;
1294 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1295 value
1296 }
1297 }
1298
1299 unsafe impl fidl::encoding::TypeMarker for DeviceTestReplaceMacAddressFilterSettingsRequest {
1300 type Owned = Self;
1301
1302 #[inline(always)]
1303 fn inline_align(_context: fidl::encoding::Context) -> usize {
1304 8
1305 }
1306
1307 #[inline(always)]
1308 fn inline_size(_context: fidl::encoding::Context) -> usize {
1309 16
1310 }
1311 }
1312
1313 unsafe impl<D: fidl::encoding::ResourceDialect>
1314 fidl::encoding::Encode<DeviceTestReplaceMacAddressFilterSettingsRequest, D>
1315 for &DeviceTestReplaceMacAddressFilterSettingsRequest
1316 {
1317 #[inline]
1318 unsafe fn encode(
1319 self,
1320 encoder: &mut fidl::encoding::Encoder<'_, D>,
1321 offset: usize,
1322 _depth: fidl::encoding::Depth,
1323 ) -> fidl::Result<()> {
1324 encoder.debug_check_bounds::<DeviceTestReplaceMacAddressFilterSettingsRequest>(offset);
1325 fidl::encoding::Encode::<DeviceTestReplaceMacAddressFilterSettingsRequest, D>::encode(
1327 (<MacAddressFilterSettings as fidl::encoding::ValueTypeMarker>::borrow(
1328 &self.settings,
1329 ),),
1330 encoder,
1331 offset,
1332 _depth,
1333 )
1334 }
1335 }
1336 unsafe impl<
1337 D: fidl::encoding::ResourceDialect,
1338 T0: fidl::encoding::Encode<MacAddressFilterSettings, D>,
1339 > fidl::encoding::Encode<DeviceTestReplaceMacAddressFilterSettingsRequest, D> for (T0,)
1340 {
1341 #[inline]
1342 unsafe fn encode(
1343 self,
1344 encoder: &mut fidl::encoding::Encoder<'_, D>,
1345 offset: usize,
1346 depth: fidl::encoding::Depth,
1347 ) -> fidl::Result<()> {
1348 encoder.debug_check_bounds::<DeviceTestReplaceMacAddressFilterSettingsRequest>(offset);
1349 self.0.encode(encoder, offset + 0, depth)?;
1353 Ok(())
1354 }
1355 }
1356
1357 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1358 for DeviceTestReplaceMacAddressFilterSettingsRequest
1359 {
1360 #[inline(always)]
1361 fn new_empty() -> Self {
1362 Self { settings: fidl::new_empty!(MacAddressFilterSettings, D) }
1363 }
1364
1365 #[inline]
1366 unsafe fn decode(
1367 &mut self,
1368 decoder: &mut fidl::encoding::Decoder<'_, D>,
1369 offset: usize,
1370 _depth: fidl::encoding::Depth,
1371 ) -> fidl::Result<()> {
1372 decoder.debug_check_bounds::<Self>(offset);
1373 fidl::decode!(
1375 MacAddressFilterSettings,
1376 D,
1377 &mut self.settings,
1378 decoder,
1379 offset + 0,
1380 _depth
1381 )?;
1382 Ok(())
1383 }
1384 }
1385
1386 impl MacAddressFilterItem {
1387 #[inline(always)]
1388 fn max_ordinal_present(&self) -> u64 {
1389 if let Some(_) = self.rssi {
1390 return 2;
1391 }
1392 if let Some(_) = self.mac_address {
1393 return 1;
1394 }
1395 0
1396 }
1397 }
1398
1399 impl fidl::encoding::ValueTypeMarker for MacAddressFilterItem {
1400 type Borrowed<'a> = &'a Self;
1401 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1402 value
1403 }
1404 }
1405
1406 unsafe impl fidl::encoding::TypeMarker for MacAddressFilterItem {
1407 type Owned = Self;
1408
1409 #[inline(always)]
1410 fn inline_align(_context: fidl::encoding::Context) -> usize {
1411 8
1412 }
1413
1414 #[inline(always)]
1415 fn inline_size(_context: fidl::encoding::Context) -> usize {
1416 16
1417 }
1418 }
1419
1420 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MacAddressFilterItem, D>
1421 for &MacAddressFilterItem
1422 {
1423 unsafe fn encode(
1424 self,
1425 encoder: &mut fidl::encoding::Encoder<'_, D>,
1426 offset: usize,
1427 mut depth: fidl::encoding::Depth,
1428 ) -> fidl::Result<()> {
1429 encoder.debug_check_bounds::<MacAddressFilterItem>(offset);
1430 let max_ordinal: u64 = self.max_ordinal_present();
1432 encoder.write_num(max_ordinal, offset);
1433 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1434 if max_ordinal == 0 {
1436 return Ok(());
1437 }
1438 depth.increment()?;
1439 let envelope_size = 8;
1440 let bytes_len = max_ordinal as usize * envelope_size;
1441 #[allow(unused_variables)]
1442 let offset = encoder.out_of_line_offset(bytes_len);
1443 let mut _prev_end_offset: usize = 0;
1444 if 1 > max_ordinal {
1445 return Ok(());
1446 }
1447
1448 let cur_offset: usize = (1 - 1) * envelope_size;
1451
1452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1454
1455 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_lowpan__common::MacAddress, D>(
1460 self.mac_address.as_ref().map(<fidl_fuchsia_lowpan__common::MacAddress as fidl::encoding::ValueTypeMarker>::borrow),
1461 encoder, offset + cur_offset, depth
1462 )?;
1463
1464 _prev_end_offset = cur_offset + envelope_size;
1465 if 2 > max_ordinal {
1466 return Ok(());
1467 }
1468
1469 let cur_offset: usize = (2 - 1) * envelope_size;
1472
1473 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1475
1476 fidl::encoding::encode_in_envelope_optional::<i8, D>(
1481 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
1482 encoder,
1483 offset + cur_offset,
1484 depth,
1485 )?;
1486
1487 _prev_end_offset = cur_offset + envelope_size;
1488
1489 Ok(())
1490 }
1491 }
1492
1493 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MacAddressFilterItem {
1494 #[inline(always)]
1495 fn new_empty() -> Self {
1496 Self::default()
1497 }
1498
1499 unsafe fn decode(
1500 &mut self,
1501 decoder: &mut fidl::encoding::Decoder<'_, D>,
1502 offset: usize,
1503 mut depth: fidl::encoding::Depth,
1504 ) -> fidl::Result<()> {
1505 decoder.debug_check_bounds::<Self>(offset);
1506 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1507 None => return Err(fidl::Error::NotNullable),
1508 Some(len) => len,
1509 };
1510 if len == 0 {
1512 return Ok(());
1513 };
1514 depth.increment()?;
1515 let envelope_size = 8;
1516 let bytes_len = len * envelope_size;
1517 let offset = decoder.out_of_line_offset(bytes_len)?;
1518 let mut _next_ordinal_to_read = 0;
1520 let mut next_offset = offset;
1521 let end_offset = offset + bytes_len;
1522 _next_ordinal_to_read += 1;
1523 if next_offset >= end_offset {
1524 return Ok(());
1525 }
1526
1527 while _next_ordinal_to_read < 1 {
1529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1530 _next_ordinal_to_read += 1;
1531 next_offset += envelope_size;
1532 }
1533
1534 let next_out_of_line = decoder.next_out_of_line();
1535 let handles_before = decoder.remaining_handles();
1536 if let Some((inlined, num_bytes, num_handles)) =
1537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1538 {
1539 let member_inline_size = <fidl_fuchsia_lowpan__common::MacAddress as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1540 if inlined != (member_inline_size <= 4) {
1541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1542 }
1543 let inner_offset;
1544 let mut inner_depth = depth.clone();
1545 if inlined {
1546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1547 inner_offset = next_offset;
1548 } else {
1549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1550 inner_depth.increment()?;
1551 }
1552 let val_ref = self.mac_address.get_or_insert_with(|| {
1553 fidl::new_empty!(fidl_fuchsia_lowpan__common::MacAddress, D)
1554 });
1555 fidl::decode!(
1556 fidl_fuchsia_lowpan__common::MacAddress,
1557 D,
1558 val_ref,
1559 decoder,
1560 inner_offset,
1561 inner_depth
1562 )?;
1563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1564 {
1565 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1566 }
1567 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1568 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1569 }
1570 }
1571
1572 next_offset += envelope_size;
1573 _next_ordinal_to_read += 1;
1574 if next_offset >= end_offset {
1575 return Ok(());
1576 }
1577
1578 while _next_ordinal_to_read < 2 {
1580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1581 _next_ordinal_to_read += 1;
1582 next_offset += envelope_size;
1583 }
1584
1585 let next_out_of_line = decoder.next_out_of_line();
1586 let handles_before = decoder.remaining_handles();
1587 if let Some((inlined, num_bytes, num_handles)) =
1588 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1589 {
1590 let member_inline_size =
1591 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1592 if inlined != (member_inline_size <= 4) {
1593 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1594 }
1595 let inner_offset;
1596 let mut inner_depth = depth.clone();
1597 if inlined {
1598 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1599 inner_offset = next_offset;
1600 } else {
1601 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1602 inner_depth.increment()?;
1603 }
1604 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
1605 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
1606 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1607 {
1608 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1609 }
1610 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1611 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1612 }
1613 }
1614
1615 next_offset += envelope_size;
1616
1617 while next_offset < end_offset {
1619 _next_ordinal_to_read += 1;
1620 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1621 next_offset += envelope_size;
1622 }
1623
1624 Ok(())
1625 }
1626 }
1627
1628 impl MacAddressFilterSettings {
1629 #[inline(always)]
1630 fn max_ordinal_present(&self) -> u64 {
1631 if let Some(_) = self.items {
1632 return 2;
1633 }
1634 if let Some(_) = self.mode {
1635 return 1;
1636 }
1637 0
1638 }
1639 }
1640
1641 impl fidl::encoding::ValueTypeMarker for MacAddressFilterSettings {
1642 type Borrowed<'a> = &'a Self;
1643 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1644 value
1645 }
1646 }
1647
1648 unsafe impl fidl::encoding::TypeMarker for MacAddressFilterSettings {
1649 type Owned = Self;
1650
1651 #[inline(always)]
1652 fn inline_align(_context: fidl::encoding::Context) -> usize {
1653 8
1654 }
1655
1656 #[inline(always)]
1657 fn inline_size(_context: fidl::encoding::Context) -> usize {
1658 16
1659 }
1660 }
1661
1662 unsafe impl<D: fidl::encoding::ResourceDialect>
1663 fidl::encoding::Encode<MacAddressFilterSettings, D> for &MacAddressFilterSettings
1664 {
1665 unsafe fn encode(
1666 self,
1667 encoder: &mut fidl::encoding::Encoder<'_, D>,
1668 offset: usize,
1669 mut depth: fidl::encoding::Depth,
1670 ) -> fidl::Result<()> {
1671 encoder.debug_check_bounds::<MacAddressFilterSettings>(offset);
1672 let max_ordinal: u64 = self.max_ordinal_present();
1674 encoder.write_num(max_ordinal, offset);
1675 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1676 if max_ordinal == 0 {
1678 return Ok(());
1679 }
1680 depth.increment()?;
1681 let envelope_size = 8;
1682 let bytes_len = max_ordinal as usize * envelope_size;
1683 #[allow(unused_variables)]
1684 let offset = encoder.out_of_line_offset(bytes_len);
1685 let mut _prev_end_offset: usize = 0;
1686 if 1 > max_ordinal {
1687 return Ok(());
1688 }
1689
1690 let cur_offset: usize = (1 - 1) * envelope_size;
1693
1694 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1696
1697 fidl::encoding::encode_in_envelope_optional::<MacAddressFilterMode, D>(
1702 self.mode
1703 .as_ref()
1704 .map(<MacAddressFilterMode as fidl::encoding::ValueTypeMarker>::borrow),
1705 encoder,
1706 offset + cur_offset,
1707 depth,
1708 )?;
1709
1710 _prev_end_offset = cur_offset + envelope_size;
1711 if 2 > max_ordinal {
1712 return Ok(());
1713 }
1714
1715 let cur_offset: usize = (2 - 1) * envelope_size;
1718
1719 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1721
1722 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<MacAddressFilterItem, 100>, D>(
1727 self.items.as_ref().map(<fidl::encoding::Vector<MacAddressFilterItem, 100> as fidl::encoding::ValueTypeMarker>::borrow),
1728 encoder, offset + cur_offset, depth
1729 )?;
1730
1731 _prev_end_offset = cur_offset + envelope_size;
1732
1733 Ok(())
1734 }
1735 }
1736
1737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1738 for MacAddressFilterSettings
1739 {
1740 #[inline(always)]
1741 fn new_empty() -> Self {
1742 Self::default()
1743 }
1744
1745 unsafe fn decode(
1746 &mut self,
1747 decoder: &mut fidl::encoding::Decoder<'_, D>,
1748 offset: usize,
1749 mut depth: fidl::encoding::Depth,
1750 ) -> fidl::Result<()> {
1751 decoder.debug_check_bounds::<Self>(offset);
1752 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1753 None => return Err(fidl::Error::NotNullable),
1754 Some(len) => len,
1755 };
1756 if len == 0 {
1758 return Ok(());
1759 };
1760 depth.increment()?;
1761 let envelope_size = 8;
1762 let bytes_len = len * envelope_size;
1763 let offset = decoder.out_of_line_offset(bytes_len)?;
1764 let mut _next_ordinal_to_read = 0;
1766 let mut next_offset = offset;
1767 let end_offset = offset + bytes_len;
1768 _next_ordinal_to_read += 1;
1769 if next_offset >= end_offset {
1770 return Ok(());
1771 }
1772
1773 while _next_ordinal_to_read < 1 {
1775 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1776 _next_ordinal_to_read += 1;
1777 next_offset += envelope_size;
1778 }
1779
1780 let next_out_of_line = decoder.next_out_of_line();
1781 let handles_before = decoder.remaining_handles();
1782 if let Some((inlined, num_bytes, num_handles)) =
1783 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1784 {
1785 let member_inline_size =
1786 <MacAddressFilterMode as fidl::encoding::TypeMarker>::inline_size(
1787 decoder.context,
1788 );
1789 if inlined != (member_inline_size <= 4) {
1790 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1791 }
1792 let inner_offset;
1793 let mut inner_depth = depth.clone();
1794 if inlined {
1795 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1796 inner_offset = next_offset;
1797 } else {
1798 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1799 inner_depth.increment()?;
1800 }
1801 let val_ref =
1802 self.mode.get_or_insert_with(|| fidl::new_empty!(MacAddressFilterMode, D));
1803 fidl::decode!(
1804 MacAddressFilterMode,
1805 D,
1806 val_ref,
1807 decoder,
1808 inner_offset,
1809 inner_depth
1810 )?;
1811 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1812 {
1813 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1814 }
1815 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1816 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1817 }
1818 }
1819
1820 next_offset += envelope_size;
1821 _next_ordinal_to_read += 1;
1822 if next_offset >= end_offset {
1823 return Ok(());
1824 }
1825
1826 while _next_ordinal_to_read < 2 {
1828 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1829 _next_ordinal_to_read += 1;
1830 next_offset += envelope_size;
1831 }
1832
1833 let next_out_of_line = decoder.next_out_of_line();
1834 let handles_before = decoder.remaining_handles();
1835 if let Some((inlined, num_bytes, num_handles)) =
1836 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1837 {
1838 let member_inline_size = <fidl::encoding::Vector<MacAddressFilterItem, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1839 if inlined != (member_inline_size <= 4) {
1840 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1841 }
1842 let inner_offset;
1843 let mut inner_depth = depth.clone();
1844 if inlined {
1845 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1846 inner_offset = next_offset;
1847 } else {
1848 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1849 inner_depth.increment()?;
1850 }
1851 let val_ref = self.items.get_or_insert_with(
1852 || fidl::new_empty!(fidl::encoding::Vector<MacAddressFilterItem, 100>, D),
1853 );
1854 fidl::decode!(fidl::encoding::Vector<MacAddressFilterItem, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
1855 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1856 {
1857 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1858 }
1859 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1860 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1861 }
1862 }
1863
1864 next_offset += envelope_size;
1865
1866 while next_offset < end_offset {
1868 _next_ordinal_to_read += 1;
1869 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1870 next_offset += envelope_size;
1871 }
1872
1873 Ok(())
1874 }
1875 }
1876
1877 impl NeighborInfo {
1878 #[inline(always)]
1879 fn max_ordinal_present(&self) -> u64 {
1880 if let Some(_) = self.conntime {
1881 return 18;
1882 }
1883 if let Some(_) = self.thread_mle_version {
1884 return 17;
1885 }
1886 if let Some(_) = self.queued_messages {
1887 return 16;
1888 }
1889 if let Some(_) = self.net_data_version {
1890 return 15;
1891 }
1892 if let Some(_) = self.child_is_state_restoring {
1893 return 14;
1894 }
1895 if let Some(_) = self.child_is_csl_synced {
1896 return 13;
1897 }
1898 if let Some(_) = self.ipv6_error_rate {
1899 return 12;
1900 }
1901 if let Some(_) = self.frame_error_rate {
1902 return 11;
1903 }
1904 if let Some(_) = self.thread_mode {
1905 return 10;
1906 }
1907 if let Some(_) = self.lqi_in {
1908 return 9;
1909 }
1910 if let Some(_) = self.avg_rssi_in {
1911 return 8;
1912 }
1913 if let Some(_) = self.last_rssi_in {
1914 return 7;
1915 }
1916 if let Some(_) = self.mgmt_frame_count {
1917 return 6;
1918 }
1919 if let Some(_) = self.link_frame_count {
1920 return 5;
1921 }
1922 if let Some(_) = self.is_child {
1923 return 4;
1924 }
1925 if let Some(_) = self.age {
1926 return 3;
1927 }
1928 if let Some(_) = self.short_address {
1929 return 2;
1930 }
1931 if let Some(_) = self.mac_address {
1932 return 1;
1933 }
1934 0
1935 }
1936 }
1937
1938 impl fidl::encoding::ValueTypeMarker for NeighborInfo {
1939 type Borrowed<'a> = &'a Self;
1940 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1941 value
1942 }
1943 }
1944
1945 unsafe impl fidl::encoding::TypeMarker for NeighborInfo {
1946 type Owned = Self;
1947
1948 #[inline(always)]
1949 fn inline_align(_context: fidl::encoding::Context) -> usize {
1950 8
1951 }
1952
1953 #[inline(always)]
1954 fn inline_size(_context: fidl::encoding::Context) -> usize {
1955 16
1956 }
1957 }
1958
1959 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NeighborInfo, D>
1960 for &NeighborInfo
1961 {
1962 unsafe fn encode(
1963 self,
1964 encoder: &mut fidl::encoding::Encoder<'_, D>,
1965 offset: usize,
1966 mut depth: fidl::encoding::Depth,
1967 ) -> fidl::Result<()> {
1968 encoder.debug_check_bounds::<NeighborInfo>(offset);
1969 let max_ordinal: u64 = self.max_ordinal_present();
1971 encoder.write_num(max_ordinal, offset);
1972 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1973 if max_ordinal == 0 {
1975 return Ok(());
1976 }
1977 depth.increment()?;
1978 let envelope_size = 8;
1979 let bytes_len = max_ordinal as usize * envelope_size;
1980 #[allow(unused_variables)]
1981 let offset = encoder.out_of_line_offset(bytes_len);
1982 let mut _prev_end_offset: usize = 0;
1983 if 1 > max_ordinal {
1984 return Ok(());
1985 }
1986
1987 let cur_offset: usize = (1 - 1) * envelope_size;
1990
1991 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1993
1994 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_lowpan__common::MacAddress, D>(
1999 self.mac_address.as_ref().map(<fidl_fuchsia_lowpan__common::MacAddress as fidl::encoding::ValueTypeMarker>::borrow),
2000 encoder, offset + cur_offset, depth
2001 )?;
2002
2003 _prev_end_offset = cur_offset + envelope_size;
2004 if 2 > max_ordinal {
2005 return Ok(());
2006 }
2007
2008 let cur_offset: usize = (2 - 1) * envelope_size;
2011
2012 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2014
2015 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2020 self.short_address.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2021 encoder,
2022 offset + cur_offset,
2023 depth,
2024 )?;
2025
2026 _prev_end_offset = cur_offset + envelope_size;
2027 if 3 > max_ordinal {
2028 return Ok(());
2029 }
2030
2031 let cur_offset: usize = (3 - 1) * envelope_size;
2034
2035 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2037
2038 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2043 self.age.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2044 encoder,
2045 offset + cur_offset,
2046 depth,
2047 )?;
2048
2049 _prev_end_offset = cur_offset + envelope_size;
2050 if 4 > max_ordinal {
2051 return Ok(());
2052 }
2053
2054 let cur_offset: usize = (4 - 1) * envelope_size;
2057
2058 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2060
2061 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2066 self.is_child.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2067 encoder,
2068 offset + cur_offset,
2069 depth,
2070 )?;
2071
2072 _prev_end_offset = cur_offset + envelope_size;
2073 if 5 > max_ordinal {
2074 return Ok(());
2075 }
2076
2077 let cur_offset: usize = (5 - 1) * envelope_size;
2080
2081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2083
2084 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2089 self.link_frame_count
2090 .as_ref()
2091 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2092 encoder,
2093 offset + cur_offset,
2094 depth,
2095 )?;
2096
2097 _prev_end_offset = cur_offset + envelope_size;
2098 if 6 > max_ordinal {
2099 return Ok(());
2100 }
2101
2102 let cur_offset: usize = (6 - 1) * envelope_size;
2105
2106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2108
2109 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2114 self.mgmt_frame_count
2115 .as_ref()
2116 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2117 encoder,
2118 offset + cur_offset,
2119 depth,
2120 )?;
2121
2122 _prev_end_offset = cur_offset + envelope_size;
2123 if 7 > max_ordinal {
2124 return Ok(());
2125 }
2126
2127 let cur_offset: usize = (7 - 1) * envelope_size;
2130
2131 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2133
2134 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2139 self.last_rssi_in.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2140 encoder,
2141 offset + cur_offset,
2142 depth,
2143 )?;
2144
2145 _prev_end_offset = cur_offset + envelope_size;
2146 if 8 > max_ordinal {
2147 return Ok(());
2148 }
2149
2150 let cur_offset: usize = (8 - 1) * envelope_size;
2153
2154 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2156
2157 fidl::encoding::encode_in_envelope_optional::<i8, D>(
2162 self.avg_rssi_in.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
2163 encoder,
2164 offset + cur_offset,
2165 depth,
2166 )?;
2167
2168 _prev_end_offset = cur_offset + envelope_size;
2169 if 9 > max_ordinal {
2170 return Ok(());
2171 }
2172
2173 let cur_offset: usize = (9 - 1) * envelope_size;
2176
2177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2179
2180 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2185 self.lqi_in.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2186 encoder,
2187 offset + cur_offset,
2188 depth,
2189 )?;
2190
2191 _prev_end_offset = cur_offset + envelope_size;
2192 if 10 > max_ordinal {
2193 return Ok(());
2194 }
2195
2196 let cur_offset: usize = (10 - 1) * envelope_size;
2199
2200 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2202
2203 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2208 self.thread_mode.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2209 encoder,
2210 offset + cur_offset,
2211 depth,
2212 )?;
2213
2214 _prev_end_offset = cur_offset + envelope_size;
2215 if 11 > max_ordinal {
2216 return Ok(());
2217 }
2218
2219 let cur_offset: usize = (11 - 1) * envelope_size;
2222
2223 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2225
2226 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2231 self.frame_error_rate
2232 .as_ref()
2233 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2234 encoder,
2235 offset + cur_offset,
2236 depth,
2237 )?;
2238
2239 _prev_end_offset = cur_offset + envelope_size;
2240 if 12 > max_ordinal {
2241 return Ok(());
2242 }
2243
2244 let cur_offset: usize = (12 - 1) * envelope_size;
2247
2248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2250
2251 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2256 self.ipv6_error_rate.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2257 encoder,
2258 offset + cur_offset,
2259 depth,
2260 )?;
2261
2262 _prev_end_offset = cur_offset + envelope_size;
2263 if 13 > max_ordinal {
2264 return Ok(());
2265 }
2266
2267 let cur_offset: usize = (13 - 1) * envelope_size;
2270
2271 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2273
2274 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2279 self.child_is_csl_synced
2280 .as_ref()
2281 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2282 encoder,
2283 offset + cur_offset,
2284 depth,
2285 )?;
2286
2287 _prev_end_offset = cur_offset + envelope_size;
2288 if 14 > max_ordinal {
2289 return Ok(());
2290 }
2291
2292 let cur_offset: usize = (14 - 1) * envelope_size;
2295
2296 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2298
2299 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2304 self.child_is_state_restoring
2305 .as_ref()
2306 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2307 encoder,
2308 offset + cur_offset,
2309 depth,
2310 )?;
2311
2312 _prev_end_offset = cur_offset + envelope_size;
2313 if 15 > max_ordinal {
2314 return Ok(());
2315 }
2316
2317 let cur_offset: usize = (15 - 1) * envelope_size;
2320
2321 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2323
2324 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2329 self.net_data_version.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2330 encoder,
2331 offset + cur_offset,
2332 depth,
2333 )?;
2334
2335 _prev_end_offset = cur_offset + envelope_size;
2336 if 16 > max_ordinal {
2337 return Ok(());
2338 }
2339
2340 let cur_offset: usize = (16 - 1) * envelope_size;
2343
2344 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2346
2347 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2352 self.queued_messages.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2353 encoder,
2354 offset + cur_offset,
2355 depth,
2356 )?;
2357
2358 _prev_end_offset = cur_offset + envelope_size;
2359 if 17 > max_ordinal {
2360 return Ok(());
2361 }
2362
2363 let cur_offset: usize = (17 - 1) * envelope_size;
2366
2367 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2369
2370 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2375 self.thread_mle_version
2376 .as_ref()
2377 .map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2378 encoder,
2379 offset + cur_offset,
2380 depth,
2381 )?;
2382
2383 _prev_end_offset = cur_offset + envelope_size;
2384 if 18 > max_ordinal {
2385 return Ok(());
2386 }
2387
2388 let cur_offset: usize = (18 - 1) * envelope_size;
2391
2392 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2394
2395 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2400 self.conntime.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2401 encoder,
2402 offset + cur_offset,
2403 depth,
2404 )?;
2405
2406 _prev_end_offset = cur_offset + envelope_size;
2407
2408 Ok(())
2409 }
2410 }
2411
2412 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NeighborInfo {
2413 #[inline(always)]
2414 fn new_empty() -> Self {
2415 Self::default()
2416 }
2417
2418 unsafe fn decode(
2419 &mut self,
2420 decoder: &mut fidl::encoding::Decoder<'_, D>,
2421 offset: usize,
2422 mut depth: fidl::encoding::Depth,
2423 ) -> fidl::Result<()> {
2424 decoder.debug_check_bounds::<Self>(offset);
2425 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2426 None => return Err(fidl::Error::NotNullable),
2427 Some(len) => len,
2428 };
2429 if len == 0 {
2431 return Ok(());
2432 };
2433 depth.increment()?;
2434 let envelope_size = 8;
2435 let bytes_len = len * envelope_size;
2436 let offset = decoder.out_of_line_offset(bytes_len)?;
2437 let mut _next_ordinal_to_read = 0;
2439 let mut next_offset = offset;
2440 let end_offset = offset + bytes_len;
2441 _next_ordinal_to_read += 1;
2442 if next_offset >= end_offset {
2443 return Ok(());
2444 }
2445
2446 while _next_ordinal_to_read < 1 {
2448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2449 _next_ordinal_to_read += 1;
2450 next_offset += envelope_size;
2451 }
2452
2453 let next_out_of_line = decoder.next_out_of_line();
2454 let handles_before = decoder.remaining_handles();
2455 if let Some((inlined, num_bytes, num_handles)) =
2456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2457 {
2458 let member_inline_size = <fidl_fuchsia_lowpan__common::MacAddress as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2459 if inlined != (member_inline_size <= 4) {
2460 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2461 }
2462 let inner_offset;
2463 let mut inner_depth = depth.clone();
2464 if inlined {
2465 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2466 inner_offset = next_offset;
2467 } else {
2468 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2469 inner_depth.increment()?;
2470 }
2471 let val_ref = self.mac_address.get_or_insert_with(|| {
2472 fidl::new_empty!(fidl_fuchsia_lowpan__common::MacAddress, D)
2473 });
2474 fidl::decode!(
2475 fidl_fuchsia_lowpan__common::MacAddress,
2476 D,
2477 val_ref,
2478 decoder,
2479 inner_offset,
2480 inner_depth
2481 )?;
2482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2483 {
2484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2485 }
2486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2488 }
2489 }
2490
2491 next_offset += envelope_size;
2492 _next_ordinal_to_read += 1;
2493 if next_offset >= end_offset {
2494 return Ok(());
2495 }
2496
2497 while _next_ordinal_to_read < 2 {
2499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2500 _next_ordinal_to_read += 1;
2501 next_offset += envelope_size;
2502 }
2503
2504 let next_out_of_line = decoder.next_out_of_line();
2505 let handles_before = decoder.remaining_handles();
2506 if let Some((inlined, num_bytes, num_handles)) =
2507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2508 {
2509 let member_inline_size =
2510 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2511 if inlined != (member_inline_size <= 4) {
2512 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2513 }
2514 let inner_offset;
2515 let mut inner_depth = depth.clone();
2516 if inlined {
2517 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2518 inner_offset = next_offset;
2519 } else {
2520 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2521 inner_depth.increment()?;
2522 }
2523 let val_ref = self.short_address.get_or_insert_with(|| fidl::new_empty!(u16, D));
2524 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2525 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2526 {
2527 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2528 }
2529 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2530 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2531 }
2532 }
2533
2534 next_offset += envelope_size;
2535 _next_ordinal_to_read += 1;
2536 if next_offset >= end_offset {
2537 return Ok(());
2538 }
2539
2540 while _next_ordinal_to_read < 3 {
2542 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2543 _next_ordinal_to_read += 1;
2544 next_offset += envelope_size;
2545 }
2546
2547 let next_out_of_line = decoder.next_out_of_line();
2548 let handles_before = decoder.remaining_handles();
2549 if let Some((inlined, num_bytes, num_handles)) =
2550 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2551 {
2552 let member_inline_size =
2553 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2554 if inlined != (member_inline_size <= 4) {
2555 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2556 }
2557 let inner_offset;
2558 let mut inner_depth = depth.clone();
2559 if inlined {
2560 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2561 inner_offset = next_offset;
2562 } else {
2563 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2564 inner_depth.increment()?;
2565 }
2566 let val_ref = self.age.get_or_insert_with(|| fidl::new_empty!(i64, D));
2567 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2568 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2569 {
2570 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2571 }
2572 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2573 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2574 }
2575 }
2576
2577 next_offset += envelope_size;
2578 _next_ordinal_to_read += 1;
2579 if next_offset >= end_offset {
2580 return Ok(());
2581 }
2582
2583 while _next_ordinal_to_read < 4 {
2585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2586 _next_ordinal_to_read += 1;
2587 next_offset += envelope_size;
2588 }
2589
2590 let next_out_of_line = decoder.next_out_of_line();
2591 let handles_before = decoder.remaining_handles();
2592 if let Some((inlined, num_bytes, num_handles)) =
2593 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2594 {
2595 let member_inline_size =
2596 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2597 if inlined != (member_inline_size <= 4) {
2598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2599 }
2600 let inner_offset;
2601 let mut inner_depth = depth.clone();
2602 if inlined {
2603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2604 inner_offset = next_offset;
2605 } else {
2606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2607 inner_depth.increment()?;
2608 }
2609 let val_ref = self.is_child.get_or_insert_with(|| fidl::new_empty!(bool, D));
2610 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2611 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2612 {
2613 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2614 }
2615 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2616 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2617 }
2618 }
2619
2620 next_offset += envelope_size;
2621 _next_ordinal_to_read += 1;
2622 if next_offset >= end_offset {
2623 return Ok(());
2624 }
2625
2626 while _next_ordinal_to_read < 5 {
2628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2629 _next_ordinal_to_read += 1;
2630 next_offset += envelope_size;
2631 }
2632
2633 let next_out_of_line = decoder.next_out_of_line();
2634 let handles_before = decoder.remaining_handles();
2635 if let Some((inlined, num_bytes, num_handles)) =
2636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2637 {
2638 let member_inline_size =
2639 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2640 if inlined != (member_inline_size <= 4) {
2641 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2642 }
2643 let inner_offset;
2644 let mut inner_depth = depth.clone();
2645 if inlined {
2646 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2647 inner_offset = next_offset;
2648 } else {
2649 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2650 inner_depth.increment()?;
2651 }
2652 let val_ref = self.link_frame_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
2653 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2654 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2655 {
2656 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2657 }
2658 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2659 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2660 }
2661 }
2662
2663 next_offset += envelope_size;
2664 _next_ordinal_to_read += 1;
2665 if next_offset >= end_offset {
2666 return Ok(());
2667 }
2668
2669 while _next_ordinal_to_read < 6 {
2671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2672 _next_ordinal_to_read += 1;
2673 next_offset += envelope_size;
2674 }
2675
2676 let next_out_of_line = decoder.next_out_of_line();
2677 let handles_before = decoder.remaining_handles();
2678 if let Some((inlined, num_bytes, num_handles)) =
2679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2680 {
2681 let member_inline_size =
2682 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2683 if inlined != (member_inline_size <= 4) {
2684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2685 }
2686 let inner_offset;
2687 let mut inner_depth = depth.clone();
2688 if inlined {
2689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2690 inner_offset = next_offset;
2691 } else {
2692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2693 inner_depth.increment()?;
2694 }
2695 let val_ref = self.mgmt_frame_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
2696 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2697 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2698 {
2699 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2700 }
2701 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2702 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2703 }
2704 }
2705
2706 next_offset += envelope_size;
2707 _next_ordinal_to_read += 1;
2708 if next_offset >= end_offset {
2709 return Ok(());
2710 }
2711
2712 while _next_ordinal_to_read < 7 {
2714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2715 _next_ordinal_to_read += 1;
2716 next_offset += envelope_size;
2717 }
2718
2719 let next_out_of_line = decoder.next_out_of_line();
2720 let handles_before = decoder.remaining_handles();
2721 if let Some((inlined, num_bytes, num_handles)) =
2722 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2723 {
2724 let member_inline_size =
2725 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2726 if inlined != (member_inline_size <= 4) {
2727 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2728 }
2729 let inner_offset;
2730 let mut inner_depth = depth.clone();
2731 if inlined {
2732 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2733 inner_offset = next_offset;
2734 } else {
2735 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2736 inner_depth.increment()?;
2737 }
2738 let val_ref = self.last_rssi_in.get_or_insert_with(|| fidl::new_empty!(i32, D));
2739 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
2740 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2741 {
2742 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2743 }
2744 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2745 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2746 }
2747 }
2748
2749 next_offset += envelope_size;
2750 _next_ordinal_to_read += 1;
2751 if next_offset >= end_offset {
2752 return Ok(());
2753 }
2754
2755 while _next_ordinal_to_read < 8 {
2757 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2758 _next_ordinal_to_read += 1;
2759 next_offset += envelope_size;
2760 }
2761
2762 let next_out_of_line = decoder.next_out_of_line();
2763 let handles_before = decoder.remaining_handles();
2764 if let Some((inlined, num_bytes, num_handles)) =
2765 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2766 {
2767 let member_inline_size =
2768 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2769 if inlined != (member_inline_size <= 4) {
2770 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2771 }
2772 let inner_offset;
2773 let mut inner_depth = depth.clone();
2774 if inlined {
2775 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2776 inner_offset = next_offset;
2777 } else {
2778 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2779 inner_depth.increment()?;
2780 }
2781 let val_ref = self.avg_rssi_in.get_or_insert_with(|| fidl::new_empty!(i8, D));
2782 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
2783 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2784 {
2785 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2786 }
2787 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2788 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2789 }
2790 }
2791
2792 next_offset += envelope_size;
2793 _next_ordinal_to_read += 1;
2794 if next_offset >= end_offset {
2795 return Ok(());
2796 }
2797
2798 while _next_ordinal_to_read < 9 {
2800 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2801 _next_ordinal_to_read += 1;
2802 next_offset += envelope_size;
2803 }
2804
2805 let next_out_of_line = decoder.next_out_of_line();
2806 let handles_before = decoder.remaining_handles();
2807 if let Some((inlined, num_bytes, num_handles)) =
2808 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2809 {
2810 let member_inline_size =
2811 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2812 if inlined != (member_inline_size <= 4) {
2813 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2814 }
2815 let inner_offset;
2816 let mut inner_depth = depth.clone();
2817 if inlined {
2818 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2819 inner_offset = next_offset;
2820 } else {
2821 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2822 inner_depth.increment()?;
2823 }
2824 let val_ref = self.lqi_in.get_or_insert_with(|| fidl::new_empty!(u8, D));
2825 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
2826 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2827 {
2828 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2829 }
2830 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2831 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2832 }
2833 }
2834
2835 next_offset += envelope_size;
2836 _next_ordinal_to_read += 1;
2837 if next_offset >= end_offset {
2838 return Ok(());
2839 }
2840
2841 while _next_ordinal_to_read < 10 {
2843 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2844 _next_ordinal_to_read += 1;
2845 next_offset += envelope_size;
2846 }
2847
2848 let next_out_of_line = decoder.next_out_of_line();
2849 let handles_before = decoder.remaining_handles();
2850 if let Some((inlined, num_bytes, num_handles)) =
2851 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2852 {
2853 let member_inline_size =
2854 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2855 if inlined != (member_inline_size <= 4) {
2856 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2857 }
2858 let inner_offset;
2859 let mut inner_depth = depth.clone();
2860 if inlined {
2861 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2862 inner_offset = next_offset;
2863 } else {
2864 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2865 inner_depth.increment()?;
2866 }
2867 let val_ref = self.thread_mode.get_or_insert_with(|| fidl::new_empty!(u8, D));
2868 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
2869 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2870 {
2871 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2872 }
2873 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2874 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2875 }
2876 }
2877
2878 next_offset += envelope_size;
2879 _next_ordinal_to_read += 1;
2880 if next_offset >= end_offset {
2881 return Ok(());
2882 }
2883
2884 while _next_ordinal_to_read < 11 {
2886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2887 _next_ordinal_to_read += 1;
2888 next_offset += envelope_size;
2889 }
2890
2891 let next_out_of_line = decoder.next_out_of_line();
2892 let handles_before = decoder.remaining_handles();
2893 if let Some((inlined, num_bytes, num_handles)) =
2894 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2895 {
2896 let member_inline_size =
2897 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2898 if inlined != (member_inline_size <= 4) {
2899 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2900 }
2901 let inner_offset;
2902 let mut inner_depth = depth.clone();
2903 if inlined {
2904 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2905 inner_offset = next_offset;
2906 } else {
2907 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2908 inner_depth.increment()?;
2909 }
2910 let val_ref = self.frame_error_rate.get_or_insert_with(|| fidl::new_empty!(u16, D));
2911 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2912 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2913 {
2914 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2915 }
2916 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2917 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2918 }
2919 }
2920
2921 next_offset += envelope_size;
2922 _next_ordinal_to_read += 1;
2923 if next_offset >= end_offset {
2924 return Ok(());
2925 }
2926
2927 while _next_ordinal_to_read < 12 {
2929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2930 _next_ordinal_to_read += 1;
2931 next_offset += envelope_size;
2932 }
2933
2934 let next_out_of_line = decoder.next_out_of_line();
2935 let handles_before = decoder.remaining_handles();
2936 if let Some((inlined, num_bytes, num_handles)) =
2937 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2938 {
2939 let member_inline_size =
2940 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2941 if inlined != (member_inline_size <= 4) {
2942 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2943 }
2944 let inner_offset;
2945 let mut inner_depth = depth.clone();
2946 if inlined {
2947 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2948 inner_offset = next_offset;
2949 } else {
2950 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2951 inner_depth.increment()?;
2952 }
2953 let val_ref = self.ipv6_error_rate.get_or_insert_with(|| fidl::new_empty!(u16, D));
2954 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2955 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2956 {
2957 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2958 }
2959 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2960 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2961 }
2962 }
2963
2964 next_offset += envelope_size;
2965 _next_ordinal_to_read += 1;
2966 if next_offset >= end_offset {
2967 return Ok(());
2968 }
2969
2970 while _next_ordinal_to_read < 13 {
2972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2973 _next_ordinal_to_read += 1;
2974 next_offset += envelope_size;
2975 }
2976
2977 let next_out_of_line = decoder.next_out_of_line();
2978 let handles_before = decoder.remaining_handles();
2979 if let Some((inlined, num_bytes, num_handles)) =
2980 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2981 {
2982 let member_inline_size =
2983 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2984 if inlined != (member_inline_size <= 4) {
2985 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2986 }
2987 let inner_offset;
2988 let mut inner_depth = depth.clone();
2989 if inlined {
2990 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2991 inner_offset = next_offset;
2992 } else {
2993 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2994 inner_depth.increment()?;
2995 }
2996 let val_ref =
2997 self.child_is_csl_synced.get_or_insert_with(|| fidl::new_empty!(bool, D));
2998 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2999 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3000 {
3001 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3002 }
3003 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3004 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3005 }
3006 }
3007
3008 next_offset += envelope_size;
3009 _next_ordinal_to_read += 1;
3010 if next_offset >= end_offset {
3011 return Ok(());
3012 }
3013
3014 while _next_ordinal_to_read < 14 {
3016 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3017 _next_ordinal_to_read += 1;
3018 next_offset += envelope_size;
3019 }
3020
3021 let next_out_of_line = decoder.next_out_of_line();
3022 let handles_before = decoder.remaining_handles();
3023 if let Some((inlined, num_bytes, num_handles)) =
3024 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3025 {
3026 let member_inline_size =
3027 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3028 if inlined != (member_inline_size <= 4) {
3029 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3030 }
3031 let inner_offset;
3032 let mut inner_depth = depth.clone();
3033 if inlined {
3034 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3035 inner_offset = next_offset;
3036 } else {
3037 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3038 inner_depth.increment()?;
3039 }
3040 let val_ref =
3041 self.child_is_state_restoring.get_or_insert_with(|| fidl::new_empty!(bool, D));
3042 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3043 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3044 {
3045 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3046 }
3047 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3048 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3049 }
3050 }
3051
3052 next_offset += envelope_size;
3053 _next_ordinal_to_read += 1;
3054 if next_offset >= end_offset {
3055 return Ok(());
3056 }
3057
3058 while _next_ordinal_to_read < 15 {
3060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3061 _next_ordinal_to_read += 1;
3062 next_offset += envelope_size;
3063 }
3064
3065 let next_out_of_line = decoder.next_out_of_line();
3066 let handles_before = decoder.remaining_handles();
3067 if let Some((inlined, num_bytes, num_handles)) =
3068 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3069 {
3070 let member_inline_size =
3071 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3072 if inlined != (member_inline_size <= 4) {
3073 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3074 }
3075 let inner_offset;
3076 let mut inner_depth = depth.clone();
3077 if inlined {
3078 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3079 inner_offset = next_offset;
3080 } else {
3081 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3082 inner_depth.increment()?;
3083 }
3084 let val_ref = self.net_data_version.get_or_insert_with(|| fidl::new_empty!(u8, D));
3085 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
3086 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3087 {
3088 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3089 }
3090 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3091 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3092 }
3093 }
3094
3095 next_offset += envelope_size;
3096 _next_ordinal_to_read += 1;
3097 if next_offset >= end_offset {
3098 return Ok(());
3099 }
3100
3101 while _next_ordinal_to_read < 16 {
3103 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3104 _next_ordinal_to_read += 1;
3105 next_offset += envelope_size;
3106 }
3107
3108 let next_out_of_line = decoder.next_out_of_line();
3109 let handles_before = decoder.remaining_handles();
3110 if let Some((inlined, num_bytes, num_handles)) =
3111 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3112 {
3113 let member_inline_size =
3114 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3115 if inlined != (member_inline_size <= 4) {
3116 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3117 }
3118 let inner_offset;
3119 let mut inner_depth = depth.clone();
3120 if inlined {
3121 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3122 inner_offset = next_offset;
3123 } else {
3124 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3125 inner_depth.increment()?;
3126 }
3127 let val_ref = self.queued_messages.get_or_insert_with(|| fidl::new_empty!(u16, D));
3128 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3129 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3130 {
3131 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3132 }
3133 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3134 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3135 }
3136 }
3137
3138 next_offset += envelope_size;
3139 _next_ordinal_to_read += 1;
3140 if next_offset >= end_offset {
3141 return Ok(());
3142 }
3143
3144 while _next_ordinal_to_read < 17 {
3146 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3147 _next_ordinal_to_read += 1;
3148 next_offset += envelope_size;
3149 }
3150
3151 let next_out_of_line = decoder.next_out_of_line();
3152 let handles_before = decoder.remaining_handles();
3153 if let Some((inlined, num_bytes, num_handles)) =
3154 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3155 {
3156 let member_inline_size =
3157 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3158 if inlined != (member_inline_size <= 4) {
3159 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3160 }
3161 let inner_offset;
3162 let mut inner_depth = depth.clone();
3163 if inlined {
3164 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3165 inner_offset = next_offset;
3166 } else {
3167 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3168 inner_depth.increment()?;
3169 }
3170 let val_ref =
3171 self.thread_mle_version.get_or_insert_with(|| fidl::new_empty!(u8, D));
3172 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
3173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3174 {
3175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3176 }
3177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3179 }
3180 }
3181
3182 next_offset += envelope_size;
3183 _next_ordinal_to_read += 1;
3184 if next_offset >= end_offset {
3185 return Ok(());
3186 }
3187
3188 while _next_ordinal_to_read < 18 {
3190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3191 _next_ordinal_to_read += 1;
3192 next_offset += envelope_size;
3193 }
3194
3195 let next_out_of_line = decoder.next_out_of_line();
3196 let handles_before = decoder.remaining_handles();
3197 if let Some((inlined, num_bytes, num_handles)) =
3198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3199 {
3200 let member_inline_size =
3201 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3202 if inlined != (member_inline_size <= 4) {
3203 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3204 }
3205 let inner_offset;
3206 let mut inner_depth = depth.clone();
3207 if inlined {
3208 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3209 inner_offset = next_offset;
3210 } else {
3211 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3212 inner_depth.increment()?;
3213 }
3214 let val_ref = self.conntime.get_or_insert_with(|| fidl::new_empty!(i64, D));
3215 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3216 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3217 {
3218 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3219 }
3220 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3221 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3222 }
3223 }
3224
3225 next_offset += envelope_size;
3226
3227 while next_offset < end_offset {
3229 _next_ordinal_to_read += 1;
3230 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3231 next_offset += envelope_size;
3232 }
3233
3234 Ok(())
3235 }
3236 }
3237}