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