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 #[doc(hidden)]
440 pub __source_breaking: fidl::marker::SourceBreaking,
441}
442
443impl fidl::Persistable for AllCounters {}
444
445#[derive(Clone, Debug, Default, PartialEq)]
447pub struct BorderAgentCounters {
448 pub epskc_activations: Option<u32>,
450 pub epskc_deactivation_clears: Option<u32>,
452 pub epskc_deactivation_timeouts: Option<u32>,
454 pub epskc_deactivation_max_attempts: Option<u32>,
456 pub epskc_deactivation_disconnects: Option<u32>,
458 pub epskc_invalid_ba_state_errors: Option<u32>,
460 pub epskc_invalid_args_errors: Option<u32>,
462 pub epskc_start_secure_session_errors: Option<u32>,
464 pub epskc_secure_session_successes: Option<u32>,
466 pub epskc_secure_session_failures: Option<u32>,
468 pub epskc_commissioner_petitions: Option<u32>,
470 pub pskc_secure_session_successes: Option<u32>,
472 pub pskc_secure_session_failures: Option<u32>,
474 pub pskc_commissioner_petitions: Option<u32>,
476 pub mgmt_active_gets: Option<u32>,
478 pub mgmt_pending_gets: Option<u32>,
480 #[doc(hidden)]
481 pub __source_breaking: fidl::marker::SourceBreaking,
482}
483
484impl fidl::Persistable for BorderAgentCounters {}
485
486#[derive(Clone, Debug, Default, PartialEq)]
492pub struct CoexCounters {
493 pub requests: Option<u64>,
495 pub grant_immediate: Option<u64>,
497 pub grant_wait: Option<u64>,
499 pub grant_wait_activated: Option<u64>,
502 pub grant_wait_timeout: Option<u64>,
504 pub grant_deactivated_during_request: Option<u64>,
507 pub delayed_grant: Option<u64>,
509 pub avg_delay_request_to_grant_usec: Option<u32>,
511 pub grant_none: Option<u64>,
515 #[doc(hidden)]
516 pub __source_breaking: fidl::marker::SourceBreaking,
517}
518
519impl fidl::Persistable for CoexCounters {}
520
521#[derive(Clone, Debug, Default, PartialEq)]
530pub struct DeviceState {
531 pub connectivity_state: Option<ConnectivityState>,
536 pub role: Option<Role>,
541 #[doc(hidden)]
542 pub __source_breaking: fidl::marker::SourceBreaking,
543}
544
545impl fidl::Persistable for DeviceState {}
546
547#[derive(Clone, Debug, Default, PartialEq)]
549pub struct EnergyScanParameters {
550 pub channels: Option<Vec<u16>>,
554 pub dwell_time_ms: Option<u32>,
573 #[doc(hidden)]
574 pub __source_breaking: fidl::marker::SourceBreaking,
575}
576
577impl fidl::Persistable for EnergyScanParameters {}
578
579#[derive(Clone, Debug, Default, PartialEq)]
581pub struct EnergyScanResult {
582 pub channel_index: Option<u16>,
584 pub max_rssi: Option<i32>,
586 pub min_rssi: Option<i32>,
588 #[doc(hidden)]
589 pub __source_breaking: fidl::marker::SourceBreaking,
590}
591
592impl fidl::Persistable for EnergyScanResult {}
593
594#[derive(Clone, Debug, Default, PartialEq)]
595pub struct Identity {
596 pub raw_name: Option<Vec<u8>>,
606 pub net_type: Option<String>,
616 pub channel: Option<u16>,
618 pub panid: Option<u16>,
620 pub mesh_local_prefix: Option<fidl_fuchsia_net__common::Ipv6AddressWithPrefix>,
633 pub xpanid: Option<[u8; 8]>,
635 #[doc(hidden)]
636 pub __source_breaking: fidl::marker::SourceBreaking,
637}
638
639impl fidl::Persistable for Identity {}
640
641#[derive(Clone, Debug, Default, PartialEq)]
643pub struct IpCounters {
644 pub success: Option<u32>,
646 pub failure: Option<u32>,
648 #[doc(hidden)]
649 pub __source_breaking: fidl::marker::SourceBreaking,
650}
651
652impl fidl::Persistable for IpCounters {}
653
654#[derive(Clone, Debug, Default, PartialEq)]
658pub struct MacCounters {
659 pub total: Option<u32>,
661 pub unicast: Option<u32>,
663 pub broadcast: Option<u32>,
665 pub ack_requested: Option<u32>,
667 pub acked: Option<u32>,
669 pub no_ack_requested: Option<u32>,
671 pub data: Option<u32>,
673 pub data_poll: Option<u32>,
675 pub beacon: Option<u32>,
677 pub beacon_request: Option<u32>,
679 pub other: Option<u32>,
681 pub address_filtered: Option<u32>,
684 pub retries: Option<u32>,
687 pub direct_max_retry_expiry: Option<u32>,
690 pub indirect_max_retry_expiry: Option<u32>,
693 pub dest_addr_filtered: Option<u32>,
696 pub duplicated: Option<u32>,
699 pub err_no_frame: Option<u32>,
702 pub err_unknown_neighbor: Option<u32>,
705 pub err_invalid_src_addr: Option<u32>,
708 pub err_sec: Option<u32>,
711 pub err_fcs: Option<u32>,
714 pub err_cca: Option<u32>,
717 pub err_abort: Option<u32>,
720 pub err_busy_channel: Option<u32>,
723 pub err_other: Option<u32>,
725 #[doc(hidden)]
726 pub __source_breaking: fidl::marker::SourceBreaking,
727}
728
729impl fidl::Persistable for MacCounters {}
730
731#[derive(Clone, Debug)]
739pub enum Credential {
740 NetworkKey(Vec<u8>),
748 #[doc(hidden)]
749 __SourceBreaking { unknown_ordinal: u64 },
750}
751
752#[macro_export]
754macro_rules! CredentialUnknown {
755 () => {
756 _
757 };
758}
759
760impl PartialEq for Credential {
762 fn eq(&self, other: &Self) -> bool {
763 match (self, other) {
764 (Self::NetworkKey(x), Self::NetworkKey(y)) => *x == *y,
765 _ => false,
766 }
767 }
768}
769
770impl Credential {
771 #[inline]
772 pub fn ordinal(&self) -> u64 {
773 match *self {
774 Self::NetworkKey(_) => 1,
775 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
776 }
777 }
778
779 #[inline]
780 pub fn unknown_variant_for_testing() -> Self {
781 Self::__SourceBreaking { unknown_ordinal: 0 }
782 }
783
784 #[inline]
785 pub fn is_unknown(&self) -> bool {
786 match self {
787 Self::__SourceBreaking { .. } => true,
788 _ => false,
789 }
790 }
791}
792
793impl fidl::Persistable for Credential {}
794
795pub mod counters_ordinals {
796 pub const GET: u64 = 0xaa28d44c1535a24;
797 pub const RESET: u64 = 0x4cf9a102017cf7ad;
798}
799
800pub mod counters_connector_ordinals {
801 pub const CONNECT: u64 = 0x61ec847f2702d188;
802}
803
804pub mod device_ordinals {
805 pub const PROVISION_NETWORK: u64 = 0x3501046988e17076;
806 pub const LEAVE_NETWORK: u64 = 0x66919e4f9752c53e;
807 pub const SET_ACTIVE: u64 = 0x55a6837f8bbb344b;
808 pub const GET_SUPPORTED_NETWORK_TYPES: u64 = 0x6d8f71a5beb15ebf;
809 pub const WATCH_DEVICE_STATE: u64 = 0x593be5b83e80d249;
810}
811
812pub mod device_connector_ordinals {
813 pub const CONNECT: u64 = 0x63470c4c0c8e678a;
814}
815
816pub mod device_extra_ordinals {
817 pub const GET_CREDENTIAL: u64 = 0x77f75f289c8c4ceb;
818 pub const WATCH_IDENTITY: u64 = 0xb9f5d8963eaebc6;
819 pub const GET_CURRENT_MAC_ADDRESS: u64 = 0x70835954071d94dd;
820}
821
822pub mod device_extra_connector_ordinals {
823 pub const CONNECT: u64 = 0x2959be873ae18ae3;
824}
825
826pub mod energy_scan_ordinals {
827 pub const START_ENERGY_SCAN: u64 = 0x4b2928a05c619b06;
828}
829
830pub mod energy_scan_connector_ordinals {
831 pub const CONNECT: u64 = 0x1076a774e74ab290;
832}
833
834pub mod energy_scan_result_stream_ordinals {
835 pub const NEXT: u64 = 0x7f0139fc06fd6a9e;
836}
837
838mod internal {
839 use super::*;
840 unsafe impl fidl::encoding::TypeMarker for ConnectivityState {
841 type Owned = Self;
842
843 #[inline(always)]
844 fn inline_align(_context: fidl::encoding::Context) -> usize {
845 std::mem::align_of::<i32>()
846 }
847
848 #[inline(always)]
849 fn inline_size(_context: fidl::encoding::Context) -> usize {
850 std::mem::size_of::<i32>()
851 }
852
853 #[inline(always)]
854 fn encode_is_copy() -> bool {
855 false
856 }
857
858 #[inline(always)]
859 fn decode_is_copy() -> bool {
860 false
861 }
862 }
863
864 impl fidl::encoding::ValueTypeMarker for ConnectivityState {
865 type Borrowed<'a> = Self;
866 #[inline(always)]
867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
868 *value
869 }
870 }
871
872 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
873 for ConnectivityState
874 {
875 #[inline]
876 unsafe fn encode(
877 self,
878 encoder: &mut fidl::encoding::Encoder<'_, D>,
879 offset: usize,
880 _depth: fidl::encoding::Depth,
881 ) -> fidl::Result<()> {
882 encoder.debug_check_bounds::<Self>(offset);
883 encoder.write_num(self.into_primitive(), offset);
884 Ok(())
885 }
886 }
887
888 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectivityState {
889 #[inline(always)]
890 fn new_empty() -> Self {
891 Self::unknown()
892 }
893
894 #[inline]
895 unsafe fn decode(
896 &mut self,
897 decoder: &mut fidl::encoding::Decoder<'_, D>,
898 offset: usize,
899 _depth: fidl::encoding::Depth,
900 ) -> fidl::Result<()> {
901 decoder.debug_check_bounds::<Self>(offset);
902 let prim = decoder.read_num::<i32>(offset);
903
904 *self = Self::from_primitive_allow_unknown(prim);
905 Ok(())
906 }
907 }
908 unsafe impl fidl::encoding::TypeMarker for Role {
909 type Owned = Self;
910
911 #[inline(always)]
912 fn inline_align(_context: fidl::encoding::Context) -> usize {
913 std::mem::align_of::<i32>()
914 }
915
916 #[inline(always)]
917 fn inline_size(_context: fidl::encoding::Context) -> usize {
918 std::mem::size_of::<i32>()
919 }
920
921 #[inline(always)]
922 fn encode_is_copy() -> bool {
923 false
924 }
925
926 #[inline(always)]
927 fn decode_is_copy() -> bool {
928 false
929 }
930 }
931
932 impl fidl::encoding::ValueTypeMarker for Role {
933 type Borrowed<'a> = Self;
934 #[inline(always)]
935 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
936 *value
937 }
938 }
939
940 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Role {
941 #[inline]
942 unsafe fn encode(
943 self,
944 encoder: &mut fidl::encoding::Encoder<'_, D>,
945 offset: usize,
946 _depth: fidl::encoding::Depth,
947 ) -> fidl::Result<()> {
948 encoder.debug_check_bounds::<Self>(offset);
949 encoder.write_num(self.into_primitive(), offset);
950 Ok(())
951 }
952 }
953
954 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Role {
955 #[inline(always)]
956 fn new_empty() -> Self {
957 Self::unknown()
958 }
959
960 #[inline]
961 unsafe fn decode(
962 &mut self,
963 decoder: &mut fidl::encoding::Decoder<'_, D>,
964 offset: usize,
965 _depth: fidl::encoding::Depth,
966 ) -> fidl::Result<()> {
967 decoder.debug_check_bounds::<Self>(offset);
968 let prim = decoder.read_num::<i32>(offset);
969
970 *self = Self::from_primitive_allow_unknown(prim);
971 Ok(())
972 }
973 }
974
975 impl fidl::encoding::ValueTypeMarker for CountersGetResponse {
976 type Borrowed<'a> = &'a Self;
977 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
978 value
979 }
980 }
981
982 unsafe impl fidl::encoding::TypeMarker for CountersGetResponse {
983 type Owned = Self;
984
985 #[inline(always)]
986 fn inline_align(_context: fidl::encoding::Context) -> usize {
987 8
988 }
989
990 #[inline(always)]
991 fn inline_size(_context: fidl::encoding::Context) -> usize {
992 16
993 }
994 }
995
996 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CountersGetResponse, D>
997 for &CountersGetResponse
998 {
999 #[inline]
1000 unsafe fn encode(
1001 self,
1002 encoder: &mut fidl::encoding::Encoder<'_, D>,
1003 offset: usize,
1004 _depth: fidl::encoding::Depth,
1005 ) -> fidl::Result<()> {
1006 encoder.debug_check_bounds::<CountersGetResponse>(offset);
1007 fidl::encoding::Encode::<CountersGetResponse, D>::encode(
1009 (<AllCounters as fidl::encoding::ValueTypeMarker>::borrow(&self.counters),),
1010 encoder,
1011 offset,
1012 _depth,
1013 )
1014 }
1015 }
1016 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AllCounters, D>>
1017 fidl::encoding::Encode<CountersGetResponse, D> for (T0,)
1018 {
1019 #[inline]
1020 unsafe fn encode(
1021 self,
1022 encoder: &mut fidl::encoding::Encoder<'_, D>,
1023 offset: usize,
1024 depth: fidl::encoding::Depth,
1025 ) -> fidl::Result<()> {
1026 encoder.debug_check_bounds::<CountersGetResponse>(offset);
1027 self.0.encode(encoder, offset + 0, depth)?;
1031 Ok(())
1032 }
1033 }
1034
1035 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CountersGetResponse {
1036 #[inline(always)]
1037 fn new_empty() -> Self {
1038 Self { counters: fidl::new_empty!(AllCounters, D) }
1039 }
1040
1041 #[inline]
1042 unsafe fn decode(
1043 &mut self,
1044 decoder: &mut fidl::encoding::Decoder<'_, D>,
1045 offset: usize,
1046 _depth: fidl::encoding::Depth,
1047 ) -> fidl::Result<()> {
1048 decoder.debug_check_bounds::<Self>(offset);
1049 fidl::decode!(AllCounters, D, &mut self.counters, decoder, offset + 0, _depth)?;
1051 Ok(())
1052 }
1053 }
1054
1055 impl fidl::encoding::ValueTypeMarker for CountersResetResponse {
1056 type Borrowed<'a> = &'a Self;
1057 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1058 value
1059 }
1060 }
1061
1062 unsafe impl fidl::encoding::TypeMarker for CountersResetResponse {
1063 type Owned = Self;
1064
1065 #[inline(always)]
1066 fn inline_align(_context: fidl::encoding::Context) -> usize {
1067 8
1068 }
1069
1070 #[inline(always)]
1071 fn inline_size(_context: fidl::encoding::Context) -> usize {
1072 16
1073 }
1074 }
1075
1076 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CountersResetResponse, D>
1077 for &CountersResetResponse
1078 {
1079 #[inline]
1080 unsafe fn encode(
1081 self,
1082 encoder: &mut fidl::encoding::Encoder<'_, D>,
1083 offset: usize,
1084 _depth: fidl::encoding::Depth,
1085 ) -> fidl::Result<()> {
1086 encoder.debug_check_bounds::<CountersResetResponse>(offset);
1087 fidl::encoding::Encode::<CountersResetResponse, D>::encode(
1089 (<AllCounters as fidl::encoding::ValueTypeMarker>::borrow(&self.counters),),
1090 encoder,
1091 offset,
1092 _depth,
1093 )
1094 }
1095 }
1096 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AllCounters, D>>
1097 fidl::encoding::Encode<CountersResetResponse, D> for (T0,)
1098 {
1099 #[inline]
1100 unsafe fn encode(
1101 self,
1102 encoder: &mut fidl::encoding::Encoder<'_, D>,
1103 offset: usize,
1104 depth: fidl::encoding::Depth,
1105 ) -> fidl::Result<()> {
1106 encoder.debug_check_bounds::<CountersResetResponse>(offset);
1107 self.0.encode(encoder, offset + 0, depth)?;
1111 Ok(())
1112 }
1113 }
1114
1115 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CountersResetResponse {
1116 #[inline(always)]
1117 fn new_empty() -> Self {
1118 Self { counters: fidl::new_empty!(AllCounters, D) }
1119 }
1120
1121 #[inline]
1122 unsafe fn decode(
1123 &mut self,
1124 decoder: &mut fidl::encoding::Decoder<'_, D>,
1125 offset: usize,
1126 _depth: fidl::encoding::Depth,
1127 ) -> fidl::Result<()> {
1128 decoder.debug_check_bounds::<Self>(offset);
1129 fidl::decode!(AllCounters, D, &mut self.counters, decoder, offset + 0, _depth)?;
1131 Ok(())
1132 }
1133 }
1134
1135 impl fidl::encoding::ValueTypeMarker for DeviceExtraGetCredentialResponse {
1136 type Borrowed<'a> = &'a Self;
1137 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1138 value
1139 }
1140 }
1141
1142 unsafe impl fidl::encoding::TypeMarker for DeviceExtraGetCredentialResponse {
1143 type Owned = Self;
1144
1145 #[inline(always)]
1146 fn inline_align(_context: fidl::encoding::Context) -> usize {
1147 8
1148 }
1149
1150 #[inline(always)]
1151 fn inline_size(_context: fidl::encoding::Context) -> usize {
1152 16
1153 }
1154 }
1155
1156 unsafe impl<D: fidl::encoding::ResourceDialect>
1157 fidl::encoding::Encode<DeviceExtraGetCredentialResponse, D>
1158 for &DeviceExtraGetCredentialResponse
1159 {
1160 #[inline]
1161 unsafe fn encode(
1162 self,
1163 encoder: &mut fidl::encoding::Encoder<'_, D>,
1164 offset: usize,
1165 _depth: fidl::encoding::Depth,
1166 ) -> fidl::Result<()> {
1167 encoder.debug_check_bounds::<DeviceExtraGetCredentialResponse>(offset);
1168 fidl::encoding::Encode::<DeviceExtraGetCredentialResponse, D>::encode(
1170 (
1171 <fidl::encoding::OptionalUnion<Credential> as fidl::encoding::ValueTypeMarker>::borrow(&self.credential),
1172 ),
1173 encoder, offset, _depth
1174 )
1175 }
1176 }
1177 unsafe impl<
1178 D: fidl::encoding::ResourceDialect,
1179 T0: fidl::encoding::Encode<fidl::encoding::OptionalUnion<Credential>, D>,
1180 > fidl::encoding::Encode<DeviceExtraGetCredentialResponse, D> for (T0,)
1181 {
1182 #[inline]
1183 unsafe fn encode(
1184 self,
1185 encoder: &mut fidl::encoding::Encoder<'_, D>,
1186 offset: usize,
1187 depth: fidl::encoding::Depth,
1188 ) -> fidl::Result<()> {
1189 encoder.debug_check_bounds::<DeviceExtraGetCredentialResponse>(offset);
1190 self.0.encode(encoder, offset + 0, depth)?;
1194 Ok(())
1195 }
1196 }
1197
1198 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1199 for DeviceExtraGetCredentialResponse
1200 {
1201 #[inline(always)]
1202 fn new_empty() -> Self {
1203 Self { credential: fidl::new_empty!(fidl::encoding::OptionalUnion<Credential>, D) }
1204 }
1205
1206 #[inline]
1207 unsafe fn decode(
1208 &mut self,
1209 decoder: &mut fidl::encoding::Decoder<'_, D>,
1210 offset: usize,
1211 _depth: fidl::encoding::Depth,
1212 ) -> fidl::Result<()> {
1213 decoder.debug_check_bounds::<Self>(offset);
1214 fidl::decode!(
1216 fidl::encoding::OptionalUnion<Credential>,
1217 D,
1218 &mut self.credential,
1219 decoder,
1220 offset + 0,
1221 _depth
1222 )?;
1223 Ok(())
1224 }
1225 }
1226
1227 impl fidl::encoding::ValueTypeMarker for DeviceExtraGetCurrentMacAddressResponse {
1228 type Borrowed<'a> = &'a Self;
1229 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1230 value
1231 }
1232 }
1233
1234 unsafe impl fidl::encoding::TypeMarker for DeviceExtraGetCurrentMacAddressResponse {
1235 type Owned = Self;
1236
1237 #[inline(always)]
1238 fn inline_align(_context: fidl::encoding::Context) -> usize {
1239 1
1240 }
1241
1242 #[inline(always)]
1243 fn inline_size(_context: fidl::encoding::Context) -> usize {
1244 8
1245 }
1246 }
1247
1248 unsafe impl<D: fidl::encoding::ResourceDialect>
1249 fidl::encoding::Encode<DeviceExtraGetCurrentMacAddressResponse, D>
1250 for &DeviceExtraGetCurrentMacAddressResponse
1251 {
1252 #[inline]
1253 unsafe fn encode(
1254 self,
1255 encoder: &mut fidl::encoding::Encoder<'_, D>,
1256 offset: usize,
1257 _depth: fidl::encoding::Depth,
1258 ) -> fidl::Result<()> {
1259 encoder.debug_check_bounds::<DeviceExtraGetCurrentMacAddressResponse>(offset);
1260 fidl::encoding::Encode::<DeviceExtraGetCurrentMacAddressResponse, D>::encode(
1262 (
1263 <fidl_fuchsia_lowpan__common::MacAddress as fidl::encoding::ValueTypeMarker>::borrow(&self.address),
1264 ),
1265 encoder, offset, _depth
1266 )
1267 }
1268 }
1269 unsafe impl<
1270 D: fidl::encoding::ResourceDialect,
1271 T0: fidl::encoding::Encode<fidl_fuchsia_lowpan__common::MacAddress, D>,
1272 > fidl::encoding::Encode<DeviceExtraGetCurrentMacAddressResponse, D> for (T0,)
1273 {
1274 #[inline]
1275 unsafe fn encode(
1276 self,
1277 encoder: &mut fidl::encoding::Encoder<'_, D>,
1278 offset: usize,
1279 depth: fidl::encoding::Depth,
1280 ) -> fidl::Result<()> {
1281 encoder.debug_check_bounds::<DeviceExtraGetCurrentMacAddressResponse>(offset);
1282 self.0.encode(encoder, offset + 0, depth)?;
1286 Ok(())
1287 }
1288 }
1289
1290 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1291 for DeviceExtraGetCurrentMacAddressResponse
1292 {
1293 #[inline(always)]
1294 fn new_empty() -> Self {
1295 Self { address: fidl::new_empty!(fidl_fuchsia_lowpan__common::MacAddress, D) }
1296 }
1297
1298 #[inline]
1299 unsafe fn decode(
1300 &mut self,
1301 decoder: &mut fidl::encoding::Decoder<'_, D>,
1302 offset: usize,
1303 _depth: fidl::encoding::Depth,
1304 ) -> fidl::Result<()> {
1305 decoder.debug_check_bounds::<Self>(offset);
1306 fidl::decode!(
1308 fidl_fuchsia_lowpan__common::MacAddress,
1309 D,
1310 &mut self.address,
1311 decoder,
1312 offset + 0,
1313 _depth
1314 )?;
1315 Ok(())
1316 }
1317 }
1318
1319 impl fidl::encoding::ValueTypeMarker for DeviceExtraWatchIdentityResponse {
1320 type Borrowed<'a> = &'a Self;
1321 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1322 value
1323 }
1324 }
1325
1326 unsafe impl fidl::encoding::TypeMarker for DeviceExtraWatchIdentityResponse {
1327 type Owned = Self;
1328
1329 #[inline(always)]
1330 fn inline_align(_context: fidl::encoding::Context) -> usize {
1331 8
1332 }
1333
1334 #[inline(always)]
1335 fn inline_size(_context: fidl::encoding::Context) -> usize {
1336 16
1337 }
1338 }
1339
1340 unsafe impl<D: fidl::encoding::ResourceDialect>
1341 fidl::encoding::Encode<DeviceExtraWatchIdentityResponse, D>
1342 for &DeviceExtraWatchIdentityResponse
1343 {
1344 #[inline]
1345 unsafe fn encode(
1346 self,
1347 encoder: &mut fidl::encoding::Encoder<'_, D>,
1348 offset: usize,
1349 _depth: fidl::encoding::Depth,
1350 ) -> fidl::Result<()> {
1351 encoder.debug_check_bounds::<DeviceExtraWatchIdentityResponse>(offset);
1352 fidl::encoding::Encode::<DeviceExtraWatchIdentityResponse, D>::encode(
1354 (<Identity as fidl::encoding::ValueTypeMarker>::borrow(&self.identity),),
1355 encoder,
1356 offset,
1357 _depth,
1358 )
1359 }
1360 }
1361 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Identity, D>>
1362 fidl::encoding::Encode<DeviceExtraWatchIdentityResponse, D> for (T0,)
1363 {
1364 #[inline]
1365 unsafe fn encode(
1366 self,
1367 encoder: &mut fidl::encoding::Encoder<'_, D>,
1368 offset: usize,
1369 depth: fidl::encoding::Depth,
1370 ) -> fidl::Result<()> {
1371 encoder.debug_check_bounds::<DeviceExtraWatchIdentityResponse>(offset);
1372 self.0.encode(encoder, offset + 0, depth)?;
1376 Ok(())
1377 }
1378 }
1379
1380 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1381 for DeviceExtraWatchIdentityResponse
1382 {
1383 #[inline(always)]
1384 fn new_empty() -> Self {
1385 Self { identity: fidl::new_empty!(Identity, D) }
1386 }
1387
1388 #[inline]
1389 unsafe fn decode(
1390 &mut self,
1391 decoder: &mut fidl::encoding::Decoder<'_, D>,
1392 offset: usize,
1393 _depth: fidl::encoding::Depth,
1394 ) -> fidl::Result<()> {
1395 decoder.debug_check_bounds::<Self>(offset);
1396 fidl::decode!(Identity, D, &mut self.identity, decoder, offset + 0, _depth)?;
1398 Ok(())
1399 }
1400 }
1401
1402 impl fidl::encoding::ValueTypeMarker for DeviceGetSupportedNetworkTypesResponse {
1403 type Borrowed<'a> = &'a Self;
1404 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1405 value
1406 }
1407 }
1408
1409 unsafe impl fidl::encoding::TypeMarker for DeviceGetSupportedNetworkTypesResponse {
1410 type Owned = Self;
1411
1412 #[inline(always)]
1413 fn inline_align(_context: fidl::encoding::Context) -> usize {
1414 8
1415 }
1416
1417 #[inline(always)]
1418 fn inline_size(_context: fidl::encoding::Context) -> usize {
1419 16
1420 }
1421 }
1422
1423 unsafe impl<D: fidl::encoding::ResourceDialect>
1424 fidl::encoding::Encode<DeviceGetSupportedNetworkTypesResponse, D>
1425 for &DeviceGetSupportedNetworkTypesResponse
1426 {
1427 #[inline]
1428 unsafe fn encode(
1429 self,
1430 encoder: &mut fidl::encoding::Encoder<'_, D>,
1431 offset: usize,
1432 _depth: fidl::encoding::Depth,
1433 ) -> fidl::Result<()> {
1434 encoder.debug_check_bounds::<DeviceGetSupportedNetworkTypesResponse>(offset);
1435 fidl::encoding::Encode::<DeviceGetSupportedNetworkTypesResponse, D>::encode(
1437 (
1438 <fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16> as fidl::encoding::ValueTypeMarker>::borrow(&self.network_types),
1439 ),
1440 encoder, offset, _depth
1441 )
1442 }
1443 }
1444 unsafe impl<
1445 D: fidl::encoding::ResourceDialect,
1446 T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16>, D>,
1447 > fidl::encoding::Encode<DeviceGetSupportedNetworkTypesResponse, D> for (T0,)
1448 {
1449 #[inline]
1450 unsafe fn encode(
1451 self,
1452 encoder: &mut fidl::encoding::Encoder<'_, D>,
1453 offset: usize,
1454 depth: fidl::encoding::Depth,
1455 ) -> fidl::Result<()> {
1456 encoder.debug_check_bounds::<DeviceGetSupportedNetworkTypesResponse>(offset);
1457 self.0.encode(encoder, offset + 0, depth)?;
1461 Ok(())
1462 }
1463 }
1464
1465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1466 for DeviceGetSupportedNetworkTypesResponse
1467 {
1468 #[inline(always)]
1469 fn new_empty() -> Self {
1470 Self {
1471 network_types: fidl::new_empty!(
1472 fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16>,
1473 D
1474 ),
1475 }
1476 }
1477
1478 #[inline]
1479 unsafe fn decode(
1480 &mut self,
1481 decoder: &mut fidl::encoding::Decoder<'_, D>,
1482 offset: usize,
1483 _depth: fidl::encoding::Depth,
1484 ) -> fidl::Result<()> {
1485 decoder.debug_check_bounds::<Self>(offset);
1486 fidl::decode!(
1488 fidl::encoding::Vector<fidl::encoding::BoundedString<64>, 16>,
1489 D,
1490 &mut self.network_types,
1491 decoder,
1492 offset + 0,
1493 _depth
1494 )?;
1495 Ok(())
1496 }
1497 }
1498
1499 impl fidl::encoding::ValueTypeMarker for DeviceProvisionNetworkRequest {
1500 type Borrowed<'a> = &'a Self;
1501 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1502 value
1503 }
1504 }
1505
1506 unsafe impl fidl::encoding::TypeMarker for DeviceProvisionNetworkRequest {
1507 type Owned = Self;
1508
1509 #[inline(always)]
1510 fn inline_align(_context: fidl::encoding::Context) -> usize {
1511 8
1512 }
1513
1514 #[inline(always)]
1515 fn inline_size(_context: fidl::encoding::Context) -> usize {
1516 32
1517 }
1518 }
1519
1520 unsafe impl<D: fidl::encoding::ResourceDialect>
1521 fidl::encoding::Encode<DeviceProvisionNetworkRequest, D>
1522 for &DeviceProvisionNetworkRequest
1523 {
1524 #[inline]
1525 unsafe fn encode(
1526 self,
1527 encoder: &mut fidl::encoding::Encoder<'_, D>,
1528 offset: usize,
1529 _depth: fidl::encoding::Depth,
1530 ) -> fidl::Result<()> {
1531 encoder.debug_check_bounds::<DeviceProvisionNetworkRequest>(offset);
1532 fidl::encoding::Encode::<DeviceProvisionNetworkRequest, D>::encode(
1534 (<ProvisioningParams as fidl::encoding::ValueTypeMarker>::borrow(&self.params),),
1535 encoder,
1536 offset,
1537 _depth,
1538 )
1539 }
1540 }
1541 unsafe impl<
1542 D: fidl::encoding::ResourceDialect,
1543 T0: fidl::encoding::Encode<ProvisioningParams, D>,
1544 > fidl::encoding::Encode<DeviceProvisionNetworkRequest, D> for (T0,)
1545 {
1546 #[inline]
1547 unsafe fn encode(
1548 self,
1549 encoder: &mut fidl::encoding::Encoder<'_, D>,
1550 offset: usize,
1551 depth: fidl::encoding::Depth,
1552 ) -> fidl::Result<()> {
1553 encoder.debug_check_bounds::<DeviceProvisionNetworkRequest>(offset);
1554 self.0.encode(encoder, offset + 0, depth)?;
1558 Ok(())
1559 }
1560 }
1561
1562 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1563 for DeviceProvisionNetworkRequest
1564 {
1565 #[inline(always)]
1566 fn new_empty() -> Self {
1567 Self { params: fidl::new_empty!(ProvisioningParams, D) }
1568 }
1569
1570 #[inline]
1571 unsafe fn decode(
1572 &mut self,
1573 decoder: &mut fidl::encoding::Decoder<'_, D>,
1574 offset: usize,
1575 _depth: fidl::encoding::Depth,
1576 ) -> fidl::Result<()> {
1577 decoder.debug_check_bounds::<Self>(offset);
1578 fidl::decode!(ProvisioningParams, D, &mut self.params, decoder, offset + 0, _depth)?;
1580 Ok(())
1581 }
1582 }
1583
1584 impl fidl::encoding::ValueTypeMarker for DeviceSetActiveRequest {
1585 type Borrowed<'a> = &'a Self;
1586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1587 value
1588 }
1589 }
1590
1591 unsafe impl fidl::encoding::TypeMarker for DeviceSetActiveRequest {
1592 type Owned = Self;
1593
1594 #[inline(always)]
1595 fn inline_align(_context: fidl::encoding::Context) -> usize {
1596 1
1597 }
1598
1599 #[inline(always)]
1600 fn inline_size(_context: fidl::encoding::Context) -> usize {
1601 1
1602 }
1603 }
1604
1605 unsafe impl<D: fidl::encoding::ResourceDialect>
1606 fidl::encoding::Encode<DeviceSetActiveRequest, D> for &DeviceSetActiveRequest
1607 {
1608 #[inline]
1609 unsafe fn encode(
1610 self,
1611 encoder: &mut fidl::encoding::Encoder<'_, D>,
1612 offset: usize,
1613 _depth: fidl::encoding::Depth,
1614 ) -> fidl::Result<()> {
1615 encoder.debug_check_bounds::<DeviceSetActiveRequest>(offset);
1616 fidl::encoding::Encode::<DeviceSetActiveRequest, D>::encode(
1618 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.active),),
1619 encoder,
1620 offset,
1621 _depth,
1622 )
1623 }
1624 }
1625 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
1626 fidl::encoding::Encode<DeviceSetActiveRequest, D> for (T0,)
1627 {
1628 #[inline]
1629 unsafe fn encode(
1630 self,
1631 encoder: &mut fidl::encoding::Encoder<'_, D>,
1632 offset: usize,
1633 depth: fidl::encoding::Depth,
1634 ) -> fidl::Result<()> {
1635 encoder.debug_check_bounds::<DeviceSetActiveRequest>(offset);
1636 self.0.encode(encoder, offset + 0, depth)?;
1640 Ok(())
1641 }
1642 }
1643
1644 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1645 for DeviceSetActiveRequest
1646 {
1647 #[inline(always)]
1648 fn new_empty() -> Self {
1649 Self { active: fidl::new_empty!(bool, D) }
1650 }
1651
1652 #[inline]
1653 unsafe fn decode(
1654 &mut self,
1655 decoder: &mut fidl::encoding::Decoder<'_, D>,
1656 offset: usize,
1657 _depth: fidl::encoding::Depth,
1658 ) -> fidl::Result<()> {
1659 decoder.debug_check_bounds::<Self>(offset);
1660 fidl::decode!(bool, D, &mut self.active, decoder, offset + 0, _depth)?;
1662 Ok(())
1663 }
1664 }
1665
1666 impl fidl::encoding::ValueTypeMarker for DeviceWatchDeviceStateResponse {
1667 type Borrowed<'a> = &'a Self;
1668 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1669 value
1670 }
1671 }
1672
1673 unsafe impl fidl::encoding::TypeMarker for DeviceWatchDeviceStateResponse {
1674 type Owned = Self;
1675
1676 #[inline(always)]
1677 fn inline_align(_context: fidl::encoding::Context) -> usize {
1678 8
1679 }
1680
1681 #[inline(always)]
1682 fn inline_size(_context: fidl::encoding::Context) -> usize {
1683 16
1684 }
1685 }
1686
1687 unsafe impl<D: fidl::encoding::ResourceDialect>
1688 fidl::encoding::Encode<DeviceWatchDeviceStateResponse, D>
1689 for &DeviceWatchDeviceStateResponse
1690 {
1691 #[inline]
1692 unsafe fn encode(
1693 self,
1694 encoder: &mut fidl::encoding::Encoder<'_, D>,
1695 offset: usize,
1696 _depth: fidl::encoding::Depth,
1697 ) -> fidl::Result<()> {
1698 encoder.debug_check_bounds::<DeviceWatchDeviceStateResponse>(offset);
1699 fidl::encoding::Encode::<DeviceWatchDeviceStateResponse, D>::encode(
1701 (<DeviceState as fidl::encoding::ValueTypeMarker>::borrow(
1702 &self.device_combined_state,
1703 ),),
1704 encoder,
1705 offset,
1706 _depth,
1707 )
1708 }
1709 }
1710 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<DeviceState, D>>
1711 fidl::encoding::Encode<DeviceWatchDeviceStateResponse, D> for (T0,)
1712 {
1713 #[inline]
1714 unsafe fn encode(
1715 self,
1716 encoder: &mut fidl::encoding::Encoder<'_, D>,
1717 offset: usize,
1718 depth: fidl::encoding::Depth,
1719 ) -> fidl::Result<()> {
1720 encoder.debug_check_bounds::<DeviceWatchDeviceStateResponse>(offset);
1721 self.0.encode(encoder, offset + 0, depth)?;
1725 Ok(())
1726 }
1727 }
1728
1729 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1730 for DeviceWatchDeviceStateResponse
1731 {
1732 #[inline(always)]
1733 fn new_empty() -> Self {
1734 Self { device_combined_state: fidl::new_empty!(DeviceState, D) }
1735 }
1736
1737 #[inline]
1738 unsafe fn decode(
1739 &mut self,
1740 decoder: &mut fidl::encoding::Decoder<'_, D>,
1741 offset: usize,
1742 _depth: fidl::encoding::Depth,
1743 ) -> fidl::Result<()> {
1744 decoder.debug_check_bounds::<Self>(offset);
1745 fidl::decode!(
1747 DeviceState,
1748 D,
1749 &mut self.device_combined_state,
1750 decoder,
1751 offset + 0,
1752 _depth
1753 )?;
1754 Ok(())
1755 }
1756 }
1757
1758 impl fidl::encoding::ValueTypeMarker for EnergyScanResultStreamNextResponse {
1759 type Borrowed<'a> = &'a Self;
1760 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1761 value
1762 }
1763 }
1764
1765 unsafe impl fidl::encoding::TypeMarker for EnergyScanResultStreamNextResponse {
1766 type Owned = Self;
1767
1768 #[inline(always)]
1769 fn inline_align(_context: fidl::encoding::Context) -> usize {
1770 8
1771 }
1772
1773 #[inline(always)]
1774 fn inline_size(_context: fidl::encoding::Context) -> usize {
1775 16
1776 }
1777 }
1778
1779 unsafe impl<D: fidl::encoding::ResourceDialect>
1780 fidl::encoding::Encode<EnergyScanResultStreamNextResponse, D>
1781 for &EnergyScanResultStreamNextResponse
1782 {
1783 #[inline]
1784 unsafe fn encode(
1785 self,
1786 encoder: &mut fidl::encoding::Encoder<'_, D>,
1787 offset: usize,
1788 _depth: fidl::encoding::Depth,
1789 ) -> fidl::Result<()> {
1790 encoder.debug_check_bounds::<EnergyScanResultStreamNextResponse>(offset);
1791 fidl::encoding::Encode::<EnergyScanResultStreamNextResponse, D>::encode(
1793 (
1794 <fidl::encoding::Vector<EnergyScanResult, 32> as fidl::encoding::ValueTypeMarker>::borrow(&self.results),
1795 ),
1796 encoder, offset, _depth
1797 )
1798 }
1799 }
1800 unsafe impl<
1801 D: fidl::encoding::ResourceDialect,
1802 T0: fidl::encoding::Encode<fidl::encoding::Vector<EnergyScanResult, 32>, D>,
1803 > fidl::encoding::Encode<EnergyScanResultStreamNextResponse, D> for (T0,)
1804 {
1805 #[inline]
1806 unsafe fn encode(
1807 self,
1808 encoder: &mut fidl::encoding::Encoder<'_, D>,
1809 offset: usize,
1810 depth: fidl::encoding::Depth,
1811 ) -> fidl::Result<()> {
1812 encoder.debug_check_bounds::<EnergyScanResultStreamNextResponse>(offset);
1813 self.0.encode(encoder, offset + 0, depth)?;
1817 Ok(())
1818 }
1819 }
1820
1821 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1822 for EnergyScanResultStreamNextResponse
1823 {
1824 #[inline(always)]
1825 fn new_empty() -> Self {
1826 Self { results: fidl::new_empty!(fidl::encoding::Vector<EnergyScanResult, 32>, D) }
1827 }
1828
1829 #[inline]
1830 unsafe fn decode(
1831 &mut self,
1832 decoder: &mut fidl::encoding::Decoder<'_, D>,
1833 offset: usize,
1834 _depth: fidl::encoding::Depth,
1835 ) -> fidl::Result<()> {
1836 decoder.debug_check_bounds::<Self>(offset);
1837 fidl::decode!(fidl::encoding::Vector<EnergyScanResult, 32>, D, &mut self.results, decoder, offset + 0, _depth)?;
1839 Ok(())
1840 }
1841 }
1842
1843 impl fidl::encoding::ValueTypeMarker for ProvisioningParams {
1844 type Borrowed<'a> = &'a Self;
1845 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1846 value
1847 }
1848 }
1849
1850 unsafe impl fidl::encoding::TypeMarker for ProvisioningParams {
1851 type Owned = Self;
1852
1853 #[inline(always)]
1854 fn inline_align(_context: fidl::encoding::Context) -> usize {
1855 8
1856 }
1857
1858 #[inline(always)]
1859 fn inline_size(_context: fidl::encoding::Context) -> usize {
1860 32
1861 }
1862 }
1863
1864 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProvisioningParams, D>
1865 for &ProvisioningParams
1866 {
1867 #[inline]
1868 unsafe fn encode(
1869 self,
1870 encoder: &mut fidl::encoding::Encoder<'_, D>,
1871 offset: usize,
1872 _depth: fidl::encoding::Depth,
1873 ) -> fidl::Result<()> {
1874 encoder.debug_check_bounds::<ProvisioningParams>(offset);
1875 fidl::encoding::Encode::<ProvisioningParams, D>::encode(
1877 (
1878 <Identity as fidl::encoding::ValueTypeMarker>::borrow(&self.identity),
1879 <fidl::encoding::OptionalUnion<Credential> as fidl::encoding::ValueTypeMarker>::borrow(&self.credential),
1880 ),
1881 encoder, offset, _depth
1882 )
1883 }
1884 }
1885 unsafe impl<
1886 D: fidl::encoding::ResourceDialect,
1887 T0: fidl::encoding::Encode<Identity, D>,
1888 T1: fidl::encoding::Encode<fidl::encoding::OptionalUnion<Credential>, D>,
1889 > fidl::encoding::Encode<ProvisioningParams, D> for (T0, T1)
1890 {
1891 #[inline]
1892 unsafe fn encode(
1893 self,
1894 encoder: &mut fidl::encoding::Encoder<'_, D>,
1895 offset: usize,
1896 depth: fidl::encoding::Depth,
1897 ) -> fidl::Result<()> {
1898 encoder.debug_check_bounds::<ProvisioningParams>(offset);
1899 self.0.encode(encoder, offset + 0, depth)?;
1903 self.1.encode(encoder, offset + 16, depth)?;
1904 Ok(())
1905 }
1906 }
1907
1908 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProvisioningParams {
1909 #[inline(always)]
1910 fn new_empty() -> Self {
1911 Self {
1912 identity: fidl::new_empty!(Identity, D),
1913 credential: fidl::new_empty!(fidl::encoding::OptionalUnion<Credential>, D),
1914 }
1915 }
1916
1917 #[inline]
1918 unsafe fn decode(
1919 &mut self,
1920 decoder: &mut fidl::encoding::Decoder<'_, D>,
1921 offset: usize,
1922 _depth: fidl::encoding::Depth,
1923 ) -> fidl::Result<()> {
1924 decoder.debug_check_bounds::<Self>(offset);
1925 fidl::decode!(Identity, D, &mut self.identity, decoder, offset + 0, _depth)?;
1927 fidl::decode!(
1928 fidl::encoding::OptionalUnion<Credential>,
1929 D,
1930 &mut self.credential,
1931 decoder,
1932 offset + 16,
1933 _depth
1934 )?;
1935 Ok(())
1936 }
1937 }
1938
1939 impl AllCounters {
1940 #[inline(always)]
1941 fn max_ordinal_present(&self) -> u64 {
1942 if let Some(_) = self.border_agent {
1943 return 8;
1944 }
1945 if let Some(_) = self.ip_rx {
1946 return 7;
1947 }
1948 if let Some(_) = self.ip_tx {
1949 return 6;
1950 }
1951 if let Some(_) = self.coex_saturated {
1952 return 5;
1953 }
1954 if let Some(_) = self.coex_rx {
1955 return 4;
1956 }
1957 if let Some(_) = self.coex_tx {
1958 return 3;
1959 }
1960 if let Some(_) = self.mac_rx {
1961 return 2;
1962 }
1963 if let Some(_) = self.mac_tx {
1964 return 1;
1965 }
1966 0
1967 }
1968 }
1969
1970 impl fidl::encoding::ValueTypeMarker for AllCounters {
1971 type Borrowed<'a> = &'a Self;
1972 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1973 value
1974 }
1975 }
1976
1977 unsafe impl fidl::encoding::TypeMarker for AllCounters {
1978 type Owned = Self;
1979
1980 #[inline(always)]
1981 fn inline_align(_context: fidl::encoding::Context) -> usize {
1982 8
1983 }
1984
1985 #[inline(always)]
1986 fn inline_size(_context: fidl::encoding::Context) -> usize {
1987 16
1988 }
1989 }
1990
1991 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllCounters, D>
1992 for &AllCounters
1993 {
1994 unsafe fn encode(
1995 self,
1996 encoder: &mut fidl::encoding::Encoder<'_, D>,
1997 offset: usize,
1998 mut depth: fidl::encoding::Depth,
1999 ) -> fidl::Result<()> {
2000 encoder.debug_check_bounds::<AllCounters>(offset);
2001 let max_ordinal: u64 = self.max_ordinal_present();
2003 encoder.write_num(max_ordinal, offset);
2004 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2005 if max_ordinal == 0 {
2007 return Ok(());
2008 }
2009 depth.increment()?;
2010 let envelope_size = 8;
2011 let bytes_len = max_ordinal as usize * envelope_size;
2012 #[allow(unused_variables)]
2013 let offset = encoder.out_of_line_offset(bytes_len);
2014 let mut _prev_end_offset: usize = 0;
2015 if 1 > max_ordinal {
2016 return Ok(());
2017 }
2018
2019 let cur_offset: usize = (1 - 1) * envelope_size;
2022
2023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2025
2026 fidl::encoding::encode_in_envelope_optional::<MacCounters, D>(
2031 self.mac_tx.as_ref().map(<MacCounters as fidl::encoding::ValueTypeMarker>::borrow),
2032 encoder,
2033 offset + cur_offset,
2034 depth,
2035 )?;
2036
2037 _prev_end_offset = cur_offset + envelope_size;
2038 if 2 > max_ordinal {
2039 return Ok(());
2040 }
2041
2042 let cur_offset: usize = (2 - 1) * envelope_size;
2045
2046 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2048
2049 fidl::encoding::encode_in_envelope_optional::<MacCounters, D>(
2054 self.mac_rx.as_ref().map(<MacCounters as fidl::encoding::ValueTypeMarker>::borrow),
2055 encoder,
2056 offset + cur_offset,
2057 depth,
2058 )?;
2059
2060 _prev_end_offset = cur_offset + envelope_size;
2061 if 3 > max_ordinal {
2062 return Ok(());
2063 }
2064
2065 let cur_offset: usize = (3 - 1) * envelope_size;
2068
2069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2071
2072 fidl::encoding::encode_in_envelope_optional::<CoexCounters, D>(
2077 self.coex_tx
2078 .as_ref()
2079 .map(<CoexCounters as fidl::encoding::ValueTypeMarker>::borrow),
2080 encoder,
2081 offset + cur_offset,
2082 depth,
2083 )?;
2084
2085 _prev_end_offset = cur_offset + envelope_size;
2086 if 4 > max_ordinal {
2087 return Ok(());
2088 }
2089
2090 let cur_offset: usize = (4 - 1) * envelope_size;
2093
2094 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2096
2097 fidl::encoding::encode_in_envelope_optional::<CoexCounters, D>(
2102 self.coex_rx
2103 .as_ref()
2104 .map(<CoexCounters as fidl::encoding::ValueTypeMarker>::borrow),
2105 encoder,
2106 offset + cur_offset,
2107 depth,
2108 )?;
2109
2110 _prev_end_offset = cur_offset + envelope_size;
2111 if 5 > max_ordinal {
2112 return Ok(());
2113 }
2114
2115 let cur_offset: usize = (5 - 1) * envelope_size;
2118
2119 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2121
2122 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2127 self.coex_saturated.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2128 encoder,
2129 offset + cur_offset,
2130 depth,
2131 )?;
2132
2133 _prev_end_offset = cur_offset + envelope_size;
2134 if 6 > max_ordinal {
2135 return Ok(());
2136 }
2137
2138 let cur_offset: usize = (6 - 1) * envelope_size;
2141
2142 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2144
2145 fidl::encoding::encode_in_envelope_optional::<IpCounters, D>(
2150 self.ip_tx.as_ref().map(<IpCounters 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 7 > max_ordinal {
2158 return Ok(());
2159 }
2160
2161 let cur_offset: usize = (7 - 1) * envelope_size;
2164
2165 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2167
2168 fidl::encoding::encode_in_envelope_optional::<IpCounters, D>(
2173 self.ip_rx.as_ref().map(<IpCounters 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 8 > max_ordinal {
2181 return Ok(());
2182 }
2183
2184 let cur_offset: usize = (8 - 1) * envelope_size;
2187
2188 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2190
2191 fidl::encoding::encode_in_envelope_optional::<BorderAgentCounters, D>(
2196 self.border_agent
2197 .as_ref()
2198 .map(<BorderAgentCounters as fidl::encoding::ValueTypeMarker>::borrow),
2199 encoder,
2200 offset + cur_offset,
2201 depth,
2202 )?;
2203
2204 _prev_end_offset = cur_offset + envelope_size;
2205
2206 Ok(())
2207 }
2208 }
2209
2210 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllCounters {
2211 #[inline(always)]
2212 fn new_empty() -> Self {
2213 Self::default()
2214 }
2215
2216 unsafe fn decode(
2217 &mut self,
2218 decoder: &mut fidl::encoding::Decoder<'_, D>,
2219 offset: usize,
2220 mut depth: fidl::encoding::Depth,
2221 ) -> fidl::Result<()> {
2222 decoder.debug_check_bounds::<Self>(offset);
2223 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2224 None => return Err(fidl::Error::NotNullable),
2225 Some(len) => len,
2226 };
2227 if len == 0 {
2229 return Ok(());
2230 };
2231 depth.increment()?;
2232 let envelope_size = 8;
2233 let bytes_len = len * envelope_size;
2234 let offset = decoder.out_of_line_offset(bytes_len)?;
2235 let mut _next_ordinal_to_read = 0;
2237 let mut next_offset = offset;
2238 let end_offset = offset + bytes_len;
2239 _next_ordinal_to_read += 1;
2240 if next_offset >= end_offset {
2241 return Ok(());
2242 }
2243
2244 while _next_ordinal_to_read < 1 {
2246 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2247 _next_ordinal_to_read += 1;
2248 next_offset += envelope_size;
2249 }
2250
2251 let next_out_of_line = decoder.next_out_of_line();
2252 let handles_before = decoder.remaining_handles();
2253 if let Some((inlined, num_bytes, num_handles)) =
2254 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2255 {
2256 let member_inline_size =
2257 <MacCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2258 if inlined != (member_inline_size <= 4) {
2259 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2260 }
2261 let inner_offset;
2262 let mut inner_depth = depth.clone();
2263 if inlined {
2264 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2265 inner_offset = next_offset;
2266 } else {
2267 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2268 inner_depth.increment()?;
2269 }
2270 let val_ref = self.mac_tx.get_or_insert_with(|| fidl::new_empty!(MacCounters, D));
2271 fidl::decode!(MacCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2272 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2273 {
2274 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2275 }
2276 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2277 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2278 }
2279 }
2280
2281 next_offset += envelope_size;
2282 _next_ordinal_to_read += 1;
2283 if next_offset >= end_offset {
2284 return Ok(());
2285 }
2286
2287 while _next_ordinal_to_read < 2 {
2289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2290 _next_ordinal_to_read += 1;
2291 next_offset += envelope_size;
2292 }
2293
2294 let next_out_of_line = decoder.next_out_of_line();
2295 let handles_before = decoder.remaining_handles();
2296 if let Some((inlined, num_bytes, num_handles)) =
2297 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2298 {
2299 let member_inline_size =
2300 <MacCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2301 if inlined != (member_inline_size <= 4) {
2302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2303 }
2304 let inner_offset;
2305 let mut inner_depth = depth.clone();
2306 if inlined {
2307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2308 inner_offset = next_offset;
2309 } else {
2310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2311 inner_depth.increment()?;
2312 }
2313 let val_ref = self.mac_rx.get_or_insert_with(|| fidl::new_empty!(MacCounters, D));
2314 fidl::decode!(MacCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2315 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2316 {
2317 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2318 }
2319 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2320 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2321 }
2322 }
2323
2324 next_offset += envelope_size;
2325 _next_ordinal_to_read += 1;
2326 if next_offset >= end_offset {
2327 return Ok(());
2328 }
2329
2330 while _next_ordinal_to_read < 3 {
2332 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2333 _next_ordinal_to_read += 1;
2334 next_offset += envelope_size;
2335 }
2336
2337 let next_out_of_line = decoder.next_out_of_line();
2338 let handles_before = decoder.remaining_handles();
2339 if let Some((inlined, num_bytes, num_handles)) =
2340 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2341 {
2342 let member_inline_size =
2343 <CoexCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2344 if inlined != (member_inline_size <= 4) {
2345 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2346 }
2347 let inner_offset;
2348 let mut inner_depth = depth.clone();
2349 if inlined {
2350 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2351 inner_offset = next_offset;
2352 } else {
2353 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2354 inner_depth.increment()?;
2355 }
2356 let val_ref = self.coex_tx.get_or_insert_with(|| fidl::new_empty!(CoexCounters, D));
2357 fidl::decode!(CoexCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2358 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2359 {
2360 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2361 }
2362 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2363 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2364 }
2365 }
2366
2367 next_offset += envelope_size;
2368 _next_ordinal_to_read += 1;
2369 if next_offset >= end_offset {
2370 return Ok(());
2371 }
2372
2373 while _next_ordinal_to_read < 4 {
2375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2376 _next_ordinal_to_read += 1;
2377 next_offset += envelope_size;
2378 }
2379
2380 let next_out_of_line = decoder.next_out_of_line();
2381 let handles_before = decoder.remaining_handles();
2382 if let Some((inlined, num_bytes, num_handles)) =
2383 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2384 {
2385 let member_inline_size =
2386 <CoexCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2387 if inlined != (member_inline_size <= 4) {
2388 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2389 }
2390 let inner_offset;
2391 let mut inner_depth = depth.clone();
2392 if inlined {
2393 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2394 inner_offset = next_offset;
2395 } else {
2396 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2397 inner_depth.increment()?;
2398 }
2399 let val_ref = self.coex_rx.get_or_insert_with(|| fidl::new_empty!(CoexCounters, D));
2400 fidl::decode!(CoexCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2401 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2402 {
2403 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2404 }
2405 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2406 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2407 }
2408 }
2409
2410 next_offset += envelope_size;
2411 _next_ordinal_to_read += 1;
2412 if next_offset >= end_offset {
2413 return Ok(());
2414 }
2415
2416 while _next_ordinal_to_read < 5 {
2418 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2419 _next_ordinal_to_read += 1;
2420 next_offset += envelope_size;
2421 }
2422
2423 let next_out_of_line = decoder.next_out_of_line();
2424 let handles_before = decoder.remaining_handles();
2425 if let Some((inlined, num_bytes, num_handles)) =
2426 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2427 {
2428 let member_inline_size =
2429 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2430 if inlined != (member_inline_size <= 4) {
2431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2432 }
2433 let inner_offset;
2434 let mut inner_depth = depth.clone();
2435 if inlined {
2436 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2437 inner_offset = next_offset;
2438 } else {
2439 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2440 inner_depth.increment()?;
2441 }
2442 let val_ref = self.coex_saturated.get_or_insert_with(|| fidl::new_empty!(bool, D));
2443 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2444 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2445 {
2446 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2447 }
2448 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2449 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2450 }
2451 }
2452
2453 next_offset += envelope_size;
2454 _next_ordinal_to_read += 1;
2455 if next_offset >= end_offset {
2456 return Ok(());
2457 }
2458
2459 while _next_ordinal_to_read < 6 {
2461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2462 _next_ordinal_to_read += 1;
2463 next_offset += envelope_size;
2464 }
2465
2466 let next_out_of_line = decoder.next_out_of_line();
2467 let handles_before = decoder.remaining_handles();
2468 if let Some((inlined, num_bytes, num_handles)) =
2469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2470 {
2471 let member_inline_size =
2472 <IpCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2473 if inlined != (member_inline_size <= 4) {
2474 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2475 }
2476 let inner_offset;
2477 let mut inner_depth = depth.clone();
2478 if inlined {
2479 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2480 inner_offset = next_offset;
2481 } else {
2482 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2483 inner_depth.increment()?;
2484 }
2485 let val_ref = self.ip_tx.get_or_insert_with(|| fidl::new_empty!(IpCounters, D));
2486 fidl::decode!(IpCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2487 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2488 {
2489 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2490 }
2491 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2492 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2493 }
2494 }
2495
2496 next_offset += envelope_size;
2497 _next_ordinal_to_read += 1;
2498 if next_offset >= end_offset {
2499 return Ok(());
2500 }
2501
2502 while _next_ordinal_to_read < 7 {
2504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2505 _next_ordinal_to_read += 1;
2506 next_offset += envelope_size;
2507 }
2508
2509 let next_out_of_line = decoder.next_out_of_line();
2510 let handles_before = decoder.remaining_handles();
2511 if let Some((inlined, num_bytes, num_handles)) =
2512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2513 {
2514 let member_inline_size =
2515 <IpCounters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2516 if inlined != (member_inline_size <= 4) {
2517 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2518 }
2519 let inner_offset;
2520 let mut inner_depth = depth.clone();
2521 if inlined {
2522 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2523 inner_offset = next_offset;
2524 } else {
2525 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2526 inner_depth.increment()?;
2527 }
2528 let val_ref = self.ip_rx.get_or_insert_with(|| fidl::new_empty!(IpCounters, D));
2529 fidl::decode!(IpCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2530 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2531 {
2532 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2533 }
2534 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2535 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2536 }
2537 }
2538
2539 next_offset += envelope_size;
2540 _next_ordinal_to_read += 1;
2541 if next_offset >= end_offset {
2542 return Ok(());
2543 }
2544
2545 while _next_ordinal_to_read < 8 {
2547 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2548 _next_ordinal_to_read += 1;
2549 next_offset += envelope_size;
2550 }
2551
2552 let next_out_of_line = decoder.next_out_of_line();
2553 let handles_before = decoder.remaining_handles();
2554 if let Some((inlined, num_bytes, num_handles)) =
2555 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2556 {
2557 let member_inline_size =
2558 <BorderAgentCounters as fidl::encoding::TypeMarker>::inline_size(
2559 decoder.context,
2560 );
2561 if inlined != (member_inline_size <= 4) {
2562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2563 }
2564 let inner_offset;
2565 let mut inner_depth = depth.clone();
2566 if inlined {
2567 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2568 inner_offset = next_offset;
2569 } else {
2570 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2571 inner_depth.increment()?;
2572 }
2573 let val_ref = self
2574 .border_agent
2575 .get_or_insert_with(|| fidl::new_empty!(BorderAgentCounters, D));
2576 fidl::decode!(BorderAgentCounters, D, val_ref, decoder, inner_offset, inner_depth)?;
2577 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2578 {
2579 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2580 }
2581 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2582 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2583 }
2584 }
2585
2586 next_offset += envelope_size;
2587
2588 while next_offset < end_offset {
2590 _next_ordinal_to_read += 1;
2591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2592 next_offset += envelope_size;
2593 }
2594
2595 Ok(())
2596 }
2597 }
2598
2599 impl BorderAgentCounters {
2600 #[inline(always)]
2601 fn max_ordinal_present(&self) -> u64 {
2602 if let Some(_) = self.mgmt_pending_gets {
2603 return 16;
2604 }
2605 if let Some(_) = self.mgmt_active_gets {
2606 return 15;
2607 }
2608 if let Some(_) = self.pskc_commissioner_petitions {
2609 return 14;
2610 }
2611 if let Some(_) = self.pskc_secure_session_failures {
2612 return 13;
2613 }
2614 if let Some(_) = self.pskc_secure_session_successes {
2615 return 12;
2616 }
2617 if let Some(_) = self.epskc_commissioner_petitions {
2618 return 11;
2619 }
2620 if let Some(_) = self.epskc_secure_session_failures {
2621 return 10;
2622 }
2623 if let Some(_) = self.epskc_secure_session_successes {
2624 return 9;
2625 }
2626 if let Some(_) = self.epskc_start_secure_session_errors {
2627 return 8;
2628 }
2629 if let Some(_) = self.epskc_invalid_args_errors {
2630 return 7;
2631 }
2632 if let Some(_) = self.epskc_invalid_ba_state_errors {
2633 return 6;
2634 }
2635 if let Some(_) = self.epskc_deactivation_disconnects {
2636 return 5;
2637 }
2638 if let Some(_) = self.epskc_deactivation_max_attempts {
2639 return 4;
2640 }
2641 if let Some(_) = self.epskc_deactivation_timeouts {
2642 return 3;
2643 }
2644 if let Some(_) = self.epskc_deactivation_clears {
2645 return 2;
2646 }
2647 if let Some(_) = self.epskc_activations {
2648 return 1;
2649 }
2650 0
2651 }
2652 }
2653
2654 impl fidl::encoding::ValueTypeMarker for BorderAgentCounters {
2655 type Borrowed<'a> = &'a Self;
2656 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2657 value
2658 }
2659 }
2660
2661 unsafe impl fidl::encoding::TypeMarker for BorderAgentCounters {
2662 type Owned = Self;
2663
2664 #[inline(always)]
2665 fn inline_align(_context: fidl::encoding::Context) -> usize {
2666 8
2667 }
2668
2669 #[inline(always)]
2670 fn inline_size(_context: fidl::encoding::Context) -> usize {
2671 16
2672 }
2673 }
2674
2675 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BorderAgentCounters, D>
2676 for &BorderAgentCounters
2677 {
2678 unsafe fn encode(
2679 self,
2680 encoder: &mut fidl::encoding::Encoder<'_, D>,
2681 offset: usize,
2682 mut depth: fidl::encoding::Depth,
2683 ) -> fidl::Result<()> {
2684 encoder.debug_check_bounds::<BorderAgentCounters>(offset);
2685 let max_ordinal: u64 = self.max_ordinal_present();
2687 encoder.write_num(max_ordinal, offset);
2688 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2689 if max_ordinal == 0 {
2691 return Ok(());
2692 }
2693 depth.increment()?;
2694 let envelope_size = 8;
2695 let bytes_len = max_ordinal as usize * envelope_size;
2696 #[allow(unused_variables)]
2697 let offset = encoder.out_of_line_offset(bytes_len);
2698 let mut _prev_end_offset: usize = 0;
2699 if 1 > max_ordinal {
2700 return Ok(());
2701 }
2702
2703 let cur_offset: usize = (1 - 1) * envelope_size;
2706
2707 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2709
2710 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2715 self.epskc_activations
2716 .as_ref()
2717 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2718 encoder,
2719 offset + cur_offset,
2720 depth,
2721 )?;
2722
2723 _prev_end_offset = cur_offset + envelope_size;
2724 if 2 > max_ordinal {
2725 return Ok(());
2726 }
2727
2728 let cur_offset: usize = (2 - 1) * envelope_size;
2731
2732 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2734
2735 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2740 self.epskc_deactivation_clears
2741 .as_ref()
2742 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2743 encoder,
2744 offset + cur_offset,
2745 depth,
2746 )?;
2747
2748 _prev_end_offset = cur_offset + envelope_size;
2749 if 3 > max_ordinal {
2750 return Ok(());
2751 }
2752
2753 let cur_offset: usize = (3 - 1) * envelope_size;
2756
2757 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2759
2760 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2765 self.epskc_deactivation_timeouts
2766 .as_ref()
2767 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2768 encoder,
2769 offset + cur_offset,
2770 depth,
2771 )?;
2772
2773 _prev_end_offset = cur_offset + envelope_size;
2774 if 4 > max_ordinal {
2775 return Ok(());
2776 }
2777
2778 let cur_offset: usize = (4 - 1) * envelope_size;
2781
2782 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2784
2785 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2790 self.epskc_deactivation_max_attempts
2791 .as_ref()
2792 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2793 encoder,
2794 offset + cur_offset,
2795 depth,
2796 )?;
2797
2798 _prev_end_offset = cur_offset + envelope_size;
2799 if 5 > max_ordinal {
2800 return Ok(());
2801 }
2802
2803 let cur_offset: usize = (5 - 1) * envelope_size;
2806
2807 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2809
2810 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2815 self.epskc_deactivation_disconnects
2816 .as_ref()
2817 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2818 encoder,
2819 offset + cur_offset,
2820 depth,
2821 )?;
2822
2823 _prev_end_offset = cur_offset + envelope_size;
2824 if 6 > max_ordinal {
2825 return Ok(());
2826 }
2827
2828 let cur_offset: usize = (6 - 1) * envelope_size;
2831
2832 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2834
2835 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2840 self.epskc_invalid_ba_state_errors
2841 .as_ref()
2842 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2843 encoder,
2844 offset + cur_offset,
2845 depth,
2846 )?;
2847
2848 _prev_end_offset = cur_offset + envelope_size;
2849 if 7 > max_ordinal {
2850 return Ok(());
2851 }
2852
2853 let cur_offset: usize = (7 - 1) * envelope_size;
2856
2857 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2859
2860 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2865 self.epskc_invalid_args_errors
2866 .as_ref()
2867 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2868 encoder,
2869 offset + cur_offset,
2870 depth,
2871 )?;
2872
2873 _prev_end_offset = cur_offset + envelope_size;
2874 if 8 > max_ordinal {
2875 return Ok(());
2876 }
2877
2878 let cur_offset: usize = (8 - 1) * envelope_size;
2881
2882 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2884
2885 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2890 self.epskc_start_secure_session_errors
2891 .as_ref()
2892 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2893 encoder,
2894 offset + cur_offset,
2895 depth,
2896 )?;
2897
2898 _prev_end_offset = cur_offset + envelope_size;
2899 if 9 > max_ordinal {
2900 return Ok(());
2901 }
2902
2903 let cur_offset: usize = (9 - 1) * envelope_size;
2906
2907 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2909
2910 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2915 self.epskc_secure_session_successes
2916 .as_ref()
2917 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2918 encoder,
2919 offset + cur_offset,
2920 depth,
2921 )?;
2922
2923 _prev_end_offset = cur_offset + envelope_size;
2924 if 10 > max_ordinal {
2925 return Ok(());
2926 }
2927
2928 let cur_offset: usize = (10 - 1) * envelope_size;
2931
2932 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2934
2935 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2940 self.epskc_secure_session_failures
2941 .as_ref()
2942 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2943 encoder,
2944 offset + cur_offset,
2945 depth,
2946 )?;
2947
2948 _prev_end_offset = cur_offset + envelope_size;
2949 if 11 > max_ordinal {
2950 return Ok(());
2951 }
2952
2953 let cur_offset: usize = (11 - 1) * envelope_size;
2956
2957 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2959
2960 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2965 self.epskc_commissioner_petitions
2966 .as_ref()
2967 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2968 encoder,
2969 offset + cur_offset,
2970 depth,
2971 )?;
2972
2973 _prev_end_offset = cur_offset + envelope_size;
2974 if 12 > max_ordinal {
2975 return Ok(());
2976 }
2977
2978 let cur_offset: usize = (12 - 1) * envelope_size;
2981
2982 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2984
2985 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2990 self.pskc_secure_session_successes
2991 .as_ref()
2992 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2993 encoder,
2994 offset + cur_offset,
2995 depth,
2996 )?;
2997
2998 _prev_end_offset = cur_offset + envelope_size;
2999 if 13 > max_ordinal {
3000 return Ok(());
3001 }
3002
3003 let cur_offset: usize = (13 - 1) * envelope_size;
3006
3007 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3009
3010 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3015 self.pskc_secure_session_failures
3016 .as_ref()
3017 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3018 encoder,
3019 offset + cur_offset,
3020 depth,
3021 )?;
3022
3023 _prev_end_offset = cur_offset + envelope_size;
3024 if 14 > max_ordinal {
3025 return Ok(());
3026 }
3027
3028 let cur_offset: usize = (14 - 1) * envelope_size;
3031
3032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3034
3035 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3040 self.pskc_commissioner_petitions
3041 .as_ref()
3042 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3043 encoder,
3044 offset + cur_offset,
3045 depth,
3046 )?;
3047
3048 _prev_end_offset = cur_offset + envelope_size;
3049 if 15 > max_ordinal {
3050 return Ok(());
3051 }
3052
3053 let cur_offset: usize = (15 - 1) * envelope_size;
3056
3057 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3059
3060 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3065 self.mgmt_active_gets
3066 .as_ref()
3067 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3068 encoder,
3069 offset + cur_offset,
3070 depth,
3071 )?;
3072
3073 _prev_end_offset = cur_offset + envelope_size;
3074 if 16 > max_ordinal {
3075 return Ok(());
3076 }
3077
3078 let cur_offset: usize = (16 - 1) * envelope_size;
3081
3082 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3084
3085 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3090 self.mgmt_pending_gets
3091 .as_ref()
3092 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3093 encoder,
3094 offset + cur_offset,
3095 depth,
3096 )?;
3097
3098 _prev_end_offset = cur_offset + envelope_size;
3099
3100 Ok(())
3101 }
3102 }
3103
3104 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BorderAgentCounters {
3105 #[inline(always)]
3106 fn new_empty() -> Self {
3107 Self::default()
3108 }
3109
3110 unsafe fn decode(
3111 &mut self,
3112 decoder: &mut fidl::encoding::Decoder<'_, D>,
3113 offset: usize,
3114 mut depth: fidl::encoding::Depth,
3115 ) -> fidl::Result<()> {
3116 decoder.debug_check_bounds::<Self>(offset);
3117 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3118 None => return Err(fidl::Error::NotNullable),
3119 Some(len) => len,
3120 };
3121 if len == 0 {
3123 return Ok(());
3124 };
3125 depth.increment()?;
3126 let envelope_size = 8;
3127 let bytes_len = len * envelope_size;
3128 let offset = decoder.out_of_line_offset(bytes_len)?;
3129 let mut _next_ordinal_to_read = 0;
3131 let mut next_offset = offset;
3132 let end_offset = offset + bytes_len;
3133 _next_ordinal_to_read += 1;
3134 if next_offset >= end_offset {
3135 return Ok(());
3136 }
3137
3138 while _next_ordinal_to_read < 1 {
3140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3141 _next_ordinal_to_read += 1;
3142 next_offset += envelope_size;
3143 }
3144
3145 let next_out_of_line = decoder.next_out_of_line();
3146 let handles_before = decoder.remaining_handles();
3147 if let Some((inlined, num_bytes, num_handles)) =
3148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3149 {
3150 let member_inline_size =
3151 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3152 if inlined != (member_inline_size <= 4) {
3153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3154 }
3155 let inner_offset;
3156 let mut inner_depth = depth.clone();
3157 if inlined {
3158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3159 inner_offset = next_offset;
3160 } else {
3161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3162 inner_depth.increment()?;
3163 }
3164 let val_ref =
3165 self.epskc_activations.get_or_insert_with(|| fidl::new_empty!(u32, D));
3166 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3168 {
3169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3170 }
3171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3173 }
3174 }
3175
3176 next_offset += envelope_size;
3177 _next_ordinal_to_read += 1;
3178 if next_offset >= end_offset {
3179 return Ok(());
3180 }
3181
3182 while _next_ordinal_to_read < 2 {
3184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3185 _next_ordinal_to_read += 1;
3186 next_offset += envelope_size;
3187 }
3188
3189 let next_out_of_line = decoder.next_out_of_line();
3190 let handles_before = decoder.remaining_handles();
3191 if let Some((inlined, num_bytes, num_handles)) =
3192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3193 {
3194 let member_inline_size =
3195 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3196 if inlined != (member_inline_size <= 4) {
3197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3198 }
3199 let inner_offset;
3200 let mut inner_depth = depth.clone();
3201 if inlined {
3202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3203 inner_offset = next_offset;
3204 } else {
3205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3206 inner_depth.increment()?;
3207 }
3208 let val_ref =
3209 self.epskc_deactivation_clears.get_or_insert_with(|| fidl::new_empty!(u32, D));
3210 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3211 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3212 {
3213 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3214 }
3215 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3216 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3217 }
3218 }
3219
3220 next_offset += envelope_size;
3221 _next_ordinal_to_read += 1;
3222 if next_offset >= end_offset {
3223 return Ok(());
3224 }
3225
3226 while _next_ordinal_to_read < 3 {
3228 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3229 _next_ordinal_to_read += 1;
3230 next_offset += envelope_size;
3231 }
3232
3233 let next_out_of_line = decoder.next_out_of_line();
3234 let handles_before = decoder.remaining_handles();
3235 if let Some((inlined, num_bytes, num_handles)) =
3236 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3237 {
3238 let member_inline_size =
3239 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3240 if inlined != (member_inline_size <= 4) {
3241 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3242 }
3243 let inner_offset;
3244 let mut inner_depth = depth.clone();
3245 if inlined {
3246 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3247 inner_offset = next_offset;
3248 } else {
3249 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3250 inner_depth.increment()?;
3251 }
3252 let val_ref = self
3253 .epskc_deactivation_timeouts
3254 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3255 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3257 {
3258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3259 }
3260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3262 }
3263 }
3264
3265 next_offset += envelope_size;
3266 _next_ordinal_to_read += 1;
3267 if next_offset >= end_offset {
3268 return Ok(());
3269 }
3270
3271 while _next_ordinal_to_read < 4 {
3273 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3274 _next_ordinal_to_read += 1;
3275 next_offset += envelope_size;
3276 }
3277
3278 let next_out_of_line = decoder.next_out_of_line();
3279 let handles_before = decoder.remaining_handles();
3280 if let Some((inlined, num_bytes, num_handles)) =
3281 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3282 {
3283 let member_inline_size =
3284 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3285 if inlined != (member_inline_size <= 4) {
3286 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3287 }
3288 let inner_offset;
3289 let mut inner_depth = depth.clone();
3290 if inlined {
3291 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3292 inner_offset = next_offset;
3293 } else {
3294 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3295 inner_depth.increment()?;
3296 }
3297 let val_ref = self
3298 .epskc_deactivation_max_attempts
3299 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3300 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3301 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3302 {
3303 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3304 }
3305 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3306 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3307 }
3308 }
3309
3310 next_offset += envelope_size;
3311 _next_ordinal_to_read += 1;
3312 if next_offset >= end_offset {
3313 return Ok(());
3314 }
3315
3316 while _next_ordinal_to_read < 5 {
3318 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3319 _next_ordinal_to_read += 1;
3320 next_offset += envelope_size;
3321 }
3322
3323 let next_out_of_line = decoder.next_out_of_line();
3324 let handles_before = decoder.remaining_handles();
3325 if let Some((inlined, num_bytes, num_handles)) =
3326 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3327 {
3328 let member_inline_size =
3329 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3330 if inlined != (member_inline_size <= 4) {
3331 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3332 }
3333 let inner_offset;
3334 let mut inner_depth = depth.clone();
3335 if inlined {
3336 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3337 inner_offset = next_offset;
3338 } else {
3339 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3340 inner_depth.increment()?;
3341 }
3342 let val_ref = self
3343 .epskc_deactivation_disconnects
3344 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3345 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3346 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3347 {
3348 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3349 }
3350 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3351 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3352 }
3353 }
3354
3355 next_offset += envelope_size;
3356 _next_ordinal_to_read += 1;
3357 if next_offset >= end_offset {
3358 return Ok(());
3359 }
3360
3361 while _next_ordinal_to_read < 6 {
3363 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3364 _next_ordinal_to_read += 1;
3365 next_offset += envelope_size;
3366 }
3367
3368 let next_out_of_line = decoder.next_out_of_line();
3369 let handles_before = decoder.remaining_handles();
3370 if let Some((inlined, num_bytes, num_handles)) =
3371 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3372 {
3373 let member_inline_size =
3374 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3375 if inlined != (member_inline_size <= 4) {
3376 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3377 }
3378 let inner_offset;
3379 let mut inner_depth = depth.clone();
3380 if inlined {
3381 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3382 inner_offset = next_offset;
3383 } else {
3384 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3385 inner_depth.increment()?;
3386 }
3387 let val_ref = self
3388 .epskc_invalid_ba_state_errors
3389 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3390 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3391 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3392 {
3393 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3394 }
3395 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3396 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3397 }
3398 }
3399
3400 next_offset += envelope_size;
3401 _next_ordinal_to_read += 1;
3402 if next_offset >= end_offset {
3403 return Ok(());
3404 }
3405
3406 while _next_ordinal_to_read < 7 {
3408 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3409 _next_ordinal_to_read += 1;
3410 next_offset += envelope_size;
3411 }
3412
3413 let next_out_of_line = decoder.next_out_of_line();
3414 let handles_before = decoder.remaining_handles();
3415 if let Some((inlined, num_bytes, num_handles)) =
3416 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3417 {
3418 let member_inline_size =
3419 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3420 if inlined != (member_inline_size <= 4) {
3421 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3422 }
3423 let inner_offset;
3424 let mut inner_depth = depth.clone();
3425 if inlined {
3426 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3427 inner_offset = next_offset;
3428 } else {
3429 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3430 inner_depth.increment()?;
3431 }
3432 let val_ref =
3433 self.epskc_invalid_args_errors.get_or_insert_with(|| fidl::new_empty!(u32, D));
3434 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3435 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3436 {
3437 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3438 }
3439 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3440 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3441 }
3442 }
3443
3444 next_offset += envelope_size;
3445 _next_ordinal_to_read += 1;
3446 if next_offset >= end_offset {
3447 return Ok(());
3448 }
3449
3450 while _next_ordinal_to_read < 8 {
3452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3453 _next_ordinal_to_read += 1;
3454 next_offset += envelope_size;
3455 }
3456
3457 let next_out_of_line = decoder.next_out_of_line();
3458 let handles_before = decoder.remaining_handles();
3459 if let Some((inlined, num_bytes, num_handles)) =
3460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3461 {
3462 let member_inline_size =
3463 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3464 if inlined != (member_inline_size <= 4) {
3465 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3466 }
3467 let inner_offset;
3468 let mut inner_depth = depth.clone();
3469 if inlined {
3470 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3471 inner_offset = next_offset;
3472 } else {
3473 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3474 inner_depth.increment()?;
3475 }
3476 let val_ref = self
3477 .epskc_start_secure_session_errors
3478 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3479 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3481 {
3482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3483 }
3484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3486 }
3487 }
3488
3489 next_offset += envelope_size;
3490 _next_ordinal_to_read += 1;
3491 if next_offset >= end_offset {
3492 return Ok(());
3493 }
3494
3495 while _next_ordinal_to_read < 9 {
3497 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3498 _next_ordinal_to_read += 1;
3499 next_offset += envelope_size;
3500 }
3501
3502 let next_out_of_line = decoder.next_out_of_line();
3503 let handles_before = decoder.remaining_handles();
3504 if let Some((inlined, num_bytes, num_handles)) =
3505 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3506 {
3507 let member_inline_size =
3508 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3509 if inlined != (member_inline_size <= 4) {
3510 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3511 }
3512 let inner_offset;
3513 let mut inner_depth = depth.clone();
3514 if inlined {
3515 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3516 inner_offset = next_offset;
3517 } else {
3518 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3519 inner_depth.increment()?;
3520 }
3521 let val_ref = self
3522 .epskc_secure_session_successes
3523 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3524 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3525 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3526 {
3527 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3528 }
3529 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3530 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3531 }
3532 }
3533
3534 next_offset += envelope_size;
3535 _next_ordinal_to_read += 1;
3536 if next_offset >= end_offset {
3537 return Ok(());
3538 }
3539
3540 while _next_ordinal_to_read < 10 {
3542 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3543 _next_ordinal_to_read += 1;
3544 next_offset += envelope_size;
3545 }
3546
3547 let next_out_of_line = decoder.next_out_of_line();
3548 let handles_before = decoder.remaining_handles();
3549 if let Some((inlined, num_bytes, num_handles)) =
3550 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3551 {
3552 let member_inline_size =
3553 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3554 if inlined != (member_inline_size <= 4) {
3555 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3556 }
3557 let inner_offset;
3558 let mut inner_depth = depth.clone();
3559 if inlined {
3560 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3561 inner_offset = next_offset;
3562 } else {
3563 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3564 inner_depth.increment()?;
3565 }
3566 let val_ref = self
3567 .epskc_secure_session_failures
3568 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3569 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3570 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3571 {
3572 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3573 }
3574 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3575 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3576 }
3577 }
3578
3579 next_offset += envelope_size;
3580 _next_ordinal_to_read += 1;
3581 if next_offset >= end_offset {
3582 return Ok(());
3583 }
3584
3585 while _next_ordinal_to_read < 11 {
3587 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3588 _next_ordinal_to_read += 1;
3589 next_offset += envelope_size;
3590 }
3591
3592 let next_out_of_line = decoder.next_out_of_line();
3593 let handles_before = decoder.remaining_handles();
3594 if let Some((inlined, num_bytes, num_handles)) =
3595 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3596 {
3597 let member_inline_size =
3598 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3599 if inlined != (member_inline_size <= 4) {
3600 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3601 }
3602 let inner_offset;
3603 let mut inner_depth = depth.clone();
3604 if inlined {
3605 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3606 inner_offset = next_offset;
3607 } else {
3608 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3609 inner_depth.increment()?;
3610 }
3611 let val_ref = self
3612 .epskc_commissioner_petitions
3613 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3614 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3615 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3616 {
3617 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3618 }
3619 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3620 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3621 }
3622 }
3623
3624 next_offset += envelope_size;
3625 _next_ordinal_to_read += 1;
3626 if next_offset >= end_offset {
3627 return Ok(());
3628 }
3629
3630 while _next_ordinal_to_read < 12 {
3632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3633 _next_ordinal_to_read += 1;
3634 next_offset += envelope_size;
3635 }
3636
3637 let next_out_of_line = decoder.next_out_of_line();
3638 let handles_before = decoder.remaining_handles();
3639 if let Some((inlined, num_bytes, num_handles)) =
3640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3641 {
3642 let member_inline_size =
3643 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3644 if inlined != (member_inline_size <= 4) {
3645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3646 }
3647 let inner_offset;
3648 let mut inner_depth = depth.clone();
3649 if inlined {
3650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3651 inner_offset = next_offset;
3652 } else {
3653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3654 inner_depth.increment()?;
3655 }
3656 let val_ref = self
3657 .pskc_secure_session_successes
3658 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3659 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3660 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3661 {
3662 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3663 }
3664 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3665 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3666 }
3667 }
3668
3669 next_offset += envelope_size;
3670 _next_ordinal_to_read += 1;
3671 if next_offset >= end_offset {
3672 return Ok(());
3673 }
3674
3675 while _next_ordinal_to_read < 13 {
3677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3678 _next_ordinal_to_read += 1;
3679 next_offset += envelope_size;
3680 }
3681
3682 let next_out_of_line = decoder.next_out_of_line();
3683 let handles_before = decoder.remaining_handles();
3684 if let Some((inlined, num_bytes, num_handles)) =
3685 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3686 {
3687 let member_inline_size =
3688 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3689 if inlined != (member_inline_size <= 4) {
3690 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3691 }
3692 let inner_offset;
3693 let mut inner_depth = depth.clone();
3694 if inlined {
3695 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3696 inner_offset = next_offset;
3697 } else {
3698 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3699 inner_depth.increment()?;
3700 }
3701 let val_ref = self
3702 .pskc_secure_session_failures
3703 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3704 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3706 {
3707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3708 }
3709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3711 }
3712 }
3713
3714 next_offset += envelope_size;
3715 _next_ordinal_to_read += 1;
3716 if next_offset >= end_offset {
3717 return Ok(());
3718 }
3719
3720 while _next_ordinal_to_read < 14 {
3722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3723 _next_ordinal_to_read += 1;
3724 next_offset += envelope_size;
3725 }
3726
3727 let next_out_of_line = decoder.next_out_of_line();
3728 let handles_before = decoder.remaining_handles();
3729 if let Some((inlined, num_bytes, num_handles)) =
3730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3731 {
3732 let member_inline_size =
3733 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3734 if inlined != (member_inline_size <= 4) {
3735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3736 }
3737 let inner_offset;
3738 let mut inner_depth = depth.clone();
3739 if inlined {
3740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3741 inner_offset = next_offset;
3742 } else {
3743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3744 inner_depth.increment()?;
3745 }
3746 let val_ref = self
3747 .pskc_commissioner_petitions
3748 .get_or_insert_with(|| fidl::new_empty!(u32, D));
3749 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3750 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3751 {
3752 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3753 }
3754 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3755 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3756 }
3757 }
3758
3759 next_offset += envelope_size;
3760 _next_ordinal_to_read += 1;
3761 if next_offset >= end_offset {
3762 return Ok(());
3763 }
3764
3765 while _next_ordinal_to_read < 15 {
3767 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3768 _next_ordinal_to_read += 1;
3769 next_offset += envelope_size;
3770 }
3771
3772 let next_out_of_line = decoder.next_out_of_line();
3773 let handles_before = decoder.remaining_handles();
3774 if let Some((inlined, num_bytes, num_handles)) =
3775 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3776 {
3777 let member_inline_size =
3778 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3779 if inlined != (member_inline_size <= 4) {
3780 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3781 }
3782 let inner_offset;
3783 let mut inner_depth = depth.clone();
3784 if inlined {
3785 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3786 inner_offset = next_offset;
3787 } else {
3788 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3789 inner_depth.increment()?;
3790 }
3791 let val_ref = self.mgmt_active_gets.get_or_insert_with(|| fidl::new_empty!(u32, D));
3792 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3793 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3794 {
3795 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3796 }
3797 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3798 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3799 }
3800 }
3801
3802 next_offset += envelope_size;
3803 _next_ordinal_to_read += 1;
3804 if next_offset >= end_offset {
3805 return Ok(());
3806 }
3807
3808 while _next_ordinal_to_read < 16 {
3810 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3811 _next_ordinal_to_read += 1;
3812 next_offset += envelope_size;
3813 }
3814
3815 let next_out_of_line = decoder.next_out_of_line();
3816 let handles_before = decoder.remaining_handles();
3817 if let Some((inlined, num_bytes, num_handles)) =
3818 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3819 {
3820 let member_inline_size =
3821 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3822 if inlined != (member_inline_size <= 4) {
3823 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3824 }
3825 let inner_offset;
3826 let mut inner_depth = depth.clone();
3827 if inlined {
3828 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3829 inner_offset = next_offset;
3830 } else {
3831 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3832 inner_depth.increment()?;
3833 }
3834 let val_ref =
3835 self.mgmt_pending_gets.get_or_insert_with(|| fidl::new_empty!(u32, D));
3836 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3837 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3838 {
3839 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3840 }
3841 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3842 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3843 }
3844 }
3845
3846 next_offset += envelope_size;
3847
3848 while next_offset < end_offset {
3850 _next_ordinal_to_read += 1;
3851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3852 next_offset += envelope_size;
3853 }
3854
3855 Ok(())
3856 }
3857 }
3858
3859 impl CoexCounters {
3860 #[inline(always)]
3861 fn max_ordinal_present(&self) -> u64 {
3862 if let Some(_) = self.grant_none {
3863 return 9;
3864 }
3865 if let Some(_) = self.avg_delay_request_to_grant_usec {
3866 return 8;
3867 }
3868 if let Some(_) = self.delayed_grant {
3869 return 7;
3870 }
3871 if let Some(_) = self.grant_deactivated_during_request {
3872 return 6;
3873 }
3874 if let Some(_) = self.grant_wait_timeout {
3875 return 5;
3876 }
3877 if let Some(_) = self.grant_wait_activated {
3878 return 4;
3879 }
3880 if let Some(_) = self.grant_wait {
3881 return 3;
3882 }
3883 if let Some(_) = self.grant_immediate {
3884 return 2;
3885 }
3886 if let Some(_) = self.requests {
3887 return 1;
3888 }
3889 0
3890 }
3891 }
3892
3893 impl fidl::encoding::ValueTypeMarker for CoexCounters {
3894 type Borrowed<'a> = &'a Self;
3895 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3896 value
3897 }
3898 }
3899
3900 unsafe impl fidl::encoding::TypeMarker for CoexCounters {
3901 type Owned = Self;
3902
3903 #[inline(always)]
3904 fn inline_align(_context: fidl::encoding::Context) -> usize {
3905 8
3906 }
3907
3908 #[inline(always)]
3909 fn inline_size(_context: fidl::encoding::Context) -> usize {
3910 16
3911 }
3912 }
3913
3914 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CoexCounters, D>
3915 for &CoexCounters
3916 {
3917 unsafe fn encode(
3918 self,
3919 encoder: &mut fidl::encoding::Encoder<'_, D>,
3920 offset: usize,
3921 mut depth: fidl::encoding::Depth,
3922 ) -> fidl::Result<()> {
3923 encoder.debug_check_bounds::<CoexCounters>(offset);
3924 let max_ordinal: u64 = self.max_ordinal_present();
3926 encoder.write_num(max_ordinal, offset);
3927 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3928 if max_ordinal == 0 {
3930 return Ok(());
3931 }
3932 depth.increment()?;
3933 let envelope_size = 8;
3934 let bytes_len = max_ordinal as usize * envelope_size;
3935 #[allow(unused_variables)]
3936 let offset = encoder.out_of_line_offset(bytes_len);
3937 let mut _prev_end_offset: usize = 0;
3938 if 1 > max_ordinal {
3939 return Ok(());
3940 }
3941
3942 let cur_offset: usize = (1 - 1) * envelope_size;
3945
3946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3948
3949 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3954 self.requests.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3955 encoder,
3956 offset + cur_offset,
3957 depth,
3958 )?;
3959
3960 _prev_end_offset = cur_offset + envelope_size;
3961 if 2 > max_ordinal {
3962 return Ok(());
3963 }
3964
3965 let cur_offset: usize = (2 - 1) * envelope_size;
3968
3969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3971
3972 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3977 self.grant_immediate.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3978 encoder,
3979 offset + cur_offset,
3980 depth,
3981 )?;
3982
3983 _prev_end_offset = cur_offset + envelope_size;
3984 if 3 > max_ordinal {
3985 return Ok(());
3986 }
3987
3988 let cur_offset: usize = (3 - 1) * envelope_size;
3991
3992 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3994
3995 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4000 self.grant_wait.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4001 encoder,
4002 offset + cur_offset,
4003 depth,
4004 )?;
4005
4006 _prev_end_offset = cur_offset + envelope_size;
4007 if 4 > max_ordinal {
4008 return Ok(());
4009 }
4010
4011 let cur_offset: usize = (4 - 1) * envelope_size;
4014
4015 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4017
4018 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4023 self.grant_wait_activated
4024 .as_ref()
4025 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4026 encoder,
4027 offset + cur_offset,
4028 depth,
4029 )?;
4030
4031 _prev_end_offset = cur_offset + envelope_size;
4032 if 5 > max_ordinal {
4033 return Ok(());
4034 }
4035
4036 let cur_offset: usize = (5 - 1) * envelope_size;
4039
4040 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4042
4043 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4048 self.grant_wait_timeout
4049 .as_ref()
4050 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4051 encoder,
4052 offset + cur_offset,
4053 depth,
4054 )?;
4055
4056 _prev_end_offset = cur_offset + envelope_size;
4057 if 6 > max_ordinal {
4058 return Ok(());
4059 }
4060
4061 let cur_offset: usize = (6 - 1) * envelope_size;
4064
4065 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4067
4068 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4073 self.grant_deactivated_during_request
4074 .as_ref()
4075 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4076 encoder,
4077 offset + cur_offset,
4078 depth,
4079 )?;
4080
4081 _prev_end_offset = cur_offset + envelope_size;
4082 if 7 > max_ordinal {
4083 return Ok(());
4084 }
4085
4086 let cur_offset: usize = (7 - 1) * envelope_size;
4089
4090 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4092
4093 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4098 self.delayed_grant.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4099 encoder,
4100 offset + cur_offset,
4101 depth,
4102 )?;
4103
4104 _prev_end_offset = cur_offset + envelope_size;
4105 if 8 > max_ordinal {
4106 return Ok(());
4107 }
4108
4109 let cur_offset: usize = (8 - 1) * envelope_size;
4112
4113 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4115
4116 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4121 self.avg_delay_request_to_grant_usec
4122 .as_ref()
4123 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4124 encoder,
4125 offset + cur_offset,
4126 depth,
4127 )?;
4128
4129 _prev_end_offset = cur_offset + envelope_size;
4130 if 9 > max_ordinal {
4131 return Ok(());
4132 }
4133
4134 let cur_offset: usize = (9 - 1) * envelope_size;
4137
4138 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4140
4141 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4146 self.grant_none.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4147 encoder,
4148 offset + cur_offset,
4149 depth,
4150 )?;
4151
4152 _prev_end_offset = cur_offset + envelope_size;
4153
4154 Ok(())
4155 }
4156 }
4157
4158 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CoexCounters {
4159 #[inline(always)]
4160 fn new_empty() -> Self {
4161 Self::default()
4162 }
4163
4164 unsafe fn decode(
4165 &mut self,
4166 decoder: &mut fidl::encoding::Decoder<'_, D>,
4167 offset: usize,
4168 mut depth: fidl::encoding::Depth,
4169 ) -> fidl::Result<()> {
4170 decoder.debug_check_bounds::<Self>(offset);
4171 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4172 None => return Err(fidl::Error::NotNullable),
4173 Some(len) => len,
4174 };
4175 if len == 0 {
4177 return Ok(());
4178 };
4179 depth.increment()?;
4180 let envelope_size = 8;
4181 let bytes_len = len * envelope_size;
4182 let offset = decoder.out_of_line_offset(bytes_len)?;
4183 let mut _next_ordinal_to_read = 0;
4185 let mut next_offset = offset;
4186 let end_offset = offset + bytes_len;
4187 _next_ordinal_to_read += 1;
4188 if next_offset >= end_offset {
4189 return Ok(());
4190 }
4191
4192 while _next_ordinal_to_read < 1 {
4194 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4195 _next_ordinal_to_read += 1;
4196 next_offset += envelope_size;
4197 }
4198
4199 let next_out_of_line = decoder.next_out_of_line();
4200 let handles_before = decoder.remaining_handles();
4201 if let Some((inlined, num_bytes, num_handles)) =
4202 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4203 {
4204 let member_inline_size =
4205 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4206 if inlined != (member_inline_size <= 4) {
4207 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4208 }
4209 let inner_offset;
4210 let mut inner_depth = depth.clone();
4211 if inlined {
4212 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4213 inner_offset = next_offset;
4214 } else {
4215 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4216 inner_depth.increment()?;
4217 }
4218 let val_ref = self.requests.get_or_insert_with(|| fidl::new_empty!(u64, D));
4219 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4220 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4221 {
4222 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4223 }
4224 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4225 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4226 }
4227 }
4228
4229 next_offset += envelope_size;
4230 _next_ordinal_to_read += 1;
4231 if next_offset >= end_offset {
4232 return Ok(());
4233 }
4234
4235 while _next_ordinal_to_read < 2 {
4237 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4238 _next_ordinal_to_read += 1;
4239 next_offset += envelope_size;
4240 }
4241
4242 let next_out_of_line = decoder.next_out_of_line();
4243 let handles_before = decoder.remaining_handles();
4244 if let Some((inlined, num_bytes, num_handles)) =
4245 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4246 {
4247 let member_inline_size =
4248 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4249 if inlined != (member_inline_size <= 4) {
4250 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4251 }
4252 let inner_offset;
4253 let mut inner_depth = depth.clone();
4254 if inlined {
4255 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4256 inner_offset = next_offset;
4257 } else {
4258 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4259 inner_depth.increment()?;
4260 }
4261 let val_ref = self.grant_immediate.get_or_insert_with(|| fidl::new_empty!(u64, D));
4262 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4264 {
4265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4266 }
4267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4269 }
4270 }
4271
4272 next_offset += envelope_size;
4273 _next_ordinal_to_read += 1;
4274 if next_offset >= end_offset {
4275 return Ok(());
4276 }
4277
4278 while _next_ordinal_to_read < 3 {
4280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4281 _next_ordinal_to_read += 1;
4282 next_offset += envelope_size;
4283 }
4284
4285 let next_out_of_line = decoder.next_out_of_line();
4286 let handles_before = decoder.remaining_handles();
4287 if let Some((inlined, num_bytes, num_handles)) =
4288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4289 {
4290 let member_inline_size =
4291 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4292 if inlined != (member_inline_size <= 4) {
4293 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4294 }
4295 let inner_offset;
4296 let mut inner_depth = depth.clone();
4297 if inlined {
4298 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4299 inner_offset = next_offset;
4300 } else {
4301 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4302 inner_depth.increment()?;
4303 }
4304 let val_ref = self.grant_wait.get_or_insert_with(|| fidl::new_empty!(u64, D));
4305 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4306 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4307 {
4308 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4309 }
4310 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4311 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4312 }
4313 }
4314
4315 next_offset += envelope_size;
4316 _next_ordinal_to_read += 1;
4317 if next_offset >= end_offset {
4318 return Ok(());
4319 }
4320
4321 while _next_ordinal_to_read < 4 {
4323 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4324 _next_ordinal_to_read += 1;
4325 next_offset += envelope_size;
4326 }
4327
4328 let next_out_of_line = decoder.next_out_of_line();
4329 let handles_before = decoder.remaining_handles();
4330 if let Some((inlined, num_bytes, num_handles)) =
4331 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4332 {
4333 let member_inline_size =
4334 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4335 if inlined != (member_inline_size <= 4) {
4336 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4337 }
4338 let inner_offset;
4339 let mut inner_depth = depth.clone();
4340 if inlined {
4341 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4342 inner_offset = next_offset;
4343 } else {
4344 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4345 inner_depth.increment()?;
4346 }
4347 let val_ref =
4348 self.grant_wait_activated.get_or_insert_with(|| fidl::new_empty!(u64, D));
4349 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4351 {
4352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4353 }
4354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4356 }
4357 }
4358
4359 next_offset += envelope_size;
4360 _next_ordinal_to_read += 1;
4361 if next_offset >= end_offset {
4362 return Ok(());
4363 }
4364
4365 while _next_ordinal_to_read < 5 {
4367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4368 _next_ordinal_to_read += 1;
4369 next_offset += envelope_size;
4370 }
4371
4372 let next_out_of_line = decoder.next_out_of_line();
4373 let handles_before = decoder.remaining_handles();
4374 if let Some((inlined, num_bytes, num_handles)) =
4375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4376 {
4377 let member_inline_size =
4378 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4379 if inlined != (member_inline_size <= 4) {
4380 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4381 }
4382 let inner_offset;
4383 let mut inner_depth = depth.clone();
4384 if inlined {
4385 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4386 inner_offset = next_offset;
4387 } else {
4388 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4389 inner_depth.increment()?;
4390 }
4391 let val_ref =
4392 self.grant_wait_timeout.get_or_insert_with(|| fidl::new_empty!(u64, D));
4393 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4395 {
4396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4397 }
4398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4400 }
4401 }
4402
4403 next_offset += envelope_size;
4404 _next_ordinal_to_read += 1;
4405 if next_offset >= end_offset {
4406 return Ok(());
4407 }
4408
4409 while _next_ordinal_to_read < 6 {
4411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4412 _next_ordinal_to_read += 1;
4413 next_offset += envelope_size;
4414 }
4415
4416 let next_out_of_line = decoder.next_out_of_line();
4417 let handles_before = decoder.remaining_handles();
4418 if let Some((inlined, num_bytes, num_handles)) =
4419 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4420 {
4421 let member_inline_size =
4422 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4423 if inlined != (member_inline_size <= 4) {
4424 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4425 }
4426 let inner_offset;
4427 let mut inner_depth = depth.clone();
4428 if inlined {
4429 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4430 inner_offset = next_offset;
4431 } else {
4432 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4433 inner_depth.increment()?;
4434 }
4435 let val_ref = self
4436 .grant_deactivated_during_request
4437 .get_or_insert_with(|| fidl::new_empty!(u64, D));
4438 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4439 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4440 {
4441 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4442 }
4443 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4444 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4445 }
4446 }
4447
4448 next_offset += envelope_size;
4449 _next_ordinal_to_read += 1;
4450 if next_offset >= end_offset {
4451 return Ok(());
4452 }
4453
4454 while _next_ordinal_to_read < 7 {
4456 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4457 _next_ordinal_to_read += 1;
4458 next_offset += envelope_size;
4459 }
4460
4461 let next_out_of_line = decoder.next_out_of_line();
4462 let handles_before = decoder.remaining_handles();
4463 if let Some((inlined, num_bytes, num_handles)) =
4464 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4465 {
4466 let member_inline_size =
4467 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4468 if inlined != (member_inline_size <= 4) {
4469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4470 }
4471 let inner_offset;
4472 let mut inner_depth = depth.clone();
4473 if inlined {
4474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4475 inner_offset = next_offset;
4476 } else {
4477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4478 inner_depth.increment()?;
4479 }
4480 let val_ref = self.delayed_grant.get_or_insert_with(|| fidl::new_empty!(u64, D));
4481 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4483 {
4484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4485 }
4486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4488 }
4489 }
4490
4491 next_offset += envelope_size;
4492 _next_ordinal_to_read += 1;
4493 if next_offset >= end_offset {
4494 return Ok(());
4495 }
4496
4497 while _next_ordinal_to_read < 8 {
4499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4500 _next_ordinal_to_read += 1;
4501 next_offset += envelope_size;
4502 }
4503
4504 let next_out_of_line = decoder.next_out_of_line();
4505 let handles_before = decoder.remaining_handles();
4506 if let Some((inlined, num_bytes, num_handles)) =
4507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4508 {
4509 let member_inline_size =
4510 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4511 if inlined != (member_inline_size <= 4) {
4512 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4513 }
4514 let inner_offset;
4515 let mut inner_depth = depth.clone();
4516 if inlined {
4517 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4518 inner_offset = next_offset;
4519 } else {
4520 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4521 inner_depth.increment()?;
4522 }
4523 let val_ref = self
4524 .avg_delay_request_to_grant_usec
4525 .get_or_insert_with(|| fidl::new_empty!(u32, D));
4526 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4527 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4528 {
4529 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4530 }
4531 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4532 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4533 }
4534 }
4535
4536 next_offset += envelope_size;
4537 _next_ordinal_to_read += 1;
4538 if next_offset >= end_offset {
4539 return Ok(());
4540 }
4541
4542 while _next_ordinal_to_read < 9 {
4544 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4545 _next_ordinal_to_read += 1;
4546 next_offset += envelope_size;
4547 }
4548
4549 let next_out_of_line = decoder.next_out_of_line();
4550 let handles_before = decoder.remaining_handles();
4551 if let Some((inlined, num_bytes, num_handles)) =
4552 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4553 {
4554 let member_inline_size =
4555 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4556 if inlined != (member_inline_size <= 4) {
4557 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4558 }
4559 let inner_offset;
4560 let mut inner_depth = depth.clone();
4561 if inlined {
4562 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4563 inner_offset = next_offset;
4564 } else {
4565 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4566 inner_depth.increment()?;
4567 }
4568 let val_ref = self.grant_none.get_or_insert_with(|| fidl::new_empty!(u64, D));
4569 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4570 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4571 {
4572 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4573 }
4574 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4575 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4576 }
4577 }
4578
4579 next_offset += envelope_size;
4580
4581 while next_offset < end_offset {
4583 _next_ordinal_to_read += 1;
4584 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4585 next_offset += envelope_size;
4586 }
4587
4588 Ok(())
4589 }
4590 }
4591
4592 impl DeviceState {
4593 #[inline(always)]
4594 fn max_ordinal_present(&self) -> u64 {
4595 if let Some(_) = self.role {
4596 return 2;
4597 }
4598 if let Some(_) = self.connectivity_state {
4599 return 1;
4600 }
4601 0
4602 }
4603 }
4604
4605 impl fidl::encoding::ValueTypeMarker for DeviceState {
4606 type Borrowed<'a> = &'a Self;
4607 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4608 value
4609 }
4610 }
4611
4612 unsafe impl fidl::encoding::TypeMarker for DeviceState {
4613 type Owned = Self;
4614
4615 #[inline(always)]
4616 fn inline_align(_context: fidl::encoding::Context) -> usize {
4617 8
4618 }
4619
4620 #[inline(always)]
4621 fn inline_size(_context: fidl::encoding::Context) -> usize {
4622 16
4623 }
4624 }
4625
4626 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DeviceState, D>
4627 for &DeviceState
4628 {
4629 unsafe fn encode(
4630 self,
4631 encoder: &mut fidl::encoding::Encoder<'_, D>,
4632 offset: usize,
4633 mut depth: fidl::encoding::Depth,
4634 ) -> fidl::Result<()> {
4635 encoder.debug_check_bounds::<DeviceState>(offset);
4636 let max_ordinal: u64 = self.max_ordinal_present();
4638 encoder.write_num(max_ordinal, offset);
4639 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4640 if max_ordinal == 0 {
4642 return Ok(());
4643 }
4644 depth.increment()?;
4645 let envelope_size = 8;
4646 let bytes_len = max_ordinal as usize * envelope_size;
4647 #[allow(unused_variables)]
4648 let offset = encoder.out_of_line_offset(bytes_len);
4649 let mut _prev_end_offset: usize = 0;
4650 if 1 > max_ordinal {
4651 return Ok(());
4652 }
4653
4654 let cur_offset: usize = (1 - 1) * envelope_size;
4657
4658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4660
4661 fidl::encoding::encode_in_envelope_optional::<ConnectivityState, D>(
4666 self.connectivity_state
4667 .as_ref()
4668 .map(<ConnectivityState as fidl::encoding::ValueTypeMarker>::borrow),
4669 encoder,
4670 offset + cur_offset,
4671 depth,
4672 )?;
4673
4674 _prev_end_offset = cur_offset + envelope_size;
4675 if 2 > max_ordinal {
4676 return Ok(());
4677 }
4678
4679 let cur_offset: usize = (2 - 1) * envelope_size;
4682
4683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4685
4686 fidl::encoding::encode_in_envelope_optional::<Role, D>(
4691 self.role.as_ref().map(<Role as fidl::encoding::ValueTypeMarker>::borrow),
4692 encoder,
4693 offset + cur_offset,
4694 depth,
4695 )?;
4696
4697 _prev_end_offset = cur_offset + envelope_size;
4698
4699 Ok(())
4700 }
4701 }
4702
4703 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeviceState {
4704 #[inline(always)]
4705 fn new_empty() -> Self {
4706 Self::default()
4707 }
4708
4709 unsafe fn decode(
4710 &mut self,
4711 decoder: &mut fidl::encoding::Decoder<'_, D>,
4712 offset: usize,
4713 mut depth: fidl::encoding::Depth,
4714 ) -> fidl::Result<()> {
4715 decoder.debug_check_bounds::<Self>(offset);
4716 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4717 None => return Err(fidl::Error::NotNullable),
4718 Some(len) => len,
4719 };
4720 if len == 0 {
4722 return Ok(());
4723 };
4724 depth.increment()?;
4725 let envelope_size = 8;
4726 let bytes_len = len * envelope_size;
4727 let offset = decoder.out_of_line_offset(bytes_len)?;
4728 let mut _next_ordinal_to_read = 0;
4730 let mut next_offset = offset;
4731 let end_offset = offset + bytes_len;
4732 _next_ordinal_to_read += 1;
4733 if next_offset >= end_offset {
4734 return Ok(());
4735 }
4736
4737 while _next_ordinal_to_read < 1 {
4739 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4740 _next_ordinal_to_read += 1;
4741 next_offset += envelope_size;
4742 }
4743
4744 let next_out_of_line = decoder.next_out_of_line();
4745 let handles_before = decoder.remaining_handles();
4746 if let Some((inlined, num_bytes, num_handles)) =
4747 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4748 {
4749 let member_inline_size =
4750 <ConnectivityState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4751 if inlined != (member_inline_size <= 4) {
4752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4753 }
4754 let inner_offset;
4755 let mut inner_depth = depth.clone();
4756 if inlined {
4757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4758 inner_offset = next_offset;
4759 } else {
4760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4761 inner_depth.increment()?;
4762 }
4763 let val_ref = self
4764 .connectivity_state
4765 .get_or_insert_with(|| fidl::new_empty!(ConnectivityState, D));
4766 fidl::decode!(ConnectivityState, D, val_ref, decoder, inner_offset, inner_depth)?;
4767 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4768 {
4769 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4770 }
4771 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4772 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4773 }
4774 }
4775
4776 next_offset += envelope_size;
4777 _next_ordinal_to_read += 1;
4778 if next_offset >= end_offset {
4779 return Ok(());
4780 }
4781
4782 while _next_ordinal_to_read < 2 {
4784 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4785 _next_ordinal_to_read += 1;
4786 next_offset += envelope_size;
4787 }
4788
4789 let next_out_of_line = decoder.next_out_of_line();
4790 let handles_before = decoder.remaining_handles();
4791 if let Some((inlined, num_bytes, num_handles)) =
4792 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4793 {
4794 let member_inline_size =
4795 <Role as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4796 if inlined != (member_inline_size <= 4) {
4797 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4798 }
4799 let inner_offset;
4800 let mut inner_depth = depth.clone();
4801 if inlined {
4802 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4803 inner_offset = next_offset;
4804 } else {
4805 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4806 inner_depth.increment()?;
4807 }
4808 let val_ref = self.role.get_or_insert_with(|| fidl::new_empty!(Role, D));
4809 fidl::decode!(Role, D, val_ref, decoder, inner_offset, inner_depth)?;
4810 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4811 {
4812 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4813 }
4814 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4815 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4816 }
4817 }
4818
4819 next_offset += envelope_size;
4820
4821 while next_offset < end_offset {
4823 _next_ordinal_to_read += 1;
4824 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4825 next_offset += envelope_size;
4826 }
4827
4828 Ok(())
4829 }
4830 }
4831
4832 impl EnergyScanParameters {
4833 #[inline(always)]
4834 fn max_ordinal_present(&self) -> u64 {
4835 if let Some(_) = self.dwell_time_ms {
4836 return 2;
4837 }
4838 if let Some(_) = self.channels {
4839 return 1;
4840 }
4841 0
4842 }
4843 }
4844
4845 impl fidl::encoding::ValueTypeMarker for EnergyScanParameters {
4846 type Borrowed<'a> = &'a Self;
4847 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4848 value
4849 }
4850 }
4851
4852 unsafe impl fidl::encoding::TypeMarker for EnergyScanParameters {
4853 type Owned = Self;
4854
4855 #[inline(always)]
4856 fn inline_align(_context: fidl::encoding::Context) -> usize {
4857 8
4858 }
4859
4860 #[inline(always)]
4861 fn inline_size(_context: fidl::encoding::Context) -> usize {
4862 16
4863 }
4864 }
4865
4866 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnergyScanParameters, D>
4867 for &EnergyScanParameters
4868 {
4869 unsafe fn encode(
4870 self,
4871 encoder: &mut fidl::encoding::Encoder<'_, D>,
4872 offset: usize,
4873 mut depth: fidl::encoding::Depth,
4874 ) -> fidl::Result<()> {
4875 encoder.debug_check_bounds::<EnergyScanParameters>(offset);
4876 let max_ordinal: u64 = self.max_ordinal_present();
4878 encoder.write_num(max_ordinal, offset);
4879 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4880 if max_ordinal == 0 {
4882 return Ok(());
4883 }
4884 depth.increment()?;
4885 let envelope_size = 8;
4886 let bytes_len = max_ordinal as usize * envelope_size;
4887 #[allow(unused_variables)]
4888 let offset = encoder.out_of_line_offset(bytes_len);
4889 let mut _prev_end_offset: usize = 0;
4890 if 1 > max_ordinal {
4891 return Ok(());
4892 }
4893
4894 let cur_offset: usize = (1 - 1) * envelope_size;
4897
4898 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4900
4901 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u16, 200>, D>(
4906 self.channels.as_ref().map(
4907 <fidl::encoding::Vector<u16, 200> as fidl::encoding::ValueTypeMarker>::borrow,
4908 ),
4909 encoder,
4910 offset + cur_offset,
4911 depth,
4912 )?;
4913
4914 _prev_end_offset = cur_offset + envelope_size;
4915 if 2 > max_ordinal {
4916 return Ok(());
4917 }
4918
4919 let cur_offset: usize = (2 - 1) * envelope_size;
4922
4923 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4925
4926 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4931 self.dwell_time_ms.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4932 encoder,
4933 offset + cur_offset,
4934 depth,
4935 )?;
4936
4937 _prev_end_offset = cur_offset + envelope_size;
4938
4939 Ok(())
4940 }
4941 }
4942
4943 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnergyScanParameters {
4944 #[inline(always)]
4945 fn new_empty() -> Self {
4946 Self::default()
4947 }
4948
4949 unsafe fn decode(
4950 &mut self,
4951 decoder: &mut fidl::encoding::Decoder<'_, D>,
4952 offset: usize,
4953 mut depth: fidl::encoding::Depth,
4954 ) -> fidl::Result<()> {
4955 decoder.debug_check_bounds::<Self>(offset);
4956 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4957 None => return Err(fidl::Error::NotNullable),
4958 Some(len) => len,
4959 };
4960 if len == 0 {
4962 return Ok(());
4963 };
4964 depth.increment()?;
4965 let envelope_size = 8;
4966 let bytes_len = len * envelope_size;
4967 let offset = decoder.out_of_line_offset(bytes_len)?;
4968 let mut _next_ordinal_to_read = 0;
4970 let mut next_offset = offset;
4971 let end_offset = offset + bytes_len;
4972 _next_ordinal_to_read += 1;
4973 if next_offset >= end_offset {
4974 return Ok(());
4975 }
4976
4977 while _next_ordinal_to_read < 1 {
4979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4980 _next_ordinal_to_read += 1;
4981 next_offset += envelope_size;
4982 }
4983
4984 let next_out_of_line = decoder.next_out_of_line();
4985 let handles_before = decoder.remaining_handles();
4986 if let Some((inlined, num_bytes, num_handles)) =
4987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4988 {
4989 let member_inline_size =
4990 <fidl::encoding::Vector<u16, 200> as fidl::encoding::TypeMarker>::inline_size(
4991 decoder.context,
4992 );
4993 if inlined != (member_inline_size <= 4) {
4994 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4995 }
4996 let inner_offset;
4997 let mut inner_depth = depth.clone();
4998 if inlined {
4999 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5000 inner_offset = next_offset;
5001 } else {
5002 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5003 inner_depth.increment()?;
5004 }
5005 let val_ref = self
5006 .channels
5007 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u16, 200>, D));
5008 fidl::decode!(fidl::encoding::Vector<u16, 200>, D, val_ref, decoder, inner_offset, inner_depth)?;
5009 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5010 {
5011 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5012 }
5013 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5014 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5015 }
5016 }
5017
5018 next_offset += envelope_size;
5019 _next_ordinal_to_read += 1;
5020 if next_offset >= end_offset {
5021 return Ok(());
5022 }
5023
5024 while _next_ordinal_to_read < 2 {
5026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5027 _next_ordinal_to_read += 1;
5028 next_offset += envelope_size;
5029 }
5030
5031 let next_out_of_line = decoder.next_out_of_line();
5032 let handles_before = decoder.remaining_handles();
5033 if let Some((inlined, num_bytes, num_handles)) =
5034 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5035 {
5036 let member_inline_size =
5037 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5038 if inlined != (member_inline_size <= 4) {
5039 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5040 }
5041 let inner_offset;
5042 let mut inner_depth = depth.clone();
5043 if inlined {
5044 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5045 inner_offset = next_offset;
5046 } else {
5047 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5048 inner_depth.increment()?;
5049 }
5050 let val_ref = self.dwell_time_ms.get_or_insert_with(|| fidl::new_empty!(u32, D));
5051 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5052 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5053 {
5054 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5055 }
5056 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5057 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5058 }
5059 }
5060
5061 next_offset += envelope_size;
5062
5063 while next_offset < end_offset {
5065 _next_ordinal_to_read += 1;
5066 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5067 next_offset += envelope_size;
5068 }
5069
5070 Ok(())
5071 }
5072 }
5073
5074 impl EnergyScanResult {
5075 #[inline(always)]
5076 fn max_ordinal_present(&self) -> u64 {
5077 if let Some(_) = self.min_rssi {
5078 return 3;
5079 }
5080 if let Some(_) = self.max_rssi {
5081 return 2;
5082 }
5083 if let Some(_) = self.channel_index {
5084 return 1;
5085 }
5086 0
5087 }
5088 }
5089
5090 impl fidl::encoding::ValueTypeMarker for EnergyScanResult {
5091 type Borrowed<'a> = &'a Self;
5092 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5093 value
5094 }
5095 }
5096
5097 unsafe impl fidl::encoding::TypeMarker for EnergyScanResult {
5098 type Owned = Self;
5099
5100 #[inline(always)]
5101 fn inline_align(_context: fidl::encoding::Context) -> usize {
5102 8
5103 }
5104
5105 #[inline(always)]
5106 fn inline_size(_context: fidl::encoding::Context) -> usize {
5107 16
5108 }
5109 }
5110
5111 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnergyScanResult, D>
5112 for &EnergyScanResult
5113 {
5114 unsafe fn encode(
5115 self,
5116 encoder: &mut fidl::encoding::Encoder<'_, D>,
5117 offset: usize,
5118 mut depth: fidl::encoding::Depth,
5119 ) -> fidl::Result<()> {
5120 encoder.debug_check_bounds::<EnergyScanResult>(offset);
5121 let max_ordinal: u64 = self.max_ordinal_present();
5123 encoder.write_num(max_ordinal, offset);
5124 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5125 if max_ordinal == 0 {
5127 return Ok(());
5128 }
5129 depth.increment()?;
5130 let envelope_size = 8;
5131 let bytes_len = max_ordinal as usize * envelope_size;
5132 #[allow(unused_variables)]
5133 let offset = encoder.out_of_line_offset(bytes_len);
5134 let mut _prev_end_offset: usize = 0;
5135 if 1 > max_ordinal {
5136 return Ok(());
5137 }
5138
5139 let cur_offset: usize = (1 - 1) * envelope_size;
5142
5143 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5145
5146 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5151 self.channel_index.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5152 encoder,
5153 offset + cur_offset,
5154 depth,
5155 )?;
5156
5157 _prev_end_offset = cur_offset + envelope_size;
5158 if 2 > max_ordinal {
5159 return Ok(());
5160 }
5161
5162 let cur_offset: usize = (2 - 1) * envelope_size;
5165
5166 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5168
5169 fidl::encoding::encode_in_envelope_optional::<i32, D>(
5174 self.max_rssi.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
5175 encoder,
5176 offset + cur_offset,
5177 depth,
5178 )?;
5179
5180 _prev_end_offset = cur_offset + envelope_size;
5181 if 3 > max_ordinal {
5182 return Ok(());
5183 }
5184
5185 let cur_offset: usize = (3 - 1) * envelope_size;
5188
5189 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5191
5192 fidl::encoding::encode_in_envelope_optional::<i32, D>(
5197 self.min_rssi.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
5198 encoder,
5199 offset + cur_offset,
5200 depth,
5201 )?;
5202
5203 _prev_end_offset = cur_offset + envelope_size;
5204
5205 Ok(())
5206 }
5207 }
5208
5209 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnergyScanResult {
5210 #[inline(always)]
5211 fn new_empty() -> Self {
5212 Self::default()
5213 }
5214
5215 unsafe fn decode(
5216 &mut self,
5217 decoder: &mut fidl::encoding::Decoder<'_, D>,
5218 offset: usize,
5219 mut depth: fidl::encoding::Depth,
5220 ) -> fidl::Result<()> {
5221 decoder.debug_check_bounds::<Self>(offset);
5222 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5223 None => return Err(fidl::Error::NotNullable),
5224 Some(len) => len,
5225 };
5226 if len == 0 {
5228 return Ok(());
5229 };
5230 depth.increment()?;
5231 let envelope_size = 8;
5232 let bytes_len = len * envelope_size;
5233 let offset = decoder.out_of_line_offset(bytes_len)?;
5234 let mut _next_ordinal_to_read = 0;
5236 let mut next_offset = offset;
5237 let end_offset = offset + bytes_len;
5238 _next_ordinal_to_read += 1;
5239 if next_offset >= end_offset {
5240 return Ok(());
5241 }
5242
5243 while _next_ordinal_to_read < 1 {
5245 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5246 _next_ordinal_to_read += 1;
5247 next_offset += envelope_size;
5248 }
5249
5250 let next_out_of_line = decoder.next_out_of_line();
5251 let handles_before = decoder.remaining_handles();
5252 if let Some((inlined, num_bytes, num_handles)) =
5253 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5254 {
5255 let member_inline_size =
5256 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5257 if inlined != (member_inline_size <= 4) {
5258 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5259 }
5260 let inner_offset;
5261 let mut inner_depth = depth.clone();
5262 if inlined {
5263 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5264 inner_offset = next_offset;
5265 } else {
5266 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5267 inner_depth.increment()?;
5268 }
5269 let val_ref = self.channel_index.get_or_insert_with(|| fidl::new_empty!(u16, D));
5270 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5271 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5272 {
5273 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5274 }
5275 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5276 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5277 }
5278 }
5279
5280 next_offset += envelope_size;
5281 _next_ordinal_to_read += 1;
5282 if next_offset >= end_offset {
5283 return Ok(());
5284 }
5285
5286 while _next_ordinal_to_read < 2 {
5288 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5289 _next_ordinal_to_read += 1;
5290 next_offset += envelope_size;
5291 }
5292
5293 let next_out_of_line = decoder.next_out_of_line();
5294 let handles_before = decoder.remaining_handles();
5295 if let Some((inlined, num_bytes, num_handles)) =
5296 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5297 {
5298 let member_inline_size =
5299 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5300 if inlined != (member_inline_size <= 4) {
5301 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5302 }
5303 let inner_offset;
5304 let mut inner_depth = depth.clone();
5305 if inlined {
5306 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5307 inner_offset = next_offset;
5308 } else {
5309 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5310 inner_depth.increment()?;
5311 }
5312 let val_ref = self.max_rssi.get_or_insert_with(|| fidl::new_empty!(i32, D));
5313 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
5314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5315 {
5316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5317 }
5318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5320 }
5321 }
5322
5323 next_offset += envelope_size;
5324 _next_ordinal_to_read += 1;
5325 if next_offset >= end_offset {
5326 return Ok(());
5327 }
5328
5329 while _next_ordinal_to_read < 3 {
5331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5332 _next_ordinal_to_read += 1;
5333 next_offset += envelope_size;
5334 }
5335
5336 let next_out_of_line = decoder.next_out_of_line();
5337 let handles_before = decoder.remaining_handles();
5338 if let Some((inlined, num_bytes, num_handles)) =
5339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5340 {
5341 let member_inline_size =
5342 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5343 if inlined != (member_inline_size <= 4) {
5344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5345 }
5346 let inner_offset;
5347 let mut inner_depth = depth.clone();
5348 if inlined {
5349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5350 inner_offset = next_offset;
5351 } else {
5352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5353 inner_depth.increment()?;
5354 }
5355 let val_ref = self.min_rssi.get_or_insert_with(|| fidl::new_empty!(i32, D));
5356 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
5357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5358 {
5359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5360 }
5361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5363 }
5364 }
5365
5366 next_offset += envelope_size;
5367
5368 while next_offset < end_offset {
5370 _next_ordinal_to_read += 1;
5371 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5372 next_offset += envelope_size;
5373 }
5374
5375 Ok(())
5376 }
5377 }
5378
5379 impl Identity {
5380 #[inline(always)]
5381 fn max_ordinal_present(&self) -> u64 {
5382 if let Some(_) = self.xpanid {
5383 return 7;
5384 }
5385 if let Some(_) = self.mesh_local_prefix {
5386 return 6;
5387 }
5388 if let Some(_) = self.panid {
5389 return 5;
5390 }
5391 if let Some(_) = self.channel {
5392 return 4;
5393 }
5394 if let Some(_) = self.net_type {
5395 return 3;
5396 }
5397 if let Some(_) = self.raw_name {
5398 return 1;
5399 }
5400 0
5401 }
5402 }
5403
5404 impl fidl::encoding::ValueTypeMarker for Identity {
5405 type Borrowed<'a> = &'a Self;
5406 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5407 value
5408 }
5409 }
5410
5411 unsafe impl fidl::encoding::TypeMarker for Identity {
5412 type Owned = Self;
5413
5414 #[inline(always)]
5415 fn inline_align(_context: fidl::encoding::Context) -> usize {
5416 8
5417 }
5418
5419 #[inline(always)]
5420 fn inline_size(_context: fidl::encoding::Context) -> usize {
5421 16
5422 }
5423 }
5424
5425 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Identity, D> for &Identity {
5426 unsafe fn encode(
5427 self,
5428 encoder: &mut fidl::encoding::Encoder<'_, D>,
5429 offset: usize,
5430 mut depth: fidl::encoding::Depth,
5431 ) -> fidl::Result<()> {
5432 encoder.debug_check_bounds::<Identity>(offset);
5433 let max_ordinal: u64 = self.max_ordinal_present();
5435 encoder.write_num(max_ordinal, offset);
5436 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5437 if max_ordinal == 0 {
5439 return Ok(());
5440 }
5441 depth.increment()?;
5442 let envelope_size = 8;
5443 let bytes_len = max_ordinal as usize * envelope_size;
5444 #[allow(unused_variables)]
5445 let offset = encoder.out_of_line_offset(bytes_len);
5446 let mut _prev_end_offset: usize = 0;
5447 if 1 > max_ordinal {
5448 return Ok(());
5449 }
5450
5451 let cur_offset: usize = (1 - 1) * envelope_size;
5454
5455 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5457
5458 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 63>, D>(
5463 self.raw_name.as_ref().map(
5464 <fidl::encoding::Vector<u8, 63> as fidl::encoding::ValueTypeMarker>::borrow,
5465 ),
5466 encoder,
5467 offset + cur_offset,
5468 depth,
5469 )?;
5470
5471 _prev_end_offset = cur_offset + envelope_size;
5472 if 3 > max_ordinal {
5473 return Ok(());
5474 }
5475
5476 let cur_offset: usize = (3 - 1) * envelope_size;
5479
5480 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5482
5483 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
5488 self.net_type.as_ref().map(
5489 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
5490 ),
5491 encoder,
5492 offset + cur_offset,
5493 depth,
5494 )?;
5495
5496 _prev_end_offset = cur_offset + envelope_size;
5497 if 4 > max_ordinal {
5498 return Ok(());
5499 }
5500
5501 let cur_offset: usize = (4 - 1) * envelope_size;
5504
5505 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5507
5508 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5513 self.channel.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5514 encoder,
5515 offset + cur_offset,
5516 depth,
5517 )?;
5518
5519 _prev_end_offset = cur_offset + envelope_size;
5520 if 5 > max_ordinal {
5521 return Ok(());
5522 }
5523
5524 let cur_offset: usize = (5 - 1) * envelope_size;
5527
5528 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5530
5531 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5536 self.panid.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5537 encoder,
5538 offset + cur_offset,
5539 depth,
5540 )?;
5541
5542 _prev_end_offset = cur_offset + envelope_size;
5543 if 6 > max_ordinal {
5544 return Ok(());
5545 }
5546
5547 let cur_offset: usize = (6 - 1) * envelope_size;
5550
5551 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5553
5554 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net__common::Ipv6AddressWithPrefix, D>(
5559 self.mesh_local_prefix.as_ref().map(<fidl_fuchsia_net__common::Ipv6AddressWithPrefix as fidl::encoding::ValueTypeMarker>::borrow),
5560 encoder, offset + cur_offset, depth
5561 )?;
5562
5563 _prev_end_offset = cur_offset + envelope_size;
5564 if 7 > max_ordinal {
5565 return Ok(());
5566 }
5567
5568 let cur_offset: usize = (7 - 1) * envelope_size;
5571
5572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5574
5575 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 8>, D>(
5580 self.xpanid
5581 .as_ref()
5582 .map(<fidl::encoding::Array<u8, 8> as fidl::encoding::ValueTypeMarker>::borrow),
5583 encoder,
5584 offset + cur_offset,
5585 depth,
5586 )?;
5587
5588 _prev_end_offset = cur_offset + envelope_size;
5589
5590 Ok(())
5591 }
5592 }
5593
5594 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Identity {
5595 #[inline(always)]
5596 fn new_empty() -> Self {
5597 Self::default()
5598 }
5599
5600 unsafe fn decode(
5601 &mut self,
5602 decoder: &mut fidl::encoding::Decoder<'_, D>,
5603 offset: usize,
5604 mut depth: fidl::encoding::Depth,
5605 ) -> fidl::Result<()> {
5606 decoder.debug_check_bounds::<Self>(offset);
5607 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5608 None => return Err(fidl::Error::NotNullable),
5609 Some(len) => len,
5610 };
5611 if len == 0 {
5613 return Ok(());
5614 };
5615 depth.increment()?;
5616 let envelope_size = 8;
5617 let bytes_len = len * envelope_size;
5618 let offset = decoder.out_of_line_offset(bytes_len)?;
5619 let mut _next_ordinal_to_read = 0;
5621 let mut next_offset = offset;
5622 let end_offset = offset + bytes_len;
5623 _next_ordinal_to_read += 1;
5624 if next_offset >= end_offset {
5625 return Ok(());
5626 }
5627
5628 while _next_ordinal_to_read < 1 {
5630 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5631 _next_ordinal_to_read += 1;
5632 next_offset += envelope_size;
5633 }
5634
5635 let next_out_of_line = decoder.next_out_of_line();
5636 let handles_before = decoder.remaining_handles();
5637 if let Some((inlined, num_bytes, num_handles)) =
5638 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5639 {
5640 let member_inline_size =
5641 <fidl::encoding::Vector<u8, 63> as fidl::encoding::TypeMarker>::inline_size(
5642 decoder.context,
5643 );
5644 if inlined != (member_inline_size <= 4) {
5645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5646 }
5647 let inner_offset;
5648 let mut inner_depth = depth.clone();
5649 if inlined {
5650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5651 inner_offset = next_offset;
5652 } else {
5653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5654 inner_depth.increment()?;
5655 }
5656 let val_ref = self
5657 .raw_name
5658 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 63>, D));
5659 fidl::decode!(fidl::encoding::Vector<u8, 63>, D, val_ref, decoder, inner_offset, inner_depth)?;
5660 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5661 {
5662 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5663 }
5664 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5665 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5666 }
5667 }
5668
5669 next_offset += envelope_size;
5670 _next_ordinal_to_read += 1;
5671 if next_offset >= end_offset {
5672 return Ok(());
5673 }
5674
5675 while _next_ordinal_to_read < 3 {
5677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5678 _next_ordinal_to_read += 1;
5679 next_offset += envelope_size;
5680 }
5681
5682 let next_out_of_line = decoder.next_out_of_line();
5683 let handles_before = decoder.remaining_handles();
5684 if let Some((inlined, num_bytes, num_handles)) =
5685 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5686 {
5687 let member_inline_size =
5688 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
5689 decoder.context,
5690 );
5691 if inlined != (member_inline_size <= 4) {
5692 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5693 }
5694 let inner_offset;
5695 let mut inner_depth = depth.clone();
5696 if inlined {
5697 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5698 inner_offset = next_offset;
5699 } else {
5700 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5701 inner_depth.increment()?;
5702 }
5703 let val_ref = self
5704 .net_type
5705 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
5706 fidl::decode!(
5707 fidl::encoding::BoundedString<64>,
5708 D,
5709 val_ref,
5710 decoder,
5711 inner_offset,
5712 inner_depth
5713 )?;
5714 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5715 {
5716 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5717 }
5718 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5719 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5720 }
5721 }
5722
5723 next_offset += envelope_size;
5724 _next_ordinal_to_read += 1;
5725 if next_offset >= end_offset {
5726 return Ok(());
5727 }
5728
5729 while _next_ordinal_to_read < 4 {
5731 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5732 _next_ordinal_to_read += 1;
5733 next_offset += envelope_size;
5734 }
5735
5736 let next_out_of_line = decoder.next_out_of_line();
5737 let handles_before = decoder.remaining_handles();
5738 if let Some((inlined, num_bytes, num_handles)) =
5739 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5740 {
5741 let member_inline_size =
5742 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5743 if inlined != (member_inline_size <= 4) {
5744 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5745 }
5746 let inner_offset;
5747 let mut inner_depth = depth.clone();
5748 if inlined {
5749 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5750 inner_offset = next_offset;
5751 } else {
5752 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5753 inner_depth.increment()?;
5754 }
5755 let val_ref = self.channel.get_or_insert_with(|| fidl::new_empty!(u16, D));
5756 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5757 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5758 {
5759 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5760 }
5761 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5762 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5763 }
5764 }
5765
5766 next_offset += envelope_size;
5767 _next_ordinal_to_read += 1;
5768 if next_offset >= end_offset {
5769 return Ok(());
5770 }
5771
5772 while _next_ordinal_to_read < 5 {
5774 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5775 _next_ordinal_to_read += 1;
5776 next_offset += envelope_size;
5777 }
5778
5779 let next_out_of_line = decoder.next_out_of_line();
5780 let handles_before = decoder.remaining_handles();
5781 if let Some((inlined, num_bytes, num_handles)) =
5782 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5783 {
5784 let member_inline_size =
5785 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5786 if inlined != (member_inline_size <= 4) {
5787 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5788 }
5789 let inner_offset;
5790 let mut inner_depth = depth.clone();
5791 if inlined {
5792 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5793 inner_offset = next_offset;
5794 } else {
5795 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5796 inner_depth.increment()?;
5797 }
5798 let val_ref = self.panid.get_or_insert_with(|| fidl::new_empty!(u16, D));
5799 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5800 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5801 {
5802 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5803 }
5804 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5805 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5806 }
5807 }
5808
5809 next_offset += envelope_size;
5810 _next_ordinal_to_read += 1;
5811 if next_offset >= end_offset {
5812 return Ok(());
5813 }
5814
5815 while _next_ordinal_to_read < 6 {
5817 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5818 _next_ordinal_to_read += 1;
5819 next_offset += envelope_size;
5820 }
5821
5822 let next_out_of_line = decoder.next_out_of_line();
5823 let handles_before = decoder.remaining_handles();
5824 if let Some((inlined, num_bytes, num_handles)) =
5825 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5826 {
5827 let member_inline_size = <fidl_fuchsia_net__common::Ipv6AddressWithPrefix as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5828 if inlined != (member_inline_size <= 4) {
5829 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5830 }
5831 let inner_offset;
5832 let mut inner_depth = depth.clone();
5833 if inlined {
5834 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5835 inner_offset = next_offset;
5836 } else {
5837 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5838 inner_depth.increment()?;
5839 }
5840 let val_ref = self.mesh_local_prefix.get_or_insert_with(|| {
5841 fidl::new_empty!(fidl_fuchsia_net__common::Ipv6AddressWithPrefix, D)
5842 });
5843 fidl::decode!(
5844 fidl_fuchsia_net__common::Ipv6AddressWithPrefix,
5845 D,
5846 val_ref,
5847 decoder,
5848 inner_offset,
5849 inner_depth
5850 )?;
5851 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5852 {
5853 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5854 }
5855 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5856 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5857 }
5858 }
5859
5860 next_offset += envelope_size;
5861 _next_ordinal_to_read += 1;
5862 if next_offset >= end_offset {
5863 return Ok(());
5864 }
5865
5866 while _next_ordinal_to_read < 7 {
5868 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5869 _next_ordinal_to_read += 1;
5870 next_offset += envelope_size;
5871 }
5872
5873 let next_out_of_line = decoder.next_out_of_line();
5874 let handles_before = decoder.remaining_handles();
5875 if let Some((inlined, num_bytes, num_handles)) =
5876 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5877 {
5878 let member_inline_size =
5879 <fidl::encoding::Array<u8, 8> as fidl::encoding::TypeMarker>::inline_size(
5880 decoder.context,
5881 );
5882 if inlined != (member_inline_size <= 4) {
5883 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5884 }
5885 let inner_offset;
5886 let mut inner_depth = depth.clone();
5887 if inlined {
5888 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5889 inner_offset = next_offset;
5890 } else {
5891 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5892 inner_depth.increment()?;
5893 }
5894 let val_ref = self
5895 .xpanid
5896 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 8>, D));
5897 fidl::decode!(fidl::encoding::Array<u8, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
5898 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5899 {
5900 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5901 }
5902 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5903 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5904 }
5905 }
5906
5907 next_offset += envelope_size;
5908
5909 while next_offset < end_offset {
5911 _next_ordinal_to_read += 1;
5912 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5913 next_offset += envelope_size;
5914 }
5915
5916 Ok(())
5917 }
5918 }
5919
5920 impl IpCounters {
5921 #[inline(always)]
5922 fn max_ordinal_present(&self) -> u64 {
5923 if let Some(_) = self.failure {
5924 return 2;
5925 }
5926 if let Some(_) = self.success {
5927 return 1;
5928 }
5929 0
5930 }
5931 }
5932
5933 impl fidl::encoding::ValueTypeMarker for IpCounters {
5934 type Borrowed<'a> = &'a Self;
5935 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5936 value
5937 }
5938 }
5939
5940 unsafe impl fidl::encoding::TypeMarker for IpCounters {
5941 type Owned = Self;
5942
5943 #[inline(always)]
5944 fn inline_align(_context: fidl::encoding::Context) -> usize {
5945 8
5946 }
5947
5948 #[inline(always)]
5949 fn inline_size(_context: fidl::encoding::Context) -> usize {
5950 16
5951 }
5952 }
5953
5954 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<IpCounters, D>
5955 for &IpCounters
5956 {
5957 unsafe fn encode(
5958 self,
5959 encoder: &mut fidl::encoding::Encoder<'_, D>,
5960 offset: usize,
5961 mut depth: fidl::encoding::Depth,
5962 ) -> fidl::Result<()> {
5963 encoder.debug_check_bounds::<IpCounters>(offset);
5964 let max_ordinal: u64 = self.max_ordinal_present();
5966 encoder.write_num(max_ordinal, offset);
5967 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5968 if max_ordinal == 0 {
5970 return Ok(());
5971 }
5972 depth.increment()?;
5973 let envelope_size = 8;
5974 let bytes_len = max_ordinal as usize * envelope_size;
5975 #[allow(unused_variables)]
5976 let offset = encoder.out_of_line_offset(bytes_len);
5977 let mut _prev_end_offset: usize = 0;
5978 if 1 > max_ordinal {
5979 return Ok(());
5980 }
5981
5982 let cur_offset: usize = (1 - 1) * envelope_size;
5985
5986 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5988
5989 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5994 self.success.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5995 encoder,
5996 offset + cur_offset,
5997 depth,
5998 )?;
5999
6000 _prev_end_offset = cur_offset + envelope_size;
6001 if 2 > max_ordinal {
6002 return Ok(());
6003 }
6004
6005 let cur_offset: usize = (2 - 1) * envelope_size;
6008
6009 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6011
6012 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6017 self.failure.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6018 encoder,
6019 offset + cur_offset,
6020 depth,
6021 )?;
6022
6023 _prev_end_offset = cur_offset + envelope_size;
6024
6025 Ok(())
6026 }
6027 }
6028
6029 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IpCounters {
6030 #[inline(always)]
6031 fn new_empty() -> Self {
6032 Self::default()
6033 }
6034
6035 unsafe fn decode(
6036 &mut self,
6037 decoder: &mut fidl::encoding::Decoder<'_, D>,
6038 offset: usize,
6039 mut depth: fidl::encoding::Depth,
6040 ) -> fidl::Result<()> {
6041 decoder.debug_check_bounds::<Self>(offset);
6042 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6043 None => return Err(fidl::Error::NotNullable),
6044 Some(len) => len,
6045 };
6046 if len == 0 {
6048 return Ok(());
6049 };
6050 depth.increment()?;
6051 let envelope_size = 8;
6052 let bytes_len = len * envelope_size;
6053 let offset = decoder.out_of_line_offset(bytes_len)?;
6054 let mut _next_ordinal_to_read = 0;
6056 let mut next_offset = offset;
6057 let end_offset = offset + bytes_len;
6058 _next_ordinal_to_read += 1;
6059 if next_offset >= end_offset {
6060 return Ok(());
6061 }
6062
6063 while _next_ordinal_to_read < 1 {
6065 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6066 _next_ordinal_to_read += 1;
6067 next_offset += envelope_size;
6068 }
6069
6070 let next_out_of_line = decoder.next_out_of_line();
6071 let handles_before = decoder.remaining_handles();
6072 if let Some((inlined, num_bytes, num_handles)) =
6073 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6074 {
6075 let member_inline_size =
6076 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6077 if inlined != (member_inline_size <= 4) {
6078 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6079 }
6080 let inner_offset;
6081 let mut inner_depth = depth.clone();
6082 if inlined {
6083 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6084 inner_offset = next_offset;
6085 } else {
6086 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6087 inner_depth.increment()?;
6088 }
6089 let val_ref = self.success.get_or_insert_with(|| fidl::new_empty!(u32, D));
6090 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6091 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6092 {
6093 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6094 }
6095 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6096 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6097 }
6098 }
6099
6100 next_offset += envelope_size;
6101 _next_ordinal_to_read += 1;
6102 if next_offset >= end_offset {
6103 return Ok(());
6104 }
6105
6106 while _next_ordinal_to_read < 2 {
6108 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6109 _next_ordinal_to_read += 1;
6110 next_offset += envelope_size;
6111 }
6112
6113 let next_out_of_line = decoder.next_out_of_line();
6114 let handles_before = decoder.remaining_handles();
6115 if let Some((inlined, num_bytes, num_handles)) =
6116 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6117 {
6118 let member_inline_size =
6119 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6120 if inlined != (member_inline_size <= 4) {
6121 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6122 }
6123 let inner_offset;
6124 let mut inner_depth = depth.clone();
6125 if inlined {
6126 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6127 inner_offset = next_offset;
6128 } else {
6129 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6130 inner_depth.increment()?;
6131 }
6132 let val_ref = self.failure.get_or_insert_with(|| fidl::new_empty!(u32, D));
6133 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6134 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6135 {
6136 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6137 }
6138 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6139 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6140 }
6141 }
6142
6143 next_offset += envelope_size;
6144
6145 while next_offset < end_offset {
6147 _next_ordinal_to_read += 1;
6148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6149 next_offset += envelope_size;
6150 }
6151
6152 Ok(())
6153 }
6154 }
6155
6156 impl MacCounters {
6157 #[inline(always)]
6158 fn max_ordinal_present(&self) -> u64 {
6159 if let Some(_) = self.err_other {
6160 return 26;
6161 }
6162 if let Some(_) = self.err_busy_channel {
6163 return 25;
6164 }
6165 if let Some(_) = self.err_abort {
6166 return 24;
6167 }
6168 if let Some(_) = self.err_cca {
6169 return 23;
6170 }
6171 if let Some(_) = self.err_fcs {
6172 return 22;
6173 }
6174 if let Some(_) = self.err_sec {
6175 return 21;
6176 }
6177 if let Some(_) = self.err_invalid_src_addr {
6178 return 20;
6179 }
6180 if let Some(_) = self.err_unknown_neighbor {
6181 return 19;
6182 }
6183 if let Some(_) = self.err_no_frame {
6184 return 18;
6185 }
6186 if let Some(_) = self.duplicated {
6187 return 17;
6188 }
6189 if let Some(_) = self.dest_addr_filtered {
6190 return 16;
6191 }
6192 if let Some(_) = self.indirect_max_retry_expiry {
6193 return 15;
6194 }
6195 if let Some(_) = self.direct_max_retry_expiry {
6196 return 14;
6197 }
6198 if let Some(_) = self.retries {
6199 return 13;
6200 }
6201 if let Some(_) = self.address_filtered {
6202 return 12;
6203 }
6204 if let Some(_) = self.other {
6205 return 11;
6206 }
6207 if let Some(_) = self.beacon_request {
6208 return 10;
6209 }
6210 if let Some(_) = self.beacon {
6211 return 9;
6212 }
6213 if let Some(_) = self.data_poll {
6214 return 8;
6215 }
6216 if let Some(_) = self.data {
6217 return 7;
6218 }
6219 if let Some(_) = self.no_ack_requested {
6220 return 6;
6221 }
6222 if let Some(_) = self.acked {
6223 return 5;
6224 }
6225 if let Some(_) = self.ack_requested {
6226 return 4;
6227 }
6228 if let Some(_) = self.broadcast {
6229 return 3;
6230 }
6231 if let Some(_) = self.unicast {
6232 return 2;
6233 }
6234 if let Some(_) = self.total {
6235 return 1;
6236 }
6237 0
6238 }
6239 }
6240
6241 impl fidl::encoding::ValueTypeMarker for MacCounters {
6242 type Borrowed<'a> = &'a Self;
6243 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6244 value
6245 }
6246 }
6247
6248 unsafe impl fidl::encoding::TypeMarker for MacCounters {
6249 type Owned = Self;
6250
6251 #[inline(always)]
6252 fn inline_align(_context: fidl::encoding::Context) -> usize {
6253 8
6254 }
6255
6256 #[inline(always)]
6257 fn inline_size(_context: fidl::encoding::Context) -> usize {
6258 16
6259 }
6260 }
6261
6262 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MacCounters, D>
6263 for &MacCounters
6264 {
6265 unsafe fn encode(
6266 self,
6267 encoder: &mut fidl::encoding::Encoder<'_, D>,
6268 offset: usize,
6269 mut depth: fidl::encoding::Depth,
6270 ) -> fidl::Result<()> {
6271 encoder.debug_check_bounds::<MacCounters>(offset);
6272 let max_ordinal: u64 = self.max_ordinal_present();
6274 encoder.write_num(max_ordinal, offset);
6275 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6276 if max_ordinal == 0 {
6278 return Ok(());
6279 }
6280 depth.increment()?;
6281 let envelope_size = 8;
6282 let bytes_len = max_ordinal as usize * envelope_size;
6283 #[allow(unused_variables)]
6284 let offset = encoder.out_of_line_offset(bytes_len);
6285 let mut _prev_end_offset: usize = 0;
6286 if 1 > max_ordinal {
6287 return Ok(());
6288 }
6289
6290 let cur_offset: usize = (1 - 1) * envelope_size;
6293
6294 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6296
6297 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6302 self.total.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6303 encoder,
6304 offset + cur_offset,
6305 depth,
6306 )?;
6307
6308 _prev_end_offset = cur_offset + envelope_size;
6309 if 2 > max_ordinal {
6310 return Ok(());
6311 }
6312
6313 let cur_offset: usize = (2 - 1) * envelope_size;
6316
6317 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6319
6320 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6325 self.unicast.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6326 encoder,
6327 offset + cur_offset,
6328 depth,
6329 )?;
6330
6331 _prev_end_offset = cur_offset + envelope_size;
6332 if 3 > max_ordinal {
6333 return Ok(());
6334 }
6335
6336 let cur_offset: usize = (3 - 1) * envelope_size;
6339
6340 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6342
6343 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6348 self.broadcast.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6349 encoder,
6350 offset + cur_offset,
6351 depth,
6352 )?;
6353
6354 _prev_end_offset = cur_offset + envelope_size;
6355 if 4 > max_ordinal {
6356 return Ok(());
6357 }
6358
6359 let cur_offset: usize = (4 - 1) * envelope_size;
6362
6363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6365
6366 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6371 self.ack_requested.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6372 encoder,
6373 offset + cur_offset,
6374 depth,
6375 )?;
6376
6377 _prev_end_offset = cur_offset + envelope_size;
6378 if 5 > max_ordinal {
6379 return Ok(());
6380 }
6381
6382 let cur_offset: usize = (5 - 1) * envelope_size;
6385
6386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6388
6389 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6394 self.acked.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6395 encoder,
6396 offset + cur_offset,
6397 depth,
6398 )?;
6399
6400 _prev_end_offset = cur_offset + envelope_size;
6401 if 6 > max_ordinal {
6402 return Ok(());
6403 }
6404
6405 let cur_offset: usize = (6 - 1) * envelope_size;
6408
6409 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6411
6412 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6417 self.no_ack_requested
6418 .as_ref()
6419 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6420 encoder,
6421 offset + cur_offset,
6422 depth,
6423 )?;
6424
6425 _prev_end_offset = cur_offset + envelope_size;
6426 if 7 > max_ordinal {
6427 return Ok(());
6428 }
6429
6430 let cur_offset: usize = (7 - 1) * envelope_size;
6433
6434 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6436
6437 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6442 self.data.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6443 encoder,
6444 offset + cur_offset,
6445 depth,
6446 )?;
6447
6448 _prev_end_offset = cur_offset + envelope_size;
6449 if 8 > max_ordinal {
6450 return Ok(());
6451 }
6452
6453 let cur_offset: usize = (8 - 1) * envelope_size;
6456
6457 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6459
6460 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6465 self.data_poll.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6466 encoder,
6467 offset + cur_offset,
6468 depth,
6469 )?;
6470
6471 _prev_end_offset = cur_offset + envelope_size;
6472 if 9 > max_ordinal {
6473 return Ok(());
6474 }
6475
6476 let cur_offset: usize = (9 - 1) * envelope_size;
6479
6480 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6482
6483 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6488 self.beacon.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6489 encoder,
6490 offset + cur_offset,
6491 depth,
6492 )?;
6493
6494 _prev_end_offset = cur_offset + envelope_size;
6495 if 10 > max_ordinal {
6496 return Ok(());
6497 }
6498
6499 let cur_offset: usize = (10 - 1) * envelope_size;
6502
6503 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6505
6506 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6511 self.beacon_request.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6512 encoder,
6513 offset + cur_offset,
6514 depth,
6515 )?;
6516
6517 _prev_end_offset = cur_offset + envelope_size;
6518 if 11 > max_ordinal {
6519 return Ok(());
6520 }
6521
6522 let cur_offset: usize = (11 - 1) * envelope_size;
6525
6526 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6528
6529 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6534 self.other.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6535 encoder,
6536 offset + cur_offset,
6537 depth,
6538 )?;
6539
6540 _prev_end_offset = cur_offset + envelope_size;
6541 if 12 > max_ordinal {
6542 return Ok(());
6543 }
6544
6545 let cur_offset: usize = (12 - 1) * envelope_size;
6548
6549 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6551
6552 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6557 self.address_filtered
6558 .as_ref()
6559 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6560 encoder,
6561 offset + cur_offset,
6562 depth,
6563 )?;
6564
6565 _prev_end_offset = cur_offset + envelope_size;
6566 if 13 > max_ordinal {
6567 return Ok(());
6568 }
6569
6570 let cur_offset: usize = (13 - 1) * envelope_size;
6573
6574 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6576
6577 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6582 self.retries.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6583 encoder,
6584 offset + cur_offset,
6585 depth,
6586 )?;
6587
6588 _prev_end_offset = cur_offset + envelope_size;
6589 if 14 > max_ordinal {
6590 return Ok(());
6591 }
6592
6593 let cur_offset: usize = (14 - 1) * envelope_size;
6596
6597 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6599
6600 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6605 self.direct_max_retry_expiry
6606 .as_ref()
6607 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6608 encoder,
6609 offset + cur_offset,
6610 depth,
6611 )?;
6612
6613 _prev_end_offset = cur_offset + envelope_size;
6614 if 15 > max_ordinal {
6615 return Ok(());
6616 }
6617
6618 let cur_offset: usize = (15 - 1) * envelope_size;
6621
6622 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6624
6625 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6630 self.indirect_max_retry_expiry
6631 .as_ref()
6632 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6633 encoder,
6634 offset + cur_offset,
6635 depth,
6636 )?;
6637
6638 _prev_end_offset = cur_offset + envelope_size;
6639 if 16 > max_ordinal {
6640 return Ok(());
6641 }
6642
6643 let cur_offset: usize = (16 - 1) * envelope_size;
6646
6647 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6649
6650 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6655 self.dest_addr_filtered
6656 .as_ref()
6657 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6658 encoder,
6659 offset + cur_offset,
6660 depth,
6661 )?;
6662
6663 _prev_end_offset = cur_offset + envelope_size;
6664 if 17 > max_ordinal {
6665 return Ok(());
6666 }
6667
6668 let cur_offset: usize = (17 - 1) * envelope_size;
6671
6672 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6674
6675 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6680 self.duplicated.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6681 encoder,
6682 offset + cur_offset,
6683 depth,
6684 )?;
6685
6686 _prev_end_offset = cur_offset + envelope_size;
6687 if 18 > max_ordinal {
6688 return Ok(());
6689 }
6690
6691 let cur_offset: usize = (18 - 1) * envelope_size;
6694
6695 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6697
6698 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6703 self.err_no_frame.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6704 encoder,
6705 offset + cur_offset,
6706 depth,
6707 )?;
6708
6709 _prev_end_offset = cur_offset + envelope_size;
6710 if 19 > max_ordinal {
6711 return Ok(());
6712 }
6713
6714 let cur_offset: usize = (19 - 1) * envelope_size;
6717
6718 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6720
6721 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6726 self.err_unknown_neighbor
6727 .as_ref()
6728 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6729 encoder,
6730 offset + cur_offset,
6731 depth,
6732 )?;
6733
6734 _prev_end_offset = cur_offset + envelope_size;
6735 if 20 > max_ordinal {
6736 return Ok(());
6737 }
6738
6739 let cur_offset: usize = (20 - 1) * envelope_size;
6742
6743 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6745
6746 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6751 self.err_invalid_src_addr
6752 .as_ref()
6753 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6754 encoder,
6755 offset + cur_offset,
6756 depth,
6757 )?;
6758
6759 _prev_end_offset = cur_offset + envelope_size;
6760 if 21 > max_ordinal {
6761 return Ok(());
6762 }
6763
6764 let cur_offset: usize = (21 - 1) * envelope_size;
6767
6768 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6770
6771 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6776 self.err_sec.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6777 encoder,
6778 offset + cur_offset,
6779 depth,
6780 )?;
6781
6782 _prev_end_offset = cur_offset + envelope_size;
6783 if 22 > max_ordinal {
6784 return Ok(());
6785 }
6786
6787 let cur_offset: usize = (22 - 1) * envelope_size;
6790
6791 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6793
6794 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6799 self.err_fcs.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6800 encoder,
6801 offset + cur_offset,
6802 depth,
6803 )?;
6804
6805 _prev_end_offset = cur_offset + envelope_size;
6806 if 23 > max_ordinal {
6807 return Ok(());
6808 }
6809
6810 let cur_offset: usize = (23 - 1) * envelope_size;
6813
6814 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6816
6817 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6822 self.err_cca.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6823 encoder,
6824 offset + cur_offset,
6825 depth,
6826 )?;
6827
6828 _prev_end_offset = cur_offset + envelope_size;
6829 if 24 > max_ordinal {
6830 return Ok(());
6831 }
6832
6833 let cur_offset: usize = (24 - 1) * envelope_size;
6836
6837 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6839
6840 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6845 self.err_abort.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6846 encoder,
6847 offset + cur_offset,
6848 depth,
6849 )?;
6850
6851 _prev_end_offset = cur_offset + envelope_size;
6852 if 25 > max_ordinal {
6853 return Ok(());
6854 }
6855
6856 let cur_offset: usize = (25 - 1) * envelope_size;
6859
6860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6862
6863 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6868 self.err_busy_channel
6869 .as_ref()
6870 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6871 encoder,
6872 offset + cur_offset,
6873 depth,
6874 )?;
6875
6876 _prev_end_offset = cur_offset + envelope_size;
6877 if 26 > max_ordinal {
6878 return Ok(());
6879 }
6880
6881 let cur_offset: usize = (26 - 1) * envelope_size;
6884
6885 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6887
6888 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6893 self.err_other.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6894 encoder,
6895 offset + cur_offset,
6896 depth,
6897 )?;
6898
6899 _prev_end_offset = cur_offset + envelope_size;
6900
6901 Ok(())
6902 }
6903 }
6904
6905 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MacCounters {
6906 #[inline(always)]
6907 fn new_empty() -> Self {
6908 Self::default()
6909 }
6910
6911 unsafe fn decode(
6912 &mut self,
6913 decoder: &mut fidl::encoding::Decoder<'_, D>,
6914 offset: usize,
6915 mut depth: fidl::encoding::Depth,
6916 ) -> fidl::Result<()> {
6917 decoder.debug_check_bounds::<Self>(offset);
6918 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6919 None => return Err(fidl::Error::NotNullable),
6920 Some(len) => len,
6921 };
6922 if len == 0 {
6924 return Ok(());
6925 };
6926 depth.increment()?;
6927 let envelope_size = 8;
6928 let bytes_len = len * envelope_size;
6929 let offset = decoder.out_of_line_offset(bytes_len)?;
6930 let mut _next_ordinal_to_read = 0;
6932 let mut next_offset = offset;
6933 let end_offset = offset + bytes_len;
6934 _next_ordinal_to_read += 1;
6935 if next_offset >= end_offset {
6936 return Ok(());
6937 }
6938
6939 while _next_ordinal_to_read < 1 {
6941 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6942 _next_ordinal_to_read += 1;
6943 next_offset += envelope_size;
6944 }
6945
6946 let next_out_of_line = decoder.next_out_of_line();
6947 let handles_before = decoder.remaining_handles();
6948 if let Some((inlined, num_bytes, num_handles)) =
6949 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6950 {
6951 let member_inline_size =
6952 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6953 if inlined != (member_inline_size <= 4) {
6954 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6955 }
6956 let inner_offset;
6957 let mut inner_depth = depth.clone();
6958 if inlined {
6959 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6960 inner_offset = next_offset;
6961 } else {
6962 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6963 inner_depth.increment()?;
6964 }
6965 let val_ref = self.total.get_or_insert_with(|| fidl::new_empty!(u32, D));
6966 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6967 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6968 {
6969 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6970 }
6971 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6972 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6973 }
6974 }
6975
6976 next_offset += envelope_size;
6977 _next_ordinal_to_read += 1;
6978 if next_offset >= end_offset {
6979 return Ok(());
6980 }
6981
6982 while _next_ordinal_to_read < 2 {
6984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6985 _next_ordinal_to_read += 1;
6986 next_offset += envelope_size;
6987 }
6988
6989 let next_out_of_line = decoder.next_out_of_line();
6990 let handles_before = decoder.remaining_handles();
6991 if let Some((inlined, num_bytes, num_handles)) =
6992 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6993 {
6994 let member_inline_size =
6995 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6996 if inlined != (member_inline_size <= 4) {
6997 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6998 }
6999 let inner_offset;
7000 let mut inner_depth = depth.clone();
7001 if inlined {
7002 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7003 inner_offset = next_offset;
7004 } else {
7005 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7006 inner_depth.increment()?;
7007 }
7008 let val_ref = self.unicast.get_or_insert_with(|| fidl::new_empty!(u32, D));
7009 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7010 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7011 {
7012 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7013 }
7014 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7015 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7016 }
7017 }
7018
7019 next_offset += envelope_size;
7020 _next_ordinal_to_read += 1;
7021 if next_offset >= end_offset {
7022 return Ok(());
7023 }
7024
7025 while _next_ordinal_to_read < 3 {
7027 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7028 _next_ordinal_to_read += 1;
7029 next_offset += envelope_size;
7030 }
7031
7032 let next_out_of_line = decoder.next_out_of_line();
7033 let handles_before = decoder.remaining_handles();
7034 if let Some((inlined, num_bytes, num_handles)) =
7035 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7036 {
7037 let member_inline_size =
7038 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7039 if inlined != (member_inline_size <= 4) {
7040 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7041 }
7042 let inner_offset;
7043 let mut inner_depth = depth.clone();
7044 if inlined {
7045 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7046 inner_offset = next_offset;
7047 } else {
7048 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7049 inner_depth.increment()?;
7050 }
7051 let val_ref = self.broadcast.get_or_insert_with(|| fidl::new_empty!(u32, D));
7052 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7054 {
7055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7056 }
7057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7059 }
7060 }
7061
7062 next_offset += envelope_size;
7063 _next_ordinal_to_read += 1;
7064 if next_offset >= end_offset {
7065 return Ok(());
7066 }
7067
7068 while _next_ordinal_to_read < 4 {
7070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7071 _next_ordinal_to_read += 1;
7072 next_offset += envelope_size;
7073 }
7074
7075 let next_out_of_line = decoder.next_out_of_line();
7076 let handles_before = decoder.remaining_handles();
7077 if let Some((inlined, num_bytes, num_handles)) =
7078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7079 {
7080 let member_inline_size =
7081 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7082 if inlined != (member_inline_size <= 4) {
7083 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7084 }
7085 let inner_offset;
7086 let mut inner_depth = depth.clone();
7087 if inlined {
7088 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7089 inner_offset = next_offset;
7090 } else {
7091 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7092 inner_depth.increment()?;
7093 }
7094 let val_ref = self.ack_requested.get_or_insert_with(|| fidl::new_empty!(u32, D));
7095 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7096 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7097 {
7098 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7099 }
7100 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7101 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7102 }
7103 }
7104
7105 next_offset += envelope_size;
7106 _next_ordinal_to_read += 1;
7107 if next_offset >= end_offset {
7108 return Ok(());
7109 }
7110
7111 while _next_ordinal_to_read < 5 {
7113 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7114 _next_ordinal_to_read += 1;
7115 next_offset += envelope_size;
7116 }
7117
7118 let next_out_of_line = decoder.next_out_of_line();
7119 let handles_before = decoder.remaining_handles();
7120 if let Some((inlined, num_bytes, num_handles)) =
7121 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7122 {
7123 let member_inline_size =
7124 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7125 if inlined != (member_inline_size <= 4) {
7126 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7127 }
7128 let inner_offset;
7129 let mut inner_depth = depth.clone();
7130 if inlined {
7131 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7132 inner_offset = next_offset;
7133 } else {
7134 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7135 inner_depth.increment()?;
7136 }
7137 let val_ref = self.acked.get_or_insert_with(|| fidl::new_empty!(u32, D));
7138 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7140 {
7141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7142 }
7143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7145 }
7146 }
7147
7148 next_offset += envelope_size;
7149 _next_ordinal_to_read += 1;
7150 if next_offset >= end_offset {
7151 return Ok(());
7152 }
7153
7154 while _next_ordinal_to_read < 6 {
7156 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7157 _next_ordinal_to_read += 1;
7158 next_offset += envelope_size;
7159 }
7160
7161 let next_out_of_line = decoder.next_out_of_line();
7162 let handles_before = decoder.remaining_handles();
7163 if let Some((inlined, num_bytes, num_handles)) =
7164 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7165 {
7166 let member_inline_size =
7167 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7168 if inlined != (member_inline_size <= 4) {
7169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7170 }
7171 let inner_offset;
7172 let mut inner_depth = depth.clone();
7173 if inlined {
7174 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7175 inner_offset = next_offset;
7176 } else {
7177 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7178 inner_depth.increment()?;
7179 }
7180 let val_ref = self.no_ack_requested.get_or_insert_with(|| fidl::new_empty!(u32, D));
7181 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7182 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7183 {
7184 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7185 }
7186 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7187 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7188 }
7189 }
7190
7191 next_offset += envelope_size;
7192 _next_ordinal_to_read += 1;
7193 if next_offset >= end_offset {
7194 return Ok(());
7195 }
7196
7197 while _next_ordinal_to_read < 7 {
7199 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7200 _next_ordinal_to_read += 1;
7201 next_offset += envelope_size;
7202 }
7203
7204 let next_out_of_line = decoder.next_out_of_line();
7205 let handles_before = decoder.remaining_handles();
7206 if let Some((inlined, num_bytes, num_handles)) =
7207 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7208 {
7209 let member_inline_size =
7210 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7211 if inlined != (member_inline_size <= 4) {
7212 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7213 }
7214 let inner_offset;
7215 let mut inner_depth = depth.clone();
7216 if inlined {
7217 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7218 inner_offset = next_offset;
7219 } else {
7220 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7221 inner_depth.increment()?;
7222 }
7223 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(u32, D));
7224 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7225 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7226 {
7227 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7228 }
7229 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7230 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7231 }
7232 }
7233
7234 next_offset += envelope_size;
7235 _next_ordinal_to_read += 1;
7236 if next_offset >= end_offset {
7237 return Ok(());
7238 }
7239
7240 while _next_ordinal_to_read < 8 {
7242 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7243 _next_ordinal_to_read += 1;
7244 next_offset += envelope_size;
7245 }
7246
7247 let next_out_of_line = decoder.next_out_of_line();
7248 let handles_before = decoder.remaining_handles();
7249 if let Some((inlined, num_bytes, num_handles)) =
7250 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7251 {
7252 let member_inline_size =
7253 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7254 if inlined != (member_inline_size <= 4) {
7255 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7256 }
7257 let inner_offset;
7258 let mut inner_depth = depth.clone();
7259 if inlined {
7260 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7261 inner_offset = next_offset;
7262 } else {
7263 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7264 inner_depth.increment()?;
7265 }
7266 let val_ref = self.data_poll.get_or_insert_with(|| fidl::new_empty!(u32, D));
7267 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7268 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7269 {
7270 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7271 }
7272 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7273 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7274 }
7275 }
7276
7277 next_offset += envelope_size;
7278 _next_ordinal_to_read += 1;
7279 if next_offset >= end_offset {
7280 return Ok(());
7281 }
7282
7283 while _next_ordinal_to_read < 9 {
7285 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7286 _next_ordinal_to_read += 1;
7287 next_offset += envelope_size;
7288 }
7289
7290 let next_out_of_line = decoder.next_out_of_line();
7291 let handles_before = decoder.remaining_handles();
7292 if let Some((inlined, num_bytes, num_handles)) =
7293 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7294 {
7295 let member_inline_size =
7296 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7297 if inlined != (member_inline_size <= 4) {
7298 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7299 }
7300 let inner_offset;
7301 let mut inner_depth = depth.clone();
7302 if inlined {
7303 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7304 inner_offset = next_offset;
7305 } else {
7306 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7307 inner_depth.increment()?;
7308 }
7309 let val_ref = self.beacon.get_or_insert_with(|| fidl::new_empty!(u32, D));
7310 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7311 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7312 {
7313 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7314 }
7315 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7316 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7317 }
7318 }
7319
7320 next_offset += envelope_size;
7321 _next_ordinal_to_read += 1;
7322 if next_offset >= end_offset {
7323 return Ok(());
7324 }
7325
7326 while _next_ordinal_to_read < 10 {
7328 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7329 _next_ordinal_to_read += 1;
7330 next_offset += envelope_size;
7331 }
7332
7333 let next_out_of_line = decoder.next_out_of_line();
7334 let handles_before = decoder.remaining_handles();
7335 if let Some((inlined, num_bytes, num_handles)) =
7336 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7337 {
7338 let member_inline_size =
7339 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7340 if inlined != (member_inline_size <= 4) {
7341 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7342 }
7343 let inner_offset;
7344 let mut inner_depth = depth.clone();
7345 if inlined {
7346 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7347 inner_offset = next_offset;
7348 } else {
7349 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7350 inner_depth.increment()?;
7351 }
7352 let val_ref = self.beacon_request.get_or_insert_with(|| fidl::new_empty!(u32, D));
7353 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7354 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7355 {
7356 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7357 }
7358 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7359 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7360 }
7361 }
7362
7363 next_offset += envelope_size;
7364 _next_ordinal_to_read += 1;
7365 if next_offset >= end_offset {
7366 return Ok(());
7367 }
7368
7369 while _next_ordinal_to_read < 11 {
7371 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7372 _next_ordinal_to_read += 1;
7373 next_offset += envelope_size;
7374 }
7375
7376 let next_out_of_line = decoder.next_out_of_line();
7377 let handles_before = decoder.remaining_handles();
7378 if let Some((inlined, num_bytes, num_handles)) =
7379 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7380 {
7381 let member_inline_size =
7382 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7383 if inlined != (member_inline_size <= 4) {
7384 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7385 }
7386 let inner_offset;
7387 let mut inner_depth = depth.clone();
7388 if inlined {
7389 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7390 inner_offset = next_offset;
7391 } else {
7392 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7393 inner_depth.increment()?;
7394 }
7395 let val_ref = self.other.get_or_insert_with(|| fidl::new_empty!(u32, D));
7396 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7397 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7398 {
7399 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7400 }
7401 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7402 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7403 }
7404 }
7405
7406 next_offset += envelope_size;
7407 _next_ordinal_to_read += 1;
7408 if next_offset >= end_offset {
7409 return Ok(());
7410 }
7411
7412 while _next_ordinal_to_read < 12 {
7414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7415 _next_ordinal_to_read += 1;
7416 next_offset += envelope_size;
7417 }
7418
7419 let next_out_of_line = decoder.next_out_of_line();
7420 let handles_before = decoder.remaining_handles();
7421 if let Some((inlined, num_bytes, num_handles)) =
7422 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7423 {
7424 let member_inline_size =
7425 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7426 if inlined != (member_inline_size <= 4) {
7427 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7428 }
7429 let inner_offset;
7430 let mut inner_depth = depth.clone();
7431 if inlined {
7432 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7433 inner_offset = next_offset;
7434 } else {
7435 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7436 inner_depth.increment()?;
7437 }
7438 let val_ref = self.address_filtered.get_or_insert_with(|| fidl::new_empty!(u32, D));
7439 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7440 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7441 {
7442 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7443 }
7444 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7445 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7446 }
7447 }
7448
7449 next_offset += envelope_size;
7450 _next_ordinal_to_read += 1;
7451 if next_offset >= end_offset {
7452 return Ok(());
7453 }
7454
7455 while _next_ordinal_to_read < 13 {
7457 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7458 _next_ordinal_to_read += 1;
7459 next_offset += envelope_size;
7460 }
7461
7462 let next_out_of_line = decoder.next_out_of_line();
7463 let handles_before = decoder.remaining_handles();
7464 if let Some((inlined, num_bytes, num_handles)) =
7465 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7466 {
7467 let member_inline_size =
7468 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7469 if inlined != (member_inline_size <= 4) {
7470 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7471 }
7472 let inner_offset;
7473 let mut inner_depth = depth.clone();
7474 if inlined {
7475 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7476 inner_offset = next_offset;
7477 } else {
7478 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7479 inner_depth.increment()?;
7480 }
7481 let val_ref = self.retries.get_or_insert_with(|| fidl::new_empty!(u32, D));
7482 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7483 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7484 {
7485 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7486 }
7487 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7488 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7489 }
7490 }
7491
7492 next_offset += envelope_size;
7493 _next_ordinal_to_read += 1;
7494 if next_offset >= end_offset {
7495 return Ok(());
7496 }
7497
7498 while _next_ordinal_to_read < 14 {
7500 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7501 _next_ordinal_to_read += 1;
7502 next_offset += envelope_size;
7503 }
7504
7505 let next_out_of_line = decoder.next_out_of_line();
7506 let handles_before = decoder.remaining_handles();
7507 if let Some((inlined, num_bytes, num_handles)) =
7508 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7509 {
7510 let member_inline_size =
7511 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7512 if inlined != (member_inline_size <= 4) {
7513 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7514 }
7515 let inner_offset;
7516 let mut inner_depth = depth.clone();
7517 if inlined {
7518 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7519 inner_offset = next_offset;
7520 } else {
7521 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7522 inner_depth.increment()?;
7523 }
7524 let val_ref =
7525 self.direct_max_retry_expiry.get_or_insert_with(|| fidl::new_empty!(u32, D));
7526 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7527 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7528 {
7529 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7530 }
7531 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7532 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7533 }
7534 }
7535
7536 next_offset += envelope_size;
7537 _next_ordinal_to_read += 1;
7538 if next_offset >= end_offset {
7539 return Ok(());
7540 }
7541
7542 while _next_ordinal_to_read < 15 {
7544 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7545 _next_ordinal_to_read += 1;
7546 next_offset += envelope_size;
7547 }
7548
7549 let next_out_of_line = decoder.next_out_of_line();
7550 let handles_before = decoder.remaining_handles();
7551 if let Some((inlined, num_bytes, num_handles)) =
7552 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7553 {
7554 let member_inline_size =
7555 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7556 if inlined != (member_inline_size <= 4) {
7557 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7558 }
7559 let inner_offset;
7560 let mut inner_depth = depth.clone();
7561 if inlined {
7562 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7563 inner_offset = next_offset;
7564 } else {
7565 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7566 inner_depth.increment()?;
7567 }
7568 let val_ref =
7569 self.indirect_max_retry_expiry.get_or_insert_with(|| fidl::new_empty!(u32, D));
7570 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7571 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7572 {
7573 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7574 }
7575 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7576 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7577 }
7578 }
7579
7580 next_offset += envelope_size;
7581 _next_ordinal_to_read += 1;
7582 if next_offset >= end_offset {
7583 return Ok(());
7584 }
7585
7586 while _next_ordinal_to_read < 16 {
7588 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7589 _next_ordinal_to_read += 1;
7590 next_offset += envelope_size;
7591 }
7592
7593 let next_out_of_line = decoder.next_out_of_line();
7594 let handles_before = decoder.remaining_handles();
7595 if let Some((inlined, num_bytes, num_handles)) =
7596 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7597 {
7598 let member_inline_size =
7599 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7600 if inlined != (member_inline_size <= 4) {
7601 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7602 }
7603 let inner_offset;
7604 let mut inner_depth = depth.clone();
7605 if inlined {
7606 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7607 inner_offset = next_offset;
7608 } else {
7609 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7610 inner_depth.increment()?;
7611 }
7612 let val_ref =
7613 self.dest_addr_filtered.get_or_insert_with(|| fidl::new_empty!(u32, D));
7614 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7615 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7616 {
7617 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7618 }
7619 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7620 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7621 }
7622 }
7623
7624 next_offset += envelope_size;
7625 _next_ordinal_to_read += 1;
7626 if next_offset >= end_offset {
7627 return Ok(());
7628 }
7629
7630 while _next_ordinal_to_read < 17 {
7632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7633 _next_ordinal_to_read += 1;
7634 next_offset += envelope_size;
7635 }
7636
7637 let next_out_of_line = decoder.next_out_of_line();
7638 let handles_before = decoder.remaining_handles();
7639 if let Some((inlined, num_bytes, num_handles)) =
7640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7641 {
7642 let member_inline_size =
7643 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7644 if inlined != (member_inline_size <= 4) {
7645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7646 }
7647 let inner_offset;
7648 let mut inner_depth = depth.clone();
7649 if inlined {
7650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7651 inner_offset = next_offset;
7652 } else {
7653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7654 inner_depth.increment()?;
7655 }
7656 let val_ref = self.duplicated.get_or_insert_with(|| fidl::new_empty!(u32, D));
7657 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7658 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7659 {
7660 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7661 }
7662 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7663 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7664 }
7665 }
7666
7667 next_offset += envelope_size;
7668 _next_ordinal_to_read += 1;
7669 if next_offset >= end_offset {
7670 return Ok(());
7671 }
7672
7673 while _next_ordinal_to_read < 18 {
7675 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7676 _next_ordinal_to_read += 1;
7677 next_offset += envelope_size;
7678 }
7679
7680 let next_out_of_line = decoder.next_out_of_line();
7681 let handles_before = decoder.remaining_handles();
7682 if let Some((inlined, num_bytes, num_handles)) =
7683 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7684 {
7685 let member_inline_size =
7686 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7687 if inlined != (member_inline_size <= 4) {
7688 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7689 }
7690 let inner_offset;
7691 let mut inner_depth = depth.clone();
7692 if inlined {
7693 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7694 inner_offset = next_offset;
7695 } else {
7696 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7697 inner_depth.increment()?;
7698 }
7699 let val_ref = self.err_no_frame.get_or_insert_with(|| fidl::new_empty!(u32, D));
7700 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7701 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7702 {
7703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7704 }
7705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7707 }
7708 }
7709
7710 next_offset += envelope_size;
7711 _next_ordinal_to_read += 1;
7712 if next_offset >= end_offset {
7713 return Ok(());
7714 }
7715
7716 while _next_ordinal_to_read < 19 {
7718 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7719 _next_ordinal_to_read += 1;
7720 next_offset += envelope_size;
7721 }
7722
7723 let next_out_of_line = decoder.next_out_of_line();
7724 let handles_before = decoder.remaining_handles();
7725 if let Some((inlined, num_bytes, num_handles)) =
7726 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7727 {
7728 let member_inline_size =
7729 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7730 if inlined != (member_inline_size <= 4) {
7731 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7732 }
7733 let inner_offset;
7734 let mut inner_depth = depth.clone();
7735 if inlined {
7736 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7737 inner_offset = next_offset;
7738 } else {
7739 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7740 inner_depth.increment()?;
7741 }
7742 let val_ref =
7743 self.err_unknown_neighbor.get_or_insert_with(|| fidl::new_empty!(u32, D));
7744 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7745 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7746 {
7747 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7748 }
7749 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7750 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7751 }
7752 }
7753
7754 next_offset += envelope_size;
7755 _next_ordinal_to_read += 1;
7756 if next_offset >= end_offset {
7757 return Ok(());
7758 }
7759
7760 while _next_ordinal_to_read < 20 {
7762 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7763 _next_ordinal_to_read += 1;
7764 next_offset += envelope_size;
7765 }
7766
7767 let next_out_of_line = decoder.next_out_of_line();
7768 let handles_before = decoder.remaining_handles();
7769 if let Some((inlined, num_bytes, num_handles)) =
7770 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7771 {
7772 let member_inline_size =
7773 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7774 if inlined != (member_inline_size <= 4) {
7775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7776 }
7777 let inner_offset;
7778 let mut inner_depth = depth.clone();
7779 if inlined {
7780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7781 inner_offset = next_offset;
7782 } else {
7783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7784 inner_depth.increment()?;
7785 }
7786 let val_ref =
7787 self.err_invalid_src_addr.get_or_insert_with(|| fidl::new_empty!(u32, D));
7788 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7789 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7790 {
7791 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7792 }
7793 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7794 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7795 }
7796 }
7797
7798 next_offset += envelope_size;
7799 _next_ordinal_to_read += 1;
7800 if next_offset >= end_offset {
7801 return Ok(());
7802 }
7803
7804 while _next_ordinal_to_read < 21 {
7806 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7807 _next_ordinal_to_read += 1;
7808 next_offset += envelope_size;
7809 }
7810
7811 let next_out_of_line = decoder.next_out_of_line();
7812 let handles_before = decoder.remaining_handles();
7813 if let Some((inlined, num_bytes, num_handles)) =
7814 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7815 {
7816 let member_inline_size =
7817 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7818 if inlined != (member_inline_size <= 4) {
7819 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7820 }
7821 let inner_offset;
7822 let mut inner_depth = depth.clone();
7823 if inlined {
7824 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7825 inner_offset = next_offset;
7826 } else {
7827 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7828 inner_depth.increment()?;
7829 }
7830 let val_ref = self.err_sec.get_or_insert_with(|| fidl::new_empty!(u32, D));
7831 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7832 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7833 {
7834 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7835 }
7836 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7837 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7838 }
7839 }
7840
7841 next_offset += envelope_size;
7842 _next_ordinal_to_read += 1;
7843 if next_offset >= end_offset {
7844 return Ok(());
7845 }
7846
7847 while _next_ordinal_to_read < 22 {
7849 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7850 _next_ordinal_to_read += 1;
7851 next_offset += envelope_size;
7852 }
7853
7854 let next_out_of_line = decoder.next_out_of_line();
7855 let handles_before = decoder.remaining_handles();
7856 if let Some((inlined, num_bytes, num_handles)) =
7857 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7858 {
7859 let member_inline_size =
7860 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7861 if inlined != (member_inline_size <= 4) {
7862 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7863 }
7864 let inner_offset;
7865 let mut inner_depth = depth.clone();
7866 if inlined {
7867 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7868 inner_offset = next_offset;
7869 } else {
7870 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7871 inner_depth.increment()?;
7872 }
7873 let val_ref = self.err_fcs.get_or_insert_with(|| fidl::new_empty!(u32, D));
7874 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7875 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7876 {
7877 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7878 }
7879 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7880 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7881 }
7882 }
7883
7884 next_offset += envelope_size;
7885 _next_ordinal_to_read += 1;
7886 if next_offset >= end_offset {
7887 return Ok(());
7888 }
7889
7890 while _next_ordinal_to_read < 23 {
7892 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7893 _next_ordinal_to_read += 1;
7894 next_offset += envelope_size;
7895 }
7896
7897 let next_out_of_line = decoder.next_out_of_line();
7898 let handles_before = decoder.remaining_handles();
7899 if let Some((inlined, num_bytes, num_handles)) =
7900 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7901 {
7902 let member_inline_size =
7903 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7904 if inlined != (member_inline_size <= 4) {
7905 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7906 }
7907 let inner_offset;
7908 let mut inner_depth = depth.clone();
7909 if inlined {
7910 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7911 inner_offset = next_offset;
7912 } else {
7913 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7914 inner_depth.increment()?;
7915 }
7916 let val_ref = self.err_cca.get_or_insert_with(|| fidl::new_empty!(u32, D));
7917 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7918 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7919 {
7920 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7921 }
7922 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7923 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7924 }
7925 }
7926
7927 next_offset += envelope_size;
7928 _next_ordinal_to_read += 1;
7929 if next_offset >= end_offset {
7930 return Ok(());
7931 }
7932
7933 while _next_ordinal_to_read < 24 {
7935 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7936 _next_ordinal_to_read += 1;
7937 next_offset += envelope_size;
7938 }
7939
7940 let next_out_of_line = decoder.next_out_of_line();
7941 let handles_before = decoder.remaining_handles();
7942 if let Some((inlined, num_bytes, num_handles)) =
7943 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7944 {
7945 let member_inline_size =
7946 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7947 if inlined != (member_inline_size <= 4) {
7948 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7949 }
7950 let inner_offset;
7951 let mut inner_depth = depth.clone();
7952 if inlined {
7953 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7954 inner_offset = next_offset;
7955 } else {
7956 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7957 inner_depth.increment()?;
7958 }
7959 let val_ref = self.err_abort.get_or_insert_with(|| fidl::new_empty!(u32, D));
7960 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7962 {
7963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7964 }
7965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7967 }
7968 }
7969
7970 next_offset += envelope_size;
7971 _next_ordinal_to_read += 1;
7972 if next_offset >= end_offset {
7973 return Ok(());
7974 }
7975
7976 while _next_ordinal_to_read < 25 {
7978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7979 _next_ordinal_to_read += 1;
7980 next_offset += envelope_size;
7981 }
7982
7983 let next_out_of_line = decoder.next_out_of_line();
7984 let handles_before = decoder.remaining_handles();
7985 if let Some((inlined, num_bytes, num_handles)) =
7986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7987 {
7988 let member_inline_size =
7989 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7990 if inlined != (member_inline_size <= 4) {
7991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7992 }
7993 let inner_offset;
7994 let mut inner_depth = depth.clone();
7995 if inlined {
7996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7997 inner_offset = next_offset;
7998 } else {
7999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8000 inner_depth.increment()?;
8001 }
8002 let val_ref = self.err_busy_channel.get_or_insert_with(|| fidl::new_empty!(u32, D));
8003 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8004 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8005 {
8006 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8007 }
8008 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8009 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8010 }
8011 }
8012
8013 next_offset += envelope_size;
8014 _next_ordinal_to_read += 1;
8015 if next_offset >= end_offset {
8016 return Ok(());
8017 }
8018
8019 while _next_ordinal_to_read < 26 {
8021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8022 _next_ordinal_to_read += 1;
8023 next_offset += envelope_size;
8024 }
8025
8026 let next_out_of_line = decoder.next_out_of_line();
8027 let handles_before = decoder.remaining_handles();
8028 if let Some((inlined, num_bytes, num_handles)) =
8029 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8030 {
8031 let member_inline_size =
8032 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8033 if inlined != (member_inline_size <= 4) {
8034 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8035 }
8036 let inner_offset;
8037 let mut inner_depth = depth.clone();
8038 if inlined {
8039 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8040 inner_offset = next_offset;
8041 } else {
8042 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8043 inner_depth.increment()?;
8044 }
8045 let val_ref = self.err_other.get_or_insert_with(|| fidl::new_empty!(u32, D));
8046 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8047 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8048 {
8049 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8050 }
8051 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8052 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8053 }
8054 }
8055
8056 next_offset += envelope_size;
8057
8058 while next_offset < end_offset {
8060 _next_ordinal_to_read += 1;
8061 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8062 next_offset += envelope_size;
8063 }
8064
8065 Ok(())
8066 }
8067 }
8068
8069 impl fidl::encoding::ValueTypeMarker for Credential {
8070 type Borrowed<'a> = &'a Self;
8071 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8072 value
8073 }
8074 }
8075
8076 unsafe impl fidl::encoding::TypeMarker for Credential {
8077 type Owned = Self;
8078
8079 #[inline(always)]
8080 fn inline_align(_context: fidl::encoding::Context) -> usize {
8081 8
8082 }
8083
8084 #[inline(always)]
8085 fn inline_size(_context: fidl::encoding::Context) -> usize {
8086 16
8087 }
8088 }
8089
8090 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Credential, D>
8091 for &Credential
8092 {
8093 #[inline]
8094 unsafe fn encode(
8095 self,
8096 encoder: &mut fidl::encoding::Encoder<'_, D>,
8097 offset: usize,
8098 _depth: fidl::encoding::Depth,
8099 ) -> fidl::Result<()> {
8100 encoder.debug_check_bounds::<Credential>(offset);
8101 encoder.write_num::<u64>(self.ordinal(), offset);
8102 match self {
8103 Credential::NetworkKey(ref val) => {
8104 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<u8, 32>, D>(
8105 <fidl::encoding::Vector<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow(
8106 val,
8107 ),
8108 encoder,
8109 offset + 8,
8110 _depth,
8111 )
8112 }
8113 Credential::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
8114 }
8115 }
8116 }
8117
8118 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Credential {
8119 #[inline(always)]
8120 fn new_empty() -> Self {
8121 Self::__SourceBreaking { unknown_ordinal: 0 }
8122 }
8123
8124 #[inline]
8125 unsafe fn decode(
8126 &mut self,
8127 decoder: &mut fidl::encoding::Decoder<'_, D>,
8128 offset: usize,
8129 mut depth: fidl::encoding::Depth,
8130 ) -> fidl::Result<()> {
8131 decoder.debug_check_bounds::<Self>(offset);
8132 #[allow(unused_variables)]
8133 let next_out_of_line = decoder.next_out_of_line();
8134 let handles_before = decoder.remaining_handles();
8135 let (ordinal, inlined, num_bytes, num_handles) =
8136 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
8137
8138 let member_inline_size = match ordinal {
8139 1 => <fidl::encoding::Vector<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
8140 decoder.context,
8141 ),
8142 0 => return Err(fidl::Error::UnknownUnionTag),
8143 _ => num_bytes as usize,
8144 };
8145
8146 if inlined != (member_inline_size <= 4) {
8147 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8148 }
8149 let _inner_offset;
8150 if inlined {
8151 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
8152 _inner_offset = offset + 8;
8153 } else {
8154 depth.increment()?;
8155 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8156 }
8157 match ordinal {
8158 1 => {
8159 #[allow(irrefutable_let_patterns)]
8160 if let Credential::NetworkKey(_) = self {
8161 } else {
8163 *self = Credential::NetworkKey(
8165 fidl::new_empty!(fidl::encoding::Vector<u8, 32>, D),
8166 );
8167 }
8168 #[allow(irrefutable_let_patterns)]
8169 if let Credential::NetworkKey(ref mut val) = self {
8170 fidl::decode!(fidl::encoding::Vector<u8, 32>, D, val, decoder, _inner_offset, depth)?;
8171 } else {
8172 unreachable!()
8173 }
8174 }
8175 #[allow(deprecated)]
8176 ordinal => {
8177 for _ in 0..num_handles {
8178 decoder.drop_next_handle()?;
8179 }
8180 *self = Credential::__SourceBreaking { unknown_ordinal: ordinal };
8181 }
8182 }
8183 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
8184 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8185 }
8186 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8187 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8188 }
8189 Ok(())
8190 }
8191 }
8192}