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