1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const COMPONENT_URL_ARG_NAME: &str = "$__url";
12
13pub const MAXIMUM_ENTRIES_PER_BATCH: u16 = 64;
16
17pub const MAXIMUM_RAW_SELECTOR_LENGTH: u16 = 1024;
20
21pub const MAX_DATA_HIERARCHY_DEPTH: u16 = 100;
22
23pub const MAX_LOG_SELECTORS: u8 = 64;
25
26pub const MAX_MONIKER_SEGMENTS: u16 = 25;
27
28pub const MAX_SAMPLE_PARAMETERS_PER_SET: u64 = 100;
30
31pub const MAX_STRING_SELECTOR_LENGTH: u16 = 1024;
32
33pub const MONIKER_ARG_NAME: &str = "$__moniker";
34
35pub const ROLLED_OUT_ARG_NAME: &str = "$__rolled_out";
36
37pub const SALT_SIZE: u32 = 32;
39
40#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
43pub enum ConfigurationError {
44 SamplePeriodTooSmall,
47 SampleParametersInvalid,
50 InvalidSelectors,
53 #[doc(hidden)]
54 __SourceBreaking { unknown_ordinal: u32 },
55}
56
57#[macro_export]
59macro_rules! ConfigurationErrorUnknown {
60 () => {
61 _
62 };
63}
64
65impl ConfigurationError {
66 #[inline]
67 pub fn from_primitive(prim: u32) -> Option<Self> {
68 match prim {
69 1 => Some(Self::SamplePeriodTooSmall),
70 2 => Some(Self::SampleParametersInvalid),
71 3 => Some(Self::InvalidSelectors),
72 _ => None,
73 }
74 }
75
76 #[inline]
77 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
78 match prim {
79 1 => Self::SamplePeriodTooSmall,
80 2 => Self::SampleParametersInvalid,
81 3 => Self::InvalidSelectors,
82 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
83 }
84 }
85
86 #[inline]
87 pub fn unknown() -> Self {
88 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
89 }
90
91 #[inline]
92 pub const fn into_primitive(self) -> u32 {
93 match self {
94 Self::SamplePeriodTooSmall => 1,
95 Self::SampleParametersInvalid => 2,
96 Self::InvalidSelectors => 3,
97 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
98 }
99 }
100
101 #[inline]
102 pub fn is_unknown(&self) -> bool {
103 match self {
104 Self::__SourceBreaking { unknown_ordinal: _ } => true,
105 _ => false,
106 }
107 }
108}
109
110#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
111#[repr(u8)]
112pub enum DataType {
113 Inspect = 1,
115 Logs = 3,
117}
118
119impl DataType {
120 #[inline]
121 pub fn from_primitive(prim: u8) -> Option<Self> {
122 match prim {
123 1 => Some(Self::Inspect),
124 3 => Some(Self::Logs),
125 _ => None,
126 }
127 }
128
129 #[inline]
130 pub const fn into_primitive(self) -> u8 {
131 self as u8
132 }
133}
134
135#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
138#[repr(u32)]
139pub enum Format {
140 Json = 1,
143 Text = 2,
145 Cbor = 3,
148 Fxt = 5,
152}
153
154impl Format {
155 #[inline]
156 pub fn from_primitive(prim: u32) -> Option<Self> {
157 match prim {
158 1 => Some(Self::Json),
159 2 => Some(Self::Text),
160 3 => Some(Self::Cbor),
161 5 => Some(Self::Fxt),
162 _ => None,
163 }
164 }
165
166 #[inline]
167 pub const fn into_primitive(self) -> u32 {
168 self as u32
169 }
170}
171
172#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
173pub enum PowerEvent {
174 BoostStart,
176 BoostEnd,
178 #[doc(hidden)]
179 __SourceBreaking { unknown_ordinal: u32 },
180}
181
182#[macro_export]
184macro_rules! PowerEventUnknown {
185 () => {
186 _
187 };
188}
189
190impl PowerEvent {
191 #[inline]
192 pub fn from_primitive(prim: u32) -> Option<Self> {
193 match prim {
194 1 => Some(Self::BoostStart),
195 2 => Some(Self::BoostEnd),
196 _ => None,
197 }
198 }
199
200 #[inline]
201 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
202 match prim {
203 1 => Self::BoostStart,
204 2 => Self::BoostEnd,
205 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
206 }
207 }
208
209 #[inline]
210 pub fn unknown() -> Self {
211 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
212 }
213
214 #[inline]
215 pub const fn into_primitive(self) -> u32 {
216 match self {
217 Self::BoostStart => 1,
218 Self::BoostEnd => 2,
219 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
220 }
221 }
222
223 #[inline]
224 pub fn is_unknown(&self) -> bool {
225 match self {
226 Self::__SourceBreaking { unknown_ordinal: _ } => true,
227 _ => false,
228 }
229 }
230}
231
232#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
235#[repr(u32)]
236pub enum ReaderError {
237 Io = 1,
238}
239
240impl ReaderError {
241 #[inline]
242 pub fn from_primitive(prim: u32) -> Option<Self> {
243 match prim {
244 1 => Some(Self::Io),
245 _ => None,
246 }
247 }
248
249 #[inline]
250 pub const fn into_primitive(self) -> u32 {
251 self as u32
252 }
253}
254
255#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
260pub enum RuntimeError {
261 BatchIteratorFailed,
264 #[doc(hidden)]
265 __SourceBreaking { unknown_ordinal: u32 },
266}
267
268#[macro_export]
270macro_rules! RuntimeErrorUnknown {
271 () => {
272 _
273 };
274}
275
276impl RuntimeError {
277 #[inline]
278 pub fn from_primitive(prim: u32) -> Option<Self> {
279 match prim {
280 1 => Some(Self::BatchIteratorFailed),
281 _ => None,
282 }
283 }
284
285 #[inline]
286 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
287 match prim {
288 1 => Self::BatchIteratorFailed,
289 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
290 }
291 }
292
293 #[inline]
294 pub fn unknown() -> Self {
295 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
296 }
297
298 #[inline]
299 pub const fn into_primitive(self) -> u32 {
300 match self {
301 Self::BatchIteratorFailed => 1,
302 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
303 }
304 }
305
306 #[inline]
307 pub fn is_unknown(&self) -> bool {
308 match self {
309 Self::__SourceBreaking { unknown_ordinal: _ } => true,
310 _ => false,
311 }
312 }
313}
314
315#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
318pub enum SampleStrategy {
319 OnDiff,
323 Always,
328 #[doc(hidden)]
329 __SourceBreaking { unknown_ordinal: u8 },
330}
331
332#[macro_export]
334macro_rules! SampleStrategyUnknown {
335 () => {
336 _
337 };
338}
339
340impl SampleStrategy {
341 #[inline]
342 pub fn from_primitive(prim: u8) -> Option<Self> {
343 match prim {
344 1 => Some(Self::OnDiff),
345 2 => Some(Self::Always),
346 _ => None,
347 }
348 }
349
350 #[inline]
351 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
352 match prim {
353 1 => Self::OnDiff,
354 2 => Self::Always,
355 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
356 }
357 }
358
359 #[inline]
360 pub fn unknown() -> Self {
361 Self::__SourceBreaking { unknown_ordinal: 0xff }
362 }
363
364 #[inline]
365 pub const fn into_primitive(self) -> u8 {
366 match self {
367 Self::OnDiff => 1,
368 Self::Always => 2,
369 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
370 }
371 }
372
373 #[inline]
374 pub fn is_unknown(&self) -> bool {
375 match self {
376 Self::__SourceBreaking { unknown_ordinal: _ } => true,
377 _ => false,
378 }
379 }
380}
381
382#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
384#[repr(u8)]
385pub enum StreamMode {
386 Snapshot = 1,
389 SnapshotThenSubscribe = 2,
393 Subscribe = 3,
396}
397
398impl StreamMode {
399 #[inline]
400 pub fn from_primitive(prim: u8) -> Option<Self> {
401 match prim {
402 1 => Some(Self::Snapshot),
403 2 => Some(Self::SnapshotThenSubscribe),
404 3 => Some(Self::Subscribe),
405 _ => None,
406 }
407 }
408
409 #[inline]
410 pub const fn into_primitive(self) -> u8 {
411 self as u8
412 }
413}
414
415#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
416pub struct All;
417
418impl fidl::Persistable for All {}
419
420#[derive(Clone, Debug, PartialEq)]
421pub struct LogInterestSelector {
422 pub selector: ComponentSelector,
424 pub interest: fidl_fuchsia_diagnostics_types_common::Interest,
426}
427
428impl fidl::Persistable for LogInterestSelector {}
429
430#[derive(Clone, Debug, PartialEq)]
433pub struct PropertySelector {
434 pub node_path: Vec<StringSelector>,
447 pub target_properties: StringSelector,
453}
454
455impl fidl::Persistable for PropertySelector {}
456
457#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
458#[repr(C)]
459pub struct SaltProviderGetSaltResponse {
460 pub salt: [u8; 32],
461}
462
463impl fidl::Persistable for SaltProviderGetSaltResponse {}
464
465#[derive(Clone, Debug, PartialEq)]
468pub struct SubtreeSelector {
469 pub node_path: Vec<StringSelector>,
482}
483
484impl fidl::Persistable for SubtreeSelector {}
485
486#[derive(Clone, Debug, PartialEq)]
487pub struct SystemActivityMonitorGetNextEventResponse {
488 pub event: SystemActivityEvent,
489}
490
491impl fidl::Persistable for SystemActivityMonitorGetNextEventResponse {}
492
493#[derive(Clone, Debug, Default, PartialEq)]
512pub struct ComponentSelector {
513 pub moniker_segments: Option<Vec<StringSelector>>,
521 #[doc(hidden)]
522 pub __source_breaking: fidl::marker::SourceBreaking,
523}
524
525impl fidl::Persistable for ComponentSelector {}
526
527#[derive(Clone, Debug, Default, PartialEq)]
528pub struct LogSettingsSetComponentInterestRequest {
529 pub selectors: Option<Vec<LogInterestSelector>>,
531 pub persist: Option<bool>,
534 #[doc(hidden)]
535 pub __source_breaking: fidl::marker::SourceBreaking,
536}
537
538impl fidl::Persistable for LogSettingsSetComponentInterestRequest {}
539
540#[derive(Clone, Debug, Default, PartialEq)]
542pub struct PerformanceConfiguration {
543 pub max_aggregate_content_size_bytes: Option<u64>,
549 pub batch_retrieval_timeout_seconds: Option<i64>,
558 #[doc(hidden)]
559 pub __source_breaking: fidl::marker::SourceBreaking,
560}
561
562impl fidl::Persistable for PerformanceConfiguration {}
563
564#[derive(Clone, Debug, Default, PartialEq)]
565pub struct SampleDatum {
566 pub selector: Option<SelectorArgument>,
568 pub strategy: Option<SampleStrategy>,
570 pub interval_secs: Option<i64>,
588 #[doc(hidden)]
589 pub __source_breaking: fidl::marker::SourceBreaking,
590}
591
592impl fidl::Persistable for SampleDatum {}
593
594#[derive(Clone, Debug, Default, PartialEq)]
596pub struct SampleParameters {
597 pub data: Option<Vec<SampleDatum>>,
603 #[doc(hidden)]
604 pub __source_breaking: fidl::marker::SourceBreaking,
605}
606
607impl fidl::Persistable for SampleParameters {}
608
609#[derive(Clone, Debug, Default, PartialEq)]
623pub struct Selector {
624 pub component_selector: Option<ComponentSelector>,
627 pub tree_selector: Option<TreeSelector>,
631 pub tree_names: Option<TreeNames>,
637 #[doc(hidden)]
638 pub __source_breaking: fidl::marker::SourceBreaking,
639}
640
641impl fidl::Persistable for Selector {}
642
643#[derive(Clone, Debug, Default, PartialEq)]
645pub struct StreamParameters {
646 pub data_type: Option<DataType>,
650 pub stream_mode: Option<StreamMode>,
654 pub format: Option<Format>,
658 pub client_selector_configuration: Option<ClientSelectorConfiguration>,
663 pub batch_retrieval_timeout_seconds: Option<i64>,
672 pub performance_configuration: Option<PerformanceConfiguration>,
675 #[doc(hidden)]
676 pub __source_breaking: fidl::marker::SourceBreaking,
677}
678
679impl fidl::Persistable for StreamParameters {}
680
681#[derive(Clone, Debug)]
682pub enum ClientSelectorConfiguration {
683 Selectors(Vec<SelectorArgument>),
687 SelectAll(bool),
690 #[doc(hidden)]
691 __SourceBreaking { unknown_ordinal: u64 },
692}
693
694#[macro_export]
696macro_rules! ClientSelectorConfigurationUnknown {
697 () => {
698 _
699 };
700}
701
702impl PartialEq for ClientSelectorConfiguration {
704 fn eq(&self, other: &Self) -> bool {
705 match (self, other) {
706 (Self::Selectors(x), Self::Selectors(y)) => *x == *y,
707 (Self::SelectAll(x), Self::SelectAll(y)) => *x == *y,
708 _ => false,
709 }
710 }
711}
712
713impl ClientSelectorConfiguration {
714 #[inline]
715 pub fn ordinal(&self) -> u64 {
716 match *self {
717 Self::Selectors(_) => 1,
718 Self::SelectAll(_) => 2,
719 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
720 }
721 }
722
723 #[inline]
724 pub fn unknown_variant_for_testing() -> Self {
725 Self::__SourceBreaking { unknown_ordinal: 0 }
726 }
727
728 #[inline]
729 pub fn is_unknown(&self) -> bool {
730 match self {
731 Self::__SourceBreaking { .. } => true,
732 _ => false,
733 }
734 }
735}
736
737impl fidl::Persistable for ClientSelectorConfiguration {}
738
739#[derive(Clone, Debug)]
742pub enum SelectorArgument {
743 StructuredSelector(Selector),
746 RawSelector(String),
753 #[doc(hidden)]
754 __SourceBreaking { unknown_ordinal: u64 },
755}
756
757#[macro_export]
759macro_rules! SelectorArgumentUnknown {
760 () => {
761 _
762 };
763}
764
765impl PartialEq for SelectorArgument {
767 fn eq(&self, other: &Self) -> bool {
768 match (self, other) {
769 (Self::StructuredSelector(x), Self::StructuredSelector(y)) => *x == *y,
770 (Self::RawSelector(x), Self::RawSelector(y)) => *x == *y,
771 _ => false,
772 }
773 }
774}
775
776impl SelectorArgument {
777 #[inline]
778 pub fn ordinal(&self) -> u64 {
779 match *self {
780 Self::StructuredSelector(_) => 1,
781 Self::RawSelector(_) => 2,
782 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
783 }
784 }
785
786 #[inline]
787 pub fn unknown_variant_for_testing() -> Self {
788 Self::__SourceBreaking { unknown_ordinal: 0 }
789 }
790
791 #[inline]
792 pub fn is_unknown(&self) -> bool {
793 match self {
794 Self::__SourceBreaking { .. } => true,
795 _ => false,
796 }
797 }
798}
799
800impl fidl::Persistable for SelectorArgument {}
801
802#[derive(Clone, Debug)]
805pub enum StringSelector {
806 StringPattern(String),
826 ExactMatch(String),
827 #[doc(hidden)]
828 __SourceBreaking {
829 unknown_ordinal: u64,
830 },
831}
832
833#[macro_export]
835macro_rules! StringSelectorUnknown {
836 () => {
837 _
838 };
839}
840
841impl PartialEq for StringSelector {
843 fn eq(&self, other: &Self) -> bool {
844 match (self, other) {
845 (Self::StringPattern(x), Self::StringPattern(y)) => *x == *y,
846 (Self::ExactMatch(x), Self::ExactMatch(y)) => *x == *y,
847 _ => false,
848 }
849 }
850}
851
852impl StringSelector {
853 #[inline]
854 pub fn ordinal(&self) -> u64 {
855 match *self {
856 Self::StringPattern(_) => 1,
857 Self::ExactMatch(_) => 2,
858 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
859 }
860 }
861
862 #[inline]
863 pub fn unknown_variant_for_testing() -> Self {
864 Self::__SourceBreaking { unknown_ordinal: 0 }
865 }
866
867 #[inline]
868 pub fn is_unknown(&self) -> bool {
869 match self {
870 Self::__SourceBreaking { .. } => true,
871 _ => false,
872 }
873 }
874}
875
876impl fidl::Persistable for StringSelector {}
877
878#[derive(Clone, Debug)]
879pub enum SystemActivityEvent {
880 PowerEvent(PowerEvent),
881 #[doc(hidden)]
882 __SourceBreaking {
883 unknown_ordinal: u64,
884 },
885}
886
887#[macro_export]
889macro_rules! SystemActivityEventUnknown {
890 () => {
891 _
892 };
893}
894
895impl PartialEq for SystemActivityEvent {
897 fn eq(&self, other: &Self) -> bool {
898 match (self, other) {
899 (Self::PowerEvent(x), Self::PowerEvent(y)) => *x == *y,
900 _ => false,
901 }
902 }
903}
904
905impl SystemActivityEvent {
906 #[inline]
907 pub fn ordinal(&self) -> u64 {
908 match *self {
909 Self::PowerEvent(_) => 1,
910 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
911 }
912 }
913
914 #[inline]
915 pub fn unknown_variant_for_testing() -> Self {
916 Self::__SourceBreaking { unknown_ordinal: 0 }
917 }
918
919 #[inline]
920 pub fn is_unknown(&self) -> bool {
921 match self {
922 Self::__SourceBreaking { .. } => true,
923 _ => false,
924 }
925 }
926}
927
928impl fidl::Persistable for SystemActivityEvent {}
929
930#[derive(Clone, Debug)]
934pub enum TreeNames {
935 Some(Vec<String>),
937 All(All),
940 #[doc(hidden)]
941 __SourceBreaking { unknown_ordinal: u64 },
942}
943
944#[macro_export]
946macro_rules! TreeNamesUnknown {
947 () => {
948 _
949 };
950}
951
952impl PartialEq for TreeNames {
954 fn eq(&self, other: &Self) -> bool {
955 match (self, other) {
956 (Self::Some(x), Self::Some(y)) => *x == *y,
957 (Self::All(x), Self::All(y)) => *x == *y,
958 _ => false,
959 }
960 }
961}
962
963impl TreeNames {
964 #[inline]
965 pub fn ordinal(&self) -> u64 {
966 match *self {
967 Self::Some(_) => 1,
968 Self::All(_) => 2,
969 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
970 }
971 }
972
973 #[inline]
974 pub fn unknown_variant_for_testing() -> Self {
975 Self::__SourceBreaking { unknown_ordinal: 0 }
976 }
977
978 #[inline]
979 pub fn is_unknown(&self) -> bool {
980 match self {
981 Self::__SourceBreaking { .. } => true,
982 _ => false,
983 }
984 }
985}
986
987impl fidl::Persistable for TreeNames {}
988
989#[derive(Clone, Debug)]
992pub enum TreeSelector {
993 SubtreeSelector(SubtreeSelector),
996 PropertySelector(PropertySelector),
999 #[doc(hidden)]
1000 __SourceBreaking { unknown_ordinal: u64 },
1001}
1002
1003#[macro_export]
1005macro_rules! TreeSelectorUnknown {
1006 () => {
1007 _
1008 };
1009}
1010
1011impl PartialEq for TreeSelector {
1013 fn eq(&self, other: &Self) -> bool {
1014 match (self, other) {
1015 (Self::SubtreeSelector(x), Self::SubtreeSelector(y)) => *x == *y,
1016 (Self::PropertySelector(x), Self::PropertySelector(y)) => *x == *y,
1017 _ => false,
1018 }
1019 }
1020}
1021
1022impl TreeSelector {
1023 #[inline]
1024 pub fn ordinal(&self) -> u64 {
1025 match *self {
1026 Self::SubtreeSelector(_) => 1,
1027 Self::PropertySelector(_) => 2,
1028 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1029 }
1030 }
1031
1032 #[inline]
1033 pub fn unknown_variant_for_testing() -> Self {
1034 Self::__SourceBreaking { unknown_ordinal: 0 }
1035 }
1036
1037 #[inline]
1038 pub fn is_unknown(&self) -> bool {
1039 match self {
1040 Self::__SourceBreaking { .. } => true,
1041 _ => false,
1042 }
1043 }
1044}
1045
1046impl fidl::Persistable for TreeSelector {}
1047
1048pub mod archive_accessor_ordinals {
1049 pub const STREAM_DIAGNOSTICS: u64 = 0x20c73e2ecd653c3e;
1050 pub const STREAM_DIAGNOSTICS_TO_SOCKET: u64 = 0x2498dd7cea299478;
1051 pub const WAIT_FOR_READY: u64 = 0x122963198011bd24;
1052}
1053
1054pub mod batch_iterator_ordinals {
1055 pub const GET_NEXT: u64 = 0x781986486c6254a5;
1056 pub const WAIT_FOR_READY: u64 = 0x70598ee271597603;
1057}
1058
1059pub mod log_flusher_ordinals {
1060 pub const WAIT_UNTIL_FLUSHED: u64 = 0x7dc4892e46748b5b;
1061}
1062
1063pub mod log_settings_ordinals {
1064 pub const SET_COMPONENT_INTEREST: u64 = 0x35f7004d2367f6c1;
1065}
1066
1067pub mod salt_provider_ordinals {
1068 pub const GET_SALT: u64 = 0x227c4dba43578933;
1069}
1070
1071pub mod sample_ordinals {
1072 pub const SET: u64 = 0x421a79bdbf45418e;
1073 pub const COMMIT: u64 = 0x25a3bc5f26787e9b;
1074}
1075
1076pub mod sample_sink_ordinals {
1077 pub const ON_SAMPLE_READIED: u64 = 0x39096d97ed03335f;
1078 pub const ON_NOW_OR_NEVER: u64 = 0x3dc94ca1e1290894;
1079}
1080
1081pub mod system_activity_monitor_ordinals {
1082 pub const GET_NEXT_EVENT: u64 = 0x354b94623dd41af9;
1083}
1084
1085mod internal {
1086 use super::*;
1087 unsafe impl fidl::encoding::TypeMarker for ConfigurationError {
1088 type Owned = Self;
1089
1090 #[inline(always)]
1091 fn inline_align(_context: fidl::encoding::Context) -> usize {
1092 std::mem::align_of::<u32>()
1093 }
1094
1095 #[inline(always)]
1096 fn inline_size(_context: fidl::encoding::Context) -> usize {
1097 std::mem::size_of::<u32>()
1098 }
1099
1100 #[inline(always)]
1101 fn encode_is_copy() -> bool {
1102 false
1103 }
1104
1105 #[inline(always)]
1106 fn decode_is_copy() -> bool {
1107 false
1108 }
1109 }
1110
1111 impl fidl::encoding::ValueTypeMarker for ConfigurationError {
1112 type Borrowed<'a> = Self;
1113 #[inline(always)]
1114 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1115 *value
1116 }
1117 }
1118
1119 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1120 for ConfigurationError
1121 {
1122 #[inline]
1123 unsafe fn encode(
1124 self,
1125 encoder: &mut fidl::encoding::Encoder<'_, D>,
1126 offset: usize,
1127 _depth: fidl::encoding::Depth,
1128 ) -> fidl::Result<()> {
1129 encoder.debug_check_bounds::<Self>(offset);
1130 encoder.write_num(self.into_primitive(), offset);
1131 Ok(())
1132 }
1133 }
1134
1135 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigurationError {
1136 #[inline(always)]
1137 fn new_empty() -> Self {
1138 Self::unknown()
1139 }
1140
1141 #[inline]
1142 unsafe fn decode(
1143 &mut self,
1144 decoder: &mut fidl::encoding::Decoder<'_, D>,
1145 offset: usize,
1146 _depth: fidl::encoding::Depth,
1147 ) -> fidl::Result<()> {
1148 decoder.debug_check_bounds::<Self>(offset);
1149 let prim = decoder.read_num::<u32>(offset);
1150
1151 *self = Self::from_primitive_allow_unknown(prim);
1152 Ok(())
1153 }
1154 }
1155 unsafe impl fidl::encoding::TypeMarker for DataType {
1156 type Owned = Self;
1157
1158 #[inline(always)]
1159 fn inline_align(_context: fidl::encoding::Context) -> usize {
1160 std::mem::align_of::<u8>()
1161 }
1162
1163 #[inline(always)]
1164 fn inline_size(_context: fidl::encoding::Context) -> usize {
1165 std::mem::size_of::<u8>()
1166 }
1167
1168 #[inline(always)]
1169 fn encode_is_copy() -> bool {
1170 true
1171 }
1172
1173 #[inline(always)]
1174 fn decode_is_copy() -> bool {
1175 false
1176 }
1177 }
1178
1179 impl fidl::encoding::ValueTypeMarker for DataType {
1180 type Borrowed<'a> = Self;
1181 #[inline(always)]
1182 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1183 *value
1184 }
1185 }
1186
1187 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DataType {
1188 #[inline]
1189 unsafe fn encode(
1190 self,
1191 encoder: &mut fidl::encoding::Encoder<'_, D>,
1192 offset: usize,
1193 _depth: fidl::encoding::Depth,
1194 ) -> fidl::Result<()> {
1195 encoder.debug_check_bounds::<Self>(offset);
1196 encoder.write_num(self.into_primitive(), offset);
1197 Ok(())
1198 }
1199 }
1200
1201 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DataType {
1202 #[inline(always)]
1203 fn new_empty() -> Self {
1204 Self::Inspect
1205 }
1206
1207 #[inline]
1208 unsafe fn decode(
1209 &mut self,
1210 decoder: &mut fidl::encoding::Decoder<'_, D>,
1211 offset: usize,
1212 _depth: fidl::encoding::Depth,
1213 ) -> fidl::Result<()> {
1214 decoder.debug_check_bounds::<Self>(offset);
1215 let prim = decoder.read_num::<u8>(offset);
1216
1217 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1218 Ok(())
1219 }
1220 }
1221 unsafe impl fidl::encoding::TypeMarker for Format {
1222 type Owned = Self;
1223
1224 #[inline(always)]
1225 fn inline_align(_context: fidl::encoding::Context) -> usize {
1226 std::mem::align_of::<u32>()
1227 }
1228
1229 #[inline(always)]
1230 fn inline_size(_context: fidl::encoding::Context) -> usize {
1231 std::mem::size_of::<u32>()
1232 }
1233
1234 #[inline(always)]
1235 fn encode_is_copy() -> bool {
1236 true
1237 }
1238
1239 #[inline(always)]
1240 fn decode_is_copy() -> bool {
1241 false
1242 }
1243 }
1244
1245 impl fidl::encoding::ValueTypeMarker for Format {
1246 type Borrowed<'a> = Self;
1247 #[inline(always)]
1248 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1249 *value
1250 }
1251 }
1252
1253 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Format {
1254 #[inline]
1255 unsafe fn encode(
1256 self,
1257 encoder: &mut fidl::encoding::Encoder<'_, D>,
1258 offset: usize,
1259 _depth: fidl::encoding::Depth,
1260 ) -> fidl::Result<()> {
1261 encoder.debug_check_bounds::<Self>(offset);
1262 encoder.write_num(self.into_primitive(), offset);
1263 Ok(())
1264 }
1265 }
1266
1267 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
1268 #[inline(always)]
1269 fn new_empty() -> Self {
1270 Self::Json
1271 }
1272
1273 #[inline]
1274 unsafe fn decode(
1275 &mut self,
1276 decoder: &mut fidl::encoding::Decoder<'_, D>,
1277 offset: usize,
1278 _depth: fidl::encoding::Depth,
1279 ) -> fidl::Result<()> {
1280 decoder.debug_check_bounds::<Self>(offset);
1281 let prim = decoder.read_num::<u32>(offset);
1282
1283 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1284 Ok(())
1285 }
1286 }
1287 unsafe impl fidl::encoding::TypeMarker for PowerEvent {
1288 type Owned = Self;
1289
1290 #[inline(always)]
1291 fn inline_align(_context: fidl::encoding::Context) -> usize {
1292 std::mem::align_of::<u32>()
1293 }
1294
1295 #[inline(always)]
1296 fn inline_size(_context: fidl::encoding::Context) -> usize {
1297 std::mem::size_of::<u32>()
1298 }
1299
1300 #[inline(always)]
1301 fn encode_is_copy() -> bool {
1302 false
1303 }
1304
1305 #[inline(always)]
1306 fn decode_is_copy() -> bool {
1307 false
1308 }
1309 }
1310
1311 impl fidl::encoding::ValueTypeMarker for PowerEvent {
1312 type Borrowed<'a> = Self;
1313 #[inline(always)]
1314 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1315 *value
1316 }
1317 }
1318
1319 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PowerEvent {
1320 #[inline]
1321 unsafe fn encode(
1322 self,
1323 encoder: &mut fidl::encoding::Encoder<'_, D>,
1324 offset: usize,
1325 _depth: fidl::encoding::Depth,
1326 ) -> fidl::Result<()> {
1327 encoder.debug_check_bounds::<Self>(offset);
1328 encoder.write_num(self.into_primitive(), offset);
1329 Ok(())
1330 }
1331 }
1332
1333 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PowerEvent {
1334 #[inline(always)]
1335 fn new_empty() -> Self {
1336 Self::unknown()
1337 }
1338
1339 #[inline]
1340 unsafe fn decode(
1341 &mut self,
1342 decoder: &mut fidl::encoding::Decoder<'_, D>,
1343 offset: usize,
1344 _depth: fidl::encoding::Depth,
1345 ) -> fidl::Result<()> {
1346 decoder.debug_check_bounds::<Self>(offset);
1347 let prim = decoder.read_num::<u32>(offset);
1348
1349 *self = Self::from_primitive_allow_unknown(prim);
1350 Ok(())
1351 }
1352 }
1353 unsafe impl fidl::encoding::TypeMarker for ReaderError {
1354 type Owned = Self;
1355
1356 #[inline(always)]
1357 fn inline_align(_context: fidl::encoding::Context) -> usize {
1358 std::mem::align_of::<u32>()
1359 }
1360
1361 #[inline(always)]
1362 fn inline_size(_context: fidl::encoding::Context) -> usize {
1363 std::mem::size_of::<u32>()
1364 }
1365
1366 #[inline(always)]
1367 fn encode_is_copy() -> bool {
1368 true
1369 }
1370
1371 #[inline(always)]
1372 fn decode_is_copy() -> bool {
1373 false
1374 }
1375 }
1376
1377 impl fidl::encoding::ValueTypeMarker for ReaderError {
1378 type Borrowed<'a> = Self;
1379 #[inline(always)]
1380 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1381 *value
1382 }
1383 }
1384
1385 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ReaderError {
1386 #[inline]
1387 unsafe fn encode(
1388 self,
1389 encoder: &mut fidl::encoding::Encoder<'_, D>,
1390 offset: usize,
1391 _depth: fidl::encoding::Depth,
1392 ) -> fidl::Result<()> {
1393 encoder.debug_check_bounds::<Self>(offset);
1394 encoder.write_num(self.into_primitive(), offset);
1395 Ok(())
1396 }
1397 }
1398
1399 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ReaderError {
1400 #[inline(always)]
1401 fn new_empty() -> Self {
1402 Self::Io
1403 }
1404
1405 #[inline]
1406 unsafe fn decode(
1407 &mut self,
1408 decoder: &mut fidl::encoding::Decoder<'_, D>,
1409 offset: usize,
1410 _depth: fidl::encoding::Depth,
1411 ) -> fidl::Result<()> {
1412 decoder.debug_check_bounds::<Self>(offset);
1413 let prim = decoder.read_num::<u32>(offset);
1414
1415 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1416 Ok(())
1417 }
1418 }
1419 unsafe impl fidl::encoding::TypeMarker for RuntimeError {
1420 type Owned = Self;
1421
1422 #[inline(always)]
1423 fn inline_align(_context: fidl::encoding::Context) -> usize {
1424 std::mem::align_of::<u32>()
1425 }
1426
1427 #[inline(always)]
1428 fn inline_size(_context: fidl::encoding::Context) -> usize {
1429 std::mem::size_of::<u32>()
1430 }
1431
1432 #[inline(always)]
1433 fn encode_is_copy() -> bool {
1434 false
1435 }
1436
1437 #[inline(always)]
1438 fn decode_is_copy() -> bool {
1439 false
1440 }
1441 }
1442
1443 impl fidl::encoding::ValueTypeMarker for RuntimeError {
1444 type Borrowed<'a> = Self;
1445 #[inline(always)]
1446 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1447 *value
1448 }
1449 }
1450
1451 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for RuntimeError {
1452 #[inline]
1453 unsafe fn encode(
1454 self,
1455 encoder: &mut fidl::encoding::Encoder<'_, D>,
1456 offset: usize,
1457 _depth: fidl::encoding::Depth,
1458 ) -> fidl::Result<()> {
1459 encoder.debug_check_bounds::<Self>(offset);
1460 encoder.write_num(self.into_primitive(), offset);
1461 Ok(())
1462 }
1463 }
1464
1465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RuntimeError {
1466 #[inline(always)]
1467 fn new_empty() -> Self {
1468 Self::unknown()
1469 }
1470
1471 #[inline]
1472 unsafe fn decode(
1473 &mut self,
1474 decoder: &mut fidl::encoding::Decoder<'_, D>,
1475 offset: usize,
1476 _depth: fidl::encoding::Depth,
1477 ) -> fidl::Result<()> {
1478 decoder.debug_check_bounds::<Self>(offset);
1479 let prim = decoder.read_num::<u32>(offset);
1480
1481 *self = Self::from_primitive_allow_unknown(prim);
1482 Ok(())
1483 }
1484 }
1485 unsafe impl fidl::encoding::TypeMarker for SampleStrategy {
1486 type Owned = Self;
1487
1488 #[inline(always)]
1489 fn inline_align(_context: fidl::encoding::Context) -> usize {
1490 std::mem::align_of::<u8>()
1491 }
1492
1493 #[inline(always)]
1494 fn inline_size(_context: fidl::encoding::Context) -> usize {
1495 std::mem::size_of::<u8>()
1496 }
1497
1498 #[inline(always)]
1499 fn encode_is_copy() -> bool {
1500 false
1501 }
1502
1503 #[inline(always)]
1504 fn decode_is_copy() -> bool {
1505 false
1506 }
1507 }
1508
1509 impl fidl::encoding::ValueTypeMarker for SampleStrategy {
1510 type Borrowed<'a> = Self;
1511 #[inline(always)]
1512 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1513 *value
1514 }
1515 }
1516
1517 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SampleStrategy {
1518 #[inline]
1519 unsafe fn encode(
1520 self,
1521 encoder: &mut fidl::encoding::Encoder<'_, D>,
1522 offset: usize,
1523 _depth: fidl::encoding::Depth,
1524 ) -> fidl::Result<()> {
1525 encoder.debug_check_bounds::<Self>(offset);
1526 encoder.write_num(self.into_primitive(), offset);
1527 Ok(())
1528 }
1529 }
1530
1531 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleStrategy {
1532 #[inline(always)]
1533 fn new_empty() -> Self {
1534 Self::unknown()
1535 }
1536
1537 #[inline]
1538 unsafe fn decode(
1539 &mut self,
1540 decoder: &mut fidl::encoding::Decoder<'_, D>,
1541 offset: usize,
1542 _depth: fidl::encoding::Depth,
1543 ) -> fidl::Result<()> {
1544 decoder.debug_check_bounds::<Self>(offset);
1545 let prim = decoder.read_num::<u8>(offset);
1546
1547 *self = Self::from_primitive_allow_unknown(prim);
1548 Ok(())
1549 }
1550 }
1551 unsafe impl fidl::encoding::TypeMarker for StreamMode {
1552 type Owned = Self;
1553
1554 #[inline(always)]
1555 fn inline_align(_context: fidl::encoding::Context) -> usize {
1556 std::mem::align_of::<u8>()
1557 }
1558
1559 #[inline(always)]
1560 fn inline_size(_context: fidl::encoding::Context) -> usize {
1561 std::mem::size_of::<u8>()
1562 }
1563
1564 #[inline(always)]
1565 fn encode_is_copy() -> bool {
1566 true
1567 }
1568
1569 #[inline(always)]
1570 fn decode_is_copy() -> bool {
1571 false
1572 }
1573 }
1574
1575 impl fidl::encoding::ValueTypeMarker for StreamMode {
1576 type Borrowed<'a> = Self;
1577 #[inline(always)]
1578 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1579 *value
1580 }
1581 }
1582
1583 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamMode {
1584 #[inline]
1585 unsafe fn encode(
1586 self,
1587 encoder: &mut fidl::encoding::Encoder<'_, D>,
1588 offset: usize,
1589 _depth: fidl::encoding::Depth,
1590 ) -> fidl::Result<()> {
1591 encoder.debug_check_bounds::<Self>(offset);
1592 encoder.write_num(self.into_primitive(), offset);
1593 Ok(())
1594 }
1595 }
1596
1597 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamMode {
1598 #[inline(always)]
1599 fn new_empty() -> Self {
1600 Self::Snapshot
1601 }
1602
1603 #[inline]
1604 unsafe fn decode(
1605 &mut self,
1606 decoder: &mut fidl::encoding::Decoder<'_, D>,
1607 offset: usize,
1608 _depth: fidl::encoding::Depth,
1609 ) -> fidl::Result<()> {
1610 decoder.debug_check_bounds::<Self>(offset);
1611 let prim = decoder.read_num::<u8>(offset);
1612
1613 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1614 Ok(())
1615 }
1616 }
1617
1618 impl fidl::encoding::ValueTypeMarker for All {
1619 type Borrowed<'a> = &'a Self;
1620 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1621 value
1622 }
1623 }
1624
1625 unsafe impl fidl::encoding::TypeMarker for All {
1626 type Owned = Self;
1627
1628 #[inline(always)]
1629 fn inline_align(_context: fidl::encoding::Context) -> usize {
1630 1
1631 }
1632
1633 #[inline(always)]
1634 fn inline_size(_context: fidl::encoding::Context) -> usize {
1635 1
1636 }
1637 }
1638
1639 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<All, D> for &All {
1640 #[inline]
1641 unsafe fn encode(
1642 self,
1643 encoder: &mut fidl::encoding::Encoder<'_, D>,
1644 offset: usize,
1645 _depth: fidl::encoding::Depth,
1646 ) -> fidl::Result<()> {
1647 encoder.debug_check_bounds::<All>(offset);
1648 encoder.write_num(0u8, offset);
1649 Ok(())
1650 }
1651 }
1652
1653 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for All {
1654 #[inline(always)]
1655 fn new_empty() -> Self {
1656 Self
1657 }
1658
1659 #[inline]
1660 unsafe fn decode(
1661 &mut self,
1662 decoder: &mut fidl::encoding::Decoder<'_, D>,
1663 offset: usize,
1664 _depth: fidl::encoding::Depth,
1665 ) -> fidl::Result<()> {
1666 decoder.debug_check_bounds::<Self>(offset);
1667 match decoder.read_num::<u8>(offset) {
1668 0 => Ok(()),
1669 _ => Err(fidl::Error::Invalid),
1670 }
1671 }
1672 }
1673
1674 impl fidl::encoding::ValueTypeMarker for LogInterestSelector {
1675 type Borrowed<'a> = &'a Self;
1676 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1677 value
1678 }
1679 }
1680
1681 unsafe impl fidl::encoding::TypeMarker for LogInterestSelector {
1682 type Owned = Self;
1683
1684 #[inline(always)]
1685 fn inline_align(_context: fidl::encoding::Context) -> usize {
1686 8
1687 }
1688
1689 #[inline(always)]
1690 fn inline_size(_context: fidl::encoding::Context) -> usize {
1691 32
1692 }
1693 }
1694
1695 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogInterestSelector, D>
1696 for &LogInterestSelector
1697 {
1698 #[inline]
1699 unsafe fn encode(
1700 self,
1701 encoder: &mut fidl::encoding::Encoder<'_, D>,
1702 offset: usize,
1703 _depth: fidl::encoding::Depth,
1704 ) -> fidl::Result<()> {
1705 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1706 fidl::encoding::Encode::<LogInterestSelector, D>::encode(
1708 (
1709 <ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.selector),
1710 <fidl_fuchsia_diagnostics_types_common::Interest as fidl::encoding::ValueTypeMarker>::borrow(&self.interest),
1711 ),
1712 encoder, offset, _depth
1713 )
1714 }
1715 }
1716 unsafe impl<
1717 D: fidl::encoding::ResourceDialect,
1718 T0: fidl::encoding::Encode<ComponentSelector, D>,
1719 T1: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types_common::Interest, D>,
1720 > fidl::encoding::Encode<LogInterestSelector, D> for (T0, T1)
1721 {
1722 #[inline]
1723 unsafe fn encode(
1724 self,
1725 encoder: &mut fidl::encoding::Encoder<'_, D>,
1726 offset: usize,
1727 depth: fidl::encoding::Depth,
1728 ) -> fidl::Result<()> {
1729 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1730 self.0.encode(encoder, offset + 0, depth)?;
1734 self.1.encode(encoder, offset + 16, depth)?;
1735 Ok(())
1736 }
1737 }
1738
1739 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogInterestSelector {
1740 #[inline(always)]
1741 fn new_empty() -> Self {
1742 Self {
1743 selector: fidl::new_empty!(ComponentSelector, D),
1744 interest: fidl::new_empty!(fidl_fuchsia_diagnostics_types_common::Interest, D),
1745 }
1746 }
1747
1748 #[inline]
1749 unsafe fn decode(
1750 &mut self,
1751 decoder: &mut fidl::encoding::Decoder<'_, D>,
1752 offset: usize,
1753 _depth: fidl::encoding::Depth,
1754 ) -> fidl::Result<()> {
1755 decoder.debug_check_bounds::<Self>(offset);
1756 fidl::decode!(ComponentSelector, D, &mut self.selector, decoder, offset + 0, _depth)?;
1758 fidl::decode!(
1759 fidl_fuchsia_diagnostics_types_common::Interest,
1760 D,
1761 &mut self.interest,
1762 decoder,
1763 offset + 16,
1764 _depth
1765 )?;
1766 Ok(())
1767 }
1768 }
1769
1770 impl fidl::encoding::ValueTypeMarker for PropertySelector {
1771 type Borrowed<'a> = &'a Self;
1772 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1773 value
1774 }
1775 }
1776
1777 unsafe impl fidl::encoding::TypeMarker for PropertySelector {
1778 type Owned = Self;
1779
1780 #[inline(always)]
1781 fn inline_align(_context: fidl::encoding::Context) -> usize {
1782 8
1783 }
1784
1785 #[inline(always)]
1786 fn inline_size(_context: fidl::encoding::Context) -> usize {
1787 32
1788 }
1789 }
1790
1791 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PropertySelector, D>
1792 for &PropertySelector
1793 {
1794 #[inline]
1795 unsafe fn encode(
1796 self,
1797 encoder: &mut fidl::encoding::Encoder<'_, D>,
1798 offset: usize,
1799 _depth: fidl::encoding::Depth,
1800 ) -> fidl::Result<()> {
1801 encoder.debug_check_bounds::<PropertySelector>(offset);
1802 fidl::encoding::Encode::<PropertySelector, D>::encode(
1804 (
1805 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1806 <StringSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.target_properties),
1807 ),
1808 encoder, offset, _depth
1809 )
1810 }
1811 }
1812 unsafe impl<
1813 D: fidl::encoding::ResourceDialect,
1814 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1815 T1: fidl::encoding::Encode<StringSelector, D>,
1816 > fidl::encoding::Encode<PropertySelector, D> for (T0, T1)
1817 {
1818 #[inline]
1819 unsafe fn encode(
1820 self,
1821 encoder: &mut fidl::encoding::Encoder<'_, D>,
1822 offset: usize,
1823 depth: fidl::encoding::Depth,
1824 ) -> fidl::Result<()> {
1825 encoder.debug_check_bounds::<PropertySelector>(offset);
1826 self.0.encode(encoder, offset + 0, depth)?;
1830 self.1.encode(encoder, offset + 16, depth)?;
1831 Ok(())
1832 }
1833 }
1834
1835 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PropertySelector {
1836 #[inline(always)]
1837 fn new_empty() -> Self {
1838 Self {
1839 node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D),
1840 target_properties: fidl::new_empty!(StringSelector, D),
1841 }
1842 }
1843
1844 #[inline]
1845 unsafe fn decode(
1846 &mut self,
1847 decoder: &mut fidl::encoding::Decoder<'_, D>,
1848 offset: usize,
1849 _depth: fidl::encoding::Depth,
1850 ) -> fidl::Result<()> {
1851 decoder.debug_check_bounds::<Self>(offset);
1852 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1854 fidl::decode!(
1855 StringSelector,
1856 D,
1857 &mut self.target_properties,
1858 decoder,
1859 offset + 16,
1860 _depth
1861 )?;
1862 Ok(())
1863 }
1864 }
1865
1866 impl fidl::encoding::ValueTypeMarker for SaltProviderGetSaltResponse {
1867 type Borrowed<'a> = &'a Self;
1868 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1869 value
1870 }
1871 }
1872
1873 unsafe impl fidl::encoding::TypeMarker for SaltProviderGetSaltResponse {
1874 type Owned = Self;
1875
1876 #[inline(always)]
1877 fn inline_align(_context: fidl::encoding::Context) -> usize {
1878 1
1879 }
1880
1881 #[inline(always)]
1882 fn inline_size(_context: fidl::encoding::Context) -> usize {
1883 32
1884 }
1885 #[inline(always)]
1886 fn encode_is_copy() -> bool {
1887 true
1888 }
1889
1890 #[inline(always)]
1891 fn decode_is_copy() -> bool {
1892 true
1893 }
1894 }
1895
1896 unsafe impl<D: fidl::encoding::ResourceDialect>
1897 fidl::encoding::Encode<SaltProviderGetSaltResponse, D> for &SaltProviderGetSaltResponse
1898 {
1899 #[inline]
1900 unsafe fn encode(
1901 self,
1902 encoder: &mut fidl::encoding::Encoder<'_, D>,
1903 offset: usize,
1904 _depth: fidl::encoding::Depth,
1905 ) -> fidl::Result<()> {
1906 encoder.debug_check_bounds::<SaltProviderGetSaltResponse>(offset);
1907 unsafe {
1908 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1910 (buf_ptr as *mut SaltProviderGetSaltResponse)
1911 .write_unaligned((self as *const SaltProviderGetSaltResponse).read());
1912 }
1915 Ok(())
1916 }
1917 }
1918 unsafe impl<
1919 D: fidl::encoding::ResourceDialect,
1920 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 32>, D>,
1921 > fidl::encoding::Encode<SaltProviderGetSaltResponse, D> for (T0,)
1922 {
1923 #[inline]
1924 unsafe fn encode(
1925 self,
1926 encoder: &mut fidl::encoding::Encoder<'_, D>,
1927 offset: usize,
1928 depth: fidl::encoding::Depth,
1929 ) -> fidl::Result<()> {
1930 encoder.debug_check_bounds::<SaltProviderGetSaltResponse>(offset);
1931 self.0.encode(encoder, offset + 0, depth)?;
1935 Ok(())
1936 }
1937 }
1938
1939 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1940 for SaltProviderGetSaltResponse
1941 {
1942 #[inline(always)]
1943 fn new_empty() -> Self {
1944 Self { salt: fidl::new_empty!(fidl::encoding::Array<u8, 32>, D) }
1945 }
1946
1947 #[inline]
1948 unsafe fn decode(
1949 &mut self,
1950 decoder: &mut fidl::encoding::Decoder<'_, D>,
1951 offset: usize,
1952 _depth: fidl::encoding::Depth,
1953 ) -> fidl::Result<()> {
1954 decoder.debug_check_bounds::<Self>(offset);
1955 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1956 unsafe {
1959 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 32);
1960 }
1961 Ok(())
1962 }
1963 }
1964
1965 impl fidl::encoding::ValueTypeMarker for SubtreeSelector {
1966 type Borrowed<'a> = &'a Self;
1967 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1968 value
1969 }
1970 }
1971
1972 unsafe impl fidl::encoding::TypeMarker for SubtreeSelector {
1973 type Owned = Self;
1974
1975 #[inline(always)]
1976 fn inline_align(_context: fidl::encoding::Context) -> usize {
1977 8
1978 }
1979
1980 #[inline(always)]
1981 fn inline_size(_context: fidl::encoding::Context) -> usize {
1982 16
1983 }
1984 }
1985
1986 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubtreeSelector, D>
1987 for &SubtreeSelector
1988 {
1989 #[inline]
1990 unsafe fn encode(
1991 self,
1992 encoder: &mut fidl::encoding::Encoder<'_, D>,
1993 offset: usize,
1994 _depth: fidl::encoding::Depth,
1995 ) -> fidl::Result<()> {
1996 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1997 fidl::encoding::Encode::<SubtreeSelector, D>::encode(
1999 (
2000 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
2001 ),
2002 encoder, offset, _depth
2003 )
2004 }
2005 }
2006 unsafe impl<
2007 D: fidl::encoding::ResourceDialect,
2008 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
2009 > fidl::encoding::Encode<SubtreeSelector, D> for (T0,)
2010 {
2011 #[inline]
2012 unsafe fn encode(
2013 self,
2014 encoder: &mut fidl::encoding::Encoder<'_, D>,
2015 offset: usize,
2016 depth: fidl::encoding::Depth,
2017 ) -> fidl::Result<()> {
2018 encoder.debug_check_bounds::<SubtreeSelector>(offset);
2019 self.0.encode(encoder, offset + 0, depth)?;
2023 Ok(())
2024 }
2025 }
2026
2027 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubtreeSelector {
2028 #[inline(always)]
2029 fn new_empty() -> Self {
2030 Self { node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D) }
2031 }
2032
2033 #[inline]
2034 unsafe fn decode(
2035 &mut self,
2036 decoder: &mut fidl::encoding::Decoder<'_, D>,
2037 offset: usize,
2038 _depth: fidl::encoding::Depth,
2039 ) -> fidl::Result<()> {
2040 decoder.debug_check_bounds::<Self>(offset);
2041 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
2043 Ok(())
2044 }
2045 }
2046
2047 impl fidl::encoding::ValueTypeMarker for SystemActivityMonitorGetNextEventResponse {
2048 type Borrowed<'a> = &'a Self;
2049 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2050 value
2051 }
2052 }
2053
2054 unsafe impl fidl::encoding::TypeMarker for SystemActivityMonitorGetNextEventResponse {
2055 type Owned = Self;
2056
2057 #[inline(always)]
2058 fn inline_align(_context: fidl::encoding::Context) -> usize {
2059 8
2060 }
2061
2062 #[inline(always)]
2063 fn inline_size(_context: fidl::encoding::Context) -> usize {
2064 16
2065 }
2066 }
2067
2068 unsafe impl<D: fidl::encoding::ResourceDialect>
2069 fidl::encoding::Encode<SystemActivityMonitorGetNextEventResponse, D>
2070 for &SystemActivityMonitorGetNextEventResponse
2071 {
2072 #[inline]
2073 unsafe fn encode(
2074 self,
2075 encoder: &mut fidl::encoding::Encoder<'_, D>,
2076 offset: usize,
2077 _depth: fidl::encoding::Depth,
2078 ) -> fidl::Result<()> {
2079 encoder.debug_check_bounds::<SystemActivityMonitorGetNextEventResponse>(offset);
2080 fidl::encoding::Encode::<SystemActivityMonitorGetNextEventResponse, D>::encode(
2082 (<SystemActivityEvent as fidl::encoding::ValueTypeMarker>::borrow(&self.event),),
2083 encoder,
2084 offset,
2085 _depth,
2086 )
2087 }
2088 }
2089 unsafe impl<
2090 D: fidl::encoding::ResourceDialect,
2091 T0: fidl::encoding::Encode<SystemActivityEvent, D>,
2092 > fidl::encoding::Encode<SystemActivityMonitorGetNextEventResponse, D> for (T0,)
2093 {
2094 #[inline]
2095 unsafe fn encode(
2096 self,
2097 encoder: &mut fidl::encoding::Encoder<'_, D>,
2098 offset: usize,
2099 depth: fidl::encoding::Depth,
2100 ) -> fidl::Result<()> {
2101 encoder.debug_check_bounds::<SystemActivityMonitorGetNextEventResponse>(offset);
2102 self.0.encode(encoder, offset + 0, depth)?;
2106 Ok(())
2107 }
2108 }
2109
2110 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2111 for SystemActivityMonitorGetNextEventResponse
2112 {
2113 #[inline(always)]
2114 fn new_empty() -> Self {
2115 Self { event: fidl::new_empty!(SystemActivityEvent, D) }
2116 }
2117
2118 #[inline]
2119 unsafe fn decode(
2120 &mut self,
2121 decoder: &mut fidl::encoding::Decoder<'_, D>,
2122 offset: usize,
2123 _depth: fidl::encoding::Depth,
2124 ) -> fidl::Result<()> {
2125 decoder.debug_check_bounds::<Self>(offset);
2126 fidl::decode!(SystemActivityEvent, D, &mut self.event, decoder, offset + 0, _depth)?;
2128 Ok(())
2129 }
2130 }
2131
2132 impl ComponentSelector {
2133 #[inline(always)]
2134 fn max_ordinal_present(&self) -> u64 {
2135 if let Some(_) = self.moniker_segments {
2136 return 1;
2137 }
2138 0
2139 }
2140 }
2141
2142 impl fidl::encoding::ValueTypeMarker for ComponentSelector {
2143 type Borrowed<'a> = &'a Self;
2144 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2145 value
2146 }
2147 }
2148
2149 unsafe impl fidl::encoding::TypeMarker for ComponentSelector {
2150 type Owned = Self;
2151
2152 #[inline(always)]
2153 fn inline_align(_context: fidl::encoding::Context) -> usize {
2154 8
2155 }
2156
2157 #[inline(always)]
2158 fn inline_size(_context: fidl::encoding::Context) -> usize {
2159 16
2160 }
2161 }
2162
2163 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentSelector, D>
2164 for &ComponentSelector
2165 {
2166 unsafe fn encode(
2167 self,
2168 encoder: &mut fidl::encoding::Encoder<'_, D>,
2169 offset: usize,
2170 mut depth: fidl::encoding::Depth,
2171 ) -> fidl::Result<()> {
2172 encoder.debug_check_bounds::<ComponentSelector>(offset);
2173 let max_ordinal: u64 = self.max_ordinal_present();
2175 encoder.write_num(max_ordinal, offset);
2176 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2177 if max_ordinal == 0 {
2179 return Ok(());
2180 }
2181 depth.increment()?;
2182 let envelope_size = 8;
2183 let bytes_len = max_ordinal as usize * envelope_size;
2184 #[allow(unused_variables)]
2185 let offset = encoder.out_of_line_offset(bytes_len);
2186 let mut _prev_end_offset: usize = 0;
2187 if 1 > max_ordinal {
2188 return Ok(());
2189 }
2190
2191 let cur_offset: usize = (1 - 1) * envelope_size;
2194
2195 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2197
2198 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<StringSelector, 25>, D>(
2203 self.moniker_segments.as_ref().map(<fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::ValueTypeMarker>::borrow),
2204 encoder, offset + cur_offset, depth
2205 )?;
2206
2207 _prev_end_offset = cur_offset + envelope_size;
2208
2209 Ok(())
2210 }
2211 }
2212
2213 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentSelector {
2214 #[inline(always)]
2215 fn new_empty() -> Self {
2216 Self::default()
2217 }
2218
2219 unsafe fn decode(
2220 &mut self,
2221 decoder: &mut fidl::encoding::Decoder<'_, D>,
2222 offset: usize,
2223 mut depth: fidl::encoding::Depth,
2224 ) -> fidl::Result<()> {
2225 decoder.debug_check_bounds::<Self>(offset);
2226 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2227 None => return Err(fidl::Error::NotNullable),
2228 Some(len) => len,
2229 };
2230 if len == 0 {
2232 return Ok(());
2233 };
2234 depth.increment()?;
2235 let envelope_size = 8;
2236 let bytes_len = len * envelope_size;
2237 let offset = decoder.out_of_line_offset(bytes_len)?;
2238 let mut _next_ordinal_to_read = 0;
2240 let mut next_offset = offset;
2241 let end_offset = offset + bytes_len;
2242 _next_ordinal_to_read += 1;
2243 if next_offset >= end_offset {
2244 return Ok(());
2245 }
2246
2247 while _next_ordinal_to_read < 1 {
2249 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2250 _next_ordinal_to_read += 1;
2251 next_offset += envelope_size;
2252 }
2253
2254 let next_out_of_line = decoder.next_out_of_line();
2255 let handles_before = decoder.remaining_handles();
2256 if let Some((inlined, num_bytes, num_handles)) =
2257 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2258 {
2259 let member_inline_size = <fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2260 if inlined != (member_inline_size <= 4) {
2261 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2262 }
2263 let inner_offset;
2264 let mut inner_depth = depth.clone();
2265 if inlined {
2266 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2267 inner_offset = next_offset;
2268 } else {
2269 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2270 inner_depth.increment()?;
2271 }
2272 let val_ref = self.moniker_segments.get_or_insert_with(
2273 || fidl::new_empty!(fidl::encoding::Vector<StringSelector, 25>, D),
2274 );
2275 fidl::decode!(fidl::encoding::Vector<StringSelector, 25>, D, val_ref, decoder, inner_offset, inner_depth)?;
2276 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2277 {
2278 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2279 }
2280 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2281 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2282 }
2283 }
2284
2285 next_offset += envelope_size;
2286
2287 while next_offset < end_offset {
2289 _next_ordinal_to_read += 1;
2290 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2291 next_offset += envelope_size;
2292 }
2293
2294 Ok(())
2295 }
2296 }
2297
2298 impl LogSettingsSetComponentInterestRequest {
2299 #[inline(always)]
2300 fn max_ordinal_present(&self) -> u64 {
2301 if let Some(_) = self.persist {
2302 return 2;
2303 }
2304 if let Some(_) = self.selectors {
2305 return 1;
2306 }
2307 0
2308 }
2309 }
2310
2311 impl fidl::encoding::ValueTypeMarker for LogSettingsSetComponentInterestRequest {
2312 type Borrowed<'a> = &'a Self;
2313 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2314 value
2315 }
2316 }
2317
2318 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetComponentInterestRequest {
2319 type Owned = Self;
2320
2321 #[inline(always)]
2322 fn inline_align(_context: fidl::encoding::Context) -> usize {
2323 8
2324 }
2325
2326 #[inline(always)]
2327 fn inline_size(_context: fidl::encoding::Context) -> usize {
2328 16
2329 }
2330 }
2331
2332 unsafe impl<D: fidl::encoding::ResourceDialect>
2333 fidl::encoding::Encode<LogSettingsSetComponentInterestRequest, D>
2334 for &LogSettingsSetComponentInterestRequest
2335 {
2336 unsafe fn encode(
2337 self,
2338 encoder: &mut fidl::encoding::Encoder<'_, D>,
2339 offset: usize,
2340 mut depth: fidl::encoding::Depth,
2341 ) -> fidl::Result<()> {
2342 encoder.debug_check_bounds::<LogSettingsSetComponentInterestRequest>(offset);
2343 let max_ordinal: u64 = self.max_ordinal_present();
2345 encoder.write_num(max_ordinal, offset);
2346 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2347 if max_ordinal == 0 {
2349 return Ok(());
2350 }
2351 depth.increment()?;
2352 let envelope_size = 8;
2353 let bytes_len = max_ordinal as usize * envelope_size;
2354 #[allow(unused_variables)]
2355 let offset = encoder.out_of_line_offset(bytes_len);
2356 let mut _prev_end_offset: usize = 0;
2357 if 1 > max_ordinal {
2358 return Ok(());
2359 }
2360
2361 let cur_offset: usize = (1 - 1) * envelope_size;
2364
2365 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2367
2368 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<LogInterestSelector, 64>, D>(
2373 self.selectors.as_ref().map(<fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow),
2374 encoder, offset + cur_offset, depth
2375 )?;
2376
2377 _prev_end_offset = cur_offset + envelope_size;
2378 if 2 > max_ordinal {
2379 return Ok(());
2380 }
2381
2382 let cur_offset: usize = (2 - 1) * envelope_size;
2385
2386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2388
2389 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2394 self.persist.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2395 encoder,
2396 offset + cur_offset,
2397 depth,
2398 )?;
2399
2400 _prev_end_offset = cur_offset + envelope_size;
2401
2402 Ok(())
2403 }
2404 }
2405
2406 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2407 for LogSettingsSetComponentInterestRequest
2408 {
2409 #[inline(always)]
2410 fn new_empty() -> Self {
2411 Self::default()
2412 }
2413
2414 unsafe fn decode(
2415 &mut self,
2416 decoder: &mut fidl::encoding::Decoder<'_, D>,
2417 offset: usize,
2418 mut depth: fidl::encoding::Depth,
2419 ) -> fidl::Result<()> {
2420 decoder.debug_check_bounds::<Self>(offset);
2421 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2422 None => return Err(fidl::Error::NotNullable),
2423 Some(len) => len,
2424 };
2425 if len == 0 {
2427 return Ok(());
2428 };
2429 depth.increment()?;
2430 let envelope_size = 8;
2431 let bytes_len = len * envelope_size;
2432 let offset = decoder.out_of_line_offset(bytes_len)?;
2433 let mut _next_ordinal_to_read = 0;
2435 let mut next_offset = offset;
2436 let end_offset = offset + bytes_len;
2437 _next_ordinal_to_read += 1;
2438 if next_offset >= end_offset {
2439 return Ok(());
2440 }
2441
2442 while _next_ordinal_to_read < 1 {
2444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2445 _next_ordinal_to_read += 1;
2446 next_offset += envelope_size;
2447 }
2448
2449 let next_out_of_line = decoder.next_out_of_line();
2450 let handles_before = decoder.remaining_handles();
2451 if let Some((inlined, num_bytes, num_handles)) =
2452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2453 {
2454 let member_inline_size = <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2455 if inlined != (member_inline_size <= 4) {
2456 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2457 }
2458 let inner_offset;
2459 let mut inner_depth = depth.clone();
2460 if inlined {
2461 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2462 inner_offset = next_offset;
2463 } else {
2464 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2465 inner_depth.increment()?;
2466 }
2467 let val_ref = self.selectors.get_or_insert_with(
2468 || fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D),
2469 );
2470 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
2471 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2472 {
2473 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2474 }
2475 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2476 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2477 }
2478 }
2479
2480 next_offset += envelope_size;
2481 _next_ordinal_to_read += 1;
2482 if next_offset >= end_offset {
2483 return Ok(());
2484 }
2485
2486 while _next_ordinal_to_read < 2 {
2488 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2489 _next_ordinal_to_read += 1;
2490 next_offset += envelope_size;
2491 }
2492
2493 let next_out_of_line = decoder.next_out_of_line();
2494 let handles_before = decoder.remaining_handles();
2495 if let Some((inlined, num_bytes, num_handles)) =
2496 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2497 {
2498 let member_inline_size =
2499 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2500 if inlined != (member_inline_size <= 4) {
2501 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2502 }
2503 let inner_offset;
2504 let mut inner_depth = depth.clone();
2505 if inlined {
2506 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2507 inner_offset = next_offset;
2508 } else {
2509 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2510 inner_depth.increment()?;
2511 }
2512 let val_ref = self.persist.get_or_insert_with(|| fidl::new_empty!(bool, D));
2513 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2514 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2515 {
2516 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2517 }
2518 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2519 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2520 }
2521 }
2522
2523 next_offset += envelope_size;
2524
2525 while next_offset < end_offset {
2527 _next_ordinal_to_read += 1;
2528 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2529 next_offset += envelope_size;
2530 }
2531
2532 Ok(())
2533 }
2534 }
2535
2536 impl PerformanceConfiguration {
2537 #[inline(always)]
2538 fn max_ordinal_present(&self) -> u64 {
2539 if let Some(_) = self.batch_retrieval_timeout_seconds {
2540 return 2;
2541 }
2542 if let Some(_) = self.max_aggregate_content_size_bytes {
2543 return 1;
2544 }
2545 0
2546 }
2547 }
2548
2549 impl fidl::encoding::ValueTypeMarker for PerformanceConfiguration {
2550 type Borrowed<'a> = &'a Self;
2551 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2552 value
2553 }
2554 }
2555
2556 unsafe impl fidl::encoding::TypeMarker for PerformanceConfiguration {
2557 type Owned = Self;
2558
2559 #[inline(always)]
2560 fn inline_align(_context: fidl::encoding::Context) -> usize {
2561 8
2562 }
2563
2564 #[inline(always)]
2565 fn inline_size(_context: fidl::encoding::Context) -> usize {
2566 16
2567 }
2568 }
2569
2570 unsafe impl<D: fidl::encoding::ResourceDialect>
2571 fidl::encoding::Encode<PerformanceConfiguration, D> for &PerformanceConfiguration
2572 {
2573 unsafe fn encode(
2574 self,
2575 encoder: &mut fidl::encoding::Encoder<'_, D>,
2576 offset: usize,
2577 mut depth: fidl::encoding::Depth,
2578 ) -> fidl::Result<()> {
2579 encoder.debug_check_bounds::<PerformanceConfiguration>(offset);
2580 let max_ordinal: u64 = self.max_ordinal_present();
2582 encoder.write_num(max_ordinal, offset);
2583 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2584 if max_ordinal == 0 {
2586 return Ok(());
2587 }
2588 depth.increment()?;
2589 let envelope_size = 8;
2590 let bytes_len = max_ordinal as usize * envelope_size;
2591 #[allow(unused_variables)]
2592 let offset = encoder.out_of_line_offset(bytes_len);
2593 let mut _prev_end_offset: usize = 0;
2594 if 1 > max_ordinal {
2595 return Ok(());
2596 }
2597
2598 let cur_offset: usize = (1 - 1) * envelope_size;
2601
2602 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2604
2605 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2610 self.max_aggregate_content_size_bytes
2611 .as_ref()
2612 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2613 encoder,
2614 offset + cur_offset,
2615 depth,
2616 )?;
2617
2618 _prev_end_offset = cur_offset + envelope_size;
2619 if 2 > max_ordinal {
2620 return Ok(());
2621 }
2622
2623 let cur_offset: usize = (2 - 1) * envelope_size;
2626
2627 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2629
2630 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2635 self.batch_retrieval_timeout_seconds
2636 .as_ref()
2637 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2638 encoder,
2639 offset + cur_offset,
2640 depth,
2641 )?;
2642
2643 _prev_end_offset = cur_offset + envelope_size;
2644
2645 Ok(())
2646 }
2647 }
2648
2649 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2650 for PerformanceConfiguration
2651 {
2652 #[inline(always)]
2653 fn new_empty() -> Self {
2654 Self::default()
2655 }
2656
2657 unsafe fn decode(
2658 &mut self,
2659 decoder: &mut fidl::encoding::Decoder<'_, D>,
2660 offset: usize,
2661 mut depth: fidl::encoding::Depth,
2662 ) -> fidl::Result<()> {
2663 decoder.debug_check_bounds::<Self>(offset);
2664 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2665 None => return Err(fidl::Error::NotNullable),
2666 Some(len) => len,
2667 };
2668 if len == 0 {
2670 return Ok(());
2671 };
2672 depth.increment()?;
2673 let envelope_size = 8;
2674 let bytes_len = len * envelope_size;
2675 let offset = decoder.out_of_line_offset(bytes_len)?;
2676 let mut _next_ordinal_to_read = 0;
2678 let mut next_offset = offset;
2679 let end_offset = offset + bytes_len;
2680 _next_ordinal_to_read += 1;
2681 if next_offset >= end_offset {
2682 return Ok(());
2683 }
2684
2685 while _next_ordinal_to_read < 1 {
2687 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2688 _next_ordinal_to_read += 1;
2689 next_offset += envelope_size;
2690 }
2691
2692 let next_out_of_line = decoder.next_out_of_line();
2693 let handles_before = decoder.remaining_handles();
2694 if let Some((inlined, num_bytes, num_handles)) =
2695 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2696 {
2697 let member_inline_size =
2698 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2699 if inlined != (member_inline_size <= 4) {
2700 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2701 }
2702 let inner_offset;
2703 let mut inner_depth = depth.clone();
2704 if inlined {
2705 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2706 inner_offset = next_offset;
2707 } else {
2708 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2709 inner_depth.increment()?;
2710 }
2711 let val_ref = self
2712 .max_aggregate_content_size_bytes
2713 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2714 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2715 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2716 {
2717 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2718 }
2719 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2720 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2721 }
2722 }
2723
2724 next_offset += envelope_size;
2725 _next_ordinal_to_read += 1;
2726 if next_offset >= end_offset {
2727 return Ok(());
2728 }
2729
2730 while _next_ordinal_to_read < 2 {
2732 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2733 _next_ordinal_to_read += 1;
2734 next_offset += envelope_size;
2735 }
2736
2737 let next_out_of_line = decoder.next_out_of_line();
2738 let handles_before = decoder.remaining_handles();
2739 if let Some((inlined, num_bytes, num_handles)) =
2740 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2741 {
2742 let member_inline_size =
2743 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2744 if inlined != (member_inline_size <= 4) {
2745 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2746 }
2747 let inner_offset;
2748 let mut inner_depth = depth.clone();
2749 if inlined {
2750 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2751 inner_offset = next_offset;
2752 } else {
2753 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2754 inner_depth.increment()?;
2755 }
2756 let val_ref = self
2757 .batch_retrieval_timeout_seconds
2758 .get_or_insert_with(|| fidl::new_empty!(i64, D));
2759 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2760 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2761 {
2762 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2763 }
2764 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2765 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2766 }
2767 }
2768
2769 next_offset += envelope_size;
2770
2771 while next_offset < end_offset {
2773 _next_ordinal_to_read += 1;
2774 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2775 next_offset += envelope_size;
2776 }
2777
2778 Ok(())
2779 }
2780 }
2781
2782 impl SampleDatum {
2783 #[inline(always)]
2784 fn max_ordinal_present(&self) -> u64 {
2785 if let Some(_) = self.interval_secs {
2786 return 3;
2787 }
2788 if let Some(_) = self.strategy {
2789 return 2;
2790 }
2791 if let Some(_) = self.selector {
2792 return 1;
2793 }
2794 0
2795 }
2796 }
2797
2798 impl fidl::encoding::ValueTypeMarker for SampleDatum {
2799 type Borrowed<'a> = &'a Self;
2800 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2801 value
2802 }
2803 }
2804
2805 unsafe impl fidl::encoding::TypeMarker for SampleDatum {
2806 type Owned = Self;
2807
2808 #[inline(always)]
2809 fn inline_align(_context: fidl::encoding::Context) -> usize {
2810 8
2811 }
2812
2813 #[inline(always)]
2814 fn inline_size(_context: fidl::encoding::Context) -> usize {
2815 16
2816 }
2817 }
2818
2819 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleDatum, D>
2820 for &SampleDatum
2821 {
2822 unsafe fn encode(
2823 self,
2824 encoder: &mut fidl::encoding::Encoder<'_, D>,
2825 offset: usize,
2826 mut depth: fidl::encoding::Depth,
2827 ) -> fidl::Result<()> {
2828 encoder.debug_check_bounds::<SampleDatum>(offset);
2829 let max_ordinal: u64 = self.max_ordinal_present();
2831 encoder.write_num(max_ordinal, offset);
2832 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2833 if max_ordinal == 0 {
2835 return Ok(());
2836 }
2837 depth.increment()?;
2838 let envelope_size = 8;
2839 let bytes_len = max_ordinal as usize * envelope_size;
2840 #[allow(unused_variables)]
2841 let offset = encoder.out_of_line_offset(bytes_len);
2842 let mut _prev_end_offset: usize = 0;
2843 if 1 > max_ordinal {
2844 return Ok(());
2845 }
2846
2847 let cur_offset: usize = (1 - 1) * envelope_size;
2850
2851 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2853
2854 fidl::encoding::encode_in_envelope_optional::<SelectorArgument, D>(
2859 self.selector
2860 .as_ref()
2861 .map(<SelectorArgument as fidl::encoding::ValueTypeMarker>::borrow),
2862 encoder,
2863 offset + cur_offset,
2864 depth,
2865 )?;
2866
2867 _prev_end_offset = cur_offset + envelope_size;
2868 if 2 > max_ordinal {
2869 return Ok(());
2870 }
2871
2872 let cur_offset: usize = (2 - 1) * envelope_size;
2875
2876 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2878
2879 fidl::encoding::encode_in_envelope_optional::<SampleStrategy, D>(
2884 self.strategy
2885 .as_ref()
2886 .map(<SampleStrategy as fidl::encoding::ValueTypeMarker>::borrow),
2887 encoder,
2888 offset + cur_offset,
2889 depth,
2890 )?;
2891
2892 _prev_end_offset = cur_offset + envelope_size;
2893 if 3 > max_ordinal {
2894 return Ok(());
2895 }
2896
2897 let cur_offset: usize = (3 - 1) * envelope_size;
2900
2901 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2903
2904 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2909 self.interval_secs.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2910 encoder,
2911 offset + cur_offset,
2912 depth,
2913 )?;
2914
2915 _prev_end_offset = cur_offset + envelope_size;
2916
2917 Ok(())
2918 }
2919 }
2920
2921 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleDatum {
2922 #[inline(always)]
2923 fn new_empty() -> Self {
2924 Self::default()
2925 }
2926
2927 unsafe fn decode(
2928 &mut self,
2929 decoder: &mut fidl::encoding::Decoder<'_, D>,
2930 offset: usize,
2931 mut depth: fidl::encoding::Depth,
2932 ) -> fidl::Result<()> {
2933 decoder.debug_check_bounds::<Self>(offset);
2934 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2935 None => return Err(fidl::Error::NotNullable),
2936 Some(len) => len,
2937 };
2938 if len == 0 {
2940 return Ok(());
2941 };
2942 depth.increment()?;
2943 let envelope_size = 8;
2944 let bytes_len = len * envelope_size;
2945 let offset = decoder.out_of_line_offset(bytes_len)?;
2946 let mut _next_ordinal_to_read = 0;
2948 let mut next_offset = offset;
2949 let end_offset = offset + bytes_len;
2950 _next_ordinal_to_read += 1;
2951 if next_offset >= end_offset {
2952 return Ok(());
2953 }
2954
2955 while _next_ordinal_to_read < 1 {
2957 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2958 _next_ordinal_to_read += 1;
2959 next_offset += envelope_size;
2960 }
2961
2962 let next_out_of_line = decoder.next_out_of_line();
2963 let handles_before = decoder.remaining_handles();
2964 if let Some((inlined, num_bytes, num_handles)) =
2965 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2966 {
2967 let member_inline_size =
2968 <SelectorArgument as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2969 if inlined != (member_inline_size <= 4) {
2970 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2971 }
2972 let inner_offset;
2973 let mut inner_depth = depth.clone();
2974 if inlined {
2975 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2976 inner_offset = next_offset;
2977 } else {
2978 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2979 inner_depth.increment()?;
2980 }
2981 let val_ref =
2982 self.selector.get_or_insert_with(|| fidl::new_empty!(SelectorArgument, D));
2983 fidl::decode!(SelectorArgument, D, val_ref, decoder, inner_offset, inner_depth)?;
2984 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2985 {
2986 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2987 }
2988 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2989 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2990 }
2991 }
2992
2993 next_offset += envelope_size;
2994 _next_ordinal_to_read += 1;
2995 if next_offset >= end_offset {
2996 return Ok(());
2997 }
2998
2999 while _next_ordinal_to_read < 2 {
3001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3002 _next_ordinal_to_read += 1;
3003 next_offset += envelope_size;
3004 }
3005
3006 let next_out_of_line = decoder.next_out_of_line();
3007 let handles_before = decoder.remaining_handles();
3008 if let Some((inlined, num_bytes, num_handles)) =
3009 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3010 {
3011 let member_inline_size =
3012 <SampleStrategy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3013 if inlined != (member_inline_size <= 4) {
3014 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3015 }
3016 let inner_offset;
3017 let mut inner_depth = depth.clone();
3018 if inlined {
3019 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3020 inner_offset = next_offset;
3021 } else {
3022 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3023 inner_depth.increment()?;
3024 }
3025 let val_ref =
3026 self.strategy.get_or_insert_with(|| fidl::new_empty!(SampleStrategy, D));
3027 fidl::decode!(SampleStrategy, D, val_ref, decoder, inner_offset, inner_depth)?;
3028 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3029 {
3030 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3031 }
3032 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3033 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3034 }
3035 }
3036
3037 next_offset += envelope_size;
3038 _next_ordinal_to_read += 1;
3039 if next_offset >= end_offset {
3040 return Ok(());
3041 }
3042
3043 while _next_ordinal_to_read < 3 {
3045 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3046 _next_ordinal_to_read += 1;
3047 next_offset += envelope_size;
3048 }
3049
3050 let next_out_of_line = decoder.next_out_of_line();
3051 let handles_before = decoder.remaining_handles();
3052 if let Some((inlined, num_bytes, num_handles)) =
3053 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3054 {
3055 let member_inline_size =
3056 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3057 if inlined != (member_inline_size <= 4) {
3058 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3059 }
3060 let inner_offset;
3061 let mut inner_depth = depth.clone();
3062 if inlined {
3063 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3064 inner_offset = next_offset;
3065 } else {
3066 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3067 inner_depth.increment()?;
3068 }
3069 let val_ref = self.interval_secs.get_or_insert_with(|| fidl::new_empty!(i64, D));
3070 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3071 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3072 {
3073 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3074 }
3075 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3076 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3077 }
3078 }
3079
3080 next_offset += envelope_size;
3081
3082 while next_offset < end_offset {
3084 _next_ordinal_to_read += 1;
3085 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3086 next_offset += envelope_size;
3087 }
3088
3089 Ok(())
3090 }
3091 }
3092
3093 impl SampleParameters {
3094 #[inline(always)]
3095 fn max_ordinal_present(&self) -> u64 {
3096 if let Some(_) = self.data {
3097 return 1;
3098 }
3099 0
3100 }
3101 }
3102
3103 impl fidl::encoding::ValueTypeMarker for SampleParameters {
3104 type Borrowed<'a> = &'a Self;
3105 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3106 value
3107 }
3108 }
3109
3110 unsafe impl fidl::encoding::TypeMarker for SampleParameters {
3111 type Owned = Self;
3112
3113 #[inline(always)]
3114 fn inline_align(_context: fidl::encoding::Context) -> usize {
3115 8
3116 }
3117
3118 #[inline(always)]
3119 fn inline_size(_context: fidl::encoding::Context) -> usize {
3120 16
3121 }
3122 }
3123
3124 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleParameters, D>
3125 for &SampleParameters
3126 {
3127 unsafe fn encode(
3128 self,
3129 encoder: &mut fidl::encoding::Encoder<'_, D>,
3130 offset: usize,
3131 mut depth: fidl::encoding::Depth,
3132 ) -> fidl::Result<()> {
3133 encoder.debug_check_bounds::<SampleParameters>(offset);
3134 let max_ordinal: u64 = self.max_ordinal_present();
3136 encoder.write_num(max_ordinal, offset);
3137 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3138 if max_ordinal == 0 {
3140 return Ok(());
3141 }
3142 depth.increment()?;
3143 let envelope_size = 8;
3144 let bytes_len = max_ordinal as usize * envelope_size;
3145 #[allow(unused_variables)]
3146 let offset = encoder.out_of_line_offset(bytes_len);
3147 let mut _prev_end_offset: usize = 0;
3148 if 1 > max_ordinal {
3149 return Ok(());
3150 }
3151
3152 let cur_offset: usize = (1 - 1) * envelope_size;
3155
3156 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3158
3159 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<SampleDatum, 100>, D>(
3164 self.data.as_ref().map(<fidl::encoding::Vector<SampleDatum, 100> as fidl::encoding::ValueTypeMarker>::borrow),
3165 encoder, offset + cur_offset, depth
3166 )?;
3167
3168 _prev_end_offset = cur_offset + envelope_size;
3169
3170 Ok(())
3171 }
3172 }
3173
3174 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleParameters {
3175 #[inline(always)]
3176 fn new_empty() -> Self {
3177 Self::default()
3178 }
3179
3180 unsafe fn decode(
3181 &mut self,
3182 decoder: &mut fidl::encoding::Decoder<'_, D>,
3183 offset: usize,
3184 mut depth: fidl::encoding::Depth,
3185 ) -> fidl::Result<()> {
3186 decoder.debug_check_bounds::<Self>(offset);
3187 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3188 None => return Err(fidl::Error::NotNullable),
3189 Some(len) => len,
3190 };
3191 if len == 0 {
3193 return Ok(());
3194 };
3195 depth.increment()?;
3196 let envelope_size = 8;
3197 let bytes_len = len * envelope_size;
3198 let offset = decoder.out_of_line_offset(bytes_len)?;
3199 let mut _next_ordinal_to_read = 0;
3201 let mut next_offset = offset;
3202 let end_offset = offset + bytes_len;
3203 _next_ordinal_to_read += 1;
3204 if next_offset >= end_offset {
3205 return Ok(());
3206 }
3207
3208 while _next_ordinal_to_read < 1 {
3210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3211 _next_ordinal_to_read += 1;
3212 next_offset += envelope_size;
3213 }
3214
3215 let next_out_of_line = decoder.next_out_of_line();
3216 let handles_before = decoder.remaining_handles();
3217 if let Some((inlined, num_bytes, num_handles)) =
3218 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3219 {
3220 let member_inline_size = <fidl::encoding::Vector<SampleDatum, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3221 if inlined != (member_inline_size <= 4) {
3222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3223 }
3224 let inner_offset;
3225 let mut inner_depth = depth.clone();
3226 if inlined {
3227 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3228 inner_offset = next_offset;
3229 } else {
3230 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3231 inner_depth.increment()?;
3232 }
3233 let val_ref = self.data.get_or_insert_with(
3234 || fidl::new_empty!(fidl::encoding::Vector<SampleDatum, 100>, D),
3235 );
3236 fidl::decode!(fidl::encoding::Vector<SampleDatum, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
3237 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3238 {
3239 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3240 }
3241 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3242 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3243 }
3244 }
3245
3246 next_offset += envelope_size;
3247
3248 while next_offset < end_offset {
3250 _next_ordinal_to_read += 1;
3251 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3252 next_offset += envelope_size;
3253 }
3254
3255 Ok(())
3256 }
3257 }
3258
3259 impl Selector {
3260 #[inline(always)]
3261 fn max_ordinal_present(&self) -> u64 {
3262 if let Some(_) = self.tree_names {
3263 return 3;
3264 }
3265 if let Some(_) = self.tree_selector {
3266 return 2;
3267 }
3268 if let Some(_) = self.component_selector {
3269 return 1;
3270 }
3271 0
3272 }
3273 }
3274
3275 impl fidl::encoding::ValueTypeMarker for Selector {
3276 type Borrowed<'a> = &'a Self;
3277 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3278 value
3279 }
3280 }
3281
3282 unsafe impl fidl::encoding::TypeMarker for Selector {
3283 type Owned = Self;
3284
3285 #[inline(always)]
3286 fn inline_align(_context: fidl::encoding::Context) -> usize {
3287 8
3288 }
3289
3290 #[inline(always)]
3291 fn inline_size(_context: fidl::encoding::Context) -> usize {
3292 16
3293 }
3294 }
3295
3296 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Selector, D> for &Selector {
3297 unsafe fn encode(
3298 self,
3299 encoder: &mut fidl::encoding::Encoder<'_, D>,
3300 offset: usize,
3301 mut depth: fidl::encoding::Depth,
3302 ) -> fidl::Result<()> {
3303 encoder.debug_check_bounds::<Selector>(offset);
3304 let max_ordinal: u64 = self.max_ordinal_present();
3306 encoder.write_num(max_ordinal, offset);
3307 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3308 if max_ordinal == 0 {
3310 return Ok(());
3311 }
3312 depth.increment()?;
3313 let envelope_size = 8;
3314 let bytes_len = max_ordinal as usize * envelope_size;
3315 #[allow(unused_variables)]
3316 let offset = encoder.out_of_line_offset(bytes_len);
3317 let mut _prev_end_offset: usize = 0;
3318 if 1 > max_ordinal {
3319 return Ok(());
3320 }
3321
3322 let cur_offset: usize = (1 - 1) * envelope_size;
3325
3326 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3328
3329 fidl::encoding::encode_in_envelope_optional::<ComponentSelector, D>(
3334 self.component_selector
3335 .as_ref()
3336 .map(<ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow),
3337 encoder,
3338 offset + cur_offset,
3339 depth,
3340 )?;
3341
3342 _prev_end_offset = cur_offset + envelope_size;
3343 if 2 > max_ordinal {
3344 return Ok(());
3345 }
3346
3347 let cur_offset: usize = (2 - 1) * envelope_size;
3350
3351 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3353
3354 fidl::encoding::encode_in_envelope_optional::<TreeSelector, D>(
3359 self.tree_selector
3360 .as_ref()
3361 .map(<TreeSelector as fidl::encoding::ValueTypeMarker>::borrow),
3362 encoder,
3363 offset + cur_offset,
3364 depth,
3365 )?;
3366
3367 _prev_end_offset = cur_offset + envelope_size;
3368 if 3 > max_ordinal {
3369 return Ok(());
3370 }
3371
3372 let cur_offset: usize = (3 - 1) * envelope_size;
3375
3376 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3378
3379 fidl::encoding::encode_in_envelope_optional::<TreeNames, D>(
3384 self.tree_names
3385 .as_ref()
3386 .map(<TreeNames as fidl::encoding::ValueTypeMarker>::borrow),
3387 encoder,
3388 offset + cur_offset,
3389 depth,
3390 )?;
3391
3392 _prev_end_offset = cur_offset + envelope_size;
3393
3394 Ok(())
3395 }
3396 }
3397
3398 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Selector {
3399 #[inline(always)]
3400 fn new_empty() -> Self {
3401 Self::default()
3402 }
3403
3404 unsafe fn decode(
3405 &mut self,
3406 decoder: &mut fidl::encoding::Decoder<'_, D>,
3407 offset: usize,
3408 mut depth: fidl::encoding::Depth,
3409 ) -> fidl::Result<()> {
3410 decoder.debug_check_bounds::<Self>(offset);
3411 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3412 None => return Err(fidl::Error::NotNullable),
3413 Some(len) => len,
3414 };
3415 if len == 0 {
3417 return Ok(());
3418 };
3419 depth.increment()?;
3420 let envelope_size = 8;
3421 let bytes_len = len * envelope_size;
3422 let offset = decoder.out_of_line_offset(bytes_len)?;
3423 let mut _next_ordinal_to_read = 0;
3425 let mut next_offset = offset;
3426 let end_offset = offset + bytes_len;
3427 _next_ordinal_to_read += 1;
3428 if next_offset >= end_offset {
3429 return Ok(());
3430 }
3431
3432 while _next_ordinal_to_read < 1 {
3434 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3435 _next_ordinal_to_read += 1;
3436 next_offset += envelope_size;
3437 }
3438
3439 let next_out_of_line = decoder.next_out_of_line();
3440 let handles_before = decoder.remaining_handles();
3441 if let Some((inlined, num_bytes, num_handles)) =
3442 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3443 {
3444 let member_inline_size =
3445 <ComponentSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3446 if inlined != (member_inline_size <= 4) {
3447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3448 }
3449 let inner_offset;
3450 let mut inner_depth = depth.clone();
3451 if inlined {
3452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3453 inner_offset = next_offset;
3454 } else {
3455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3456 inner_depth.increment()?;
3457 }
3458 let val_ref = self
3459 .component_selector
3460 .get_or_insert_with(|| fidl::new_empty!(ComponentSelector, D));
3461 fidl::decode!(ComponentSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3462 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3463 {
3464 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3465 }
3466 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3467 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3468 }
3469 }
3470
3471 next_offset += envelope_size;
3472 _next_ordinal_to_read += 1;
3473 if next_offset >= end_offset {
3474 return Ok(());
3475 }
3476
3477 while _next_ordinal_to_read < 2 {
3479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3480 _next_ordinal_to_read += 1;
3481 next_offset += envelope_size;
3482 }
3483
3484 let next_out_of_line = decoder.next_out_of_line();
3485 let handles_before = decoder.remaining_handles();
3486 if let Some((inlined, num_bytes, num_handles)) =
3487 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3488 {
3489 let member_inline_size =
3490 <TreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3491 if inlined != (member_inline_size <= 4) {
3492 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3493 }
3494 let inner_offset;
3495 let mut inner_depth = depth.clone();
3496 if inlined {
3497 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3498 inner_offset = next_offset;
3499 } else {
3500 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3501 inner_depth.increment()?;
3502 }
3503 let val_ref =
3504 self.tree_selector.get_or_insert_with(|| fidl::new_empty!(TreeSelector, D));
3505 fidl::decode!(TreeSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3506 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3507 {
3508 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3509 }
3510 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3511 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3512 }
3513 }
3514
3515 next_offset += envelope_size;
3516 _next_ordinal_to_read += 1;
3517 if next_offset >= end_offset {
3518 return Ok(());
3519 }
3520
3521 while _next_ordinal_to_read < 3 {
3523 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3524 _next_ordinal_to_read += 1;
3525 next_offset += envelope_size;
3526 }
3527
3528 let next_out_of_line = decoder.next_out_of_line();
3529 let handles_before = decoder.remaining_handles();
3530 if let Some((inlined, num_bytes, num_handles)) =
3531 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3532 {
3533 let member_inline_size =
3534 <TreeNames as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3535 if inlined != (member_inline_size <= 4) {
3536 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3537 }
3538 let inner_offset;
3539 let mut inner_depth = depth.clone();
3540 if inlined {
3541 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3542 inner_offset = next_offset;
3543 } else {
3544 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3545 inner_depth.increment()?;
3546 }
3547 let val_ref = self.tree_names.get_or_insert_with(|| fidl::new_empty!(TreeNames, D));
3548 fidl::decode!(TreeNames, D, val_ref, decoder, inner_offset, inner_depth)?;
3549 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3550 {
3551 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3552 }
3553 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3554 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3555 }
3556 }
3557
3558 next_offset += envelope_size;
3559
3560 while next_offset < end_offset {
3562 _next_ordinal_to_read += 1;
3563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3564 next_offset += envelope_size;
3565 }
3566
3567 Ok(())
3568 }
3569 }
3570
3571 impl StreamParameters {
3572 #[inline(always)]
3573 fn max_ordinal_present(&self) -> u64 {
3574 if let Some(_) = self.performance_configuration {
3575 return 6;
3576 }
3577 if let Some(_) = self.batch_retrieval_timeout_seconds {
3578 return 5;
3579 }
3580 if let Some(_) = self.client_selector_configuration {
3581 return 4;
3582 }
3583 if let Some(_) = self.format {
3584 return 3;
3585 }
3586 if let Some(_) = self.stream_mode {
3587 return 2;
3588 }
3589 if let Some(_) = self.data_type {
3590 return 1;
3591 }
3592 0
3593 }
3594 }
3595
3596 impl fidl::encoding::ValueTypeMarker for StreamParameters {
3597 type Borrowed<'a> = &'a Self;
3598 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3599 value
3600 }
3601 }
3602
3603 unsafe impl fidl::encoding::TypeMarker for StreamParameters {
3604 type Owned = Self;
3605
3606 #[inline(always)]
3607 fn inline_align(_context: fidl::encoding::Context) -> usize {
3608 8
3609 }
3610
3611 #[inline(always)]
3612 fn inline_size(_context: fidl::encoding::Context) -> usize {
3613 16
3614 }
3615 }
3616
3617 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamParameters, D>
3618 for &StreamParameters
3619 {
3620 unsafe fn encode(
3621 self,
3622 encoder: &mut fidl::encoding::Encoder<'_, D>,
3623 offset: usize,
3624 mut depth: fidl::encoding::Depth,
3625 ) -> fidl::Result<()> {
3626 encoder.debug_check_bounds::<StreamParameters>(offset);
3627 let max_ordinal: u64 = self.max_ordinal_present();
3629 encoder.write_num(max_ordinal, offset);
3630 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3631 if max_ordinal == 0 {
3633 return Ok(());
3634 }
3635 depth.increment()?;
3636 let envelope_size = 8;
3637 let bytes_len = max_ordinal as usize * envelope_size;
3638 #[allow(unused_variables)]
3639 let offset = encoder.out_of_line_offset(bytes_len);
3640 let mut _prev_end_offset: usize = 0;
3641 if 1 > max_ordinal {
3642 return Ok(());
3643 }
3644
3645 let cur_offset: usize = (1 - 1) * envelope_size;
3648
3649 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3651
3652 fidl::encoding::encode_in_envelope_optional::<DataType, D>(
3657 self.data_type.as_ref().map(<DataType as fidl::encoding::ValueTypeMarker>::borrow),
3658 encoder,
3659 offset + cur_offset,
3660 depth,
3661 )?;
3662
3663 _prev_end_offset = cur_offset + envelope_size;
3664 if 2 > max_ordinal {
3665 return Ok(());
3666 }
3667
3668 let cur_offset: usize = (2 - 1) * envelope_size;
3671
3672 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3674
3675 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
3680 self.stream_mode
3681 .as_ref()
3682 .map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
3683 encoder,
3684 offset + cur_offset,
3685 depth,
3686 )?;
3687
3688 _prev_end_offset = cur_offset + envelope_size;
3689 if 3 > max_ordinal {
3690 return Ok(());
3691 }
3692
3693 let cur_offset: usize = (3 - 1) * envelope_size;
3696
3697 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3699
3700 fidl::encoding::encode_in_envelope_optional::<Format, D>(
3705 self.format.as_ref().map(<Format as fidl::encoding::ValueTypeMarker>::borrow),
3706 encoder,
3707 offset + cur_offset,
3708 depth,
3709 )?;
3710
3711 _prev_end_offset = cur_offset + envelope_size;
3712 if 4 > max_ordinal {
3713 return Ok(());
3714 }
3715
3716 let cur_offset: usize = (4 - 1) * envelope_size;
3719
3720 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3722
3723 fidl::encoding::encode_in_envelope_optional::<ClientSelectorConfiguration, D>(
3728 self.client_selector_configuration
3729 .as_ref()
3730 .map(<ClientSelectorConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3731 encoder,
3732 offset + cur_offset,
3733 depth,
3734 )?;
3735
3736 _prev_end_offset = cur_offset + envelope_size;
3737 if 5 > max_ordinal {
3738 return Ok(());
3739 }
3740
3741 let cur_offset: usize = (5 - 1) * envelope_size;
3744
3745 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3747
3748 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3753 self.batch_retrieval_timeout_seconds
3754 .as_ref()
3755 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3756 encoder,
3757 offset + cur_offset,
3758 depth,
3759 )?;
3760
3761 _prev_end_offset = cur_offset + envelope_size;
3762 if 6 > max_ordinal {
3763 return Ok(());
3764 }
3765
3766 let cur_offset: usize = (6 - 1) * envelope_size;
3769
3770 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3772
3773 fidl::encoding::encode_in_envelope_optional::<PerformanceConfiguration, D>(
3778 self.performance_configuration
3779 .as_ref()
3780 .map(<PerformanceConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3781 encoder,
3782 offset + cur_offset,
3783 depth,
3784 )?;
3785
3786 _prev_end_offset = cur_offset + envelope_size;
3787
3788 Ok(())
3789 }
3790 }
3791
3792 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamParameters {
3793 #[inline(always)]
3794 fn new_empty() -> Self {
3795 Self::default()
3796 }
3797
3798 unsafe fn decode(
3799 &mut self,
3800 decoder: &mut fidl::encoding::Decoder<'_, D>,
3801 offset: usize,
3802 mut depth: fidl::encoding::Depth,
3803 ) -> fidl::Result<()> {
3804 decoder.debug_check_bounds::<Self>(offset);
3805 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3806 None => return Err(fidl::Error::NotNullable),
3807 Some(len) => len,
3808 };
3809 if len == 0 {
3811 return Ok(());
3812 };
3813 depth.increment()?;
3814 let envelope_size = 8;
3815 let bytes_len = len * envelope_size;
3816 let offset = decoder.out_of_line_offset(bytes_len)?;
3817 let mut _next_ordinal_to_read = 0;
3819 let mut next_offset = offset;
3820 let end_offset = offset + bytes_len;
3821 _next_ordinal_to_read += 1;
3822 if next_offset >= end_offset {
3823 return Ok(());
3824 }
3825
3826 while _next_ordinal_to_read < 1 {
3828 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3829 _next_ordinal_to_read += 1;
3830 next_offset += envelope_size;
3831 }
3832
3833 let next_out_of_line = decoder.next_out_of_line();
3834 let handles_before = decoder.remaining_handles();
3835 if let Some((inlined, num_bytes, num_handles)) =
3836 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3837 {
3838 let member_inline_size =
3839 <DataType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3840 if inlined != (member_inline_size <= 4) {
3841 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3842 }
3843 let inner_offset;
3844 let mut inner_depth = depth.clone();
3845 if inlined {
3846 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3847 inner_offset = next_offset;
3848 } else {
3849 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3850 inner_depth.increment()?;
3851 }
3852 let val_ref = self.data_type.get_or_insert_with(|| fidl::new_empty!(DataType, D));
3853 fidl::decode!(DataType, D, val_ref, decoder, inner_offset, inner_depth)?;
3854 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3855 {
3856 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3857 }
3858 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3859 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3860 }
3861 }
3862
3863 next_offset += envelope_size;
3864 _next_ordinal_to_read += 1;
3865 if next_offset >= end_offset {
3866 return Ok(());
3867 }
3868
3869 while _next_ordinal_to_read < 2 {
3871 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3872 _next_ordinal_to_read += 1;
3873 next_offset += envelope_size;
3874 }
3875
3876 let next_out_of_line = decoder.next_out_of_line();
3877 let handles_before = decoder.remaining_handles();
3878 if let Some((inlined, num_bytes, num_handles)) =
3879 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3880 {
3881 let member_inline_size =
3882 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3883 if inlined != (member_inline_size <= 4) {
3884 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3885 }
3886 let inner_offset;
3887 let mut inner_depth = depth.clone();
3888 if inlined {
3889 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3890 inner_offset = next_offset;
3891 } else {
3892 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3893 inner_depth.increment()?;
3894 }
3895 let val_ref =
3896 self.stream_mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
3897 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
3898 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3899 {
3900 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3901 }
3902 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3903 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3904 }
3905 }
3906
3907 next_offset += envelope_size;
3908 _next_ordinal_to_read += 1;
3909 if next_offset >= end_offset {
3910 return Ok(());
3911 }
3912
3913 while _next_ordinal_to_read < 3 {
3915 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3916 _next_ordinal_to_read += 1;
3917 next_offset += envelope_size;
3918 }
3919
3920 let next_out_of_line = decoder.next_out_of_line();
3921 let handles_before = decoder.remaining_handles();
3922 if let Some((inlined, num_bytes, num_handles)) =
3923 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3924 {
3925 let member_inline_size =
3926 <Format as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3927 if inlined != (member_inline_size <= 4) {
3928 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3929 }
3930 let inner_offset;
3931 let mut inner_depth = depth.clone();
3932 if inlined {
3933 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3934 inner_offset = next_offset;
3935 } else {
3936 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3937 inner_depth.increment()?;
3938 }
3939 let val_ref = self.format.get_or_insert_with(|| fidl::new_empty!(Format, D));
3940 fidl::decode!(Format, D, val_ref, decoder, inner_offset, inner_depth)?;
3941 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3942 {
3943 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3944 }
3945 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3946 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3947 }
3948 }
3949
3950 next_offset += envelope_size;
3951 _next_ordinal_to_read += 1;
3952 if next_offset >= end_offset {
3953 return Ok(());
3954 }
3955
3956 while _next_ordinal_to_read < 4 {
3958 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3959 _next_ordinal_to_read += 1;
3960 next_offset += envelope_size;
3961 }
3962
3963 let next_out_of_line = decoder.next_out_of_line();
3964 let handles_before = decoder.remaining_handles();
3965 if let Some((inlined, num_bytes, num_handles)) =
3966 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3967 {
3968 let member_inline_size =
3969 <ClientSelectorConfiguration as fidl::encoding::TypeMarker>::inline_size(
3970 decoder.context,
3971 );
3972 if inlined != (member_inline_size <= 4) {
3973 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3974 }
3975 let inner_offset;
3976 let mut inner_depth = depth.clone();
3977 if inlined {
3978 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3979 inner_offset = next_offset;
3980 } else {
3981 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3982 inner_depth.increment()?;
3983 }
3984 let val_ref = self
3985 .client_selector_configuration
3986 .get_or_insert_with(|| fidl::new_empty!(ClientSelectorConfiguration, D));
3987 fidl::decode!(
3988 ClientSelectorConfiguration,
3989 D,
3990 val_ref,
3991 decoder,
3992 inner_offset,
3993 inner_depth
3994 )?;
3995 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3996 {
3997 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3998 }
3999 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4000 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4001 }
4002 }
4003
4004 next_offset += envelope_size;
4005 _next_ordinal_to_read += 1;
4006 if next_offset >= end_offset {
4007 return Ok(());
4008 }
4009
4010 while _next_ordinal_to_read < 5 {
4012 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4013 _next_ordinal_to_read += 1;
4014 next_offset += envelope_size;
4015 }
4016
4017 let next_out_of_line = decoder.next_out_of_line();
4018 let handles_before = decoder.remaining_handles();
4019 if let Some((inlined, num_bytes, num_handles)) =
4020 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4021 {
4022 let member_inline_size =
4023 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4024 if inlined != (member_inline_size <= 4) {
4025 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4026 }
4027 let inner_offset;
4028 let mut inner_depth = depth.clone();
4029 if inlined {
4030 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4031 inner_offset = next_offset;
4032 } else {
4033 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4034 inner_depth.increment()?;
4035 }
4036 let val_ref = self
4037 .batch_retrieval_timeout_seconds
4038 .get_or_insert_with(|| fidl::new_empty!(i64, D));
4039 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4040 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4041 {
4042 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4043 }
4044 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4045 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4046 }
4047 }
4048
4049 next_offset += envelope_size;
4050 _next_ordinal_to_read += 1;
4051 if next_offset >= end_offset {
4052 return Ok(());
4053 }
4054
4055 while _next_ordinal_to_read < 6 {
4057 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4058 _next_ordinal_to_read += 1;
4059 next_offset += envelope_size;
4060 }
4061
4062 let next_out_of_line = decoder.next_out_of_line();
4063 let handles_before = decoder.remaining_handles();
4064 if let Some((inlined, num_bytes, num_handles)) =
4065 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4066 {
4067 let member_inline_size =
4068 <PerformanceConfiguration as fidl::encoding::TypeMarker>::inline_size(
4069 decoder.context,
4070 );
4071 if inlined != (member_inline_size <= 4) {
4072 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4073 }
4074 let inner_offset;
4075 let mut inner_depth = depth.clone();
4076 if inlined {
4077 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4078 inner_offset = next_offset;
4079 } else {
4080 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4081 inner_depth.increment()?;
4082 }
4083 let val_ref = self
4084 .performance_configuration
4085 .get_or_insert_with(|| fidl::new_empty!(PerformanceConfiguration, D));
4086 fidl::decode!(
4087 PerformanceConfiguration,
4088 D,
4089 val_ref,
4090 decoder,
4091 inner_offset,
4092 inner_depth
4093 )?;
4094 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4095 {
4096 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4097 }
4098 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4099 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4100 }
4101 }
4102
4103 next_offset += envelope_size;
4104
4105 while next_offset < end_offset {
4107 _next_ordinal_to_read += 1;
4108 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4109 next_offset += envelope_size;
4110 }
4111
4112 Ok(())
4113 }
4114 }
4115
4116 impl fidl::encoding::ValueTypeMarker for ClientSelectorConfiguration {
4117 type Borrowed<'a> = &'a Self;
4118 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4119 value
4120 }
4121 }
4122
4123 unsafe impl fidl::encoding::TypeMarker for ClientSelectorConfiguration {
4124 type Owned = Self;
4125
4126 #[inline(always)]
4127 fn inline_align(_context: fidl::encoding::Context) -> usize {
4128 8
4129 }
4130
4131 #[inline(always)]
4132 fn inline_size(_context: fidl::encoding::Context) -> usize {
4133 16
4134 }
4135 }
4136
4137 unsafe impl<D: fidl::encoding::ResourceDialect>
4138 fidl::encoding::Encode<ClientSelectorConfiguration, D> for &ClientSelectorConfiguration
4139 {
4140 #[inline]
4141 unsafe fn encode(
4142 self,
4143 encoder: &mut fidl::encoding::Encoder<'_, D>,
4144 offset: usize,
4145 _depth: fidl::encoding::Depth,
4146 ) -> fidl::Result<()> {
4147 encoder.debug_check_bounds::<ClientSelectorConfiguration>(offset);
4148 encoder.write_num::<u64>(self.ordinal(), offset);
4149 match self {
4150 ClientSelectorConfiguration::Selectors(ref val) => {
4151 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<SelectorArgument>, D>(
4152 <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::ValueTypeMarker>::borrow(val),
4153 encoder, offset + 8, _depth
4154 )
4155 }
4156 ClientSelectorConfiguration::SelectAll(ref val) => {
4157 fidl::encoding::encode_in_envelope::<bool, D>(
4158 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
4159 encoder, offset + 8, _depth
4160 )
4161 }
4162 ClientSelectorConfiguration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4163 }
4164 }
4165 }
4166
4167 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4168 for ClientSelectorConfiguration
4169 {
4170 #[inline(always)]
4171 fn new_empty() -> Self {
4172 Self::__SourceBreaking { unknown_ordinal: 0 }
4173 }
4174
4175 #[inline]
4176 unsafe fn decode(
4177 &mut self,
4178 decoder: &mut fidl::encoding::Decoder<'_, D>,
4179 offset: usize,
4180 mut depth: fidl::encoding::Depth,
4181 ) -> fidl::Result<()> {
4182 decoder.debug_check_bounds::<Self>(offset);
4183 #[allow(unused_variables)]
4184 let next_out_of_line = decoder.next_out_of_line();
4185 let handles_before = decoder.remaining_handles();
4186 let (ordinal, inlined, num_bytes, num_handles) =
4187 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4188
4189 let member_inline_size = match ordinal {
4190 1 => <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4191 2 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4192 0 => return Err(fidl::Error::UnknownUnionTag),
4193 _ => num_bytes as usize,
4194 };
4195
4196 if inlined != (member_inline_size <= 4) {
4197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4198 }
4199 let _inner_offset;
4200 if inlined {
4201 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4202 _inner_offset = offset + 8;
4203 } else {
4204 depth.increment()?;
4205 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4206 }
4207 match ordinal {
4208 1 => {
4209 #[allow(irrefutable_let_patterns)]
4210 if let ClientSelectorConfiguration::Selectors(_) = self {
4211 } else {
4213 *self = ClientSelectorConfiguration::Selectors(fidl::new_empty!(
4215 fidl::encoding::UnboundedVector<SelectorArgument>,
4216 D
4217 ));
4218 }
4219 #[allow(irrefutable_let_patterns)]
4220 if let ClientSelectorConfiguration::Selectors(ref mut val) = self {
4221 fidl::decode!(
4222 fidl::encoding::UnboundedVector<SelectorArgument>,
4223 D,
4224 val,
4225 decoder,
4226 _inner_offset,
4227 depth
4228 )?;
4229 } else {
4230 unreachable!()
4231 }
4232 }
4233 2 => {
4234 #[allow(irrefutable_let_patterns)]
4235 if let ClientSelectorConfiguration::SelectAll(_) = self {
4236 } else {
4238 *self = ClientSelectorConfiguration::SelectAll(fidl::new_empty!(bool, D));
4240 }
4241 #[allow(irrefutable_let_patterns)]
4242 if let ClientSelectorConfiguration::SelectAll(ref mut val) = self {
4243 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4244 } else {
4245 unreachable!()
4246 }
4247 }
4248 #[allow(deprecated)]
4249 ordinal => {
4250 for _ in 0..num_handles {
4251 decoder.drop_next_handle()?;
4252 }
4253 *self =
4254 ClientSelectorConfiguration::__SourceBreaking { unknown_ordinal: ordinal };
4255 }
4256 }
4257 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4259 }
4260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4262 }
4263 Ok(())
4264 }
4265 }
4266
4267 impl fidl::encoding::ValueTypeMarker for SelectorArgument {
4268 type Borrowed<'a> = &'a Self;
4269 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4270 value
4271 }
4272 }
4273
4274 unsafe impl fidl::encoding::TypeMarker for SelectorArgument {
4275 type Owned = Self;
4276
4277 #[inline(always)]
4278 fn inline_align(_context: fidl::encoding::Context) -> usize {
4279 8
4280 }
4281
4282 #[inline(always)]
4283 fn inline_size(_context: fidl::encoding::Context) -> usize {
4284 16
4285 }
4286 }
4287
4288 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelectorArgument, D>
4289 for &SelectorArgument
4290 {
4291 #[inline]
4292 unsafe fn encode(
4293 self,
4294 encoder: &mut fidl::encoding::Encoder<'_, D>,
4295 offset: usize,
4296 _depth: fidl::encoding::Depth,
4297 ) -> fidl::Result<()> {
4298 encoder.debug_check_bounds::<SelectorArgument>(offset);
4299 encoder.write_num::<u64>(self.ordinal(), offset);
4300 match self {
4301 SelectorArgument::StructuredSelector(ref val) => {
4302 fidl::encoding::encode_in_envelope::<Selector, D>(
4303 <Selector as fidl::encoding::ValueTypeMarker>::borrow(val),
4304 encoder, offset + 8, _depth
4305 )
4306 }
4307 SelectorArgument::RawSelector(ref val) => {
4308 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4309 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4310 encoder, offset + 8, _depth
4311 )
4312 }
4313 SelectorArgument::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4314 }
4315 }
4316 }
4317
4318 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelectorArgument {
4319 #[inline(always)]
4320 fn new_empty() -> Self {
4321 Self::__SourceBreaking { unknown_ordinal: 0 }
4322 }
4323
4324 #[inline]
4325 unsafe fn decode(
4326 &mut self,
4327 decoder: &mut fidl::encoding::Decoder<'_, D>,
4328 offset: usize,
4329 mut depth: fidl::encoding::Depth,
4330 ) -> fidl::Result<()> {
4331 decoder.debug_check_bounds::<Self>(offset);
4332 #[allow(unused_variables)]
4333 let next_out_of_line = decoder.next_out_of_line();
4334 let handles_before = decoder.remaining_handles();
4335 let (ordinal, inlined, num_bytes, num_handles) =
4336 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4337
4338 let member_inline_size = match ordinal {
4339 1 => <Selector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4340 2 => {
4341 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4342 decoder.context,
4343 )
4344 }
4345 0 => return Err(fidl::Error::UnknownUnionTag),
4346 _ => num_bytes as usize,
4347 };
4348
4349 if inlined != (member_inline_size <= 4) {
4350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4351 }
4352 let _inner_offset;
4353 if inlined {
4354 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4355 _inner_offset = offset + 8;
4356 } else {
4357 depth.increment()?;
4358 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4359 }
4360 match ordinal {
4361 1 => {
4362 #[allow(irrefutable_let_patterns)]
4363 if let SelectorArgument::StructuredSelector(_) = self {
4364 } else {
4366 *self = SelectorArgument::StructuredSelector(fidl::new_empty!(Selector, D));
4368 }
4369 #[allow(irrefutable_let_patterns)]
4370 if let SelectorArgument::StructuredSelector(ref mut val) = self {
4371 fidl::decode!(Selector, D, val, decoder, _inner_offset, depth)?;
4372 } else {
4373 unreachable!()
4374 }
4375 }
4376 2 => {
4377 #[allow(irrefutable_let_patterns)]
4378 if let SelectorArgument::RawSelector(_) = self {
4379 } else {
4381 *self = SelectorArgument::RawSelector(fidl::new_empty!(
4383 fidl::encoding::BoundedString<1024>,
4384 D
4385 ));
4386 }
4387 #[allow(irrefutable_let_patterns)]
4388 if let SelectorArgument::RawSelector(ref mut val) = self {
4389 fidl::decode!(
4390 fidl::encoding::BoundedString<1024>,
4391 D,
4392 val,
4393 decoder,
4394 _inner_offset,
4395 depth
4396 )?;
4397 } else {
4398 unreachable!()
4399 }
4400 }
4401 #[allow(deprecated)]
4402 ordinal => {
4403 for _ in 0..num_handles {
4404 decoder.drop_next_handle()?;
4405 }
4406 *self = SelectorArgument::__SourceBreaking { unknown_ordinal: ordinal };
4407 }
4408 }
4409 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4410 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4411 }
4412 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4413 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4414 }
4415 Ok(())
4416 }
4417 }
4418
4419 impl fidl::encoding::ValueTypeMarker for StringSelector {
4420 type Borrowed<'a> = &'a Self;
4421 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4422 value
4423 }
4424 }
4425
4426 unsafe impl fidl::encoding::TypeMarker for StringSelector {
4427 type Owned = Self;
4428
4429 #[inline(always)]
4430 fn inline_align(_context: fidl::encoding::Context) -> usize {
4431 8
4432 }
4433
4434 #[inline(always)]
4435 fn inline_size(_context: fidl::encoding::Context) -> usize {
4436 16
4437 }
4438 }
4439
4440 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StringSelector, D>
4441 for &StringSelector
4442 {
4443 #[inline]
4444 unsafe fn encode(
4445 self,
4446 encoder: &mut fidl::encoding::Encoder<'_, D>,
4447 offset: usize,
4448 _depth: fidl::encoding::Depth,
4449 ) -> fidl::Result<()> {
4450 encoder.debug_check_bounds::<StringSelector>(offset);
4451 encoder.write_num::<u64>(self.ordinal(), offset);
4452 match self {
4453 StringSelector::StringPattern(ref val) => {
4454 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4455 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4456 encoder, offset + 8, _depth
4457 )
4458 }
4459 StringSelector::ExactMatch(ref val) => {
4460 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4461 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4462 encoder, offset + 8, _depth
4463 )
4464 }
4465 StringSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4466 }
4467 }
4468 }
4469
4470 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StringSelector {
4471 #[inline(always)]
4472 fn new_empty() -> Self {
4473 Self::__SourceBreaking { unknown_ordinal: 0 }
4474 }
4475
4476 #[inline]
4477 unsafe fn decode(
4478 &mut self,
4479 decoder: &mut fidl::encoding::Decoder<'_, D>,
4480 offset: usize,
4481 mut depth: fidl::encoding::Depth,
4482 ) -> fidl::Result<()> {
4483 decoder.debug_check_bounds::<Self>(offset);
4484 #[allow(unused_variables)]
4485 let next_out_of_line = decoder.next_out_of_line();
4486 let handles_before = decoder.remaining_handles();
4487 let (ordinal, inlined, num_bytes, num_handles) =
4488 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4489
4490 let member_inline_size = match ordinal {
4491 1 => {
4492 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4493 decoder.context,
4494 )
4495 }
4496 2 => {
4497 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4498 decoder.context,
4499 )
4500 }
4501 0 => return Err(fidl::Error::UnknownUnionTag),
4502 _ => num_bytes as usize,
4503 };
4504
4505 if inlined != (member_inline_size <= 4) {
4506 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4507 }
4508 let _inner_offset;
4509 if inlined {
4510 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4511 _inner_offset = offset + 8;
4512 } else {
4513 depth.increment()?;
4514 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4515 }
4516 match ordinal {
4517 1 => {
4518 #[allow(irrefutable_let_patterns)]
4519 if let StringSelector::StringPattern(_) = self {
4520 } else {
4522 *self = StringSelector::StringPattern(fidl::new_empty!(
4524 fidl::encoding::BoundedString<1024>,
4525 D
4526 ));
4527 }
4528 #[allow(irrefutable_let_patterns)]
4529 if let StringSelector::StringPattern(ref mut val) = self {
4530 fidl::decode!(
4531 fidl::encoding::BoundedString<1024>,
4532 D,
4533 val,
4534 decoder,
4535 _inner_offset,
4536 depth
4537 )?;
4538 } else {
4539 unreachable!()
4540 }
4541 }
4542 2 => {
4543 #[allow(irrefutable_let_patterns)]
4544 if let StringSelector::ExactMatch(_) = self {
4545 } else {
4547 *self = StringSelector::ExactMatch(fidl::new_empty!(
4549 fidl::encoding::BoundedString<1024>,
4550 D
4551 ));
4552 }
4553 #[allow(irrefutable_let_patterns)]
4554 if let StringSelector::ExactMatch(ref mut val) = self {
4555 fidl::decode!(
4556 fidl::encoding::BoundedString<1024>,
4557 D,
4558 val,
4559 decoder,
4560 _inner_offset,
4561 depth
4562 )?;
4563 } else {
4564 unreachable!()
4565 }
4566 }
4567 #[allow(deprecated)]
4568 ordinal => {
4569 for _ in 0..num_handles {
4570 decoder.drop_next_handle()?;
4571 }
4572 *self = StringSelector::__SourceBreaking { unknown_ordinal: ordinal };
4573 }
4574 }
4575 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4576 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4577 }
4578 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4579 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4580 }
4581 Ok(())
4582 }
4583 }
4584
4585 impl fidl::encoding::ValueTypeMarker for SystemActivityEvent {
4586 type Borrowed<'a> = &'a Self;
4587 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4588 value
4589 }
4590 }
4591
4592 unsafe impl fidl::encoding::TypeMarker for SystemActivityEvent {
4593 type Owned = Self;
4594
4595 #[inline(always)]
4596 fn inline_align(_context: fidl::encoding::Context) -> usize {
4597 8
4598 }
4599
4600 #[inline(always)]
4601 fn inline_size(_context: fidl::encoding::Context) -> usize {
4602 16
4603 }
4604 }
4605
4606 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SystemActivityEvent, D>
4607 for &SystemActivityEvent
4608 {
4609 #[inline]
4610 unsafe fn encode(
4611 self,
4612 encoder: &mut fidl::encoding::Encoder<'_, D>,
4613 offset: usize,
4614 _depth: fidl::encoding::Depth,
4615 ) -> fidl::Result<()> {
4616 encoder.debug_check_bounds::<SystemActivityEvent>(offset);
4617 encoder.write_num::<u64>(self.ordinal(), offset);
4618 match self {
4619 SystemActivityEvent::PowerEvent(ref val) => {
4620 fidl::encoding::encode_in_envelope::<PowerEvent, D>(
4621 <PowerEvent as fidl::encoding::ValueTypeMarker>::borrow(val),
4622 encoder,
4623 offset + 8,
4624 _depth,
4625 )
4626 }
4627 SystemActivityEvent::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4628 }
4629 }
4630 }
4631
4632 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SystemActivityEvent {
4633 #[inline(always)]
4634 fn new_empty() -> Self {
4635 Self::__SourceBreaking { unknown_ordinal: 0 }
4636 }
4637
4638 #[inline]
4639 unsafe fn decode(
4640 &mut self,
4641 decoder: &mut fidl::encoding::Decoder<'_, D>,
4642 offset: usize,
4643 mut depth: fidl::encoding::Depth,
4644 ) -> fidl::Result<()> {
4645 decoder.debug_check_bounds::<Self>(offset);
4646 #[allow(unused_variables)]
4647 let next_out_of_line = decoder.next_out_of_line();
4648 let handles_before = decoder.remaining_handles();
4649 let (ordinal, inlined, num_bytes, num_handles) =
4650 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4651
4652 let member_inline_size = match ordinal {
4653 1 => <PowerEvent as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4654 0 => return Err(fidl::Error::UnknownUnionTag),
4655 _ => num_bytes as usize,
4656 };
4657
4658 if inlined != (member_inline_size <= 4) {
4659 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4660 }
4661 let _inner_offset;
4662 if inlined {
4663 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4664 _inner_offset = offset + 8;
4665 } else {
4666 depth.increment()?;
4667 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4668 }
4669 match ordinal {
4670 1 => {
4671 #[allow(irrefutable_let_patterns)]
4672 if let SystemActivityEvent::PowerEvent(_) = self {
4673 } else {
4675 *self = SystemActivityEvent::PowerEvent(fidl::new_empty!(PowerEvent, D));
4677 }
4678 #[allow(irrefutable_let_patterns)]
4679 if let SystemActivityEvent::PowerEvent(ref mut val) = self {
4680 fidl::decode!(PowerEvent, D, val, decoder, _inner_offset, depth)?;
4681 } else {
4682 unreachable!()
4683 }
4684 }
4685 #[allow(deprecated)]
4686 ordinal => {
4687 for _ in 0..num_handles {
4688 decoder.drop_next_handle()?;
4689 }
4690 *self = SystemActivityEvent::__SourceBreaking { unknown_ordinal: ordinal };
4691 }
4692 }
4693 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4694 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4695 }
4696 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4697 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4698 }
4699 Ok(())
4700 }
4701 }
4702
4703 impl fidl::encoding::ValueTypeMarker for TreeNames {
4704 type Borrowed<'a> = &'a Self;
4705 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4706 value
4707 }
4708 }
4709
4710 unsafe impl fidl::encoding::TypeMarker for TreeNames {
4711 type Owned = Self;
4712
4713 #[inline(always)]
4714 fn inline_align(_context: fidl::encoding::Context) -> usize {
4715 8
4716 }
4717
4718 #[inline(always)]
4719 fn inline_size(_context: fidl::encoding::Context) -> usize {
4720 16
4721 }
4722 }
4723
4724 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeNames, D>
4725 for &TreeNames
4726 {
4727 #[inline]
4728 unsafe fn encode(
4729 self,
4730 encoder: &mut fidl::encoding::Encoder<'_, D>,
4731 offset: usize,
4732 _depth: fidl::encoding::Depth,
4733 ) -> fidl::Result<()> {
4734 encoder.debug_check_bounds::<TreeNames>(offset);
4735 encoder.write_num::<u64>(self.ordinal(), offset);
4736 match self {
4737 TreeNames::Some(ref val) => {
4738 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>, D>(
4739 <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::ValueTypeMarker>::borrow(val),
4740 encoder, offset + 8, _depth
4741 )
4742 }
4743 TreeNames::All(ref val) => {
4744 fidl::encoding::encode_in_envelope::<All, D>(
4745 <All as fidl::encoding::ValueTypeMarker>::borrow(val),
4746 encoder, offset + 8, _depth
4747 )
4748 }
4749 TreeNames::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4750 }
4751 }
4752 }
4753
4754 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeNames {
4755 #[inline(always)]
4756 fn new_empty() -> Self {
4757 Self::__SourceBreaking { unknown_ordinal: 0 }
4758 }
4759
4760 #[inline]
4761 unsafe fn decode(
4762 &mut self,
4763 decoder: &mut fidl::encoding::Decoder<'_, D>,
4764 offset: usize,
4765 mut depth: fidl::encoding::Depth,
4766 ) -> fidl::Result<()> {
4767 decoder.debug_check_bounds::<Self>(offset);
4768 #[allow(unused_variables)]
4769 let next_out_of_line = decoder.next_out_of_line();
4770 let handles_before = decoder.remaining_handles();
4771 let (ordinal, inlined, num_bytes, num_handles) =
4772 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4773
4774 let member_inline_size = match ordinal {
4775 1 => <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4776 2 => <All as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4777 0 => return Err(fidl::Error::UnknownUnionTag),
4778 _ => num_bytes as usize,
4779 };
4780
4781 if inlined != (member_inline_size <= 4) {
4782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4783 }
4784 let _inner_offset;
4785 if inlined {
4786 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4787 _inner_offset = offset + 8;
4788 } else {
4789 depth.increment()?;
4790 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4791 }
4792 match ordinal {
4793 1 => {
4794 #[allow(irrefutable_let_patterns)]
4795 if let TreeNames::Some(_) = self {
4796 } else {
4798 *self = TreeNames::Some(fidl::new_empty!(
4800 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4801 D
4802 ));
4803 }
4804 #[allow(irrefutable_let_patterns)]
4805 if let TreeNames::Some(ref mut val) = self {
4806 fidl::decode!(
4807 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4808 D,
4809 val,
4810 decoder,
4811 _inner_offset,
4812 depth
4813 )?;
4814 } else {
4815 unreachable!()
4816 }
4817 }
4818 2 => {
4819 #[allow(irrefutable_let_patterns)]
4820 if let TreeNames::All(_) = self {
4821 } else {
4823 *self = TreeNames::All(fidl::new_empty!(All, D));
4825 }
4826 #[allow(irrefutable_let_patterns)]
4827 if let TreeNames::All(ref mut val) = self {
4828 fidl::decode!(All, D, val, decoder, _inner_offset, depth)?;
4829 } else {
4830 unreachable!()
4831 }
4832 }
4833 #[allow(deprecated)]
4834 ordinal => {
4835 for _ in 0..num_handles {
4836 decoder.drop_next_handle()?;
4837 }
4838 *self = TreeNames::__SourceBreaking { unknown_ordinal: ordinal };
4839 }
4840 }
4841 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4843 }
4844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4846 }
4847 Ok(())
4848 }
4849 }
4850
4851 impl fidl::encoding::ValueTypeMarker for TreeSelector {
4852 type Borrowed<'a> = &'a Self;
4853 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4854 value
4855 }
4856 }
4857
4858 unsafe impl fidl::encoding::TypeMarker for TreeSelector {
4859 type Owned = Self;
4860
4861 #[inline(always)]
4862 fn inline_align(_context: fidl::encoding::Context) -> usize {
4863 8
4864 }
4865
4866 #[inline(always)]
4867 fn inline_size(_context: fidl::encoding::Context) -> usize {
4868 16
4869 }
4870 }
4871
4872 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeSelector, D>
4873 for &TreeSelector
4874 {
4875 #[inline]
4876 unsafe fn encode(
4877 self,
4878 encoder: &mut fidl::encoding::Encoder<'_, D>,
4879 offset: usize,
4880 _depth: fidl::encoding::Depth,
4881 ) -> fidl::Result<()> {
4882 encoder.debug_check_bounds::<TreeSelector>(offset);
4883 encoder.write_num::<u64>(self.ordinal(), offset);
4884 match self {
4885 TreeSelector::SubtreeSelector(ref val) => {
4886 fidl::encoding::encode_in_envelope::<SubtreeSelector, D>(
4887 <SubtreeSelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4888 encoder,
4889 offset + 8,
4890 _depth,
4891 )
4892 }
4893 TreeSelector::PropertySelector(ref val) => {
4894 fidl::encoding::encode_in_envelope::<PropertySelector, D>(
4895 <PropertySelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4896 encoder,
4897 offset + 8,
4898 _depth,
4899 )
4900 }
4901 TreeSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4902 }
4903 }
4904 }
4905
4906 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeSelector {
4907 #[inline(always)]
4908 fn new_empty() -> Self {
4909 Self::__SourceBreaking { unknown_ordinal: 0 }
4910 }
4911
4912 #[inline]
4913 unsafe fn decode(
4914 &mut self,
4915 decoder: &mut fidl::encoding::Decoder<'_, D>,
4916 offset: usize,
4917 mut depth: fidl::encoding::Depth,
4918 ) -> fidl::Result<()> {
4919 decoder.debug_check_bounds::<Self>(offset);
4920 #[allow(unused_variables)]
4921 let next_out_of_line = decoder.next_out_of_line();
4922 let handles_before = decoder.remaining_handles();
4923 let (ordinal, inlined, num_bytes, num_handles) =
4924 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4925
4926 let member_inline_size = match ordinal {
4927 1 => <SubtreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4928 2 => <PropertySelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4929 0 => return Err(fidl::Error::UnknownUnionTag),
4930 _ => num_bytes as usize,
4931 };
4932
4933 if inlined != (member_inline_size <= 4) {
4934 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4935 }
4936 let _inner_offset;
4937 if inlined {
4938 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4939 _inner_offset = offset + 8;
4940 } else {
4941 depth.increment()?;
4942 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4943 }
4944 match ordinal {
4945 1 => {
4946 #[allow(irrefutable_let_patterns)]
4947 if let TreeSelector::SubtreeSelector(_) = self {
4948 } else {
4950 *self = TreeSelector::SubtreeSelector(fidl::new_empty!(SubtreeSelector, D));
4952 }
4953 #[allow(irrefutable_let_patterns)]
4954 if let TreeSelector::SubtreeSelector(ref mut val) = self {
4955 fidl::decode!(SubtreeSelector, D, val, decoder, _inner_offset, depth)?;
4956 } else {
4957 unreachable!()
4958 }
4959 }
4960 2 => {
4961 #[allow(irrefutable_let_patterns)]
4962 if let TreeSelector::PropertySelector(_) = self {
4963 } else {
4965 *self =
4967 TreeSelector::PropertySelector(fidl::new_empty!(PropertySelector, D));
4968 }
4969 #[allow(irrefutable_let_patterns)]
4970 if let TreeSelector::PropertySelector(ref mut val) = self {
4971 fidl::decode!(PropertySelector, D, val, decoder, _inner_offset, depth)?;
4972 } else {
4973 unreachable!()
4974 }
4975 }
4976 #[allow(deprecated)]
4977 ordinal => {
4978 for _ in 0..num_handles {
4979 decoder.drop_next_handle()?;
4980 }
4981 *self = TreeSelector::__SourceBreaking { unknown_ordinal: ordinal };
4982 }
4983 }
4984 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4985 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4986 }
4987 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4988 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4989 }
4990 Ok(())
4991 }
4992 }
4993}