1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const COMPONENT_URL_ARG_NAME: &str = "$__url";
12
13pub const MAXIMUM_ENTRIES_PER_BATCH: u16 = 64;
16
17pub const MAXIMUM_RAW_SELECTOR_LENGTH: u16 = 1024;
20
21pub const MAX_DATA_HIERARCHY_DEPTH: u16 = 100;
22
23pub const MAX_LOG_SELECTORS: u8 = 64;
25
26pub const MAX_MONIKER_SEGMENTS: u16 = 25;
27
28pub const MAX_SAMPLE_PARAMETERS_PER_SET: u64 = 100;
30
31pub const MAX_STRING_SELECTOR_LENGTH: u16 = 1024;
32
33pub const MONIKER_ARG_NAME: &str = "$__moniker";
34
35pub const ROLLED_OUT_ARG_NAME: &str = "$__rolled_out";
36
37#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
40pub enum ConfigurationError {
41 SamplePeriodTooSmall,
44 SampleParametersInvalid,
47 InvalidSelectors,
50 #[doc(hidden)]
51 __SourceBreaking { unknown_ordinal: u32 },
52}
53
54#[macro_export]
56macro_rules! ConfigurationErrorUnknown {
57 () => {
58 _
59 };
60}
61
62impl ConfigurationError {
63 #[inline]
64 pub fn from_primitive(prim: u32) -> Option<Self> {
65 match prim {
66 1 => Some(Self::SamplePeriodTooSmall),
67 2 => Some(Self::SampleParametersInvalid),
68 3 => Some(Self::InvalidSelectors),
69 _ => None,
70 }
71 }
72
73 #[inline]
74 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
75 match prim {
76 1 => Self::SamplePeriodTooSmall,
77 2 => Self::SampleParametersInvalid,
78 3 => Self::InvalidSelectors,
79 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
80 }
81 }
82
83 #[inline]
84 pub fn unknown() -> Self {
85 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
86 }
87
88 #[inline]
89 pub const fn into_primitive(self) -> u32 {
90 match self {
91 Self::SamplePeriodTooSmall => 1,
92 Self::SampleParametersInvalid => 2,
93 Self::InvalidSelectors => 3,
94 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
95 }
96 }
97
98 #[inline]
99 pub fn is_unknown(&self) -> bool {
100 match self {
101 Self::__SourceBreaking { unknown_ordinal: _ } => true,
102 _ => false,
103 }
104 }
105}
106
107#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
108#[repr(u8)]
109pub enum DataType {
110 Inspect = 1,
112 Logs = 3,
114}
115
116impl DataType {
117 #[inline]
118 pub fn from_primitive(prim: u8) -> Option<Self> {
119 match prim {
120 1 => Some(Self::Inspect),
121 3 => Some(Self::Logs),
122 _ => None,
123 }
124 }
125
126 #[inline]
127 pub const fn into_primitive(self) -> u8 {
128 self as u8
129 }
130}
131
132#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
135#[repr(u32)]
136pub enum Format {
137 Json = 1,
140 Text = 2,
142 Cbor = 3,
145 Fxt = 4,
149}
150
151impl Format {
152 #[inline]
153 pub fn from_primitive(prim: u32) -> Option<Self> {
154 match prim {
155 1 => Some(Self::Json),
156 2 => Some(Self::Text),
157 3 => Some(Self::Cbor),
158 4 => Some(Self::Fxt),
159 _ => None,
160 }
161 }
162
163 #[inline]
164 pub const fn into_primitive(self) -> u32 {
165 self as u32
166 }
167}
168
169#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
172#[repr(u32)]
173pub enum ReaderError {
174 Io = 1,
175}
176
177impl ReaderError {
178 #[inline]
179 pub fn from_primitive(prim: u32) -> Option<Self> {
180 match prim {
181 1 => Some(Self::Io),
182 _ => None,
183 }
184 }
185
186 #[inline]
187 pub const fn into_primitive(self) -> u32 {
188 self as u32
189 }
190}
191
192#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
197pub enum RuntimeError {
198 BatchIteratorFailed,
201 #[doc(hidden)]
202 __SourceBreaking { unknown_ordinal: u32 },
203}
204
205#[macro_export]
207macro_rules! RuntimeErrorUnknown {
208 () => {
209 _
210 };
211}
212
213impl RuntimeError {
214 #[inline]
215 pub fn from_primitive(prim: u32) -> Option<Self> {
216 match prim {
217 1 => Some(Self::BatchIteratorFailed),
218 _ => None,
219 }
220 }
221
222 #[inline]
223 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
224 match prim {
225 1 => Self::BatchIteratorFailed,
226 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
227 }
228 }
229
230 #[inline]
231 pub fn unknown() -> Self {
232 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
233 }
234
235 #[inline]
236 pub const fn into_primitive(self) -> u32 {
237 match self {
238 Self::BatchIteratorFailed => 1,
239 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
240 }
241 }
242
243 #[inline]
244 pub fn is_unknown(&self) -> bool {
245 match self {
246 Self::__SourceBreaking { unknown_ordinal: _ } => true,
247 _ => false,
248 }
249 }
250}
251
252#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
255pub enum SampleStrategy {
256 OnDiff,
260 Always,
265 #[doc(hidden)]
266 __SourceBreaking { unknown_ordinal: u8 },
267}
268
269#[macro_export]
271macro_rules! SampleStrategyUnknown {
272 () => {
273 _
274 };
275}
276
277impl SampleStrategy {
278 #[inline]
279 pub fn from_primitive(prim: u8) -> Option<Self> {
280 match prim {
281 1 => Some(Self::OnDiff),
282 2 => Some(Self::Always),
283 _ => None,
284 }
285 }
286
287 #[inline]
288 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
289 match prim {
290 1 => Self::OnDiff,
291 2 => Self::Always,
292 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
293 }
294 }
295
296 #[inline]
297 pub fn unknown() -> Self {
298 Self::__SourceBreaking { unknown_ordinal: 0xff }
299 }
300
301 #[inline]
302 pub const fn into_primitive(self) -> u8 {
303 match self {
304 Self::OnDiff => 1,
305 Self::Always => 2,
306 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
307 }
308 }
309
310 #[inline]
311 pub fn is_unknown(&self) -> bool {
312 match self {
313 Self::__SourceBreaking { unknown_ordinal: _ } => true,
314 _ => false,
315 }
316 }
317}
318
319#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
321#[repr(u8)]
322pub enum StreamMode {
323 Snapshot = 1,
326 SnapshotThenSubscribe = 2,
330 Subscribe = 3,
333}
334
335impl StreamMode {
336 #[inline]
337 pub fn from_primitive(prim: u8) -> Option<Self> {
338 match prim {
339 1 => Some(Self::Snapshot),
340 2 => Some(Self::SnapshotThenSubscribe),
341 3 => Some(Self::Subscribe),
342 _ => None,
343 }
344 }
345
346 #[inline]
347 pub const fn into_primitive(self) -> u8 {
348 self as u8
349 }
350}
351
352#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
353pub struct All;
354
355impl fidl::Persistable for All {}
356
357#[derive(Clone, Debug, PartialEq)]
358pub struct LogInterestSelector {
359 pub selector: ComponentSelector,
361 pub interest: fidl_fuchsia_diagnostics_types__common::Interest,
363}
364
365impl fidl::Persistable for LogInterestSelector {}
366
367#[derive(Clone, Debug, PartialEq)]
370pub struct PropertySelector {
371 pub node_path: Vec<StringSelector>,
384 pub target_properties: StringSelector,
390}
391
392impl fidl::Persistable for PropertySelector {}
393
394#[derive(Clone, Debug, PartialEq)]
397pub struct SubtreeSelector {
398 pub node_path: Vec<StringSelector>,
411}
412
413impl fidl::Persistable for SubtreeSelector {}
414
415#[derive(Clone, Debug, Default, PartialEq)]
434pub struct ComponentSelector {
435 pub moniker_segments: Option<Vec<StringSelector>>,
443 #[doc(hidden)]
444 pub __source_breaking: fidl::marker::SourceBreaking,
445}
446
447impl fidl::Persistable for ComponentSelector {}
448
449#[derive(Clone, Debug, Default, PartialEq)]
450pub struct LogSettingsSetComponentInterestRequest {
451 pub selectors: Option<Vec<LogInterestSelector>>,
453 pub persist: Option<bool>,
456 #[doc(hidden)]
457 pub __source_breaking: fidl::marker::SourceBreaking,
458}
459
460impl fidl::Persistable for LogSettingsSetComponentInterestRequest {}
461
462#[derive(Clone, Debug, Default, PartialEq)]
463pub struct LogStreamOptions {
464 pub mode: Option<StreamMode>,
466 #[doc(hidden)]
467 pub __source_breaking: fidl::marker::SourceBreaking,
468}
469
470impl fidl::Persistable for LogStreamOptions {}
471
472#[derive(Clone, Debug, Default, PartialEq)]
474pub struct PerformanceConfiguration {
475 pub max_aggregate_content_size_bytes: Option<u64>,
481 pub batch_retrieval_timeout_seconds: Option<i64>,
490 #[doc(hidden)]
491 pub __source_breaking: fidl::marker::SourceBreaking,
492}
493
494impl fidl::Persistable for PerformanceConfiguration {}
495
496#[derive(Clone, Debug, Default, PartialEq)]
497pub struct SampleDatum {
498 pub selector: Option<SelectorArgument>,
500 pub strategy: Option<SampleStrategy>,
502 pub interval_secs: Option<i64>,
520 #[doc(hidden)]
521 pub __source_breaking: fidl::marker::SourceBreaking,
522}
523
524impl fidl::Persistable for SampleDatum {}
525
526#[derive(Clone, Debug, Default, PartialEq)]
528pub struct SampleParameters {
529 pub data: Option<Vec<SampleDatum>>,
535 #[doc(hidden)]
536 pub __source_breaking: fidl::marker::SourceBreaking,
537}
538
539impl fidl::Persistable for SampleParameters {}
540
541#[derive(Clone, Debug, Default, PartialEq)]
555pub struct Selector {
556 pub component_selector: Option<ComponentSelector>,
559 pub tree_selector: Option<TreeSelector>,
563 pub tree_names: Option<TreeNames>,
569 #[doc(hidden)]
570 pub __source_breaking: fidl::marker::SourceBreaking,
571}
572
573impl fidl::Persistable for Selector {}
574
575#[derive(Clone, Debug, Default, PartialEq)]
577pub struct StreamParameters {
578 pub data_type: Option<DataType>,
582 pub stream_mode: Option<StreamMode>,
586 pub format: Option<Format>,
590 pub client_selector_configuration: Option<ClientSelectorConfiguration>,
595 pub batch_retrieval_timeout_seconds: Option<i64>,
604 pub performance_configuration: Option<PerformanceConfiguration>,
607 #[doc(hidden)]
608 pub __source_breaking: fidl::marker::SourceBreaking,
609}
610
611impl fidl::Persistable for StreamParameters {}
612
613#[derive(Clone, Debug)]
614pub enum ClientSelectorConfiguration {
615 Selectors(Vec<SelectorArgument>),
619 SelectAll(bool),
622 #[doc(hidden)]
623 __SourceBreaking { unknown_ordinal: u64 },
624}
625
626#[macro_export]
628macro_rules! ClientSelectorConfigurationUnknown {
629 () => {
630 _
631 };
632}
633
634impl PartialEq for ClientSelectorConfiguration {
636 fn eq(&self, other: &Self) -> bool {
637 match (self, other) {
638 (Self::Selectors(x), Self::Selectors(y)) => *x == *y,
639 (Self::SelectAll(x), Self::SelectAll(y)) => *x == *y,
640 _ => false,
641 }
642 }
643}
644
645impl ClientSelectorConfiguration {
646 #[inline]
647 pub fn ordinal(&self) -> u64 {
648 match *self {
649 Self::Selectors(_) => 1,
650 Self::SelectAll(_) => 2,
651 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
652 }
653 }
654
655 #[inline]
656 pub fn unknown_variant_for_testing() -> Self {
657 Self::__SourceBreaking { unknown_ordinal: 0 }
658 }
659
660 #[inline]
661 pub fn is_unknown(&self) -> bool {
662 match self {
663 Self::__SourceBreaking { .. } => true,
664 _ => false,
665 }
666 }
667}
668
669impl fidl::Persistable for ClientSelectorConfiguration {}
670
671#[derive(Clone, Debug)]
674pub enum SelectorArgument {
675 StructuredSelector(Selector),
678 RawSelector(String),
685 #[doc(hidden)]
686 __SourceBreaking { unknown_ordinal: u64 },
687}
688
689#[macro_export]
691macro_rules! SelectorArgumentUnknown {
692 () => {
693 _
694 };
695}
696
697impl PartialEq for SelectorArgument {
699 fn eq(&self, other: &Self) -> bool {
700 match (self, other) {
701 (Self::StructuredSelector(x), Self::StructuredSelector(y)) => *x == *y,
702 (Self::RawSelector(x), Self::RawSelector(y)) => *x == *y,
703 _ => false,
704 }
705 }
706}
707
708impl SelectorArgument {
709 #[inline]
710 pub fn ordinal(&self) -> u64 {
711 match *self {
712 Self::StructuredSelector(_) => 1,
713 Self::RawSelector(_) => 2,
714 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
715 }
716 }
717
718 #[inline]
719 pub fn unknown_variant_for_testing() -> Self {
720 Self::__SourceBreaking { unknown_ordinal: 0 }
721 }
722
723 #[inline]
724 pub fn is_unknown(&self) -> bool {
725 match self {
726 Self::__SourceBreaking { .. } => true,
727 _ => false,
728 }
729 }
730}
731
732impl fidl::Persistable for SelectorArgument {}
733
734#[derive(Clone, Debug)]
737pub enum StringSelector {
738 StringPattern(String),
758 ExactMatch(String),
759 #[doc(hidden)]
760 __SourceBreaking {
761 unknown_ordinal: u64,
762 },
763}
764
765#[macro_export]
767macro_rules! StringSelectorUnknown {
768 () => {
769 _
770 };
771}
772
773impl PartialEq for StringSelector {
775 fn eq(&self, other: &Self) -> bool {
776 match (self, other) {
777 (Self::StringPattern(x), Self::StringPattern(y)) => *x == *y,
778 (Self::ExactMatch(x), Self::ExactMatch(y)) => *x == *y,
779 _ => false,
780 }
781 }
782}
783
784impl StringSelector {
785 #[inline]
786 pub fn ordinal(&self) -> u64 {
787 match *self {
788 Self::StringPattern(_) => 1,
789 Self::ExactMatch(_) => 2,
790 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
791 }
792 }
793
794 #[inline]
795 pub fn unknown_variant_for_testing() -> Self {
796 Self::__SourceBreaking { unknown_ordinal: 0 }
797 }
798
799 #[inline]
800 pub fn is_unknown(&self) -> bool {
801 match self {
802 Self::__SourceBreaking { .. } => true,
803 _ => false,
804 }
805 }
806}
807
808impl fidl::Persistable for StringSelector {}
809
810#[derive(Clone, Debug)]
814pub enum TreeNames {
815 Some(Vec<String>),
817 All(All),
820 #[doc(hidden)]
821 __SourceBreaking { unknown_ordinal: u64 },
822}
823
824#[macro_export]
826macro_rules! TreeNamesUnknown {
827 () => {
828 _
829 };
830}
831
832impl PartialEq for TreeNames {
834 fn eq(&self, other: &Self) -> bool {
835 match (self, other) {
836 (Self::Some(x), Self::Some(y)) => *x == *y,
837 (Self::All(x), Self::All(y)) => *x == *y,
838 _ => false,
839 }
840 }
841}
842
843impl TreeNames {
844 #[inline]
845 pub fn ordinal(&self) -> u64 {
846 match *self {
847 Self::Some(_) => 1,
848 Self::All(_) => 2,
849 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
850 }
851 }
852
853 #[inline]
854 pub fn unknown_variant_for_testing() -> Self {
855 Self::__SourceBreaking { unknown_ordinal: 0 }
856 }
857
858 #[inline]
859 pub fn is_unknown(&self) -> bool {
860 match self {
861 Self::__SourceBreaking { .. } => true,
862 _ => false,
863 }
864 }
865}
866
867impl fidl::Persistable for TreeNames {}
868
869#[derive(Clone, Debug)]
872pub enum TreeSelector {
873 SubtreeSelector(SubtreeSelector),
876 PropertySelector(PropertySelector),
879 #[doc(hidden)]
880 __SourceBreaking { unknown_ordinal: u64 },
881}
882
883#[macro_export]
885macro_rules! TreeSelectorUnknown {
886 () => {
887 _
888 };
889}
890
891impl PartialEq for TreeSelector {
893 fn eq(&self, other: &Self) -> bool {
894 match (self, other) {
895 (Self::SubtreeSelector(x), Self::SubtreeSelector(y)) => *x == *y,
896 (Self::PropertySelector(x), Self::PropertySelector(y)) => *x == *y,
897 _ => false,
898 }
899 }
900}
901
902impl TreeSelector {
903 #[inline]
904 pub fn ordinal(&self) -> u64 {
905 match *self {
906 Self::SubtreeSelector(_) => 1,
907 Self::PropertySelector(_) => 2,
908 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
909 }
910 }
911
912 #[inline]
913 pub fn unknown_variant_for_testing() -> Self {
914 Self::__SourceBreaking { unknown_ordinal: 0 }
915 }
916
917 #[inline]
918 pub fn is_unknown(&self) -> bool {
919 match self {
920 Self::__SourceBreaking { .. } => true,
921 _ => false,
922 }
923 }
924}
925
926impl fidl::Persistable for TreeSelector {}
927
928pub mod archive_accessor_ordinals {
929 pub const STREAM_DIAGNOSTICS: u64 = 0x20c73e2ecd653c3e;
930 pub const WAIT_FOR_READY: u64 = 0x122963198011bd24;
931}
932
933pub mod batch_iterator_ordinals {
934 pub const GET_NEXT: u64 = 0x781986486c6254a5;
935 pub const WAIT_FOR_READY: u64 = 0x70598ee271597603;
936}
937
938pub mod log_flusher_ordinals {
939 pub const WAIT_UNTIL_FLUSHED: u64 = 0x7dc4892e46748b5b;
940}
941
942pub mod log_settings_ordinals {
943 pub const SET_COMPONENT_INTEREST: u64 = 0x35f7004d2367f6c1;
944}
945
946pub mod log_stream_ordinals {
947 pub const CONNECT: u64 = 0x745eb34f10d51a88;
948}
949
950pub mod sample_ordinals {
951 pub const SET: u64 = 0x421a79bdbf45418e;
952 pub const COMMIT: u64 = 0x25a3bc5f26787e9b;
953}
954
955pub mod sample_sink_ordinals {
956 pub const ON_SAMPLE_READIED: u64 = 0x39096d97ed03335f;
957 pub const ON_NOW_OR_NEVER: u64 = 0x3dc94ca1e1290894;
958}
959
960mod internal {
961 use super::*;
962 unsafe impl fidl::encoding::TypeMarker for ConfigurationError {
963 type Owned = Self;
964
965 #[inline(always)]
966 fn inline_align(_context: fidl::encoding::Context) -> usize {
967 std::mem::align_of::<u32>()
968 }
969
970 #[inline(always)]
971 fn inline_size(_context: fidl::encoding::Context) -> usize {
972 std::mem::size_of::<u32>()
973 }
974
975 #[inline(always)]
976 fn encode_is_copy() -> bool {
977 false
978 }
979
980 #[inline(always)]
981 fn decode_is_copy() -> bool {
982 false
983 }
984 }
985
986 impl fidl::encoding::ValueTypeMarker for ConfigurationError {
987 type Borrowed<'a> = Self;
988 #[inline(always)]
989 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
990 *value
991 }
992 }
993
994 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
995 for ConfigurationError
996 {
997 #[inline]
998 unsafe fn encode(
999 self,
1000 encoder: &mut fidl::encoding::Encoder<'_, D>,
1001 offset: usize,
1002 _depth: fidl::encoding::Depth,
1003 ) -> fidl::Result<()> {
1004 encoder.debug_check_bounds::<Self>(offset);
1005 encoder.write_num(self.into_primitive(), offset);
1006 Ok(())
1007 }
1008 }
1009
1010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigurationError {
1011 #[inline(always)]
1012 fn new_empty() -> Self {
1013 Self::unknown()
1014 }
1015
1016 #[inline]
1017 unsafe fn decode(
1018 &mut self,
1019 decoder: &mut fidl::encoding::Decoder<'_, D>,
1020 offset: usize,
1021 _depth: fidl::encoding::Depth,
1022 ) -> fidl::Result<()> {
1023 decoder.debug_check_bounds::<Self>(offset);
1024 let prim = decoder.read_num::<u32>(offset);
1025
1026 *self = Self::from_primitive_allow_unknown(prim);
1027 Ok(())
1028 }
1029 }
1030 unsafe impl fidl::encoding::TypeMarker for DataType {
1031 type Owned = Self;
1032
1033 #[inline(always)]
1034 fn inline_align(_context: fidl::encoding::Context) -> usize {
1035 std::mem::align_of::<u8>()
1036 }
1037
1038 #[inline(always)]
1039 fn inline_size(_context: fidl::encoding::Context) -> usize {
1040 std::mem::size_of::<u8>()
1041 }
1042
1043 #[inline(always)]
1044 fn encode_is_copy() -> bool {
1045 true
1046 }
1047
1048 #[inline(always)]
1049 fn decode_is_copy() -> bool {
1050 false
1051 }
1052 }
1053
1054 impl fidl::encoding::ValueTypeMarker for DataType {
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> for DataType {
1063 #[inline]
1064 unsafe fn encode(
1065 self,
1066 encoder: &mut fidl::encoding::Encoder<'_, D>,
1067 offset: usize,
1068 _depth: fidl::encoding::Depth,
1069 ) -> fidl::Result<()> {
1070 encoder.debug_check_bounds::<Self>(offset);
1071 encoder.write_num(self.into_primitive(), offset);
1072 Ok(())
1073 }
1074 }
1075
1076 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DataType {
1077 #[inline(always)]
1078 fn new_empty() -> Self {
1079 Self::Inspect
1080 }
1081
1082 #[inline]
1083 unsafe fn decode(
1084 &mut self,
1085 decoder: &mut fidl::encoding::Decoder<'_, D>,
1086 offset: usize,
1087 _depth: fidl::encoding::Depth,
1088 ) -> fidl::Result<()> {
1089 decoder.debug_check_bounds::<Self>(offset);
1090 let prim = decoder.read_num::<u8>(offset);
1091
1092 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1093 Ok(())
1094 }
1095 }
1096 unsafe impl fidl::encoding::TypeMarker for Format {
1097 type Owned = Self;
1098
1099 #[inline(always)]
1100 fn inline_align(_context: fidl::encoding::Context) -> usize {
1101 std::mem::align_of::<u32>()
1102 }
1103
1104 #[inline(always)]
1105 fn inline_size(_context: fidl::encoding::Context) -> usize {
1106 std::mem::size_of::<u32>()
1107 }
1108
1109 #[inline(always)]
1110 fn encode_is_copy() -> bool {
1111 true
1112 }
1113
1114 #[inline(always)]
1115 fn decode_is_copy() -> bool {
1116 false
1117 }
1118 }
1119
1120 impl fidl::encoding::ValueTypeMarker for Format {
1121 type Borrowed<'a> = Self;
1122 #[inline(always)]
1123 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1124 *value
1125 }
1126 }
1127
1128 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Format {
1129 #[inline]
1130 unsafe fn encode(
1131 self,
1132 encoder: &mut fidl::encoding::Encoder<'_, D>,
1133 offset: usize,
1134 _depth: fidl::encoding::Depth,
1135 ) -> fidl::Result<()> {
1136 encoder.debug_check_bounds::<Self>(offset);
1137 encoder.write_num(self.into_primitive(), offset);
1138 Ok(())
1139 }
1140 }
1141
1142 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
1143 #[inline(always)]
1144 fn new_empty() -> Self {
1145 Self::Json
1146 }
1147
1148 #[inline]
1149 unsafe fn decode(
1150 &mut self,
1151 decoder: &mut fidl::encoding::Decoder<'_, D>,
1152 offset: usize,
1153 _depth: fidl::encoding::Depth,
1154 ) -> fidl::Result<()> {
1155 decoder.debug_check_bounds::<Self>(offset);
1156 let prim = decoder.read_num::<u32>(offset);
1157
1158 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1159 Ok(())
1160 }
1161 }
1162 unsafe impl fidl::encoding::TypeMarker for ReaderError {
1163 type Owned = Self;
1164
1165 #[inline(always)]
1166 fn inline_align(_context: fidl::encoding::Context) -> usize {
1167 std::mem::align_of::<u32>()
1168 }
1169
1170 #[inline(always)]
1171 fn inline_size(_context: fidl::encoding::Context) -> usize {
1172 std::mem::size_of::<u32>()
1173 }
1174
1175 #[inline(always)]
1176 fn encode_is_copy() -> bool {
1177 true
1178 }
1179
1180 #[inline(always)]
1181 fn decode_is_copy() -> bool {
1182 false
1183 }
1184 }
1185
1186 impl fidl::encoding::ValueTypeMarker for ReaderError {
1187 type Borrowed<'a> = Self;
1188 #[inline(always)]
1189 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1190 *value
1191 }
1192 }
1193
1194 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ReaderError {
1195 #[inline]
1196 unsafe fn encode(
1197 self,
1198 encoder: &mut fidl::encoding::Encoder<'_, D>,
1199 offset: usize,
1200 _depth: fidl::encoding::Depth,
1201 ) -> fidl::Result<()> {
1202 encoder.debug_check_bounds::<Self>(offset);
1203 encoder.write_num(self.into_primitive(), offset);
1204 Ok(())
1205 }
1206 }
1207
1208 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ReaderError {
1209 #[inline(always)]
1210 fn new_empty() -> Self {
1211 Self::Io
1212 }
1213
1214 #[inline]
1215 unsafe fn decode(
1216 &mut self,
1217 decoder: &mut fidl::encoding::Decoder<'_, D>,
1218 offset: usize,
1219 _depth: fidl::encoding::Depth,
1220 ) -> fidl::Result<()> {
1221 decoder.debug_check_bounds::<Self>(offset);
1222 let prim = decoder.read_num::<u32>(offset);
1223
1224 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1225 Ok(())
1226 }
1227 }
1228 unsafe impl fidl::encoding::TypeMarker for RuntimeError {
1229 type Owned = Self;
1230
1231 #[inline(always)]
1232 fn inline_align(_context: fidl::encoding::Context) -> usize {
1233 std::mem::align_of::<u32>()
1234 }
1235
1236 #[inline(always)]
1237 fn inline_size(_context: fidl::encoding::Context) -> usize {
1238 std::mem::size_of::<u32>()
1239 }
1240
1241 #[inline(always)]
1242 fn encode_is_copy() -> bool {
1243 false
1244 }
1245
1246 #[inline(always)]
1247 fn decode_is_copy() -> bool {
1248 false
1249 }
1250 }
1251
1252 impl fidl::encoding::ValueTypeMarker for RuntimeError {
1253 type Borrowed<'a> = Self;
1254 #[inline(always)]
1255 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1256 *value
1257 }
1258 }
1259
1260 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for RuntimeError {
1261 #[inline]
1262 unsafe fn encode(
1263 self,
1264 encoder: &mut fidl::encoding::Encoder<'_, D>,
1265 offset: usize,
1266 _depth: fidl::encoding::Depth,
1267 ) -> fidl::Result<()> {
1268 encoder.debug_check_bounds::<Self>(offset);
1269 encoder.write_num(self.into_primitive(), offset);
1270 Ok(())
1271 }
1272 }
1273
1274 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RuntimeError {
1275 #[inline(always)]
1276 fn new_empty() -> Self {
1277 Self::unknown()
1278 }
1279
1280 #[inline]
1281 unsafe fn decode(
1282 &mut self,
1283 decoder: &mut fidl::encoding::Decoder<'_, D>,
1284 offset: usize,
1285 _depth: fidl::encoding::Depth,
1286 ) -> fidl::Result<()> {
1287 decoder.debug_check_bounds::<Self>(offset);
1288 let prim = decoder.read_num::<u32>(offset);
1289
1290 *self = Self::from_primitive_allow_unknown(prim);
1291 Ok(())
1292 }
1293 }
1294 unsafe impl fidl::encoding::TypeMarker for SampleStrategy {
1295 type Owned = Self;
1296
1297 #[inline(always)]
1298 fn inline_align(_context: fidl::encoding::Context) -> usize {
1299 std::mem::align_of::<u8>()
1300 }
1301
1302 #[inline(always)]
1303 fn inline_size(_context: fidl::encoding::Context) -> usize {
1304 std::mem::size_of::<u8>()
1305 }
1306
1307 #[inline(always)]
1308 fn encode_is_copy() -> bool {
1309 false
1310 }
1311
1312 #[inline(always)]
1313 fn decode_is_copy() -> bool {
1314 false
1315 }
1316 }
1317
1318 impl fidl::encoding::ValueTypeMarker for SampleStrategy {
1319 type Borrowed<'a> = Self;
1320 #[inline(always)]
1321 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1322 *value
1323 }
1324 }
1325
1326 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SampleStrategy {
1327 #[inline]
1328 unsafe fn encode(
1329 self,
1330 encoder: &mut fidl::encoding::Encoder<'_, D>,
1331 offset: usize,
1332 _depth: fidl::encoding::Depth,
1333 ) -> fidl::Result<()> {
1334 encoder.debug_check_bounds::<Self>(offset);
1335 encoder.write_num(self.into_primitive(), offset);
1336 Ok(())
1337 }
1338 }
1339
1340 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleStrategy {
1341 #[inline(always)]
1342 fn new_empty() -> Self {
1343 Self::unknown()
1344 }
1345
1346 #[inline]
1347 unsafe fn decode(
1348 &mut self,
1349 decoder: &mut fidl::encoding::Decoder<'_, D>,
1350 offset: usize,
1351 _depth: fidl::encoding::Depth,
1352 ) -> fidl::Result<()> {
1353 decoder.debug_check_bounds::<Self>(offset);
1354 let prim = decoder.read_num::<u8>(offset);
1355
1356 *self = Self::from_primitive_allow_unknown(prim);
1357 Ok(())
1358 }
1359 }
1360 unsafe impl fidl::encoding::TypeMarker for StreamMode {
1361 type Owned = Self;
1362
1363 #[inline(always)]
1364 fn inline_align(_context: fidl::encoding::Context) -> usize {
1365 std::mem::align_of::<u8>()
1366 }
1367
1368 #[inline(always)]
1369 fn inline_size(_context: fidl::encoding::Context) -> usize {
1370 std::mem::size_of::<u8>()
1371 }
1372
1373 #[inline(always)]
1374 fn encode_is_copy() -> bool {
1375 true
1376 }
1377
1378 #[inline(always)]
1379 fn decode_is_copy() -> bool {
1380 false
1381 }
1382 }
1383
1384 impl fidl::encoding::ValueTypeMarker for StreamMode {
1385 type Borrowed<'a> = Self;
1386 #[inline(always)]
1387 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1388 *value
1389 }
1390 }
1391
1392 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamMode {
1393 #[inline]
1394 unsafe fn encode(
1395 self,
1396 encoder: &mut fidl::encoding::Encoder<'_, D>,
1397 offset: usize,
1398 _depth: fidl::encoding::Depth,
1399 ) -> fidl::Result<()> {
1400 encoder.debug_check_bounds::<Self>(offset);
1401 encoder.write_num(self.into_primitive(), offset);
1402 Ok(())
1403 }
1404 }
1405
1406 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamMode {
1407 #[inline(always)]
1408 fn new_empty() -> Self {
1409 Self::Snapshot
1410 }
1411
1412 #[inline]
1413 unsafe fn decode(
1414 &mut self,
1415 decoder: &mut fidl::encoding::Decoder<'_, D>,
1416 offset: usize,
1417 _depth: fidl::encoding::Depth,
1418 ) -> fidl::Result<()> {
1419 decoder.debug_check_bounds::<Self>(offset);
1420 let prim = decoder.read_num::<u8>(offset);
1421
1422 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1423 Ok(())
1424 }
1425 }
1426
1427 impl fidl::encoding::ValueTypeMarker for All {
1428 type Borrowed<'a> = &'a Self;
1429 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1430 value
1431 }
1432 }
1433
1434 unsafe impl fidl::encoding::TypeMarker for All {
1435 type Owned = Self;
1436
1437 #[inline(always)]
1438 fn inline_align(_context: fidl::encoding::Context) -> usize {
1439 1
1440 }
1441
1442 #[inline(always)]
1443 fn inline_size(_context: fidl::encoding::Context) -> usize {
1444 1
1445 }
1446 }
1447
1448 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<All, D> for &All {
1449 #[inline]
1450 unsafe fn encode(
1451 self,
1452 encoder: &mut fidl::encoding::Encoder<'_, D>,
1453 offset: usize,
1454 _depth: fidl::encoding::Depth,
1455 ) -> fidl::Result<()> {
1456 encoder.debug_check_bounds::<All>(offset);
1457 encoder.write_num(0u8, offset);
1458 Ok(())
1459 }
1460 }
1461
1462 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for All {
1463 #[inline(always)]
1464 fn new_empty() -> Self {
1465 Self
1466 }
1467
1468 #[inline]
1469 unsafe fn decode(
1470 &mut self,
1471 decoder: &mut fidl::encoding::Decoder<'_, D>,
1472 offset: usize,
1473 _depth: fidl::encoding::Depth,
1474 ) -> fidl::Result<()> {
1475 decoder.debug_check_bounds::<Self>(offset);
1476 match decoder.read_num::<u8>(offset) {
1477 0 => Ok(()),
1478 _ => Err(fidl::Error::Invalid),
1479 }
1480 }
1481 }
1482
1483 impl fidl::encoding::ValueTypeMarker for LogInterestSelector {
1484 type Borrowed<'a> = &'a Self;
1485 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1486 value
1487 }
1488 }
1489
1490 unsafe impl fidl::encoding::TypeMarker for LogInterestSelector {
1491 type Owned = Self;
1492
1493 #[inline(always)]
1494 fn inline_align(_context: fidl::encoding::Context) -> usize {
1495 8
1496 }
1497
1498 #[inline(always)]
1499 fn inline_size(_context: fidl::encoding::Context) -> usize {
1500 32
1501 }
1502 }
1503
1504 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogInterestSelector, D>
1505 for &LogInterestSelector
1506 {
1507 #[inline]
1508 unsafe fn encode(
1509 self,
1510 encoder: &mut fidl::encoding::Encoder<'_, D>,
1511 offset: usize,
1512 _depth: fidl::encoding::Depth,
1513 ) -> fidl::Result<()> {
1514 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1515 fidl::encoding::Encode::<LogInterestSelector, D>::encode(
1517 (
1518 <ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.selector),
1519 <fidl_fuchsia_diagnostics_types__common::Interest as fidl::encoding::ValueTypeMarker>::borrow(&self.interest),
1520 ),
1521 encoder, offset, _depth
1522 )
1523 }
1524 }
1525 unsafe impl<
1526 D: fidl::encoding::ResourceDialect,
1527 T0: fidl::encoding::Encode<ComponentSelector, D>,
1528 T1: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types__common::Interest, D>,
1529 > fidl::encoding::Encode<LogInterestSelector, D> for (T0, T1)
1530 {
1531 #[inline]
1532 unsafe fn encode(
1533 self,
1534 encoder: &mut fidl::encoding::Encoder<'_, D>,
1535 offset: usize,
1536 depth: fidl::encoding::Depth,
1537 ) -> fidl::Result<()> {
1538 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1539 self.0.encode(encoder, offset + 0, depth)?;
1543 self.1.encode(encoder, offset + 16, depth)?;
1544 Ok(())
1545 }
1546 }
1547
1548 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogInterestSelector {
1549 #[inline(always)]
1550 fn new_empty() -> Self {
1551 Self {
1552 selector: fidl::new_empty!(ComponentSelector, D),
1553 interest: fidl::new_empty!(fidl_fuchsia_diagnostics_types__common::Interest, D),
1554 }
1555 }
1556
1557 #[inline]
1558 unsafe fn decode(
1559 &mut self,
1560 decoder: &mut fidl::encoding::Decoder<'_, D>,
1561 offset: usize,
1562 _depth: fidl::encoding::Depth,
1563 ) -> fidl::Result<()> {
1564 decoder.debug_check_bounds::<Self>(offset);
1565 fidl::decode!(ComponentSelector, D, &mut self.selector, decoder, offset + 0, _depth)?;
1567 fidl::decode!(
1568 fidl_fuchsia_diagnostics_types__common::Interest,
1569 D,
1570 &mut self.interest,
1571 decoder,
1572 offset + 16,
1573 _depth
1574 )?;
1575 Ok(())
1576 }
1577 }
1578
1579 impl fidl::encoding::ValueTypeMarker for PropertySelector {
1580 type Borrowed<'a> = &'a Self;
1581 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1582 value
1583 }
1584 }
1585
1586 unsafe impl fidl::encoding::TypeMarker for PropertySelector {
1587 type Owned = Self;
1588
1589 #[inline(always)]
1590 fn inline_align(_context: fidl::encoding::Context) -> usize {
1591 8
1592 }
1593
1594 #[inline(always)]
1595 fn inline_size(_context: fidl::encoding::Context) -> usize {
1596 32
1597 }
1598 }
1599
1600 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PropertySelector, D>
1601 for &PropertySelector
1602 {
1603 #[inline]
1604 unsafe fn encode(
1605 self,
1606 encoder: &mut fidl::encoding::Encoder<'_, D>,
1607 offset: usize,
1608 _depth: fidl::encoding::Depth,
1609 ) -> fidl::Result<()> {
1610 encoder.debug_check_bounds::<PropertySelector>(offset);
1611 fidl::encoding::Encode::<PropertySelector, D>::encode(
1613 (
1614 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1615 <StringSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.target_properties),
1616 ),
1617 encoder, offset, _depth
1618 )
1619 }
1620 }
1621 unsafe impl<
1622 D: fidl::encoding::ResourceDialect,
1623 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1624 T1: fidl::encoding::Encode<StringSelector, D>,
1625 > fidl::encoding::Encode<PropertySelector, D> for (T0, T1)
1626 {
1627 #[inline]
1628 unsafe fn encode(
1629 self,
1630 encoder: &mut fidl::encoding::Encoder<'_, D>,
1631 offset: usize,
1632 depth: fidl::encoding::Depth,
1633 ) -> fidl::Result<()> {
1634 encoder.debug_check_bounds::<PropertySelector>(offset);
1635 self.0.encode(encoder, offset + 0, depth)?;
1639 self.1.encode(encoder, offset + 16, depth)?;
1640 Ok(())
1641 }
1642 }
1643
1644 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PropertySelector {
1645 #[inline(always)]
1646 fn new_empty() -> Self {
1647 Self {
1648 node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D),
1649 target_properties: fidl::new_empty!(StringSelector, D),
1650 }
1651 }
1652
1653 #[inline]
1654 unsafe fn decode(
1655 &mut self,
1656 decoder: &mut fidl::encoding::Decoder<'_, D>,
1657 offset: usize,
1658 _depth: fidl::encoding::Depth,
1659 ) -> fidl::Result<()> {
1660 decoder.debug_check_bounds::<Self>(offset);
1661 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1663 fidl::decode!(
1664 StringSelector,
1665 D,
1666 &mut self.target_properties,
1667 decoder,
1668 offset + 16,
1669 _depth
1670 )?;
1671 Ok(())
1672 }
1673 }
1674
1675 impl fidl::encoding::ValueTypeMarker for SubtreeSelector {
1676 type Borrowed<'a> = &'a Self;
1677 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1678 value
1679 }
1680 }
1681
1682 unsafe impl fidl::encoding::TypeMarker for SubtreeSelector {
1683 type Owned = Self;
1684
1685 #[inline(always)]
1686 fn inline_align(_context: fidl::encoding::Context) -> usize {
1687 8
1688 }
1689
1690 #[inline(always)]
1691 fn inline_size(_context: fidl::encoding::Context) -> usize {
1692 16
1693 }
1694 }
1695
1696 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubtreeSelector, D>
1697 for &SubtreeSelector
1698 {
1699 #[inline]
1700 unsafe fn encode(
1701 self,
1702 encoder: &mut fidl::encoding::Encoder<'_, D>,
1703 offset: usize,
1704 _depth: fidl::encoding::Depth,
1705 ) -> fidl::Result<()> {
1706 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1707 fidl::encoding::Encode::<SubtreeSelector, D>::encode(
1709 (
1710 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1711 ),
1712 encoder, offset, _depth
1713 )
1714 }
1715 }
1716 unsafe impl<
1717 D: fidl::encoding::ResourceDialect,
1718 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1719 > fidl::encoding::Encode<SubtreeSelector, D> for (T0,)
1720 {
1721 #[inline]
1722 unsafe fn encode(
1723 self,
1724 encoder: &mut fidl::encoding::Encoder<'_, D>,
1725 offset: usize,
1726 depth: fidl::encoding::Depth,
1727 ) -> fidl::Result<()> {
1728 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1729 self.0.encode(encoder, offset + 0, depth)?;
1733 Ok(())
1734 }
1735 }
1736
1737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubtreeSelector {
1738 #[inline(always)]
1739 fn new_empty() -> Self {
1740 Self { node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D) }
1741 }
1742
1743 #[inline]
1744 unsafe fn decode(
1745 &mut self,
1746 decoder: &mut fidl::encoding::Decoder<'_, D>,
1747 offset: usize,
1748 _depth: fidl::encoding::Depth,
1749 ) -> fidl::Result<()> {
1750 decoder.debug_check_bounds::<Self>(offset);
1751 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1753 Ok(())
1754 }
1755 }
1756
1757 impl ComponentSelector {
1758 #[inline(always)]
1759 fn max_ordinal_present(&self) -> u64 {
1760 if let Some(_) = self.moniker_segments {
1761 return 1;
1762 }
1763 0
1764 }
1765 }
1766
1767 impl fidl::encoding::ValueTypeMarker for ComponentSelector {
1768 type Borrowed<'a> = &'a Self;
1769 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1770 value
1771 }
1772 }
1773
1774 unsafe impl fidl::encoding::TypeMarker for ComponentSelector {
1775 type Owned = Self;
1776
1777 #[inline(always)]
1778 fn inline_align(_context: fidl::encoding::Context) -> usize {
1779 8
1780 }
1781
1782 #[inline(always)]
1783 fn inline_size(_context: fidl::encoding::Context) -> usize {
1784 16
1785 }
1786 }
1787
1788 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentSelector, D>
1789 for &ComponentSelector
1790 {
1791 unsafe fn encode(
1792 self,
1793 encoder: &mut fidl::encoding::Encoder<'_, D>,
1794 offset: usize,
1795 mut depth: fidl::encoding::Depth,
1796 ) -> fidl::Result<()> {
1797 encoder.debug_check_bounds::<ComponentSelector>(offset);
1798 let max_ordinal: u64 = self.max_ordinal_present();
1800 encoder.write_num(max_ordinal, offset);
1801 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1802 if max_ordinal == 0 {
1804 return Ok(());
1805 }
1806 depth.increment()?;
1807 let envelope_size = 8;
1808 let bytes_len = max_ordinal as usize * envelope_size;
1809 #[allow(unused_variables)]
1810 let offset = encoder.out_of_line_offset(bytes_len);
1811 let mut _prev_end_offset: usize = 0;
1812 if 1 > max_ordinal {
1813 return Ok(());
1814 }
1815
1816 let cur_offset: usize = (1 - 1) * envelope_size;
1819
1820 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1822
1823 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<StringSelector, 25>, D>(
1828 self.moniker_segments.as_ref().map(<fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::ValueTypeMarker>::borrow),
1829 encoder, offset + cur_offset, depth
1830 )?;
1831
1832 _prev_end_offset = cur_offset + envelope_size;
1833
1834 Ok(())
1835 }
1836 }
1837
1838 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentSelector {
1839 #[inline(always)]
1840 fn new_empty() -> Self {
1841 Self::default()
1842 }
1843
1844 unsafe fn decode(
1845 &mut self,
1846 decoder: &mut fidl::encoding::Decoder<'_, D>,
1847 offset: usize,
1848 mut depth: fidl::encoding::Depth,
1849 ) -> fidl::Result<()> {
1850 decoder.debug_check_bounds::<Self>(offset);
1851 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1852 None => return Err(fidl::Error::NotNullable),
1853 Some(len) => len,
1854 };
1855 if len == 0 {
1857 return Ok(());
1858 };
1859 depth.increment()?;
1860 let envelope_size = 8;
1861 let bytes_len = len * envelope_size;
1862 let offset = decoder.out_of_line_offset(bytes_len)?;
1863 let mut _next_ordinal_to_read = 0;
1865 let mut next_offset = offset;
1866 let end_offset = offset + bytes_len;
1867 _next_ordinal_to_read += 1;
1868 if next_offset >= end_offset {
1869 return Ok(());
1870 }
1871
1872 while _next_ordinal_to_read < 1 {
1874 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1875 _next_ordinal_to_read += 1;
1876 next_offset += envelope_size;
1877 }
1878
1879 let next_out_of_line = decoder.next_out_of_line();
1880 let handles_before = decoder.remaining_handles();
1881 if let Some((inlined, num_bytes, num_handles)) =
1882 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1883 {
1884 let member_inline_size = <fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1885 if inlined != (member_inline_size <= 4) {
1886 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1887 }
1888 let inner_offset;
1889 let mut inner_depth = depth.clone();
1890 if inlined {
1891 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1892 inner_offset = next_offset;
1893 } else {
1894 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1895 inner_depth.increment()?;
1896 }
1897 let val_ref = self.moniker_segments.get_or_insert_with(
1898 || fidl::new_empty!(fidl::encoding::Vector<StringSelector, 25>, D),
1899 );
1900 fidl::decode!(fidl::encoding::Vector<StringSelector, 25>, D, val_ref, decoder, inner_offset, inner_depth)?;
1901 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1902 {
1903 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1904 }
1905 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1906 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1907 }
1908 }
1909
1910 next_offset += envelope_size;
1911
1912 while next_offset < end_offset {
1914 _next_ordinal_to_read += 1;
1915 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1916 next_offset += envelope_size;
1917 }
1918
1919 Ok(())
1920 }
1921 }
1922
1923 impl LogSettingsSetComponentInterestRequest {
1924 #[inline(always)]
1925 fn max_ordinal_present(&self) -> u64 {
1926 if let Some(_) = self.persist {
1927 return 2;
1928 }
1929 if let Some(_) = self.selectors {
1930 return 1;
1931 }
1932 0
1933 }
1934 }
1935
1936 impl fidl::encoding::ValueTypeMarker for LogSettingsSetComponentInterestRequest {
1937 type Borrowed<'a> = &'a Self;
1938 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1939 value
1940 }
1941 }
1942
1943 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetComponentInterestRequest {
1944 type Owned = Self;
1945
1946 #[inline(always)]
1947 fn inline_align(_context: fidl::encoding::Context) -> usize {
1948 8
1949 }
1950
1951 #[inline(always)]
1952 fn inline_size(_context: fidl::encoding::Context) -> usize {
1953 16
1954 }
1955 }
1956
1957 unsafe impl<D: fidl::encoding::ResourceDialect>
1958 fidl::encoding::Encode<LogSettingsSetComponentInterestRequest, D>
1959 for &LogSettingsSetComponentInterestRequest
1960 {
1961 unsafe fn encode(
1962 self,
1963 encoder: &mut fidl::encoding::Encoder<'_, D>,
1964 offset: usize,
1965 mut depth: fidl::encoding::Depth,
1966 ) -> fidl::Result<()> {
1967 encoder.debug_check_bounds::<LogSettingsSetComponentInterestRequest>(offset);
1968 let max_ordinal: u64 = self.max_ordinal_present();
1970 encoder.write_num(max_ordinal, offset);
1971 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1972 if max_ordinal == 0 {
1974 return Ok(());
1975 }
1976 depth.increment()?;
1977 let envelope_size = 8;
1978 let bytes_len = max_ordinal as usize * envelope_size;
1979 #[allow(unused_variables)]
1980 let offset = encoder.out_of_line_offset(bytes_len);
1981 let mut _prev_end_offset: usize = 0;
1982 if 1 > max_ordinal {
1983 return Ok(());
1984 }
1985
1986 let cur_offset: usize = (1 - 1) * envelope_size;
1989
1990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1992
1993 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<LogInterestSelector, 64>, D>(
1998 self.selectors.as_ref().map(<fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow),
1999 encoder, offset + cur_offset, depth
2000 )?;
2001
2002 _prev_end_offset = cur_offset + envelope_size;
2003 if 2 > max_ordinal {
2004 return Ok(());
2005 }
2006
2007 let cur_offset: usize = (2 - 1) * envelope_size;
2010
2011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2013
2014 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2019 self.persist.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2020 encoder,
2021 offset + cur_offset,
2022 depth,
2023 )?;
2024
2025 _prev_end_offset = cur_offset + envelope_size;
2026
2027 Ok(())
2028 }
2029 }
2030
2031 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2032 for LogSettingsSetComponentInterestRequest
2033 {
2034 #[inline(always)]
2035 fn new_empty() -> Self {
2036 Self::default()
2037 }
2038
2039 unsafe fn decode(
2040 &mut self,
2041 decoder: &mut fidl::encoding::Decoder<'_, D>,
2042 offset: usize,
2043 mut depth: fidl::encoding::Depth,
2044 ) -> fidl::Result<()> {
2045 decoder.debug_check_bounds::<Self>(offset);
2046 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2047 None => return Err(fidl::Error::NotNullable),
2048 Some(len) => len,
2049 };
2050 if len == 0 {
2052 return Ok(());
2053 };
2054 depth.increment()?;
2055 let envelope_size = 8;
2056 let bytes_len = len * envelope_size;
2057 let offset = decoder.out_of_line_offset(bytes_len)?;
2058 let mut _next_ordinal_to_read = 0;
2060 let mut next_offset = offset;
2061 let end_offset = offset + bytes_len;
2062 _next_ordinal_to_read += 1;
2063 if next_offset >= end_offset {
2064 return Ok(());
2065 }
2066
2067 while _next_ordinal_to_read < 1 {
2069 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2070 _next_ordinal_to_read += 1;
2071 next_offset += envelope_size;
2072 }
2073
2074 let next_out_of_line = decoder.next_out_of_line();
2075 let handles_before = decoder.remaining_handles();
2076 if let Some((inlined, num_bytes, num_handles)) =
2077 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2078 {
2079 let member_inline_size = <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2080 if inlined != (member_inline_size <= 4) {
2081 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2082 }
2083 let inner_offset;
2084 let mut inner_depth = depth.clone();
2085 if inlined {
2086 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2087 inner_offset = next_offset;
2088 } else {
2089 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2090 inner_depth.increment()?;
2091 }
2092 let val_ref = self.selectors.get_or_insert_with(
2093 || fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D),
2094 );
2095 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
2096 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2097 {
2098 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2099 }
2100 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2101 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2102 }
2103 }
2104
2105 next_offset += envelope_size;
2106 _next_ordinal_to_read += 1;
2107 if next_offset >= end_offset {
2108 return Ok(());
2109 }
2110
2111 while _next_ordinal_to_read < 2 {
2113 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2114 _next_ordinal_to_read += 1;
2115 next_offset += envelope_size;
2116 }
2117
2118 let next_out_of_line = decoder.next_out_of_line();
2119 let handles_before = decoder.remaining_handles();
2120 if let Some((inlined, num_bytes, num_handles)) =
2121 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2122 {
2123 let member_inline_size =
2124 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2125 if inlined != (member_inline_size <= 4) {
2126 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2127 }
2128 let inner_offset;
2129 let mut inner_depth = depth.clone();
2130 if inlined {
2131 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2132 inner_offset = next_offset;
2133 } else {
2134 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2135 inner_depth.increment()?;
2136 }
2137 let val_ref = self.persist.get_or_insert_with(|| fidl::new_empty!(bool, D));
2138 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2140 {
2141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2142 }
2143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2145 }
2146 }
2147
2148 next_offset += envelope_size;
2149
2150 while next_offset < end_offset {
2152 _next_ordinal_to_read += 1;
2153 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2154 next_offset += envelope_size;
2155 }
2156
2157 Ok(())
2158 }
2159 }
2160
2161 impl LogStreamOptions {
2162 #[inline(always)]
2163 fn max_ordinal_present(&self) -> u64 {
2164 if let Some(_) = self.mode {
2165 return 1;
2166 }
2167 0
2168 }
2169 }
2170
2171 impl fidl::encoding::ValueTypeMarker for LogStreamOptions {
2172 type Borrowed<'a> = &'a Self;
2173 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2174 value
2175 }
2176 }
2177
2178 unsafe impl fidl::encoding::TypeMarker for LogStreamOptions {
2179 type Owned = Self;
2180
2181 #[inline(always)]
2182 fn inline_align(_context: fidl::encoding::Context) -> usize {
2183 8
2184 }
2185
2186 #[inline(always)]
2187 fn inline_size(_context: fidl::encoding::Context) -> usize {
2188 16
2189 }
2190 }
2191
2192 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogStreamOptions, D>
2193 for &LogStreamOptions
2194 {
2195 unsafe fn encode(
2196 self,
2197 encoder: &mut fidl::encoding::Encoder<'_, D>,
2198 offset: usize,
2199 mut depth: fidl::encoding::Depth,
2200 ) -> fidl::Result<()> {
2201 encoder.debug_check_bounds::<LogStreamOptions>(offset);
2202 let max_ordinal: u64 = self.max_ordinal_present();
2204 encoder.write_num(max_ordinal, offset);
2205 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2206 if max_ordinal == 0 {
2208 return Ok(());
2209 }
2210 depth.increment()?;
2211 let envelope_size = 8;
2212 let bytes_len = max_ordinal as usize * envelope_size;
2213 #[allow(unused_variables)]
2214 let offset = encoder.out_of_line_offset(bytes_len);
2215 let mut _prev_end_offset: usize = 0;
2216 if 1 > max_ordinal {
2217 return Ok(());
2218 }
2219
2220 let cur_offset: usize = (1 - 1) * envelope_size;
2223
2224 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2226
2227 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
2232 self.mode.as_ref().map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
2233 encoder,
2234 offset + cur_offset,
2235 depth,
2236 )?;
2237
2238 _prev_end_offset = cur_offset + envelope_size;
2239
2240 Ok(())
2241 }
2242 }
2243
2244 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogStreamOptions {
2245 #[inline(always)]
2246 fn new_empty() -> Self {
2247 Self::default()
2248 }
2249
2250 unsafe fn decode(
2251 &mut self,
2252 decoder: &mut fidl::encoding::Decoder<'_, D>,
2253 offset: usize,
2254 mut depth: fidl::encoding::Depth,
2255 ) -> fidl::Result<()> {
2256 decoder.debug_check_bounds::<Self>(offset);
2257 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2258 None => return Err(fidl::Error::NotNullable),
2259 Some(len) => len,
2260 };
2261 if len == 0 {
2263 return Ok(());
2264 };
2265 depth.increment()?;
2266 let envelope_size = 8;
2267 let bytes_len = len * envelope_size;
2268 let offset = decoder.out_of_line_offset(bytes_len)?;
2269 let mut _next_ordinal_to_read = 0;
2271 let mut next_offset = offset;
2272 let end_offset = offset + bytes_len;
2273 _next_ordinal_to_read += 1;
2274 if next_offset >= end_offset {
2275 return Ok(());
2276 }
2277
2278 while _next_ordinal_to_read < 1 {
2280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2281 _next_ordinal_to_read += 1;
2282 next_offset += envelope_size;
2283 }
2284
2285 let next_out_of_line = decoder.next_out_of_line();
2286 let handles_before = decoder.remaining_handles();
2287 if let Some((inlined, num_bytes, num_handles)) =
2288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2289 {
2290 let member_inline_size =
2291 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2292 if inlined != (member_inline_size <= 4) {
2293 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2294 }
2295 let inner_offset;
2296 let mut inner_depth = depth.clone();
2297 if inlined {
2298 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2299 inner_offset = next_offset;
2300 } else {
2301 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2302 inner_depth.increment()?;
2303 }
2304 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
2305 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
2306 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2307 {
2308 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2309 }
2310 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2311 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2312 }
2313 }
2314
2315 next_offset += envelope_size;
2316
2317 while next_offset < end_offset {
2319 _next_ordinal_to_read += 1;
2320 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2321 next_offset += envelope_size;
2322 }
2323
2324 Ok(())
2325 }
2326 }
2327
2328 impl PerformanceConfiguration {
2329 #[inline(always)]
2330 fn max_ordinal_present(&self) -> u64 {
2331 if let Some(_) = self.batch_retrieval_timeout_seconds {
2332 return 2;
2333 }
2334 if let Some(_) = self.max_aggregate_content_size_bytes {
2335 return 1;
2336 }
2337 0
2338 }
2339 }
2340
2341 impl fidl::encoding::ValueTypeMarker for PerformanceConfiguration {
2342 type Borrowed<'a> = &'a Self;
2343 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2344 value
2345 }
2346 }
2347
2348 unsafe impl fidl::encoding::TypeMarker for PerformanceConfiguration {
2349 type Owned = Self;
2350
2351 #[inline(always)]
2352 fn inline_align(_context: fidl::encoding::Context) -> usize {
2353 8
2354 }
2355
2356 #[inline(always)]
2357 fn inline_size(_context: fidl::encoding::Context) -> usize {
2358 16
2359 }
2360 }
2361
2362 unsafe impl<D: fidl::encoding::ResourceDialect>
2363 fidl::encoding::Encode<PerformanceConfiguration, D> for &PerformanceConfiguration
2364 {
2365 unsafe fn encode(
2366 self,
2367 encoder: &mut fidl::encoding::Encoder<'_, D>,
2368 offset: usize,
2369 mut depth: fidl::encoding::Depth,
2370 ) -> fidl::Result<()> {
2371 encoder.debug_check_bounds::<PerformanceConfiguration>(offset);
2372 let max_ordinal: u64 = self.max_ordinal_present();
2374 encoder.write_num(max_ordinal, offset);
2375 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2376 if max_ordinal == 0 {
2378 return Ok(());
2379 }
2380 depth.increment()?;
2381 let envelope_size = 8;
2382 let bytes_len = max_ordinal as usize * envelope_size;
2383 #[allow(unused_variables)]
2384 let offset = encoder.out_of_line_offset(bytes_len);
2385 let mut _prev_end_offset: usize = 0;
2386 if 1 > max_ordinal {
2387 return Ok(());
2388 }
2389
2390 let cur_offset: usize = (1 - 1) * envelope_size;
2393
2394 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2396
2397 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2402 self.max_aggregate_content_size_bytes
2403 .as_ref()
2404 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2405 encoder,
2406 offset + cur_offset,
2407 depth,
2408 )?;
2409
2410 _prev_end_offset = cur_offset + envelope_size;
2411 if 2 > max_ordinal {
2412 return Ok(());
2413 }
2414
2415 let cur_offset: usize = (2 - 1) * envelope_size;
2418
2419 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2421
2422 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2427 self.batch_retrieval_timeout_seconds
2428 .as_ref()
2429 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2430 encoder,
2431 offset + cur_offset,
2432 depth,
2433 )?;
2434
2435 _prev_end_offset = cur_offset + envelope_size;
2436
2437 Ok(())
2438 }
2439 }
2440
2441 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2442 for PerformanceConfiguration
2443 {
2444 #[inline(always)]
2445 fn new_empty() -> Self {
2446 Self::default()
2447 }
2448
2449 unsafe fn decode(
2450 &mut self,
2451 decoder: &mut fidl::encoding::Decoder<'_, D>,
2452 offset: usize,
2453 mut depth: fidl::encoding::Depth,
2454 ) -> fidl::Result<()> {
2455 decoder.debug_check_bounds::<Self>(offset);
2456 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2457 None => return Err(fidl::Error::NotNullable),
2458 Some(len) => len,
2459 };
2460 if len == 0 {
2462 return Ok(());
2463 };
2464 depth.increment()?;
2465 let envelope_size = 8;
2466 let bytes_len = len * envelope_size;
2467 let offset = decoder.out_of_line_offset(bytes_len)?;
2468 let mut _next_ordinal_to_read = 0;
2470 let mut next_offset = offset;
2471 let end_offset = offset + bytes_len;
2472 _next_ordinal_to_read += 1;
2473 if next_offset >= end_offset {
2474 return Ok(());
2475 }
2476
2477 while _next_ordinal_to_read < 1 {
2479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2480 _next_ordinal_to_read += 1;
2481 next_offset += envelope_size;
2482 }
2483
2484 let next_out_of_line = decoder.next_out_of_line();
2485 let handles_before = decoder.remaining_handles();
2486 if let Some((inlined, num_bytes, num_handles)) =
2487 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2488 {
2489 let member_inline_size =
2490 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2491 if inlined != (member_inline_size <= 4) {
2492 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2493 }
2494 let inner_offset;
2495 let mut inner_depth = depth.clone();
2496 if inlined {
2497 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2498 inner_offset = next_offset;
2499 } else {
2500 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2501 inner_depth.increment()?;
2502 }
2503 let val_ref = self
2504 .max_aggregate_content_size_bytes
2505 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2506 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2507 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2508 {
2509 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2510 }
2511 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2512 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2513 }
2514 }
2515
2516 next_offset += envelope_size;
2517 _next_ordinal_to_read += 1;
2518 if next_offset >= end_offset {
2519 return Ok(());
2520 }
2521
2522 while _next_ordinal_to_read < 2 {
2524 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2525 _next_ordinal_to_read += 1;
2526 next_offset += envelope_size;
2527 }
2528
2529 let next_out_of_line = decoder.next_out_of_line();
2530 let handles_before = decoder.remaining_handles();
2531 if let Some((inlined, num_bytes, num_handles)) =
2532 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2533 {
2534 let member_inline_size =
2535 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2536 if inlined != (member_inline_size <= 4) {
2537 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2538 }
2539 let inner_offset;
2540 let mut inner_depth = depth.clone();
2541 if inlined {
2542 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2543 inner_offset = next_offset;
2544 } else {
2545 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2546 inner_depth.increment()?;
2547 }
2548 let val_ref = self
2549 .batch_retrieval_timeout_seconds
2550 .get_or_insert_with(|| fidl::new_empty!(i64, D));
2551 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2553 {
2554 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2555 }
2556 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2557 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2558 }
2559 }
2560
2561 next_offset += envelope_size;
2562
2563 while next_offset < end_offset {
2565 _next_ordinal_to_read += 1;
2566 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2567 next_offset += envelope_size;
2568 }
2569
2570 Ok(())
2571 }
2572 }
2573
2574 impl SampleDatum {
2575 #[inline(always)]
2576 fn max_ordinal_present(&self) -> u64 {
2577 if let Some(_) = self.interval_secs {
2578 return 3;
2579 }
2580 if let Some(_) = self.strategy {
2581 return 2;
2582 }
2583 if let Some(_) = self.selector {
2584 return 1;
2585 }
2586 0
2587 }
2588 }
2589
2590 impl fidl::encoding::ValueTypeMarker for SampleDatum {
2591 type Borrowed<'a> = &'a Self;
2592 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2593 value
2594 }
2595 }
2596
2597 unsafe impl fidl::encoding::TypeMarker for SampleDatum {
2598 type Owned = Self;
2599
2600 #[inline(always)]
2601 fn inline_align(_context: fidl::encoding::Context) -> usize {
2602 8
2603 }
2604
2605 #[inline(always)]
2606 fn inline_size(_context: fidl::encoding::Context) -> usize {
2607 16
2608 }
2609 }
2610
2611 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleDatum, D>
2612 for &SampleDatum
2613 {
2614 unsafe fn encode(
2615 self,
2616 encoder: &mut fidl::encoding::Encoder<'_, D>,
2617 offset: usize,
2618 mut depth: fidl::encoding::Depth,
2619 ) -> fidl::Result<()> {
2620 encoder.debug_check_bounds::<SampleDatum>(offset);
2621 let max_ordinal: u64 = self.max_ordinal_present();
2623 encoder.write_num(max_ordinal, offset);
2624 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2625 if max_ordinal == 0 {
2627 return Ok(());
2628 }
2629 depth.increment()?;
2630 let envelope_size = 8;
2631 let bytes_len = max_ordinal as usize * envelope_size;
2632 #[allow(unused_variables)]
2633 let offset = encoder.out_of_line_offset(bytes_len);
2634 let mut _prev_end_offset: usize = 0;
2635 if 1 > max_ordinal {
2636 return Ok(());
2637 }
2638
2639 let cur_offset: usize = (1 - 1) * envelope_size;
2642
2643 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2645
2646 fidl::encoding::encode_in_envelope_optional::<SelectorArgument, D>(
2651 self.selector
2652 .as_ref()
2653 .map(<SelectorArgument 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 2 > max_ordinal {
2661 return Ok(());
2662 }
2663
2664 let cur_offset: usize = (2 - 1) * envelope_size;
2667
2668 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2670
2671 fidl::encoding::encode_in_envelope_optional::<SampleStrategy, D>(
2676 self.strategy
2677 .as_ref()
2678 .map(<SampleStrategy 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 3 > max_ordinal {
2686 return Ok(());
2687 }
2688
2689 let cur_offset: usize = (3 - 1) * envelope_size;
2692
2693 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2695
2696 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2701 self.interval_secs.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2702 encoder,
2703 offset + cur_offset,
2704 depth,
2705 )?;
2706
2707 _prev_end_offset = cur_offset + envelope_size;
2708
2709 Ok(())
2710 }
2711 }
2712
2713 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleDatum {
2714 #[inline(always)]
2715 fn new_empty() -> Self {
2716 Self::default()
2717 }
2718
2719 unsafe fn decode(
2720 &mut self,
2721 decoder: &mut fidl::encoding::Decoder<'_, D>,
2722 offset: usize,
2723 mut depth: fidl::encoding::Depth,
2724 ) -> fidl::Result<()> {
2725 decoder.debug_check_bounds::<Self>(offset);
2726 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2727 None => return Err(fidl::Error::NotNullable),
2728 Some(len) => len,
2729 };
2730 if len == 0 {
2732 return Ok(());
2733 };
2734 depth.increment()?;
2735 let envelope_size = 8;
2736 let bytes_len = len * envelope_size;
2737 let offset = decoder.out_of_line_offset(bytes_len)?;
2738 let mut _next_ordinal_to_read = 0;
2740 let mut next_offset = offset;
2741 let end_offset = offset + bytes_len;
2742 _next_ordinal_to_read += 1;
2743 if next_offset >= end_offset {
2744 return Ok(());
2745 }
2746
2747 while _next_ordinal_to_read < 1 {
2749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2750 _next_ordinal_to_read += 1;
2751 next_offset += envelope_size;
2752 }
2753
2754 let next_out_of_line = decoder.next_out_of_line();
2755 let handles_before = decoder.remaining_handles();
2756 if let Some((inlined, num_bytes, num_handles)) =
2757 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2758 {
2759 let member_inline_size =
2760 <SelectorArgument as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2761 if inlined != (member_inline_size <= 4) {
2762 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2763 }
2764 let inner_offset;
2765 let mut inner_depth = depth.clone();
2766 if inlined {
2767 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2768 inner_offset = next_offset;
2769 } else {
2770 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2771 inner_depth.increment()?;
2772 }
2773 let val_ref =
2774 self.selector.get_or_insert_with(|| fidl::new_empty!(SelectorArgument, D));
2775 fidl::decode!(SelectorArgument, D, val_ref, decoder, inner_offset, inner_depth)?;
2776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2777 {
2778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2779 }
2780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2782 }
2783 }
2784
2785 next_offset += envelope_size;
2786 _next_ordinal_to_read += 1;
2787 if next_offset >= end_offset {
2788 return Ok(());
2789 }
2790
2791 while _next_ordinal_to_read < 2 {
2793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2794 _next_ordinal_to_read += 1;
2795 next_offset += envelope_size;
2796 }
2797
2798 let next_out_of_line = decoder.next_out_of_line();
2799 let handles_before = decoder.remaining_handles();
2800 if let Some((inlined, num_bytes, num_handles)) =
2801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2802 {
2803 let member_inline_size =
2804 <SampleStrategy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2805 if inlined != (member_inline_size <= 4) {
2806 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2807 }
2808 let inner_offset;
2809 let mut inner_depth = depth.clone();
2810 if inlined {
2811 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2812 inner_offset = next_offset;
2813 } else {
2814 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2815 inner_depth.increment()?;
2816 }
2817 let val_ref =
2818 self.strategy.get_or_insert_with(|| fidl::new_empty!(SampleStrategy, D));
2819 fidl::decode!(SampleStrategy, 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 <i64 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 = self.interval_secs.get_or_insert_with(|| fidl::new_empty!(i64, D));
2862 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2863 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2864 {
2865 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2866 }
2867 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2868 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2869 }
2870 }
2871
2872 next_offset += envelope_size;
2873
2874 while next_offset < end_offset {
2876 _next_ordinal_to_read += 1;
2877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2878 next_offset += envelope_size;
2879 }
2880
2881 Ok(())
2882 }
2883 }
2884
2885 impl SampleParameters {
2886 #[inline(always)]
2887 fn max_ordinal_present(&self) -> u64 {
2888 if let Some(_) = self.data {
2889 return 1;
2890 }
2891 0
2892 }
2893 }
2894
2895 impl fidl::encoding::ValueTypeMarker for SampleParameters {
2896 type Borrowed<'a> = &'a Self;
2897 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2898 value
2899 }
2900 }
2901
2902 unsafe impl fidl::encoding::TypeMarker for SampleParameters {
2903 type Owned = Self;
2904
2905 #[inline(always)]
2906 fn inline_align(_context: fidl::encoding::Context) -> usize {
2907 8
2908 }
2909
2910 #[inline(always)]
2911 fn inline_size(_context: fidl::encoding::Context) -> usize {
2912 16
2913 }
2914 }
2915
2916 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleParameters, D>
2917 for &SampleParameters
2918 {
2919 unsafe fn encode(
2920 self,
2921 encoder: &mut fidl::encoding::Encoder<'_, D>,
2922 offset: usize,
2923 mut depth: fidl::encoding::Depth,
2924 ) -> fidl::Result<()> {
2925 encoder.debug_check_bounds::<SampleParameters>(offset);
2926 let max_ordinal: u64 = self.max_ordinal_present();
2928 encoder.write_num(max_ordinal, offset);
2929 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2930 if max_ordinal == 0 {
2932 return Ok(());
2933 }
2934 depth.increment()?;
2935 let envelope_size = 8;
2936 let bytes_len = max_ordinal as usize * envelope_size;
2937 #[allow(unused_variables)]
2938 let offset = encoder.out_of_line_offset(bytes_len);
2939 let mut _prev_end_offset: usize = 0;
2940 if 1 > max_ordinal {
2941 return Ok(());
2942 }
2943
2944 let cur_offset: usize = (1 - 1) * envelope_size;
2947
2948 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2950
2951 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<SampleDatum, 100>, D>(
2956 self.data.as_ref().map(<fidl::encoding::Vector<SampleDatum, 100> as fidl::encoding::ValueTypeMarker>::borrow),
2957 encoder, offset + cur_offset, depth
2958 )?;
2959
2960 _prev_end_offset = cur_offset + envelope_size;
2961
2962 Ok(())
2963 }
2964 }
2965
2966 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleParameters {
2967 #[inline(always)]
2968 fn new_empty() -> Self {
2969 Self::default()
2970 }
2971
2972 unsafe fn decode(
2973 &mut self,
2974 decoder: &mut fidl::encoding::Decoder<'_, D>,
2975 offset: usize,
2976 mut depth: fidl::encoding::Depth,
2977 ) -> fidl::Result<()> {
2978 decoder.debug_check_bounds::<Self>(offset);
2979 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2980 None => return Err(fidl::Error::NotNullable),
2981 Some(len) => len,
2982 };
2983 if len == 0 {
2985 return Ok(());
2986 };
2987 depth.increment()?;
2988 let envelope_size = 8;
2989 let bytes_len = len * envelope_size;
2990 let offset = decoder.out_of_line_offset(bytes_len)?;
2991 let mut _next_ordinal_to_read = 0;
2993 let mut next_offset = offset;
2994 let end_offset = offset + bytes_len;
2995 _next_ordinal_to_read += 1;
2996 if next_offset >= end_offset {
2997 return Ok(());
2998 }
2999
3000 while _next_ordinal_to_read < 1 {
3002 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3003 _next_ordinal_to_read += 1;
3004 next_offset += envelope_size;
3005 }
3006
3007 let next_out_of_line = decoder.next_out_of_line();
3008 let handles_before = decoder.remaining_handles();
3009 if let Some((inlined, num_bytes, num_handles)) =
3010 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3011 {
3012 let member_inline_size = <fidl::encoding::Vector<SampleDatum, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3013 if inlined != (member_inline_size <= 4) {
3014 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3015 }
3016 let inner_offset;
3017 let mut inner_depth = depth.clone();
3018 if inlined {
3019 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3020 inner_offset = next_offset;
3021 } else {
3022 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3023 inner_depth.increment()?;
3024 }
3025 let val_ref = self.data.get_or_insert_with(
3026 || fidl::new_empty!(fidl::encoding::Vector<SampleDatum, 100>, D),
3027 );
3028 fidl::decode!(fidl::encoding::Vector<SampleDatum, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
3029 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3030 {
3031 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3032 }
3033 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3034 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3035 }
3036 }
3037
3038 next_offset += envelope_size;
3039
3040 while next_offset < end_offset {
3042 _next_ordinal_to_read += 1;
3043 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3044 next_offset += envelope_size;
3045 }
3046
3047 Ok(())
3048 }
3049 }
3050
3051 impl Selector {
3052 #[inline(always)]
3053 fn max_ordinal_present(&self) -> u64 {
3054 if let Some(_) = self.tree_names {
3055 return 3;
3056 }
3057 if let Some(_) = self.tree_selector {
3058 return 2;
3059 }
3060 if let Some(_) = self.component_selector {
3061 return 1;
3062 }
3063 0
3064 }
3065 }
3066
3067 impl fidl::encoding::ValueTypeMarker for Selector {
3068 type Borrowed<'a> = &'a Self;
3069 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3070 value
3071 }
3072 }
3073
3074 unsafe impl fidl::encoding::TypeMarker for Selector {
3075 type Owned = Self;
3076
3077 #[inline(always)]
3078 fn inline_align(_context: fidl::encoding::Context) -> usize {
3079 8
3080 }
3081
3082 #[inline(always)]
3083 fn inline_size(_context: fidl::encoding::Context) -> usize {
3084 16
3085 }
3086 }
3087
3088 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Selector, D> for &Selector {
3089 unsafe fn encode(
3090 self,
3091 encoder: &mut fidl::encoding::Encoder<'_, D>,
3092 offset: usize,
3093 mut depth: fidl::encoding::Depth,
3094 ) -> fidl::Result<()> {
3095 encoder.debug_check_bounds::<Selector>(offset);
3096 let max_ordinal: u64 = self.max_ordinal_present();
3098 encoder.write_num(max_ordinal, offset);
3099 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3100 if max_ordinal == 0 {
3102 return Ok(());
3103 }
3104 depth.increment()?;
3105 let envelope_size = 8;
3106 let bytes_len = max_ordinal as usize * envelope_size;
3107 #[allow(unused_variables)]
3108 let offset = encoder.out_of_line_offset(bytes_len);
3109 let mut _prev_end_offset: usize = 0;
3110 if 1 > max_ordinal {
3111 return Ok(());
3112 }
3113
3114 let cur_offset: usize = (1 - 1) * envelope_size;
3117
3118 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3120
3121 fidl::encoding::encode_in_envelope_optional::<ComponentSelector, D>(
3126 self.component_selector
3127 .as_ref()
3128 .map(<ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow),
3129 encoder,
3130 offset + cur_offset,
3131 depth,
3132 )?;
3133
3134 _prev_end_offset = cur_offset + envelope_size;
3135 if 2 > max_ordinal {
3136 return Ok(());
3137 }
3138
3139 let cur_offset: usize = (2 - 1) * envelope_size;
3142
3143 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3145
3146 fidl::encoding::encode_in_envelope_optional::<TreeSelector, D>(
3151 self.tree_selector
3152 .as_ref()
3153 .map(<TreeSelector as fidl::encoding::ValueTypeMarker>::borrow),
3154 encoder,
3155 offset + cur_offset,
3156 depth,
3157 )?;
3158
3159 _prev_end_offset = cur_offset + envelope_size;
3160 if 3 > max_ordinal {
3161 return Ok(());
3162 }
3163
3164 let cur_offset: usize = (3 - 1) * envelope_size;
3167
3168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3170
3171 fidl::encoding::encode_in_envelope_optional::<TreeNames, D>(
3176 self.tree_names
3177 .as_ref()
3178 .map(<TreeNames as fidl::encoding::ValueTypeMarker>::borrow),
3179 encoder,
3180 offset + cur_offset,
3181 depth,
3182 )?;
3183
3184 _prev_end_offset = cur_offset + envelope_size;
3185
3186 Ok(())
3187 }
3188 }
3189
3190 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Selector {
3191 #[inline(always)]
3192 fn new_empty() -> Self {
3193 Self::default()
3194 }
3195
3196 unsafe fn decode(
3197 &mut self,
3198 decoder: &mut fidl::encoding::Decoder<'_, D>,
3199 offset: usize,
3200 mut depth: fidl::encoding::Depth,
3201 ) -> fidl::Result<()> {
3202 decoder.debug_check_bounds::<Self>(offset);
3203 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3204 None => return Err(fidl::Error::NotNullable),
3205 Some(len) => len,
3206 };
3207 if len == 0 {
3209 return Ok(());
3210 };
3211 depth.increment()?;
3212 let envelope_size = 8;
3213 let bytes_len = len * envelope_size;
3214 let offset = decoder.out_of_line_offset(bytes_len)?;
3215 let mut _next_ordinal_to_read = 0;
3217 let mut next_offset = offset;
3218 let end_offset = offset + bytes_len;
3219 _next_ordinal_to_read += 1;
3220 if next_offset >= end_offset {
3221 return Ok(());
3222 }
3223
3224 while _next_ordinal_to_read < 1 {
3226 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3227 _next_ordinal_to_read += 1;
3228 next_offset += envelope_size;
3229 }
3230
3231 let next_out_of_line = decoder.next_out_of_line();
3232 let handles_before = decoder.remaining_handles();
3233 if let Some((inlined, num_bytes, num_handles)) =
3234 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3235 {
3236 let member_inline_size =
3237 <ComponentSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3238 if inlined != (member_inline_size <= 4) {
3239 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3240 }
3241 let inner_offset;
3242 let mut inner_depth = depth.clone();
3243 if inlined {
3244 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3245 inner_offset = next_offset;
3246 } else {
3247 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3248 inner_depth.increment()?;
3249 }
3250 let val_ref = self
3251 .component_selector
3252 .get_or_insert_with(|| fidl::new_empty!(ComponentSelector, D));
3253 fidl::decode!(ComponentSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3254 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3255 {
3256 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3257 }
3258 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3259 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3260 }
3261 }
3262
3263 next_offset += envelope_size;
3264 _next_ordinal_to_read += 1;
3265 if next_offset >= end_offset {
3266 return Ok(());
3267 }
3268
3269 while _next_ordinal_to_read < 2 {
3271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3272 _next_ordinal_to_read += 1;
3273 next_offset += envelope_size;
3274 }
3275
3276 let next_out_of_line = decoder.next_out_of_line();
3277 let handles_before = decoder.remaining_handles();
3278 if let Some((inlined, num_bytes, num_handles)) =
3279 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3280 {
3281 let member_inline_size =
3282 <TreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3283 if inlined != (member_inline_size <= 4) {
3284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3285 }
3286 let inner_offset;
3287 let mut inner_depth = depth.clone();
3288 if inlined {
3289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3290 inner_offset = next_offset;
3291 } else {
3292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3293 inner_depth.increment()?;
3294 }
3295 let val_ref =
3296 self.tree_selector.get_or_insert_with(|| fidl::new_empty!(TreeSelector, D));
3297 fidl::decode!(TreeSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3298 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3299 {
3300 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3301 }
3302 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3303 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3304 }
3305 }
3306
3307 next_offset += envelope_size;
3308 _next_ordinal_to_read += 1;
3309 if next_offset >= end_offset {
3310 return Ok(());
3311 }
3312
3313 while _next_ordinal_to_read < 3 {
3315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3316 _next_ordinal_to_read += 1;
3317 next_offset += envelope_size;
3318 }
3319
3320 let next_out_of_line = decoder.next_out_of_line();
3321 let handles_before = decoder.remaining_handles();
3322 if let Some((inlined, num_bytes, num_handles)) =
3323 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3324 {
3325 let member_inline_size =
3326 <TreeNames as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3327 if inlined != (member_inline_size <= 4) {
3328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3329 }
3330 let inner_offset;
3331 let mut inner_depth = depth.clone();
3332 if inlined {
3333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3334 inner_offset = next_offset;
3335 } else {
3336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3337 inner_depth.increment()?;
3338 }
3339 let val_ref = self.tree_names.get_or_insert_with(|| fidl::new_empty!(TreeNames, D));
3340 fidl::decode!(TreeNames, D, val_ref, decoder, inner_offset, inner_depth)?;
3341 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3342 {
3343 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3344 }
3345 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3346 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3347 }
3348 }
3349
3350 next_offset += envelope_size;
3351
3352 while next_offset < end_offset {
3354 _next_ordinal_to_read += 1;
3355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3356 next_offset += envelope_size;
3357 }
3358
3359 Ok(())
3360 }
3361 }
3362
3363 impl StreamParameters {
3364 #[inline(always)]
3365 fn max_ordinal_present(&self) -> u64 {
3366 if let Some(_) = self.performance_configuration {
3367 return 6;
3368 }
3369 if let Some(_) = self.batch_retrieval_timeout_seconds {
3370 return 5;
3371 }
3372 if let Some(_) = self.client_selector_configuration {
3373 return 4;
3374 }
3375 if let Some(_) = self.format {
3376 return 3;
3377 }
3378 if let Some(_) = self.stream_mode {
3379 return 2;
3380 }
3381 if let Some(_) = self.data_type {
3382 return 1;
3383 }
3384 0
3385 }
3386 }
3387
3388 impl fidl::encoding::ValueTypeMarker for StreamParameters {
3389 type Borrowed<'a> = &'a Self;
3390 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3391 value
3392 }
3393 }
3394
3395 unsafe impl fidl::encoding::TypeMarker for StreamParameters {
3396 type Owned = Self;
3397
3398 #[inline(always)]
3399 fn inline_align(_context: fidl::encoding::Context) -> usize {
3400 8
3401 }
3402
3403 #[inline(always)]
3404 fn inline_size(_context: fidl::encoding::Context) -> usize {
3405 16
3406 }
3407 }
3408
3409 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamParameters, D>
3410 for &StreamParameters
3411 {
3412 unsafe fn encode(
3413 self,
3414 encoder: &mut fidl::encoding::Encoder<'_, D>,
3415 offset: usize,
3416 mut depth: fidl::encoding::Depth,
3417 ) -> fidl::Result<()> {
3418 encoder.debug_check_bounds::<StreamParameters>(offset);
3419 let max_ordinal: u64 = self.max_ordinal_present();
3421 encoder.write_num(max_ordinal, offset);
3422 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3423 if max_ordinal == 0 {
3425 return Ok(());
3426 }
3427 depth.increment()?;
3428 let envelope_size = 8;
3429 let bytes_len = max_ordinal as usize * envelope_size;
3430 #[allow(unused_variables)]
3431 let offset = encoder.out_of_line_offset(bytes_len);
3432 let mut _prev_end_offset: usize = 0;
3433 if 1 > max_ordinal {
3434 return Ok(());
3435 }
3436
3437 let cur_offset: usize = (1 - 1) * envelope_size;
3440
3441 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3443
3444 fidl::encoding::encode_in_envelope_optional::<DataType, D>(
3449 self.data_type.as_ref().map(<DataType as fidl::encoding::ValueTypeMarker>::borrow),
3450 encoder,
3451 offset + cur_offset,
3452 depth,
3453 )?;
3454
3455 _prev_end_offset = cur_offset + envelope_size;
3456 if 2 > max_ordinal {
3457 return Ok(());
3458 }
3459
3460 let cur_offset: usize = (2 - 1) * envelope_size;
3463
3464 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3466
3467 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
3472 self.stream_mode
3473 .as_ref()
3474 .map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
3475 encoder,
3476 offset + cur_offset,
3477 depth,
3478 )?;
3479
3480 _prev_end_offset = cur_offset + envelope_size;
3481 if 3 > max_ordinal {
3482 return Ok(());
3483 }
3484
3485 let cur_offset: usize = (3 - 1) * envelope_size;
3488
3489 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3491
3492 fidl::encoding::encode_in_envelope_optional::<Format, D>(
3497 self.format.as_ref().map(<Format as fidl::encoding::ValueTypeMarker>::borrow),
3498 encoder,
3499 offset + cur_offset,
3500 depth,
3501 )?;
3502
3503 _prev_end_offset = cur_offset + envelope_size;
3504 if 4 > max_ordinal {
3505 return Ok(());
3506 }
3507
3508 let cur_offset: usize = (4 - 1) * envelope_size;
3511
3512 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3514
3515 fidl::encoding::encode_in_envelope_optional::<ClientSelectorConfiguration, D>(
3520 self.client_selector_configuration
3521 .as_ref()
3522 .map(<ClientSelectorConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3523 encoder,
3524 offset + cur_offset,
3525 depth,
3526 )?;
3527
3528 _prev_end_offset = cur_offset + envelope_size;
3529 if 5 > max_ordinal {
3530 return Ok(());
3531 }
3532
3533 let cur_offset: usize = (5 - 1) * envelope_size;
3536
3537 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3539
3540 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3545 self.batch_retrieval_timeout_seconds
3546 .as_ref()
3547 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3548 encoder,
3549 offset + cur_offset,
3550 depth,
3551 )?;
3552
3553 _prev_end_offset = cur_offset + envelope_size;
3554 if 6 > max_ordinal {
3555 return Ok(());
3556 }
3557
3558 let cur_offset: usize = (6 - 1) * envelope_size;
3561
3562 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3564
3565 fidl::encoding::encode_in_envelope_optional::<PerformanceConfiguration, D>(
3570 self.performance_configuration
3571 .as_ref()
3572 .map(<PerformanceConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3573 encoder,
3574 offset + cur_offset,
3575 depth,
3576 )?;
3577
3578 _prev_end_offset = cur_offset + envelope_size;
3579
3580 Ok(())
3581 }
3582 }
3583
3584 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamParameters {
3585 #[inline(always)]
3586 fn new_empty() -> Self {
3587 Self::default()
3588 }
3589
3590 unsafe fn decode(
3591 &mut self,
3592 decoder: &mut fidl::encoding::Decoder<'_, D>,
3593 offset: usize,
3594 mut depth: fidl::encoding::Depth,
3595 ) -> fidl::Result<()> {
3596 decoder.debug_check_bounds::<Self>(offset);
3597 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3598 None => return Err(fidl::Error::NotNullable),
3599 Some(len) => len,
3600 };
3601 if len == 0 {
3603 return Ok(());
3604 };
3605 depth.increment()?;
3606 let envelope_size = 8;
3607 let bytes_len = len * envelope_size;
3608 let offset = decoder.out_of_line_offset(bytes_len)?;
3609 let mut _next_ordinal_to_read = 0;
3611 let mut next_offset = offset;
3612 let end_offset = offset + bytes_len;
3613 _next_ordinal_to_read += 1;
3614 if next_offset >= end_offset {
3615 return Ok(());
3616 }
3617
3618 while _next_ordinal_to_read < 1 {
3620 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3621 _next_ordinal_to_read += 1;
3622 next_offset += envelope_size;
3623 }
3624
3625 let next_out_of_line = decoder.next_out_of_line();
3626 let handles_before = decoder.remaining_handles();
3627 if let Some((inlined, num_bytes, num_handles)) =
3628 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3629 {
3630 let member_inline_size =
3631 <DataType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3632 if inlined != (member_inline_size <= 4) {
3633 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3634 }
3635 let inner_offset;
3636 let mut inner_depth = depth.clone();
3637 if inlined {
3638 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3639 inner_offset = next_offset;
3640 } else {
3641 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3642 inner_depth.increment()?;
3643 }
3644 let val_ref = self.data_type.get_or_insert_with(|| fidl::new_empty!(DataType, D));
3645 fidl::decode!(DataType, D, val_ref, decoder, inner_offset, inner_depth)?;
3646 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3647 {
3648 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3649 }
3650 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3651 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3652 }
3653 }
3654
3655 next_offset += envelope_size;
3656 _next_ordinal_to_read += 1;
3657 if next_offset >= end_offset {
3658 return Ok(());
3659 }
3660
3661 while _next_ordinal_to_read < 2 {
3663 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3664 _next_ordinal_to_read += 1;
3665 next_offset += envelope_size;
3666 }
3667
3668 let next_out_of_line = decoder.next_out_of_line();
3669 let handles_before = decoder.remaining_handles();
3670 if let Some((inlined, num_bytes, num_handles)) =
3671 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3672 {
3673 let member_inline_size =
3674 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3675 if inlined != (member_inline_size <= 4) {
3676 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3677 }
3678 let inner_offset;
3679 let mut inner_depth = depth.clone();
3680 if inlined {
3681 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3682 inner_offset = next_offset;
3683 } else {
3684 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3685 inner_depth.increment()?;
3686 }
3687 let val_ref =
3688 self.stream_mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
3689 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
3690 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3691 {
3692 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3693 }
3694 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3695 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3696 }
3697 }
3698
3699 next_offset += envelope_size;
3700 _next_ordinal_to_read += 1;
3701 if next_offset >= end_offset {
3702 return Ok(());
3703 }
3704
3705 while _next_ordinal_to_read < 3 {
3707 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3708 _next_ordinal_to_read += 1;
3709 next_offset += envelope_size;
3710 }
3711
3712 let next_out_of_line = decoder.next_out_of_line();
3713 let handles_before = decoder.remaining_handles();
3714 if let Some((inlined, num_bytes, num_handles)) =
3715 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3716 {
3717 let member_inline_size =
3718 <Format as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3719 if inlined != (member_inline_size <= 4) {
3720 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3721 }
3722 let inner_offset;
3723 let mut inner_depth = depth.clone();
3724 if inlined {
3725 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3726 inner_offset = next_offset;
3727 } else {
3728 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3729 inner_depth.increment()?;
3730 }
3731 let val_ref = self.format.get_or_insert_with(|| fidl::new_empty!(Format, D));
3732 fidl::decode!(Format, D, val_ref, decoder, inner_offset, inner_depth)?;
3733 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3734 {
3735 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3736 }
3737 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3738 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3739 }
3740 }
3741
3742 next_offset += envelope_size;
3743 _next_ordinal_to_read += 1;
3744 if next_offset >= end_offset {
3745 return Ok(());
3746 }
3747
3748 while _next_ordinal_to_read < 4 {
3750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3751 _next_ordinal_to_read += 1;
3752 next_offset += envelope_size;
3753 }
3754
3755 let next_out_of_line = decoder.next_out_of_line();
3756 let handles_before = decoder.remaining_handles();
3757 if let Some((inlined, num_bytes, num_handles)) =
3758 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3759 {
3760 let member_inline_size =
3761 <ClientSelectorConfiguration as fidl::encoding::TypeMarker>::inline_size(
3762 decoder.context,
3763 );
3764 if inlined != (member_inline_size <= 4) {
3765 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3766 }
3767 let inner_offset;
3768 let mut inner_depth = depth.clone();
3769 if inlined {
3770 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3771 inner_offset = next_offset;
3772 } else {
3773 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3774 inner_depth.increment()?;
3775 }
3776 let val_ref = self
3777 .client_selector_configuration
3778 .get_or_insert_with(|| fidl::new_empty!(ClientSelectorConfiguration, D));
3779 fidl::decode!(
3780 ClientSelectorConfiguration,
3781 D,
3782 val_ref,
3783 decoder,
3784 inner_offset,
3785 inner_depth
3786 )?;
3787 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3788 {
3789 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3790 }
3791 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3792 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3793 }
3794 }
3795
3796 next_offset += envelope_size;
3797 _next_ordinal_to_read += 1;
3798 if next_offset >= end_offset {
3799 return Ok(());
3800 }
3801
3802 while _next_ordinal_to_read < 5 {
3804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3805 _next_ordinal_to_read += 1;
3806 next_offset += envelope_size;
3807 }
3808
3809 let next_out_of_line = decoder.next_out_of_line();
3810 let handles_before = decoder.remaining_handles();
3811 if let Some((inlined, num_bytes, num_handles)) =
3812 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3813 {
3814 let member_inline_size =
3815 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3816 if inlined != (member_inline_size <= 4) {
3817 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3818 }
3819 let inner_offset;
3820 let mut inner_depth = depth.clone();
3821 if inlined {
3822 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3823 inner_offset = next_offset;
3824 } else {
3825 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3826 inner_depth.increment()?;
3827 }
3828 let val_ref = self
3829 .batch_retrieval_timeout_seconds
3830 .get_or_insert_with(|| fidl::new_empty!(i64, D));
3831 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3832 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3833 {
3834 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3835 }
3836 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3837 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3838 }
3839 }
3840
3841 next_offset += envelope_size;
3842 _next_ordinal_to_read += 1;
3843 if next_offset >= end_offset {
3844 return Ok(());
3845 }
3846
3847 while _next_ordinal_to_read < 6 {
3849 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3850 _next_ordinal_to_read += 1;
3851 next_offset += envelope_size;
3852 }
3853
3854 let next_out_of_line = decoder.next_out_of_line();
3855 let handles_before = decoder.remaining_handles();
3856 if let Some((inlined, num_bytes, num_handles)) =
3857 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3858 {
3859 let member_inline_size =
3860 <PerformanceConfiguration as fidl::encoding::TypeMarker>::inline_size(
3861 decoder.context,
3862 );
3863 if inlined != (member_inline_size <= 4) {
3864 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3865 }
3866 let inner_offset;
3867 let mut inner_depth = depth.clone();
3868 if inlined {
3869 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3870 inner_offset = next_offset;
3871 } else {
3872 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3873 inner_depth.increment()?;
3874 }
3875 let val_ref = self
3876 .performance_configuration
3877 .get_or_insert_with(|| fidl::new_empty!(PerformanceConfiguration, D));
3878 fidl::decode!(
3879 PerformanceConfiguration,
3880 D,
3881 val_ref,
3882 decoder,
3883 inner_offset,
3884 inner_depth
3885 )?;
3886 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3887 {
3888 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3889 }
3890 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3891 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3892 }
3893 }
3894
3895 next_offset += envelope_size;
3896
3897 while next_offset < end_offset {
3899 _next_ordinal_to_read += 1;
3900 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3901 next_offset += envelope_size;
3902 }
3903
3904 Ok(())
3905 }
3906 }
3907
3908 impl fidl::encoding::ValueTypeMarker for ClientSelectorConfiguration {
3909 type Borrowed<'a> = &'a Self;
3910 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3911 value
3912 }
3913 }
3914
3915 unsafe impl fidl::encoding::TypeMarker for ClientSelectorConfiguration {
3916 type Owned = Self;
3917
3918 #[inline(always)]
3919 fn inline_align(_context: fidl::encoding::Context) -> usize {
3920 8
3921 }
3922
3923 #[inline(always)]
3924 fn inline_size(_context: fidl::encoding::Context) -> usize {
3925 16
3926 }
3927 }
3928
3929 unsafe impl<D: fidl::encoding::ResourceDialect>
3930 fidl::encoding::Encode<ClientSelectorConfiguration, D> for &ClientSelectorConfiguration
3931 {
3932 #[inline]
3933 unsafe fn encode(
3934 self,
3935 encoder: &mut fidl::encoding::Encoder<'_, D>,
3936 offset: usize,
3937 _depth: fidl::encoding::Depth,
3938 ) -> fidl::Result<()> {
3939 encoder.debug_check_bounds::<ClientSelectorConfiguration>(offset);
3940 encoder.write_num::<u64>(self.ordinal(), offset);
3941 match self {
3942 ClientSelectorConfiguration::Selectors(ref val) => {
3943 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<SelectorArgument>, D>(
3944 <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::ValueTypeMarker>::borrow(val),
3945 encoder, offset + 8, _depth
3946 )
3947 }
3948 ClientSelectorConfiguration::SelectAll(ref val) => {
3949 fidl::encoding::encode_in_envelope::<bool, D>(
3950 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3951 encoder, offset + 8, _depth
3952 )
3953 }
3954 ClientSelectorConfiguration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
3955 }
3956 }
3957 }
3958
3959 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3960 for ClientSelectorConfiguration
3961 {
3962 #[inline(always)]
3963 fn new_empty() -> Self {
3964 Self::__SourceBreaking { unknown_ordinal: 0 }
3965 }
3966
3967 #[inline]
3968 unsafe fn decode(
3969 &mut self,
3970 decoder: &mut fidl::encoding::Decoder<'_, D>,
3971 offset: usize,
3972 mut depth: fidl::encoding::Depth,
3973 ) -> fidl::Result<()> {
3974 decoder.debug_check_bounds::<Self>(offset);
3975 #[allow(unused_variables)]
3976 let next_out_of_line = decoder.next_out_of_line();
3977 let handles_before = decoder.remaining_handles();
3978 let (ordinal, inlined, num_bytes, num_handles) =
3979 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3980
3981 let member_inline_size = match ordinal {
3982 1 => <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3983 2 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3984 0 => return Err(fidl::Error::UnknownUnionTag),
3985 _ => num_bytes as usize,
3986 };
3987
3988 if inlined != (member_inline_size <= 4) {
3989 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3990 }
3991 let _inner_offset;
3992 if inlined {
3993 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3994 _inner_offset = offset + 8;
3995 } else {
3996 depth.increment()?;
3997 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3998 }
3999 match ordinal {
4000 1 => {
4001 #[allow(irrefutable_let_patterns)]
4002 if let ClientSelectorConfiguration::Selectors(_) = self {
4003 } else {
4005 *self = ClientSelectorConfiguration::Selectors(fidl::new_empty!(
4007 fidl::encoding::UnboundedVector<SelectorArgument>,
4008 D
4009 ));
4010 }
4011 #[allow(irrefutable_let_patterns)]
4012 if let ClientSelectorConfiguration::Selectors(ref mut val) = self {
4013 fidl::decode!(
4014 fidl::encoding::UnboundedVector<SelectorArgument>,
4015 D,
4016 val,
4017 decoder,
4018 _inner_offset,
4019 depth
4020 )?;
4021 } else {
4022 unreachable!()
4023 }
4024 }
4025 2 => {
4026 #[allow(irrefutable_let_patterns)]
4027 if let ClientSelectorConfiguration::SelectAll(_) = self {
4028 } else {
4030 *self = ClientSelectorConfiguration::SelectAll(fidl::new_empty!(bool, D));
4032 }
4033 #[allow(irrefutable_let_patterns)]
4034 if let ClientSelectorConfiguration::SelectAll(ref mut val) = self {
4035 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4036 } else {
4037 unreachable!()
4038 }
4039 }
4040 #[allow(deprecated)]
4041 ordinal => {
4042 for _ in 0..num_handles {
4043 decoder.drop_next_handle()?;
4044 }
4045 *self =
4046 ClientSelectorConfiguration::__SourceBreaking { unknown_ordinal: ordinal };
4047 }
4048 }
4049 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4050 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4051 }
4052 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4053 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4054 }
4055 Ok(())
4056 }
4057 }
4058
4059 impl fidl::encoding::ValueTypeMarker for SelectorArgument {
4060 type Borrowed<'a> = &'a Self;
4061 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4062 value
4063 }
4064 }
4065
4066 unsafe impl fidl::encoding::TypeMarker for SelectorArgument {
4067 type Owned = Self;
4068
4069 #[inline(always)]
4070 fn inline_align(_context: fidl::encoding::Context) -> usize {
4071 8
4072 }
4073
4074 #[inline(always)]
4075 fn inline_size(_context: fidl::encoding::Context) -> usize {
4076 16
4077 }
4078 }
4079
4080 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelectorArgument, D>
4081 for &SelectorArgument
4082 {
4083 #[inline]
4084 unsafe fn encode(
4085 self,
4086 encoder: &mut fidl::encoding::Encoder<'_, D>,
4087 offset: usize,
4088 _depth: fidl::encoding::Depth,
4089 ) -> fidl::Result<()> {
4090 encoder.debug_check_bounds::<SelectorArgument>(offset);
4091 encoder.write_num::<u64>(self.ordinal(), offset);
4092 match self {
4093 SelectorArgument::StructuredSelector(ref val) => {
4094 fidl::encoding::encode_in_envelope::<Selector, D>(
4095 <Selector as fidl::encoding::ValueTypeMarker>::borrow(val),
4096 encoder, offset + 8, _depth
4097 )
4098 }
4099 SelectorArgument::RawSelector(ref val) => {
4100 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4101 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4102 encoder, offset + 8, _depth
4103 )
4104 }
4105 SelectorArgument::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4106 }
4107 }
4108 }
4109
4110 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelectorArgument {
4111 #[inline(always)]
4112 fn new_empty() -> Self {
4113 Self::__SourceBreaking { unknown_ordinal: 0 }
4114 }
4115
4116 #[inline]
4117 unsafe fn decode(
4118 &mut self,
4119 decoder: &mut fidl::encoding::Decoder<'_, D>,
4120 offset: usize,
4121 mut depth: fidl::encoding::Depth,
4122 ) -> fidl::Result<()> {
4123 decoder.debug_check_bounds::<Self>(offset);
4124 #[allow(unused_variables)]
4125 let next_out_of_line = decoder.next_out_of_line();
4126 let handles_before = decoder.remaining_handles();
4127 let (ordinal, inlined, num_bytes, num_handles) =
4128 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4129
4130 let member_inline_size = match ordinal {
4131 1 => <Selector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4132 2 => {
4133 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4134 decoder.context,
4135 )
4136 }
4137 0 => return Err(fidl::Error::UnknownUnionTag),
4138 _ => num_bytes as usize,
4139 };
4140
4141 if inlined != (member_inline_size <= 4) {
4142 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4143 }
4144 let _inner_offset;
4145 if inlined {
4146 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4147 _inner_offset = offset + 8;
4148 } else {
4149 depth.increment()?;
4150 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4151 }
4152 match ordinal {
4153 1 => {
4154 #[allow(irrefutable_let_patterns)]
4155 if let SelectorArgument::StructuredSelector(_) = self {
4156 } else {
4158 *self = SelectorArgument::StructuredSelector(fidl::new_empty!(Selector, D));
4160 }
4161 #[allow(irrefutable_let_patterns)]
4162 if let SelectorArgument::StructuredSelector(ref mut val) = self {
4163 fidl::decode!(Selector, D, val, decoder, _inner_offset, depth)?;
4164 } else {
4165 unreachable!()
4166 }
4167 }
4168 2 => {
4169 #[allow(irrefutable_let_patterns)]
4170 if let SelectorArgument::RawSelector(_) = self {
4171 } else {
4173 *self = SelectorArgument::RawSelector(fidl::new_empty!(
4175 fidl::encoding::BoundedString<1024>,
4176 D
4177 ));
4178 }
4179 #[allow(irrefutable_let_patterns)]
4180 if let SelectorArgument::RawSelector(ref mut val) = self {
4181 fidl::decode!(
4182 fidl::encoding::BoundedString<1024>,
4183 D,
4184 val,
4185 decoder,
4186 _inner_offset,
4187 depth
4188 )?;
4189 } else {
4190 unreachable!()
4191 }
4192 }
4193 #[allow(deprecated)]
4194 ordinal => {
4195 for _ in 0..num_handles {
4196 decoder.drop_next_handle()?;
4197 }
4198 *self = SelectorArgument::__SourceBreaking { unknown_ordinal: ordinal };
4199 }
4200 }
4201 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4202 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4203 }
4204 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4205 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4206 }
4207 Ok(())
4208 }
4209 }
4210
4211 impl fidl::encoding::ValueTypeMarker for StringSelector {
4212 type Borrowed<'a> = &'a Self;
4213 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4214 value
4215 }
4216 }
4217
4218 unsafe impl fidl::encoding::TypeMarker for StringSelector {
4219 type Owned = Self;
4220
4221 #[inline(always)]
4222 fn inline_align(_context: fidl::encoding::Context) -> usize {
4223 8
4224 }
4225
4226 #[inline(always)]
4227 fn inline_size(_context: fidl::encoding::Context) -> usize {
4228 16
4229 }
4230 }
4231
4232 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StringSelector, D>
4233 for &StringSelector
4234 {
4235 #[inline]
4236 unsafe fn encode(
4237 self,
4238 encoder: &mut fidl::encoding::Encoder<'_, D>,
4239 offset: usize,
4240 _depth: fidl::encoding::Depth,
4241 ) -> fidl::Result<()> {
4242 encoder.debug_check_bounds::<StringSelector>(offset);
4243 encoder.write_num::<u64>(self.ordinal(), offset);
4244 match self {
4245 StringSelector::StringPattern(ref val) => {
4246 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4247 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4248 encoder, offset + 8, _depth
4249 )
4250 }
4251 StringSelector::ExactMatch(ref val) => {
4252 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4253 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4254 encoder, offset + 8, _depth
4255 )
4256 }
4257 StringSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4258 }
4259 }
4260 }
4261
4262 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StringSelector {
4263 #[inline(always)]
4264 fn new_empty() -> Self {
4265 Self::__SourceBreaking { unknown_ordinal: 0 }
4266 }
4267
4268 #[inline]
4269 unsafe fn decode(
4270 &mut self,
4271 decoder: &mut fidl::encoding::Decoder<'_, D>,
4272 offset: usize,
4273 mut depth: fidl::encoding::Depth,
4274 ) -> fidl::Result<()> {
4275 decoder.debug_check_bounds::<Self>(offset);
4276 #[allow(unused_variables)]
4277 let next_out_of_line = decoder.next_out_of_line();
4278 let handles_before = decoder.remaining_handles();
4279 let (ordinal, inlined, num_bytes, num_handles) =
4280 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4281
4282 let member_inline_size = match ordinal {
4283 1 => {
4284 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4285 decoder.context,
4286 )
4287 }
4288 2 => {
4289 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4290 decoder.context,
4291 )
4292 }
4293 0 => return Err(fidl::Error::UnknownUnionTag),
4294 _ => num_bytes as usize,
4295 };
4296
4297 if inlined != (member_inline_size <= 4) {
4298 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4299 }
4300 let _inner_offset;
4301 if inlined {
4302 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4303 _inner_offset = offset + 8;
4304 } else {
4305 depth.increment()?;
4306 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4307 }
4308 match ordinal {
4309 1 => {
4310 #[allow(irrefutable_let_patterns)]
4311 if let StringSelector::StringPattern(_) = self {
4312 } else {
4314 *self = StringSelector::StringPattern(fidl::new_empty!(
4316 fidl::encoding::BoundedString<1024>,
4317 D
4318 ));
4319 }
4320 #[allow(irrefutable_let_patterns)]
4321 if let StringSelector::StringPattern(ref mut val) = self {
4322 fidl::decode!(
4323 fidl::encoding::BoundedString<1024>,
4324 D,
4325 val,
4326 decoder,
4327 _inner_offset,
4328 depth
4329 )?;
4330 } else {
4331 unreachable!()
4332 }
4333 }
4334 2 => {
4335 #[allow(irrefutable_let_patterns)]
4336 if let StringSelector::ExactMatch(_) = self {
4337 } else {
4339 *self = StringSelector::ExactMatch(fidl::new_empty!(
4341 fidl::encoding::BoundedString<1024>,
4342 D
4343 ));
4344 }
4345 #[allow(irrefutable_let_patterns)]
4346 if let StringSelector::ExactMatch(ref mut val) = self {
4347 fidl::decode!(
4348 fidl::encoding::BoundedString<1024>,
4349 D,
4350 val,
4351 decoder,
4352 _inner_offset,
4353 depth
4354 )?;
4355 } else {
4356 unreachable!()
4357 }
4358 }
4359 #[allow(deprecated)]
4360 ordinal => {
4361 for _ in 0..num_handles {
4362 decoder.drop_next_handle()?;
4363 }
4364 *self = StringSelector::__SourceBreaking { unknown_ordinal: ordinal };
4365 }
4366 }
4367 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4368 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4369 }
4370 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4371 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4372 }
4373 Ok(())
4374 }
4375 }
4376
4377 impl fidl::encoding::ValueTypeMarker for TreeNames {
4378 type Borrowed<'a> = &'a Self;
4379 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4380 value
4381 }
4382 }
4383
4384 unsafe impl fidl::encoding::TypeMarker for TreeNames {
4385 type Owned = Self;
4386
4387 #[inline(always)]
4388 fn inline_align(_context: fidl::encoding::Context) -> usize {
4389 8
4390 }
4391
4392 #[inline(always)]
4393 fn inline_size(_context: fidl::encoding::Context) -> usize {
4394 16
4395 }
4396 }
4397
4398 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeNames, D>
4399 for &TreeNames
4400 {
4401 #[inline]
4402 unsafe fn encode(
4403 self,
4404 encoder: &mut fidl::encoding::Encoder<'_, D>,
4405 offset: usize,
4406 _depth: fidl::encoding::Depth,
4407 ) -> fidl::Result<()> {
4408 encoder.debug_check_bounds::<TreeNames>(offset);
4409 encoder.write_num::<u64>(self.ordinal(), offset);
4410 match self {
4411 TreeNames::Some(ref val) => {
4412 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>, D>(
4413 <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::ValueTypeMarker>::borrow(val),
4414 encoder, offset + 8, _depth
4415 )
4416 }
4417 TreeNames::All(ref val) => {
4418 fidl::encoding::encode_in_envelope::<All, D>(
4419 <All as fidl::encoding::ValueTypeMarker>::borrow(val),
4420 encoder, offset + 8, _depth
4421 )
4422 }
4423 TreeNames::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4424 }
4425 }
4426 }
4427
4428 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeNames {
4429 #[inline(always)]
4430 fn new_empty() -> Self {
4431 Self::__SourceBreaking { unknown_ordinal: 0 }
4432 }
4433
4434 #[inline]
4435 unsafe fn decode(
4436 &mut self,
4437 decoder: &mut fidl::encoding::Decoder<'_, D>,
4438 offset: usize,
4439 mut depth: fidl::encoding::Depth,
4440 ) -> fidl::Result<()> {
4441 decoder.debug_check_bounds::<Self>(offset);
4442 #[allow(unused_variables)]
4443 let next_out_of_line = decoder.next_out_of_line();
4444 let handles_before = decoder.remaining_handles();
4445 let (ordinal, inlined, num_bytes, num_handles) =
4446 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4447
4448 let member_inline_size = match ordinal {
4449 1 => <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4450 2 => <All as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4451 0 => return Err(fidl::Error::UnknownUnionTag),
4452 _ => num_bytes as usize,
4453 };
4454
4455 if inlined != (member_inline_size <= 4) {
4456 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4457 }
4458 let _inner_offset;
4459 if inlined {
4460 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4461 _inner_offset = offset + 8;
4462 } else {
4463 depth.increment()?;
4464 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4465 }
4466 match ordinal {
4467 1 => {
4468 #[allow(irrefutable_let_patterns)]
4469 if let TreeNames::Some(_) = self {
4470 } else {
4472 *self = TreeNames::Some(fidl::new_empty!(
4474 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4475 D
4476 ));
4477 }
4478 #[allow(irrefutable_let_patterns)]
4479 if let TreeNames::Some(ref mut val) = self {
4480 fidl::decode!(
4481 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4482 D,
4483 val,
4484 decoder,
4485 _inner_offset,
4486 depth
4487 )?;
4488 } else {
4489 unreachable!()
4490 }
4491 }
4492 2 => {
4493 #[allow(irrefutable_let_patterns)]
4494 if let TreeNames::All(_) = self {
4495 } else {
4497 *self = TreeNames::All(fidl::new_empty!(All, D));
4499 }
4500 #[allow(irrefutable_let_patterns)]
4501 if let TreeNames::All(ref mut val) = self {
4502 fidl::decode!(All, D, val, decoder, _inner_offset, depth)?;
4503 } else {
4504 unreachable!()
4505 }
4506 }
4507 #[allow(deprecated)]
4508 ordinal => {
4509 for _ in 0..num_handles {
4510 decoder.drop_next_handle()?;
4511 }
4512 *self = TreeNames::__SourceBreaking { unknown_ordinal: ordinal };
4513 }
4514 }
4515 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4516 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4517 }
4518 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4519 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4520 }
4521 Ok(())
4522 }
4523 }
4524
4525 impl fidl::encoding::ValueTypeMarker for TreeSelector {
4526 type Borrowed<'a> = &'a Self;
4527 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4528 value
4529 }
4530 }
4531
4532 unsafe impl fidl::encoding::TypeMarker for TreeSelector {
4533 type Owned = Self;
4534
4535 #[inline(always)]
4536 fn inline_align(_context: fidl::encoding::Context) -> usize {
4537 8
4538 }
4539
4540 #[inline(always)]
4541 fn inline_size(_context: fidl::encoding::Context) -> usize {
4542 16
4543 }
4544 }
4545
4546 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeSelector, D>
4547 for &TreeSelector
4548 {
4549 #[inline]
4550 unsafe fn encode(
4551 self,
4552 encoder: &mut fidl::encoding::Encoder<'_, D>,
4553 offset: usize,
4554 _depth: fidl::encoding::Depth,
4555 ) -> fidl::Result<()> {
4556 encoder.debug_check_bounds::<TreeSelector>(offset);
4557 encoder.write_num::<u64>(self.ordinal(), offset);
4558 match self {
4559 TreeSelector::SubtreeSelector(ref val) => {
4560 fidl::encoding::encode_in_envelope::<SubtreeSelector, D>(
4561 <SubtreeSelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4562 encoder,
4563 offset + 8,
4564 _depth,
4565 )
4566 }
4567 TreeSelector::PropertySelector(ref val) => {
4568 fidl::encoding::encode_in_envelope::<PropertySelector, D>(
4569 <PropertySelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4570 encoder,
4571 offset + 8,
4572 _depth,
4573 )
4574 }
4575 TreeSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4576 }
4577 }
4578 }
4579
4580 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeSelector {
4581 #[inline(always)]
4582 fn new_empty() -> Self {
4583 Self::__SourceBreaking { unknown_ordinal: 0 }
4584 }
4585
4586 #[inline]
4587 unsafe fn decode(
4588 &mut self,
4589 decoder: &mut fidl::encoding::Decoder<'_, D>,
4590 offset: usize,
4591 mut depth: fidl::encoding::Depth,
4592 ) -> fidl::Result<()> {
4593 decoder.debug_check_bounds::<Self>(offset);
4594 #[allow(unused_variables)]
4595 let next_out_of_line = decoder.next_out_of_line();
4596 let handles_before = decoder.remaining_handles();
4597 let (ordinal, inlined, num_bytes, num_handles) =
4598 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4599
4600 let member_inline_size = match ordinal {
4601 1 => <SubtreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4602 2 => <PropertySelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4603 0 => return Err(fidl::Error::UnknownUnionTag),
4604 _ => num_bytes as usize,
4605 };
4606
4607 if inlined != (member_inline_size <= 4) {
4608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4609 }
4610 let _inner_offset;
4611 if inlined {
4612 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4613 _inner_offset = offset + 8;
4614 } else {
4615 depth.increment()?;
4616 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4617 }
4618 match ordinal {
4619 1 => {
4620 #[allow(irrefutable_let_patterns)]
4621 if let TreeSelector::SubtreeSelector(_) = self {
4622 } else {
4624 *self = TreeSelector::SubtreeSelector(fidl::new_empty!(SubtreeSelector, D));
4626 }
4627 #[allow(irrefutable_let_patterns)]
4628 if let TreeSelector::SubtreeSelector(ref mut val) = self {
4629 fidl::decode!(SubtreeSelector, D, val, decoder, _inner_offset, depth)?;
4630 } else {
4631 unreachable!()
4632 }
4633 }
4634 2 => {
4635 #[allow(irrefutable_let_patterns)]
4636 if let TreeSelector::PropertySelector(_) = self {
4637 } else {
4639 *self =
4641 TreeSelector::PropertySelector(fidl::new_empty!(PropertySelector, D));
4642 }
4643 #[allow(irrefutable_let_patterns)]
4644 if let TreeSelector::PropertySelector(ref mut val) = self {
4645 fidl::decode!(PropertySelector, D, val, decoder, _inner_offset, depth)?;
4646 } else {
4647 unreachable!()
4648 }
4649 }
4650 #[allow(deprecated)]
4651 ordinal => {
4652 for _ in 0..num_handles {
4653 decoder.drop_next_handle()?;
4654 }
4655 *self = TreeSelector::__SourceBreaking { unknown_ordinal: ordinal };
4656 }
4657 }
4658 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4659 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4660 }
4661 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4662 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4663 }
4664 Ok(())
4665 }
4666 }
4667}