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
37#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
40pub enum ConfigurationError {
41 SamplePeriodTooSmall,
44 SampleParametersInvalid,
47 InvalidSelectors,
50 #[doc(hidden)]
51 __SourceBreaking { unknown_ordinal: u32 },
52}
53
54#[macro_export]
56macro_rules! ConfigurationErrorUnknown {
57 () => {
58 _
59 };
60}
61
62impl ConfigurationError {
63 #[inline]
64 pub fn from_primitive(prim: u32) -> Option<Self> {
65 match prim {
66 1 => Some(Self::SamplePeriodTooSmall),
67 2 => Some(Self::SampleParametersInvalid),
68 3 => Some(Self::InvalidSelectors),
69 _ => None,
70 }
71 }
72
73 #[inline]
74 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
75 match prim {
76 1 => Self::SamplePeriodTooSmall,
77 2 => Self::SampleParametersInvalid,
78 3 => Self::InvalidSelectors,
79 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
80 }
81 }
82
83 #[inline]
84 pub fn unknown() -> Self {
85 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
86 }
87
88 #[inline]
89 pub const fn into_primitive(self) -> u32 {
90 match self {
91 Self::SamplePeriodTooSmall => 1,
92 Self::SampleParametersInvalid => 2,
93 Self::InvalidSelectors => 3,
94 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
95 }
96 }
97
98 #[inline]
99 pub fn is_unknown(&self) -> bool {
100 match self {
101 Self::__SourceBreaking { unknown_ordinal: _ } => true,
102 _ => false,
103 }
104 }
105}
106
107#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
108#[repr(u8)]
109pub enum DataType {
110 Inspect = 1,
112 Logs = 3,
114}
115
116impl DataType {
117 #[inline]
118 pub fn from_primitive(prim: u8) -> Option<Self> {
119 match prim {
120 1 => Some(Self::Inspect),
121 3 => Some(Self::Logs),
122 _ => None,
123 }
124 }
125
126 #[inline]
127 pub const fn into_primitive(self) -> u8 {
128 self as u8
129 }
130}
131
132#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
135#[repr(u32)]
136pub enum Format {
137 Json = 1,
140 Text = 2,
142 Cbor = 3,
145 Fxt = 5,
149}
150
151impl Format {
152 #[inline]
153 pub fn from_primitive(prim: u32) -> Option<Self> {
154 match prim {
155 1 => Some(Self::Json),
156 2 => Some(Self::Text),
157 3 => Some(Self::Cbor),
158 5 => Some(Self::Fxt),
159 _ => None,
160 }
161 }
162
163 #[inline]
164 pub const fn into_primitive(self) -> u32 {
165 self as u32
166 }
167}
168
169#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
170pub enum PowerEvent {
171 BoostStart,
173 BoostEnd,
175 #[doc(hidden)]
176 __SourceBreaking { unknown_ordinal: u32 },
177}
178
179#[macro_export]
181macro_rules! PowerEventUnknown {
182 () => {
183 _
184 };
185}
186
187impl PowerEvent {
188 #[inline]
189 pub fn from_primitive(prim: u32) -> Option<Self> {
190 match prim {
191 1 => Some(Self::BoostStart),
192 2 => Some(Self::BoostEnd),
193 _ => None,
194 }
195 }
196
197 #[inline]
198 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
199 match prim {
200 1 => Self::BoostStart,
201 2 => Self::BoostEnd,
202 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
203 }
204 }
205
206 #[inline]
207 pub fn unknown() -> Self {
208 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
209 }
210
211 #[inline]
212 pub const fn into_primitive(self) -> u32 {
213 match self {
214 Self::BoostStart => 1,
215 Self::BoostEnd => 2,
216 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
217 }
218 }
219
220 #[inline]
221 pub fn is_unknown(&self) -> bool {
222 match self {
223 Self::__SourceBreaking { unknown_ordinal: _ } => true,
224 _ => false,
225 }
226 }
227}
228
229#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
232#[repr(u32)]
233pub enum ReaderError {
234 Io = 1,
235}
236
237impl ReaderError {
238 #[inline]
239 pub fn from_primitive(prim: u32) -> Option<Self> {
240 match prim {
241 1 => Some(Self::Io),
242 _ => None,
243 }
244 }
245
246 #[inline]
247 pub const fn into_primitive(self) -> u32 {
248 self as u32
249 }
250}
251
252#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
257pub enum RuntimeError {
258 BatchIteratorFailed,
261 #[doc(hidden)]
262 __SourceBreaking { unknown_ordinal: u32 },
263}
264
265#[macro_export]
267macro_rules! RuntimeErrorUnknown {
268 () => {
269 _
270 };
271}
272
273impl RuntimeError {
274 #[inline]
275 pub fn from_primitive(prim: u32) -> Option<Self> {
276 match prim {
277 1 => Some(Self::BatchIteratorFailed),
278 _ => None,
279 }
280 }
281
282 #[inline]
283 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
284 match prim {
285 1 => Self::BatchIteratorFailed,
286 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
287 }
288 }
289
290 #[inline]
291 pub fn unknown() -> Self {
292 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
293 }
294
295 #[inline]
296 pub const fn into_primitive(self) -> u32 {
297 match self {
298 Self::BatchIteratorFailed => 1,
299 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
300 }
301 }
302
303 #[inline]
304 pub fn is_unknown(&self) -> bool {
305 match self {
306 Self::__SourceBreaking { unknown_ordinal: _ } => true,
307 _ => false,
308 }
309 }
310}
311
312#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
315pub enum SampleStrategy {
316 OnDiff,
320 Always,
325 #[doc(hidden)]
326 __SourceBreaking { unknown_ordinal: u8 },
327}
328
329#[macro_export]
331macro_rules! SampleStrategyUnknown {
332 () => {
333 _
334 };
335}
336
337impl SampleStrategy {
338 #[inline]
339 pub fn from_primitive(prim: u8) -> Option<Self> {
340 match prim {
341 1 => Some(Self::OnDiff),
342 2 => Some(Self::Always),
343 _ => None,
344 }
345 }
346
347 #[inline]
348 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
349 match prim {
350 1 => Self::OnDiff,
351 2 => Self::Always,
352 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
353 }
354 }
355
356 #[inline]
357 pub fn unknown() -> Self {
358 Self::__SourceBreaking { unknown_ordinal: 0xff }
359 }
360
361 #[inline]
362 pub const fn into_primitive(self) -> u8 {
363 match self {
364 Self::OnDiff => 1,
365 Self::Always => 2,
366 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
367 }
368 }
369
370 #[inline]
371 pub fn is_unknown(&self) -> bool {
372 match self {
373 Self::__SourceBreaking { unknown_ordinal: _ } => true,
374 _ => false,
375 }
376 }
377}
378
379#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
381#[repr(u8)]
382pub enum StreamMode {
383 Snapshot = 1,
386 SnapshotThenSubscribe = 2,
390 Subscribe = 3,
393}
394
395impl StreamMode {
396 #[inline]
397 pub fn from_primitive(prim: u8) -> Option<Self> {
398 match prim {
399 1 => Some(Self::Snapshot),
400 2 => Some(Self::SnapshotThenSubscribe),
401 3 => Some(Self::Subscribe),
402 _ => None,
403 }
404 }
405
406 #[inline]
407 pub const fn into_primitive(self) -> u8 {
408 self as u8
409 }
410}
411
412#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
413pub struct All;
414
415impl fidl::Persistable for All {}
416
417#[derive(Clone, Debug, PartialEq)]
418pub struct LogInterestSelector {
419 pub selector: ComponentSelector,
421 pub interest: fidl_fuchsia_diagnostics_types_common::Interest,
423}
424
425impl fidl::Persistable for LogInterestSelector {}
426
427#[derive(Clone, Debug, PartialEq)]
430pub struct PropertySelector {
431 pub node_path: Vec<StringSelector>,
444 pub target_properties: StringSelector,
450}
451
452impl fidl::Persistable for PropertySelector {}
453
454#[derive(Clone, Debug, PartialEq)]
457pub struct SubtreeSelector {
458 pub node_path: Vec<StringSelector>,
471}
472
473impl fidl::Persistable for SubtreeSelector {}
474
475#[derive(Clone, Debug, PartialEq)]
476pub struct SystemActivityMonitorGetNextEventResponse {
477 pub event: SystemActivityEvent,
478}
479
480impl fidl::Persistable for SystemActivityMonitorGetNextEventResponse {}
481
482#[derive(Clone, Debug, Default, PartialEq)]
501pub struct ComponentSelector {
502 pub moniker_segments: Option<Vec<StringSelector>>,
510 #[doc(hidden)]
511 pub __source_breaking: fidl::marker::SourceBreaking,
512}
513
514impl fidl::Persistable for ComponentSelector {}
515
516#[derive(Clone, Debug, Default, PartialEq)]
517pub struct LogSettingsSetComponentInterestRequest {
518 pub selectors: Option<Vec<LogInterestSelector>>,
520 pub persist: Option<bool>,
523 #[doc(hidden)]
524 pub __source_breaking: fidl::marker::SourceBreaking,
525}
526
527impl fidl::Persistable for LogSettingsSetComponentInterestRequest {}
528
529#[derive(Clone, Debug, Default, PartialEq)]
530pub struct LogStreamOptions {
531 pub mode: Option<StreamMode>,
533 pub include_moniker: Option<bool>,
536 pub include_component_url: Option<bool>,
539 pub include_rolled_out: Option<bool>,
543 pub subscribe_to_manifest: Option<bool>,
544 #[doc(hidden)]
545 pub __source_breaking: fidl::marker::SourceBreaking,
546}
547
548impl fidl::Persistable for LogStreamOptions {}
549
550#[derive(Clone, Debug, Default, PartialEq)]
552pub struct PerformanceConfiguration {
553 pub max_aggregate_content_size_bytes: Option<u64>,
559 pub batch_retrieval_timeout_seconds: Option<i64>,
568 #[doc(hidden)]
569 pub __source_breaking: fidl::marker::SourceBreaking,
570}
571
572impl fidl::Persistable for PerformanceConfiguration {}
573
574#[derive(Clone, Debug, Default, PartialEq)]
575pub struct SampleDatum {
576 pub selector: Option<SelectorArgument>,
578 pub strategy: Option<SampleStrategy>,
580 pub interval_secs: Option<i64>,
598 #[doc(hidden)]
599 pub __source_breaking: fidl::marker::SourceBreaking,
600}
601
602impl fidl::Persistable for SampleDatum {}
603
604#[derive(Clone, Debug, Default, PartialEq)]
606pub struct SampleParameters {
607 pub data: Option<Vec<SampleDatum>>,
613 #[doc(hidden)]
614 pub __source_breaking: fidl::marker::SourceBreaking,
615}
616
617impl fidl::Persistable for SampleParameters {}
618
619#[derive(Clone, Debug, Default, PartialEq)]
633pub struct Selector {
634 pub component_selector: Option<ComponentSelector>,
637 pub tree_selector: Option<TreeSelector>,
641 pub tree_names: Option<TreeNames>,
647 #[doc(hidden)]
648 pub __source_breaking: fidl::marker::SourceBreaking,
649}
650
651impl fidl::Persistable for Selector {}
652
653#[derive(Clone, Debug, Default, PartialEq)]
655pub struct StreamParameters {
656 pub data_type: Option<DataType>,
660 pub stream_mode: Option<StreamMode>,
664 pub format: Option<Format>,
668 pub client_selector_configuration: Option<ClientSelectorConfiguration>,
673 pub batch_retrieval_timeout_seconds: Option<i64>,
682 pub performance_configuration: Option<PerformanceConfiguration>,
685 #[doc(hidden)]
686 pub __source_breaking: fidl::marker::SourceBreaking,
687}
688
689impl fidl::Persistable for StreamParameters {}
690
691#[derive(Clone, Debug)]
692pub enum ClientSelectorConfiguration {
693 Selectors(Vec<SelectorArgument>),
697 SelectAll(bool),
700 #[doc(hidden)]
701 __SourceBreaking { unknown_ordinal: u64 },
702}
703
704#[macro_export]
706macro_rules! ClientSelectorConfigurationUnknown {
707 () => {
708 _
709 };
710}
711
712impl PartialEq for ClientSelectorConfiguration {
714 fn eq(&self, other: &Self) -> bool {
715 match (self, other) {
716 (Self::Selectors(x), Self::Selectors(y)) => *x == *y,
717 (Self::SelectAll(x), Self::SelectAll(y)) => *x == *y,
718 _ => false,
719 }
720 }
721}
722
723impl ClientSelectorConfiguration {
724 #[inline]
725 pub fn ordinal(&self) -> u64 {
726 match *self {
727 Self::Selectors(_) => 1,
728 Self::SelectAll(_) => 2,
729 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
730 }
731 }
732
733 #[inline]
734 pub fn unknown_variant_for_testing() -> Self {
735 Self::__SourceBreaking { unknown_ordinal: 0 }
736 }
737
738 #[inline]
739 pub fn is_unknown(&self) -> bool {
740 match self {
741 Self::__SourceBreaking { .. } => true,
742 _ => false,
743 }
744 }
745}
746
747impl fidl::Persistable for ClientSelectorConfiguration {}
748
749#[derive(Clone, Debug)]
752pub enum SelectorArgument {
753 StructuredSelector(Selector),
756 RawSelector(String),
763 #[doc(hidden)]
764 __SourceBreaking { unknown_ordinal: u64 },
765}
766
767#[macro_export]
769macro_rules! SelectorArgumentUnknown {
770 () => {
771 _
772 };
773}
774
775impl PartialEq for SelectorArgument {
777 fn eq(&self, other: &Self) -> bool {
778 match (self, other) {
779 (Self::StructuredSelector(x), Self::StructuredSelector(y)) => *x == *y,
780 (Self::RawSelector(x), Self::RawSelector(y)) => *x == *y,
781 _ => false,
782 }
783 }
784}
785
786impl SelectorArgument {
787 #[inline]
788 pub fn ordinal(&self) -> u64 {
789 match *self {
790 Self::StructuredSelector(_) => 1,
791 Self::RawSelector(_) => 2,
792 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
793 }
794 }
795
796 #[inline]
797 pub fn unknown_variant_for_testing() -> Self {
798 Self::__SourceBreaking { unknown_ordinal: 0 }
799 }
800
801 #[inline]
802 pub fn is_unknown(&self) -> bool {
803 match self {
804 Self::__SourceBreaking { .. } => true,
805 _ => false,
806 }
807 }
808}
809
810impl fidl::Persistable for SelectorArgument {}
811
812#[derive(Clone, Debug)]
815pub enum StringSelector {
816 StringPattern(String),
836 ExactMatch(String),
837 #[doc(hidden)]
838 __SourceBreaking {
839 unknown_ordinal: u64,
840 },
841}
842
843#[macro_export]
845macro_rules! StringSelectorUnknown {
846 () => {
847 _
848 };
849}
850
851impl PartialEq for StringSelector {
853 fn eq(&self, other: &Self) -> bool {
854 match (self, other) {
855 (Self::StringPattern(x), Self::StringPattern(y)) => *x == *y,
856 (Self::ExactMatch(x), Self::ExactMatch(y)) => *x == *y,
857 _ => false,
858 }
859 }
860}
861
862impl StringSelector {
863 #[inline]
864 pub fn ordinal(&self) -> u64 {
865 match *self {
866 Self::StringPattern(_) => 1,
867 Self::ExactMatch(_) => 2,
868 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
869 }
870 }
871
872 #[inline]
873 pub fn unknown_variant_for_testing() -> Self {
874 Self::__SourceBreaking { unknown_ordinal: 0 }
875 }
876
877 #[inline]
878 pub fn is_unknown(&self) -> bool {
879 match self {
880 Self::__SourceBreaking { .. } => true,
881 _ => false,
882 }
883 }
884}
885
886impl fidl::Persistable for StringSelector {}
887
888#[derive(Clone, Debug)]
889pub enum SystemActivityEvent {
890 PowerEvent(PowerEvent),
891 #[doc(hidden)]
892 __SourceBreaking {
893 unknown_ordinal: u64,
894 },
895}
896
897#[macro_export]
899macro_rules! SystemActivityEventUnknown {
900 () => {
901 _
902 };
903}
904
905impl PartialEq for SystemActivityEvent {
907 fn eq(&self, other: &Self) -> bool {
908 match (self, other) {
909 (Self::PowerEvent(x), Self::PowerEvent(y)) => *x == *y,
910 _ => false,
911 }
912 }
913}
914
915impl SystemActivityEvent {
916 #[inline]
917 pub fn ordinal(&self) -> u64 {
918 match *self {
919 Self::PowerEvent(_) => 1,
920 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
921 }
922 }
923
924 #[inline]
925 pub fn unknown_variant_for_testing() -> Self {
926 Self::__SourceBreaking { unknown_ordinal: 0 }
927 }
928
929 #[inline]
930 pub fn is_unknown(&self) -> bool {
931 match self {
932 Self::__SourceBreaking { .. } => true,
933 _ => false,
934 }
935 }
936}
937
938impl fidl::Persistable for SystemActivityEvent {}
939
940#[derive(Clone, Debug)]
944pub enum TreeNames {
945 Some(Vec<String>),
947 All(All),
950 #[doc(hidden)]
951 __SourceBreaking { unknown_ordinal: u64 },
952}
953
954#[macro_export]
956macro_rules! TreeNamesUnknown {
957 () => {
958 _
959 };
960}
961
962impl PartialEq for TreeNames {
964 fn eq(&self, other: &Self) -> bool {
965 match (self, other) {
966 (Self::Some(x), Self::Some(y)) => *x == *y,
967 (Self::All(x), Self::All(y)) => *x == *y,
968 _ => false,
969 }
970 }
971}
972
973impl TreeNames {
974 #[inline]
975 pub fn ordinal(&self) -> u64 {
976 match *self {
977 Self::Some(_) => 1,
978 Self::All(_) => 2,
979 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
980 }
981 }
982
983 #[inline]
984 pub fn unknown_variant_for_testing() -> Self {
985 Self::__SourceBreaking { unknown_ordinal: 0 }
986 }
987
988 #[inline]
989 pub fn is_unknown(&self) -> bool {
990 match self {
991 Self::__SourceBreaking { .. } => true,
992 _ => false,
993 }
994 }
995}
996
997impl fidl::Persistable for TreeNames {}
998
999#[derive(Clone, Debug)]
1002pub enum TreeSelector {
1003 SubtreeSelector(SubtreeSelector),
1006 PropertySelector(PropertySelector),
1009 #[doc(hidden)]
1010 __SourceBreaking { unknown_ordinal: u64 },
1011}
1012
1013#[macro_export]
1015macro_rules! TreeSelectorUnknown {
1016 () => {
1017 _
1018 };
1019}
1020
1021impl PartialEq for TreeSelector {
1023 fn eq(&self, other: &Self) -> bool {
1024 match (self, other) {
1025 (Self::SubtreeSelector(x), Self::SubtreeSelector(y)) => *x == *y,
1026 (Self::PropertySelector(x), Self::PropertySelector(y)) => *x == *y,
1027 _ => false,
1028 }
1029 }
1030}
1031
1032impl TreeSelector {
1033 #[inline]
1034 pub fn ordinal(&self) -> u64 {
1035 match *self {
1036 Self::SubtreeSelector(_) => 1,
1037 Self::PropertySelector(_) => 2,
1038 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1039 }
1040 }
1041
1042 #[inline]
1043 pub fn unknown_variant_for_testing() -> Self {
1044 Self::__SourceBreaking { unknown_ordinal: 0 }
1045 }
1046
1047 #[inline]
1048 pub fn is_unknown(&self) -> bool {
1049 match self {
1050 Self::__SourceBreaking { .. } => true,
1051 _ => false,
1052 }
1053 }
1054}
1055
1056impl fidl::Persistable for TreeSelector {}
1057
1058pub mod archive_accessor_ordinals {
1059 pub const STREAM_DIAGNOSTICS: u64 = 0x20c73e2ecd653c3e;
1060 pub const STREAM_DIAGNOSTICS_TO_SOCKET: u64 = 0x2498dd7cea299478;
1061 pub const WAIT_FOR_READY: u64 = 0x122963198011bd24;
1062}
1063
1064pub mod batch_iterator_ordinals {
1065 pub const GET_NEXT: u64 = 0x781986486c6254a5;
1066 pub const WAIT_FOR_READY: u64 = 0x70598ee271597603;
1067}
1068
1069pub mod log_flusher_ordinals {
1070 pub const WAIT_UNTIL_FLUSHED: u64 = 0x7dc4892e46748b5b;
1071}
1072
1073pub mod log_settings_ordinals {
1074 pub const SET_COMPONENT_INTEREST: u64 = 0x35f7004d2367f6c1;
1075}
1076
1077pub mod log_stream_ordinals {
1078 pub const CONNECT: u64 = 0x745eb34f10d51a88;
1079}
1080
1081pub mod sample_ordinals {
1082 pub const SET: u64 = 0x421a79bdbf45418e;
1083 pub const COMMIT: u64 = 0x25a3bc5f26787e9b;
1084}
1085
1086pub mod sample_sink_ordinals {
1087 pub const ON_SAMPLE_READIED: u64 = 0x39096d97ed03335f;
1088 pub const ON_NOW_OR_NEVER: u64 = 0x3dc94ca1e1290894;
1089}
1090
1091pub mod system_activity_monitor_ordinals {
1092 pub const GET_NEXT_EVENT: u64 = 0x354b94623dd41af9;
1093}
1094
1095mod internal {
1096 use super::*;
1097 unsafe impl fidl::encoding::TypeMarker for ConfigurationError {
1098 type Owned = Self;
1099
1100 #[inline(always)]
1101 fn inline_align(_context: fidl::encoding::Context) -> usize {
1102 std::mem::align_of::<u32>()
1103 }
1104
1105 #[inline(always)]
1106 fn inline_size(_context: fidl::encoding::Context) -> usize {
1107 std::mem::size_of::<u32>()
1108 }
1109
1110 #[inline(always)]
1111 fn encode_is_copy() -> bool {
1112 false
1113 }
1114
1115 #[inline(always)]
1116 fn decode_is_copy() -> bool {
1117 false
1118 }
1119 }
1120
1121 impl fidl::encoding::ValueTypeMarker for ConfigurationError {
1122 type Borrowed<'a> = Self;
1123 #[inline(always)]
1124 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1125 *value
1126 }
1127 }
1128
1129 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1130 for ConfigurationError
1131 {
1132 #[inline]
1133 unsafe fn encode(
1134 self,
1135 encoder: &mut fidl::encoding::Encoder<'_, D>,
1136 offset: usize,
1137 _depth: fidl::encoding::Depth,
1138 ) -> fidl::Result<()> {
1139 encoder.debug_check_bounds::<Self>(offset);
1140 encoder.write_num(self.into_primitive(), offset);
1141 Ok(())
1142 }
1143 }
1144
1145 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigurationError {
1146 #[inline(always)]
1147 fn new_empty() -> Self {
1148 Self::unknown()
1149 }
1150
1151 #[inline]
1152 unsafe fn decode(
1153 &mut self,
1154 decoder: &mut fidl::encoding::Decoder<'_, D>,
1155 offset: usize,
1156 _depth: fidl::encoding::Depth,
1157 ) -> fidl::Result<()> {
1158 decoder.debug_check_bounds::<Self>(offset);
1159 let prim = decoder.read_num::<u32>(offset);
1160
1161 *self = Self::from_primitive_allow_unknown(prim);
1162 Ok(())
1163 }
1164 }
1165 unsafe impl fidl::encoding::TypeMarker for DataType {
1166 type Owned = Self;
1167
1168 #[inline(always)]
1169 fn inline_align(_context: fidl::encoding::Context) -> usize {
1170 std::mem::align_of::<u8>()
1171 }
1172
1173 #[inline(always)]
1174 fn inline_size(_context: fidl::encoding::Context) -> usize {
1175 std::mem::size_of::<u8>()
1176 }
1177
1178 #[inline(always)]
1179 fn encode_is_copy() -> bool {
1180 true
1181 }
1182
1183 #[inline(always)]
1184 fn decode_is_copy() -> bool {
1185 false
1186 }
1187 }
1188
1189 impl fidl::encoding::ValueTypeMarker for DataType {
1190 type Borrowed<'a> = Self;
1191 #[inline(always)]
1192 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1193 *value
1194 }
1195 }
1196
1197 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DataType {
1198 #[inline]
1199 unsafe fn encode(
1200 self,
1201 encoder: &mut fidl::encoding::Encoder<'_, D>,
1202 offset: usize,
1203 _depth: fidl::encoding::Depth,
1204 ) -> fidl::Result<()> {
1205 encoder.debug_check_bounds::<Self>(offset);
1206 encoder.write_num(self.into_primitive(), offset);
1207 Ok(())
1208 }
1209 }
1210
1211 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DataType {
1212 #[inline(always)]
1213 fn new_empty() -> Self {
1214 Self::Inspect
1215 }
1216
1217 #[inline]
1218 unsafe fn decode(
1219 &mut self,
1220 decoder: &mut fidl::encoding::Decoder<'_, D>,
1221 offset: usize,
1222 _depth: fidl::encoding::Depth,
1223 ) -> fidl::Result<()> {
1224 decoder.debug_check_bounds::<Self>(offset);
1225 let prim = decoder.read_num::<u8>(offset);
1226
1227 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1228 Ok(())
1229 }
1230 }
1231 unsafe impl fidl::encoding::TypeMarker for Format {
1232 type Owned = Self;
1233
1234 #[inline(always)]
1235 fn inline_align(_context: fidl::encoding::Context) -> usize {
1236 std::mem::align_of::<u32>()
1237 }
1238
1239 #[inline(always)]
1240 fn inline_size(_context: fidl::encoding::Context) -> usize {
1241 std::mem::size_of::<u32>()
1242 }
1243
1244 #[inline(always)]
1245 fn encode_is_copy() -> bool {
1246 true
1247 }
1248
1249 #[inline(always)]
1250 fn decode_is_copy() -> bool {
1251 false
1252 }
1253 }
1254
1255 impl fidl::encoding::ValueTypeMarker for Format {
1256 type Borrowed<'a> = Self;
1257 #[inline(always)]
1258 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1259 *value
1260 }
1261 }
1262
1263 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Format {
1264 #[inline]
1265 unsafe fn encode(
1266 self,
1267 encoder: &mut fidl::encoding::Encoder<'_, D>,
1268 offset: usize,
1269 _depth: fidl::encoding::Depth,
1270 ) -> fidl::Result<()> {
1271 encoder.debug_check_bounds::<Self>(offset);
1272 encoder.write_num(self.into_primitive(), offset);
1273 Ok(())
1274 }
1275 }
1276
1277 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
1278 #[inline(always)]
1279 fn new_empty() -> Self {
1280 Self::Json
1281 }
1282
1283 #[inline]
1284 unsafe fn decode(
1285 &mut self,
1286 decoder: &mut fidl::encoding::Decoder<'_, D>,
1287 offset: usize,
1288 _depth: fidl::encoding::Depth,
1289 ) -> fidl::Result<()> {
1290 decoder.debug_check_bounds::<Self>(offset);
1291 let prim = decoder.read_num::<u32>(offset);
1292
1293 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1294 Ok(())
1295 }
1296 }
1297 unsafe impl fidl::encoding::TypeMarker for PowerEvent {
1298 type Owned = Self;
1299
1300 #[inline(always)]
1301 fn inline_align(_context: fidl::encoding::Context) -> usize {
1302 std::mem::align_of::<u32>()
1303 }
1304
1305 #[inline(always)]
1306 fn inline_size(_context: fidl::encoding::Context) -> usize {
1307 std::mem::size_of::<u32>()
1308 }
1309
1310 #[inline(always)]
1311 fn encode_is_copy() -> bool {
1312 false
1313 }
1314
1315 #[inline(always)]
1316 fn decode_is_copy() -> bool {
1317 false
1318 }
1319 }
1320
1321 impl fidl::encoding::ValueTypeMarker for PowerEvent {
1322 type Borrowed<'a> = Self;
1323 #[inline(always)]
1324 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1325 *value
1326 }
1327 }
1328
1329 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PowerEvent {
1330 #[inline]
1331 unsafe fn encode(
1332 self,
1333 encoder: &mut fidl::encoding::Encoder<'_, D>,
1334 offset: usize,
1335 _depth: fidl::encoding::Depth,
1336 ) -> fidl::Result<()> {
1337 encoder.debug_check_bounds::<Self>(offset);
1338 encoder.write_num(self.into_primitive(), offset);
1339 Ok(())
1340 }
1341 }
1342
1343 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PowerEvent {
1344 #[inline(always)]
1345 fn new_empty() -> Self {
1346 Self::unknown()
1347 }
1348
1349 #[inline]
1350 unsafe fn decode(
1351 &mut self,
1352 decoder: &mut fidl::encoding::Decoder<'_, D>,
1353 offset: usize,
1354 _depth: fidl::encoding::Depth,
1355 ) -> fidl::Result<()> {
1356 decoder.debug_check_bounds::<Self>(offset);
1357 let prim = decoder.read_num::<u32>(offset);
1358
1359 *self = Self::from_primitive_allow_unknown(prim);
1360 Ok(())
1361 }
1362 }
1363 unsafe impl fidl::encoding::TypeMarker for ReaderError {
1364 type Owned = Self;
1365
1366 #[inline(always)]
1367 fn inline_align(_context: fidl::encoding::Context) -> usize {
1368 std::mem::align_of::<u32>()
1369 }
1370
1371 #[inline(always)]
1372 fn inline_size(_context: fidl::encoding::Context) -> usize {
1373 std::mem::size_of::<u32>()
1374 }
1375
1376 #[inline(always)]
1377 fn encode_is_copy() -> bool {
1378 true
1379 }
1380
1381 #[inline(always)]
1382 fn decode_is_copy() -> bool {
1383 false
1384 }
1385 }
1386
1387 impl fidl::encoding::ValueTypeMarker for ReaderError {
1388 type Borrowed<'a> = Self;
1389 #[inline(always)]
1390 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1391 *value
1392 }
1393 }
1394
1395 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ReaderError {
1396 #[inline]
1397 unsafe fn encode(
1398 self,
1399 encoder: &mut fidl::encoding::Encoder<'_, D>,
1400 offset: usize,
1401 _depth: fidl::encoding::Depth,
1402 ) -> fidl::Result<()> {
1403 encoder.debug_check_bounds::<Self>(offset);
1404 encoder.write_num(self.into_primitive(), offset);
1405 Ok(())
1406 }
1407 }
1408
1409 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ReaderError {
1410 #[inline(always)]
1411 fn new_empty() -> Self {
1412 Self::Io
1413 }
1414
1415 #[inline]
1416 unsafe fn decode(
1417 &mut self,
1418 decoder: &mut fidl::encoding::Decoder<'_, D>,
1419 offset: usize,
1420 _depth: fidl::encoding::Depth,
1421 ) -> fidl::Result<()> {
1422 decoder.debug_check_bounds::<Self>(offset);
1423 let prim = decoder.read_num::<u32>(offset);
1424
1425 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1426 Ok(())
1427 }
1428 }
1429 unsafe impl fidl::encoding::TypeMarker for RuntimeError {
1430 type Owned = Self;
1431
1432 #[inline(always)]
1433 fn inline_align(_context: fidl::encoding::Context) -> usize {
1434 std::mem::align_of::<u32>()
1435 }
1436
1437 #[inline(always)]
1438 fn inline_size(_context: fidl::encoding::Context) -> usize {
1439 std::mem::size_of::<u32>()
1440 }
1441
1442 #[inline(always)]
1443 fn encode_is_copy() -> bool {
1444 false
1445 }
1446
1447 #[inline(always)]
1448 fn decode_is_copy() -> bool {
1449 false
1450 }
1451 }
1452
1453 impl fidl::encoding::ValueTypeMarker for RuntimeError {
1454 type Borrowed<'a> = Self;
1455 #[inline(always)]
1456 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1457 *value
1458 }
1459 }
1460
1461 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for RuntimeError {
1462 #[inline]
1463 unsafe fn encode(
1464 self,
1465 encoder: &mut fidl::encoding::Encoder<'_, D>,
1466 offset: usize,
1467 _depth: fidl::encoding::Depth,
1468 ) -> fidl::Result<()> {
1469 encoder.debug_check_bounds::<Self>(offset);
1470 encoder.write_num(self.into_primitive(), offset);
1471 Ok(())
1472 }
1473 }
1474
1475 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RuntimeError {
1476 #[inline(always)]
1477 fn new_empty() -> Self {
1478 Self::unknown()
1479 }
1480
1481 #[inline]
1482 unsafe fn decode(
1483 &mut self,
1484 decoder: &mut fidl::encoding::Decoder<'_, D>,
1485 offset: usize,
1486 _depth: fidl::encoding::Depth,
1487 ) -> fidl::Result<()> {
1488 decoder.debug_check_bounds::<Self>(offset);
1489 let prim = decoder.read_num::<u32>(offset);
1490
1491 *self = Self::from_primitive_allow_unknown(prim);
1492 Ok(())
1493 }
1494 }
1495 unsafe impl fidl::encoding::TypeMarker for SampleStrategy {
1496 type Owned = Self;
1497
1498 #[inline(always)]
1499 fn inline_align(_context: fidl::encoding::Context) -> usize {
1500 std::mem::align_of::<u8>()
1501 }
1502
1503 #[inline(always)]
1504 fn inline_size(_context: fidl::encoding::Context) -> usize {
1505 std::mem::size_of::<u8>()
1506 }
1507
1508 #[inline(always)]
1509 fn encode_is_copy() -> bool {
1510 false
1511 }
1512
1513 #[inline(always)]
1514 fn decode_is_copy() -> bool {
1515 false
1516 }
1517 }
1518
1519 impl fidl::encoding::ValueTypeMarker for SampleStrategy {
1520 type Borrowed<'a> = Self;
1521 #[inline(always)]
1522 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1523 *value
1524 }
1525 }
1526
1527 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SampleStrategy {
1528 #[inline]
1529 unsafe fn encode(
1530 self,
1531 encoder: &mut fidl::encoding::Encoder<'_, D>,
1532 offset: usize,
1533 _depth: fidl::encoding::Depth,
1534 ) -> fidl::Result<()> {
1535 encoder.debug_check_bounds::<Self>(offset);
1536 encoder.write_num(self.into_primitive(), offset);
1537 Ok(())
1538 }
1539 }
1540
1541 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleStrategy {
1542 #[inline(always)]
1543 fn new_empty() -> Self {
1544 Self::unknown()
1545 }
1546
1547 #[inline]
1548 unsafe fn decode(
1549 &mut self,
1550 decoder: &mut fidl::encoding::Decoder<'_, D>,
1551 offset: usize,
1552 _depth: fidl::encoding::Depth,
1553 ) -> fidl::Result<()> {
1554 decoder.debug_check_bounds::<Self>(offset);
1555 let prim = decoder.read_num::<u8>(offset);
1556
1557 *self = Self::from_primitive_allow_unknown(prim);
1558 Ok(())
1559 }
1560 }
1561 unsafe impl fidl::encoding::TypeMarker for StreamMode {
1562 type Owned = Self;
1563
1564 #[inline(always)]
1565 fn inline_align(_context: fidl::encoding::Context) -> usize {
1566 std::mem::align_of::<u8>()
1567 }
1568
1569 #[inline(always)]
1570 fn inline_size(_context: fidl::encoding::Context) -> usize {
1571 std::mem::size_of::<u8>()
1572 }
1573
1574 #[inline(always)]
1575 fn encode_is_copy() -> bool {
1576 true
1577 }
1578
1579 #[inline(always)]
1580 fn decode_is_copy() -> bool {
1581 false
1582 }
1583 }
1584
1585 impl fidl::encoding::ValueTypeMarker for StreamMode {
1586 type Borrowed<'a> = Self;
1587 #[inline(always)]
1588 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1589 *value
1590 }
1591 }
1592
1593 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamMode {
1594 #[inline]
1595 unsafe fn encode(
1596 self,
1597 encoder: &mut fidl::encoding::Encoder<'_, D>,
1598 offset: usize,
1599 _depth: fidl::encoding::Depth,
1600 ) -> fidl::Result<()> {
1601 encoder.debug_check_bounds::<Self>(offset);
1602 encoder.write_num(self.into_primitive(), offset);
1603 Ok(())
1604 }
1605 }
1606
1607 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamMode {
1608 #[inline(always)]
1609 fn new_empty() -> Self {
1610 Self::Snapshot
1611 }
1612
1613 #[inline]
1614 unsafe fn decode(
1615 &mut self,
1616 decoder: &mut fidl::encoding::Decoder<'_, D>,
1617 offset: usize,
1618 _depth: fidl::encoding::Depth,
1619 ) -> fidl::Result<()> {
1620 decoder.debug_check_bounds::<Self>(offset);
1621 let prim = decoder.read_num::<u8>(offset);
1622
1623 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1624 Ok(())
1625 }
1626 }
1627
1628 impl fidl::encoding::ValueTypeMarker for All {
1629 type Borrowed<'a> = &'a Self;
1630 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1631 value
1632 }
1633 }
1634
1635 unsafe impl fidl::encoding::TypeMarker for All {
1636 type Owned = Self;
1637
1638 #[inline(always)]
1639 fn inline_align(_context: fidl::encoding::Context) -> usize {
1640 1
1641 }
1642
1643 #[inline(always)]
1644 fn inline_size(_context: fidl::encoding::Context) -> usize {
1645 1
1646 }
1647 }
1648
1649 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<All, D> for &All {
1650 #[inline]
1651 unsafe fn encode(
1652 self,
1653 encoder: &mut fidl::encoding::Encoder<'_, D>,
1654 offset: usize,
1655 _depth: fidl::encoding::Depth,
1656 ) -> fidl::Result<()> {
1657 encoder.debug_check_bounds::<All>(offset);
1658 encoder.write_num(0u8, offset);
1659 Ok(())
1660 }
1661 }
1662
1663 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for All {
1664 #[inline(always)]
1665 fn new_empty() -> Self {
1666 Self
1667 }
1668
1669 #[inline]
1670 unsafe fn decode(
1671 &mut self,
1672 decoder: &mut fidl::encoding::Decoder<'_, D>,
1673 offset: usize,
1674 _depth: fidl::encoding::Depth,
1675 ) -> fidl::Result<()> {
1676 decoder.debug_check_bounds::<Self>(offset);
1677 match decoder.read_num::<u8>(offset) {
1678 0 => Ok(()),
1679 _ => Err(fidl::Error::Invalid),
1680 }
1681 }
1682 }
1683
1684 impl fidl::encoding::ValueTypeMarker for LogInterestSelector {
1685 type Borrowed<'a> = &'a Self;
1686 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1687 value
1688 }
1689 }
1690
1691 unsafe impl fidl::encoding::TypeMarker for LogInterestSelector {
1692 type Owned = Self;
1693
1694 #[inline(always)]
1695 fn inline_align(_context: fidl::encoding::Context) -> usize {
1696 8
1697 }
1698
1699 #[inline(always)]
1700 fn inline_size(_context: fidl::encoding::Context) -> usize {
1701 32
1702 }
1703 }
1704
1705 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogInterestSelector, D>
1706 for &LogInterestSelector
1707 {
1708 #[inline]
1709 unsafe fn encode(
1710 self,
1711 encoder: &mut fidl::encoding::Encoder<'_, D>,
1712 offset: usize,
1713 _depth: fidl::encoding::Depth,
1714 ) -> fidl::Result<()> {
1715 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1716 fidl::encoding::Encode::<LogInterestSelector, D>::encode(
1718 (
1719 <ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.selector),
1720 <fidl_fuchsia_diagnostics_types_common::Interest as fidl::encoding::ValueTypeMarker>::borrow(&self.interest),
1721 ),
1722 encoder, offset, _depth
1723 )
1724 }
1725 }
1726 unsafe impl<
1727 D: fidl::encoding::ResourceDialect,
1728 T0: fidl::encoding::Encode<ComponentSelector, D>,
1729 T1: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types_common::Interest, D>,
1730 > fidl::encoding::Encode<LogInterestSelector, D> for (T0, T1)
1731 {
1732 #[inline]
1733 unsafe fn encode(
1734 self,
1735 encoder: &mut fidl::encoding::Encoder<'_, D>,
1736 offset: usize,
1737 depth: fidl::encoding::Depth,
1738 ) -> fidl::Result<()> {
1739 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1740 self.0.encode(encoder, offset + 0, depth)?;
1744 self.1.encode(encoder, offset + 16, depth)?;
1745 Ok(())
1746 }
1747 }
1748
1749 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogInterestSelector {
1750 #[inline(always)]
1751 fn new_empty() -> Self {
1752 Self {
1753 selector: fidl::new_empty!(ComponentSelector, D),
1754 interest: fidl::new_empty!(fidl_fuchsia_diagnostics_types_common::Interest, D),
1755 }
1756 }
1757
1758 #[inline]
1759 unsafe fn decode(
1760 &mut self,
1761 decoder: &mut fidl::encoding::Decoder<'_, D>,
1762 offset: usize,
1763 _depth: fidl::encoding::Depth,
1764 ) -> fidl::Result<()> {
1765 decoder.debug_check_bounds::<Self>(offset);
1766 fidl::decode!(ComponentSelector, D, &mut self.selector, decoder, offset + 0, _depth)?;
1768 fidl::decode!(
1769 fidl_fuchsia_diagnostics_types_common::Interest,
1770 D,
1771 &mut self.interest,
1772 decoder,
1773 offset + 16,
1774 _depth
1775 )?;
1776 Ok(())
1777 }
1778 }
1779
1780 impl fidl::encoding::ValueTypeMarker for PropertySelector {
1781 type Borrowed<'a> = &'a Self;
1782 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1783 value
1784 }
1785 }
1786
1787 unsafe impl fidl::encoding::TypeMarker for PropertySelector {
1788 type Owned = Self;
1789
1790 #[inline(always)]
1791 fn inline_align(_context: fidl::encoding::Context) -> usize {
1792 8
1793 }
1794
1795 #[inline(always)]
1796 fn inline_size(_context: fidl::encoding::Context) -> usize {
1797 32
1798 }
1799 }
1800
1801 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PropertySelector, D>
1802 for &PropertySelector
1803 {
1804 #[inline]
1805 unsafe fn encode(
1806 self,
1807 encoder: &mut fidl::encoding::Encoder<'_, D>,
1808 offset: usize,
1809 _depth: fidl::encoding::Depth,
1810 ) -> fidl::Result<()> {
1811 encoder.debug_check_bounds::<PropertySelector>(offset);
1812 fidl::encoding::Encode::<PropertySelector, D>::encode(
1814 (
1815 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1816 <StringSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.target_properties),
1817 ),
1818 encoder, offset, _depth
1819 )
1820 }
1821 }
1822 unsafe impl<
1823 D: fidl::encoding::ResourceDialect,
1824 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1825 T1: fidl::encoding::Encode<StringSelector, D>,
1826 > fidl::encoding::Encode<PropertySelector, D> for (T0, T1)
1827 {
1828 #[inline]
1829 unsafe fn encode(
1830 self,
1831 encoder: &mut fidl::encoding::Encoder<'_, D>,
1832 offset: usize,
1833 depth: fidl::encoding::Depth,
1834 ) -> fidl::Result<()> {
1835 encoder.debug_check_bounds::<PropertySelector>(offset);
1836 self.0.encode(encoder, offset + 0, depth)?;
1840 self.1.encode(encoder, offset + 16, depth)?;
1841 Ok(())
1842 }
1843 }
1844
1845 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PropertySelector {
1846 #[inline(always)]
1847 fn new_empty() -> Self {
1848 Self {
1849 node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D),
1850 target_properties: fidl::new_empty!(StringSelector, D),
1851 }
1852 }
1853
1854 #[inline]
1855 unsafe fn decode(
1856 &mut self,
1857 decoder: &mut fidl::encoding::Decoder<'_, D>,
1858 offset: usize,
1859 _depth: fidl::encoding::Depth,
1860 ) -> fidl::Result<()> {
1861 decoder.debug_check_bounds::<Self>(offset);
1862 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1864 fidl::decode!(
1865 StringSelector,
1866 D,
1867 &mut self.target_properties,
1868 decoder,
1869 offset + 16,
1870 _depth
1871 )?;
1872 Ok(())
1873 }
1874 }
1875
1876 impl fidl::encoding::ValueTypeMarker for SubtreeSelector {
1877 type Borrowed<'a> = &'a Self;
1878 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1879 value
1880 }
1881 }
1882
1883 unsafe impl fidl::encoding::TypeMarker for SubtreeSelector {
1884 type Owned = Self;
1885
1886 #[inline(always)]
1887 fn inline_align(_context: fidl::encoding::Context) -> usize {
1888 8
1889 }
1890
1891 #[inline(always)]
1892 fn inline_size(_context: fidl::encoding::Context) -> usize {
1893 16
1894 }
1895 }
1896
1897 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubtreeSelector, D>
1898 for &SubtreeSelector
1899 {
1900 #[inline]
1901 unsafe fn encode(
1902 self,
1903 encoder: &mut fidl::encoding::Encoder<'_, D>,
1904 offset: usize,
1905 _depth: fidl::encoding::Depth,
1906 ) -> fidl::Result<()> {
1907 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1908 fidl::encoding::Encode::<SubtreeSelector, D>::encode(
1910 (
1911 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1912 ),
1913 encoder, offset, _depth
1914 )
1915 }
1916 }
1917 unsafe impl<
1918 D: fidl::encoding::ResourceDialect,
1919 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1920 > fidl::encoding::Encode<SubtreeSelector, D> for (T0,)
1921 {
1922 #[inline]
1923 unsafe fn encode(
1924 self,
1925 encoder: &mut fidl::encoding::Encoder<'_, D>,
1926 offset: usize,
1927 depth: fidl::encoding::Depth,
1928 ) -> fidl::Result<()> {
1929 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1930 self.0.encode(encoder, offset + 0, depth)?;
1934 Ok(())
1935 }
1936 }
1937
1938 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubtreeSelector {
1939 #[inline(always)]
1940 fn new_empty() -> Self {
1941 Self { node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D) }
1942 }
1943
1944 #[inline]
1945 unsafe fn decode(
1946 &mut self,
1947 decoder: &mut fidl::encoding::Decoder<'_, D>,
1948 offset: usize,
1949 _depth: fidl::encoding::Depth,
1950 ) -> fidl::Result<()> {
1951 decoder.debug_check_bounds::<Self>(offset);
1952 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1954 Ok(())
1955 }
1956 }
1957
1958 impl fidl::encoding::ValueTypeMarker for SystemActivityMonitorGetNextEventResponse {
1959 type Borrowed<'a> = &'a Self;
1960 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1961 value
1962 }
1963 }
1964
1965 unsafe impl fidl::encoding::TypeMarker for SystemActivityMonitorGetNextEventResponse {
1966 type Owned = Self;
1967
1968 #[inline(always)]
1969 fn inline_align(_context: fidl::encoding::Context) -> usize {
1970 8
1971 }
1972
1973 #[inline(always)]
1974 fn inline_size(_context: fidl::encoding::Context) -> usize {
1975 16
1976 }
1977 }
1978
1979 unsafe impl<D: fidl::encoding::ResourceDialect>
1980 fidl::encoding::Encode<SystemActivityMonitorGetNextEventResponse, D>
1981 for &SystemActivityMonitorGetNextEventResponse
1982 {
1983 #[inline]
1984 unsafe fn encode(
1985 self,
1986 encoder: &mut fidl::encoding::Encoder<'_, D>,
1987 offset: usize,
1988 _depth: fidl::encoding::Depth,
1989 ) -> fidl::Result<()> {
1990 encoder.debug_check_bounds::<SystemActivityMonitorGetNextEventResponse>(offset);
1991 fidl::encoding::Encode::<SystemActivityMonitorGetNextEventResponse, D>::encode(
1993 (<SystemActivityEvent as fidl::encoding::ValueTypeMarker>::borrow(&self.event),),
1994 encoder,
1995 offset,
1996 _depth,
1997 )
1998 }
1999 }
2000 unsafe impl<
2001 D: fidl::encoding::ResourceDialect,
2002 T0: fidl::encoding::Encode<SystemActivityEvent, D>,
2003 > fidl::encoding::Encode<SystemActivityMonitorGetNextEventResponse, D> for (T0,)
2004 {
2005 #[inline]
2006 unsafe fn encode(
2007 self,
2008 encoder: &mut fidl::encoding::Encoder<'_, D>,
2009 offset: usize,
2010 depth: fidl::encoding::Depth,
2011 ) -> fidl::Result<()> {
2012 encoder.debug_check_bounds::<SystemActivityMonitorGetNextEventResponse>(offset);
2013 self.0.encode(encoder, offset + 0, depth)?;
2017 Ok(())
2018 }
2019 }
2020
2021 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2022 for SystemActivityMonitorGetNextEventResponse
2023 {
2024 #[inline(always)]
2025 fn new_empty() -> Self {
2026 Self { event: fidl::new_empty!(SystemActivityEvent, D) }
2027 }
2028
2029 #[inline]
2030 unsafe fn decode(
2031 &mut self,
2032 decoder: &mut fidl::encoding::Decoder<'_, D>,
2033 offset: usize,
2034 _depth: fidl::encoding::Depth,
2035 ) -> fidl::Result<()> {
2036 decoder.debug_check_bounds::<Self>(offset);
2037 fidl::decode!(SystemActivityEvent, D, &mut self.event, decoder, offset + 0, _depth)?;
2039 Ok(())
2040 }
2041 }
2042
2043 impl ComponentSelector {
2044 #[inline(always)]
2045 fn max_ordinal_present(&self) -> u64 {
2046 if let Some(_) = self.moniker_segments {
2047 return 1;
2048 }
2049 0
2050 }
2051 }
2052
2053 impl fidl::encoding::ValueTypeMarker for ComponentSelector {
2054 type Borrowed<'a> = &'a Self;
2055 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2056 value
2057 }
2058 }
2059
2060 unsafe impl fidl::encoding::TypeMarker for ComponentSelector {
2061 type Owned = Self;
2062
2063 #[inline(always)]
2064 fn inline_align(_context: fidl::encoding::Context) -> usize {
2065 8
2066 }
2067
2068 #[inline(always)]
2069 fn inline_size(_context: fidl::encoding::Context) -> usize {
2070 16
2071 }
2072 }
2073
2074 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentSelector, D>
2075 for &ComponentSelector
2076 {
2077 unsafe fn encode(
2078 self,
2079 encoder: &mut fidl::encoding::Encoder<'_, D>,
2080 offset: usize,
2081 mut depth: fidl::encoding::Depth,
2082 ) -> fidl::Result<()> {
2083 encoder.debug_check_bounds::<ComponentSelector>(offset);
2084 let max_ordinal: u64 = self.max_ordinal_present();
2086 encoder.write_num(max_ordinal, offset);
2087 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2088 if max_ordinal == 0 {
2090 return Ok(());
2091 }
2092 depth.increment()?;
2093 let envelope_size = 8;
2094 let bytes_len = max_ordinal as usize * envelope_size;
2095 #[allow(unused_variables)]
2096 let offset = encoder.out_of_line_offset(bytes_len);
2097 let mut _prev_end_offset: usize = 0;
2098 if 1 > max_ordinal {
2099 return Ok(());
2100 }
2101
2102 let cur_offset: usize = (1 - 1) * envelope_size;
2105
2106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2108
2109 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<StringSelector, 25>, D>(
2114 self.moniker_segments.as_ref().map(<fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::ValueTypeMarker>::borrow),
2115 encoder, offset + cur_offset, depth
2116 )?;
2117
2118 _prev_end_offset = cur_offset + envelope_size;
2119
2120 Ok(())
2121 }
2122 }
2123
2124 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentSelector {
2125 #[inline(always)]
2126 fn new_empty() -> Self {
2127 Self::default()
2128 }
2129
2130 unsafe fn decode(
2131 &mut self,
2132 decoder: &mut fidl::encoding::Decoder<'_, D>,
2133 offset: usize,
2134 mut depth: fidl::encoding::Depth,
2135 ) -> fidl::Result<()> {
2136 decoder.debug_check_bounds::<Self>(offset);
2137 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2138 None => return Err(fidl::Error::NotNullable),
2139 Some(len) => len,
2140 };
2141 if len == 0 {
2143 return Ok(());
2144 };
2145 depth.increment()?;
2146 let envelope_size = 8;
2147 let bytes_len = len * envelope_size;
2148 let offset = decoder.out_of_line_offset(bytes_len)?;
2149 let mut _next_ordinal_to_read = 0;
2151 let mut next_offset = offset;
2152 let end_offset = offset + bytes_len;
2153 _next_ordinal_to_read += 1;
2154 if next_offset >= end_offset {
2155 return Ok(());
2156 }
2157
2158 while _next_ordinal_to_read < 1 {
2160 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2161 _next_ordinal_to_read += 1;
2162 next_offset += envelope_size;
2163 }
2164
2165 let next_out_of_line = decoder.next_out_of_line();
2166 let handles_before = decoder.remaining_handles();
2167 if let Some((inlined, num_bytes, num_handles)) =
2168 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2169 {
2170 let member_inline_size = <fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2171 if inlined != (member_inline_size <= 4) {
2172 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2173 }
2174 let inner_offset;
2175 let mut inner_depth = depth.clone();
2176 if inlined {
2177 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2178 inner_offset = next_offset;
2179 } else {
2180 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2181 inner_depth.increment()?;
2182 }
2183 let val_ref = self.moniker_segments.get_or_insert_with(
2184 || fidl::new_empty!(fidl::encoding::Vector<StringSelector, 25>, D),
2185 );
2186 fidl::decode!(fidl::encoding::Vector<StringSelector, 25>, D, val_ref, decoder, inner_offset, inner_depth)?;
2187 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2188 {
2189 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2190 }
2191 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2192 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2193 }
2194 }
2195
2196 next_offset += envelope_size;
2197
2198 while next_offset < end_offset {
2200 _next_ordinal_to_read += 1;
2201 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2202 next_offset += envelope_size;
2203 }
2204
2205 Ok(())
2206 }
2207 }
2208
2209 impl LogSettingsSetComponentInterestRequest {
2210 #[inline(always)]
2211 fn max_ordinal_present(&self) -> u64 {
2212 if let Some(_) = self.persist {
2213 return 2;
2214 }
2215 if let Some(_) = self.selectors {
2216 return 1;
2217 }
2218 0
2219 }
2220 }
2221
2222 impl fidl::encoding::ValueTypeMarker for LogSettingsSetComponentInterestRequest {
2223 type Borrowed<'a> = &'a Self;
2224 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2225 value
2226 }
2227 }
2228
2229 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetComponentInterestRequest {
2230 type Owned = Self;
2231
2232 #[inline(always)]
2233 fn inline_align(_context: fidl::encoding::Context) -> usize {
2234 8
2235 }
2236
2237 #[inline(always)]
2238 fn inline_size(_context: fidl::encoding::Context) -> usize {
2239 16
2240 }
2241 }
2242
2243 unsafe impl<D: fidl::encoding::ResourceDialect>
2244 fidl::encoding::Encode<LogSettingsSetComponentInterestRequest, D>
2245 for &LogSettingsSetComponentInterestRequest
2246 {
2247 unsafe fn encode(
2248 self,
2249 encoder: &mut fidl::encoding::Encoder<'_, D>,
2250 offset: usize,
2251 mut depth: fidl::encoding::Depth,
2252 ) -> fidl::Result<()> {
2253 encoder.debug_check_bounds::<LogSettingsSetComponentInterestRequest>(offset);
2254 let max_ordinal: u64 = self.max_ordinal_present();
2256 encoder.write_num(max_ordinal, offset);
2257 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2258 if max_ordinal == 0 {
2260 return Ok(());
2261 }
2262 depth.increment()?;
2263 let envelope_size = 8;
2264 let bytes_len = max_ordinal as usize * envelope_size;
2265 #[allow(unused_variables)]
2266 let offset = encoder.out_of_line_offset(bytes_len);
2267 let mut _prev_end_offset: usize = 0;
2268 if 1 > max_ordinal {
2269 return Ok(());
2270 }
2271
2272 let cur_offset: usize = (1 - 1) * envelope_size;
2275
2276 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2278
2279 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<LogInterestSelector, 64>, D>(
2284 self.selectors.as_ref().map(<fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow),
2285 encoder, offset + cur_offset, depth
2286 )?;
2287
2288 _prev_end_offset = cur_offset + envelope_size;
2289 if 2 > max_ordinal {
2290 return Ok(());
2291 }
2292
2293 let cur_offset: usize = (2 - 1) * envelope_size;
2296
2297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2299
2300 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2305 self.persist.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2306 encoder,
2307 offset + cur_offset,
2308 depth,
2309 )?;
2310
2311 _prev_end_offset = cur_offset + envelope_size;
2312
2313 Ok(())
2314 }
2315 }
2316
2317 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2318 for LogSettingsSetComponentInterestRequest
2319 {
2320 #[inline(always)]
2321 fn new_empty() -> Self {
2322 Self::default()
2323 }
2324
2325 unsafe fn decode(
2326 &mut self,
2327 decoder: &mut fidl::encoding::Decoder<'_, D>,
2328 offset: usize,
2329 mut depth: fidl::encoding::Depth,
2330 ) -> fidl::Result<()> {
2331 decoder.debug_check_bounds::<Self>(offset);
2332 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2333 None => return Err(fidl::Error::NotNullable),
2334 Some(len) => len,
2335 };
2336 if len == 0 {
2338 return Ok(());
2339 };
2340 depth.increment()?;
2341 let envelope_size = 8;
2342 let bytes_len = len * envelope_size;
2343 let offset = decoder.out_of_line_offset(bytes_len)?;
2344 let mut _next_ordinal_to_read = 0;
2346 let mut next_offset = offset;
2347 let end_offset = offset + bytes_len;
2348 _next_ordinal_to_read += 1;
2349 if next_offset >= end_offset {
2350 return Ok(());
2351 }
2352
2353 while _next_ordinal_to_read < 1 {
2355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2356 _next_ordinal_to_read += 1;
2357 next_offset += envelope_size;
2358 }
2359
2360 let next_out_of_line = decoder.next_out_of_line();
2361 let handles_before = decoder.remaining_handles();
2362 if let Some((inlined, num_bytes, num_handles)) =
2363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2364 {
2365 let member_inline_size = <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2366 if inlined != (member_inline_size <= 4) {
2367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2368 }
2369 let inner_offset;
2370 let mut inner_depth = depth.clone();
2371 if inlined {
2372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2373 inner_offset = next_offset;
2374 } else {
2375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2376 inner_depth.increment()?;
2377 }
2378 let val_ref = self.selectors.get_or_insert_with(
2379 || fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D),
2380 );
2381 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
2382 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2383 {
2384 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2385 }
2386 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2387 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2388 }
2389 }
2390
2391 next_offset += envelope_size;
2392 _next_ordinal_to_read += 1;
2393 if next_offset >= end_offset {
2394 return Ok(());
2395 }
2396
2397 while _next_ordinal_to_read < 2 {
2399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2400 _next_ordinal_to_read += 1;
2401 next_offset += envelope_size;
2402 }
2403
2404 let next_out_of_line = decoder.next_out_of_line();
2405 let handles_before = decoder.remaining_handles();
2406 if let Some((inlined, num_bytes, num_handles)) =
2407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2408 {
2409 let member_inline_size =
2410 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2411 if inlined != (member_inline_size <= 4) {
2412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2413 }
2414 let inner_offset;
2415 let mut inner_depth = depth.clone();
2416 if inlined {
2417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2418 inner_offset = next_offset;
2419 } else {
2420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2421 inner_depth.increment()?;
2422 }
2423 let val_ref = self.persist.get_or_insert_with(|| fidl::new_empty!(bool, D));
2424 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2425 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2426 {
2427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2428 }
2429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2431 }
2432 }
2433
2434 next_offset += envelope_size;
2435
2436 while next_offset < end_offset {
2438 _next_ordinal_to_read += 1;
2439 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2440 next_offset += envelope_size;
2441 }
2442
2443 Ok(())
2444 }
2445 }
2446
2447 impl LogStreamOptions {
2448 #[inline(always)]
2449 fn max_ordinal_present(&self) -> u64 {
2450 if let Some(_) = self.subscribe_to_manifest {
2451 return 5;
2452 }
2453 if let Some(_) = self.include_rolled_out {
2454 return 4;
2455 }
2456 if let Some(_) = self.include_component_url {
2457 return 3;
2458 }
2459 if let Some(_) = self.include_moniker {
2460 return 2;
2461 }
2462 if let Some(_) = self.mode {
2463 return 1;
2464 }
2465 0
2466 }
2467 }
2468
2469 impl fidl::encoding::ValueTypeMarker for LogStreamOptions {
2470 type Borrowed<'a> = &'a Self;
2471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2472 value
2473 }
2474 }
2475
2476 unsafe impl fidl::encoding::TypeMarker for LogStreamOptions {
2477 type Owned = Self;
2478
2479 #[inline(always)]
2480 fn inline_align(_context: fidl::encoding::Context) -> usize {
2481 8
2482 }
2483
2484 #[inline(always)]
2485 fn inline_size(_context: fidl::encoding::Context) -> usize {
2486 16
2487 }
2488 }
2489
2490 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogStreamOptions, D>
2491 for &LogStreamOptions
2492 {
2493 unsafe fn encode(
2494 self,
2495 encoder: &mut fidl::encoding::Encoder<'_, D>,
2496 offset: usize,
2497 mut depth: fidl::encoding::Depth,
2498 ) -> fidl::Result<()> {
2499 encoder.debug_check_bounds::<LogStreamOptions>(offset);
2500 let max_ordinal: u64 = self.max_ordinal_present();
2502 encoder.write_num(max_ordinal, offset);
2503 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2504 if max_ordinal == 0 {
2506 return Ok(());
2507 }
2508 depth.increment()?;
2509 let envelope_size = 8;
2510 let bytes_len = max_ordinal as usize * envelope_size;
2511 #[allow(unused_variables)]
2512 let offset = encoder.out_of_line_offset(bytes_len);
2513 let mut _prev_end_offset: usize = 0;
2514 if 1 > max_ordinal {
2515 return Ok(());
2516 }
2517
2518 let cur_offset: usize = (1 - 1) * envelope_size;
2521
2522 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2524
2525 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
2530 self.mode.as_ref().map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
2531 encoder,
2532 offset + cur_offset,
2533 depth,
2534 )?;
2535
2536 _prev_end_offset = cur_offset + envelope_size;
2537 if 2 > max_ordinal {
2538 return Ok(());
2539 }
2540
2541 let cur_offset: usize = (2 - 1) * envelope_size;
2544
2545 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2547
2548 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2553 self.include_moniker
2554 .as_ref()
2555 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2556 encoder,
2557 offset + cur_offset,
2558 depth,
2559 )?;
2560
2561 _prev_end_offset = cur_offset + envelope_size;
2562 if 3 > max_ordinal {
2563 return Ok(());
2564 }
2565
2566 let cur_offset: usize = (3 - 1) * envelope_size;
2569
2570 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2572
2573 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2578 self.include_component_url
2579 .as_ref()
2580 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2581 encoder,
2582 offset + cur_offset,
2583 depth,
2584 )?;
2585
2586 _prev_end_offset = cur_offset + envelope_size;
2587 if 4 > max_ordinal {
2588 return Ok(());
2589 }
2590
2591 let cur_offset: usize = (4 - 1) * envelope_size;
2594
2595 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2597
2598 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2603 self.include_rolled_out
2604 .as_ref()
2605 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2606 encoder,
2607 offset + cur_offset,
2608 depth,
2609 )?;
2610
2611 _prev_end_offset = cur_offset + envelope_size;
2612 if 5 > max_ordinal {
2613 return Ok(());
2614 }
2615
2616 let cur_offset: usize = (5 - 1) * envelope_size;
2619
2620 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2622
2623 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2628 self.subscribe_to_manifest
2629 .as_ref()
2630 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2631 encoder,
2632 offset + cur_offset,
2633 depth,
2634 )?;
2635
2636 _prev_end_offset = cur_offset + envelope_size;
2637
2638 Ok(())
2639 }
2640 }
2641
2642 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogStreamOptions {
2643 #[inline(always)]
2644 fn new_empty() -> Self {
2645 Self::default()
2646 }
2647
2648 unsafe fn decode(
2649 &mut self,
2650 decoder: &mut fidl::encoding::Decoder<'_, D>,
2651 offset: usize,
2652 mut depth: fidl::encoding::Depth,
2653 ) -> fidl::Result<()> {
2654 decoder.debug_check_bounds::<Self>(offset);
2655 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2656 None => return Err(fidl::Error::NotNullable),
2657 Some(len) => len,
2658 };
2659 if len == 0 {
2661 return Ok(());
2662 };
2663 depth.increment()?;
2664 let envelope_size = 8;
2665 let bytes_len = len * envelope_size;
2666 let offset = decoder.out_of_line_offset(bytes_len)?;
2667 let mut _next_ordinal_to_read = 0;
2669 let mut next_offset = offset;
2670 let end_offset = offset + bytes_len;
2671 _next_ordinal_to_read += 1;
2672 if next_offset >= end_offset {
2673 return Ok(());
2674 }
2675
2676 while _next_ordinal_to_read < 1 {
2678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2679 _next_ordinal_to_read += 1;
2680 next_offset += envelope_size;
2681 }
2682
2683 let next_out_of_line = decoder.next_out_of_line();
2684 let handles_before = decoder.remaining_handles();
2685 if let Some((inlined, num_bytes, num_handles)) =
2686 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2687 {
2688 let member_inline_size =
2689 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2690 if inlined != (member_inline_size <= 4) {
2691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2692 }
2693 let inner_offset;
2694 let mut inner_depth = depth.clone();
2695 if inlined {
2696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2697 inner_offset = next_offset;
2698 } else {
2699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2700 inner_depth.increment()?;
2701 }
2702 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
2703 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
2704 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2705 {
2706 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2707 }
2708 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2709 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2710 }
2711 }
2712
2713 next_offset += envelope_size;
2714 _next_ordinal_to_read += 1;
2715 if next_offset >= end_offset {
2716 return Ok(());
2717 }
2718
2719 while _next_ordinal_to_read < 2 {
2721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2722 _next_ordinal_to_read += 1;
2723 next_offset += envelope_size;
2724 }
2725
2726 let next_out_of_line = decoder.next_out_of_line();
2727 let handles_before = decoder.remaining_handles();
2728 if let Some((inlined, num_bytes, num_handles)) =
2729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2730 {
2731 let member_inline_size =
2732 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2733 if inlined != (member_inline_size <= 4) {
2734 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2735 }
2736 let inner_offset;
2737 let mut inner_depth = depth.clone();
2738 if inlined {
2739 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2740 inner_offset = next_offset;
2741 } else {
2742 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2743 inner_depth.increment()?;
2744 }
2745 let val_ref = self.include_moniker.get_or_insert_with(|| fidl::new_empty!(bool, D));
2746 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2748 {
2749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2750 }
2751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2753 }
2754 }
2755
2756 next_offset += envelope_size;
2757 _next_ordinal_to_read += 1;
2758 if next_offset >= end_offset {
2759 return Ok(());
2760 }
2761
2762 while _next_ordinal_to_read < 3 {
2764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2765 _next_ordinal_to_read += 1;
2766 next_offset += envelope_size;
2767 }
2768
2769 let next_out_of_line = decoder.next_out_of_line();
2770 let handles_before = decoder.remaining_handles();
2771 if let Some((inlined, num_bytes, num_handles)) =
2772 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2773 {
2774 let member_inline_size =
2775 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2776 if inlined != (member_inline_size <= 4) {
2777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2778 }
2779 let inner_offset;
2780 let mut inner_depth = depth.clone();
2781 if inlined {
2782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2783 inner_offset = next_offset;
2784 } else {
2785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2786 inner_depth.increment()?;
2787 }
2788 let val_ref =
2789 self.include_component_url.get_or_insert_with(|| fidl::new_empty!(bool, D));
2790 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2792 {
2793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2794 }
2795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2797 }
2798 }
2799
2800 next_offset += envelope_size;
2801 _next_ordinal_to_read += 1;
2802 if next_offset >= end_offset {
2803 return Ok(());
2804 }
2805
2806 while _next_ordinal_to_read < 4 {
2808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2809 _next_ordinal_to_read += 1;
2810 next_offset += envelope_size;
2811 }
2812
2813 let next_out_of_line = decoder.next_out_of_line();
2814 let handles_before = decoder.remaining_handles();
2815 if let Some((inlined, num_bytes, num_handles)) =
2816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2817 {
2818 let member_inline_size =
2819 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2820 if inlined != (member_inline_size <= 4) {
2821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2822 }
2823 let inner_offset;
2824 let mut inner_depth = depth.clone();
2825 if inlined {
2826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2827 inner_offset = next_offset;
2828 } else {
2829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2830 inner_depth.increment()?;
2831 }
2832 let val_ref =
2833 self.include_rolled_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
2834 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2835 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2836 {
2837 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2838 }
2839 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2840 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2841 }
2842 }
2843
2844 next_offset += envelope_size;
2845 _next_ordinal_to_read += 1;
2846 if next_offset >= end_offset {
2847 return Ok(());
2848 }
2849
2850 while _next_ordinal_to_read < 5 {
2852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2853 _next_ordinal_to_read += 1;
2854 next_offset += envelope_size;
2855 }
2856
2857 let next_out_of_line = decoder.next_out_of_line();
2858 let handles_before = decoder.remaining_handles();
2859 if let Some((inlined, num_bytes, num_handles)) =
2860 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2861 {
2862 let member_inline_size =
2863 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2864 if inlined != (member_inline_size <= 4) {
2865 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2866 }
2867 let inner_offset;
2868 let mut inner_depth = depth.clone();
2869 if inlined {
2870 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2871 inner_offset = next_offset;
2872 } else {
2873 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2874 inner_depth.increment()?;
2875 }
2876 let val_ref =
2877 self.subscribe_to_manifest.get_or_insert_with(|| fidl::new_empty!(bool, D));
2878 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2879 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2880 {
2881 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2882 }
2883 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2884 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2885 }
2886 }
2887
2888 next_offset += envelope_size;
2889
2890 while next_offset < end_offset {
2892 _next_ordinal_to_read += 1;
2893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2894 next_offset += envelope_size;
2895 }
2896
2897 Ok(())
2898 }
2899 }
2900
2901 impl PerformanceConfiguration {
2902 #[inline(always)]
2903 fn max_ordinal_present(&self) -> u64 {
2904 if let Some(_) = self.batch_retrieval_timeout_seconds {
2905 return 2;
2906 }
2907 if let Some(_) = self.max_aggregate_content_size_bytes {
2908 return 1;
2909 }
2910 0
2911 }
2912 }
2913
2914 impl fidl::encoding::ValueTypeMarker for PerformanceConfiguration {
2915 type Borrowed<'a> = &'a Self;
2916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2917 value
2918 }
2919 }
2920
2921 unsafe impl fidl::encoding::TypeMarker for PerformanceConfiguration {
2922 type Owned = Self;
2923
2924 #[inline(always)]
2925 fn inline_align(_context: fidl::encoding::Context) -> usize {
2926 8
2927 }
2928
2929 #[inline(always)]
2930 fn inline_size(_context: fidl::encoding::Context) -> usize {
2931 16
2932 }
2933 }
2934
2935 unsafe impl<D: fidl::encoding::ResourceDialect>
2936 fidl::encoding::Encode<PerformanceConfiguration, D> for &PerformanceConfiguration
2937 {
2938 unsafe fn encode(
2939 self,
2940 encoder: &mut fidl::encoding::Encoder<'_, D>,
2941 offset: usize,
2942 mut depth: fidl::encoding::Depth,
2943 ) -> fidl::Result<()> {
2944 encoder.debug_check_bounds::<PerformanceConfiguration>(offset);
2945 let max_ordinal: u64 = self.max_ordinal_present();
2947 encoder.write_num(max_ordinal, offset);
2948 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2949 if max_ordinal == 0 {
2951 return Ok(());
2952 }
2953 depth.increment()?;
2954 let envelope_size = 8;
2955 let bytes_len = max_ordinal as usize * envelope_size;
2956 #[allow(unused_variables)]
2957 let offset = encoder.out_of_line_offset(bytes_len);
2958 let mut _prev_end_offset: usize = 0;
2959 if 1 > max_ordinal {
2960 return Ok(());
2961 }
2962
2963 let cur_offset: usize = (1 - 1) * envelope_size;
2966
2967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2969
2970 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2975 self.max_aggregate_content_size_bytes
2976 .as_ref()
2977 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2978 encoder,
2979 offset + cur_offset,
2980 depth,
2981 )?;
2982
2983 _prev_end_offset = cur_offset + envelope_size;
2984 if 2 > max_ordinal {
2985 return Ok(());
2986 }
2987
2988 let cur_offset: usize = (2 - 1) * envelope_size;
2991
2992 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2994
2995 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3000 self.batch_retrieval_timeout_seconds
3001 .as_ref()
3002 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3003 encoder,
3004 offset + cur_offset,
3005 depth,
3006 )?;
3007
3008 _prev_end_offset = cur_offset + envelope_size;
3009
3010 Ok(())
3011 }
3012 }
3013
3014 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3015 for PerformanceConfiguration
3016 {
3017 #[inline(always)]
3018 fn new_empty() -> Self {
3019 Self::default()
3020 }
3021
3022 unsafe fn decode(
3023 &mut self,
3024 decoder: &mut fidl::encoding::Decoder<'_, D>,
3025 offset: usize,
3026 mut depth: fidl::encoding::Depth,
3027 ) -> fidl::Result<()> {
3028 decoder.debug_check_bounds::<Self>(offset);
3029 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3030 None => return Err(fidl::Error::NotNullable),
3031 Some(len) => len,
3032 };
3033 if len == 0 {
3035 return Ok(());
3036 };
3037 depth.increment()?;
3038 let envelope_size = 8;
3039 let bytes_len = len * envelope_size;
3040 let offset = decoder.out_of_line_offset(bytes_len)?;
3041 let mut _next_ordinal_to_read = 0;
3043 let mut next_offset = offset;
3044 let end_offset = offset + bytes_len;
3045 _next_ordinal_to_read += 1;
3046 if next_offset >= end_offset {
3047 return Ok(());
3048 }
3049
3050 while _next_ordinal_to_read < 1 {
3052 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3053 _next_ordinal_to_read += 1;
3054 next_offset += envelope_size;
3055 }
3056
3057 let next_out_of_line = decoder.next_out_of_line();
3058 let handles_before = decoder.remaining_handles();
3059 if let Some((inlined, num_bytes, num_handles)) =
3060 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3061 {
3062 let member_inline_size =
3063 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3064 if inlined != (member_inline_size <= 4) {
3065 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3066 }
3067 let inner_offset;
3068 let mut inner_depth = depth.clone();
3069 if inlined {
3070 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3071 inner_offset = next_offset;
3072 } else {
3073 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3074 inner_depth.increment()?;
3075 }
3076 let val_ref = self
3077 .max_aggregate_content_size_bytes
3078 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3079 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3080 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3081 {
3082 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3083 }
3084 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3085 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3086 }
3087 }
3088
3089 next_offset += envelope_size;
3090 _next_ordinal_to_read += 1;
3091 if next_offset >= end_offset {
3092 return Ok(());
3093 }
3094
3095 while _next_ordinal_to_read < 2 {
3097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3098 _next_ordinal_to_read += 1;
3099 next_offset += envelope_size;
3100 }
3101
3102 let next_out_of_line = decoder.next_out_of_line();
3103 let handles_before = decoder.remaining_handles();
3104 if let Some((inlined, num_bytes, num_handles)) =
3105 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3106 {
3107 let member_inline_size =
3108 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3109 if inlined != (member_inline_size <= 4) {
3110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3111 }
3112 let inner_offset;
3113 let mut inner_depth = depth.clone();
3114 if inlined {
3115 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3116 inner_offset = next_offset;
3117 } else {
3118 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3119 inner_depth.increment()?;
3120 }
3121 let val_ref = self
3122 .batch_retrieval_timeout_seconds
3123 .get_or_insert_with(|| fidl::new_empty!(i64, D));
3124 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3125 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3126 {
3127 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3128 }
3129 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3130 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3131 }
3132 }
3133
3134 next_offset += envelope_size;
3135
3136 while next_offset < end_offset {
3138 _next_ordinal_to_read += 1;
3139 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3140 next_offset += envelope_size;
3141 }
3142
3143 Ok(())
3144 }
3145 }
3146
3147 impl SampleDatum {
3148 #[inline(always)]
3149 fn max_ordinal_present(&self) -> u64 {
3150 if let Some(_) = self.interval_secs {
3151 return 3;
3152 }
3153 if let Some(_) = self.strategy {
3154 return 2;
3155 }
3156 if let Some(_) = self.selector {
3157 return 1;
3158 }
3159 0
3160 }
3161 }
3162
3163 impl fidl::encoding::ValueTypeMarker for SampleDatum {
3164 type Borrowed<'a> = &'a Self;
3165 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3166 value
3167 }
3168 }
3169
3170 unsafe impl fidl::encoding::TypeMarker for SampleDatum {
3171 type Owned = Self;
3172
3173 #[inline(always)]
3174 fn inline_align(_context: fidl::encoding::Context) -> usize {
3175 8
3176 }
3177
3178 #[inline(always)]
3179 fn inline_size(_context: fidl::encoding::Context) -> usize {
3180 16
3181 }
3182 }
3183
3184 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleDatum, D>
3185 for &SampleDatum
3186 {
3187 unsafe fn encode(
3188 self,
3189 encoder: &mut fidl::encoding::Encoder<'_, D>,
3190 offset: usize,
3191 mut depth: fidl::encoding::Depth,
3192 ) -> fidl::Result<()> {
3193 encoder.debug_check_bounds::<SampleDatum>(offset);
3194 let max_ordinal: u64 = self.max_ordinal_present();
3196 encoder.write_num(max_ordinal, offset);
3197 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3198 if max_ordinal == 0 {
3200 return Ok(());
3201 }
3202 depth.increment()?;
3203 let envelope_size = 8;
3204 let bytes_len = max_ordinal as usize * envelope_size;
3205 #[allow(unused_variables)]
3206 let offset = encoder.out_of_line_offset(bytes_len);
3207 let mut _prev_end_offset: usize = 0;
3208 if 1 > max_ordinal {
3209 return Ok(());
3210 }
3211
3212 let cur_offset: usize = (1 - 1) * envelope_size;
3215
3216 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3218
3219 fidl::encoding::encode_in_envelope_optional::<SelectorArgument, D>(
3224 self.selector
3225 .as_ref()
3226 .map(<SelectorArgument as fidl::encoding::ValueTypeMarker>::borrow),
3227 encoder,
3228 offset + cur_offset,
3229 depth,
3230 )?;
3231
3232 _prev_end_offset = cur_offset + envelope_size;
3233 if 2 > max_ordinal {
3234 return Ok(());
3235 }
3236
3237 let cur_offset: usize = (2 - 1) * envelope_size;
3240
3241 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3243
3244 fidl::encoding::encode_in_envelope_optional::<SampleStrategy, D>(
3249 self.strategy
3250 .as_ref()
3251 .map(<SampleStrategy as fidl::encoding::ValueTypeMarker>::borrow),
3252 encoder,
3253 offset + cur_offset,
3254 depth,
3255 )?;
3256
3257 _prev_end_offset = cur_offset + envelope_size;
3258 if 3 > max_ordinal {
3259 return Ok(());
3260 }
3261
3262 let cur_offset: usize = (3 - 1) * envelope_size;
3265
3266 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3268
3269 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3274 self.interval_secs.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3275 encoder,
3276 offset + cur_offset,
3277 depth,
3278 )?;
3279
3280 _prev_end_offset = cur_offset + envelope_size;
3281
3282 Ok(())
3283 }
3284 }
3285
3286 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleDatum {
3287 #[inline(always)]
3288 fn new_empty() -> Self {
3289 Self::default()
3290 }
3291
3292 unsafe fn decode(
3293 &mut self,
3294 decoder: &mut fidl::encoding::Decoder<'_, D>,
3295 offset: usize,
3296 mut depth: fidl::encoding::Depth,
3297 ) -> fidl::Result<()> {
3298 decoder.debug_check_bounds::<Self>(offset);
3299 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3300 None => return Err(fidl::Error::NotNullable),
3301 Some(len) => len,
3302 };
3303 if len == 0 {
3305 return Ok(());
3306 };
3307 depth.increment()?;
3308 let envelope_size = 8;
3309 let bytes_len = len * envelope_size;
3310 let offset = decoder.out_of_line_offset(bytes_len)?;
3311 let mut _next_ordinal_to_read = 0;
3313 let mut next_offset = offset;
3314 let end_offset = offset + bytes_len;
3315 _next_ordinal_to_read += 1;
3316 if next_offset >= end_offset {
3317 return Ok(());
3318 }
3319
3320 while _next_ordinal_to_read < 1 {
3322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3323 _next_ordinal_to_read += 1;
3324 next_offset += envelope_size;
3325 }
3326
3327 let next_out_of_line = decoder.next_out_of_line();
3328 let handles_before = decoder.remaining_handles();
3329 if let Some((inlined, num_bytes, num_handles)) =
3330 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3331 {
3332 let member_inline_size =
3333 <SelectorArgument as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3334 if inlined != (member_inline_size <= 4) {
3335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3336 }
3337 let inner_offset;
3338 let mut inner_depth = depth.clone();
3339 if inlined {
3340 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3341 inner_offset = next_offset;
3342 } else {
3343 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3344 inner_depth.increment()?;
3345 }
3346 let val_ref =
3347 self.selector.get_or_insert_with(|| fidl::new_empty!(SelectorArgument, D));
3348 fidl::decode!(SelectorArgument, D, val_ref, decoder, inner_offset, inner_depth)?;
3349 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3350 {
3351 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3352 }
3353 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3354 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3355 }
3356 }
3357
3358 next_offset += envelope_size;
3359 _next_ordinal_to_read += 1;
3360 if next_offset >= end_offset {
3361 return Ok(());
3362 }
3363
3364 while _next_ordinal_to_read < 2 {
3366 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3367 _next_ordinal_to_read += 1;
3368 next_offset += envelope_size;
3369 }
3370
3371 let next_out_of_line = decoder.next_out_of_line();
3372 let handles_before = decoder.remaining_handles();
3373 if let Some((inlined, num_bytes, num_handles)) =
3374 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3375 {
3376 let member_inline_size =
3377 <SampleStrategy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3378 if inlined != (member_inline_size <= 4) {
3379 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3380 }
3381 let inner_offset;
3382 let mut inner_depth = depth.clone();
3383 if inlined {
3384 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3385 inner_offset = next_offset;
3386 } else {
3387 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3388 inner_depth.increment()?;
3389 }
3390 let val_ref =
3391 self.strategy.get_or_insert_with(|| fidl::new_empty!(SampleStrategy, D));
3392 fidl::decode!(SampleStrategy, D, val_ref, decoder, inner_offset, inner_depth)?;
3393 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3394 {
3395 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3396 }
3397 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3398 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3399 }
3400 }
3401
3402 next_offset += envelope_size;
3403 _next_ordinal_to_read += 1;
3404 if next_offset >= end_offset {
3405 return Ok(());
3406 }
3407
3408 while _next_ordinal_to_read < 3 {
3410 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3411 _next_ordinal_to_read += 1;
3412 next_offset += envelope_size;
3413 }
3414
3415 let next_out_of_line = decoder.next_out_of_line();
3416 let handles_before = decoder.remaining_handles();
3417 if let Some((inlined, num_bytes, num_handles)) =
3418 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3419 {
3420 let member_inline_size =
3421 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3422 if inlined != (member_inline_size <= 4) {
3423 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3424 }
3425 let inner_offset;
3426 let mut inner_depth = depth.clone();
3427 if inlined {
3428 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3429 inner_offset = next_offset;
3430 } else {
3431 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3432 inner_depth.increment()?;
3433 }
3434 let val_ref = self.interval_secs.get_or_insert_with(|| fidl::new_empty!(i64, D));
3435 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3436 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3437 {
3438 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3439 }
3440 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3441 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3442 }
3443 }
3444
3445 next_offset += envelope_size;
3446
3447 while next_offset < end_offset {
3449 _next_ordinal_to_read += 1;
3450 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3451 next_offset += envelope_size;
3452 }
3453
3454 Ok(())
3455 }
3456 }
3457
3458 impl SampleParameters {
3459 #[inline(always)]
3460 fn max_ordinal_present(&self) -> u64 {
3461 if let Some(_) = self.data {
3462 return 1;
3463 }
3464 0
3465 }
3466 }
3467
3468 impl fidl::encoding::ValueTypeMarker for SampleParameters {
3469 type Borrowed<'a> = &'a Self;
3470 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3471 value
3472 }
3473 }
3474
3475 unsafe impl fidl::encoding::TypeMarker for SampleParameters {
3476 type Owned = Self;
3477
3478 #[inline(always)]
3479 fn inline_align(_context: fidl::encoding::Context) -> usize {
3480 8
3481 }
3482
3483 #[inline(always)]
3484 fn inline_size(_context: fidl::encoding::Context) -> usize {
3485 16
3486 }
3487 }
3488
3489 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleParameters, D>
3490 for &SampleParameters
3491 {
3492 unsafe fn encode(
3493 self,
3494 encoder: &mut fidl::encoding::Encoder<'_, D>,
3495 offset: usize,
3496 mut depth: fidl::encoding::Depth,
3497 ) -> fidl::Result<()> {
3498 encoder.debug_check_bounds::<SampleParameters>(offset);
3499 let max_ordinal: u64 = self.max_ordinal_present();
3501 encoder.write_num(max_ordinal, offset);
3502 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3503 if max_ordinal == 0 {
3505 return Ok(());
3506 }
3507 depth.increment()?;
3508 let envelope_size = 8;
3509 let bytes_len = max_ordinal as usize * envelope_size;
3510 #[allow(unused_variables)]
3511 let offset = encoder.out_of_line_offset(bytes_len);
3512 let mut _prev_end_offset: usize = 0;
3513 if 1 > max_ordinal {
3514 return Ok(());
3515 }
3516
3517 let cur_offset: usize = (1 - 1) * envelope_size;
3520
3521 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3523
3524 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<SampleDatum, 100>, D>(
3529 self.data.as_ref().map(<fidl::encoding::Vector<SampleDatum, 100> as fidl::encoding::ValueTypeMarker>::borrow),
3530 encoder, offset + cur_offset, depth
3531 )?;
3532
3533 _prev_end_offset = cur_offset + envelope_size;
3534
3535 Ok(())
3536 }
3537 }
3538
3539 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleParameters {
3540 #[inline(always)]
3541 fn new_empty() -> Self {
3542 Self::default()
3543 }
3544
3545 unsafe fn decode(
3546 &mut self,
3547 decoder: &mut fidl::encoding::Decoder<'_, D>,
3548 offset: usize,
3549 mut depth: fidl::encoding::Depth,
3550 ) -> fidl::Result<()> {
3551 decoder.debug_check_bounds::<Self>(offset);
3552 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3553 None => return Err(fidl::Error::NotNullable),
3554 Some(len) => len,
3555 };
3556 if len == 0 {
3558 return Ok(());
3559 };
3560 depth.increment()?;
3561 let envelope_size = 8;
3562 let bytes_len = len * envelope_size;
3563 let offset = decoder.out_of_line_offset(bytes_len)?;
3564 let mut _next_ordinal_to_read = 0;
3566 let mut next_offset = offset;
3567 let end_offset = offset + bytes_len;
3568 _next_ordinal_to_read += 1;
3569 if next_offset >= end_offset {
3570 return Ok(());
3571 }
3572
3573 while _next_ordinal_to_read < 1 {
3575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3576 _next_ordinal_to_read += 1;
3577 next_offset += envelope_size;
3578 }
3579
3580 let next_out_of_line = decoder.next_out_of_line();
3581 let handles_before = decoder.remaining_handles();
3582 if let Some((inlined, num_bytes, num_handles)) =
3583 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3584 {
3585 let member_inline_size = <fidl::encoding::Vector<SampleDatum, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3586 if inlined != (member_inline_size <= 4) {
3587 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3588 }
3589 let inner_offset;
3590 let mut inner_depth = depth.clone();
3591 if inlined {
3592 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3593 inner_offset = next_offset;
3594 } else {
3595 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3596 inner_depth.increment()?;
3597 }
3598 let val_ref = self.data.get_or_insert_with(
3599 || fidl::new_empty!(fidl::encoding::Vector<SampleDatum, 100>, D),
3600 );
3601 fidl::decode!(fidl::encoding::Vector<SampleDatum, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
3602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3603 {
3604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3605 }
3606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3608 }
3609 }
3610
3611 next_offset += envelope_size;
3612
3613 while next_offset < end_offset {
3615 _next_ordinal_to_read += 1;
3616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3617 next_offset += envelope_size;
3618 }
3619
3620 Ok(())
3621 }
3622 }
3623
3624 impl Selector {
3625 #[inline(always)]
3626 fn max_ordinal_present(&self) -> u64 {
3627 if let Some(_) = self.tree_names {
3628 return 3;
3629 }
3630 if let Some(_) = self.tree_selector {
3631 return 2;
3632 }
3633 if let Some(_) = self.component_selector {
3634 return 1;
3635 }
3636 0
3637 }
3638 }
3639
3640 impl fidl::encoding::ValueTypeMarker for Selector {
3641 type Borrowed<'a> = &'a Self;
3642 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3643 value
3644 }
3645 }
3646
3647 unsafe impl fidl::encoding::TypeMarker for Selector {
3648 type Owned = Self;
3649
3650 #[inline(always)]
3651 fn inline_align(_context: fidl::encoding::Context) -> usize {
3652 8
3653 }
3654
3655 #[inline(always)]
3656 fn inline_size(_context: fidl::encoding::Context) -> usize {
3657 16
3658 }
3659 }
3660
3661 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Selector, D> for &Selector {
3662 unsafe fn encode(
3663 self,
3664 encoder: &mut fidl::encoding::Encoder<'_, D>,
3665 offset: usize,
3666 mut depth: fidl::encoding::Depth,
3667 ) -> fidl::Result<()> {
3668 encoder.debug_check_bounds::<Selector>(offset);
3669 let max_ordinal: u64 = self.max_ordinal_present();
3671 encoder.write_num(max_ordinal, offset);
3672 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3673 if max_ordinal == 0 {
3675 return Ok(());
3676 }
3677 depth.increment()?;
3678 let envelope_size = 8;
3679 let bytes_len = max_ordinal as usize * envelope_size;
3680 #[allow(unused_variables)]
3681 let offset = encoder.out_of_line_offset(bytes_len);
3682 let mut _prev_end_offset: usize = 0;
3683 if 1 > max_ordinal {
3684 return Ok(());
3685 }
3686
3687 let cur_offset: usize = (1 - 1) * envelope_size;
3690
3691 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3693
3694 fidl::encoding::encode_in_envelope_optional::<ComponentSelector, D>(
3699 self.component_selector
3700 .as_ref()
3701 .map(<ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow),
3702 encoder,
3703 offset + cur_offset,
3704 depth,
3705 )?;
3706
3707 _prev_end_offset = cur_offset + envelope_size;
3708 if 2 > max_ordinal {
3709 return Ok(());
3710 }
3711
3712 let cur_offset: usize = (2 - 1) * envelope_size;
3715
3716 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3718
3719 fidl::encoding::encode_in_envelope_optional::<TreeSelector, D>(
3724 self.tree_selector
3725 .as_ref()
3726 .map(<TreeSelector as fidl::encoding::ValueTypeMarker>::borrow),
3727 encoder,
3728 offset + cur_offset,
3729 depth,
3730 )?;
3731
3732 _prev_end_offset = cur_offset + envelope_size;
3733 if 3 > max_ordinal {
3734 return Ok(());
3735 }
3736
3737 let cur_offset: usize = (3 - 1) * envelope_size;
3740
3741 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3743
3744 fidl::encoding::encode_in_envelope_optional::<TreeNames, D>(
3749 self.tree_names
3750 .as_ref()
3751 .map(<TreeNames as fidl::encoding::ValueTypeMarker>::borrow),
3752 encoder,
3753 offset + cur_offset,
3754 depth,
3755 )?;
3756
3757 _prev_end_offset = cur_offset + envelope_size;
3758
3759 Ok(())
3760 }
3761 }
3762
3763 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Selector {
3764 #[inline(always)]
3765 fn new_empty() -> Self {
3766 Self::default()
3767 }
3768
3769 unsafe fn decode(
3770 &mut self,
3771 decoder: &mut fidl::encoding::Decoder<'_, D>,
3772 offset: usize,
3773 mut depth: fidl::encoding::Depth,
3774 ) -> fidl::Result<()> {
3775 decoder.debug_check_bounds::<Self>(offset);
3776 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3777 None => return Err(fidl::Error::NotNullable),
3778 Some(len) => len,
3779 };
3780 if len == 0 {
3782 return Ok(());
3783 };
3784 depth.increment()?;
3785 let envelope_size = 8;
3786 let bytes_len = len * envelope_size;
3787 let offset = decoder.out_of_line_offset(bytes_len)?;
3788 let mut _next_ordinal_to_read = 0;
3790 let mut next_offset = offset;
3791 let end_offset = offset + bytes_len;
3792 _next_ordinal_to_read += 1;
3793 if next_offset >= end_offset {
3794 return Ok(());
3795 }
3796
3797 while _next_ordinal_to_read < 1 {
3799 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3800 _next_ordinal_to_read += 1;
3801 next_offset += envelope_size;
3802 }
3803
3804 let next_out_of_line = decoder.next_out_of_line();
3805 let handles_before = decoder.remaining_handles();
3806 if let Some((inlined, num_bytes, num_handles)) =
3807 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3808 {
3809 let member_inline_size =
3810 <ComponentSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3811 if inlined != (member_inline_size <= 4) {
3812 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3813 }
3814 let inner_offset;
3815 let mut inner_depth = depth.clone();
3816 if inlined {
3817 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3818 inner_offset = next_offset;
3819 } else {
3820 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3821 inner_depth.increment()?;
3822 }
3823 let val_ref = self
3824 .component_selector
3825 .get_or_insert_with(|| fidl::new_empty!(ComponentSelector, D));
3826 fidl::decode!(ComponentSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3827 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3828 {
3829 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3830 }
3831 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3832 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3833 }
3834 }
3835
3836 next_offset += envelope_size;
3837 _next_ordinal_to_read += 1;
3838 if next_offset >= end_offset {
3839 return Ok(());
3840 }
3841
3842 while _next_ordinal_to_read < 2 {
3844 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3845 _next_ordinal_to_read += 1;
3846 next_offset += envelope_size;
3847 }
3848
3849 let next_out_of_line = decoder.next_out_of_line();
3850 let handles_before = decoder.remaining_handles();
3851 if let Some((inlined, num_bytes, num_handles)) =
3852 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3853 {
3854 let member_inline_size =
3855 <TreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3856 if inlined != (member_inline_size <= 4) {
3857 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3858 }
3859 let inner_offset;
3860 let mut inner_depth = depth.clone();
3861 if inlined {
3862 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3863 inner_offset = next_offset;
3864 } else {
3865 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3866 inner_depth.increment()?;
3867 }
3868 let val_ref =
3869 self.tree_selector.get_or_insert_with(|| fidl::new_empty!(TreeSelector, D));
3870 fidl::decode!(TreeSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3871 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3872 {
3873 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3874 }
3875 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3876 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3877 }
3878 }
3879
3880 next_offset += envelope_size;
3881 _next_ordinal_to_read += 1;
3882 if next_offset >= end_offset {
3883 return Ok(());
3884 }
3885
3886 while _next_ordinal_to_read < 3 {
3888 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3889 _next_ordinal_to_read += 1;
3890 next_offset += envelope_size;
3891 }
3892
3893 let next_out_of_line = decoder.next_out_of_line();
3894 let handles_before = decoder.remaining_handles();
3895 if let Some((inlined, num_bytes, num_handles)) =
3896 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3897 {
3898 let member_inline_size =
3899 <TreeNames as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3900 if inlined != (member_inline_size <= 4) {
3901 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3902 }
3903 let inner_offset;
3904 let mut inner_depth = depth.clone();
3905 if inlined {
3906 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3907 inner_offset = next_offset;
3908 } else {
3909 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3910 inner_depth.increment()?;
3911 }
3912 let val_ref = self.tree_names.get_or_insert_with(|| fidl::new_empty!(TreeNames, D));
3913 fidl::decode!(TreeNames, D, val_ref, decoder, inner_offset, inner_depth)?;
3914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3915 {
3916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3917 }
3918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3920 }
3921 }
3922
3923 next_offset += envelope_size;
3924
3925 while next_offset < end_offset {
3927 _next_ordinal_to_read += 1;
3928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3929 next_offset += envelope_size;
3930 }
3931
3932 Ok(())
3933 }
3934 }
3935
3936 impl StreamParameters {
3937 #[inline(always)]
3938 fn max_ordinal_present(&self) -> u64 {
3939 if let Some(_) = self.performance_configuration {
3940 return 6;
3941 }
3942 if let Some(_) = self.batch_retrieval_timeout_seconds {
3943 return 5;
3944 }
3945 if let Some(_) = self.client_selector_configuration {
3946 return 4;
3947 }
3948 if let Some(_) = self.format {
3949 return 3;
3950 }
3951 if let Some(_) = self.stream_mode {
3952 return 2;
3953 }
3954 if let Some(_) = self.data_type {
3955 return 1;
3956 }
3957 0
3958 }
3959 }
3960
3961 impl fidl::encoding::ValueTypeMarker for StreamParameters {
3962 type Borrowed<'a> = &'a Self;
3963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3964 value
3965 }
3966 }
3967
3968 unsafe impl fidl::encoding::TypeMarker for StreamParameters {
3969 type Owned = Self;
3970
3971 #[inline(always)]
3972 fn inline_align(_context: fidl::encoding::Context) -> usize {
3973 8
3974 }
3975
3976 #[inline(always)]
3977 fn inline_size(_context: fidl::encoding::Context) -> usize {
3978 16
3979 }
3980 }
3981
3982 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamParameters, D>
3983 for &StreamParameters
3984 {
3985 unsafe fn encode(
3986 self,
3987 encoder: &mut fidl::encoding::Encoder<'_, D>,
3988 offset: usize,
3989 mut depth: fidl::encoding::Depth,
3990 ) -> fidl::Result<()> {
3991 encoder.debug_check_bounds::<StreamParameters>(offset);
3992 let max_ordinal: u64 = self.max_ordinal_present();
3994 encoder.write_num(max_ordinal, offset);
3995 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3996 if max_ordinal == 0 {
3998 return Ok(());
3999 }
4000 depth.increment()?;
4001 let envelope_size = 8;
4002 let bytes_len = max_ordinal as usize * envelope_size;
4003 #[allow(unused_variables)]
4004 let offset = encoder.out_of_line_offset(bytes_len);
4005 let mut _prev_end_offset: usize = 0;
4006 if 1 > max_ordinal {
4007 return Ok(());
4008 }
4009
4010 let cur_offset: usize = (1 - 1) * envelope_size;
4013
4014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4016
4017 fidl::encoding::encode_in_envelope_optional::<DataType, D>(
4022 self.data_type.as_ref().map(<DataType as fidl::encoding::ValueTypeMarker>::borrow),
4023 encoder,
4024 offset + cur_offset,
4025 depth,
4026 )?;
4027
4028 _prev_end_offset = cur_offset + envelope_size;
4029 if 2 > max_ordinal {
4030 return Ok(());
4031 }
4032
4033 let cur_offset: usize = (2 - 1) * envelope_size;
4036
4037 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4039
4040 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
4045 self.stream_mode
4046 .as_ref()
4047 .map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
4048 encoder,
4049 offset + cur_offset,
4050 depth,
4051 )?;
4052
4053 _prev_end_offset = cur_offset + envelope_size;
4054 if 3 > max_ordinal {
4055 return Ok(());
4056 }
4057
4058 let cur_offset: usize = (3 - 1) * envelope_size;
4061
4062 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4064
4065 fidl::encoding::encode_in_envelope_optional::<Format, D>(
4070 self.format.as_ref().map(<Format as fidl::encoding::ValueTypeMarker>::borrow),
4071 encoder,
4072 offset + cur_offset,
4073 depth,
4074 )?;
4075
4076 _prev_end_offset = cur_offset + envelope_size;
4077 if 4 > max_ordinal {
4078 return Ok(());
4079 }
4080
4081 let cur_offset: usize = (4 - 1) * envelope_size;
4084
4085 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4087
4088 fidl::encoding::encode_in_envelope_optional::<ClientSelectorConfiguration, D>(
4093 self.client_selector_configuration
4094 .as_ref()
4095 .map(<ClientSelectorConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
4096 encoder,
4097 offset + cur_offset,
4098 depth,
4099 )?;
4100
4101 _prev_end_offset = cur_offset + envelope_size;
4102 if 5 > max_ordinal {
4103 return Ok(());
4104 }
4105
4106 let cur_offset: usize = (5 - 1) * envelope_size;
4109
4110 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4112
4113 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4118 self.batch_retrieval_timeout_seconds
4119 .as_ref()
4120 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4121 encoder,
4122 offset + cur_offset,
4123 depth,
4124 )?;
4125
4126 _prev_end_offset = cur_offset + envelope_size;
4127 if 6 > max_ordinal {
4128 return Ok(());
4129 }
4130
4131 let cur_offset: usize = (6 - 1) * envelope_size;
4134
4135 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4137
4138 fidl::encoding::encode_in_envelope_optional::<PerformanceConfiguration, D>(
4143 self.performance_configuration
4144 .as_ref()
4145 .map(<PerformanceConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
4146 encoder,
4147 offset + cur_offset,
4148 depth,
4149 )?;
4150
4151 _prev_end_offset = cur_offset + envelope_size;
4152
4153 Ok(())
4154 }
4155 }
4156
4157 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamParameters {
4158 #[inline(always)]
4159 fn new_empty() -> Self {
4160 Self::default()
4161 }
4162
4163 unsafe fn decode(
4164 &mut self,
4165 decoder: &mut fidl::encoding::Decoder<'_, D>,
4166 offset: usize,
4167 mut depth: fidl::encoding::Depth,
4168 ) -> fidl::Result<()> {
4169 decoder.debug_check_bounds::<Self>(offset);
4170 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4171 None => return Err(fidl::Error::NotNullable),
4172 Some(len) => len,
4173 };
4174 if len == 0 {
4176 return Ok(());
4177 };
4178 depth.increment()?;
4179 let envelope_size = 8;
4180 let bytes_len = len * envelope_size;
4181 let offset = decoder.out_of_line_offset(bytes_len)?;
4182 let mut _next_ordinal_to_read = 0;
4184 let mut next_offset = offset;
4185 let end_offset = offset + bytes_len;
4186 _next_ordinal_to_read += 1;
4187 if next_offset >= end_offset {
4188 return Ok(());
4189 }
4190
4191 while _next_ordinal_to_read < 1 {
4193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4194 _next_ordinal_to_read += 1;
4195 next_offset += envelope_size;
4196 }
4197
4198 let next_out_of_line = decoder.next_out_of_line();
4199 let handles_before = decoder.remaining_handles();
4200 if let Some((inlined, num_bytes, num_handles)) =
4201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4202 {
4203 let member_inline_size =
4204 <DataType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4205 if inlined != (member_inline_size <= 4) {
4206 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4207 }
4208 let inner_offset;
4209 let mut inner_depth = depth.clone();
4210 if inlined {
4211 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4212 inner_offset = next_offset;
4213 } else {
4214 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4215 inner_depth.increment()?;
4216 }
4217 let val_ref = self.data_type.get_or_insert_with(|| fidl::new_empty!(DataType, D));
4218 fidl::decode!(DataType, D, val_ref, decoder, inner_offset, inner_depth)?;
4219 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4220 {
4221 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4222 }
4223 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4224 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4225 }
4226 }
4227
4228 next_offset += envelope_size;
4229 _next_ordinal_to_read += 1;
4230 if next_offset >= end_offset {
4231 return Ok(());
4232 }
4233
4234 while _next_ordinal_to_read < 2 {
4236 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4237 _next_ordinal_to_read += 1;
4238 next_offset += envelope_size;
4239 }
4240
4241 let next_out_of_line = decoder.next_out_of_line();
4242 let handles_before = decoder.remaining_handles();
4243 if let Some((inlined, num_bytes, num_handles)) =
4244 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4245 {
4246 let member_inline_size =
4247 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4248 if inlined != (member_inline_size <= 4) {
4249 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4250 }
4251 let inner_offset;
4252 let mut inner_depth = depth.clone();
4253 if inlined {
4254 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4255 inner_offset = next_offset;
4256 } else {
4257 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4258 inner_depth.increment()?;
4259 }
4260 let val_ref =
4261 self.stream_mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
4262 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
4263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4264 {
4265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4266 }
4267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4269 }
4270 }
4271
4272 next_offset += envelope_size;
4273 _next_ordinal_to_read += 1;
4274 if next_offset >= end_offset {
4275 return Ok(());
4276 }
4277
4278 while _next_ordinal_to_read < 3 {
4280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4281 _next_ordinal_to_read += 1;
4282 next_offset += envelope_size;
4283 }
4284
4285 let next_out_of_line = decoder.next_out_of_line();
4286 let handles_before = decoder.remaining_handles();
4287 if let Some((inlined, num_bytes, num_handles)) =
4288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4289 {
4290 let member_inline_size =
4291 <Format as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4292 if inlined != (member_inline_size <= 4) {
4293 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4294 }
4295 let inner_offset;
4296 let mut inner_depth = depth.clone();
4297 if inlined {
4298 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4299 inner_offset = next_offset;
4300 } else {
4301 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4302 inner_depth.increment()?;
4303 }
4304 let val_ref = self.format.get_or_insert_with(|| fidl::new_empty!(Format, D));
4305 fidl::decode!(Format, D, val_ref, decoder, inner_offset, inner_depth)?;
4306 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4307 {
4308 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4309 }
4310 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4311 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4312 }
4313 }
4314
4315 next_offset += envelope_size;
4316 _next_ordinal_to_read += 1;
4317 if next_offset >= end_offset {
4318 return Ok(());
4319 }
4320
4321 while _next_ordinal_to_read < 4 {
4323 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4324 _next_ordinal_to_read += 1;
4325 next_offset += envelope_size;
4326 }
4327
4328 let next_out_of_line = decoder.next_out_of_line();
4329 let handles_before = decoder.remaining_handles();
4330 if let Some((inlined, num_bytes, num_handles)) =
4331 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4332 {
4333 let member_inline_size =
4334 <ClientSelectorConfiguration as fidl::encoding::TypeMarker>::inline_size(
4335 decoder.context,
4336 );
4337 if inlined != (member_inline_size <= 4) {
4338 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4339 }
4340 let inner_offset;
4341 let mut inner_depth = depth.clone();
4342 if inlined {
4343 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4344 inner_offset = next_offset;
4345 } else {
4346 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4347 inner_depth.increment()?;
4348 }
4349 let val_ref = self
4350 .client_selector_configuration
4351 .get_or_insert_with(|| fidl::new_empty!(ClientSelectorConfiguration, D));
4352 fidl::decode!(
4353 ClientSelectorConfiguration,
4354 D,
4355 val_ref,
4356 decoder,
4357 inner_offset,
4358 inner_depth
4359 )?;
4360 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4361 {
4362 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4363 }
4364 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4365 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4366 }
4367 }
4368
4369 next_offset += envelope_size;
4370 _next_ordinal_to_read += 1;
4371 if next_offset >= end_offset {
4372 return Ok(());
4373 }
4374
4375 while _next_ordinal_to_read < 5 {
4377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4378 _next_ordinal_to_read += 1;
4379 next_offset += envelope_size;
4380 }
4381
4382 let next_out_of_line = decoder.next_out_of_line();
4383 let handles_before = decoder.remaining_handles();
4384 if let Some((inlined, num_bytes, num_handles)) =
4385 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4386 {
4387 let member_inline_size =
4388 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4389 if inlined != (member_inline_size <= 4) {
4390 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4391 }
4392 let inner_offset;
4393 let mut inner_depth = depth.clone();
4394 if inlined {
4395 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4396 inner_offset = next_offset;
4397 } else {
4398 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4399 inner_depth.increment()?;
4400 }
4401 let val_ref = self
4402 .batch_retrieval_timeout_seconds
4403 .get_or_insert_with(|| fidl::new_empty!(i64, D));
4404 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4405 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4406 {
4407 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4408 }
4409 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4410 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4411 }
4412 }
4413
4414 next_offset += envelope_size;
4415 _next_ordinal_to_read += 1;
4416 if next_offset >= end_offset {
4417 return Ok(());
4418 }
4419
4420 while _next_ordinal_to_read < 6 {
4422 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4423 _next_ordinal_to_read += 1;
4424 next_offset += envelope_size;
4425 }
4426
4427 let next_out_of_line = decoder.next_out_of_line();
4428 let handles_before = decoder.remaining_handles();
4429 if let Some((inlined, num_bytes, num_handles)) =
4430 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4431 {
4432 let member_inline_size =
4433 <PerformanceConfiguration as fidl::encoding::TypeMarker>::inline_size(
4434 decoder.context,
4435 );
4436 if inlined != (member_inline_size <= 4) {
4437 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4438 }
4439 let inner_offset;
4440 let mut inner_depth = depth.clone();
4441 if inlined {
4442 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4443 inner_offset = next_offset;
4444 } else {
4445 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4446 inner_depth.increment()?;
4447 }
4448 let val_ref = self
4449 .performance_configuration
4450 .get_or_insert_with(|| fidl::new_empty!(PerformanceConfiguration, D));
4451 fidl::decode!(
4452 PerformanceConfiguration,
4453 D,
4454 val_ref,
4455 decoder,
4456 inner_offset,
4457 inner_depth
4458 )?;
4459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4460 {
4461 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4462 }
4463 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4464 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4465 }
4466 }
4467
4468 next_offset += envelope_size;
4469
4470 while next_offset < end_offset {
4472 _next_ordinal_to_read += 1;
4473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4474 next_offset += envelope_size;
4475 }
4476
4477 Ok(())
4478 }
4479 }
4480
4481 impl fidl::encoding::ValueTypeMarker for ClientSelectorConfiguration {
4482 type Borrowed<'a> = &'a Self;
4483 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4484 value
4485 }
4486 }
4487
4488 unsafe impl fidl::encoding::TypeMarker for ClientSelectorConfiguration {
4489 type Owned = Self;
4490
4491 #[inline(always)]
4492 fn inline_align(_context: fidl::encoding::Context) -> usize {
4493 8
4494 }
4495
4496 #[inline(always)]
4497 fn inline_size(_context: fidl::encoding::Context) -> usize {
4498 16
4499 }
4500 }
4501
4502 unsafe impl<D: fidl::encoding::ResourceDialect>
4503 fidl::encoding::Encode<ClientSelectorConfiguration, D> for &ClientSelectorConfiguration
4504 {
4505 #[inline]
4506 unsafe fn encode(
4507 self,
4508 encoder: &mut fidl::encoding::Encoder<'_, D>,
4509 offset: usize,
4510 _depth: fidl::encoding::Depth,
4511 ) -> fidl::Result<()> {
4512 encoder.debug_check_bounds::<ClientSelectorConfiguration>(offset);
4513 encoder.write_num::<u64>(self.ordinal(), offset);
4514 match self {
4515 ClientSelectorConfiguration::Selectors(ref val) => {
4516 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<SelectorArgument>, D>(
4517 <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::ValueTypeMarker>::borrow(val),
4518 encoder, offset + 8, _depth
4519 )
4520 }
4521 ClientSelectorConfiguration::SelectAll(ref val) => {
4522 fidl::encoding::encode_in_envelope::<bool, D>(
4523 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
4524 encoder, offset + 8, _depth
4525 )
4526 }
4527 ClientSelectorConfiguration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4528 }
4529 }
4530 }
4531
4532 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4533 for ClientSelectorConfiguration
4534 {
4535 #[inline(always)]
4536 fn new_empty() -> Self {
4537 Self::__SourceBreaking { unknown_ordinal: 0 }
4538 }
4539
4540 #[inline]
4541 unsafe fn decode(
4542 &mut self,
4543 decoder: &mut fidl::encoding::Decoder<'_, D>,
4544 offset: usize,
4545 mut depth: fidl::encoding::Depth,
4546 ) -> fidl::Result<()> {
4547 decoder.debug_check_bounds::<Self>(offset);
4548 #[allow(unused_variables)]
4549 let next_out_of_line = decoder.next_out_of_line();
4550 let handles_before = decoder.remaining_handles();
4551 let (ordinal, inlined, num_bytes, num_handles) =
4552 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4553
4554 let member_inline_size = match ordinal {
4555 1 => <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4556 2 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4557 0 => return Err(fidl::Error::UnknownUnionTag),
4558 _ => num_bytes as usize,
4559 };
4560
4561 if inlined != (member_inline_size <= 4) {
4562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4563 }
4564 let _inner_offset;
4565 if inlined {
4566 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4567 _inner_offset = offset + 8;
4568 } else {
4569 depth.increment()?;
4570 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4571 }
4572 match ordinal {
4573 1 => {
4574 #[allow(irrefutable_let_patterns)]
4575 if let ClientSelectorConfiguration::Selectors(_) = self {
4576 } else {
4578 *self = ClientSelectorConfiguration::Selectors(fidl::new_empty!(
4580 fidl::encoding::UnboundedVector<SelectorArgument>,
4581 D
4582 ));
4583 }
4584 #[allow(irrefutable_let_patterns)]
4585 if let ClientSelectorConfiguration::Selectors(ref mut val) = self {
4586 fidl::decode!(
4587 fidl::encoding::UnboundedVector<SelectorArgument>,
4588 D,
4589 val,
4590 decoder,
4591 _inner_offset,
4592 depth
4593 )?;
4594 } else {
4595 unreachable!()
4596 }
4597 }
4598 2 => {
4599 #[allow(irrefutable_let_patterns)]
4600 if let ClientSelectorConfiguration::SelectAll(_) = self {
4601 } else {
4603 *self = ClientSelectorConfiguration::SelectAll(fidl::new_empty!(bool, D));
4605 }
4606 #[allow(irrefutable_let_patterns)]
4607 if let ClientSelectorConfiguration::SelectAll(ref mut val) = self {
4608 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4609 } else {
4610 unreachable!()
4611 }
4612 }
4613 #[allow(deprecated)]
4614 ordinal => {
4615 for _ in 0..num_handles {
4616 decoder.drop_next_handle()?;
4617 }
4618 *self =
4619 ClientSelectorConfiguration::__SourceBreaking { unknown_ordinal: ordinal };
4620 }
4621 }
4622 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4623 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4624 }
4625 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4626 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4627 }
4628 Ok(())
4629 }
4630 }
4631
4632 impl fidl::encoding::ValueTypeMarker for SelectorArgument {
4633 type Borrowed<'a> = &'a Self;
4634 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4635 value
4636 }
4637 }
4638
4639 unsafe impl fidl::encoding::TypeMarker for SelectorArgument {
4640 type Owned = Self;
4641
4642 #[inline(always)]
4643 fn inline_align(_context: fidl::encoding::Context) -> usize {
4644 8
4645 }
4646
4647 #[inline(always)]
4648 fn inline_size(_context: fidl::encoding::Context) -> usize {
4649 16
4650 }
4651 }
4652
4653 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelectorArgument, D>
4654 for &SelectorArgument
4655 {
4656 #[inline]
4657 unsafe fn encode(
4658 self,
4659 encoder: &mut fidl::encoding::Encoder<'_, D>,
4660 offset: usize,
4661 _depth: fidl::encoding::Depth,
4662 ) -> fidl::Result<()> {
4663 encoder.debug_check_bounds::<SelectorArgument>(offset);
4664 encoder.write_num::<u64>(self.ordinal(), offset);
4665 match self {
4666 SelectorArgument::StructuredSelector(ref val) => {
4667 fidl::encoding::encode_in_envelope::<Selector, D>(
4668 <Selector as fidl::encoding::ValueTypeMarker>::borrow(val),
4669 encoder, offset + 8, _depth
4670 )
4671 }
4672 SelectorArgument::RawSelector(ref val) => {
4673 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4674 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4675 encoder, offset + 8, _depth
4676 )
4677 }
4678 SelectorArgument::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4679 }
4680 }
4681 }
4682
4683 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelectorArgument {
4684 #[inline(always)]
4685 fn new_empty() -> Self {
4686 Self::__SourceBreaking { unknown_ordinal: 0 }
4687 }
4688
4689 #[inline]
4690 unsafe fn decode(
4691 &mut self,
4692 decoder: &mut fidl::encoding::Decoder<'_, D>,
4693 offset: usize,
4694 mut depth: fidl::encoding::Depth,
4695 ) -> fidl::Result<()> {
4696 decoder.debug_check_bounds::<Self>(offset);
4697 #[allow(unused_variables)]
4698 let next_out_of_line = decoder.next_out_of_line();
4699 let handles_before = decoder.remaining_handles();
4700 let (ordinal, inlined, num_bytes, num_handles) =
4701 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4702
4703 let member_inline_size = match ordinal {
4704 1 => <Selector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4705 2 => {
4706 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4707 decoder.context,
4708 )
4709 }
4710 0 => return Err(fidl::Error::UnknownUnionTag),
4711 _ => num_bytes as usize,
4712 };
4713
4714 if inlined != (member_inline_size <= 4) {
4715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4716 }
4717 let _inner_offset;
4718 if inlined {
4719 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4720 _inner_offset = offset + 8;
4721 } else {
4722 depth.increment()?;
4723 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4724 }
4725 match ordinal {
4726 1 => {
4727 #[allow(irrefutable_let_patterns)]
4728 if let SelectorArgument::StructuredSelector(_) = self {
4729 } else {
4731 *self = SelectorArgument::StructuredSelector(fidl::new_empty!(Selector, D));
4733 }
4734 #[allow(irrefutable_let_patterns)]
4735 if let SelectorArgument::StructuredSelector(ref mut val) = self {
4736 fidl::decode!(Selector, D, val, decoder, _inner_offset, depth)?;
4737 } else {
4738 unreachable!()
4739 }
4740 }
4741 2 => {
4742 #[allow(irrefutable_let_patterns)]
4743 if let SelectorArgument::RawSelector(_) = self {
4744 } else {
4746 *self = SelectorArgument::RawSelector(fidl::new_empty!(
4748 fidl::encoding::BoundedString<1024>,
4749 D
4750 ));
4751 }
4752 #[allow(irrefutable_let_patterns)]
4753 if let SelectorArgument::RawSelector(ref mut val) = self {
4754 fidl::decode!(
4755 fidl::encoding::BoundedString<1024>,
4756 D,
4757 val,
4758 decoder,
4759 _inner_offset,
4760 depth
4761 )?;
4762 } else {
4763 unreachable!()
4764 }
4765 }
4766 #[allow(deprecated)]
4767 ordinal => {
4768 for _ in 0..num_handles {
4769 decoder.drop_next_handle()?;
4770 }
4771 *self = SelectorArgument::__SourceBreaking { unknown_ordinal: ordinal };
4772 }
4773 }
4774 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4775 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4776 }
4777 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4778 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4779 }
4780 Ok(())
4781 }
4782 }
4783
4784 impl fidl::encoding::ValueTypeMarker for StringSelector {
4785 type Borrowed<'a> = &'a Self;
4786 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4787 value
4788 }
4789 }
4790
4791 unsafe impl fidl::encoding::TypeMarker for StringSelector {
4792 type Owned = Self;
4793
4794 #[inline(always)]
4795 fn inline_align(_context: fidl::encoding::Context) -> usize {
4796 8
4797 }
4798
4799 #[inline(always)]
4800 fn inline_size(_context: fidl::encoding::Context) -> usize {
4801 16
4802 }
4803 }
4804
4805 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StringSelector, D>
4806 for &StringSelector
4807 {
4808 #[inline]
4809 unsafe fn encode(
4810 self,
4811 encoder: &mut fidl::encoding::Encoder<'_, D>,
4812 offset: usize,
4813 _depth: fidl::encoding::Depth,
4814 ) -> fidl::Result<()> {
4815 encoder.debug_check_bounds::<StringSelector>(offset);
4816 encoder.write_num::<u64>(self.ordinal(), offset);
4817 match self {
4818 StringSelector::StringPattern(ref val) => {
4819 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4820 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4821 encoder, offset + 8, _depth
4822 )
4823 }
4824 StringSelector::ExactMatch(ref val) => {
4825 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4826 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4827 encoder, offset + 8, _depth
4828 )
4829 }
4830 StringSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4831 }
4832 }
4833 }
4834
4835 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StringSelector {
4836 #[inline(always)]
4837 fn new_empty() -> Self {
4838 Self::__SourceBreaking { unknown_ordinal: 0 }
4839 }
4840
4841 #[inline]
4842 unsafe fn decode(
4843 &mut self,
4844 decoder: &mut fidl::encoding::Decoder<'_, D>,
4845 offset: usize,
4846 mut depth: fidl::encoding::Depth,
4847 ) -> fidl::Result<()> {
4848 decoder.debug_check_bounds::<Self>(offset);
4849 #[allow(unused_variables)]
4850 let next_out_of_line = decoder.next_out_of_line();
4851 let handles_before = decoder.remaining_handles();
4852 let (ordinal, inlined, num_bytes, num_handles) =
4853 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4854
4855 let member_inline_size = match ordinal {
4856 1 => {
4857 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4858 decoder.context,
4859 )
4860 }
4861 2 => {
4862 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4863 decoder.context,
4864 )
4865 }
4866 0 => return Err(fidl::Error::UnknownUnionTag),
4867 _ => num_bytes as usize,
4868 };
4869
4870 if inlined != (member_inline_size <= 4) {
4871 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4872 }
4873 let _inner_offset;
4874 if inlined {
4875 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4876 _inner_offset = offset + 8;
4877 } else {
4878 depth.increment()?;
4879 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4880 }
4881 match ordinal {
4882 1 => {
4883 #[allow(irrefutable_let_patterns)]
4884 if let StringSelector::StringPattern(_) = self {
4885 } else {
4887 *self = StringSelector::StringPattern(fidl::new_empty!(
4889 fidl::encoding::BoundedString<1024>,
4890 D
4891 ));
4892 }
4893 #[allow(irrefutable_let_patterns)]
4894 if let StringSelector::StringPattern(ref mut val) = self {
4895 fidl::decode!(
4896 fidl::encoding::BoundedString<1024>,
4897 D,
4898 val,
4899 decoder,
4900 _inner_offset,
4901 depth
4902 )?;
4903 } else {
4904 unreachable!()
4905 }
4906 }
4907 2 => {
4908 #[allow(irrefutable_let_patterns)]
4909 if let StringSelector::ExactMatch(_) = self {
4910 } else {
4912 *self = StringSelector::ExactMatch(fidl::new_empty!(
4914 fidl::encoding::BoundedString<1024>,
4915 D
4916 ));
4917 }
4918 #[allow(irrefutable_let_patterns)]
4919 if let StringSelector::ExactMatch(ref mut val) = self {
4920 fidl::decode!(
4921 fidl::encoding::BoundedString<1024>,
4922 D,
4923 val,
4924 decoder,
4925 _inner_offset,
4926 depth
4927 )?;
4928 } else {
4929 unreachable!()
4930 }
4931 }
4932 #[allow(deprecated)]
4933 ordinal => {
4934 for _ in 0..num_handles {
4935 decoder.drop_next_handle()?;
4936 }
4937 *self = StringSelector::__SourceBreaking { unknown_ordinal: ordinal };
4938 }
4939 }
4940 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4941 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4942 }
4943 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4944 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4945 }
4946 Ok(())
4947 }
4948 }
4949
4950 impl fidl::encoding::ValueTypeMarker for SystemActivityEvent {
4951 type Borrowed<'a> = &'a Self;
4952 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4953 value
4954 }
4955 }
4956
4957 unsafe impl fidl::encoding::TypeMarker for SystemActivityEvent {
4958 type Owned = Self;
4959
4960 #[inline(always)]
4961 fn inline_align(_context: fidl::encoding::Context) -> usize {
4962 8
4963 }
4964
4965 #[inline(always)]
4966 fn inline_size(_context: fidl::encoding::Context) -> usize {
4967 16
4968 }
4969 }
4970
4971 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SystemActivityEvent, D>
4972 for &SystemActivityEvent
4973 {
4974 #[inline]
4975 unsafe fn encode(
4976 self,
4977 encoder: &mut fidl::encoding::Encoder<'_, D>,
4978 offset: usize,
4979 _depth: fidl::encoding::Depth,
4980 ) -> fidl::Result<()> {
4981 encoder.debug_check_bounds::<SystemActivityEvent>(offset);
4982 encoder.write_num::<u64>(self.ordinal(), offset);
4983 match self {
4984 SystemActivityEvent::PowerEvent(ref val) => {
4985 fidl::encoding::encode_in_envelope::<PowerEvent, D>(
4986 <PowerEvent as fidl::encoding::ValueTypeMarker>::borrow(val),
4987 encoder,
4988 offset + 8,
4989 _depth,
4990 )
4991 }
4992 SystemActivityEvent::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4993 }
4994 }
4995 }
4996
4997 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SystemActivityEvent {
4998 #[inline(always)]
4999 fn new_empty() -> Self {
5000 Self::__SourceBreaking { unknown_ordinal: 0 }
5001 }
5002
5003 #[inline]
5004 unsafe fn decode(
5005 &mut self,
5006 decoder: &mut fidl::encoding::Decoder<'_, D>,
5007 offset: usize,
5008 mut depth: fidl::encoding::Depth,
5009 ) -> fidl::Result<()> {
5010 decoder.debug_check_bounds::<Self>(offset);
5011 #[allow(unused_variables)]
5012 let next_out_of_line = decoder.next_out_of_line();
5013 let handles_before = decoder.remaining_handles();
5014 let (ordinal, inlined, num_bytes, num_handles) =
5015 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5016
5017 let member_inline_size = match ordinal {
5018 1 => <PowerEvent as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5019 0 => return Err(fidl::Error::UnknownUnionTag),
5020 _ => num_bytes as usize,
5021 };
5022
5023 if inlined != (member_inline_size <= 4) {
5024 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5025 }
5026 let _inner_offset;
5027 if inlined {
5028 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5029 _inner_offset = offset + 8;
5030 } else {
5031 depth.increment()?;
5032 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5033 }
5034 match ordinal {
5035 1 => {
5036 #[allow(irrefutable_let_patterns)]
5037 if let SystemActivityEvent::PowerEvent(_) = self {
5038 } else {
5040 *self = SystemActivityEvent::PowerEvent(fidl::new_empty!(PowerEvent, D));
5042 }
5043 #[allow(irrefutable_let_patterns)]
5044 if let SystemActivityEvent::PowerEvent(ref mut val) = self {
5045 fidl::decode!(PowerEvent, D, val, decoder, _inner_offset, depth)?;
5046 } else {
5047 unreachable!()
5048 }
5049 }
5050 #[allow(deprecated)]
5051 ordinal => {
5052 for _ in 0..num_handles {
5053 decoder.drop_next_handle()?;
5054 }
5055 *self = SystemActivityEvent::__SourceBreaking { unknown_ordinal: ordinal };
5056 }
5057 }
5058 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5060 }
5061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5063 }
5064 Ok(())
5065 }
5066 }
5067
5068 impl fidl::encoding::ValueTypeMarker for TreeNames {
5069 type Borrowed<'a> = &'a Self;
5070 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5071 value
5072 }
5073 }
5074
5075 unsafe impl fidl::encoding::TypeMarker for TreeNames {
5076 type Owned = Self;
5077
5078 #[inline(always)]
5079 fn inline_align(_context: fidl::encoding::Context) -> usize {
5080 8
5081 }
5082
5083 #[inline(always)]
5084 fn inline_size(_context: fidl::encoding::Context) -> usize {
5085 16
5086 }
5087 }
5088
5089 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeNames, D>
5090 for &TreeNames
5091 {
5092 #[inline]
5093 unsafe fn encode(
5094 self,
5095 encoder: &mut fidl::encoding::Encoder<'_, D>,
5096 offset: usize,
5097 _depth: fidl::encoding::Depth,
5098 ) -> fidl::Result<()> {
5099 encoder.debug_check_bounds::<TreeNames>(offset);
5100 encoder.write_num::<u64>(self.ordinal(), offset);
5101 match self {
5102 TreeNames::Some(ref val) => {
5103 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>, D>(
5104 <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::ValueTypeMarker>::borrow(val),
5105 encoder, offset + 8, _depth
5106 )
5107 }
5108 TreeNames::All(ref val) => {
5109 fidl::encoding::encode_in_envelope::<All, D>(
5110 <All as fidl::encoding::ValueTypeMarker>::borrow(val),
5111 encoder, offset + 8, _depth
5112 )
5113 }
5114 TreeNames::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
5115 }
5116 }
5117 }
5118
5119 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeNames {
5120 #[inline(always)]
5121 fn new_empty() -> Self {
5122 Self::__SourceBreaking { unknown_ordinal: 0 }
5123 }
5124
5125 #[inline]
5126 unsafe fn decode(
5127 &mut self,
5128 decoder: &mut fidl::encoding::Decoder<'_, D>,
5129 offset: usize,
5130 mut depth: fidl::encoding::Depth,
5131 ) -> fidl::Result<()> {
5132 decoder.debug_check_bounds::<Self>(offset);
5133 #[allow(unused_variables)]
5134 let next_out_of_line = decoder.next_out_of_line();
5135 let handles_before = decoder.remaining_handles();
5136 let (ordinal, inlined, num_bytes, num_handles) =
5137 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5138
5139 let member_inline_size = match ordinal {
5140 1 => <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5141 2 => <All as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5142 0 => return Err(fidl::Error::UnknownUnionTag),
5143 _ => num_bytes as usize,
5144 };
5145
5146 if inlined != (member_inline_size <= 4) {
5147 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5148 }
5149 let _inner_offset;
5150 if inlined {
5151 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5152 _inner_offset = offset + 8;
5153 } else {
5154 depth.increment()?;
5155 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5156 }
5157 match ordinal {
5158 1 => {
5159 #[allow(irrefutable_let_patterns)]
5160 if let TreeNames::Some(_) = self {
5161 } else {
5163 *self = TreeNames::Some(fidl::new_empty!(
5165 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
5166 D
5167 ));
5168 }
5169 #[allow(irrefutable_let_patterns)]
5170 if let TreeNames::Some(ref mut val) = self {
5171 fidl::decode!(
5172 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
5173 D,
5174 val,
5175 decoder,
5176 _inner_offset,
5177 depth
5178 )?;
5179 } else {
5180 unreachable!()
5181 }
5182 }
5183 2 => {
5184 #[allow(irrefutable_let_patterns)]
5185 if let TreeNames::All(_) = self {
5186 } else {
5188 *self = TreeNames::All(fidl::new_empty!(All, D));
5190 }
5191 #[allow(irrefutable_let_patterns)]
5192 if let TreeNames::All(ref mut val) = self {
5193 fidl::decode!(All, D, val, decoder, _inner_offset, depth)?;
5194 } else {
5195 unreachable!()
5196 }
5197 }
5198 #[allow(deprecated)]
5199 ordinal => {
5200 for _ in 0..num_handles {
5201 decoder.drop_next_handle()?;
5202 }
5203 *self = TreeNames::__SourceBreaking { unknown_ordinal: ordinal };
5204 }
5205 }
5206 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5207 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5208 }
5209 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5210 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5211 }
5212 Ok(())
5213 }
5214 }
5215
5216 impl fidl::encoding::ValueTypeMarker for TreeSelector {
5217 type Borrowed<'a> = &'a Self;
5218 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5219 value
5220 }
5221 }
5222
5223 unsafe impl fidl::encoding::TypeMarker for TreeSelector {
5224 type Owned = Self;
5225
5226 #[inline(always)]
5227 fn inline_align(_context: fidl::encoding::Context) -> usize {
5228 8
5229 }
5230
5231 #[inline(always)]
5232 fn inline_size(_context: fidl::encoding::Context) -> usize {
5233 16
5234 }
5235 }
5236
5237 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeSelector, D>
5238 for &TreeSelector
5239 {
5240 #[inline]
5241 unsafe fn encode(
5242 self,
5243 encoder: &mut fidl::encoding::Encoder<'_, D>,
5244 offset: usize,
5245 _depth: fidl::encoding::Depth,
5246 ) -> fidl::Result<()> {
5247 encoder.debug_check_bounds::<TreeSelector>(offset);
5248 encoder.write_num::<u64>(self.ordinal(), offset);
5249 match self {
5250 TreeSelector::SubtreeSelector(ref val) => {
5251 fidl::encoding::encode_in_envelope::<SubtreeSelector, D>(
5252 <SubtreeSelector as fidl::encoding::ValueTypeMarker>::borrow(val),
5253 encoder,
5254 offset + 8,
5255 _depth,
5256 )
5257 }
5258 TreeSelector::PropertySelector(ref val) => {
5259 fidl::encoding::encode_in_envelope::<PropertySelector, D>(
5260 <PropertySelector as fidl::encoding::ValueTypeMarker>::borrow(val),
5261 encoder,
5262 offset + 8,
5263 _depth,
5264 )
5265 }
5266 TreeSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
5267 }
5268 }
5269 }
5270
5271 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeSelector {
5272 #[inline(always)]
5273 fn new_empty() -> Self {
5274 Self::__SourceBreaking { unknown_ordinal: 0 }
5275 }
5276
5277 #[inline]
5278 unsafe fn decode(
5279 &mut self,
5280 decoder: &mut fidl::encoding::Decoder<'_, D>,
5281 offset: usize,
5282 mut depth: fidl::encoding::Depth,
5283 ) -> fidl::Result<()> {
5284 decoder.debug_check_bounds::<Self>(offset);
5285 #[allow(unused_variables)]
5286 let next_out_of_line = decoder.next_out_of_line();
5287 let handles_before = decoder.remaining_handles();
5288 let (ordinal, inlined, num_bytes, num_handles) =
5289 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5290
5291 let member_inline_size = match ordinal {
5292 1 => <SubtreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5293 2 => <PropertySelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5294 0 => return Err(fidl::Error::UnknownUnionTag),
5295 _ => num_bytes as usize,
5296 };
5297
5298 if inlined != (member_inline_size <= 4) {
5299 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5300 }
5301 let _inner_offset;
5302 if inlined {
5303 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5304 _inner_offset = offset + 8;
5305 } else {
5306 depth.increment()?;
5307 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5308 }
5309 match ordinal {
5310 1 => {
5311 #[allow(irrefutable_let_patterns)]
5312 if let TreeSelector::SubtreeSelector(_) = self {
5313 } else {
5315 *self = TreeSelector::SubtreeSelector(fidl::new_empty!(SubtreeSelector, D));
5317 }
5318 #[allow(irrefutable_let_patterns)]
5319 if let TreeSelector::SubtreeSelector(ref mut val) = self {
5320 fidl::decode!(SubtreeSelector, D, val, decoder, _inner_offset, depth)?;
5321 } else {
5322 unreachable!()
5323 }
5324 }
5325 2 => {
5326 #[allow(irrefutable_let_patterns)]
5327 if let TreeSelector::PropertySelector(_) = self {
5328 } else {
5330 *self =
5332 TreeSelector::PropertySelector(fidl::new_empty!(PropertySelector, D));
5333 }
5334 #[allow(irrefutable_let_patterns)]
5335 if let TreeSelector::PropertySelector(ref mut val) = self {
5336 fidl::decode!(PropertySelector, D, val, decoder, _inner_offset, depth)?;
5337 } else {
5338 unreachable!()
5339 }
5340 }
5341 #[allow(deprecated)]
5342 ordinal => {
5343 for _ in 0..num_handles {
5344 decoder.drop_next_handle()?;
5345 }
5346 *self = TreeSelector::__SourceBreaking { unknown_ordinal: ordinal };
5347 }
5348 }
5349 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5350 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5351 }
5352 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5353 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5354 }
5355 Ok(())
5356 }
5357 }
5358}