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 type NetworkType = String;
13
14pub const MAX_CHANNELS: u16 = 200;
20
21pub const MAX_NETWORK_TYPES: u16 = 16;
29
30pub const MAX_NET_TYPE_LEN: u16 = 64;
35
36pub const MAX_STREAM_SET_SIZE: u16 = 32;
39
40pub const NET_TYPE_RAW_6_LOWPAN: &str = "fuchsia.lowpan.net_type.6lowpan";
41
42pub const NET_TYPE_THREAD_1_X: &str = "org.threadgroup.std.thread.1";
43
44pub const NET_TYPE_UNKNOWN_802_15_4_PID: &str = "fuchsia.lowpan.net_type.802.15.4.pid";
45
46pub const NET_TYPE_ZIGBEE_IP_1_X: &str = "org.zigbee.std.zigbee-ip.1";
47
48#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
53pub enum ConnectivityState {
54 Inactive,
62 Ready,
73 Offline,
84 Attaching,
103 Attached,
119 Isolated,
135 Commissioning,
142 #[doc(hidden)]
143 __SourceBreaking { unknown_ordinal: i32 },
144}
145
146#[macro_export]
148macro_rules! ConnectivityStateUnknown {
149 () => {
150 _
151 };
152}
153
154impl ConnectivityState {
155 #[inline]
156 pub fn from_primitive(prim: i32) -> Option<Self> {
157 match prim {
158 1 => Some(Self::Inactive),
159 2 => Some(Self::Ready),
160 3 => Some(Self::Offline),
161 4 => Some(Self::Attaching),
162 5 => Some(Self::Attached),
163 6 => Some(Self::Isolated),
164 7 => Some(Self::Commissioning),
165 _ => None,
166 }
167 }
168
169 #[inline]
170 pub fn from_primitive_allow_unknown(prim: i32) -> Self {
171 match prim {
172 1 => Self::Inactive,
173 2 => Self::Ready,
174 3 => Self::Offline,
175 4 => Self::Attaching,
176 5 => Self::Attached,
177 6 => Self::Isolated,
178 7 => Self::Commissioning,
179 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
180 }
181 }
182
183 #[inline]
184 pub fn unknown() -> Self {
185 Self::__SourceBreaking { unknown_ordinal: 0x7fffffff }
186 }
187
188 #[inline]
189 pub const fn into_primitive(self) -> i32 {
190 match self {
191 Self::Inactive => 1,
192 Self::Ready => 2,
193 Self::Offline => 3,
194 Self::Attaching => 4,
195 Self::Attached => 5,
196 Self::Isolated => 6,
197 Self::Commissioning => 7,
198 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
199 }
200 }
201
202 #[inline]
203 pub fn is_unknown(&self) -> bool {
204 match self {
205 Self::__SourceBreaking { unknown_ordinal: _ } => true,
206 _ => false,
207 }
208 }
209}
210
211#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
215pub enum Role {
216 Detached,
220 EndDevice,
223 Router,
231 SleepyEndDevice,
244 SleepyRouter,
252 Leader,
262 Coordinator,
266 #[doc(hidden)]
267 __SourceBreaking { unknown_ordinal: i32 },
268}
269
270#[macro_export]
272macro_rules! RoleUnknown {
273 () => {
274 _
275 };
276}
277
278impl Role {
279 #[inline]
280 pub fn from_primitive(prim: i32) -> Option<Self> {
281 match prim {
282 1 => Some(Self::Detached),
283 2 => Some(Self::EndDevice),
284 3 => Some(Self::Router),
285 4 => Some(Self::SleepyEndDevice),
286 5 => Some(Self::SleepyRouter),
287 6 => Some(Self::Leader),
288 7 => Some(Self::Coordinator),
289 _ => None,
290 }
291 }
292
293 #[inline]
294 pub fn from_primitive_allow_unknown(prim: i32) -> Self {
295 match prim {
296 1 => Self::Detached,
297 2 => Self::EndDevice,
298 3 => Self::Router,
299 4 => Self::SleepyEndDevice,
300 5 => Self::SleepyRouter,
301 6 => Self::Leader,
302 7 => Self::Coordinator,
303 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
304 }
305 }
306
307 #[inline]
308 pub fn unknown() -> Self {
309 Self::__SourceBreaking { unknown_ordinal: 0x7fffffff }
310 }
311
312 #[inline]
313 pub const fn into_primitive(self) -> i32 {
314 match self {
315 Self::Detached => 1,
316 Self::EndDevice => 2,
317 Self::Router => 3,
318 Self::SleepyEndDevice => 4,
319 Self::SleepyRouter => 5,
320 Self::Leader => 6,
321 Self::Coordinator => 7,
322 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
323 }
324 }
325
326 #[inline]
327 pub fn is_unknown(&self) -> bool {
328 match self {
329 Self::__SourceBreaking { unknown_ordinal: _ } => true,
330 _ => false,
331 }
332 }
333}
334
335#[derive(Clone, Debug, PartialEq)]
336pub struct CountersGetResponse {
337 pub counters: AllCounters,
338}
339
340impl fidl::Persistable for CountersGetResponse {}
341
342#[derive(Clone, Debug, PartialEq)]
343pub struct CountersResetResponse {
344 pub counters: AllCounters,
345}
346
347impl fidl::Persistable for CountersResetResponse {}
348
349#[derive(Clone, Debug, PartialEq)]
350pub struct DeviceExtraGetCredentialResponse {
351 pub credential: Option<Box<Credential>>,
352}
353
354impl fidl::Persistable for DeviceExtraGetCredentialResponse {}
355
356#[derive(Clone, Debug, PartialEq)]
357pub struct DeviceExtraGetCurrentMacAddressResponse {
358 pub address: fidl_fuchsia_lowpan_common::MacAddress,
359}
360
361impl fidl::Persistable for DeviceExtraGetCurrentMacAddressResponse {}
362
363#[derive(Clone, Debug, PartialEq)]
364pub struct DeviceExtraWatchIdentityResponse {
365 pub identity: Identity,
366}
367
368impl fidl::Persistable for DeviceExtraWatchIdentityResponse {}
369
370#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
371pub struct DeviceGetSupportedNetworkTypesResponse {
372 pub network_types: Vec<String>,
373}
374
375impl fidl::Persistable for DeviceGetSupportedNetworkTypesResponse {}
376
377#[derive(Clone, Debug, PartialEq)]
378pub struct DeviceProvisionNetworkRequest {
379 pub params: ProvisioningParams,
380}
381
382impl fidl::Persistable for DeviceProvisionNetworkRequest {}
383
384#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
385pub struct DeviceSetActiveRequest {
386 pub active: bool,
387}
388
389impl fidl::Persistable for DeviceSetActiveRequest {}
390
391#[derive(Clone, Debug, PartialEq)]
392pub struct DeviceWatchDeviceStateResponse {
393 pub device_combined_state: DeviceState,
394}
395
396impl fidl::Persistable for DeviceWatchDeviceStateResponse {}
397
398#[derive(Clone, Debug, PartialEq)]
399pub struct EnergyScanResultStreamNextResponse {
400 pub results: Vec<EnergyScanResult>,
401}
402
403impl fidl::Persistable for EnergyScanResultStreamNextResponse {}
404
405#[derive(Clone, Debug, PartialEq)]
406pub struct ProvisioningParams {
407 pub identity: Identity,
409 pub credential: Option<Box<Credential>>,
412}
413
414impl fidl::Persistable for ProvisioningParams {}
415
416#[derive(Clone, Debug, Default, PartialEq)]
420pub struct AllCounters {
421 pub mac_tx: Option<MacCounters>,
423 pub mac_rx: Option<MacCounters>,
425 pub coex_tx: Option<CoexCounters>,
427 pub coex_rx: Option<CoexCounters>,
429 pub coex_saturated: Option<bool>,
433 pub ip_tx: Option<IpCounters>,
435 pub ip_rx: Option<IpCounters>,
437 pub border_agent: Option<BorderAgentCounters>,
439 pub mle: Option<MleCounters>,
441 #[doc(hidden)]
442 pub __source_breaking: fidl::marker::SourceBreaking,
443}
444
445impl fidl::Persistable for AllCounters {}
446
447#[derive(Clone, Debug, Default, PartialEq)]
449pub struct BorderAgentCounters {
450 pub epskc_activations: Option<u32>,
452 pub epskc_deactivation_clears: Option<u32>,
454 pub epskc_deactivation_timeouts: Option<u32>,
456 pub epskc_deactivation_max_attempts: Option<u32>,
458 pub epskc_deactivation_disconnects: Option<u32>,
460 pub epskc_invalid_ba_state_errors: Option<u32>,
462 pub epskc_invalid_args_errors: Option<u32>,
464 pub epskc_start_secure_session_errors: Option<u32>,
466 pub epskc_secure_session_successes: Option<u32>,
468 pub epskc_secure_session_failures: Option<u32>,
470 pub epskc_commissioner_petitions: Option<u32>,
472 pub pskc_secure_session_successes: Option<u32>,
474 pub pskc_secure_session_failures: Option<u32>,
476 pub pskc_commissioner_petitions: Option<u32>,
478 pub mgmt_active_gets: Option<u32>,
480 pub mgmt_pending_gets: Option<u32>,
482 #[doc(hidden)]
483 pub __source_breaking: fidl::marker::SourceBreaking,
484}
485
486impl fidl::Persistable for BorderAgentCounters {}
487
488#[derive(Clone, Debug, Default, PartialEq)]
494pub struct CoexCounters {
495 pub requests: Option<u64>,
497 pub grant_immediate: Option<u64>,
499 pub grant_wait: Option<u64>,
501 pub grant_wait_activated: Option<u64>,
504 pub grant_wait_timeout: Option<u64>,
506 pub grant_deactivated_during_request: Option<u64>,
509 pub delayed_grant: Option<u64>,
511 pub avg_delay_request_to_grant_usec: Option<u32>,
513 pub grant_none: Option<u64>,
517 #[doc(hidden)]
518 pub __source_breaking: fidl::marker::SourceBreaking,
519}
520
521impl fidl::Persistable for CoexCounters {}
522
523#[derive(Clone, Debug, Default, PartialEq)]
532pub struct DeviceState {
533 pub connectivity_state: Option<ConnectivityState>,
538 pub role: Option<Role>,
543 #[doc(hidden)]
544 pub __source_breaking: fidl::marker::SourceBreaking,
545}
546
547impl fidl::Persistable for DeviceState {}
548
549#[derive(Clone, Debug, Default, PartialEq)]
551pub struct EnergyScanParameters {
552 pub channels: Option<Vec<u16>>,
556 pub dwell_time_ms: Option<u32>,
575 #[doc(hidden)]
576 pub __source_breaking: fidl::marker::SourceBreaking,
577}
578
579impl fidl::Persistable for EnergyScanParameters {}
580
581#[derive(Clone, Debug, Default, PartialEq)]
583pub struct EnergyScanResult {
584 pub channel_index: Option<u16>,
586 pub max_rssi: Option<i32>,
588 pub min_rssi: Option<i32>,
590 #[doc(hidden)]
591 pub __source_breaking: fidl::marker::SourceBreaking,
592}
593
594impl fidl::Persistable for EnergyScanResult {}
595
596#[derive(Clone, Debug, Default, PartialEq)]
597pub struct Identity {
598 pub raw_name: Option<Vec<u8>>,
608 pub net_type: Option<String>,
618 pub channel: Option<u16>,
620 pub panid: Option<u16>,
622 pub mesh_local_prefix: Option<fidl_fuchsia_net_common::Ipv6AddressWithPrefix>,
635 pub xpanid: Option<[u8; 8]>,
637 #[doc(hidden)]
638 pub __source_breaking: fidl::marker::SourceBreaking,
639}
640
641impl fidl::Persistable for Identity {}
642
643#[derive(Clone, Debug, Default, PartialEq)]
645pub struct IpCounters {
646 pub success: Option<u32>,
648 pub failure: Option<u32>,
650 #[doc(hidden)]
651 pub __source_breaking: fidl::marker::SourceBreaking,
652}
653
654impl fidl::Persistable for IpCounters {}
655
656#[derive(Clone, Debug, Default, PartialEq)]
660pub struct MacCounters {
661 pub total: Option<u32>,
663 pub unicast: Option<u32>,
665 pub broadcast: Option<u32>,
667 pub ack_requested: Option<u32>,
669 pub acked: Option<u32>,
671 pub no_ack_requested: Option<u32>,
673 pub data: Option<u32>,
675 pub data_poll: Option<u32>,
677 pub beacon: Option<u32>,
679 pub beacon_request: Option<u32>,
681 pub other: Option<u32>,
683 pub address_filtered: Option<u32>,
686 pub retries: Option<u32>,
689 pub direct_max_retry_expiry: Option<u32>,
692 pub indirect_max_retry_expiry: Option<u32>,
695 pub dest_addr_filtered: Option<u32>,
698 pub duplicated: Option<u32>,
701 pub err_no_frame: Option<u32>,
704 pub err_unknown_neighbor: Option<u32>,
707 pub err_invalid_src_addr: Option<u32>,
710 pub err_sec: Option<u32>,
713 pub err_fcs: Option<u32>,
716 pub err_cca: Option<u32>,
719 pub err_abort: Option<u32>,
722 pub err_busy_channel: Option<u32>,
725 pub err_other: Option<u32>,
727 #[doc(hidden)]
728 pub __source_breaking: fidl::marker::SourceBreaking,
729}
730
731impl fidl::Persistable for MacCounters {}
732
733#[derive(Clone, Debug, Default, PartialEq)]
735pub struct MleCounters {
736 pub disabled_role: Option<u16>,
738 pub detached_role: Option<u16>,
740 pub child_role: Option<u16>,
742 pub router_role: Option<u16>,
744 pub leader_role: Option<u16>,
746 pub attach_attempts: Option<u16>,
748 pub partition_id_changes: Option<u16>,
750 pub better_partition_attach_attempts: Option<u16>,
752 pub better_parent_attach_attempts: Option<u16>,
754 pub disabled_time: Option<u64>,
756 pub detached_time: Option<u64>,
758 pub child_time: Option<u64>,
760 pub router_time: Option<u64>,
762 pub leader_time: Option<u64>,
764 pub tracked_time: Option<u64>,
766 pub parent_changes: Option<u16>,
768 #[doc(hidden)]
769 pub __source_breaking: fidl::marker::SourceBreaking,
770}
771
772impl fidl::Persistable for MleCounters {}
773
774#[derive(Clone, Debug)]
782pub enum Credential {
783 NetworkKey(Vec<u8>),
791 #[doc(hidden)]
792 __SourceBreaking { unknown_ordinal: u64 },
793}
794
795#[macro_export]
797macro_rules! CredentialUnknown {
798 () => {
799 _
800 };
801}
802
803impl PartialEq for Credential {
805 fn eq(&self, other: &Self) -> bool {
806 match (self, other) {
807 (Self::NetworkKey(x), Self::NetworkKey(y)) => *x == *y,
808 _ => false,
809 }
810 }
811}
812
813impl Credential {
814 #[inline]
815 pub fn ordinal(&self) -> u64 {
816 match *self {
817 Self::NetworkKey(_) => 1,
818 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
819 }
820 }
821
822 #[inline]
823 pub fn unknown_variant_for_testing() -> Self {
824 Self::__SourceBreaking { unknown_ordinal: 0 }
825 }
826
827 #[inline]
828 pub fn is_unknown(&self) -> bool {
829 match self {
830 Self::__SourceBreaking { .. } => true,
831 _ => false,
832 }
833 }
834}
835
836impl fidl::Persistable for Credential {}
837
838pub mod counters_ordinals {
839 pub const GET: u64 = 0xaa28d44c1535a24;
840 pub const RESET: u64 = 0x4cf9a102017cf7ad;
841}
842
843pub mod counters_connector_ordinals {
844 pub const CONNECT: u64 = 0x61ec847f2702d188;
845}
846
847pub mod device_ordinals {
848 pub const PROVISION_NETWORK: u64 = 0x3501046988e17076;
849 pub const LEAVE_NETWORK: u64 = 0x66919e4f9752c53e;
850 pub const SET_ACTIVE: u64 = 0x55a6837f8bbb344b;
851 pub const GET_SUPPORTED_NETWORK_TYPES: u64 = 0x6d8f71a5beb15ebf;
852 pub const WATCH_DEVICE_STATE: u64 = 0x593be5b83e80d249;
853}
854
855pub mod device_connector_ordinals {
856 pub const CONNECT: u64 = 0x63470c4c0c8e678a;
857}
858
859pub mod device_extra_ordinals {
860 pub const GET_CREDENTIAL: u64 = 0x77f75f289c8c4ceb;
861 pub const WATCH_IDENTITY: u64 = 0xb9f5d8963eaebc6;
862 pub const GET_CURRENT_MAC_ADDRESS: u64 = 0x70835954071d94dd;
863}
864
865pub mod device_extra_connector_ordinals {
866 pub const CONNECT: u64 = 0x2959be873ae18ae3;
867}
868
869pub mod energy_scan_ordinals {
870 pub const START_ENERGY_SCAN: u64 = 0x4b2928a05c619b06;
871}
872
873pub mod energy_scan_connector_ordinals {
874 pub const CONNECT: u64 = 0x1076a774e74ab290;
875}
876
877pub mod energy_scan_result_stream_ordinals {
878 pub const NEXT: u64 = 0x7f0139fc06fd6a9e;
879}
880
881mod internal {
882 use super::*;
883 unsafe impl fidl::encoding::TypeMarker for ConnectivityState {
884 type Owned = Self;
885
886 #[inline(always)]
887 fn inline_align(_context: fidl::encoding::Context) -> usize {
888 std::mem::align_of::<i32>()
889 }
890
891 #[inline(always)]
892 fn inline_size(_context: fidl::encoding::Context) -> usize {
893 std::mem::size_of::<i32>()
894 }
895
896 #[inline(always)]
897 fn encode_is_copy() -> bool {
898 false
899 }
900
901 #[inline(always)]
902 fn decode_is_copy() -> bool {
903 false
904 }
905 }
906
907 impl fidl::encoding::ValueTypeMarker for ConnectivityState {
908 type Borrowed<'a> = Self;
909 #[inline(always)]
910 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
911 *value
912 }
913 }
914
915 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
916 for ConnectivityState
917 {
918 #[inline]
919 unsafe fn encode(
920 self,
921 encoder: &mut fidl::encoding::Encoder<'_, D>,
922 offset: usize,
923 _depth: fidl::encoding::Depth,
924 ) -> fidl::Result<()> {
925 encoder.debug_check_bounds::<Self>(offset);
926 encoder.write_num(self.into_primitive(), offset);
927 Ok(())
928 }
929 }
930
931 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectivityState {
932 #[inline(always)]
933 fn new_empty() -> Self {
934 Self::unknown()
935 }
936
937 #[inline]
938 unsafe fn decode(
939 &mut self,
940 decoder: &mut fidl::encoding::Decoder<'_, D>,
941 offset: usize,
942 _depth: fidl::encoding::Depth,
943 ) -> fidl::Result<()> {
944 decoder.debug_check_bounds::<Self>(offset);
945 let prim = decoder.read_num::<i32>(offset);
946
947 *self = Self::from_primitive_allow_unknown(prim);
948 Ok(())
949 }
950 }
951 unsafe impl fidl::encoding::TypeMarker for Role {
952 type Owned = Self;
953
954 #[inline(always)]
955 fn inline_align(_context: fidl::encoding::Context) -> usize {
956 std::mem::align_of::<i32>()
957 }
958
959 #[inline(always)]
960 fn inline_size(_context: fidl::encoding::Context) -> usize {
961 std::mem::size_of::<i32>()
962 }
963
964 #[inline(always)]
965 fn encode_is_copy() -> bool {
966 false
967 }
968
969 #[inline(always)]
970 fn decode_is_copy() -> bool {
971 false
972 }
973 }
974
975 impl fidl::encoding::ValueTypeMarker for Role {
976 type Borrowed<'a> = Self;
977 #[inline(always)]
978 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
979 *value
980 }
981 }
982
983 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Role {
984 #[inline]
985 unsafe fn encode(
986 self,
987 encoder: &mut fidl::encoding::Encoder<'_, D>,
988 offset: usize,
989 _depth: fidl::encoding::Depth,
990 ) -> fidl::Result<()> {
991 encoder.debug_check_bounds::<Self>(offset);
992 encoder.write_num(self.into_primitive(), offset);
993 Ok(())
994 }
995 }
996
997 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Role {
998 #[inline(always)]
999 fn new_empty() -> Self {
1000 Self::unknown()
1001 }
1002
1003 #[inline]
1004 unsafe fn decode(
1005 &mut self,
1006 decoder: &mut fidl::encoding::Decoder<'_, D>,
1007 offset: usize,
1008 _depth: fidl::encoding::Depth,
1009 ) -> fidl::Result<()> {
1010 decoder.debug_check_bounds::<Self>(offset);
1011 let prim = decoder.read_num::<i32>(offset);
1012
1013 *self = Self::from_primitive_allow_unknown(prim);
1014 Ok(())
1015 }
1016 }
1017
1018 impl fidl::encoding::ValueTypeMarker for CountersGetResponse {
1019 type Borrowed<'a> = &'a Self;
1020 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1021 value
1022 }
1023 }
1024
1025 unsafe impl fidl::encoding::TypeMarker for CountersGetResponse {
1026 type Owned = Self;
1027
1028 #[inline(always)]
1029 fn inline_align(_context: fidl::encoding::Context) -> usize {
1030 8
1031 }
1032
1033 #[inline(always)]
1034 fn inline_size(_context: fidl::encoding::Context) -> usize {
1035 16
1036 }
1037 }
1038
1039 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CountersGetResponse, D>
1040 for &CountersGetResponse
1041 {
1042 #[inline]
1043 unsafe fn encode(
1044 self,
1045 encoder: &mut fidl::encoding::Encoder<'_, D>,
1046 offset: usize,
1047 _depth: fidl::encoding::Depth,
1048 ) -> fidl::Result<()> {
1049 encoder.debug_check_bounds::<CountersGetResponse>(offset);
1050 fidl::encoding::Encode::<CountersGetResponse, D>::encode(
1052 (<AllCounters as fidl::encoding::ValueTypeMarker>::borrow(&self.counters),),
1053 encoder,
1054 offset,
1055 _depth,
1056 )
1057 }
1058 }
1059 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AllCounters, D>>
1060 fidl::encoding::Encode<CountersGetResponse, D> for (T0,)
1061 {
1062 #[inline]
1063 unsafe fn encode(
1064 self,
1065 encoder: &mut fidl::encoding::Encoder<'_, D>,
1066 offset: usize,
1067 depth: fidl::encoding::Depth,
1068 ) -> fidl::Result<()> {
1069 encoder.debug_check_bounds::<CountersGetResponse>(offset);
1070 self.0.encode(encoder, offset + 0, depth)?;
1074 Ok(())
1075 }
1076 }
1077
1078 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CountersGetResponse {
1079 #[inline(always)]
1080 fn new_empty() -> Self {
1081 Self { counters: fidl::new_empty!(AllCounters, D) }
1082 }
1083
1084 #[inline]
1085 unsafe fn decode(
1086 &mut self,
1087 decoder: &mut fidl::encoding::Decoder<'_, D>,
1088 offset: usize,
1089 _depth: fidl::encoding::Depth,
1090 ) -> fidl::Result<()> {
1091 decoder.debug_check_bounds::<Self>(offset);
1092 fidl::decode!(AllCounters, D, &mut self.counters, decoder, offset + 0, _depth)?;
1094 Ok(())
1095 }
1096 }
1097
1098 impl fidl::encoding::ValueTypeMarker for CountersResetResponse {
1099 type Borrowed<'a> = &'a Self;
1100 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1101 value
1102 }
1103 }
1104
1105 unsafe impl fidl::encoding::TypeMarker for CountersResetResponse {
1106 type Owned = Self;
1107
1108 #[inline(always)]
1109 fn inline_align(_context: fidl::encoding::Context) -> usize {
1110 8
1111 }
1112
1113 #[inline(always)]
1114 fn inline_size(_context: fidl::encoding::Context) -> usize {
1115 16
1116 }
1117 }
1118
1119 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CountersResetResponse, D>
1120 for &CountersResetResponse
1121 {
1122 #[inline]
1123 unsafe fn encode(
1124 self,
1125 encoder: &mut fidl::encoding::Encoder<'_, D>,
1126 offset: usize,
1127 _depth: fidl::encoding::Depth,
1128 ) -> fidl::Result<()> {
1129 encoder.debug_check_bounds::<CountersResetResponse>(offset);
1130 fidl::encoding::Encode::<CountersResetResponse, D>::encode(
1132 (<AllCounters as fidl::encoding::ValueTypeMarker>::borrow(&self.counters),),
1133 encoder,
1134 offset,
1135 _depth,
1136 )
1137 }
1138 }
1139 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AllCounters, D>>
1140 fidl::encoding::Encode<CountersResetResponse, D> for (T0,)
1141 {
1142 #[inline]
1143 unsafe fn encode(
1144 self,
1145 encoder: &mut fidl::encoding::Encoder<'_, D>,
1146 offset: usize,
1147 depth: fidl::encoding::Depth,
1148 ) -> fidl::Result<()> {
1149 encoder.debug_check_bounds::<CountersResetResponse>(offset);
1150 self.0.encode(encoder, offset + 0, depth)?;
1154 Ok(())
1155 }
1156 }
1157
1158 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CountersResetResponse {
1159 #[inline(always)]
1160 fn new_empty() -> Self {
1161 Self { counters: fidl::new_empty!(AllCounters, D) }
1162 }
1163
1164 #[inline]
1165 unsafe fn decode(
1166 &mut self,
1167 decoder: &mut fidl::encoding::Decoder<'_, D>,
1168 offset: usize,
1169 _depth: fidl::encoding::Depth,
1170 ) -> fidl::Result<()> {
1171 decoder.debug_check_bounds::<Self>(offset);
1172 fidl::decode!(AllCounters, D, &mut self.counters, decoder, offset + 0, _depth)?;
1174 Ok(())
1175 }
1176 }
1177
1178 impl fidl::encoding::ValueTypeMarker for DeviceExtraGetCredentialResponse {
1179 type Borrowed<'a> = &'a Self;
1180 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1181 value
1182 }
1183 }
1184
1185 unsafe impl fidl::encoding::TypeMarker for DeviceExtraGetCredentialResponse {
1186 type Owned = Self;
1187
1188 #[inline(always)]
1189 fn inline_align(_context: fidl::encoding::Context) -> usize {
1190 8
1191 }
1192
1193 #[inline(always)]
1194 fn inline_size(_context: fidl::encoding::Context) -> usize {
1195 16
1196 }
1197 }
1198
1199 unsafe impl<D: fidl::encoding::ResourceDialect>
1200 fidl::encoding::Encode<DeviceExtraGetCredentialResponse, D>
1201 for &DeviceExtraGetCredentialResponse
1202 {
1203 #[inline]
1204 unsafe fn encode(
1205 self,
1206 encoder: &mut fidl::encoding::Encoder<'_, D>,
1207 offset: usize,
1208 _depth: fidl::encoding::Depth,
1209 ) -> fidl::Result<()> {
1210 encoder.debug_check_bounds::<DeviceExtraGetCredentialResponse>(offset);
1211 fidl::encoding::Encode::<DeviceExtraGetCredentialResponse, D>::encode(
1213 (
1214 <fidl::encoding::OptionalUnion<Credential> as fidl::encoding::ValueTypeMarker>::borrow(&self.credential),
1215 ),
1216 encoder, offset, _depth
1217 )
1218 }
1219 }
1220 unsafe impl<
1221 D: fidl::encoding::ResourceDialect,
1222 T0: fidl::encoding::Encode<fidl::encoding::OptionalUnion<Credential>, D>,
1223 > fidl::encoding::Encode<DeviceExtraGetCredentialResponse, D> for (T0,)
1224 {
1225 #[inline]
1226 unsafe fn encode(
1227 self,
1228 encoder: &mut fidl::encoding::Encoder<'_, D>,
1229 offset: usize,
1230 depth: fidl::encoding::Depth,
1231 ) -> fidl::Result<()> {
1232 encoder.debug_check_bounds::<DeviceExtraGetCredentialResponse>(offset);
1233 self.0.encode(encoder, offset + 0, depth)?;
1237 Ok(())
1238 }
1239 }
1240
1241 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1242 for DeviceExtraGetCredentialResponse
1243 {
1244 #[inline(always)]
1245 fn new_empty() -> Self {
1246 Self { credential: fidl::new_empty!(fidl::encoding::OptionalUnion<Credential>, D) }
1247 }
1248
1249 #[inline]
1250 unsafe fn decode(
1251 &mut self,
1252 decoder: &mut fidl::encoding::Decoder<'_, D>,
1253 offset: usize,
1254 _depth: fidl::encoding::Depth,
1255 ) -> fidl::Result<()> {
1256 decoder.debug_check_bounds::<Self>(offset);
1257 fidl::decode!(
1259 fidl::encoding::OptionalUnion<Credential>,
1260 D,
1261 &mut self.credential,
1262 decoder,
1263 offset + 0,
1264 _depth
1265 )?;
1266 Ok(())
1267 }
1268 }
1269
1270 impl fidl::encoding::ValueTypeMarker for DeviceExtraGetCurrentMacAddressResponse {
1271 type Borrowed<'a> = &'a Self;
1272 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1273 value
1274 }
1275 }
1276
1277 unsafe impl fidl::encoding::TypeMarker for DeviceExtraGetCurrentMacAddressResponse {
1278 type Owned = Self;
1279
1280 #[inline(always)]
1281 fn inline_align(_context: fidl::encoding::Context) -> usize {
1282 1
1283 }
1284
1285 #[inline(always)]
1286 fn inline_size(_context: fidl::encoding::Context) -> usize {
1287 8
1288 }
1289 }
1290
1291 unsafe impl<D: fidl::encoding::ResourceDialect>
1292 fidl::encoding::Encode<DeviceExtraGetCurrentMacAddressResponse, D>
1293 for &DeviceExtraGetCurrentMacAddressResponse
1294 {
1295 #[inline]
1296 unsafe fn encode(
1297 self,
1298 encoder: &mut fidl::encoding::Encoder<'_, D>,
1299 offset: usize,
1300 _depth: fidl::encoding::Depth,
1301 ) -> fidl::Result<()> {
1302 encoder.debug_check_bounds::<DeviceExtraGetCurrentMacAddressResponse>(offset);
1303 fidl::encoding::Encode::<DeviceExtraGetCurrentMacAddressResponse, D>::encode(
1305 (
1306 <fidl_fuchsia_lowpan_common::MacAddress as fidl::encoding::ValueTypeMarker>::borrow(&self.address),
1307 ),
1308 encoder, offset, _depth
1309 )
1310 }
1311 }
1312 unsafe impl<
1313 D: fidl::encoding::ResourceDialect,
1314 T0: fidl::encoding::Encode<fidl_fuchsia_lowpan_common::MacAddress, D>,
1315 > fidl::encoding::Encode<DeviceExtraGetCurrentMacAddressResponse, D> for (T0,)
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::<DeviceExtraGetCurrentMacAddressResponse>(offset);
1325 self.0.encode(encoder, offset + 0, depth)?;
1329 Ok(())
1330 }
1331 }
1332
1333 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1334 for DeviceExtraGetCurrentMacAddressResponse
1335 {
1336 #[inline(always)]
1337 fn new_empty() -> Self {
1338 Self { address: fidl::new_empty!(fidl_fuchsia_lowpan_common::MacAddress, D) }
1339 }
1340
1341 #[inline]
1342 unsafe fn decode(
1343 &mut self,
1344 decoder: &mut fidl::encoding::Decoder<'_, D>,
1345 offset: usize,
1346 _depth: fidl::encoding::Depth,
1347 ) -> fidl::Result<()> {
1348 decoder.debug_check_bounds::<Self>(offset);
1349 fidl::decode!(
1351 fidl_fuchsia_lowpan_common::MacAddress,
1352 D,
1353 &mut self.address,
1354 decoder,
1355 offset + 0,
1356 _depth
1357 )?;
1358 Ok(())
1359 }
1360 }
1361
1362 impl fidl::encoding::ValueTypeMarker for DeviceExtraWatchIdentityResponse {
1363 type Borrowed<'a> = &'a Self;
1364 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1365 value
1366 }
1367 }
1368
1369 unsafe impl fidl::encoding::TypeMarker for DeviceExtraWatchIdentityResponse {
1370 type Owned = Self;
1371
1372 #[inline(always)]
1373 fn inline_align(_context: fidl::encoding::Context) -> usize {
1374 8
1375 }
1376
1377 #[inline(always)]
1378 fn inline_size(_context: fidl::encoding::Context) -> usize {
1379 16
1380 }
1381 }
1382
1383 unsafe impl<D: fidl::encoding::ResourceDialect>
1384 fidl::encoding::Encode<DeviceExtraWatchIdentityResponse, D>
1385 for &DeviceExtraWatchIdentityResponse
1386 {
1387 #[inline]
1388 unsafe fn encode(
1389 self,
1390 encoder: &mut fidl::encoding::Encoder<'_, D>,
1391 offset: usize,
1392 _depth: fidl::encoding::Depth,
1393 ) -> fidl::Result<()> {
1394 encoder.debug_check_bounds::<DeviceExtraWatchIdentityResponse>(offset);
1395 fidl::encoding::Encode::<DeviceExtraWatchIdentityResponse, D>::encode(
1397 (<Identity as fidl::encoding::ValueTypeMarker>::borrow(&self.identity),),
1398 encoder,
1399 offset,
1400 _depth,
1401 )
1402 }
1403 }
1404 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Identity, D>>
1405 fidl::encoding::Encode<DeviceExtraWatchIdentityResponse, D> for (T0,)
1406 {
1407 #[inline]
1408 unsafe fn encode(
1409 self,
1410 encoder: &mut fidl::encoding::Encoder<'_, D>,
1411 offset: usize,
1412 depth: fidl::encoding::Depth,
1413 ) -> fidl::Result<()> {
1414 encoder.debug_check_bounds::<DeviceExtraWatchIdentityResponse>(offset);
1415 self.0.encode(encoder, offset + 0, depth)?;
1419 Ok(())
1420 }
1421 }
1422
1423 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1424 for DeviceExtraWatchIdentityResponse
1425 {
1426 #[inline(always)]
1427 fn new_empty() -> Self {
1428 Self { identity: fidl::new_empty!(Identity, D) }
1429 }
1430
1431 #[inline]
1432 unsafe fn decode(
1433 &mut self,
1434 decoder: &mut fidl::encoding::Decoder<'_, D>,
1435 offset: usize,
1436 _depth: fidl::encoding::Depth,
1437 ) -> fidl::Result<()> {
1438 decoder.debug_check_bounds::<Self>(offset);
1439 fidl::decode!(Identity, D, &mut self.identity, decoder, offset + 0, _depth)?;
1441 Ok(())
1442 }
1443 }
1444
1445 impl fidl::encoding::ValueTypeMarker for DeviceGetSupportedNetworkTypesResponse {
1446 type Borrowed<'a> = &'a Self;
1447 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1448 value
1449 }
1450 }
1451
1452 unsafe impl fidl::encoding::TypeMarker for DeviceGetSupportedNetworkTypesResponse {
1453 type Owned = Self;
1454
1455 #[inline(always)]
1456 fn inline_align(_context: fidl::encoding::Context) -> usize {
1457 8
1458 }
1459
1460 #[inline(always)]
1461 fn inline_size(_context: fidl::encoding::Context) -> usize {
1462 16
1463 }
1464 }
1465
1466 unsafe impl<D: fidl::encoding::ResourceDialect>
1467 fidl::encoding::Encode<DeviceGetSupportedNetworkTypesResponse, D>
1468 for &DeviceGetSupportedNetworkTypesResponse
1469 {
1470 #[inline]
1471 unsafe fn encode(
1472 self,
1473 encoder: &mut fidl::encoding::Encoder<'_, D>,
1474 offset: usize,
1475 _depth: fidl::encoding::Depth,
1476 ) -> fidl::Result<()> {
1477 encoder.debug_check_bounds::<DeviceGetSupportedNetworkTypesResponse>(offset);
1478 fidl::encoding::Encode::<DeviceGetSupportedNetworkTypesResponse, D>::encode(
1480 (
1481 <fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16> as fidl::encoding::ValueTypeMarker>::borrow(&self.network_types),
1482 ),
1483 encoder, offset, _depth
1484 )
1485 }
1486 }
1487 unsafe impl<
1488 D: fidl::encoding::ResourceDialect,
1489 T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16>, D>,
1490 > fidl::encoding::Encode<DeviceGetSupportedNetworkTypesResponse, D> for (T0,)
1491 {
1492 #[inline]
1493 unsafe fn encode(
1494 self,
1495 encoder: &mut fidl::encoding::Encoder<'_, D>,
1496 offset: usize,
1497 depth: fidl::encoding::Depth,
1498 ) -> fidl::Result<()> {
1499 encoder.debug_check_bounds::<DeviceGetSupportedNetworkTypesResponse>(offset);
1500 self.0.encode(encoder, offset + 0, depth)?;
1504 Ok(())
1505 }
1506 }
1507
1508 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1509 for DeviceGetSupportedNetworkTypesResponse
1510 {
1511 #[inline(always)]
1512 fn new_empty() -> Self {
1513 Self {
1514 network_types: fidl::new_empty!(
1515 fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16>,
1516 D
1517 ),
1518 }
1519 }
1520
1521 #[inline]
1522 unsafe fn decode(
1523 &mut self,
1524 decoder: &mut fidl::encoding::Decoder<'_, D>,
1525 offset: usize,
1526 _depth: fidl::encoding::Depth,
1527 ) -> fidl::Result<()> {
1528 decoder.debug_check_bounds::<Self>(offset);
1529 fidl::decode!(
1531 fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16>,
1532 D,
1533 &mut self.network_types,
1534 decoder,
1535 offset + 0,
1536 _depth
1537 )?;
1538 Ok(())
1539 }
1540 }
1541
1542 impl fidl::encoding::ValueTypeMarker for DeviceProvisionNetworkRequest {
1543 type Borrowed<'a> = &'a Self;
1544 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1545 value
1546 }
1547 }
1548
1549 unsafe impl fidl::encoding::TypeMarker for DeviceProvisionNetworkRequest {
1550 type Owned = Self;
1551
1552 #[inline(always)]
1553 fn inline_align(_context: fidl::encoding::Context) -> usize {
1554 8
1555 }
1556
1557 #[inline(always)]
1558 fn inline_size(_context: fidl::encoding::Context) -> usize {
1559 32
1560 }
1561 }
1562
1563 unsafe impl<D: fidl::encoding::ResourceDialect>
1564 fidl::encoding::Encode<DeviceProvisionNetworkRequest, D>
1565 for &DeviceProvisionNetworkRequest
1566 {
1567 #[inline]
1568 unsafe fn encode(
1569 self,
1570 encoder: &mut fidl::encoding::Encoder<'_, D>,
1571 offset: usize,
1572 _depth: fidl::encoding::Depth,
1573 ) -> fidl::Result<()> {
1574 encoder.debug_check_bounds::<DeviceProvisionNetworkRequest>(offset);
1575 fidl::encoding::Encode::<DeviceProvisionNetworkRequest, D>::encode(
1577 (<ProvisioningParams as fidl::encoding::ValueTypeMarker>::borrow(&self.params),),
1578 encoder,
1579 offset,
1580 _depth,
1581 )
1582 }
1583 }
1584 unsafe impl<
1585 D: fidl::encoding::ResourceDialect,
1586 T0: fidl::encoding::Encode<ProvisioningParams, D>,
1587 > fidl::encoding::Encode<DeviceProvisionNetworkRequest, D> for (T0,)
1588 {
1589 #[inline]
1590 unsafe fn encode(
1591 self,
1592 encoder: &mut fidl::encoding::Encoder<'_, D>,
1593 offset: usize,
1594 depth: fidl::encoding::Depth,
1595 ) -> fidl::Result<()> {
1596 encoder.debug_check_bounds::<DeviceProvisionNetworkRequest>(offset);
1597 self.0.encode(encoder, offset + 0, depth)?;
1601 Ok(())
1602 }
1603 }
1604
1605 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1606 for DeviceProvisionNetworkRequest
1607 {
1608 #[inline(always)]
1609 fn new_empty() -> Self {
1610 Self { params: fidl::new_empty!(ProvisioningParams, D) }
1611 }
1612
1613 #[inline]
1614 unsafe fn decode(
1615 &mut self,
1616 decoder: &mut fidl::encoding::Decoder<'_, D>,
1617 offset: usize,
1618 _depth: fidl::encoding::Depth,
1619 ) -> fidl::Result<()> {
1620 decoder.debug_check_bounds::<Self>(offset);
1621 fidl::decode!(ProvisioningParams, D, &mut self.params, decoder, offset + 0, _depth)?;
1623 Ok(())
1624 }
1625 }
1626
1627 impl fidl::encoding::ValueTypeMarker for DeviceSetActiveRequest {
1628 type Borrowed<'a> = &'a Self;
1629 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1630 value
1631 }
1632 }
1633
1634 unsafe impl fidl::encoding::TypeMarker for DeviceSetActiveRequest {
1635 type Owned = Self;
1636
1637 #[inline(always)]
1638 fn inline_align(_context: fidl::encoding::Context) -> usize {
1639 1
1640 }
1641
1642 #[inline(always)]
1643 fn inline_size(_context: fidl::encoding::Context) -> usize {
1644 1
1645 }
1646 }
1647
1648 unsafe impl<D: fidl::encoding::ResourceDialect>
1649 fidl::encoding::Encode<DeviceSetActiveRequest, D> for &DeviceSetActiveRequest
1650 {
1651 #[inline]
1652 unsafe fn encode(
1653 self,
1654 encoder: &mut fidl::encoding::Encoder<'_, D>,
1655 offset: usize,
1656 _depth: fidl::encoding::Depth,
1657 ) -> fidl::Result<()> {
1658 encoder.debug_check_bounds::<DeviceSetActiveRequest>(offset);
1659 fidl::encoding::Encode::<DeviceSetActiveRequest, D>::encode(
1661 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.active),),
1662 encoder,
1663 offset,
1664 _depth,
1665 )
1666 }
1667 }
1668 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
1669 fidl::encoding::Encode<DeviceSetActiveRequest, D> for (T0,)
1670 {
1671 #[inline]
1672 unsafe fn encode(
1673 self,
1674 encoder: &mut fidl::encoding::Encoder<'_, D>,
1675 offset: usize,
1676 depth: fidl::encoding::Depth,
1677 ) -> fidl::Result<()> {
1678 encoder.debug_check_bounds::<DeviceSetActiveRequest>(offset);
1679 self.0.encode(encoder, offset + 0, depth)?;
1683 Ok(())
1684 }
1685 }
1686
1687 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1688 for DeviceSetActiveRequest
1689 {
1690 #[inline(always)]
1691 fn new_empty() -> Self {
1692 Self { active: fidl::new_empty!(bool, D) }
1693 }
1694
1695 #[inline]
1696 unsafe fn decode(
1697 &mut self,
1698 decoder: &mut fidl::encoding::Decoder<'_, D>,
1699 offset: usize,
1700 _depth: fidl::encoding::Depth,
1701 ) -> fidl::Result<()> {
1702 decoder.debug_check_bounds::<Self>(offset);
1703 fidl::decode!(bool, D, &mut self.active, decoder, offset + 0, _depth)?;
1705 Ok(())
1706 }
1707 }
1708
1709 impl fidl::encoding::ValueTypeMarker for DeviceWatchDeviceStateResponse {
1710 type Borrowed<'a> = &'a Self;
1711 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1712 value
1713 }
1714 }
1715
1716 unsafe impl fidl::encoding::TypeMarker for DeviceWatchDeviceStateResponse {
1717 type Owned = Self;
1718
1719 #[inline(always)]
1720 fn inline_align(_context: fidl::encoding::Context) -> usize {
1721 8
1722 }
1723
1724 #[inline(always)]
1725 fn inline_size(_context: fidl::encoding::Context) -> usize {
1726 16
1727 }
1728 }
1729
1730 unsafe impl<D: fidl::encoding::ResourceDialect>
1731 fidl::encoding::Encode<DeviceWatchDeviceStateResponse, D>
1732 for &DeviceWatchDeviceStateResponse
1733 {
1734 #[inline]
1735 unsafe fn encode(
1736 self,
1737 encoder: &mut fidl::encoding::Encoder<'_, D>,
1738 offset: usize,
1739 _depth: fidl::encoding::Depth,
1740 ) -> fidl::Result<()> {
1741 encoder.debug_check_bounds::<DeviceWatchDeviceStateResponse>(offset);
1742 fidl::encoding::Encode::<DeviceWatchDeviceStateResponse, D>::encode(
1744 (<DeviceState as fidl::encoding::ValueTypeMarker>::borrow(
1745 &self.device_combined_state,
1746 ),),
1747 encoder,
1748 offset,
1749 _depth,
1750 )
1751 }
1752 }
1753 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DeviceState, D>>
1754 fidl::encoding::Encode<DeviceWatchDeviceStateResponse, D> for (T0,)
1755 {
1756 #[inline]
1757 unsafe fn encode(
1758 self,
1759 encoder: &mut fidl::encoding::Encoder<'_, D>,
1760 offset: usize,
1761 depth: fidl::encoding::Depth,
1762 ) -> fidl::Result<()> {
1763 encoder.debug_check_bounds::<DeviceWatchDeviceStateResponse>(offset);
1764 self.0.encode(encoder, offset + 0, depth)?;
1768 Ok(())
1769 }
1770 }
1771
1772 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1773 for DeviceWatchDeviceStateResponse
1774 {
1775 #[inline(always)]
1776 fn new_empty() -> Self {
1777 Self { device_combined_state: fidl::new_empty!(DeviceState, D) }
1778 }
1779
1780 #[inline]
1781 unsafe fn decode(
1782 &mut self,
1783 decoder: &mut fidl::encoding::Decoder<'_, D>,
1784 offset: usize,
1785 _depth: fidl::encoding::Depth,
1786 ) -> fidl::Result<()> {
1787 decoder.debug_check_bounds::<Self>(offset);
1788 fidl::decode!(
1790 DeviceState,
1791 D,
1792 &mut self.device_combined_state,
1793 decoder,
1794 offset + 0,
1795 _depth
1796 )?;
1797 Ok(())
1798 }
1799 }
1800
1801 impl fidl::encoding::ValueTypeMarker for EnergyScanResultStreamNextResponse {
1802 type Borrowed<'a> = &'a Self;
1803 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1804 value
1805 }
1806 }
1807
1808 unsafe impl fidl::encoding::TypeMarker for EnergyScanResultStreamNextResponse {
1809 type Owned = Self;
1810
1811 #[inline(always)]
1812 fn inline_align(_context: fidl::encoding::Context) -> usize {
1813 8
1814 }
1815
1816 #[inline(always)]
1817 fn inline_size(_context: fidl::encoding::Context) -> usize {
1818 16
1819 }
1820 }
1821
1822 unsafe impl<D: fidl::encoding::ResourceDialect>
1823 fidl::encoding::Encode<EnergyScanResultStreamNextResponse, D>
1824 for &EnergyScanResultStreamNextResponse
1825 {
1826 #[inline]
1827 unsafe fn encode(
1828 self,
1829 encoder: &mut fidl::encoding::Encoder<'_, D>,
1830 offset: usize,
1831 _depth: fidl::encoding::Depth,
1832 ) -> fidl::Result<()> {
1833 encoder.debug_check_bounds::<EnergyScanResultStreamNextResponse>(offset);
1834 fidl::encoding::Encode::<EnergyScanResultStreamNextResponse, D>::encode(
1836 (
1837 <fidl::encoding::Vector<EnergyScanResult, 32> as fidl::encoding::ValueTypeMarker>::borrow(&self.results),
1838 ),
1839 encoder, offset, _depth
1840 )
1841 }
1842 }
1843 unsafe impl<
1844 D: fidl::encoding::ResourceDialect,
1845 T0: fidl::encoding::Encode<fidl::encoding::Vector<EnergyScanResult, 32>, D>,
1846 > fidl::encoding::Encode<EnergyScanResultStreamNextResponse, D> for (T0,)
1847 {
1848 #[inline]
1849 unsafe fn encode(
1850 self,
1851 encoder: &mut fidl::encoding::Encoder<'_, D>,
1852 offset: usize,
1853 depth: fidl::encoding::Depth,
1854 ) -> fidl::Result<()> {
1855 encoder.debug_check_bounds::<EnergyScanResultStreamNextResponse>(offset);
1856 self.0.encode(encoder, offset + 0, depth)?;
1860 Ok(())
1861 }
1862 }
1863
1864 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1865 for EnergyScanResultStreamNextResponse
1866 {
1867 #[inline(always)]
1868 fn new_empty() -> Self {
1869 Self { results: fidl::new_empty!(fidl::encoding::Vector<EnergyScanResult, 32>, D) }
1870 }
1871
1872 #[inline]
1873 unsafe fn decode(
1874 &mut self,
1875 decoder: &mut fidl::encoding::Decoder<'_, D>,
1876 offset: usize,
1877 _depth: fidl::encoding::Depth,
1878 ) -> fidl::Result<()> {
1879 decoder.debug_check_bounds::<Self>(offset);
1880 fidl::decode!(fidl::encoding::Vector<EnergyScanResult, 32>, D, &mut self.results, decoder, offset + 0, _depth)?;
1882 Ok(())
1883 }
1884 }
1885
1886 impl fidl::encoding::ValueTypeMarker for ProvisioningParams {
1887 type Borrowed<'a> = &'a Self;
1888 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1889 value
1890 }
1891 }
1892
1893 unsafe impl fidl::encoding::TypeMarker for ProvisioningParams {
1894 type Owned = Self;
1895
1896 #[inline(always)]
1897 fn inline_align(_context: fidl::encoding::Context) -> usize {
1898 8
1899 }
1900
1901 #[inline(always)]
1902 fn inline_size(_context: fidl::encoding::Context) -> usize {
1903 32
1904 }
1905 }
1906
1907 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProvisioningParams, D>
1908 for &ProvisioningParams
1909 {
1910 #[inline]
1911 unsafe fn encode(
1912 self,
1913 encoder: &mut fidl::encoding::Encoder<'_, D>,
1914 offset: usize,
1915 _depth: fidl::encoding::Depth,
1916 ) -> fidl::Result<()> {
1917 encoder.debug_check_bounds::<ProvisioningParams>(offset);
1918 fidl::encoding::Encode::<ProvisioningParams, D>::encode(
1920 (
1921 <Identity as fidl::encoding::ValueTypeMarker>::borrow(&self.identity),
1922 <fidl::encoding::OptionalUnion<Credential> as fidl::encoding::ValueTypeMarker>::borrow(&self.credential),
1923 ),
1924 encoder, offset, _depth
1925 )
1926 }
1927 }
1928 unsafe impl<
1929 D: fidl::encoding::ResourceDialect,
1930 T0: fidl::encoding::Encode<Identity, D>,
1931 T1: fidl::encoding::Encode<fidl::encoding::OptionalUnion<Credential>, D>,
1932 > fidl::encoding::Encode<ProvisioningParams, D> for (T0, T1)
1933 {
1934 #[inline]
1935 unsafe fn encode(
1936 self,
1937 encoder: &mut fidl::encoding::Encoder<'_, D>,
1938 offset: usize,
1939 depth: fidl::encoding::Depth,
1940 ) -> fidl::Result<()> {
1941 encoder.debug_check_bounds::<ProvisioningParams>(offset);
1942 self.0.encode(encoder, offset + 0, depth)?;
1946 self.1.encode(encoder, offset + 16, depth)?;
1947 Ok(())
1948 }
1949 }
1950
1951 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProvisioningParams {
1952 #[inline(always)]
1953 fn new_empty() -> Self {
1954 Self {
1955 identity: fidl::new_empty!(Identity, D),
1956 credential: fidl::new_empty!(fidl::encoding::OptionalUnion<Credential>, D),
1957 }
1958 }
1959
1960 #[inline]
1961 unsafe fn decode(
1962 &mut self,
1963 decoder: &mut fidl::encoding::Decoder<'_, D>,
1964 offset: usize,
1965 _depth: fidl::encoding::Depth,
1966 ) -> fidl::Result<()> {
1967 decoder.debug_check_bounds::<Self>(offset);
1968 fidl::decode!(Identity, D, &mut self.identity, decoder, offset + 0, _depth)?;
1970 fidl::decode!(
1971 fidl::encoding::OptionalUnion<Credential>,
1972 D,
1973 &mut self.credential,
1974 decoder,
1975 offset + 16,
1976 _depth
1977 )?;
1978 Ok(())
1979 }
1980 }
1981
1982 impl AllCounters {
1983 #[inline(always)]
1984 fn max_ordinal_present(&self) -> u64 {
1985 if let Some(_) = self.mle {
1986 return 9;
1987 }
1988 if let Some(_) = self.border_agent {
1989 return 8;
1990 }
1991 if let Some(_) = self.ip_rx {
1992 return 7;
1993 }
1994 if let Some(_) = self.ip_tx {
1995 return 6;
1996 }
1997 if let Some(_) = self.coex_saturated {
1998 return 5;
1999 }
2000 if let Some(_) = self.coex_rx {
2001 return 4;
2002 }
2003 if let Some(_) = self.coex_tx {
2004 return 3;
2005 }
2006 if let Some(_) = self.mac_rx {
2007 return 2;
2008 }
2009 if let Some(_) = self.mac_tx {
2010 return 1;
2011 }
2012 0
2013 }
2014 }
2015
2016 impl fidl::encoding::ValueTypeMarker for AllCounters {
2017 type Borrowed<'a> = &'a Self;
2018 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2019 value
2020 }
2021 }
2022
2023 unsafe impl fidl::encoding::TypeMarker for AllCounters {
2024 type Owned = Self;
2025
2026 #[inline(always)]
2027 fn inline_align(_context: fidl::encoding::Context) -> usize {
2028 8
2029 }
2030
2031 #[inline(always)]
2032 fn inline_size(_context: fidl::encoding::Context) -> usize {
2033 16
2034 }
2035 }
2036
2037 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllCounters, D>
2038 for &AllCounters
2039 {
2040 unsafe fn encode(
2041 self,
2042 encoder: &mut fidl::encoding::Encoder<'_, D>,
2043 offset: usize,
2044 mut depth: fidl::encoding::Depth,
2045 ) -> fidl::Result<()> {
2046 encoder.debug_check_bounds::<AllCounters>(offset);
2047 let max_ordinal: u64 = self.max_ordinal_present();
2049 encoder.write_num(max_ordinal, offset);
2050 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2051 if max_ordinal == 0 {
2053 return Ok(());
2054 }
2055 depth.increment()?;
2056 let envelope_size = 8;
2057 let bytes_len = max_ordinal as usize * envelope_size;
2058 #[allow(unused_variables)]
2059 let offset = encoder.out_of_line_offset(bytes_len);
2060 let mut _prev_end_offset: usize = 0;
2061 if 1 > max_ordinal {
2062 return Ok(());
2063 }
2064
2065 let cur_offset: usize = (1 - 1) * envelope_size;
2068
2069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2071
2072 fidl::encoding::encode_in_envelope_optional::<MacCounters, D>(
2077 self.mac_tx.as_ref().map(<MacCounters as fidl::encoding::ValueTypeMarker>::borrow),
2078 encoder,
2079 offset + cur_offset,
2080 depth,
2081 )?;
2082
2083 _prev_end_offset = cur_offset + envelope_size;
2084 if 2 > max_ordinal {
2085 return Ok(());
2086 }
2087
2088 let cur_offset: usize = (2 - 1) * envelope_size;
2091
2092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2094
2095 fidl::encoding::encode_in_envelope_optional::<MacCounters, D>(
2100 self.mac_rx.as_ref().map(<MacCounters as fidl::encoding::ValueTypeMarker>::borrow),
2101 encoder,
2102 offset + cur_offset,
2103 depth,
2104 )?;
2105
2106 _prev_end_offset = cur_offset + envelope_size;
2107 if 3 > max_ordinal {
2108 return Ok(());
2109 }
2110
2111 let cur_offset: usize = (3 - 1) * envelope_size;
2114
2115 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2117
2118 fidl::encoding::encode_in_envelope_optional::<CoexCounters, D>(
2123 self.coex_tx
2124 .as_ref()
2125 .map(<CoexCounters as fidl::encoding::ValueTypeMarker>::borrow),
2126 encoder,
2127 offset + cur_offset,
2128 depth,
2129 )?;
2130
2131 _prev_end_offset = cur_offset + envelope_size;
2132 if 4 > max_ordinal {
2133 return Ok(());
2134 }
2135
2136 let cur_offset: usize = (4 - 1) * envelope_size;
2139
2140 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2142
2143 fidl::encoding::encode_in_envelope_optional::<CoexCounters, D>(
2148 self.coex_rx
2149 .as_ref()
2150 .map(<CoexCounters as fidl::encoding::ValueTypeMarker>::borrow),
2151 encoder,
2152 offset + cur_offset,
2153 depth,
2154 )?;
2155
2156 _prev_end_offset = cur_offset + envelope_size;
2157 if 5 > max_ordinal {
2158 return Ok(());
2159 }
2160
2161 let cur_offset: usize = (5 - 1) * envelope_size;
2164
2165 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2167
2168 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2173 self.coex_saturated.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2174 encoder,
2175 offset + cur_offset,
2176 depth,
2177 )?;
2178
2179 _prev_end_offset = cur_offset + envelope_size;
2180 if 6 > max_ordinal {
2181 return Ok(());
2182 }
2183
2184 let cur_offset: usize = (6 - 1) * envelope_size;
2187
2188 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2190
2191 fidl::encoding::encode_in_envelope_optional::<IpCounters, D>(
2196 self.ip_tx.as_ref().map(<IpCounters as fidl::encoding::ValueTypeMarker>::borrow),
2197 encoder,
2198 offset + cur_offset,
2199 depth,
2200 )?;
2201
2202 _prev_end_offset = cur_offset + envelope_size;
2203 if 7 > max_ordinal {
2204 return Ok(());
2205 }
2206
2207 let cur_offset: usize = (7 - 1) * envelope_size;
2210
2211 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2213
2214 fidl::encoding::encode_in_envelope_optional::<IpCounters, D>(
2219 self.ip_rx.as_ref().map(<IpCounters as fidl::encoding::ValueTypeMarker>::borrow),
2220 encoder,
2221 offset + cur_offset,
2222 depth,
2223 )?;
2224
2225 _prev_end_offset = cur_offset + envelope_size;
2226 if 8 > max_ordinal {
2227 return Ok(());
2228 }
2229
2230 let cur_offset: usize = (8 - 1) * envelope_size;
2233
2234 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2236
2237 fidl::encoding::encode_in_envelope_optional::<BorderAgentCounters, D>(
2242 self.border_agent
2243 .as_ref()
2244 .map(<BorderAgentCounters as fidl::encoding::ValueTypeMarker>::borrow),
2245 encoder,
2246 offset + cur_offset,
2247 depth,
2248 )?;
2249
2250 _prev_end_offset = cur_offset + envelope_size;
2251 if 9 > max_ordinal {
2252 return Ok(());
2253 }
2254
2255 let cur_offset: usize = (9 - 1) * envelope_size;
2258
2259 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2261
2262 fidl::encoding::encode_in_envelope_optional::<MleCounters, D>(
2267 self.mle.as_ref().map(<MleCounters as fidl::encoding::ValueTypeMarker>::borrow),
2268 encoder,
2269 offset + cur_offset,
2270 depth,
2271 )?;
2272
2273 _prev_end_offset = cur_offset + envelope_size;
2274
2275 Ok(())
2276 }
2277 }
2278
2279 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllCounters {
2280 #[inline(always)]
2281 fn new_empty() -> Self {
2282 Self::default()
2283 }
2284
2285 unsafe fn decode(
2286 &mut self,
2287 decoder: &mut fidl::encoding::Decoder<'_, D>,
2288 offset: usize,
2289 mut depth: fidl::encoding::Depth,
2290 ) -> fidl::Result<()> {
2291 decoder.debug_check_bounds::<Self>(offset);
2292 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2293 None => return Err(fidl::Error::NotNullable),
2294 Some(len) => len,
2295 };
2296 if len == 0 {
2298 return Ok(());
2299 };
2300 depth.increment()?;
2301 let envelope_size = 8;
2302 let bytes_len = len * envelope_size;
2303 let offset = decoder.out_of_line_offset(bytes_len)?;
2304 let mut _next_ordinal_to_read = 0;
2306 let mut next_offset = offset;
2307 let end_offset = offset + bytes_len;
2308 _next_ordinal_to_read += 1;
2309 if next_offset >= end_offset {
2310 return Ok(());
2311 }
2312
2313 while _next_ordinal_to_read < 1 {
2315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2316 _next_ordinal_to_read += 1;
2317 next_offset += envelope_size;
2318 }
2319
2320 let next_out_of_line = decoder.next_out_of_line();
2321 let handles_before = decoder.remaining_handles();
2322 if let Some((inlined, num_bytes, num_handles)) =
2323 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2324 {
2325 let member_inline_size =
2326 <MacCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2327 if inlined != (member_inline_size <= 4) {
2328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2329 }
2330 let inner_offset;
2331 let mut inner_depth = depth.clone();
2332 if inlined {
2333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2334 inner_offset = next_offset;
2335 } else {
2336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2337 inner_depth.increment()?;
2338 }
2339 let val_ref = self.mac_tx.get_or_insert_with(|| fidl::new_empty!(MacCounters, D));
2340 fidl::decode!(MacCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2341 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2342 {
2343 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2344 }
2345 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2346 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2347 }
2348 }
2349
2350 next_offset += envelope_size;
2351 _next_ordinal_to_read += 1;
2352 if next_offset >= end_offset {
2353 return Ok(());
2354 }
2355
2356 while _next_ordinal_to_read < 2 {
2358 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2359 _next_ordinal_to_read += 1;
2360 next_offset += envelope_size;
2361 }
2362
2363 let next_out_of_line = decoder.next_out_of_line();
2364 let handles_before = decoder.remaining_handles();
2365 if let Some((inlined, num_bytes, num_handles)) =
2366 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2367 {
2368 let member_inline_size =
2369 <MacCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2370 if inlined != (member_inline_size <= 4) {
2371 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2372 }
2373 let inner_offset;
2374 let mut inner_depth = depth.clone();
2375 if inlined {
2376 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2377 inner_offset = next_offset;
2378 } else {
2379 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2380 inner_depth.increment()?;
2381 }
2382 let val_ref = self.mac_rx.get_or_insert_with(|| fidl::new_empty!(MacCounters, D));
2383 fidl::decode!(MacCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2384 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2385 {
2386 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2387 }
2388 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2389 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2390 }
2391 }
2392
2393 next_offset += envelope_size;
2394 _next_ordinal_to_read += 1;
2395 if next_offset >= end_offset {
2396 return Ok(());
2397 }
2398
2399 while _next_ordinal_to_read < 3 {
2401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2402 _next_ordinal_to_read += 1;
2403 next_offset += envelope_size;
2404 }
2405
2406 let next_out_of_line = decoder.next_out_of_line();
2407 let handles_before = decoder.remaining_handles();
2408 if let Some((inlined, num_bytes, num_handles)) =
2409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2410 {
2411 let member_inline_size =
2412 <CoexCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2413 if inlined != (member_inline_size <= 4) {
2414 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2415 }
2416 let inner_offset;
2417 let mut inner_depth = depth.clone();
2418 if inlined {
2419 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2420 inner_offset = next_offset;
2421 } else {
2422 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2423 inner_depth.increment()?;
2424 }
2425 let val_ref = self.coex_tx.get_or_insert_with(|| fidl::new_empty!(CoexCounters, D));
2426 fidl::decode!(CoexCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2428 {
2429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2430 }
2431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2433 }
2434 }
2435
2436 next_offset += envelope_size;
2437 _next_ordinal_to_read += 1;
2438 if next_offset >= end_offset {
2439 return Ok(());
2440 }
2441
2442 while _next_ordinal_to_read < 4 {
2444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2445 _next_ordinal_to_read += 1;
2446 next_offset += envelope_size;
2447 }
2448
2449 let next_out_of_line = decoder.next_out_of_line();
2450 let handles_before = decoder.remaining_handles();
2451 if let Some((inlined, num_bytes, num_handles)) =
2452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2453 {
2454 let member_inline_size =
2455 <CoexCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2456 if inlined != (member_inline_size <= 4) {
2457 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2458 }
2459 let inner_offset;
2460 let mut inner_depth = depth.clone();
2461 if inlined {
2462 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2463 inner_offset = next_offset;
2464 } else {
2465 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2466 inner_depth.increment()?;
2467 }
2468 let val_ref = self.coex_rx.get_or_insert_with(|| fidl::new_empty!(CoexCounters, D));
2469 fidl::decode!(CoexCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2471 {
2472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2473 }
2474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2476 }
2477 }
2478
2479 next_offset += envelope_size;
2480 _next_ordinal_to_read += 1;
2481 if next_offset >= end_offset {
2482 return Ok(());
2483 }
2484
2485 while _next_ordinal_to_read < 5 {
2487 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2488 _next_ordinal_to_read += 1;
2489 next_offset += envelope_size;
2490 }
2491
2492 let next_out_of_line = decoder.next_out_of_line();
2493 let handles_before = decoder.remaining_handles();
2494 if let Some((inlined, num_bytes, num_handles)) =
2495 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2496 {
2497 let member_inline_size =
2498 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2499 if inlined != (member_inline_size <= 4) {
2500 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2501 }
2502 let inner_offset;
2503 let mut inner_depth = depth.clone();
2504 if inlined {
2505 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2506 inner_offset = next_offset;
2507 } else {
2508 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2509 inner_depth.increment()?;
2510 }
2511 let val_ref = self.coex_saturated.get_or_insert_with(|| fidl::new_empty!(bool, D));
2512 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2513 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2514 {
2515 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2516 }
2517 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2518 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2519 }
2520 }
2521
2522 next_offset += envelope_size;
2523 _next_ordinal_to_read += 1;
2524 if next_offset >= end_offset {
2525 return Ok(());
2526 }
2527
2528 while _next_ordinal_to_read < 6 {
2530 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2531 _next_ordinal_to_read += 1;
2532 next_offset += envelope_size;
2533 }
2534
2535 let next_out_of_line = decoder.next_out_of_line();
2536 let handles_before = decoder.remaining_handles();
2537 if let Some((inlined, num_bytes, num_handles)) =
2538 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2539 {
2540 let member_inline_size =
2541 <IpCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2542 if inlined != (member_inline_size <= 4) {
2543 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2544 }
2545 let inner_offset;
2546 let mut inner_depth = depth.clone();
2547 if inlined {
2548 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2549 inner_offset = next_offset;
2550 } else {
2551 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2552 inner_depth.increment()?;
2553 }
2554 let val_ref = self.ip_tx.get_or_insert_with(|| fidl::new_empty!(IpCounters, D));
2555 fidl::decode!(IpCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2556 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2557 {
2558 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2559 }
2560 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2561 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2562 }
2563 }
2564
2565 next_offset += envelope_size;
2566 _next_ordinal_to_read += 1;
2567 if next_offset >= end_offset {
2568 return Ok(());
2569 }
2570
2571 while _next_ordinal_to_read < 7 {
2573 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2574 _next_ordinal_to_read += 1;
2575 next_offset += envelope_size;
2576 }
2577
2578 let next_out_of_line = decoder.next_out_of_line();
2579 let handles_before = decoder.remaining_handles();
2580 if let Some((inlined, num_bytes, num_handles)) =
2581 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2582 {
2583 let member_inline_size =
2584 <IpCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2585 if inlined != (member_inline_size <= 4) {
2586 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2587 }
2588 let inner_offset;
2589 let mut inner_depth = depth.clone();
2590 if inlined {
2591 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2592 inner_offset = next_offset;
2593 } else {
2594 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2595 inner_depth.increment()?;
2596 }
2597 let val_ref = self.ip_rx.get_or_insert_with(|| fidl::new_empty!(IpCounters, D));
2598 fidl::decode!(IpCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2599 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2600 {
2601 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2602 }
2603 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2604 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2605 }
2606 }
2607
2608 next_offset += envelope_size;
2609 _next_ordinal_to_read += 1;
2610 if next_offset >= end_offset {
2611 return Ok(());
2612 }
2613
2614 while _next_ordinal_to_read < 8 {
2616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2617 _next_ordinal_to_read += 1;
2618 next_offset += envelope_size;
2619 }
2620
2621 let next_out_of_line = decoder.next_out_of_line();
2622 let handles_before = decoder.remaining_handles();
2623 if let Some((inlined, num_bytes, num_handles)) =
2624 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2625 {
2626 let member_inline_size =
2627 <BorderAgentCounters as fidl::encoding::TypeMarker>::inline_size(
2628 decoder.context,
2629 );
2630 if inlined != (member_inline_size <= 4) {
2631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2632 }
2633 let inner_offset;
2634 let mut inner_depth = depth.clone();
2635 if inlined {
2636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2637 inner_offset = next_offset;
2638 } else {
2639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2640 inner_depth.increment()?;
2641 }
2642 let val_ref = self
2643 .border_agent
2644 .get_or_insert_with(|| fidl::new_empty!(BorderAgentCounters, D));
2645 fidl::decode!(BorderAgentCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2646 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2647 {
2648 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2649 }
2650 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2651 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2652 }
2653 }
2654
2655 next_offset += envelope_size;
2656 _next_ordinal_to_read += 1;
2657 if next_offset >= end_offset {
2658 return Ok(());
2659 }
2660
2661 while _next_ordinal_to_read < 9 {
2663 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2664 _next_ordinal_to_read += 1;
2665 next_offset += envelope_size;
2666 }
2667
2668 let next_out_of_line = decoder.next_out_of_line();
2669 let handles_before = decoder.remaining_handles();
2670 if let Some((inlined, num_bytes, num_handles)) =
2671 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2672 {
2673 let member_inline_size =
2674 <MleCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2675 if inlined != (member_inline_size <= 4) {
2676 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2677 }
2678 let inner_offset;
2679 let mut inner_depth = depth.clone();
2680 if inlined {
2681 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2682 inner_offset = next_offset;
2683 } else {
2684 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2685 inner_depth.increment()?;
2686 }
2687 let val_ref = self.mle.get_or_insert_with(|| fidl::new_empty!(MleCounters, D));
2688 fidl::decode!(MleCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2689 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2690 {
2691 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2692 }
2693 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2694 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2695 }
2696 }
2697
2698 next_offset += envelope_size;
2699
2700 while next_offset < end_offset {
2702 _next_ordinal_to_read += 1;
2703 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2704 next_offset += envelope_size;
2705 }
2706
2707 Ok(())
2708 }
2709 }
2710
2711 impl BorderAgentCounters {
2712 #[inline(always)]
2713 fn max_ordinal_present(&self) -> u64 {
2714 if let Some(_) = self.mgmt_pending_gets {
2715 return 16;
2716 }
2717 if let Some(_) = self.mgmt_active_gets {
2718 return 15;
2719 }
2720 if let Some(_) = self.pskc_commissioner_petitions {
2721 return 14;
2722 }
2723 if let Some(_) = self.pskc_secure_session_failures {
2724 return 13;
2725 }
2726 if let Some(_) = self.pskc_secure_session_successes {
2727 return 12;
2728 }
2729 if let Some(_) = self.epskc_commissioner_petitions {
2730 return 11;
2731 }
2732 if let Some(_) = self.epskc_secure_session_failures {
2733 return 10;
2734 }
2735 if let Some(_) = self.epskc_secure_session_successes {
2736 return 9;
2737 }
2738 if let Some(_) = self.epskc_start_secure_session_errors {
2739 return 8;
2740 }
2741 if let Some(_) = self.epskc_invalid_args_errors {
2742 return 7;
2743 }
2744 if let Some(_) = self.epskc_invalid_ba_state_errors {
2745 return 6;
2746 }
2747 if let Some(_) = self.epskc_deactivation_disconnects {
2748 return 5;
2749 }
2750 if let Some(_) = self.epskc_deactivation_max_attempts {
2751 return 4;
2752 }
2753 if let Some(_) = self.epskc_deactivation_timeouts {
2754 return 3;
2755 }
2756 if let Some(_) = self.epskc_deactivation_clears {
2757 return 2;
2758 }
2759 if let Some(_) = self.epskc_activations {
2760 return 1;
2761 }
2762 0
2763 }
2764 }
2765
2766 impl fidl::encoding::ValueTypeMarker for BorderAgentCounters {
2767 type Borrowed<'a> = &'a Self;
2768 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2769 value
2770 }
2771 }
2772
2773 unsafe impl fidl::encoding::TypeMarker for BorderAgentCounters {
2774 type Owned = Self;
2775
2776 #[inline(always)]
2777 fn inline_align(_context: fidl::encoding::Context) -> usize {
2778 8
2779 }
2780
2781 #[inline(always)]
2782 fn inline_size(_context: fidl::encoding::Context) -> usize {
2783 16
2784 }
2785 }
2786
2787 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BorderAgentCounters, D>
2788 for &BorderAgentCounters
2789 {
2790 unsafe fn encode(
2791 self,
2792 encoder: &mut fidl::encoding::Encoder<'_, D>,
2793 offset: usize,
2794 mut depth: fidl::encoding::Depth,
2795 ) -> fidl::Result<()> {
2796 encoder.debug_check_bounds::<BorderAgentCounters>(offset);
2797 let max_ordinal: u64 = self.max_ordinal_present();
2799 encoder.write_num(max_ordinal, offset);
2800 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2801 if max_ordinal == 0 {
2803 return Ok(());
2804 }
2805 depth.increment()?;
2806 let envelope_size = 8;
2807 let bytes_len = max_ordinal as usize * envelope_size;
2808 #[allow(unused_variables)]
2809 let offset = encoder.out_of_line_offset(bytes_len);
2810 let mut _prev_end_offset: usize = 0;
2811 if 1 > max_ordinal {
2812 return Ok(());
2813 }
2814
2815 let cur_offset: usize = (1 - 1) * envelope_size;
2818
2819 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2821
2822 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2827 self.epskc_activations
2828 .as_ref()
2829 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2830 encoder,
2831 offset + cur_offset,
2832 depth,
2833 )?;
2834
2835 _prev_end_offset = cur_offset + envelope_size;
2836 if 2 > max_ordinal {
2837 return Ok(());
2838 }
2839
2840 let cur_offset: usize = (2 - 1) * envelope_size;
2843
2844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2846
2847 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2852 self.epskc_deactivation_clears
2853 .as_ref()
2854 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2855 encoder,
2856 offset + cur_offset,
2857 depth,
2858 )?;
2859
2860 _prev_end_offset = cur_offset + envelope_size;
2861 if 3 > max_ordinal {
2862 return Ok(());
2863 }
2864
2865 let cur_offset: usize = (3 - 1) * envelope_size;
2868
2869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2871
2872 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2877 self.epskc_deactivation_timeouts
2878 .as_ref()
2879 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2880 encoder,
2881 offset + cur_offset,
2882 depth,
2883 )?;
2884
2885 _prev_end_offset = cur_offset + envelope_size;
2886 if 4 > max_ordinal {
2887 return Ok(());
2888 }
2889
2890 let cur_offset: usize = (4 - 1) * envelope_size;
2893
2894 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2896
2897 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2902 self.epskc_deactivation_max_attempts
2903 .as_ref()
2904 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2905 encoder,
2906 offset + cur_offset,
2907 depth,
2908 )?;
2909
2910 _prev_end_offset = cur_offset + envelope_size;
2911 if 5 > max_ordinal {
2912 return Ok(());
2913 }
2914
2915 let cur_offset: usize = (5 - 1) * envelope_size;
2918
2919 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2921
2922 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2927 self.epskc_deactivation_disconnects
2928 .as_ref()
2929 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2930 encoder,
2931 offset + cur_offset,
2932 depth,
2933 )?;
2934
2935 _prev_end_offset = cur_offset + envelope_size;
2936 if 6 > max_ordinal {
2937 return Ok(());
2938 }
2939
2940 let cur_offset: usize = (6 - 1) * envelope_size;
2943
2944 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2946
2947 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2952 self.epskc_invalid_ba_state_errors
2953 .as_ref()
2954 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2955 encoder,
2956 offset + cur_offset,
2957 depth,
2958 )?;
2959
2960 _prev_end_offset = cur_offset + envelope_size;
2961 if 7 > max_ordinal {
2962 return Ok(());
2963 }
2964
2965 let cur_offset: usize = (7 - 1) * envelope_size;
2968
2969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2971
2972 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2977 self.epskc_invalid_args_errors
2978 .as_ref()
2979 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2980 encoder,
2981 offset + cur_offset,
2982 depth,
2983 )?;
2984
2985 _prev_end_offset = cur_offset + envelope_size;
2986 if 8 > max_ordinal {
2987 return Ok(());
2988 }
2989
2990 let cur_offset: usize = (8 - 1) * envelope_size;
2993
2994 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2996
2997 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3002 self.epskc_start_secure_session_errors
3003 .as_ref()
3004 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3005 encoder,
3006 offset + cur_offset,
3007 depth,
3008 )?;
3009
3010 _prev_end_offset = cur_offset + envelope_size;
3011 if 9 > max_ordinal {
3012 return Ok(());
3013 }
3014
3015 let cur_offset: usize = (9 - 1) * envelope_size;
3018
3019 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3021
3022 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3027 self.epskc_secure_session_successes
3028 .as_ref()
3029 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3030 encoder,
3031 offset + cur_offset,
3032 depth,
3033 )?;
3034
3035 _prev_end_offset = cur_offset + envelope_size;
3036 if 10 > max_ordinal {
3037 return Ok(());
3038 }
3039
3040 let cur_offset: usize = (10 - 1) * envelope_size;
3043
3044 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3046
3047 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3052 self.epskc_secure_session_failures
3053 .as_ref()
3054 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3055 encoder,
3056 offset + cur_offset,
3057 depth,
3058 )?;
3059
3060 _prev_end_offset = cur_offset + envelope_size;
3061 if 11 > max_ordinal {
3062 return Ok(());
3063 }
3064
3065 let cur_offset: usize = (11 - 1) * envelope_size;
3068
3069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3071
3072 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3077 self.epskc_commissioner_petitions
3078 .as_ref()
3079 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3080 encoder,
3081 offset + cur_offset,
3082 depth,
3083 )?;
3084
3085 _prev_end_offset = cur_offset + envelope_size;
3086 if 12 > max_ordinal {
3087 return Ok(());
3088 }
3089
3090 let cur_offset: usize = (12 - 1) * envelope_size;
3093
3094 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3096
3097 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3102 self.pskc_secure_session_successes
3103 .as_ref()
3104 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3105 encoder,
3106 offset + cur_offset,
3107 depth,
3108 )?;
3109
3110 _prev_end_offset = cur_offset + envelope_size;
3111 if 13 > max_ordinal {
3112 return Ok(());
3113 }
3114
3115 let cur_offset: usize = (13 - 1) * envelope_size;
3118
3119 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3121
3122 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3127 self.pskc_secure_session_failures
3128 .as_ref()
3129 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3130 encoder,
3131 offset + cur_offset,
3132 depth,
3133 )?;
3134
3135 _prev_end_offset = cur_offset + envelope_size;
3136 if 14 > max_ordinal {
3137 return Ok(());
3138 }
3139
3140 let cur_offset: usize = (14 - 1) * envelope_size;
3143
3144 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3146
3147 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3152 self.pskc_commissioner_petitions
3153 .as_ref()
3154 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3155 encoder,
3156 offset + cur_offset,
3157 depth,
3158 )?;
3159
3160 _prev_end_offset = cur_offset + envelope_size;
3161 if 15 > max_ordinal {
3162 return Ok(());
3163 }
3164
3165 let cur_offset: usize = (15 - 1) * envelope_size;
3168
3169 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3171
3172 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3177 self.mgmt_active_gets
3178 .as_ref()
3179 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3180 encoder,
3181 offset + cur_offset,
3182 depth,
3183 )?;
3184
3185 _prev_end_offset = cur_offset + envelope_size;
3186 if 16 > max_ordinal {
3187 return Ok(());
3188 }
3189
3190 let cur_offset: usize = (16 - 1) * envelope_size;
3193
3194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3196
3197 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3202 self.mgmt_pending_gets
3203 .as_ref()
3204 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3205 encoder,
3206 offset + cur_offset,
3207 depth,
3208 )?;
3209
3210 _prev_end_offset = cur_offset + envelope_size;
3211
3212 Ok(())
3213 }
3214 }
3215
3216 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BorderAgentCounters {
3217 #[inline(always)]
3218 fn new_empty() -> Self {
3219 Self::default()
3220 }
3221
3222 unsafe fn decode(
3223 &mut self,
3224 decoder: &mut fidl::encoding::Decoder<'_, D>,
3225 offset: usize,
3226 mut depth: fidl::encoding::Depth,
3227 ) -> fidl::Result<()> {
3228 decoder.debug_check_bounds::<Self>(offset);
3229 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3230 None => return Err(fidl::Error::NotNullable),
3231 Some(len) => len,
3232 };
3233 if len == 0 {
3235 return Ok(());
3236 };
3237 depth.increment()?;
3238 let envelope_size = 8;
3239 let bytes_len = len * envelope_size;
3240 let offset = decoder.out_of_line_offset(bytes_len)?;
3241 let mut _next_ordinal_to_read = 0;
3243 let mut next_offset = offset;
3244 let end_offset = offset + bytes_len;
3245 _next_ordinal_to_read += 1;
3246 if next_offset >= end_offset {
3247 return Ok(());
3248 }
3249
3250 while _next_ordinal_to_read < 1 {
3252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3253 _next_ordinal_to_read += 1;
3254 next_offset += envelope_size;
3255 }
3256
3257 let next_out_of_line = decoder.next_out_of_line();
3258 let handles_before = decoder.remaining_handles();
3259 if let Some((inlined, num_bytes, num_handles)) =
3260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3261 {
3262 let member_inline_size =
3263 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3264 if inlined != (member_inline_size <= 4) {
3265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3266 }
3267 let inner_offset;
3268 let mut inner_depth = depth.clone();
3269 if inlined {
3270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3271 inner_offset = next_offset;
3272 } else {
3273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3274 inner_depth.increment()?;
3275 }
3276 let val_ref =
3277 self.epskc_activations.get_or_insert_with(|| fidl::new_empty!(u32, D));
3278 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3280 {
3281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3282 }
3283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3285 }
3286 }
3287
3288 next_offset += envelope_size;
3289 _next_ordinal_to_read += 1;
3290 if next_offset >= end_offset {
3291 return Ok(());
3292 }
3293
3294 while _next_ordinal_to_read < 2 {
3296 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3297 _next_ordinal_to_read += 1;
3298 next_offset += envelope_size;
3299 }
3300
3301 let next_out_of_line = decoder.next_out_of_line();
3302 let handles_before = decoder.remaining_handles();
3303 if let Some((inlined, num_bytes, num_handles)) =
3304 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3305 {
3306 let member_inline_size =
3307 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3308 if inlined != (member_inline_size <= 4) {
3309 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3310 }
3311 let inner_offset;
3312 let mut inner_depth = depth.clone();
3313 if inlined {
3314 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3315 inner_offset = next_offset;
3316 } else {
3317 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3318 inner_depth.increment()?;
3319 }
3320 let val_ref =
3321 self.epskc_deactivation_clears.get_or_insert_with(|| fidl::new_empty!(u32, D));
3322 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3323 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3324 {
3325 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3326 }
3327 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3328 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3329 }
3330 }
3331
3332 next_offset += envelope_size;
3333 _next_ordinal_to_read += 1;
3334 if next_offset >= end_offset {
3335 return Ok(());
3336 }
3337
3338 while _next_ordinal_to_read < 3 {
3340 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3341 _next_ordinal_to_read += 1;
3342 next_offset += envelope_size;
3343 }
3344
3345 let next_out_of_line = decoder.next_out_of_line();
3346 let handles_before = decoder.remaining_handles();
3347 if let Some((inlined, num_bytes, num_handles)) =
3348 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3349 {
3350 let member_inline_size =
3351 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3352 if inlined != (member_inline_size <= 4) {
3353 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3354 }
3355 let inner_offset;
3356 let mut inner_depth = depth.clone();
3357 if inlined {
3358 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3359 inner_offset = next_offset;
3360 } else {
3361 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3362 inner_depth.increment()?;
3363 }
3364 let val_ref = self
3365 .epskc_deactivation_timeouts
3366 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3367 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3368 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3369 {
3370 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3371 }
3372 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3373 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3374 }
3375 }
3376
3377 next_offset += envelope_size;
3378 _next_ordinal_to_read += 1;
3379 if next_offset >= end_offset {
3380 return Ok(());
3381 }
3382
3383 while _next_ordinal_to_read < 4 {
3385 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3386 _next_ordinal_to_read += 1;
3387 next_offset += envelope_size;
3388 }
3389
3390 let next_out_of_line = decoder.next_out_of_line();
3391 let handles_before = decoder.remaining_handles();
3392 if let Some((inlined, num_bytes, num_handles)) =
3393 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3394 {
3395 let member_inline_size =
3396 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3397 if inlined != (member_inline_size <= 4) {
3398 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3399 }
3400 let inner_offset;
3401 let mut inner_depth = depth.clone();
3402 if inlined {
3403 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3404 inner_offset = next_offset;
3405 } else {
3406 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3407 inner_depth.increment()?;
3408 }
3409 let val_ref = self
3410 .epskc_deactivation_max_attempts
3411 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3412 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3413 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3414 {
3415 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3416 }
3417 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3418 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3419 }
3420 }
3421
3422 next_offset += envelope_size;
3423 _next_ordinal_to_read += 1;
3424 if next_offset >= end_offset {
3425 return Ok(());
3426 }
3427
3428 while _next_ordinal_to_read < 5 {
3430 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3431 _next_ordinal_to_read += 1;
3432 next_offset += envelope_size;
3433 }
3434
3435 let next_out_of_line = decoder.next_out_of_line();
3436 let handles_before = decoder.remaining_handles();
3437 if let Some((inlined, num_bytes, num_handles)) =
3438 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3439 {
3440 let member_inline_size =
3441 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3442 if inlined != (member_inline_size <= 4) {
3443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3444 }
3445 let inner_offset;
3446 let mut inner_depth = depth.clone();
3447 if inlined {
3448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3449 inner_offset = next_offset;
3450 } else {
3451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3452 inner_depth.increment()?;
3453 }
3454 let val_ref = self
3455 .epskc_deactivation_disconnects
3456 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3457 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3458 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3459 {
3460 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3461 }
3462 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3463 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3464 }
3465 }
3466
3467 next_offset += envelope_size;
3468 _next_ordinal_to_read += 1;
3469 if next_offset >= end_offset {
3470 return Ok(());
3471 }
3472
3473 while _next_ordinal_to_read < 6 {
3475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3476 _next_ordinal_to_read += 1;
3477 next_offset += envelope_size;
3478 }
3479
3480 let next_out_of_line = decoder.next_out_of_line();
3481 let handles_before = decoder.remaining_handles();
3482 if let Some((inlined, num_bytes, num_handles)) =
3483 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3484 {
3485 let member_inline_size =
3486 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3487 if inlined != (member_inline_size <= 4) {
3488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3489 }
3490 let inner_offset;
3491 let mut inner_depth = depth.clone();
3492 if inlined {
3493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3494 inner_offset = next_offset;
3495 } else {
3496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3497 inner_depth.increment()?;
3498 }
3499 let val_ref = self
3500 .epskc_invalid_ba_state_errors
3501 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3502 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3503 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3504 {
3505 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3506 }
3507 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3508 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3509 }
3510 }
3511
3512 next_offset += envelope_size;
3513 _next_ordinal_to_read += 1;
3514 if next_offset >= end_offset {
3515 return Ok(());
3516 }
3517
3518 while _next_ordinal_to_read < 7 {
3520 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3521 _next_ordinal_to_read += 1;
3522 next_offset += envelope_size;
3523 }
3524
3525 let next_out_of_line = decoder.next_out_of_line();
3526 let handles_before = decoder.remaining_handles();
3527 if let Some((inlined, num_bytes, num_handles)) =
3528 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3529 {
3530 let member_inline_size =
3531 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3532 if inlined != (member_inline_size <= 4) {
3533 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3534 }
3535 let inner_offset;
3536 let mut inner_depth = depth.clone();
3537 if inlined {
3538 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3539 inner_offset = next_offset;
3540 } else {
3541 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3542 inner_depth.increment()?;
3543 }
3544 let val_ref =
3545 self.epskc_invalid_args_errors.get_or_insert_with(|| fidl::new_empty!(u32, D));
3546 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3547 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3548 {
3549 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3550 }
3551 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3552 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3553 }
3554 }
3555
3556 next_offset += envelope_size;
3557 _next_ordinal_to_read += 1;
3558 if next_offset >= end_offset {
3559 return Ok(());
3560 }
3561
3562 while _next_ordinal_to_read < 8 {
3564 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3565 _next_ordinal_to_read += 1;
3566 next_offset += envelope_size;
3567 }
3568
3569 let next_out_of_line = decoder.next_out_of_line();
3570 let handles_before = decoder.remaining_handles();
3571 if let Some((inlined, num_bytes, num_handles)) =
3572 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3573 {
3574 let member_inline_size =
3575 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3576 if inlined != (member_inline_size <= 4) {
3577 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3578 }
3579 let inner_offset;
3580 let mut inner_depth = depth.clone();
3581 if inlined {
3582 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3583 inner_offset = next_offset;
3584 } else {
3585 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3586 inner_depth.increment()?;
3587 }
3588 let val_ref = self
3589 .epskc_start_secure_session_errors
3590 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3591 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3592 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3593 {
3594 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3595 }
3596 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3597 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3598 }
3599 }
3600
3601 next_offset += envelope_size;
3602 _next_ordinal_to_read += 1;
3603 if next_offset >= end_offset {
3604 return Ok(());
3605 }
3606
3607 while _next_ordinal_to_read < 9 {
3609 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3610 _next_ordinal_to_read += 1;
3611 next_offset += envelope_size;
3612 }
3613
3614 let next_out_of_line = decoder.next_out_of_line();
3615 let handles_before = decoder.remaining_handles();
3616 if let Some((inlined, num_bytes, num_handles)) =
3617 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3618 {
3619 let member_inline_size =
3620 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3621 if inlined != (member_inline_size <= 4) {
3622 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3623 }
3624 let inner_offset;
3625 let mut inner_depth = depth.clone();
3626 if inlined {
3627 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3628 inner_offset = next_offset;
3629 } else {
3630 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3631 inner_depth.increment()?;
3632 }
3633 let val_ref = self
3634 .epskc_secure_session_successes
3635 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3636 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3637 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3638 {
3639 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3640 }
3641 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3642 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3643 }
3644 }
3645
3646 next_offset += envelope_size;
3647 _next_ordinal_to_read += 1;
3648 if next_offset >= end_offset {
3649 return Ok(());
3650 }
3651
3652 while _next_ordinal_to_read < 10 {
3654 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3655 _next_ordinal_to_read += 1;
3656 next_offset += envelope_size;
3657 }
3658
3659 let next_out_of_line = decoder.next_out_of_line();
3660 let handles_before = decoder.remaining_handles();
3661 if let Some((inlined, num_bytes, num_handles)) =
3662 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3663 {
3664 let member_inline_size =
3665 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3666 if inlined != (member_inline_size <= 4) {
3667 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3668 }
3669 let inner_offset;
3670 let mut inner_depth = depth.clone();
3671 if inlined {
3672 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3673 inner_offset = next_offset;
3674 } else {
3675 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3676 inner_depth.increment()?;
3677 }
3678 let val_ref = self
3679 .epskc_secure_session_failures
3680 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3681 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3682 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3683 {
3684 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3685 }
3686 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3687 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3688 }
3689 }
3690
3691 next_offset += envelope_size;
3692 _next_ordinal_to_read += 1;
3693 if next_offset >= end_offset {
3694 return Ok(());
3695 }
3696
3697 while _next_ordinal_to_read < 11 {
3699 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3700 _next_ordinal_to_read += 1;
3701 next_offset += envelope_size;
3702 }
3703
3704 let next_out_of_line = decoder.next_out_of_line();
3705 let handles_before = decoder.remaining_handles();
3706 if let Some((inlined, num_bytes, num_handles)) =
3707 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3708 {
3709 let member_inline_size =
3710 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3711 if inlined != (member_inline_size <= 4) {
3712 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3713 }
3714 let inner_offset;
3715 let mut inner_depth = depth.clone();
3716 if inlined {
3717 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3718 inner_offset = next_offset;
3719 } else {
3720 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3721 inner_depth.increment()?;
3722 }
3723 let val_ref = self
3724 .epskc_commissioner_petitions
3725 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3726 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3727 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3728 {
3729 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3730 }
3731 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3732 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3733 }
3734 }
3735
3736 next_offset += envelope_size;
3737 _next_ordinal_to_read += 1;
3738 if next_offset >= end_offset {
3739 return Ok(());
3740 }
3741
3742 while _next_ordinal_to_read < 12 {
3744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3745 _next_ordinal_to_read += 1;
3746 next_offset += envelope_size;
3747 }
3748
3749 let next_out_of_line = decoder.next_out_of_line();
3750 let handles_before = decoder.remaining_handles();
3751 if let Some((inlined, num_bytes, num_handles)) =
3752 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3753 {
3754 let member_inline_size =
3755 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3756 if inlined != (member_inline_size <= 4) {
3757 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3758 }
3759 let inner_offset;
3760 let mut inner_depth = depth.clone();
3761 if inlined {
3762 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3763 inner_offset = next_offset;
3764 } else {
3765 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3766 inner_depth.increment()?;
3767 }
3768 let val_ref = self
3769 .pskc_secure_session_successes
3770 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3771 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3773 {
3774 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3775 }
3776 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3777 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3778 }
3779 }
3780
3781 next_offset += envelope_size;
3782 _next_ordinal_to_read += 1;
3783 if next_offset >= end_offset {
3784 return Ok(());
3785 }
3786
3787 while _next_ordinal_to_read < 13 {
3789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3790 _next_ordinal_to_read += 1;
3791 next_offset += envelope_size;
3792 }
3793
3794 let next_out_of_line = decoder.next_out_of_line();
3795 let handles_before = decoder.remaining_handles();
3796 if let Some((inlined, num_bytes, num_handles)) =
3797 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3798 {
3799 let member_inline_size =
3800 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3801 if inlined != (member_inline_size <= 4) {
3802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3803 }
3804 let inner_offset;
3805 let mut inner_depth = depth.clone();
3806 if inlined {
3807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3808 inner_offset = next_offset;
3809 } else {
3810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3811 inner_depth.increment()?;
3812 }
3813 let val_ref = self
3814 .pskc_secure_session_failures
3815 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3816 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3818 {
3819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3820 }
3821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3823 }
3824 }
3825
3826 next_offset += envelope_size;
3827 _next_ordinal_to_read += 1;
3828 if next_offset >= end_offset {
3829 return Ok(());
3830 }
3831
3832 while _next_ordinal_to_read < 14 {
3834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3835 _next_ordinal_to_read += 1;
3836 next_offset += envelope_size;
3837 }
3838
3839 let next_out_of_line = decoder.next_out_of_line();
3840 let handles_before = decoder.remaining_handles();
3841 if let Some((inlined, num_bytes, num_handles)) =
3842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3843 {
3844 let member_inline_size =
3845 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3846 if inlined != (member_inline_size <= 4) {
3847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3848 }
3849 let inner_offset;
3850 let mut inner_depth = depth.clone();
3851 if inlined {
3852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3853 inner_offset = next_offset;
3854 } else {
3855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3856 inner_depth.increment()?;
3857 }
3858 let val_ref = self
3859 .pskc_commissioner_petitions
3860 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3861 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3862 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3863 {
3864 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3865 }
3866 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3867 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3868 }
3869 }
3870
3871 next_offset += envelope_size;
3872 _next_ordinal_to_read += 1;
3873 if next_offset >= end_offset {
3874 return Ok(());
3875 }
3876
3877 while _next_ordinal_to_read < 15 {
3879 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3880 _next_ordinal_to_read += 1;
3881 next_offset += envelope_size;
3882 }
3883
3884 let next_out_of_line = decoder.next_out_of_line();
3885 let handles_before = decoder.remaining_handles();
3886 if let Some((inlined, num_bytes, num_handles)) =
3887 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3888 {
3889 let member_inline_size =
3890 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3891 if inlined != (member_inline_size <= 4) {
3892 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3893 }
3894 let inner_offset;
3895 let mut inner_depth = depth.clone();
3896 if inlined {
3897 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3898 inner_offset = next_offset;
3899 } else {
3900 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3901 inner_depth.increment()?;
3902 }
3903 let val_ref = self.mgmt_active_gets.get_or_insert_with(|| fidl::new_empty!(u32, D));
3904 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3905 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3906 {
3907 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3908 }
3909 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3910 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3911 }
3912 }
3913
3914 next_offset += envelope_size;
3915 _next_ordinal_to_read += 1;
3916 if next_offset >= end_offset {
3917 return Ok(());
3918 }
3919
3920 while _next_ordinal_to_read < 16 {
3922 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3923 _next_ordinal_to_read += 1;
3924 next_offset += envelope_size;
3925 }
3926
3927 let next_out_of_line = decoder.next_out_of_line();
3928 let handles_before = decoder.remaining_handles();
3929 if let Some((inlined, num_bytes, num_handles)) =
3930 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3931 {
3932 let member_inline_size =
3933 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3934 if inlined != (member_inline_size <= 4) {
3935 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3936 }
3937 let inner_offset;
3938 let mut inner_depth = depth.clone();
3939 if inlined {
3940 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3941 inner_offset = next_offset;
3942 } else {
3943 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3944 inner_depth.increment()?;
3945 }
3946 let val_ref =
3947 self.mgmt_pending_gets.get_or_insert_with(|| fidl::new_empty!(u32, D));
3948 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3949 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3950 {
3951 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3952 }
3953 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3954 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3955 }
3956 }
3957
3958 next_offset += envelope_size;
3959
3960 while next_offset < end_offset {
3962 _next_ordinal_to_read += 1;
3963 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3964 next_offset += envelope_size;
3965 }
3966
3967 Ok(())
3968 }
3969 }
3970
3971 impl CoexCounters {
3972 #[inline(always)]
3973 fn max_ordinal_present(&self) -> u64 {
3974 if let Some(_) = self.grant_none {
3975 return 9;
3976 }
3977 if let Some(_) = self.avg_delay_request_to_grant_usec {
3978 return 8;
3979 }
3980 if let Some(_) = self.delayed_grant {
3981 return 7;
3982 }
3983 if let Some(_) = self.grant_deactivated_during_request {
3984 return 6;
3985 }
3986 if let Some(_) = self.grant_wait_timeout {
3987 return 5;
3988 }
3989 if let Some(_) = self.grant_wait_activated {
3990 return 4;
3991 }
3992 if let Some(_) = self.grant_wait {
3993 return 3;
3994 }
3995 if let Some(_) = self.grant_immediate {
3996 return 2;
3997 }
3998 if let Some(_) = self.requests {
3999 return 1;
4000 }
4001 0
4002 }
4003 }
4004
4005 impl fidl::encoding::ValueTypeMarker for CoexCounters {
4006 type Borrowed<'a> = &'a Self;
4007 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4008 value
4009 }
4010 }
4011
4012 unsafe impl fidl::encoding::TypeMarker for CoexCounters {
4013 type Owned = Self;
4014
4015 #[inline(always)]
4016 fn inline_align(_context: fidl::encoding::Context) -> usize {
4017 8
4018 }
4019
4020 #[inline(always)]
4021 fn inline_size(_context: fidl::encoding::Context) -> usize {
4022 16
4023 }
4024 }
4025
4026 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CoexCounters, D>
4027 for &CoexCounters
4028 {
4029 unsafe fn encode(
4030 self,
4031 encoder: &mut fidl::encoding::Encoder<'_, D>,
4032 offset: usize,
4033 mut depth: fidl::encoding::Depth,
4034 ) -> fidl::Result<()> {
4035 encoder.debug_check_bounds::<CoexCounters>(offset);
4036 let max_ordinal: u64 = self.max_ordinal_present();
4038 encoder.write_num(max_ordinal, offset);
4039 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4040 if max_ordinal == 0 {
4042 return Ok(());
4043 }
4044 depth.increment()?;
4045 let envelope_size = 8;
4046 let bytes_len = max_ordinal as usize * envelope_size;
4047 #[allow(unused_variables)]
4048 let offset = encoder.out_of_line_offset(bytes_len);
4049 let mut _prev_end_offset: usize = 0;
4050 if 1 > max_ordinal {
4051 return Ok(());
4052 }
4053
4054 let cur_offset: usize = (1 - 1) * envelope_size;
4057
4058 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4060
4061 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4066 self.requests.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4067 encoder,
4068 offset + cur_offset,
4069 depth,
4070 )?;
4071
4072 _prev_end_offset = cur_offset + envelope_size;
4073 if 2 > max_ordinal {
4074 return Ok(());
4075 }
4076
4077 let cur_offset: usize = (2 - 1) * envelope_size;
4080
4081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4083
4084 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4089 self.grant_immediate.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4090 encoder,
4091 offset + cur_offset,
4092 depth,
4093 )?;
4094
4095 _prev_end_offset = cur_offset + envelope_size;
4096 if 3 > max_ordinal {
4097 return Ok(());
4098 }
4099
4100 let cur_offset: usize = (3 - 1) * envelope_size;
4103
4104 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4106
4107 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4112 self.grant_wait.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4113 encoder,
4114 offset + cur_offset,
4115 depth,
4116 )?;
4117
4118 _prev_end_offset = cur_offset + envelope_size;
4119 if 4 > max_ordinal {
4120 return Ok(());
4121 }
4122
4123 let cur_offset: usize = (4 - 1) * envelope_size;
4126
4127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4129
4130 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4135 self.grant_wait_activated
4136 .as_ref()
4137 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4138 encoder,
4139 offset + cur_offset,
4140 depth,
4141 )?;
4142
4143 _prev_end_offset = cur_offset + envelope_size;
4144 if 5 > max_ordinal {
4145 return Ok(());
4146 }
4147
4148 let cur_offset: usize = (5 - 1) * envelope_size;
4151
4152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4154
4155 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4160 self.grant_wait_timeout
4161 .as_ref()
4162 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4163 encoder,
4164 offset + cur_offset,
4165 depth,
4166 )?;
4167
4168 _prev_end_offset = cur_offset + envelope_size;
4169 if 6 > max_ordinal {
4170 return Ok(());
4171 }
4172
4173 let cur_offset: usize = (6 - 1) * envelope_size;
4176
4177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4179
4180 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4185 self.grant_deactivated_during_request
4186 .as_ref()
4187 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4188 encoder,
4189 offset + cur_offset,
4190 depth,
4191 )?;
4192
4193 _prev_end_offset = cur_offset + envelope_size;
4194 if 7 > max_ordinal {
4195 return Ok(());
4196 }
4197
4198 let cur_offset: usize = (7 - 1) * envelope_size;
4201
4202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4204
4205 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4210 self.delayed_grant.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4211 encoder,
4212 offset + cur_offset,
4213 depth,
4214 )?;
4215
4216 _prev_end_offset = cur_offset + envelope_size;
4217 if 8 > max_ordinal {
4218 return Ok(());
4219 }
4220
4221 let cur_offset: usize = (8 - 1) * envelope_size;
4224
4225 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4227
4228 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4233 self.avg_delay_request_to_grant_usec
4234 .as_ref()
4235 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4236 encoder,
4237 offset + cur_offset,
4238 depth,
4239 )?;
4240
4241 _prev_end_offset = cur_offset + envelope_size;
4242 if 9 > max_ordinal {
4243 return Ok(());
4244 }
4245
4246 let cur_offset: usize = (9 - 1) * envelope_size;
4249
4250 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4252
4253 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4258 self.grant_none.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4259 encoder,
4260 offset + cur_offset,
4261 depth,
4262 )?;
4263
4264 _prev_end_offset = cur_offset + envelope_size;
4265
4266 Ok(())
4267 }
4268 }
4269
4270 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CoexCounters {
4271 #[inline(always)]
4272 fn new_empty() -> Self {
4273 Self::default()
4274 }
4275
4276 unsafe fn decode(
4277 &mut self,
4278 decoder: &mut fidl::encoding::Decoder<'_, D>,
4279 offset: usize,
4280 mut depth: fidl::encoding::Depth,
4281 ) -> fidl::Result<()> {
4282 decoder.debug_check_bounds::<Self>(offset);
4283 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4284 None => return Err(fidl::Error::NotNullable),
4285 Some(len) => len,
4286 };
4287 if len == 0 {
4289 return Ok(());
4290 };
4291 depth.increment()?;
4292 let envelope_size = 8;
4293 let bytes_len = len * envelope_size;
4294 let offset = decoder.out_of_line_offset(bytes_len)?;
4295 let mut _next_ordinal_to_read = 0;
4297 let mut next_offset = offset;
4298 let end_offset = offset + bytes_len;
4299 _next_ordinal_to_read += 1;
4300 if next_offset >= end_offset {
4301 return Ok(());
4302 }
4303
4304 while _next_ordinal_to_read < 1 {
4306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4307 _next_ordinal_to_read += 1;
4308 next_offset += envelope_size;
4309 }
4310
4311 let next_out_of_line = decoder.next_out_of_line();
4312 let handles_before = decoder.remaining_handles();
4313 if let Some((inlined, num_bytes, num_handles)) =
4314 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4315 {
4316 let member_inline_size =
4317 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4318 if inlined != (member_inline_size <= 4) {
4319 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4320 }
4321 let inner_offset;
4322 let mut inner_depth = depth.clone();
4323 if inlined {
4324 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4325 inner_offset = next_offset;
4326 } else {
4327 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4328 inner_depth.increment()?;
4329 }
4330 let val_ref = self.requests.get_or_insert_with(|| fidl::new_empty!(u64, D));
4331 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4332 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4333 {
4334 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4335 }
4336 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4337 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4338 }
4339 }
4340
4341 next_offset += envelope_size;
4342 _next_ordinal_to_read += 1;
4343 if next_offset >= end_offset {
4344 return Ok(());
4345 }
4346
4347 while _next_ordinal_to_read < 2 {
4349 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4350 _next_ordinal_to_read += 1;
4351 next_offset += envelope_size;
4352 }
4353
4354 let next_out_of_line = decoder.next_out_of_line();
4355 let handles_before = decoder.remaining_handles();
4356 if let Some((inlined, num_bytes, num_handles)) =
4357 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4358 {
4359 let member_inline_size =
4360 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4361 if inlined != (member_inline_size <= 4) {
4362 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4363 }
4364 let inner_offset;
4365 let mut inner_depth = depth.clone();
4366 if inlined {
4367 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4368 inner_offset = next_offset;
4369 } else {
4370 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4371 inner_depth.increment()?;
4372 }
4373 let val_ref = self.grant_immediate.get_or_insert_with(|| fidl::new_empty!(u64, D));
4374 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4375 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4376 {
4377 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4378 }
4379 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4380 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4381 }
4382 }
4383
4384 next_offset += envelope_size;
4385 _next_ordinal_to_read += 1;
4386 if next_offset >= end_offset {
4387 return Ok(());
4388 }
4389
4390 while _next_ordinal_to_read < 3 {
4392 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4393 _next_ordinal_to_read += 1;
4394 next_offset += envelope_size;
4395 }
4396
4397 let next_out_of_line = decoder.next_out_of_line();
4398 let handles_before = decoder.remaining_handles();
4399 if let Some((inlined, num_bytes, num_handles)) =
4400 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4401 {
4402 let member_inline_size =
4403 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4404 if inlined != (member_inline_size <= 4) {
4405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4406 }
4407 let inner_offset;
4408 let mut inner_depth = depth.clone();
4409 if inlined {
4410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4411 inner_offset = next_offset;
4412 } else {
4413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4414 inner_depth.increment()?;
4415 }
4416 let val_ref = self.grant_wait.get_or_insert_with(|| fidl::new_empty!(u64, D));
4417 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4418 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4419 {
4420 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4421 }
4422 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4423 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4424 }
4425 }
4426
4427 next_offset += envelope_size;
4428 _next_ordinal_to_read += 1;
4429 if next_offset >= end_offset {
4430 return Ok(());
4431 }
4432
4433 while _next_ordinal_to_read < 4 {
4435 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4436 _next_ordinal_to_read += 1;
4437 next_offset += envelope_size;
4438 }
4439
4440 let next_out_of_line = decoder.next_out_of_line();
4441 let handles_before = decoder.remaining_handles();
4442 if let Some((inlined, num_bytes, num_handles)) =
4443 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4444 {
4445 let member_inline_size =
4446 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4447 if inlined != (member_inline_size <= 4) {
4448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4449 }
4450 let inner_offset;
4451 let mut inner_depth = depth.clone();
4452 if inlined {
4453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4454 inner_offset = next_offset;
4455 } else {
4456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4457 inner_depth.increment()?;
4458 }
4459 let val_ref =
4460 self.grant_wait_activated.get_or_insert_with(|| fidl::new_empty!(u64, D));
4461 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4462 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4463 {
4464 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4465 }
4466 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4467 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4468 }
4469 }
4470
4471 next_offset += envelope_size;
4472 _next_ordinal_to_read += 1;
4473 if next_offset >= end_offset {
4474 return Ok(());
4475 }
4476
4477 while _next_ordinal_to_read < 5 {
4479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4480 _next_ordinal_to_read += 1;
4481 next_offset += envelope_size;
4482 }
4483
4484 let next_out_of_line = decoder.next_out_of_line();
4485 let handles_before = decoder.remaining_handles();
4486 if let Some((inlined, num_bytes, num_handles)) =
4487 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4488 {
4489 let member_inline_size =
4490 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4491 if inlined != (member_inline_size <= 4) {
4492 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4493 }
4494 let inner_offset;
4495 let mut inner_depth = depth.clone();
4496 if inlined {
4497 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4498 inner_offset = next_offset;
4499 } else {
4500 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4501 inner_depth.increment()?;
4502 }
4503 let val_ref =
4504 self.grant_wait_timeout.get_or_insert_with(|| fidl::new_empty!(u64, D));
4505 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4506 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4507 {
4508 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4509 }
4510 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4511 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4512 }
4513 }
4514
4515 next_offset += envelope_size;
4516 _next_ordinal_to_read += 1;
4517 if next_offset >= end_offset {
4518 return Ok(());
4519 }
4520
4521 while _next_ordinal_to_read < 6 {
4523 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4524 _next_ordinal_to_read += 1;
4525 next_offset += envelope_size;
4526 }
4527
4528 let next_out_of_line = decoder.next_out_of_line();
4529 let handles_before = decoder.remaining_handles();
4530 if let Some((inlined, num_bytes, num_handles)) =
4531 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4532 {
4533 let member_inline_size =
4534 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4535 if inlined != (member_inline_size <= 4) {
4536 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4537 }
4538 let inner_offset;
4539 let mut inner_depth = depth.clone();
4540 if inlined {
4541 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4542 inner_offset = next_offset;
4543 } else {
4544 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4545 inner_depth.increment()?;
4546 }
4547 let val_ref = self
4548 .grant_deactivated_during_request
4549 .get_or_insert_with(|| fidl::new_empty!(u64, D));
4550 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4551 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4552 {
4553 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4554 }
4555 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4556 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4557 }
4558 }
4559
4560 next_offset += envelope_size;
4561 _next_ordinal_to_read += 1;
4562 if next_offset >= end_offset {
4563 return Ok(());
4564 }
4565
4566 while _next_ordinal_to_read < 7 {
4568 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4569 _next_ordinal_to_read += 1;
4570 next_offset += envelope_size;
4571 }
4572
4573 let next_out_of_line = decoder.next_out_of_line();
4574 let handles_before = decoder.remaining_handles();
4575 if let Some((inlined, num_bytes, num_handles)) =
4576 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4577 {
4578 let member_inline_size =
4579 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4580 if inlined != (member_inline_size <= 4) {
4581 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4582 }
4583 let inner_offset;
4584 let mut inner_depth = depth.clone();
4585 if inlined {
4586 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4587 inner_offset = next_offset;
4588 } else {
4589 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4590 inner_depth.increment()?;
4591 }
4592 let val_ref = self.delayed_grant.get_or_insert_with(|| fidl::new_empty!(u64, D));
4593 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4594 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4595 {
4596 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4597 }
4598 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4599 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4600 }
4601 }
4602
4603 next_offset += envelope_size;
4604 _next_ordinal_to_read += 1;
4605 if next_offset >= end_offset {
4606 return Ok(());
4607 }
4608
4609 while _next_ordinal_to_read < 8 {
4611 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4612 _next_ordinal_to_read += 1;
4613 next_offset += envelope_size;
4614 }
4615
4616 let next_out_of_line = decoder.next_out_of_line();
4617 let handles_before = decoder.remaining_handles();
4618 if let Some((inlined, num_bytes, num_handles)) =
4619 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4620 {
4621 let member_inline_size =
4622 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4623 if inlined != (member_inline_size <= 4) {
4624 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4625 }
4626 let inner_offset;
4627 let mut inner_depth = depth.clone();
4628 if inlined {
4629 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4630 inner_offset = next_offset;
4631 } else {
4632 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4633 inner_depth.increment()?;
4634 }
4635 let val_ref = self
4636 .avg_delay_request_to_grant_usec
4637 .get_or_insert_with(|| fidl::new_empty!(u32, D));
4638 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4640 {
4641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4642 }
4643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4645 }
4646 }
4647
4648 next_offset += envelope_size;
4649 _next_ordinal_to_read += 1;
4650 if next_offset >= end_offset {
4651 return Ok(());
4652 }
4653
4654 while _next_ordinal_to_read < 9 {
4656 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4657 _next_ordinal_to_read += 1;
4658 next_offset += envelope_size;
4659 }
4660
4661 let next_out_of_line = decoder.next_out_of_line();
4662 let handles_before = decoder.remaining_handles();
4663 if let Some((inlined, num_bytes, num_handles)) =
4664 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4665 {
4666 let member_inline_size =
4667 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4668 if inlined != (member_inline_size <= 4) {
4669 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4670 }
4671 let inner_offset;
4672 let mut inner_depth = depth.clone();
4673 if inlined {
4674 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4675 inner_offset = next_offset;
4676 } else {
4677 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4678 inner_depth.increment()?;
4679 }
4680 let val_ref = self.grant_none.get_or_insert_with(|| fidl::new_empty!(u64, D));
4681 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4682 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4683 {
4684 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4685 }
4686 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4687 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4688 }
4689 }
4690
4691 next_offset += envelope_size;
4692
4693 while next_offset < end_offset {
4695 _next_ordinal_to_read += 1;
4696 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4697 next_offset += envelope_size;
4698 }
4699
4700 Ok(())
4701 }
4702 }
4703
4704 impl DeviceState {
4705 #[inline(always)]
4706 fn max_ordinal_present(&self) -> u64 {
4707 if let Some(_) = self.role {
4708 return 2;
4709 }
4710 if let Some(_) = self.connectivity_state {
4711 return 1;
4712 }
4713 0
4714 }
4715 }
4716
4717 impl fidl::encoding::ValueTypeMarker for DeviceState {
4718 type Borrowed<'a> = &'a Self;
4719 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4720 value
4721 }
4722 }
4723
4724 unsafe impl fidl::encoding::TypeMarker for DeviceState {
4725 type Owned = Self;
4726
4727 #[inline(always)]
4728 fn inline_align(_context: fidl::encoding::Context) -> usize {
4729 8
4730 }
4731
4732 #[inline(always)]
4733 fn inline_size(_context: fidl::encoding::Context) -> usize {
4734 16
4735 }
4736 }
4737
4738 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DeviceState, D>
4739 for &DeviceState
4740 {
4741 unsafe fn encode(
4742 self,
4743 encoder: &mut fidl::encoding::Encoder<'_, D>,
4744 offset: usize,
4745 mut depth: fidl::encoding::Depth,
4746 ) -> fidl::Result<()> {
4747 encoder.debug_check_bounds::<DeviceState>(offset);
4748 let max_ordinal: u64 = self.max_ordinal_present();
4750 encoder.write_num(max_ordinal, offset);
4751 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4752 if max_ordinal == 0 {
4754 return Ok(());
4755 }
4756 depth.increment()?;
4757 let envelope_size = 8;
4758 let bytes_len = max_ordinal as usize * envelope_size;
4759 #[allow(unused_variables)]
4760 let offset = encoder.out_of_line_offset(bytes_len);
4761 let mut _prev_end_offset: usize = 0;
4762 if 1 > max_ordinal {
4763 return Ok(());
4764 }
4765
4766 let cur_offset: usize = (1 - 1) * envelope_size;
4769
4770 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4772
4773 fidl::encoding::encode_in_envelope_optional::<ConnectivityState, D>(
4778 self.connectivity_state
4779 .as_ref()
4780 .map(<ConnectivityState as fidl::encoding::ValueTypeMarker>::borrow),
4781 encoder,
4782 offset + cur_offset,
4783 depth,
4784 )?;
4785
4786 _prev_end_offset = cur_offset + envelope_size;
4787 if 2 > max_ordinal {
4788 return Ok(());
4789 }
4790
4791 let cur_offset: usize = (2 - 1) * envelope_size;
4794
4795 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4797
4798 fidl::encoding::encode_in_envelope_optional::<Role, D>(
4803 self.role.as_ref().map(<Role as fidl::encoding::ValueTypeMarker>::borrow),
4804 encoder,
4805 offset + cur_offset,
4806 depth,
4807 )?;
4808
4809 _prev_end_offset = cur_offset + envelope_size;
4810
4811 Ok(())
4812 }
4813 }
4814
4815 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeviceState {
4816 #[inline(always)]
4817 fn new_empty() -> Self {
4818 Self::default()
4819 }
4820
4821 unsafe fn decode(
4822 &mut self,
4823 decoder: &mut fidl::encoding::Decoder<'_, D>,
4824 offset: usize,
4825 mut depth: fidl::encoding::Depth,
4826 ) -> fidl::Result<()> {
4827 decoder.debug_check_bounds::<Self>(offset);
4828 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4829 None => return Err(fidl::Error::NotNullable),
4830 Some(len) => len,
4831 };
4832 if len == 0 {
4834 return Ok(());
4835 };
4836 depth.increment()?;
4837 let envelope_size = 8;
4838 let bytes_len = len * envelope_size;
4839 let offset = decoder.out_of_line_offset(bytes_len)?;
4840 let mut _next_ordinal_to_read = 0;
4842 let mut next_offset = offset;
4843 let end_offset = offset + bytes_len;
4844 _next_ordinal_to_read += 1;
4845 if next_offset >= end_offset {
4846 return Ok(());
4847 }
4848
4849 while _next_ordinal_to_read < 1 {
4851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4852 _next_ordinal_to_read += 1;
4853 next_offset += envelope_size;
4854 }
4855
4856 let next_out_of_line = decoder.next_out_of_line();
4857 let handles_before = decoder.remaining_handles();
4858 if let Some((inlined, num_bytes, num_handles)) =
4859 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4860 {
4861 let member_inline_size =
4862 <ConnectivityState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4863 if inlined != (member_inline_size <= 4) {
4864 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4865 }
4866 let inner_offset;
4867 let mut inner_depth = depth.clone();
4868 if inlined {
4869 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4870 inner_offset = next_offset;
4871 } else {
4872 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4873 inner_depth.increment()?;
4874 }
4875 let val_ref = self
4876 .connectivity_state
4877 .get_or_insert_with(|| fidl::new_empty!(ConnectivityState, D));
4878 fidl::decode!(ConnectivityState, D, val_ref, decoder, inner_offset, inner_depth)?;
4879 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4880 {
4881 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4882 }
4883 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4884 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4885 }
4886 }
4887
4888 next_offset += envelope_size;
4889 _next_ordinal_to_read += 1;
4890 if next_offset >= end_offset {
4891 return Ok(());
4892 }
4893
4894 while _next_ordinal_to_read < 2 {
4896 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4897 _next_ordinal_to_read += 1;
4898 next_offset += envelope_size;
4899 }
4900
4901 let next_out_of_line = decoder.next_out_of_line();
4902 let handles_before = decoder.remaining_handles();
4903 if let Some((inlined, num_bytes, num_handles)) =
4904 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4905 {
4906 let member_inline_size =
4907 <Role as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4908 if inlined != (member_inline_size <= 4) {
4909 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4910 }
4911 let inner_offset;
4912 let mut inner_depth = depth.clone();
4913 if inlined {
4914 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4915 inner_offset = next_offset;
4916 } else {
4917 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4918 inner_depth.increment()?;
4919 }
4920 let val_ref = self.role.get_or_insert_with(|| fidl::new_empty!(Role, D));
4921 fidl::decode!(Role, D, val_ref, decoder, inner_offset, inner_depth)?;
4922 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4923 {
4924 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4925 }
4926 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4927 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4928 }
4929 }
4930
4931 next_offset += envelope_size;
4932
4933 while next_offset < end_offset {
4935 _next_ordinal_to_read += 1;
4936 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4937 next_offset += envelope_size;
4938 }
4939
4940 Ok(())
4941 }
4942 }
4943
4944 impl EnergyScanParameters {
4945 #[inline(always)]
4946 fn max_ordinal_present(&self) -> u64 {
4947 if let Some(_) = self.dwell_time_ms {
4948 return 2;
4949 }
4950 if let Some(_) = self.channels {
4951 return 1;
4952 }
4953 0
4954 }
4955 }
4956
4957 impl fidl::encoding::ValueTypeMarker for EnergyScanParameters {
4958 type Borrowed<'a> = &'a Self;
4959 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4960 value
4961 }
4962 }
4963
4964 unsafe impl fidl::encoding::TypeMarker for EnergyScanParameters {
4965 type Owned = Self;
4966
4967 #[inline(always)]
4968 fn inline_align(_context: fidl::encoding::Context) -> usize {
4969 8
4970 }
4971
4972 #[inline(always)]
4973 fn inline_size(_context: fidl::encoding::Context) -> usize {
4974 16
4975 }
4976 }
4977
4978 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnergyScanParameters, D>
4979 for &EnergyScanParameters
4980 {
4981 unsafe fn encode(
4982 self,
4983 encoder: &mut fidl::encoding::Encoder<'_, D>,
4984 offset: usize,
4985 mut depth: fidl::encoding::Depth,
4986 ) -> fidl::Result<()> {
4987 encoder.debug_check_bounds::<EnergyScanParameters>(offset);
4988 let max_ordinal: u64 = self.max_ordinal_present();
4990 encoder.write_num(max_ordinal, offset);
4991 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4992 if max_ordinal == 0 {
4994 return Ok(());
4995 }
4996 depth.increment()?;
4997 let envelope_size = 8;
4998 let bytes_len = max_ordinal as usize * envelope_size;
4999 #[allow(unused_variables)]
5000 let offset = encoder.out_of_line_offset(bytes_len);
5001 let mut _prev_end_offset: usize = 0;
5002 if 1 > max_ordinal {
5003 return Ok(());
5004 }
5005
5006 let cur_offset: usize = (1 - 1) * envelope_size;
5009
5010 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5012
5013 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u16, 200>, D>(
5018 self.channels.as_ref().map(
5019 <fidl::encoding::Vector<u16, 200> as fidl::encoding::ValueTypeMarker>::borrow,
5020 ),
5021 encoder,
5022 offset + cur_offset,
5023 depth,
5024 )?;
5025
5026 _prev_end_offset = cur_offset + envelope_size;
5027 if 2 > max_ordinal {
5028 return Ok(());
5029 }
5030
5031 let cur_offset: usize = (2 - 1) * envelope_size;
5034
5035 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5037
5038 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5043 self.dwell_time_ms.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5044 encoder,
5045 offset + cur_offset,
5046 depth,
5047 )?;
5048
5049 _prev_end_offset = cur_offset + envelope_size;
5050
5051 Ok(())
5052 }
5053 }
5054
5055 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnergyScanParameters {
5056 #[inline(always)]
5057 fn new_empty() -> Self {
5058 Self::default()
5059 }
5060
5061 unsafe fn decode(
5062 &mut self,
5063 decoder: &mut fidl::encoding::Decoder<'_, D>,
5064 offset: usize,
5065 mut depth: fidl::encoding::Depth,
5066 ) -> fidl::Result<()> {
5067 decoder.debug_check_bounds::<Self>(offset);
5068 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5069 None => return Err(fidl::Error::NotNullable),
5070 Some(len) => len,
5071 };
5072 if len == 0 {
5074 return Ok(());
5075 };
5076 depth.increment()?;
5077 let envelope_size = 8;
5078 let bytes_len = len * envelope_size;
5079 let offset = decoder.out_of_line_offset(bytes_len)?;
5080 let mut _next_ordinal_to_read = 0;
5082 let mut next_offset = offset;
5083 let end_offset = offset + bytes_len;
5084 _next_ordinal_to_read += 1;
5085 if next_offset >= end_offset {
5086 return Ok(());
5087 }
5088
5089 while _next_ordinal_to_read < 1 {
5091 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5092 _next_ordinal_to_read += 1;
5093 next_offset += envelope_size;
5094 }
5095
5096 let next_out_of_line = decoder.next_out_of_line();
5097 let handles_before = decoder.remaining_handles();
5098 if let Some((inlined, num_bytes, num_handles)) =
5099 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5100 {
5101 let member_inline_size =
5102 <fidl::encoding::Vector<u16, 200> as fidl::encoding::TypeMarker>::inline_size(
5103 decoder.context,
5104 );
5105 if inlined != (member_inline_size <= 4) {
5106 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5107 }
5108 let inner_offset;
5109 let mut inner_depth = depth.clone();
5110 if inlined {
5111 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5112 inner_offset = next_offset;
5113 } else {
5114 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5115 inner_depth.increment()?;
5116 }
5117 let val_ref = self
5118 .channels
5119 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u16, 200>, D));
5120 fidl::decode!(fidl::encoding::Vector<u16, 200>, D, val_ref, decoder, inner_offset, inner_depth)?;
5121 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5122 {
5123 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5124 }
5125 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5126 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5127 }
5128 }
5129
5130 next_offset += envelope_size;
5131 _next_ordinal_to_read += 1;
5132 if next_offset >= end_offset {
5133 return Ok(());
5134 }
5135
5136 while _next_ordinal_to_read < 2 {
5138 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5139 _next_ordinal_to_read += 1;
5140 next_offset += envelope_size;
5141 }
5142
5143 let next_out_of_line = decoder.next_out_of_line();
5144 let handles_before = decoder.remaining_handles();
5145 if let Some((inlined, num_bytes, num_handles)) =
5146 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5147 {
5148 let member_inline_size =
5149 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5150 if inlined != (member_inline_size <= 4) {
5151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5152 }
5153 let inner_offset;
5154 let mut inner_depth = depth.clone();
5155 if inlined {
5156 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5157 inner_offset = next_offset;
5158 } else {
5159 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5160 inner_depth.increment()?;
5161 }
5162 let val_ref = self.dwell_time_ms.get_or_insert_with(|| fidl::new_empty!(u32, D));
5163 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5164 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5165 {
5166 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5167 }
5168 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5169 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5170 }
5171 }
5172
5173 next_offset += envelope_size;
5174
5175 while next_offset < end_offset {
5177 _next_ordinal_to_read += 1;
5178 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5179 next_offset += envelope_size;
5180 }
5181
5182 Ok(())
5183 }
5184 }
5185
5186 impl EnergyScanResult {
5187 #[inline(always)]
5188 fn max_ordinal_present(&self) -> u64 {
5189 if let Some(_) = self.min_rssi {
5190 return 3;
5191 }
5192 if let Some(_) = self.max_rssi {
5193 return 2;
5194 }
5195 if let Some(_) = self.channel_index {
5196 return 1;
5197 }
5198 0
5199 }
5200 }
5201
5202 impl fidl::encoding::ValueTypeMarker for EnergyScanResult {
5203 type Borrowed<'a> = &'a Self;
5204 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5205 value
5206 }
5207 }
5208
5209 unsafe impl fidl::encoding::TypeMarker for EnergyScanResult {
5210 type Owned = Self;
5211
5212 #[inline(always)]
5213 fn inline_align(_context: fidl::encoding::Context) -> usize {
5214 8
5215 }
5216
5217 #[inline(always)]
5218 fn inline_size(_context: fidl::encoding::Context) -> usize {
5219 16
5220 }
5221 }
5222
5223 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnergyScanResult, D>
5224 for &EnergyScanResult
5225 {
5226 unsafe fn encode(
5227 self,
5228 encoder: &mut fidl::encoding::Encoder<'_, D>,
5229 offset: usize,
5230 mut depth: fidl::encoding::Depth,
5231 ) -> fidl::Result<()> {
5232 encoder.debug_check_bounds::<EnergyScanResult>(offset);
5233 let max_ordinal: u64 = self.max_ordinal_present();
5235 encoder.write_num(max_ordinal, offset);
5236 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5237 if max_ordinal == 0 {
5239 return Ok(());
5240 }
5241 depth.increment()?;
5242 let envelope_size = 8;
5243 let bytes_len = max_ordinal as usize * envelope_size;
5244 #[allow(unused_variables)]
5245 let offset = encoder.out_of_line_offset(bytes_len);
5246 let mut _prev_end_offset: usize = 0;
5247 if 1 > max_ordinal {
5248 return Ok(());
5249 }
5250
5251 let cur_offset: usize = (1 - 1) * envelope_size;
5254
5255 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5257
5258 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5263 self.channel_index.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5264 encoder,
5265 offset + cur_offset,
5266 depth,
5267 )?;
5268
5269 _prev_end_offset = cur_offset + envelope_size;
5270 if 2 > max_ordinal {
5271 return Ok(());
5272 }
5273
5274 let cur_offset: usize = (2 - 1) * envelope_size;
5277
5278 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5280
5281 fidl::encoding::encode_in_envelope_optional::<i32, D>(
5286 self.max_rssi.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
5287 encoder,
5288 offset + cur_offset,
5289 depth,
5290 )?;
5291
5292 _prev_end_offset = cur_offset + envelope_size;
5293 if 3 > max_ordinal {
5294 return Ok(());
5295 }
5296
5297 let cur_offset: usize = (3 - 1) * envelope_size;
5300
5301 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5303
5304 fidl::encoding::encode_in_envelope_optional::<i32, D>(
5309 self.min_rssi.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
5310 encoder,
5311 offset + cur_offset,
5312 depth,
5313 )?;
5314
5315 _prev_end_offset = cur_offset + envelope_size;
5316
5317 Ok(())
5318 }
5319 }
5320
5321 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnergyScanResult {
5322 #[inline(always)]
5323 fn new_empty() -> Self {
5324 Self::default()
5325 }
5326
5327 unsafe fn decode(
5328 &mut self,
5329 decoder: &mut fidl::encoding::Decoder<'_, D>,
5330 offset: usize,
5331 mut depth: fidl::encoding::Depth,
5332 ) -> fidl::Result<()> {
5333 decoder.debug_check_bounds::<Self>(offset);
5334 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5335 None => return Err(fidl::Error::NotNullable),
5336 Some(len) => len,
5337 };
5338 if len == 0 {
5340 return Ok(());
5341 };
5342 depth.increment()?;
5343 let envelope_size = 8;
5344 let bytes_len = len * envelope_size;
5345 let offset = decoder.out_of_line_offset(bytes_len)?;
5346 let mut _next_ordinal_to_read = 0;
5348 let mut next_offset = offset;
5349 let end_offset = offset + bytes_len;
5350 _next_ordinal_to_read += 1;
5351 if next_offset >= end_offset {
5352 return Ok(());
5353 }
5354
5355 while _next_ordinal_to_read < 1 {
5357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5358 _next_ordinal_to_read += 1;
5359 next_offset += envelope_size;
5360 }
5361
5362 let next_out_of_line = decoder.next_out_of_line();
5363 let handles_before = decoder.remaining_handles();
5364 if let Some((inlined, num_bytes, num_handles)) =
5365 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5366 {
5367 let member_inline_size =
5368 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5369 if inlined != (member_inline_size <= 4) {
5370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5371 }
5372 let inner_offset;
5373 let mut inner_depth = depth.clone();
5374 if inlined {
5375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5376 inner_offset = next_offset;
5377 } else {
5378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5379 inner_depth.increment()?;
5380 }
5381 let val_ref = self.channel_index.get_or_insert_with(|| fidl::new_empty!(u16, D));
5382 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5383 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5384 {
5385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5386 }
5387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5389 }
5390 }
5391
5392 next_offset += envelope_size;
5393 _next_ordinal_to_read += 1;
5394 if next_offset >= end_offset {
5395 return Ok(());
5396 }
5397
5398 while _next_ordinal_to_read < 2 {
5400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5401 _next_ordinal_to_read += 1;
5402 next_offset += envelope_size;
5403 }
5404
5405 let next_out_of_line = decoder.next_out_of_line();
5406 let handles_before = decoder.remaining_handles();
5407 if let Some((inlined, num_bytes, num_handles)) =
5408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5409 {
5410 let member_inline_size =
5411 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5412 if inlined != (member_inline_size <= 4) {
5413 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5414 }
5415 let inner_offset;
5416 let mut inner_depth = depth.clone();
5417 if inlined {
5418 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5419 inner_offset = next_offset;
5420 } else {
5421 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5422 inner_depth.increment()?;
5423 }
5424 let val_ref = self.max_rssi.get_or_insert_with(|| fidl::new_empty!(i32, D));
5425 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
5426 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5427 {
5428 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5429 }
5430 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5431 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5432 }
5433 }
5434
5435 next_offset += envelope_size;
5436 _next_ordinal_to_read += 1;
5437 if next_offset >= end_offset {
5438 return Ok(());
5439 }
5440
5441 while _next_ordinal_to_read < 3 {
5443 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5444 _next_ordinal_to_read += 1;
5445 next_offset += envelope_size;
5446 }
5447
5448 let next_out_of_line = decoder.next_out_of_line();
5449 let handles_before = decoder.remaining_handles();
5450 if let Some((inlined, num_bytes, num_handles)) =
5451 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5452 {
5453 let member_inline_size =
5454 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5455 if inlined != (member_inline_size <= 4) {
5456 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5457 }
5458 let inner_offset;
5459 let mut inner_depth = depth.clone();
5460 if inlined {
5461 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5462 inner_offset = next_offset;
5463 } else {
5464 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5465 inner_depth.increment()?;
5466 }
5467 let val_ref = self.min_rssi.get_or_insert_with(|| fidl::new_empty!(i32, D));
5468 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
5469 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5470 {
5471 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5472 }
5473 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5474 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5475 }
5476 }
5477
5478 next_offset += envelope_size;
5479
5480 while next_offset < end_offset {
5482 _next_ordinal_to_read += 1;
5483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5484 next_offset += envelope_size;
5485 }
5486
5487 Ok(())
5488 }
5489 }
5490
5491 impl Identity {
5492 #[inline(always)]
5493 fn max_ordinal_present(&self) -> u64 {
5494 if let Some(_) = self.xpanid {
5495 return 7;
5496 }
5497 if let Some(_) = self.mesh_local_prefix {
5498 return 6;
5499 }
5500 if let Some(_) = self.panid {
5501 return 5;
5502 }
5503 if let Some(_) = self.channel {
5504 return 4;
5505 }
5506 if let Some(_) = self.net_type {
5507 return 3;
5508 }
5509 if let Some(_) = self.raw_name {
5510 return 1;
5511 }
5512 0
5513 }
5514 }
5515
5516 impl fidl::encoding::ValueTypeMarker for Identity {
5517 type Borrowed<'a> = &'a Self;
5518 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5519 value
5520 }
5521 }
5522
5523 unsafe impl fidl::encoding::TypeMarker for Identity {
5524 type Owned = Self;
5525
5526 #[inline(always)]
5527 fn inline_align(_context: fidl::encoding::Context) -> usize {
5528 8
5529 }
5530
5531 #[inline(always)]
5532 fn inline_size(_context: fidl::encoding::Context) -> usize {
5533 16
5534 }
5535 }
5536
5537 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Identity, D> for &Identity {
5538 unsafe fn encode(
5539 self,
5540 encoder: &mut fidl::encoding::Encoder<'_, D>,
5541 offset: usize,
5542 mut depth: fidl::encoding::Depth,
5543 ) -> fidl::Result<()> {
5544 encoder.debug_check_bounds::<Identity>(offset);
5545 let max_ordinal: u64 = self.max_ordinal_present();
5547 encoder.write_num(max_ordinal, offset);
5548 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5549 if max_ordinal == 0 {
5551 return Ok(());
5552 }
5553 depth.increment()?;
5554 let envelope_size = 8;
5555 let bytes_len = max_ordinal as usize * envelope_size;
5556 #[allow(unused_variables)]
5557 let offset = encoder.out_of_line_offset(bytes_len);
5558 let mut _prev_end_offset: usize = 0;
5559 if 1 > max_ordinal {
5560 return Ok(());
5561 }
5562
5563 let cur_offset: usize = (1 - 1) * envelope_size;
5566
5567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5569
5570 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 63>, D>(
5575 self.raw_name.as_ref().map(
5576 <fidl::encoding::Vector<u8, 63> as fidl::encoding::ValueTypeMarker>::borrow,
5577 ),
5578 encoder,
5579 offset + cur_offset,
5580 depth,
5581 )?;
5582
5583 _prev_end_offset = cur_offset + envelope_size;
5584 if 3 > max_ordinal {
5585 return Ok(());
5586 }
5587
5588 let cur_offset: usize = (3 - 1) * envelope_size;
5591
5592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5594
5595 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
5600 self.net_type.as_ref().map(
5601 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
5602 ),
5603 encoder,
5604 offset + cur_offset,
5605 depth,
5606 )?;
5607
5608 _prev_end_offset = cur_offset + envelope_size;
5609 if 4 > max_ordinal {
5610 return Ok(());
5611 }
5612
5613 let cur_offset: usize = (4 - 1) * envelope_size;
5616
5617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5619
5620 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5625 self.channel.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5626 encoder,
5627 offset + cur_offset,
5628 depth,
5629 )?;
5630
5631 _prev_end_offset = cur_offset + envelope_size;
5632 if 5 > max_ordinal {
5633 return Ok(());
5634 }
5635
5636 let cur_offset: usize = (5 - 1) * envelope_size;
5639
5640 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5642
5643 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5648 self.panid.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5649 encoder,
5650 offset + cur_offset,
5651 depth,
5652 )?;
5653
5654 _prev_end_offset = cur_offset + envelope_size;
5655 if 6 > max_ordinal {
5656 return Ok(());
5657 }
5658
5659 let cur_offset: usize = (6 - 1) * envelope_size;
5662
5663 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5665
5666 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_common::Ipv6AddressWithPrefix, D>(
5671 self.mesh_local_prefix.as_ref().map(<fidl_fuchsia_net_common::Ipv6AddressWithPrefix as fidl::encoding::ValueTypeMarker>::borrow),
5672 encoder, offset + cur_offset, depth
5673 )?;
5674
5675 _prev_end_offset = cur_offset + envelope_size;
5676 if 7 > max_ordinal {
5677 return Ok(());
5678 }
5679
5680 let cur_offset: usize = (7 - 1) * envelope_size;
5683
5684 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5686
5687 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 8>, D>(
5692 self.xpanid
5693 .as_ref()
5694 .map(<fidl::encoding::Array<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow),
5695 encoder,
5696 offset + cur_offset,
5697 depth,
5698 )?;
5699
5700 _prev_end_offset = cur_offset + envelope_size;
5701
5702 Ok(())
5703 }
5704 }
5705
5706 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Identity {
5707 #[inline(always)]
5708 fn new_empty() -> Self {
5709 Self::default()
5710 }
5711
5712 unsafe fn decode(
5713 &mut self,
5714 decoder: &mut fidl::encoding::Decoder<'_, D>,
5715 offset: usize,
5716 mut depth: fidl::encoding::Depth,
5717 ) -> fidl::Result<()> {
5718 decoder.debug_check_bounds::<Self>(offset);
5719 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5720 None => return Err(fidl::Error::NotNullable),
5721 Some(len) => len,
5722 };
5723 if len == 0 {
5725 return Ok(());
5726 };
5727 depth.increment()?;
5728 let envelope_size = 8;
5729 let bytes_len = len * envelope_size;
5730 let offset = decoder.out_of_line_offset(bytes_len)?;
5731 let mut _next_ordinal_to_read = 0;
5733 let mut next_offset = offset;
5734 let end_offset = offset + bytes_len;
5735 _next_ordinal_to_read += 1;
5736 if next_offset >= end_offset {
5737 return Ok(());
5738 }
5739
5740 while _next_ordinal_to_read < 1 {
5742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5743 _next_ordinal_to_read += 1;
5744 next_offset += envelope_size;
5745 }
5746
5747 let next_out_of_line = decoder.next_out_of_line();
5748 let handles_before = decoder.remaining_handles();
5749 if let Some((inlined, num_bytes, num_handles)) =
5750 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5751 {
5752 let member_inline_size =
5753 <fidl::encoding::Vector<u8, 63> as fidl::encoding::TypeMarker>::inline_size(
5754 decoder.context,
5755 );
5756 if inlined != (member_inline_size <= 4) {
5757 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5758 }
5759 let inner_offset;
5760 let mut inner_depth = depth.clone();
5761 if inlined {
5762 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5763 inner_offset = next_offset;
5764 } else {
5765 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5766 inner_depth.increment()?;
5767 }
5768 let val_ref = self
5769 .raw_name
5770 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 63>, D));
5771 fidl::decode!(fidl::encoding::Vector<u8, 63>, D, val_ref, decoder, inner_offset, inner_depth)?;
5772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5773 {
5774 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5775 }
5776 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5777 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5778 }
5779 }
5780
5781 next_offset += envelope_size;
5782 _next_ordinal_to_read += 1;
5783 if next_offset >= end_offset {
5784 return Ok(());
5785 }
5786
5787 while _next_ordinal_to_read < 3 {
5789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5790 _next_ordinal_to_read += 1;
5791 next_offset += envelope_size;
5792 }
5793
5794 let next_out_of_line = decoder.next_out_of_line();
5795 let handles_before = decoder.remaining_handles();
5796 if let Some((inlined, num_bytes, num_handles)) =
5797 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5798 {
5799 let member_inline_size =
5800 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
5801 decoder.context,
5802 );
5803 if inlined != (member_inline_size <= 4) {
5804 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5805 }
5806 let inner_offset;
5807 let mut inner_depth = depth.clone();
5808 if inlined {
5809 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5810 inner_offset = next_offset;
5811 } else {
5812 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5813 inner_depth.increment()?;
5814 }
5815 let val_ref = self
5816 .net_type
5817 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
5818 fidl::decode!(
5819 fidl::encoding::BoundedString<64>,
5820 D,
5821 val_ref,
5822 decoder,
5823 inner_offset,
5824 inner_depth
5825 )?;
5826 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5827 {
5828 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5829 }
5830 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5831 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5832 }
5833 }
5834
5835 next_offset += envelope_size;
5836 _next_ordinal_to_read += 1;
5837 if next_offset >= end_offset {
5838 return Ok(());
5839 }
5840
5841 while _next_ordinal_to_read < 4 {
5843 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5844 _next_ordinal_to_read += 1;
5845 next_offset += envelope_size;
5846 }
5847
5848 let next_out_of_line = decoder.next_out_of_line();
5849 let handles_before = decoder.remaining_handles();
5850 if let Some((inlined, num_bytes, num_handles)) =
5851 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5852 {
5853 let member_inline_size =
5854 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5855 if inlined != (member_inline_size <= 4) {
5856 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5857 }
5858 let inner_offset;
5859 let mut inner_depth = depth.clone();
5860 if inlined {
5861 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5862 inner_offset = next_offset;
5863 } else {
5864 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5865 inner_depth.increment()?;
5866 }
5867 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u16, D));
5868 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5869 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5870 {
5871 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5872 }
5873 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5874 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5875 }
5876 }
5877
5878 next_offset += envelope_size;
5879 _next_ordinal_to_read += 1;
5880 if next_offset >= end_offset {
5881 return Ok(());
5882 }
5883
5884 while _next_ordinal_to_read < 5 {
5886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5887 _next_ordinal_to_read += 1;
5888 next_offset += envelope_size;
5889 }
5890
5891 let next_out_of_line = decoder.next_out_of_line();
5892 let handles_before = decoder.remaining_handles();
5893 if let Some((inlined, num_bytes, num_handles)) =
5894 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5895 {
5896 let member_inline_size =
5897 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5898 if inlined != (member_inline_size <= 4) {
5899 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5900 }
5901 let inner_offset;
5902 let mut inner_depth = depth.clone();
5903 if inlined {
5904 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5905 inner_offset = next_offset;
5906 } else {
5907 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5908 inner_depth.increment()?;
5909 }
5910 let val_ref = self.panid.get_or_insert_with(|| fidl::new_empty!(u16, D));
5911 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5912 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5913 {
5914 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5915 }
5916 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5917 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5918 }
5919 }
5920
5921 next_offset += envelope_size;
5922 _next_ordinal_to_read += 1;
5923 if next_offset >= end_offset {
5924 return Ok(());
5925 }
5926
5927 while _next_ordinal_to_read < 6 {
5929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5930 _next_ordinal_to_read += 1;
5931 next_offset += envelope_size;
5932 }
5933
5934 let next_out_of_line = decoder.next_out_of_line();
5935 let handles_before = decoder.remaining_handles();
5936 if let Some((inlined, num_bytes, num_handles)) =
5937 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5938 {
5939 let member_inline_size = <fidl_fuchsia_net_common::Ipv6AddressWithPrefix as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5940 if inlined != (member_inline_size <= 4) {
5941 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5942 }
5943 let inner_offset;
5944 let mut inner_depth = depth.clone();
5945 if inlined {
5946 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5947 inner_offset = next_offset;
5948 } else {
5949 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5950 inner_depth.increment()?;
5951 }
5952 let val_ref = self.mesh_local_prefix.get_or_insert_with(|| {
5953 fidl::new_empty!(fidl_fuchsia_net_common::Ipv6AddressWithPrefix, D)
5954 });
5955 fidl::decode!(
5956 fidl_fuchsia_net_common::Ipv6AddressWithPrefix,
5957 D,
5958 val_ref,
5959 decoder,
5960 inner_offset,
5961 inner_depth
5962 )?;
5963 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5964 {
5965 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5966 }
5967 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5968 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5969 }
5970 }
5971
5972 next_offset += envelope_size;
5973 _next_ordinal_to_read += 1;
5974 if next_offset >= end_offset {
5975 return Ok(());
5976 }
5977
5978 while _next_ordinal_to_read < 7 {
5980 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5981 _next_ordinal_to_read += 1;
5982 next_offset += envelope_size;
5983 }
5984
5985 let next_out_of_line = decoder.next_out_of_line();
5986 let handles_before = decoder.remaining_handles();
5987 if let Some((inlined, num_bytes, num_handles)) =
5988 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5989 {
5990 let member_inline_size =
5991 <fidl::encoding::Array<u8, 8> as fidl::encoding::TypeMarker>::inline_size(
5992 decoder.context,
5993 );
5994 if inlined != (member_inline_size <= 4) {
5995 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5996 }
5997 let inner_offset;
5998 let mut inner_depth = depth.clone();
5999 if inlined {
6000 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6001 inner_offset = next_offset;
6002 } else {
6003 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6004 inner_depth.increment()?;
6005 }
6006 let val_ref = self
6007 .xpanid
6008 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 8>, D));
6009 fidl::decode!(fidl::encoding::Array<u8, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
6010 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6011 {
6012 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6013 }
6014 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6015 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6016 }
6017 }
6018
6019 next_offset += envelope_size;
6020
6021 while next_offset < end_offset {
6023 _next_ordinal_to_read += 1;
6024 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6025 next_offset += envelope_size;
6026 }
6027
6028 Ok(())
6029 }
6030 }
6031
6032 impl IpCounters {
6033 #[inline(always)]
6034 fn max_ordinal_present(&self) -> u64 {
6035 if let Some(_) = self.failure {
6036 return 2;
6037 }
6038 if let Some(_) = self.success {
6039 return 1;
6040 }
6041 0
6042 }
6043 }
6044
6045 impl fidl::encoding::ValueTypeMarker for IpCounters {
6046 type Borrowed<'a> = &'a Self;
6047 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6048 value
6049 }
6050 }
6051
6052 unsafe impl fidl::encoding::TypeMarker for IpCounters {
6053 type Owned = Self;
6054
6055 #[inline(always)]
6056 fn inline_align(_context: fidl::encoding::Context) -> usize {
6057 8
6058 }
6059
6060 #[inline(always)]
6061 fn inline_size(_context: fidl::encoding::Context) -> usize {
6062 16
6063 }
6064 }
6065
6066 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<IpCounters, D>
6067 for &IpCounters
6068 {
6069 unsafe fn encode(
6070 self,
6071 encoder: &mut fidl::encoding::Encoder<'_, D>,
6072 offset: usize,
6073 mut depth: fidl::encoding::Depth,
6074 ) -> fidl::Result<()> {
6075 encoder.debug_check_bounds::<IpCounters>(offset);
6076 let max_ordinal: u64 = self.max_ordinal_present();
6078 encoder.write_num(max_ordinal, offset);
6079 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6080 if max_ordinal == 0 {
6082 return Ok(());
6083 }
6084 depth.increment()?;
6085 let envelope_size = 8;
6086 let bytes_len = max_ordinal as usize * envelope_size;
6087 #[allow(unused_variables)]
6088 let offset = encoder.out_of_line_offset(bytes_len);
6089 let mut _prev_end_offset: usize = 0;
6090 if 1 > max_ordinal {
6091 return Ok(());
6092 }
6093
6094 let cur_offset: usize = (1 - 1) * envelope_size;
6097
6098 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6100
6101 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6106 self.success.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6107 encoder,
6108 offset + cur_offset,
6109 depth,
6110 )?;
6111
6112 _prev_end_offset = cur_offset + envelope_size;
6113 if 2 > max_ordinal {
6114 return Ok(());
6115 }
6116
6117 let cur_offset: usize = (2 - 1) * envelope_size;
6120
6121 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6123
6124 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6129 self.failure.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6130 encoder,
6131 offset + cur_offset,
6132 depth,
6133 )?;
6134
6135 _prev_end_offset = cur_offset + envelope_size;
6136
6137 Ok(())
6138 }
6139 }
6140
6141 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IpCounters {
6142 #[inline(always)]
6143 fn new_empty() -> Self {
6144 Self::default()
6145 }
6146
6147 unsafe fn decode(
6148 &mut self,
6149 decoder: &mut fidl::encoding::Decoder<'_, D>,
6150 offset: usize,
6151 mut depth: fidl::encoding::Depth,
6152 ) -> fidl::Result<()> {
6153 decoder.debug_check_bounds::<Self>(offset);
6154 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6155 None => return Err(fidl::Error::NotNullable),
6156 Some(len) => len,
6157 };
6158 if len == 0 {
6160 return Ok(());
6161 };
6162 depth.increment()?;
6163 let envelope_size = 8;
6164 let bytes_len = len * envelope_size;
6165 let offset = decoder.out_of_line_offset(bytes_len)?;
6166 let mut _next_ordinal_to_read = 0;
6168 let mut next_offset = offset;
6169 let end_offset = offset + bytes_len;
6170 _next_ordinal_to_read += 1;
6171 if next_offset >= end_offset {
6172 return Ok(());
6173 }
6174
6175 while _next_ordinal_to_read < 1 {
6177 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6178 _next_ordinal_to_read += 1;
6179 next_offset += envelope_size;
6180 }
6181
6182 let next_out_of_line = decoder.next_out_of_line();
6183 let handles_before = decoder.remaining_handles();
6184 if let Some((inlined, num_bytes, num_handles)) =
6185 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6186 {
6187 let member_inline_size =
6188 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6189 if inlined != (member_inline_size <= 4) {
6190 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6191 }
6192 let inner_offset;
6193 let mut inner_depth = depth.clone();
6194 if inlined {
6195 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6196 inner_offset = next_offset;
6197 } else {
6198 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6199 inner_depth.increment()?;
6200 }
6201 let val_ref = self.success.get_or_insert_with(|| fidl::new_empty!(u32, D));
6202 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6203 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6204 {
6205 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6206 }
6207 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6208 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6209 }
6210 }
6211
6212 next_offset += envelope_size;
6213 _next_ordinal_to_read += 1;
6214 if next_offset >= end_offset {
6215 return Ok(());
6216 }
6217
6218 while _next_ordinal_to_read < 2 {
6220 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6221 _next_ordinal_to_read += 1;
6222 next_offset += envelope_size;
6223 }
6224
6225 let next_out_of_line = decoder.next_out_of_line();
6226 let handles_before = decoder.remaining_handles();
6227 if let Some((inlined, num_bytes, num_handles)) =
6228 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6229 {
6230 let member_inline_size =
6231 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6232 if inlined != (member_inline_size <= 4) {
6233 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6234 }
6235 let inner_offset;
6236 let mut inner_depth = depth.clone();
6237 if inlined {
6238 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6239 inner_offset = next_offset;
6240 } else {
6241 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6242 inner_depth.increment()?;
6243 }
6244 let val_ref = self.failure.get_or_insert_with(|| fidl::new_empty!(u32, D));
6245 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6246 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6247 {
6248 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6249 }
6250 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6251 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6252 }
6253 }
6254
6255 next_offset += envelope_size;
6256
6257 while next_offset < end_offset {
6259 _next_ordinal_to_read += 1;
6260 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6261 next_offset += envelope_size;
6262 }
6263
6264 Ok(())
6265 }
6266 }
6267
6268 impl MacCounters {
6269 #[inline(always)]
6270 fn max_ordinal_present(&self) -> u64 {
6271 if let Some(_) = self.err_other {
6272 return 26;
6273 }
6274 if let Some(_) = self.err_busy_channel {
6275 return 25;
6276 }
6277 if let Some(_) = self.err_abort {
6278 return 24;
6279 }
6280 if let Some(_) = self.err_cca {
6281 return 23;
6282 }
6283 if let Some(_) = self.err_fcs {
6284 return 22;
6285 }
6286 if let Some(_) = self.err_sec {
6287 return 21;
6288 }
6289 if let Some(_) = self.err_invalid_src_addr {
6290 return 20;
6291 }
6292 if let Some(_) = self.err_unknown_neighbor {
6293 return 19;
6294 }
6295 if let Some(_) = self.err_no_frame {
6296 return 18;
6297 }
6298 if let Some(_) = self.duplicated {
6299 return 17;
6300 }
6301 if let Some(_) = self.dest_addr_filtered {
6302 return 16;
6303 }
6304 if let Some(_) = self.indirect_max_retry_expiry {
6305 return 15;
6306 }
6307 if let Some(_) = self.direct_max_retry_expiry {
6308 return 14;
6309 }
6310 if let Some(_) = self.retries {
6311 return 13;
6312 }
6313 if let Some(_) = self.address_filtered {
6314 return 12;
6315 }
6316 if let Some(_) = self.other {
6317 return 11;
6318 }
6319 if let Some(_) = self.beacon_request {
6320 return 10;
6321 }
6322 if let Some(_) = self.beacon {
6323 return 9;
6324 }
6325 if let Some(_) = self.data_poll {
6326 return 8;
6327 }
6328 if let Some(_) = self.data {
6329 return 7;
6330 }
6331 if let Some(_) = self.no_ack_requested {
6332 return 6;
6333 }
6334 if let Some(_) = self.acked {
6335 return 5;
6336 }
6337 if let Some(_) = self.ack_requested {
6338 return 4;
6339 }
6340 if let Some(_) = self.broadcast {
6341 return 3;
6342 }
6343 if let Some(_) = self.unicast {
6344 return 2;
6345 }
6346 if let Some(_) = self.total {
6347 return 1;
6348 }
6349 0
6350 }
6351 }
6352
6353 impl fidl::encoding::ValueTypeMarker for MacCounters {
6354 type Borrowed<'a> = &'a Self;
6355 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6356 value
6357 }
6358 }
6359
6360 unsafe impl fidl::encoding::TypeMarker for MacCounters {
6361 type Owned = Self;
6362
6363 #[inline(always)]
6364 fn inline_align(_context: fidl::encoding::Context) -> usize {
6365 8
6366 }
6367
6368 #[inline(always)]
6369 fn inline_size(_context: fidl::encoding::Context) -> usize {
6370 16
6371 }
6372 }
6373
6374 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MacCounters, D>
6375 for &MacCounters
6376 {
6377 unsafe fn encode(
6378 self,
6379 encoder: &mut fidl::encoding::Encoder<'_, D>,
6380 offset: usize,
6381 mut depth: fidl::encoding::Depth,
6382 ) -> fidl::Result<()> {
6383 encoder.debug_check_bounds::<MacCounters>(offset);
6384 let max_ordinal: u64 = self.max_ordinal_present();
6386 encoder.write_num(max_ordinal, offset);
6387 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6388 if max_ordinal == 0 {
6390 return Ok(());
6391 }
6392 depth.increment()?;
6393 let envelope_size = 8;
6394 let bytes_len = max_ordinal as usize * envelope_size;
6395 #[allow(unused_variables)]
6396 let offset = encoder.out_of_line_offset(bytes_len);
6397 let mut _prev_end_offset: usize = 0;
6398 if 1 > max_ordinal {
6399 return Ok(());
6400 }
6401
6402 let cur_offset: usize = (1 - 1) * envelope_size;
6405
6406 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6408
6409 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6414 self.total.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6415 encoder,
6416 offset + cur_offset,
6417 depth,
6418 )?;
6419
6420 _prev_end_offset = cur_offset + envelope_size;
6421 if 2 > max_ordinal {
6422 return Ok(());
6423 }
6424
6425 let cur_offset: usize = (2 - 1) * envelope_size;
6428
6429 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6431
6432 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6437 self.unicast.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6438 encoder,
6439 offset + cur_offset,
6440 depth,
6441 )?;
6442
6443 _prev_end_offset = cur_offset + envelope_size;
6444 if 3 > max_ordinal {
6445 return Ok(());
6446 }
6447
6448 let cur_offset: usize = (3 - 1) * envelope_size;
6451
6452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6454
6455 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6460 self.broadcast.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6461 encoder,
6462 offset + cur_offset,
6463 depth,
6464 )?;
6465
6466 _prev_end_offset = cur_offset + envelope_size;
6467 if 4 > max_ordinal {
6468 return Ok(());
6469 }
6470
6471 let cur_offset: usize = (4 - 1) * envelope_size;
6474
6475 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6477
6478 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6483 self.ack_requested.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6484 encoder,
6485 offset + cur_offset,
6486 depth,
6487 )?;
6488
6489 _prev_end_offset = cur_offset + envelope_size;
6490 if 5 > max_ordinal {
6491 return Ok(());
6492 }
6493
6494 let cur_offset: usize = (5 - 1) * envelope_size;
6497
6498 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6500
6501 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6506 self.acked.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6507 encoder,
6508 offset + cur_offset,
6509 depth,
6510 )?;
6511
6512 _prev_end_offset = cur_offset + envelope_size;
6513 if 6 > max_ordinal {
6514 return Ok(());
6515 }
6516
6517 let cur_offset: usize = (6 - 1) * envelope_size;
6520
6521 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6523
6524 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6529 self.no_ack_requested
6530 .as_ref()
6531 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6532 encoder,
6533 offset + cur_offset,
6534 depth,
6535 )?;
6536
6537 _prev_end_offset = cur_offset + envelope_size;
6538 if 7 > max_ordinal {
6539 return Ok(());
6540 }
6541
6542 let cur_offset: usize = (7 - 1) * envelope_size;
6545
6546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6548
6549 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6554 self.data.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6555 encoder,
6556 offset + cur_offset,
6557 depth,
6558 )?;
6559
6560 _prev_end_offset = cur_offset + envelope_size;
6561 if 8 > max_ordinal {
6562 return Ok(());
6563 }
6564
6565 let cur_offset: usize = (8 - 1) * envelope_size;
6568
6569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6571
6572 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6577 self.data_poll.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6578 encoder,
6579 offset + cur_offset,
6580 depth,
6581 )?;
6582
6583 _prev_end_offset = cur_offset + envelope_size;
6584 if 9 > max_ordinal {
6585 return Ok(());
6586 }
6587
6588 let cur_offset: usize = (9 - 1) * envelope_size;
6591
6592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6594
6595 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6600 self.beacon.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6601 encoder,
6602 offset + cur_offset,
6603 depth,
6604 )?;
6605
6606 _prev_end_offset = cur_offset + envelope_size;
6607 if 10 > max_ordinal {
6608 return Ok(());
6609 }
6610
6611 let cur_offset: usize = (10 - 1) * envelope_size;
6614
6615 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6617
6618 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6623 self.beacon_request.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6624 encoder,
6625 offset + cur_offset,
6626 depth,
6627 )?;
6628
6629 _prev_end_offset = cur_offset + envelope_size;
6630 if 11 > max_ordinal {
6631 return Ok(());
6632 }
6633
6634 let cur_offset: usize = (11 - 1) * envelope_size;
6637
6638 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6640
6641 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6646 self.other.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6647 encoder,
6648 offset + cur_offset,
6649 depth,
6650 )?;
6651
6652 _prev_end_offset = cur_offset + envelope_size;
6653 if 12 > max_ordinal {
6654 return Ok(());
6655 }
6656
6657 let cur_offset: usize = (12 - 1) * envelope_size;
6660
6661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6663
6664 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6669 self.address_filtered
6670 .as_ref()
6671 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6672 encoder,
6673 offset + cur_offset,
6674 depth,
6675 )?;
6676
6677 _prev_end_offset = cur_offset + envelope_size;
6678 if 13 > max_ordinal {
6679 return Ok(());
6680 }
6681
6682 let cur_offset: usize = (13 - 1) * envelope_size;
6685
6686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6688
6689 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6694 self.retries.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6695 encoder,
6696 offset + cur_offset,
6697 depth,
6698 )?;
6699
6700 _prev_end_offset = cur_offset + envelope_size;
6701 if 14 > max_ordinal {
6702 return Ok(());
6703 }
6704
6705 let cur_offset: usize = (14 - 1) * envelope_size;
6708
6709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6711
6712 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6717 self.direct_max_retry_expiry
6718 .as_ref()
6719 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6720 encoder,
6721 offset + cur_offset,
6722 depth,
6723 )?;
6724
6725 _prev_end_offset = cur_offset + envelope_size;
6726 if 15 > max_ordinal {
6727 return Ok(());
6728 }
6729
6730 let cur_offset: usize = (15 - 1) * envelope_size;
6733
6734 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6736
6737 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6742 self.indirect_max_retry_expiry
6743 .as_ref()
6744 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6745 encoder,
6746 offset + cur_offset,
6747 depth,
6748 )?;
6749
6750 _prev_end_offset = cur_offset + envelope_size;
6751 if 16 > max_ordinal {
6752 return Ok(());
6753 }
6754
6755 let cur_offset: usize = (16 - 1) * envelope_size;
6758
6759 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6761
6762 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6767 self.dest_addr_filtered
6768 .as_ref()
6769 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6770 encoder,
6771 offset + cur_offset,
6772 depth,
6773 )?;
6774
6775 _prev_end_offset = cur_offset + envelope_size;
6776 if 17 > max_ordinal {
6777 return Ok(());
6778 }
6779
6780 let cur_offset: usize = (17 - 1) * envelope_size;
6783
6784 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6786
6787 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6792 self.duplicated.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6793 encoder,
6794 offset + cur_offset,
6795 depth,
6796 )?;
6797
6798 _prev_end_offset = cur_offset + envelope_size;
6799 if 18 > max_ordinal {
6800 return Ok(());
6801 }
6802
6803 let cur_offset: usize = (18 - 1) * envelope_size;
6806
6807 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6809
6810 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6815 self.err_no_frame.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6816 encoder,
6817 offset + cur_offset,
6818 depth,
6819 )?;
6820
6821 _prev_end_offset = cur_offset + envelope_size;
6822 if 19 > max_ordinal {
6823 return Ok(());
6824 }
6825
6826 let cur_offset: usize = (19 - 1) * envelope_size;
6829
6830 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6832
6833 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6838 self.err_unknown_neighbor
6839 .as_ref()
6840 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6841 encoder,
6842 offset + cur_offset,
6843 depth,
6844 )?;
6845
6846 _prev_end_offset = cur_offset + envelope_size;
6847 if 20 > max_ordinal {
6848 return Ok(());
6849 }
6850
6851 let cur_offset: usize = (20 - 1) * envelope_size;
6854
6855 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6857
6858 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6863 self.err_invalid_src_addr
6864 .as_ref()
6865 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6866 encoder,
6867 offset + cur_offset,
6868 depth,
6869 )?;
6870
6871 _prev_end_offset = cur_offset + envelope_size;
6872 if 21 > max_ordinal {
6873 return Ok(());
6874 }
6875
6876 let cur_offset: usize = (21 - 1) * envelope_size;
6879
6880 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6882
6883 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6888 self.err_sec.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6889 encoder,
6890 offset + cur_offset,
6891 depth,
6892 )?;
6893
6894 _prev_end_offset = cur_offset + envelope_size;
6895 if 22 > max_ordinal {
6896 return Ok(());
6897 }
6898
6899 let cur_offset: usize = (22 - 1) * envelope_size;
6902
6903 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6905
6906 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6911 self.err_fcs.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6912 encoder,
6913 offset + cur_offset,
6914 depth,
6915 )?;
6916
6917 _prev_end_offset = cur_offset + envelope_size;
6918 if 23 > max_ordinal {
6919 return Ok(());
6920 }
6921
6922 let cur_offset: usize = (23 - 1) * envelope_size;
6925
6926 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6928
6929 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6934 self.err_cca.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6935 encoder,
6936 offset + cur_offset,
6937 depth,
6938 )?;
6939
6940 _prev_end_offset = cur_offset + envelope_size;
6941 if 24 > max_ordinal {
6942 return Ok(());
6943 }
6944
6945 let cur_offset: usize = (24 - 1) * envelope_size;
6948
6949 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6951
6952 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6957 self.err_abort.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6958 encoder,
6959 offset + cur_offset,
6960 depth,
6961 )?;
6962
6963 _prev_end_offset = cur_offset + envelope_size;
6964 if 25 > max_ordinal {
6965 return Ok(());
6966 }
6967
6968 let cur_offset: usize = (25 - 1) * envelope_size;
6971
6972 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6974
6975 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6980 self.err_busy_channel
6981 .as_ref()
6982 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6983 encoder,
6984 offset + cur_offset,
6985 depth,
6986 )?;
6987
6988 _prev_end_offset = cur_offset + envelope_size;
6989 if 26 > max_ordinal {
6990 return Ok(());
6991 }
6992
6993 let cur_offset: usize = (26 - 1) * envelope_size;
6996
6997 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6999
7000 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7005 self.err_other.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7006 encoder,
7007 offset + cur_offset,
7008 depth,
7009 )?;
7010
7011 _prev_end_offset = cur_offset + envelope_size;
7012
7013 Ok(())
7014 }
7015 }
7016
7017 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MacCounters {
7018 #[inline(always)]
7019 fn new_empty() -> Self {
7020 Self::default()
7021 }
7022
7023 unsafe fn decode(
7024 &mut self,
7025 decoder: &mut fidl::encoding::Decoder<'_, D>,
7026 offset: usize,
7027 mut depth: fidl::encoding::Depth,
7028 ) -> fidl::Result<()> {
7029 decoder.debug_check_bounds::<Self>(offset);
7030 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7031 None => return Err(fidl::Error::NotNullable),
7032 Some(len) => len,
7033 };
7034 if len == 0 {
7036 return Ok(());
7037 };
7038 depth.increment()?;
7039 let envelope_size = 8;
7040 let bytes_len = len * envelope_size;
7041 let offset = decoder.out_of_line_offset(bytes_len)?;
7042 let mut _next_ordinal_to_read = 0;
7044 let mut next_offset = offset;
7045 let end_offset = offset + bytes_len;
7046 _next_ordinal_to_read += 1;
7047 if next_offset >= end_offset {
7048 return Ok(());
7049 }
7050
7051 while _next_ordinal_to_read < 1 {
7053 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7054 _next_ordinal_to_read += 1;
7055 next_offset += envelope_size;
7056 }
7057
7058 let next_out_of_line = decoder.next_out_of_line();
7059 let handles_before = decoder.remaining_handles();
7060 if let Some((inlined, num_bytes, num_handles)) =
7061 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7062 {
7063 let member_inline_size =
7064 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7065 if inlined != (member_inline_size <= 4) {
7066 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7067 }
7068 let inner_offset;
7069 let mut inner_depth = depth.clone();
7070 if inlined {
7071 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7072 inner_offset = next_offset;
7073 } else {
7074 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7075 inner_depth.increment()?;
7076 }
7077 let val_ref = self.total.get_or_insert_with(|| fidl::new_empty!(u32, D));
7078 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7079 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7080 {
7081 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7082 }
7083 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7084 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7085 }
7086 }
7087
7088 next_offset += envelope_size;
7089 _next_ordinal_to_read += 1;
7090 if next_offset >= end_offset {
7091 return Ok(());
7092 }
7093
7094 while _next_ordinal_to_read < 2 {
7096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7097 _next_ordinal_to_read += 1;
7098 next_offset += envelope_size;
7099 }
7100
7101 let next_out_of_line = decoder.next_out_of_line();
7102 let handles_before = decoder.remaining_handles();
7103 if let Some((inlined, num_bytes, num_handles)) =
7104 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7105 {
7106 let member_inline_size =
7107 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7108 if inlined != (member_inline_size <= 4) {
7109 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7110 }
7111 let inner_offset;
7112 let mut inner_depth = depth.clone();
7113 if inlined {
7114 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7115 inner_offset = next_offset;
7116 } else {
7117 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7118 inner_depth.increment()?;
7119 }
7120 let val_ref = self.unicast.get_or_insert_with(|| fidl::new_empty!(u32, D));
7121 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7122 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7123 {
7124 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7125 }
7126 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7127 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7128 }
7129 }
7130
7131 next_offset += envelope_size;
7132 _next_ordinal_to_read += 1;
7133 if next_offset >= end_offset {
7134 return Ok(());
7135 }
7136
7137 while _next_ordinal_to_read < 3 {
7139 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7140 _next_ordinal_to_read += 1;
7141 next_offset += envelope_size;
7142 }
7143
7144 let next_out_of_line = decoder.next_out_of_line();
7145 let handles_before = decoder.remaining_handles();
7146 if let Some((inlined, num_bytes, num_handles)) =
7147 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7148 {
7149 let member_inline_size =
7150 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7151 if inlined != (member_inline_size <= 4) {
7152 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7153 }
7154 let inner_offset;
7155 let mut inner_depth = depth.clone();
7156 if inlined {
7157 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7158 inner_offset = next_offset;
7159 } else {
7160 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7161 inner_depth.increment()?;
7162 }
7163 let val_ref = self.broadcast.get_or_insert_with(|| fidl::new_empty!(u32, D));
7164 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7166 {
7167 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7168 }
7169 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7170 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7171 }
7172 }
7173
7174 next_offset += envelope_size;
7175 _next_ordinal_to_read += 1;
7176 if next_offset >= end_offset {
7177 return Ok(());
7178 }
7179
7180 while _next_ordinal_to_read < 4 {
7182 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7183 _next_ordinal_to_read += 1;
7184 next_offset += envelope_size;
7185 }
7186
7187 let next_out_of_line = decoder.next_out_of_line();
7188 let handles_before = decoder.remaining_handles();
7189 if let Some((inlined, num_bytes, num_handles)) =
7190 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7191 {
7192 let member_inline_size =
7193 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7194 if inlined != (member_inline_size <= 4) {
7195 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7196 }
7197 let inner_offset;
7198 let mut inner_depth = depth.clone();
7199 if inlined {
7200 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7201 inner_offset = next_offset;
7202 } else {
7203 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7204 inner_depth.increment()?;
7205 }
7206 let val_ref = self.ack_requested.get_or_insert_with(|| fidl::new_empty!(u32, D));
7207 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7208 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7209 {
7210 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7211 }
7212 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7213 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7214 }
7215 }
7216
7217 next_offset += envelope_size;
7218 _next_ordinal_to_read += 1;
7219 if next_offset >= end_offset {
7220 return Ok(());
7221 }
7222
7223 while _next_ordinal_to_read < 5 {
7225 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7226 _next_ordinal_to_read += 1;
7227 next_offset += envelope_size;
7228 }
7229
7230 let next_out_of_line = decoder.next_out_of_line();
7231 let handles_before = decoder.remaining_handles();
7232 if let Some((inlined, num_bytes, num_handles)) =
7233 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7234 {
7235 let member_inline_size =
7236 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7237 if inlined != (member_inline_size <= 4) {
7238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7239 }
7240 let inner_offset;
7241 let mut inner_depth = depth.clone();
7242 if inlined {
7243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7244 inner_offset = next_offset;
7245 } else {
7246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7247 inner_depth.increment()?;
7248 }
7249 let val_ref = self.acked.get_or_insert_with(|| fidl::new_empty!(u32, D));
7250 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7252 {
7253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7254 }
7255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7257 }
7258 }
7259
7260 next_offset += envelope_size;
7261 _next_ordinal_to_read += 1;
7262 if next_offset >= end_offset {
7263 return Ok(());
7264 }
7265
7266 while _next_ordinal_to_read < 6 {
7268 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7269 _next_ordinal_to_read += 1;
7270 next_offset += envelope_size;
7271 }
7272
7273 let next_out_of_line = decoder.next_out_of_line();
7274 let handles_before = decoder.remaining_handles();
7275 if let Some((inlined, num_bytes, num_handles)) =
7276 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7277 {
7278 let member_inline_size =
7279 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7280 if inlined != (member_inline_size <= 4) {
7281 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7282 }
7283 let inner_offset;
7284 let mut inner_depth = depth.clone();
7285 if inlined {
7286 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7287 inner_offset = next_offset;
7288 } else {
7289 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7290 inner_depth.increment()?;
7291 }
7292 let val_ref = self.no_ack_requested.get_or_insert_with(|| fidl::new_empty!(u32, D));
7293 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7294 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7295 {
7296 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7297 }
7298 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7299 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7300 }
7301 }
7302
7303 next_offset += envelope_size;
7304 _next_ordinal_to_read += 1;
7305 if next_offset >= end_offset {
7306 return Ok(());
7307 }
7308
7309 while _next_ordinal_to_read < 7 {
7311 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7312 _next_ordinal_to_read += 1;
7313 next_offset += envelope_size;
7314 }
7315
7316 let next_out_of_line = decoder.next_out_of_line();
7317 let handles_before = decoder.remaining_handles();
7318 if let Some((inlined, num_bytes, num_handles)) =
7319 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7320 {
7321 let member_inline_size =
7322 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7323 if inlined != (member_inline_size <= 4) {
7324 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7325 }
7326 let inner_offset;
7327 let mut inner_depth = depth.clone();
7328 if inlined {
7329 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7330 inner_offset = next_offset;
7331 } else {
7332 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7333 inner_depth.increment()?;
7334 }
7335 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(u32, D));
7336 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7337 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7338 {
7339 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7340 }
7341 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7342 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7343 }
7344 }
7345
7346 next_offset += envelope_size;
7347 _next_ordinal_to_read += 1;
7348 if next_offset >= end_offset {
7349 return Ok(());
7350 }
7351
7352 while _next_ordinal_to_read < 8 {
7354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7355 _next_ordinal_to_read += 1;
7356 next_offset += envelope_size;
7357 }
7358
7359 let next_out_of_line = decoder.next_out_of_line();
7360 let handles_before = decoder.remaining_handles();
7361 if let Some((inlined, num_bytes, num_handles)) =
7362 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7363 {
7364 let member_inline_size =
7365 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7366 if inlined != (member_inline_size <= 4) {
7367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7368 }
7369 let inner_offset;
7370 let mut inner_depth = depth.clone();
7371 if inlined {
7372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7373 inner_offset = next_offset;
7374 } else {
7375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7376 inner_depth.increment()?;
7377 }
7378 let val_ref = self.data_poll.get_or_insert_with(|| fidl::new_empty!(u32, D));
7379 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7381 {
7382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7383 }
7384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7386 }
7387 }
7388
7389 next_offset += envelope_size;
7390 _next_ordinal_to_read += 1;
7391 if next_offset >= end_offset {
7392 return Ok(());
7393 }
7394
7395 while _next_ordinal_to_read < 9 {
7397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7398 _next_ordinal_to_read += 1;
7399 next_offset += envelope_size;
7400 }
7401
7402 let next_out_of_line = decoder.next_out_of_line();
7403 let handles_before = decoder.remaining_handles();
7404 if let Some((inlined, num_bytes, num_handles)) =
7405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7406 {
7407 let member_inline_size =
7408 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7409 if inlined != (member_inline_size <= 4) {
7410 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7411 }
7412 let inner_offset;
7413 let mut inner_depth = depth.clone();
7414 if inlined {
7415 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7416 inner_offset = next_offset;
7417 } else {
7418 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7419 inner_depth.increment()?;
7420 }
7421 let val_ref = self.beacon.get_or_insert_with(|| fidl::new_empty!(u32, D));
7422 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7423 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7424 {
7425 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7426 }
7427 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7428 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7429 }
7430 }
7431
7432 next_offset += envelope_size;
7433 _next_ordinal_to_read += 1;
7434 if next_offset >= end_offset {
7435 return Ok(());
7436 }
7437
7438 while _next_ordinal_to_read < 10 {
7440 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7441 _next_ordinal_to_read += 1;
7442 next_offset += envelope_size;
7443 }
7444
7445 let next_out_of_line = decoder.next_out_of_line();
7446 let handles_before = decoder.remaining_handles();
7447 if let Some((inlined, num_bytes, num_handles)) =
7448 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7449 {
7450 let member_inline_size =
7451 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7452 if inlined != (member_inline_size <= 4) {
7453 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7454 }
7455 let inner_offset;
7456 let mut inner_depth = depth.clone();
7457 if inlined {
7458 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7459 inner_offset = next_offset;
7460 } else {
7461 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7462 inner_depth.increment()?;
7463 }
7464 let val_ref = self.beacon_request.get_or_insert_with(|| fidl::new_empty!(u32, D));
7465 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7466 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7467 {
7468 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7469 }
7470 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7471 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7472 }
7473 }
7474
7475 next_offset += envelope_size;
7476 _next_ordinal_to_read += 1;
7477 if next_offset >= end_offset {
7478 return Ok(());
7479 }
7480
7481 while _next_ordinal_to_read < 11 {
7483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7484 _next_ordinal_to_read += 1;
7485 next_offset += envelope_size;
7486 }
7487
7488 let next_out_of_line = decoder.next_out_of_line();
7489 let handles_before = decoder.remaining_handles();
7490 if let Some((inlined, num_bytes, num_handles)) =
7491 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7492 {
7493 let member_inline_size =
7494 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7495 if inlined != (member_inline_size <= 4) {
7496 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7497 }
7498 let inner_offset;
7499 let mut inner_depth = depth.clone();
7500 if inlined {
7501 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7502 inner_offset = next_offset;
7503 } else {
7504 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7505 inner_depth.increment()?;
7506 }
7507 let val_ref = self.other.get_or_insert_with(|| fidl::new_empty!(u32, D));
7508 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7509 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7510 {
7511 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7512 }
7513 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7514 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7515 }
7516 }
7517
7518 next_offset += envelope_size;
7519 _next_ordinal_to_read += 1;
7520 if next_offset >= end_offset {
7521 return Ok(());
7522 }
7523
7524 while _next_ordinal_to_read < 12 {
7526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7527 _next_ordinal_to_read += 1;
7528 next_offset += envelope_size;
7529 }
7530
7531 let next_out_of_line = decoder.next_out_of_line();
7532 let handles_before = decoder.remaining_handles();
7533 if let Some((inlined, num_bytes, num_handles)) =
7534 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7535 {
7536 let member_inline_size =
7537 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7538 if inlined != (member_inline_size <= 4) {
7539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7540 }
7541 let inner_offset;
7542 let mut inner_depth = depth.clone();
7543 if inlined {
7544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7545 inner_offset = next_offset;
7546 } else {
7547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7548 inner_depth.increment()?;
7549 }
7550 let val_ref = self.address_filtered.get_or_insert_with(|| fidl::new_empty!(u32, D));
7551 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7553 {
7554 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7555 }
7556 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7557 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7558 }
7559 }
7560
7561 next_offset += envelope_size;
7562 _next_ordinal_to_read += 1;
7563 if next_offset >= end_offset {
7564 return Ok(());
7565 }
7566
7567 while _next_ordinal_to_read < 13 {
7569 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7570 _next_ordinal_to_read += 1;
7571 next_offset += envelope_size;
7572 }
7573
7574 let next_out_of_line = decoder.next_out_of_line();
7575 let handles_before = decoder.remaining_handles();
7576 if let Some((inlined, num_bytes, num_handles)) =
7577 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7578 {
7579 let member_inline_size =
7580 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7581 if inlined != (member_inline_size <= 4) {
7582 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7583 }
7584 let inner_offset;
7585 let mut inner_depth = depth.clone();
7586 if inlined {
7587 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7588 inner_offset = next_offset;
7589 } else {
7590 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7591 inner_depth.increment()?;
7592 }
7593 let val_ref = self.retries.get_or_insert_with(|| fidl::new_empty!(u32, D));
7594 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7595 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7596 {
7597 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7598 }
7599 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7600 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7601 }
7602 }
7603
7604 next_offset += envelope_size;
7605 _next_ordinal_to_read += 1;
7606 if next_offset >= end_offset {
7607 return Ok(());
7608 }
7609
7610 while _next_ordinal_to_read < 14 {
7612 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7613 _next_ordinal_to_read += 1;
7614 next_offset += envelope_size;
7615 }
7616
7617 let next_out_of_line = decoder.next_out_of_line();
7618 let handles_before = decoder.remaining_handles();
7619 if let Some((inlined, num_bytes, num_handles)) =
7620 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7621 {
7622 let member_inline_size =
7623 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7624 if inlined != (member_inline_size <= 4) {
7625 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7626 }
7627 let inner_offset;
7628 let mut inner_depth = depth.clone();
7629 if inlined {
7630 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7631 inner_offset = next_offset;
7632 } else {
7633 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7634 inner_depth.increment()?;
7635 }
7636 let val_ref =
7637 self.direct_max_retry_expiry.get_or_insert_with(|| fidl::new_empty!(u32, D));
7638 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7640 {
7641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7642 }
7643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7645 }
7646 }
7647
7648 next_offset += envelope_size;
7649 _next_ordinal_to_read += 1;
7650 if next_offset >= end_offset {
7651 return Ok(());
7652 }
7653
7654 while _next_ordinal_to_read < 15 {
7656 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7657 _next_ordinal_to_read += 1;
7658 next_offset += envelope_size;
7659 }
7660
7661 let next_out_of_line = decoder.next_out_of_line();
7662 let handles_before = decoder.remaining_handles();
7663 if let Some((inlined, num_bytes, num_handles)) =
7664 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7665 {
7666 let member_inline_size =
7667 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7668 if inlined != (member_inline_size <= 4) {
7669 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7670 }
7671 let inner_offset;
7672 let mut inner_depth = depth.clone();
7673 if inlined {
7674 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7675 inner_offset = next_offset;
7676 } else {
7677 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7678 inner_depth.increment()?;
7679 }
7680 let val_ref =
7681 self.indirect_max_retry_expiry.get_or_insert_with(|| fidl::new_empty!(u32, D));
7682 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7683 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7684 {
7685 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7686 }
7687 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7688 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7689 }
7690 }
7691
7692 next_offset += envelope_size;
7693 _next_ordinal_to_read += 1;
7694 if next_offset >= end_offset {
7695 return Ok(());
7696 }
7697
7698 while _next_ordinal_to_read < 16 {
7700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7701 _next_ordinal_to_read += 1;
7702 next_offset += envelope_size;
7703 }
7704
7705 let next_out_of_line = decoder.next_out_of_line();
7706 let handles_before = decoder.remaining_handles();
7707 if let Some((inlined, num_bytes, num_handles)) =
7708 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7709 {
7710 let member_inline_size =
7711 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7712 if inlined != (member_inline_size <= 4) {
7713 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7714 }
7715 let inner_offset;
7716 let mut inner_depth = depth.clone();
7717 if inlined {
7718 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7719 inner_offset = next_offset;
7720 } else {
7721 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7722 inner_depth.increment()?;
7723 }
7724 let val_ref =
7725 self.dest_addr_filtered.get_or_insert_with(|| fidl::new_empty!(u32, D));
7726 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7727 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7728 {
7729 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7730 }
7731 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7732 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7733 }
7734 }
7735
7736 next_offset += envelope_size;
7737 _next_ordinal_to_read += 1;
7738 if next_offset >= end_offset {
7739 return Ok(());
7740 }
7741
7742 while _next_ordinal_to_read < 17 {
7744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7745 _next_ordinal_to_read += 1;
7746 next_offset += envelope_size;
7747 }
7748
7749 let next_out_of_line = decoder.next_out_of_line();
7750 let handles_before = decoder.remaining_handles();
7751 if let Some((inlined, num_bytes, num_handles)) =
7752 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7753 {
7754 let member_inline_size =
7755 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7756 if inlined != (member_inline_size <= 4) {
7757 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7758 }
7759 let inner_offset;
7760 let mut inner_depth = depth.clone();
7761 if inlined {
7762 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7763 inner_offset = next_offset;
7764 } else {
7765 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7766 inner_depth.increment()?;
7767 }
7768 let val_ref = self.duplicated.get_or_insert_with(|| fidl::new_empty!(u32, D));
7769 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7770 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7771 {
7772 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7773 }
7774 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7775 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7776 }
7777 }
7778
7779 next_offset += envelope_size;
7780 _next_ordinal_to_read += 1;
7781 if next_offset >= end_offset {
7782 return Ok(());
7783 }
7784
7785 while _next_ordinal_to_read < 18 {
7787 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7788 _next_ordinal_to_read += 1;
7789 next_offset += envelope_size;
7790 }
7791
7792 let next_out_of_line = decoder.next_out_of_line();
7793 let handles_before = decoder.remaining_handles();
7794 if let Some((inlined, num_bytes, num_handles)) =
7795 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7796 {
7797 let member_inline_size =
7798 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7799 if inlined != (member_inline_size <= 4) {
7800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7801 }
7802 let inner_offset;
7803 let mut inner_depth = depth.clone();
7804 if inlined {
7805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7806 inner_offset = next_offset;
7807 } else {
7808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7809 inner_depth.increment()?;
7810 }
7811 let val_ref = self.err_no_frame.get_or_insert_with(|| fidl::new_empty!(u32, D));
7812 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7813 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7814 {
7815 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7816 }
7817 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7818 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7819 }
7820 }
7821
7822 next_offset += envelope_size;
7823 _next_ordinal_to_read += 1;
7824 if next_offset >= end_offset {
7825 return Ok(());
7826 }
7827
7828 while _next_ordinal_to_read < 19 {
7830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7831 _next_ordinal_to_read += 1;
7832 next_offset += envelope_size;
7833 }
7834
7835 let next_out_of_line = decoder.next_out_of_line();
7836 let handles_before = decoder.remaining_handles();
7837 if let Some((inlined, num_bytes, num_handles)) =
7838 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7839 {
7840 let member_inline_size =
7841 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7842 if inlined != (member_inline_size <= 4) {
7843 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7844 }
7845 let inner_offset;
7846 let mut inner_depth = depth.clone();
7847 if inlined {
7848 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7849 inner_offset = next_offset;
7850 } else {
7851 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7852 inner_depth.increment()?;
7853 }
7854 let val_ref =
7855 self.err_unknown_neighbor.get_or_insert_with(|| fidl::new_empty!(u32, D));
7856 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7857 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7858 {
7859 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7860 }
7861 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7862 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7863 }
7864 }
7865
7866 next_offset += envelope_size;
7867 _next_ordinal_to_read += 1;
7868 if next_offset >= end_offset {
7869 return Ok(());
7870 }
7871
7872 while _next_ordinal_to_read < 20 {
7874 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7875 _next_ordinal_to_read += 1;
7876 next_offset += envelope_size;
7877 }
7878
7879 let next_out_of_line = decoder.next_out_of_line();
7880 let handles_before = decoder.remaining_handles();
7881 if let Some((inlined, num_bytes, num_handles)) =
7882 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7883 {
7884 let member_inline_size =
7885 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7886 if inlined != (member_inline_size <= 4) {
7887 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7888 }
7889 let inner_offset;
7890 let mut inner_depth = depth.clone();
7891 if inlined {
7892 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7893 inner_offset = next_offset;
7894 } else {
7895 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7896 inner_depth.increment()?;
7897 }
7898 let val_ref =
7899 self.err_invalid_src_addr.get_or_insert_with(|| fidl::new_empty!(u32, D));
7900 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7901 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7902 {
7903 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7904 }
7905 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7906 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7907 }
7908 }
7909
7910 next_offset += envelope_size;
7911 _next_ordinal_to_read += 1;
7912 if next_offset >= end_offset {
7913 return Ok(());
7914 }
7915
7916 while _next_ordinal_to_read < 21 {
7918 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7919 _next_ordinal_to_read += 1;
7920 next_offset += envelope_size;
7921 }
7922
7923 let next_out_of_line = decoder.next_out_of_line();
7924 let handles_before = decoder.remaining_handles();
7925 if let Some((inlined, num_bytes, num_handles)) =
7926 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7927 {
7928 let member_inline_size =
7929 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7930 if inlined != (member_inline_size <= 4) {
7931 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7932 }
7933 let inner_offset;
7934 let mut inner_depth = depth.clone();
7935 if inlined {
7936 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7937 inner_offset = next_offset;
7938 } else {
7939 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7940 inner_depth.increment()?;
7941 }
7942 let val_ref = self.err_sec.get_or_insert_with(|| fidl::new_empty!(u32, D));
7943 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7945 {
7946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7947 }
7948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7950 }
7951 }
7952
7953 next_offset += envelope_size;
7954 _next_ordinal_to_read += 1;
7955 if next_offset >= end_offset {
7956 return Ok(());
7957 }
7958
7959 while _next_ordinal_to_read < 22 {
7961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7962 _next_ordinal_to_read += 1;
7963 next_offset += envelope_size;
7964 }
7965
7966 let next_out_of_line = decoder.next_out_of_line();
7967 let handles_before = decoder.remaining_handles();
7968 if let Some((inlined, num_bytes, num_handles)) =
7969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7970 {
7971 let member_inline_size =
7972 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7973 if inlined != (member_inline_size <= 4) {
7974 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7975 }
7976 let inner_offset;
7977 let mut inner_depth = depth.clone();
7978 if inlined {
7979 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7980 inner_offset = next_offset;
7981 } else {
7982 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7983 inner_depth.increment()?;
7984 }
7985 let val_ref = self.err_fcs.get_or_insert_with(|| fidl::new_empty!(u32, D));
7986 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7987 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7988 {
7989 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7990 }
7991 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7992 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7993 }
7994 }
7995
7996 next_offset += envelope_size;
7997 _next_ordinal_to_read += 1;
7998 if next_offset >= end_offset {
7999 return Ok(());
8000 }
8001
8002 while _next_ordinal_to_read < 23 {
8004 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8005 _next_ordinal_to_read += 1;
8006 next_offset += envelope_size;
8007 }
8008
8009 let next_out_of_line = decoder.next_out_of_line();
8010 let handles_before = decoder.remaining_handles();
8011 if let Some((inlined, num_bytes, num_handles)) =
8012 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8013 {
8014 let member_inline_size =
8015 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8016 if inlined != (member_inline_size <= 4) {
8017 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8018 }
8019 let inner_offset;
8020 let mut inner_depth = depth.clone();
8021 if inlined {
8022 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8023 inner_offset = next_offset;
8024 } else {
8025 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8026 inner_depth.increment()?;
8027 }
8028 let val_ref = self.err_cca.get_or_insert_with(|| fidl::new_empty!(u32, D));
8029 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8030 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8031 {
8032 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8033 }
8034 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8035 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8036 }
8037 }
8038
8039 next_offset += envelope_size;
8040 _next_ordinal_to_read += 1;
8041 if next_offset >= end_offset {
8042 return Ok(());
8043 }
8044
8045 while _next_ordinal_to_read < 24 {
8047 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8048 _next_ordinal_to_read += 1;
8049 next_offset += envelope_size;
8050 }
8051
8052 let next_out_of_line = decoder.next_out_of_line();
8053 let handles_before = decoder.remaining_handles();
8054 if let Some((inlined, num_bytes, num_handles)) =
8055 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8056 {
8057 let member_inline_size =
8058 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8059 if inlined != (member_inline_size <= 4) {
8060 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8061 }
8062 let inner_offset;
8063 let mut inner_depth = depth.clone();
8064 if inlined {
8065 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8066 inner_offset = next_offset;
8067 } else {
8068 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8069 inner_depth.increment()?;
8070 }
8071 let val_ref = self.err_abort.get_or_insert_with(|| fidl::new_empty!(u32, D));
8072 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8074 {
8075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8076 }
8077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8079 }
8080 }
8081
8082 next_offset += envelope_size;
8083 _next_ordinal_to_read += 1;
8084 if next_offset >= end_offset {
8085 return Ok(());
8086 }
8087
8088 while _next_ordinal_to_read < 25 {
8090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8091 _next_ordinal_to_read += 1;
8092 next_offset += envelope_size;
8093 }
8094
8095 let next_out_of_line = decoder.next_out_of_line();
8096 let handles_before = decoder.remaining_handles();
8097 if let Some((inlined, num_bytes, num_handles)) =
8098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8099 {
8100 let member_inline_size =
8101 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8102 if inlined != (member_inline_size <= 4) {
8103 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8104 }
8105 let inner_offset;
8106 let mut inner_depth = depth.clone();
8107 if inlined {
8108 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8109 inner_offset = next_offset;
8110 } else {
8111 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8112 inner_depth.increment()?;
8113 }
8114 let val_ref = self.err_busy_channel.get_or_insert_with(|| fidl::new_empty!(u32, D));
8115 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8116 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8117 {
8118 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8119 }
8120 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8121 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8122 }
8123 }
8124
8125 next_offset += envelope_size;
8126 _next_ordinal_to_read += 1;
8127 if next_offset >= end_offset {
8128 return Ok(());
8129 }
8130
8131 while _next_ordinal_to_read < 26 {
8133 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8134 _next_ordinal_to_read += 1;
8135 next_offset += envelope_size;
8136 }
8137
8138 let next_out_of_line = decoder.next_out_of_line();
8139 let handles_before = decoder.remaining_handles();
8140 if let Some((inlined, num_bytes, num_handles)) =
8141 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8142 {
8143 let member_inline_size =
8144 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8145 if inlined != (member_inline_size <= 4) {
8146 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8147 }
8148 let inner_offset;
8149 let mut inner_depth = depth.clone();
8150 if inlined {
8151 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8152 inner_offset = next_offset;
8153 } else {
8154 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8155 inner_depth.increment()?;
8156 }
8157 let val_ref = self.err_other.get_or_insert_with(|| fidl::new_empty!(u32, D));
8158 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8159 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8160 {
8161 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8162 }
8163 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8164 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8165 }
8166 }
8167
8168 next_offset += envelope_size;
8169
8170 while next_offset < end_offset {
8172 _next_ordinal_to_read += 1;
8173 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8174 next_offset += envelope_size;
8175 }
8176
8177 Ok(())
8178 }
8179 }
8180
8181 impl MleCounters {
8182 #[inline(always)]
8183 fn max_ordinal_present(&self) -> u64 {
8184 if let Some(_) = self.parent_changes {
8185 return 16;
8186 }
8187 if let Some(_) = self.tracked_time {
8188 return 15;
8189 }
8190 if let Some(_) = self.leader_time {
8191 return 14;
8192 }
8193 if let Some(_) = self.router_time {
8194 return 13;
8195 }
8196 if let Some(_) = self.child_time {
8197 return 12;
8198 }
8199 if let Some(_) = self.detached_time {
8200 return 11;
8201 }
8202 if let Some(_) = self.disabled_time {
8203 return 10;
8204 }
8205 if let Some(_) = self.better_parent_attach_attempts {
8206 return 9;
8207 }
8208 if let Some(_) = self.better_partition_attach_attempts {
8209 return 8;
8210 }
8211 if let Some(_) = self.partition_id_changes {
8212 return 7;
8213 }
8214 if let Some(_) = self.attach_attempts {
8215 return 6;
8216 }
8217 if let Some(_) = self.leader_role {
8218 return 5;
8219 }
8220 if let Some(_) = self.router_role {
8221 return 4;
8222 }
8223 if let Some(_) = self.child_role {
8224 return 3;
8225 }
8226 if let Some(_) = self.detached_role {
8227 return 2;
8228 }
8229 if let Some(_) = self.disabled_role {
8230 return 1;
8231 }
8232 0
8233 }
8234 }
8235
8236 impl fidl::encoding::ValueTypeMarker for MleCounters {
8237 type Borrowed<'a> = &'a Self;
8238 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8239 value
8240 }
8241 }
8242
8243 unsafe impl fidl::encoding::TypeMarker for MleCounters {
8244 type Owned = Self;
8245
8246 #[inline(always)]
8247 fn inline_align(_context: fidl::encoding::Context) -> usize {
8248 8
8249 }
8250
8251 #[inline(always)]
8252 fn inline_size(_context: fidl::encoding::Context) -> usize {
8253 16
8254 }
8255 }
8256
8257 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MleCounters, D>
8258 for &MleCounters
8259 {
8260 unsafe fn encode(
8261 self,
8262 encoder: &mut fidl::encoding::Encoder<'_, D>,
8263 offset: usize,
8264 mut depth: fidl::encoding::Depth,
8265 ) -> fidl::Result<()> {
8266 encoder.debug_check_bounds::<MleCounters>(offset);
8267 let max_ordinal: u64 = self.max_ordinal_present();
8269 encoder.write_num(max_ordinal, offset);
8270 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8271 if max_ordinal == 0 {
8273 return Ok(());
8274 }
8275 depth.increment()?;
8276 let envelope_size = 8;
8277 let bytes_len = max_ordinal as usize * envelope_size;
8278 #[allow(unused_variables)]
8279 let offset = encoder.out_of_line_offset(bytes_len);
8280 let mut _prev_end_offset: usize = 0;
8281 if 1 > max_ordinal {
8282 return Ok(());
8283 }
8284
8285 let cur_offset: usize = (1 - 1) * envelope_size;
8288
8289 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8291
8292 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8297 self.disabled_role.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8298 encoder,
8299 offset + cur_offset,
8300 depth,
8301 )?;
8302
8303 _prev_end_offset = cur_offset + envelope_size;
8304 if 2 > max_ordinal {
8305 return Ok(());
8306 }
8307
8308 let cur_offset: usize = (2 - 1) * envelope_size;
8311
8312 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8314
8315 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8320 self.detached_role.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8321 encoder,
8322 offset + cur_offset,
8323 depth,
8324 )?;
8325
8326 _prev_end_offset = cur_offset + envelope_size;
8327 if 3 > max_ordinal {
8328 return Ok(());
8329 }
8330
8331 let cur_offset: usize = (3 - 1) * envelope_size;
8334
8335 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8337
8338 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8343 self.child_role.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8344 encoder,
8345 offset + cur_offset,
8346 depth,
8347 )?;
8348
8349 _prev_end_offset = cur_offset + envelope_size;
8350 if 4 > max_ordinal {
8351 return Ok(());
8352 }
8353
8354 let cur_offset: usize = (4 - 1) * envelope_size;
8357
8358 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8360
8361 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8366 self.router_role.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8367 encoder,
8368 offset + cur_offset,
8369 depth,
8370 )?;
8371
8372 _prev_end_offset = cur_offset + envelope_size;
8373 if 5 > max_ordinal {
8374 return Ok(());
8375 }
8376
8377 let cur_offset: usize = (5 - 1) * envelope_size;
8380
8381 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8383
8384 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8389 self.leader_role.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8390 encoder,
8391 offset + cur_offset,
8392 depth,
8393 )?;
8394
8395 _prev_end_offset = cur_offset + envelope_size;
8396 if 6 > max_ordinal {
8397 return Ok(());
8398 }
8399
8400 let cur_offset: usize = (6 - 1) * envelope_size;
8403
8404 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8406
8407 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8412 self.attach_attempts.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8413 encoder,
8414 offset + cur_offset,
8415 depth,
8416 )?;
8417
8418 _prev_end_offset = cur_offset + envelope_size;
8419 if 7 > max_ordinal {
8420 return Ok(());
8421 }
8422
8423 let cur_offset: usize = (7 - 1) * envelope_size;
8426
8427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8429
8430 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8435 self.partition_id_changes
8436 .as_ref()
8437 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8438 encoder,
8439 offset + cur_offset,
8440 depth,
8441 )?;
8442
8443 _prev_end_offset = cur_offset + envelope_size;
8444 if 8 > max_ordinal {
8445 return Ok(());
8446 }
8447
8448 let cur_offset: usize = (8 - 1) * envelope_size;
8451
8452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8454
8455 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8460 self.better_partition_attach_attempts
8461 .as_ref()
8462 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8463 encoder,
8464 offset + cur_offset,
8465 depth,
8466 )?;
8467
8468 _prev_end_offset = cur_offset + envelope_size;
8469 if 9 > max_ordinal {
8470 return Ok(());
8471 }
8472
8473 let cur_offset: usize = (9 - 1) * envelope_size;
8476
8477 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8479
8480 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8485 self.better_parent_attach_attempts
8486 .as_ref()
8487 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8488 encoder,
8489 offset + cur_offset,
8490 depth,
8491 )?;
8492
8493 _prev_end_offset = cur_offset + envelope_size;
8494 if 10 > max_ordinal {
8495 return Ok(());
8496 }
8497
8498 let cur_offset: usize = (10 - 1) * envelope_size;
8501
8502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8504
8505 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8510 self.disabled_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8511 encoder,
8512 offset + cur_offset,
8513 depth,
8514 )?;
8515
8516 _prev_end_offset = cur_offset + envelope_size;
8517 if 11 > max_ordinal {
8518 return Ok(());
8519 }
8520
8521 let cur_offset: usize = (11 - 1) * envelope_size;
8524
8525 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8527
8528 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8533 self.detached_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8534 encoder,
8535 offset + cur_offset,
8536 depth,
8537 )?;
8538
8539 _prev_end_offset = cur_offset + envelope_size;
8540 if 12 > max_ordinal {
8541 return Ok(());
8542 }
8543
8544 let cur_offset: usize = (12 - 1) * envelope_size;
8547
8548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8550
8551 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8556 self.child_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8557 encoder,
8558 offset + cur_offset,
8559 depth,
8560 )?;
8561
8562 _prev_end_offset = cur_offset + envelope_size;
8563 if 13 > max_ordinal {
8564 return Ok(());
8565 }
8566
8567 let cur_offset: usize = (13 - 1) * envelope_size;
8570
8571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8573
8574 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8579 self.router_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8580 encoder,
8581 offset + cur_offset,
8582 depth,
8583 )?;
8584
8585 _prev_end_offset = cur_offset + envelope_size;
8586 if 14 > max_ordinal {
8587 return Ok(());
8588 }
8589
8590 let cur_offset: usize = (14 - 1) * envelope_size;
8593
8594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8596
8597 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8602 self.leader_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8603 encoder,
8604 offset + cur_offset,
8605 depth,
8606 )?;
8607
8608 _prev_end_offset = cur_offset + envelope_size;
8609 if 15 > max_ordinal {
8610 return Ok(());
8611 }
8612
8613 let cur_offset: usize = (15 - 1) * envelope_size;
8616
8617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8619
8620 fidl::encoding::encode_in_envelope_optional::<u64, D>(
8625 self.tracked_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
8626 encoder,
8627 offset + cur_offset,
8628 depth,
8629 )?;
8630
8631 _prev_end_offset = cur_offset + envelope_size;
8632 if 16 > max_ordinal {
8633 return Ok(());
8634 }
8635
8636 let cur_offset: usize = (16 - 1) * envelope_size;
8639
8640 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8642
8643 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8648 self.parent_changes.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8649 encoder,
8650 offset + cur_offset,
8651 depth,
8652 )?;
8653
8654 _prev_end_offset = cur_offset + envelope_size;
8655
8656 Ok(())
8657 }
8658 }
8659
8660 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MleCounters {
8661 #[inline(always)]
8662 fn new_empty() -> Self {
8663 Self::default()
8664 }
8665
8666 unsafe fn decode(
8667 &mut self,
8668 decoder: &mut fidl::encoding::Decoder<'_, D>,
8669 offset: usize,
8670 mut depth: fidl::encoding::Depth,
8671 ) -> fidl::Result<()> {
8672 decoder.debug_check_bounds::<Self>(offset);
8673 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8674 None => return Err(fidl::Error::NotNullable),
8675 Some(len) => len,
8676 };
8677 if len == 0 {
8679 return Ok(());
8680 };
8681 depth.increment()?;
8682 let envelope_size = 8;
8683 let bytes_len = len * envelope_size;
8684 let offset = decoder.out_of_line_offset(bytes_len)?;
8685 let mut _next_ordinal_to_read = 0;
8687 let mut next_offset = offset;
8688 let end_offset = offset + bytes_len;
8689 _next_ordinal_to_read += 1;
8690 if next_offset >= end_offset {
8691 return Ok(());
8692 }
8693
8694 while _next_ordinal_to_read < 1 {
8696 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8697 _next_ordinal_to_read += 1;
8698 next_offset += envelope_size;
8699 }
8700
8701 let next_out_of_line = decoder.next_out_of_line();
8702 let handles_before = decoder.remaining_handles();
8703 if let Some((inlined, num_bytes, num_handles)) =
8704 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8705 {
8706 let member_inline_size =
8707 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8708 if inlined != (member_inline_size <= 4) {
8709 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8710 }
8711 let inner_offset;
8712 let mut inner_depth = depth.clone();
8713 if inlined {
8714 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8715 inner_offset = next_offset;
8716 } else {
8717 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8718 inner_depth.increment()?;
8719 }
8720 let val_ref = self.disabled_role.get_or_insert_with(|| fidl::new_empty!(u16, D));
8721 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8722 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8723 {
8724 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8725 }
8726 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8727 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8728 }
8729 }
8730
8731 next_offset += envelope_size;
8732 _next_ordinal_to_read += 1;
8733 if next_offset >= end_offset {
8734 return Ok(());
8735 }
8736
8737 while _next_ordinal_to_read < 2 {
8739 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8740 _next_ordinal_to_read += 1;
8741 next_offset += envelope_size;
8742 }
8743
8744 let next_out_of_line = decoder.next_out_of_line();
8745 let handles_before = decoder.remaining_handles();
8746 if let Some((inlined, num_bytes, num_handles)) =
8747 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8748 {
8749 let member_inline_size =
8750 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8751 if inlined != (member_inline_size <= 4) {
8752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8753 }
8754 let inner_offset;
8755 let mut inner_depth = depth.clone();
8756 if inlined {
8757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8758 inner_offset = next_offset;
8759 } else {
8760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8761 inner_depth.increment()?;
8762 }
8763 let val_ref = self.detached_role.get_or_insert_with(|| fidl::new_empty!(u16, D));
8764 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8765 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8766 {
8767 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8768 }
8769 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8770 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8771 }
8772 }
8773
8774 next_offset += envelope_size;
8775 _next_ordinal_to_read += 1;
8776 if next_offset >= end_offset {
8777 return Ok(());
8778 }
8779
8780 while _next_ordinal_to_read < 3 {
8782 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8783 _next_ordinal_to_read += 1;
8784 next_offset += envelope_size;
8785 }
8786
8787 let next_out_of_line = decoder.next_out_of_line();
8788 let handles_before = decoder.remaining_handles();
8789 if let Some((inlined, num_bytes, num_handles)) =
8790 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8791 {
8792 let member_inline_size =
8793 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8794 if inlined != (member_inline_size <= 4) {
8795 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8796 }
8797 let inner_offset;
8798 let mut inner_depth = depth.clone();
8799 if inlined {
8800 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8801 inner_offset = next_offset;
8802 } else {
8803 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8804 inner_depth.increment()?;
8805 }
8806 let val_ref = self.child_role.get_or_insert_with(|| fidl::new_empty!(u16, D));
8807 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8808 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8809 {
8810 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8811 }
8812 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8813 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8814 }
8815 }
8816
8817 next_offset += envelope_size;
8818 _next_ordinal_to_read += 1;
8819 if next_offset >= end_offset {
8820 return Ok(());
8821 }
8822
8823 while _next_ordinal_to_read < 4 {
8825 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8826 _next_ordinal_to_read += 1;
8827 next_offset += envelope_size;
8828 }
8829
8830 let next_out_of_line = decoder.next_out_of_line();
8831 let handles_before = decoder.remaining_handles();
8832 if let Some((inlined, num_bytes, num_handles)) =
8833 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8834 {
8835 let member_inline_size =
8836 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8837 if inlined != (member_inline_size <= 4) {
8838 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8839 }
8840 let inner_offset;
8841 let mut inner_depth = depth.clone();
8842 if inlined {
8843 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8844 inner_offset = next_offset;
8845 } else {
8846 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8847 inner_depth.increment()?;
8848 }
8849 let val_ref = self.router_role.get_or_insert_with(|| fidl::new_empty!(u16, D));
8850 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8851 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8852 {
8853 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8854 }
8855 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8856 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8857 }
8858 }
8859
8860 next_offset += envelope_size;
8861 _next_ordinal_to_read += 1;
8862 if next_offset >= end_offset {
8863 return Ok(());
8864 }
8865
8866 while _next_ordinal_to_read < 5 {
8868 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8869 _next_ordinal_to_read += 1;
8870 next_offset += envelope_size;
8871 }
8872
8873 let next_out_of_line = decoder.next_out_of_line();
8874 let handles_before = decoder.remaining_handles();
8875 if let Some((inlined, num_bytes, num_handles)) =
8876 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8877 {
8878 let member_inline_size =
8879 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8880 if inlined != (member_inline_size <= 4) {
8881 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8882 }
8883 let inner_offset;
8884 let mut inner_depth = depth.clone();
8885 if inlined {
8886 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8887 inner_offset = next_offset;
8888 } else {
8889 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8890 inner_depth.increment()?;
8891 }
8892 let val_ref = self.leader_role.get_or_insert_with(|| fidl::new_empty!(u16, D));
8893 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8894 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8895 {
8896 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8897 }
8898 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8899 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8900 }
8901 }
8902
8903 next_offset += envelope_size;
8904 _next_ordinal_to_read += 1;
8905 if next_offset >= end_offset {
8906 return Ok(());
8907 }
8908
8909 while _next_ordinal_to_read < 6 {
8911 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8912 _next_ordinal_to_read += 1;
8913 next_offset += envelope_size;
8914 }
8915
8916 let next_out_of_line = decoder.next_out_of_line();
8917 let handles_before = decoder.remaining_handles();
8918 if let Some((inlined, num_bytes, num_handles)) =
8919 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8920 {
8921 let member_inline_size =
8922 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8923 if inlined != (member_inline_size <= 4) {
8924 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8925 }
8926 let inner_offset;
8927 let mut inner_depth = depth.clone();
8928 if inlined {
8929 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8930 inner_offset = next_offset;
8931 } else {
8932 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8933 inner_depth.increment()?;
8934 }
8935 let val_ref = self.attach_attempts.get_or_insert_with(|| fidl::new_empty!(u16, D));
8936 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8937 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8938 {
8939 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8940 }
8941 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8942 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8943 }
8944 }
8945
8946 next_offset += envelope_size;
8947 _next_ordinal_to_read += 1;
8948 if next_offset >= end_offset {
8949 return Ok(());
8950 }
8951
8952 while _next_ordinal_to_read < 7 {
8954 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8955 _next_ordinal_to_read += 1;
8956 next_offset += envelope_size;
8957 }
8958
8959 let next_out_of_line = decoder.next_out_of_line();
8960 let handles_before = decoder.remaining_handles();
8961 if let Some((inlined, num_bytes, num_handles)) =
8962 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8963 {
8964 let member_inline_size =
8965 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8966 if inlined != (member_inline_size <= 4) {
8967 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8968 }
8969 let inner_offset;
8970 let mut inner_depth = depth.clone();
8971 if inlined {
8972 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8973 inner_offset = next_offset;
8974 } else {
8975 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8976 inner_depth.increment()?;
8977 }
8978 let val_ref =
8979 self.partition_id_changes.get_or_insert_with(|| fidl::new_empty!(u16, D));
8980 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8981 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8982 {
8983 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8984 }
8985 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8986 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8987 }
8988 }
8989
8990 next_offset += envelope_size;
8991 _next_ordinal_to_read += 1;
8992 if next_offset >= end_offset {
8993 return Ok(());
8994 }
8995
8996 while _next_ordinal_to_read < 8 {
8998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8999 _next_ordinal_to_read += 1;
9000 next_offset += envelope_size;
9001 }
9002
9003 let next_out_of_line = decoder.next_out_of_line();
9004 let handles_before = decoder.remaining_handles();
9005 if let Some((inlined, num_bytes, num_handles)) =
9006 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9007 {
9008 let member_inline_size =
9009 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9010 if inlined != (member_inline_size <= 4) {
9011 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9012 }
9013 let inner_offset;
9014 let mut inner_depth = depth.clone();
9015 if inlined {
9016 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9017 inner_offset = next_offset;
9018 } else {
9019 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9020 inner_depth.increment()?;
9021 }
9022 let val_ref = self
9023 .better_partition_attach_attempts
9024 .get_or_insert_with(|| fidl::new_empty!(u16, D));
9025 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
9026 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9027 {
9028 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9029 }
9030 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9031 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9032 }
9033 }
9034
9035 next_offset += envelope_size;
9036 _next_ordinal_to_read += 1;
9037 if next_offset >= end_offset {
9038 return Ok(());
9039 }
9040
9041 while _next_ordinal_to_read < 9 {
9043 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9044 _next_ordinal_to_read += 1;
9045 next_offset += envelope_size;
9046 }
9047
9048 let next_out_of_line = decoder.next_out_of_line();
9049 let handles_before = decoder.remaining_handles();
9050 if let Some((inlined, num_bytes, num_handles)) =
9051 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9052 {
9053 let member_inline_size =
9054 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9055 if inlined != (member_inline_size <= 4) {
9056 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9057 }
9058 let inner_offset;
9059 let mut inner_depth = depth.clone();
9060 if inlined {
9061 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9062 inner_offset = next_offset;
9063 } else {
9064 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9065 inner_depth.increment()?;
9066 }
9067 let val_ref = self
9068 .better_parent_attach_attempts
9069 .get_or_insert_with(|| fidl::new_empty!(u16, D));
9070 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
9071 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9072 {
9073 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9074 }
9075 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9076 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9077 }
9078 }
9079
9080 next_offset += envelope_size;
9081 _next_ordinal_to_read += 1;
9082 if next_offset >= end_offset {
9083 return Ok(());
9084 }
9085
9086 while _next_ordinal_to_read < 10 {
9088 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9089 _next_ordinal_to_read += 1;
9090 next_offset += envelope_size;
9091 }
9092
9093 let next_out_of_line = decoder.next_out_of_line();
9094 let handles_before = decoder.remaining_handles();
9095 if let Some((inlined, num_bytes, num_handles)) =
9096 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9097 {
9098 let member_inline_size =
9099 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9100 if inlined != (member_inline_size <= 4) {
9101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9102 }
9103 let inner_offset;
9104 let mut inner_depth = depth.clone();
9105 if inlined {
9106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9107 inner_offset = next_offset;
9108 } else {
9109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9110 inner_depth.increment()?;
9111 }
9112 let val_ref = self.disabled_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
9113 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9114 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9115 {
9116 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9117 }
9118 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9119 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9120 }
9121 }
9122
9123 next_offset += envelope_size;
9124 _next_ordinal_to_read += 1;
9125 if next_offset >= end_offset {
9126 return Ok(());
9127 }
9128
9129 while _next_ordinal_to_read < 11 {
9131 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9132 _next_ordinal_to_read += 1;
9133 next_offset += envelope_size;
9134 }
9135
9136 let next_out_of_line = decoder.next_out_of_line();
9137 let handles_before = decoder.remaining_handles();
9138 if let Some((inlined, num_bytes, num_handles)) =
9139 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9140 {
9141 let member_inline_size =
9142 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9143 if inlined != (member_inline_size <= 4) {
9144 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9145 }
9146 let inner_offset;
9147 let mut inner_depth = depth.clone();
9148 if inlined {
9149 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9150 inner_offset = next_offset;
9151 } else {
9152 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9153 inner_depth.increment()?;
9154 }
9155 let val_ref = self.detached_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
9156 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9158 {
9159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9160 }
9161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9163 }
9164 }
9165
9166 next_offset += envelope_size;
9167 _next_ordinal_to_read += 1;
9168 if next_offset >= end_offset {
9169 return Ok(());
9170 }
9171
9172 while _next_ordinal_to_read < 12 {
9174 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9175 _next_ordinal_to_read += 1;
9176 next_offset += envelope_size;
9177 }
9178
9179 let next_out_of_line = decoder.next_out_of_line();
9180 let handles_before = decoder.remaining_handles();
9181 if let Some((inlined, num_bytes, num_handles)) =
9182 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9183 {
9184 let member_inline_size =
9185 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9186 if inlined != (member_inline_size <= 4) {
9187 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9188 }
9189 let inner_offset;
9190 let mut inner_depth = depth.clone();
9191 if inlined {
9192 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9193 inner_offset = next_offset;
9194 } else {
9195 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9196 inner_depth.increment()?;
9197 }
9198 let val_ref = self.child_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
9199 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9200 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9201 {
9202 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9203 }
9204 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9205 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9206 }
9207 }
9208
9209 next_offset += envelope_size;
9210 _next_ordinal_to_read += 1;
9211 if next_offset >= end_offset {
9212 return Ok(());
9213 }
9214
9215 while _next_ordinal_to_read < 13 {
9217 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9218 _next_ordinal_to_read += 1;
9219 next_offset += envelope_size;
9220 }
9221
9222 let next_out_of_line = decoder.next_out_of_line();
9223 let handles_before = decoder.remaining_handles();
9224 if let Some((inlined, num_bytes, num_handles)) =
9225 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9226 {
9227 let member_inline_size =
9228 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9229 if inlined != (member_inline_size <= 4) {
9230 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9231 }
9232 let inner_offset;
9233 let mut inner_depth = depth.clone();
9234 if inlined {
9235 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9236 inner_offset = next_offset;
9237 } else {
9238 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9239 inner_depth.increment()?;
9240 }
9241 let val_ref = self.router_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
9242 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9243 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9244 {
9245 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9246 }
9247 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9248 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9249 }
9250 }
9251
9252 next_offset += envelope_size;
9253 _next_ordinal_to_read += 1;
9254 if next_offset >= end_offset {
9255 return Ok(());
9256 }
9257
9258 while _next_ordinal_to_read < 14 {
9260 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9261 _next_ordinal_to_read += 1;
9262 next_offset += envelope_size;
9263 }
9264
9265 let next_out_of_line = decoder.next_out_of_line();
9266 let handles_before = decoder.remaining_handles();
9267 if let Some((inlined, num_bytes, num_handles)) =
9268 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9269 {
9270 let member_inline_size =
9271 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9272 if inlined != (member_inline_size <= 4) {
9273 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9274 }
9275 let inner_offset;
9276 let mut inner_depth = depth.clone();
9277 if inlined {
9278 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9279 inner_offset = next_offset;
9280 } else {
9281 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9282 inner_depth.increment()?;
9283 }
9284 let val_ref = self.leader_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
9285 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9286 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9287 {
9288 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9289 }
9290 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9291 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9292 }
9293 }
9294
9295 next_offset += envelope_size;
9296 _next_ordinal_to_read += 1;
9297 if next_offset >= end_offset {
9298 return Ok(());
9299 }
9300
9301 while _next_ordinal_to_read < 15 {
9303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9304 _next_ordinal_to_read += 1;
9305 next_offset += envelope_size;
9306 }
9307
9308 let next_out_of_line = decoder.next_out_of_line();
9309 let handles_before = decoder.remaining_handles();
9310 if let Some((inlined, num_bytes, num_handles)) =
9311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9312 {
9313 let member_inline_size =
9314 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9315 if inlined != (member_inline_size <= 4) {
9316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9317 }
9318 let inner_offset;
9319 let mut inner_depth = depth.clone();
9320 if inlined {
9321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9322 inner_offset = next_offset;
9323 } else {
9324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9325 inner_depth.increment()?;
9326 }
9327 let val_ref = self.tracked_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
9328 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
9329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9330 {
9331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9332 }
9333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9335 }
9336 }
9337
9338 next_offset += envelope_size;
9339 _next_ordinal_to_read += 1;
9340 if next_offset >= end_offset {
9341 return Ok(());
9342 }
9343
9344 while _next_ordinal_to_read < 16 {
9346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9347 _next_ordinal_to_read += 1;
9348 next_offset += envelope_size;
9349 }
9350
9351 let next_out_of_line = decoder.next_out_of_line();
9352 let handles_before = decoder.remaining_handles();
9353 if let Some((inlined, num_bytes, num_handles)) =
9354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9355 {
9356 let member_inline_size =
9357 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9358 if inlined != (member_inline_size <= 4) {
9359 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9360 }
9361 let inner_offset;
9362 let mut inner_depth = depth.clone();
9363 if inlined {
9364 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9365 inner_offset = next_offset;
9366 } else {
9367 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9368 inner_depth.increment()?;
9369 }
9370 let val_ref = self.parent_changes.get_or_insert_with(|| fidl::new_empty!(u16, D));
9371 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
9372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9373 {
9374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9375 }
9376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9378 }
9379 }
9380
9381 next_offset += envelope_size;
9382
9383 while next_offset < end_offset {
9385 _next_ordinal_to_read += 1;
9386 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9387 next_offset += envelope_size;
9388 }
9389
9390 Ok(())
9391 }
9392 }
9393
9394 impl fidl::encoding::ValueTypeMarker for Credential {
9395 type Borrowed<'a> = &'a Self;
9396 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9397 value
9398 }
9399 }
9400
9401 unsafe impl fidl::encoding::TypeMarker for Credential {
9402 type Owned = Self;
9403
9404 #[inline(always)]
9405 fn inline_align(_context: fidl::encoding::Context) -> usize {
9406 8
9407 }
9408
9409 #[inline(always)]
9410 fn inline_size(_context: fidl::encoding::Context) -> usize {
9411 16
9412 }
9413 }
9414
9415 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Credential, D>
9416 for &Credential
9417 {
9418 #[inline]
9419 unsafe fn encode(
9420 self,
9421 encoder: &mut fidl::encoding::Encoder<'_, D>,
9422 offset: usize,
9423 _depth: fidl::encoding::Depth,
9424 ) -> fidl::Result<()> {
9425 encoder.debug_check_bounds::<Credential>(offset);
9426 encoder.write_num::<u64>(self.ordinal(), offset);
9427 match self {
9428 Credential::NetworkKey(ref val) => {
9429 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<u8, 32>, D>(
9430 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow(
9431 val,
9432 ),
9433 encoder,
9434 offset + 8,
9435 _depth,
9436 )
9437 }
9438 Credential::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
9439 }
9440 }
9441 }
9442
9443 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Credential {
9444 #[inline(always)]
9445 fn new_empty() -> Self {
9446 Self::__SourceBreaking { unknown_ordinal: 0 }
9447 }
9448
9449 #[inline]
9450 unsafe fn decode(
9451 &mut self,
9452 decoder: &mut fidl::encoding::Decoder<'_, D>,
9453 offset: usize,
9454 mut depth: fidl::encoding::Depth,
9455 ) -> fidl::Result<()> {
9456 decoder.debug_check_bounds::<Self>(offset);
9457 #[allow(unused_variables)]
9458 let next_out_of_line = decoder.next_out_of_line();
9459 let handles_before = decoder.remaining_handles();
9460 let (ordinal, inlined, num_bytes, num_handles) =
9461 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
9462
9463 let member_inline_size = match ordinal {
9464 1 => <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
9465 decoder.context,
9466 ),
9467 0 => return Err(fidl::Error::UnknownUnionTag),
9468 _ => num_bytes as usize,
9469 };
9470
9471 if inlined != (member_inline_size <= 4) {
9472 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9473 }
9474 let _inner_offset;
9475 if inlined {
9476 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
9477 _inner_offset = offset + 8;
9478 } else {
9479 depth.increment()?;
9480 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9481 }
9482 match ordinal {
9483 1 => {
9484 #[allow(irrefutable_let_patterns)]
9485 if let Credential::NetworkKey(_) = self {
9486 } else {
9488 *self = Credential::NetworkKey(
9490 fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D),
9491 );
9492 }
9493 #[allow(irrefutable_let_patterns)]
9494 if let Credential::NetworkKey(ref mut val) = self {
9495 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val, decoder, _inner_offset, depth)?;
9496 } else {
9497 unreachable!()
9498 }
9499 }
9500 #[allow(deprecated)]
9501 ordinal => {
9502 for _ in 0..num_handles {
9503 decoder.drop_next_handle()?;
9504 }
9505 *self = Credential::__SourceBreaking { unknown_ordinal: ordinal };
9506 }
9507 }
9508 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
9509 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9510 }
9511 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9512 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9513 }
9514 Ok(())
9515 }
9516 }
9517}