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 pub include_moniker: Option<bool>,
469 pub include_component_url: Option<bool>,
472 pub include_rolled_out: Option<bool>,
476 #[doc(hidden)]
477 pub __source_breaking: fidl::marker::SourceBreaking,
478}
479
480impl fidl::Persistable for LogStreamOptions {}
481
482#[derive(Clone, Debug, Default, PartialEq)]
484pub struct PerformanceConfiguration {
485 pub max_aggregate_content_size_bytes: Option<u64>,
491 pub batch_retrieval_timeout_seconds: Option<i64>,
500 #[doc(hidden)]
501 pub __source_breaking: fidl::marker::SourceBreaking,
502}
503
504impl fidl::Persistable for PerformanceConfiguration {}
505
506#[derive(Clone, Debug, Default, PartialEq)]
507pub struct SampleDatum {
508 pub selector: Option<SelectorArgument>,
510 pub strategy: Option<SampleStrategy>,
512 pub interval_secs: Option<i64>,
530 #[doc(hidden)]
531 pub __source_breaking: fidl::marker::SourceBreaking,
532}
533
534impl fidl::Persistable for SampleDatum {}
535
536#[derive(Clone, Debug, Default, PartialEq)]
538pub struct SampleParameters {
539 pub data: Option<Vec<SampleDatum>>,
545 #[doc(hidden)]
546 pub __source_breaking: fidl::marker::SourceBreaking,
547}
548
549impl fidl::Persistable for SampleParameters {}
550
551#[derive(Clone, Debug, Default, PartialEq)]
565pub struct Selector {
566 pub component_selector: Option<ComponentSelector>,
569 pub tree_selector: Option<TreeSelector>,
573 pub tree_names: Option<TreeNames>,
579 #[doc(hidden)]
580 pub __source_breaking: fidl::marker::SourceBreaking,
581}
582
583impl fidl::Persistable for Selector {}
584
585#[derive(Clone, Debug, Default, PartialEq)]
587pub struct StreamParameters {
588 pub data_type: Option<DataType>,
592 pub stream_mode: Option<StreamMode>,
596 pub format: Option<Format>,
600 pub client_selector_configuration: Option<ClientSelectorConfiguration>,
605 pub batch_retrieval_timeout_seconds: Option<i64>,
614 pub performance_configuration: Option<PerformanceConfiguration>,
617 #[doc(hidden)]
618 pub __source_breaking: fidl::marker::SourceBreaking,
619}
620
621impl fidl::Persistable for StreamParameters {}
622
623#[derive(Clone, Debug)]
624pub enum ClientSelectorConfiguration {
625 Selectors(Vec<SelectorArgument>),
629 SelectAll(bool),
632 #[doc(hidden)]
633 __SourceBreaking { unknown_ordinal: u64 },
634}
635
636#[macro_export]
638macro_rules! ClientSelectorConfigurationUnknown {
639 () => {
640 _
641 };
642}
643
644impl PartialEq for ClientSelectorConfiguration {
646 fn eq(&self, other: &Self) -> bool {
647 match (self, other) {
648 (Self::Selectors(x), Self::Selectors(y)) => *x == *y,
649 (Self::SelectAll(x), Self::SelectAll(y)) => *x == *y,
650 _ => false,
651 }
652 }
653}
654
655impl ClientSelectorConfiguration {
656 #[inline]
657 pub fn ordinal(&self) -> u64 {
658 match *self {
659 Self::Selectors(_) => 1,
660 Self::SelectAll(_) => 2,
661 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
662 }
663 }
664
665 #[inline]
666 pub fn unknown_variant_for_testing() -> Self {
667 Self::__SourceBreaking { unknown_ordinal: 0 }
668 }
669
670 #[inline]
671 pub fn is_unknown(&self) -> bool {
672 match self {
673 Self::__SourceBreaking { .. } => true,
674 _ => false,
675 }
676 }
677}
678
679impl fidl::Persistable for ClientSelectorConfiguration {}
680
681#[derive(Clone, Debug)]
684pub enum SelectorArgument {
685 StructuredSelector(Selector),
688 RawSelector(String),
695 #[doc(hidden)]
696 __SourceBreaking { unknown_ordinal: u64 },
697}
698
699#[macro_export]
701macro_rules! SelectorArgumentUnknown {
702 () => {
703 _
704 };
705}
706
707impl PartialEq for SelectorArgument {
709 fn eq(&self, other: &Self) -> bool {
710 match (self, other) {
711 (Self::StructuredSelector(x), Self::StructuredSelector(y)) => *x == *y,
712 (Self::RawSelector(x), Self::RawSelector(y)) => *x == *y,
713 _ => false,
714 }
715 }
716}
717
718impl SelectorArgument {
719 #[inline]
720 pub fn ordinal(&self) -> u64 {
721 match *self {
722 Self::StructuredSelector(_) => 1,
723 Self::RawSelector(_) => 2,
724 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
725 }
726 }
727
728 #[inline]
729 pub fn unknown_variant_for_testing() -> Self {
730 Self::__SourceBreaking { unknown_ordinal: 0 }
731 }
732
733 #[inline]
734 pub fn is_unknown(&self) -> bool {
735 match self {
736 Self::__SourceBreaking { .. } => true,
737 _ => false,
738 }
739 }
740}
741
742impl fidl::Persistable for SelectorArgument {}
743
744#[derive(Clone, Debug)]
747pub enum StringSelector {
748 StringPattern(String),
768 ExactMatch(String),
769 #[doc(hidden)]
770 __SourceBreaking {
771 unknown_ordinal: u64,
772 },
773}
774
775#[macro_export]
777macro_rules! StringSelectorUnknown {
778 () => {
779 _
780 };
781}
782
783impl PartialEq for StringSelector {
785 fn eq(&self, other: &Self) -> bool {
786 match (self, other) {
787 (Self::StringPattern(x), Self::StringPattern(y)) => *x == *y,
788 (Self::ExactMatch(x), Self::ExactMatch(y)) => *x == *y,
789 _ => false,
790 }
791 }
792}
793
794impl StringSelector {
795 #[inline]
796 pub fn ordinal(&self) -> u64 {
797 match *self {
798 Self::StringPattern(_) => 1,
799 Self::ExactMatch(_) => 2,
800 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
801 }
802 }
803
804 #[inline]
805 pub fn unknown_variant_for_testing() -> Self {
806 Self::__SourceBreaking { unknown_ordinal: 0 }
807 }
808
809 #[inline]
810 pub fn is_unknown(&self) -> bool {
811 match self {
812 Self::__SourceBreaking { .. } => true,
813 _ => false,
814 }
815 }
816}
817
818impl fidl::Persistable for StringSelector {}
819
820#[derive(Clone, Debug)]
824pub enum TreeNames {
825 Some(Vec<String>),
827 All(All),
830 #[doc(hidden)]
831 __SourceBreaking { unknown_ordinal: u64 },
832}
833
834#[macro_export]
836macro_rules! TreeNamesUnknown {
837 () => {
838 _
839 };
840}
841
842impl PartialEq for TreeNames {
844 fn eq(&self, other: &Self) -> bool {
845 match (self, other) {
846 (Self::Some(x), Self::Some(y)) => *x == *y,
847 (Self::All(x), Self::All(y)) => *x == *y,
848 _ => false,
849 }
850 }
851}
852
853impl TreeNames {
854 #[inline]
855 pub fn ordinal(&self) -> u64 {
856 match *self {
857 Self::Some(_) => 1,
858 Self::All(_) => 2,
859 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
860 }
861 }
862
863 #[inline]
864 pub fn unknown_variant_for_testing() -> Self {
865 Self::__SourceBreaking { unknown_ordinal: 0 }
866 }
867
868 #[inline]
869 pub fn is_unknown(&self) -> bool {
870 match self {
871 Self::__SourceBreaking { .. } => true,
872 _ => false,
873 }
874 }
875}
876
877impl fidl::Persistable for TreeNames {}
878
879#[derive(Clone, Debug)]
882pub enum TreeSelector {
883 SubtreeSelector(SubtreeSelector),
886 PropertySelector(PropertySelector),
889 #[doc(hidden)]
890 __SourceBreaking { unknown_ordinal: u64 },
891}
892
893#[macro_export]
895macro_rules! TreeSelectorUnknown {
896 () => {
897 _
898 };
899}
900
901impl PartialEq for TreeSelector {
903 fn eq(&self, other: &Self) -> bool {
904 match (self, other) {
905 (Self::SubtreeSelector(x), Self::SubtreeSelector(y)) => *x == *y,
906 (Self::PropertySelector(x), Self::PropertySelector(y)) => *x == *y,
907 _ => false,
908 }
909 }
910}
911
912impl TreeSelector {
913 #[inline]
914 pub fn ordinal(&self) -> u64 {
915 match *self {
916 Self::SubtreeSelector(_) => 1,
917 Self::PropertySelector(_) => 2,
918 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
919 }
920 }
921
922 #[inline]
923 pub fn unknown_variant_for_testing() -> Self {
924 Self::__SourceBreaking { unknown_ordinal: 0 }
925 }
926
927 #[inline]
928 pub fn is_unknown(&self) -> bool {
929 match self {
930 Self::__SourceBreaking { .. } => true,
931 _ => false,
932 }
933 }
934}
935
936impl fidl::Persistable for TreeSelector {}
937
938pub mod archive_accessor_ordinals {
939 pub const STREAM_DIAGNOSTICS: u64 = 0x20c73e2ecd653c3e;
940 pub const WAIT_FOR_READY: u64 = 0x122963198011bd24;
941}
942
943pub mod batch_iterator_ordinals {
944 pub const GET_NEXT: u64 = 0x781986486c6254a5;
945 pub const WAIT_FOR_READY: u64 = 0x70598ee271597603;
946}
947
948pub mod log_flusher_ordinals {
949 pub const WAIT_UNTIL_FLUSHED: u64 = 0x7dc4892e46748b5b;
950}
951
952pub mod log_settings_ordinals {
953 pub const SET_COMPONENT_INTEREST: u64 = 0x35f7004d2367f6c1;
954}
955
956pub mod log_stream_ordinals {
957 pub const CONNECT: u64 = 0x745eb34f10d51a88;
958}
959
960pub mod sample_ordinals {
961 pub const SET: u64 = 0x421a79bdbf45418e;
962 pub const COMMIT: u64 = 0x25a3bc5f26787e9b;
963}
964
965pub mod sample_sink_ordinals {
966 pub const ON_SAMPLE_READIED: u64 = 0x39096d97ed03335f;
967 pub const ON_NOW_OR_NEVER: u64 = 0x3dc94ca1e1290894;
968}
969
970mod internal {
971 use super::*;
972 unsafe impl fidl::encoding::TypeMarker for ConfigurationError {
973 type Owned = Self;
974
975 #[inline(always)]
976 fn inline_align(_context: fidl::encoding::Context) -> usize {
977 std::mem::align_of::<u32>()
978 }
979
980 #[inline(always)]
981 fn inline_size(_context: fidl::encoding::Context) -> usize {
982 std::mem::size_of::<u32>()
983 }
984
985 #[inline(always)]
986 fn encode_is_copy() -> bool {
987 false
988 }
989
990 #[inline(always)]
991 fn decode_is_copy() -> bool {
992 false
993 }
994 }
995
996 impl fidl::encoding::ValueTypeMarker for ConfigurationError {
997 type Borrowed<'a> = Self;
998 #[inline(always)]
999 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1000 *value
1001 }
1002 }
1003
1004 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1005 for ConfigurationError
1006 {
1007 #[inline]
1008 unsafe fn encode(
1009 self,
1010 encoder: &mut fidl::encoding::Encoder<'_, D>,
1011 offset: usize,
1012 _depth: fidl::encoding::Depth,
1013 ) -> fidl::Result<()> {
1014 encoder.debug_check_bounds::<Self>(offset);
1015 encoder.write_num(self.into_primitive(), offset);
1016 Ok(())
1017 }
1018 }
1019
1020 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigurationError {
1021 #[inline(always)]
1022 fn new_empty() -> Self {
1023 Self::unknown()
1024 }
1025
1026 #[inline]
1027 unsafe fn decode(
1028 &mut self,
1029 decoder: &mut fidl::encoding::Decoder<'_, D>,
1030 offset: usize,
1031 _depth: fidl::encoding::Depth,
1032 ) -> fidl::Result<()> {
1033 decoder.debug_check_bounds::<Self>(offset);
1034 let prim = decoder.read_num::<u32>(offset);
1035
1036 *self = Self::from_primitive_allow_unknown(prim);
1037 Ok(())
1038 }
1039 }
1040 unsafe impl fidl::encoding::TypeMarker for DataType {
1041 type Owned = Self;
1042
1043 #[inline(always)]
1044 fn inline_align(_context: fidl::encoding::Context) -> usize {
1045 std::mem::align_of::<u8>()
1046 }
1047
1048 #[inline(always)]
1049 fn inline_size(_context: fidl::encoding::Context) -> usize {
1050 std::mem::size_of::<u8>()
1051 }
1052
1053 #[inline(always)]
1054 fn encode_is_copy() -> bool {
1055 true
1056 }
1057
1058 #[inline(always)]
1059 fn decode_is_copy() -> bool {
1060 false
1061 }
1062 }
1063
1064 impl fidl::encoding::ValueTypeMarker for DataType {
1065 type Borrowed<'a> = Self;
1066 #[inline(always)]
1067 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1068 *value
1069 }
1070 }
1071
1072 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DataType {
1073 #[inline]
1074 unsafe fn encode(
1075 self,
1076 encoder: &mut fidl::encoding::Encoder<'_, D>,
1077 offset: usize,
1078 _depth: fidl::encoding::Depth,
1079 ) -> fidl::Result<()> {
1080 encoder.debug_check_bounds::<Self>(offset);
1081 encoder.write_num(self.into_primitive(), offset);
1082 Ok(())
1083 }
1084 }
1085
1086 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DataType {
1087 #[inline(always)]
1088 fn new_empty() -> Self {
1089 Self::Inspect
1090 }
1091
1092 #[inline]
1093 unsafe fn decode(
1094 &mut self,
1095 decoder: &mut fidl::encoding::Decoder<'_, D>,
1096 offset: usize,
1097 _depth: fidl::encoding::Depth,
1098 ) -> fidl::Result<()> {
1099 decoder.debug_check_bounds::<Self>(offset);
1100 let prim = decoder.read_num::<u8>(offset);
1101
1102 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1103 Ok(())
1104 }
1105 }
1106 unsafe impl fidl::encoding::TypeMarker for Format {
1107 type Owned = Self;
1108
1109 #[inline(always)]
1110 fn inline_align(_context: fidl::encoding::Context) -> usize {
1111 std::mem::align_of::<u32>()
1112 }
1113
1114 #[inline(always)]
1115 fn inline_size(_context: fidl::encoding::Context) -> usize {
1116 std::mem::size_of::<u32>()
1117 }
1118
1119 #[inline(always)]
1120 fn encode_is_copy() -> bool {
1121 true
1122 }
1123
1124 #[inline(always)]
1125 fn decode_is_copy() -> bool {
1126 false
1127 }
1128 }
1129
1130 impl fidl::encoding::ValueTypeMarker for Format {
1131 type Borrowed<'a> = Self;
1132 #[inline(always)]
1133 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1134 *value
1135 }
1136 }
1137
1138 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Format {
1139 #[inline]
1140 unsafe fn encode(
1141 self,
1142 encoder: &mut fidl::encoding::Encoder<'_, D>,
1143 offset: usize,
1144 _depth: fidl::encoding::Depth,
1145 ) -> fidl::Result<()> {
1146 encoder.debug_check_bounds::<Self>(offset);
1147 encoder.write_num(self.into_primitive(), offset);
1148 Ok(())
1149 }
1150 }
1151
1152 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
1153 #[inline(always)]
1154 fn new_empty() -> Self {
1155 Self::Json
1156 }
1157
1158 #[inline]
1159 unsafe fn decode(
1160 &mut self,
1161 decoder: &mut fidl::encoding::Decoder<'_, D>,
1162 offset: usize,
1163 _depth: fidl::encoding::Depth,
1164 ) -> fidl::Result<()> {
1165 decoder.debug_check_bounds::<Self>(offset);
1166 let prim = decoder.read_num::<u32>(offset);
1167
1168 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1169 Ok(())
1170 }
1171 }
1172 unsafe impl fidl::encoding::TypeMarker for ReaderError {
1173 type Owned = Self;
1174
1175 #[inline(always)]
1176 fn inline_align(_context: fidl::encoding::Context) -> usize {
1177 std::mem::align_of::<u32>()
1178 }
1179
1180 #[inline(always)]
1181 fn inline_size(_context: fidl::encoding::Context) -> usize {
1182 std::mem::size_of::<u32>()
1183 }
1184
1185 #[inline(always)]
1186 fn encode_is_copy() -> bool {
1187 true
1188 }
1189
1190 #[inline(always)]
1191 fn decode_is_copy() -> bool {
1192 false
1193 }
1194 }
1195
1196 impl fidl::encoding::ValueTypeMarker for ReaderError {
1197 type Borrowed<'a> = Self;
1198 #[inline(always)]
1199 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1200 *value
1201 }
1202 }
1203
1204 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ReaderError {
1205 #[inline]
1206 unsafe fn encode(
1207 self,
1208 encoder: &mut fidl::encoding::Encoder<'_, D>,
1209 offset: usize,
1210 _depth: fidl::encoding::Depth,
1211 ) -> fidl::Result<()> {
1212 encoder.debug_check_bounds::<Self>(offset);
1213 encoder.write_num(self.into_primitive(), offset);
1214 Ok(())
1215 }
1216 }
1217
1218 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ReaderError {
1219 #[inline(always)]
1220 fn new_empty() -> Self {
1221 Self::Io
1222 }
1223
1224 #[inline]
1225 unsafe fn decode(
1226 &mut self,
1227 decoder: &mut fidl::encoding::Decoder<'_, D>,
1228 offset: usize,
1229 _depth: fidl::encoding::Depth,
1230 ) -> fidl::Result<()> {
1231 decoder.debug_check_bounds::<Self>(offset);
1232 let prim = decoder.read_num::<u32>(offset);
1233
1234 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1235 Ok(())
1236 }
1237 }
1238 unsafe impl fidl::encoding::TypeMarker for RuntimeError {
1239 type Owned = Self;
1240
1241 #[inline(always)]
1242 fn inline_align(_context: fidl::encoding::Context) -> usize {
1243 std::mem::align_of::<u32>()
1244 }
1245
1246 #[inline(always)]
1247 fn inline_size(_context: fidl::encoding::Context) -> usize {
1248 std::mem::size_of::<u32>()
1249 }
1250
1251 #[inline(always)]
1252 fn encode_is_copy() -> bool {
1253 false
1254 }
1255
1256 #[inline(always)]
1257 fn decode_is_copy() -> bool {
1258 false
1259 }
1260 }
1261
1262 impl fidl::encoding::ValueTypeMarker for RuntimeError {
1263 type Borrowed<'a> = Self;
1264 #[inline(always)]
1265 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1266 *value
1267 }
1268 }
1269
1270 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for RuntimeError {
1271 #[inline]
1272 unsafe fn encode(
1273 self,
1274 encoder: &mut fidl::encoding::Encoder<'_, D>,
1275 offset: usize,
1276 _depth: fidl::encoding::Depth,
1277 ) -> fidl::Result<()> {
1278 encoder.debug_check_bounds::<Self>(offset);
1279 encoder.write_num(self.into_primitive(), offset);
1280 Ok(())
1281 }
1282 }
1283
1284 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RuntimeError {
1285 #[inline(always)]
1286 fn new_empty() -> Self {
1287 Self::unknown()
1288 }
1289
1290 #[inline]
1291 unsafe fn decode(
1292 &mut self,
1293 decoder: &mut fidl::encoding::Decoder<'_, D>,
1294 offset: usize,
1295 _depth: fidl::encoding::Depth,
1296 ) -> fidl::Result<()> {
1297 decoder.debug_check_bounds::<Self>(offset);
1298 let prim = decoder.read_num::<u32>(offset);
1299
1300 *self = Self::from_primitive_allow_unknown(prim);
1301 Ok(())
1302 }
1303 }
1304 unsafe impl fidl::encoding::TypeMarker for SampleStrategy {
1305 type Owned = Self;
1306
1307 #[inline(always)]
1308 fn inline_align(_context: fidl::encoding::Context) -> usize {
1309 std::mem::align_of::<u8>()
1310 }
1311
1312 #[inline(always)]
1313 fn inline_size(_context: fidl::encoding::Context) -> usize {
1314 std::mem::size_of::<u8>()
1315 }
1316
1317 #[inline(always)]
1318 fn encode_is_copy() -> bool {
1319 false
1320 }
1321
1322 #[inline(always)]
1323 fn decode_is_copy() -> bool {
1324 false
1325 }
1326 }
1327
1328 impl fidl::encoding::ValueTypeMarker for SampleStrategy {
1329 type Borrowed<'a> = Self;
1330 #[inline(always)]
1331 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1332 *value
1333 }
1334 }
1335
1336 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SampleStrategy {
1337 #[inline]
1338 unsafe fn encode(
1339 self,
1340 encoder: &mut fidl::encoding::Encoder<'_, D>,
1341 offset: usize,
1342 _depth: fidl::encoding::Depth,
1343 ) -> fidl::Result<()> {
1344 encoder.debug_check_bounds::<Self>(offset);
1345 encoder.write_num(self.into_primitive(), offset);
1346 Ok(())
1347 }
1348 }
1349
1350 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleStrategy {
1351 #[inline(always)]
1352 fn new_empty() -> Self {
1353 Self::unknown()
1354 }
1355
1356 #[inline]
1357 unsafe fn decode(
1358 &mut self,
1359 decoder: &mut fidl::encoding::Decoder<'_, D>,
1360 offset: usize,
1361 _depth: fidl::encoding::Depth,
1362 ) -> fidl::Result<()> {
1363 decoder.debug_check_bounds::<Self>(offset);
1364 let prim = decoder.read_num::<u8>(offset);
1365
1366 *self = Self::from_primitive_allow_unknown(prim);
1367 Ok(())
1368 }
1369 }
1370 unsafe impl fidl::encoding::TypeMarker for StreamMode {
1371 type Owned = Self;
1372
1373 #[inline(always)]
1374 fn inline_align(_context: fidl::encoding::Context) -> usize {
1375 std::mem::align_of::<u8>()
1376 }
1377
1378 #[inline(always)]
1379 fn inline_size(_context: fidl::encoding::Context) -> usize {
1380 std::mem::size_of::<u8>()
1381 }
1382
1383 #[inline(always)]
1384 fn encode_is_copy() -> bool {
1385 true
1386 }
1387
1388 #[inline(always)]
1389 fn decode_is_copy() -> bool {
1390 false
1391 }
1392 }
1393
1394 impl fidl::encoding::ValueTypeMarker for StreamMode {
1395 type Borrowed<'a> = Self;
1396 #[inline(always)]
1397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1398 *value
1399 }
1400 }
1401
1402 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamMode {
1403 #[inline]
1404 unsafe fn encode(
1405 self,
1406 encoder: &mut fidl::encoding::Encoder<'_, D>,
1407 offset: usize,
1408 _depth: fidl::encoding::Depth,
1409 ) -> fidl::Result<()> {
1410 encoder.debug_check_bounds::<Self>(offset);
1411 encoder.write_num(self.into_primitive(), offset);
1412 Ok(())
1413 }
1414 }
1415
1416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamMode {
1417 #[inline(always)]
1418 fn new_empty() -> Self {
1419 Self::Snapshot
1420 }
1421
1422 #[inline]
1423 unsafe fn decode(
1424 &mut self,
1425 decoder: &mut fidl::encoding::Decoder<'_, D>,
1426 offset: usize,
1427 _depth: fidl::encoding::Depth,
1428 ) -> fidl::Result<()> {
1429 decoder.debug_check_bounds::<Self>(offset);
1430 let prim = decoder.read_num::<u8>(offset);
1431
1432 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1433 Ok(())
1434 }
1435 }
1436
1437 impl fidl::encoding::ValueTypeMarker for All {
1438 type Borrowed<'a> = &'a Self;
1439 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1440 value
1441 }
1442 }
1443
1444 unsafe impl fidl::encoding::TypeMarker for All {
1445 type Owned = Self;
1446
1447 #[inline(always)]
1448 fn inline_align(_context: fidl::encoding::Context) -> usize {
1449 1
1450 }
1451
1452 #[inline(always)]
1453 fn inline_size(_context: fidl::encoding::Context) -> usize {
1454 1
1455 }
1456 }
1457
1458 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<All, D> for &All {
1459 #[inline]
1460 unsafe fn encode(
1461 self,
1462 encoder: &mut fidl::encoding::Encoder<'_, D>,
1463 offset: usize,
1464 _depth: fidl::encoding::Depth,
1465 ) -> fidl::Result<()> {
1466 encoder.debug_check_bounds::<All>(offset);
1467 encoder.write_num(0u8, offset);
1468 Ok(())
1469 }
1470 }
1471
1472 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for All {
1473 #[inline(always)]
1474 fn new_empty() -> Self {
1475 Self
1476 }
1477
1478 #[inline]
1479 unsafe fn decode(
1480 &mut self,
1481 decoder: &mut fidl::encoding::Decoder<'_, D>,
1482 offset: usize,
1483 _depth: fidl::encoding::Depth,
1484 ) -> fidl::Result<()> {
1485 decoder.debug_check_bounds::<Self>(offset);
1486 match decoder.read_num::<u8>(offset) {
1487 0 => Ok(()),
1488 _ => Err(fidl::Error::Invalid),
1489 }
1490 }
1491 }
1492
1493 impl fidl::encoding::ValueTypeMarker for LogInterestSelector {
1494 type Borrowed<'a> = &'a Self;
1495 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1496 value
1497 }
1498 }
1499
1500 unsafe impl fidl::encoding::TypeMarker for LogInterestSelector {
1501 type Owned = Self;
1502
1503 #[inline(always)]
1504 fn inline_align(_context: fidl::encoding::Context) -> usize {
1505 8
1506 }
1507
1508 #[inline(always)]
1509 fn inline_size(_context: fidl::encoding::Context) -> usize {
1510 32
1511 }
1512 }
1513
1514 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogInterestSelector, D>
1515 for &LogInterestSelector
1516 {
1517 #[inline]
1518 unsafe fn encode(
1519 self,
1520 encoder: &mut fidl::encoding::Encoder<'_, D>,
1521 offset: usize,
1522 _depth: fidl::encoding::Depth,
1523 ) -> fidl::Result<()> {
1524 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1525 fidl::encoding::Encode::<LogInterestSelector, D>::encode(
1527 (
1528 <ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.selector),
1529 <fidl_fuchsia_diagnostics_types__common::Interest as fidl::encoding::ValueTypeMarker>::borrow(&self.interest),
1530 ),
1531 encoder, offset, _depth
1532 )
1533 }
1534 }
1535 unsafe impl<
1536 D: fidl::encoding::ResourceDialect,
1537 T0: fidl::encoding::Encode<ComponentSelector, D>,
1538 T1: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types__common::Interest, D>,
1539 > fidl::encoding::Encode<LogInterestSelector, D> for (T0, T1)
1540 {
1541 #[inline]
1542 unsafe fn encode(
1543 self,
1544 encoder: &mut fidl::encoding::Encoder<'_, D>,
1545 offset: usize,
1546 depth: fidl::encoding::Depth,
1547 ) -> fidl::Result<()> {
1548 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1549 self.0.encode(encoder, offset + 0, depth)?;
1553 self.1.encode(encoder, offset + 16, depth)?;
1554 Ok(())
1555 }
1556 }
1557
1558 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogInterestSelector {
1559 #[inline(always)]
1560 fn new_empty() -> Self {
1561 Self {
1562 selector: fidl::new_empty!(ComponentSelector, D),
1563 interest: fidl::new_empty!(fidl_fuchsia_diagnostics_types__common::Interest, D),
1564 }
1565 }
1566
1567 #[inline]
1568 unsafe fn decode(
1569 &mut self,
1570 decoder: &mut fidl::encoding::Decoder<'_, D>,
1571 offset: usize,
1572 _depth: fidl::encoding::Depth,
1573 ) -> fidl::Result<()> {
1574 decoder.debug_check_bounds::<Self>(offset);
1575 fidl::decode!(ComponentSelector, D, &mut self.selector, decoder, offset + 0, _depth)?;
1577 fidl::decode!(
1578 fidl_fuchsia_diagnostics_types__common::Interest,
1579 D,
1580 &mut self.interest,
1581 decoder,
1582 offset + 16,
1583 _depth
1584 )?;
1585 Ok(())
1586 }
1587 }
1588
1589 impl fidl::encoding::ValueTypeMarker for PropertySelector {
1590 type Borrowed<'a> = &'a Self;
1591 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1592 value
1593 }
1594 }
1595
1596 unsafe impl fidl::encoding::TypeMarker for PropertySelector {
1597 type Owned = Self;
1598
1599 #[inline(always)]
1600 fn inline_align(_context: fidl::encoding::Context) -> usize {
1601 8
1602 }
1603
1604 #[inline(always)]
1605 fn inline_size(_context: fidl::encoding::Context) -> usize {
1606 32
1607 }
1608 }
1609
1610 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PropertySelector, D>
1611 for &PropertySelector
1612 {
1613 #[inline]
1614 unsafe fn encode(
1615 self,
1616 encoder: &mut fidl::encoding::Encoder<'_, D>,
1617 offset: usize,
1618 _depth: fidl::encoding::Depth,
1619 ) -> fidl::Result<()> {
1620 encoder.debug_check_bounds::<PropertySelector>(offset);
1621 fidl::encoding::Encode::<PropertySelector, D>::encode(
1623 (
1624 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1625 <StringSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.target_properties),
1626 ),
1627 encoder, offset, _depth
1628 )
1629 }
1630 }
1631 unsafe impl<
1632 D: fidl::encoding::ResourceDialect,
1633 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1634 T1: fidl::encoding::Encode<StringSelector, D>,
1635 > fidl::encoding::Encode<PropertySelector, D> for (T0, T1)
1636 {
1637 #[inline]
1638 unsafe fn encode(
1639 self,
1640 encoder: &mut fidl::encoding::Encoder<'_, D>,
1641 offset: usize,
1642 depth: fidl::encoding::Depth,
1643 ) -> fidl::Result<()> {
1644 encoder.debug_check_bounds::<PropertySelector>(offset);
1645 self.0.encode(encoder, offset + 0, depth)?;
1649 self.1.encode(encoder, offset + 16, depth)?;
1650 Ok(())
1651 }
1652 }
1653
1654 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PropertySelector {
1655 #[inline(always)]
1656 fn new_empty() -> Self {
1657 Self {
1658 node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D),
1659 target_properties: fidl::new_empty!(StringSelector, D),
1660 }
1661 }
1662
1663 #[inline]
1664 unsafe fn decode(
1665 &mut self,
1666 decoder: &mut fidl::encoding::Decoder<'_, D>,
1667 offset: usize,
1668 _depth: fidl::encoding::Depth,
1669 ) -> fidl::Result<()> {
1670 decoder.debug_check_bounds::<Self>(offset);
1671 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1673 fidl::decode!(
1674 StringSelector,
1675 D,
1676 &mut self.target_properties,
1677 decoder,
1678 offset + 16,
1679 _depth
1680 )?;
1681 Ok(())
1682 }
1683 }
1684
1685 impl fidl::encoding::ValueTypeMarker for SubtreeSelector {
1686 type Borrowed<'a> = &'a Self;
1687 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1688 value
1689 }
1690 }
1691
1692 unsafe impl fidl::encoding::TypeMarker for SubtreeSelector {
1693 type Owned = Self;
1694
1695 #[inline(always)]
1696 fn inline_align(_context: fidl::encoding::Context) -> usize {
1697 8
1698 }
1699
1700 #[inline(always)]
1701 fn inline_size(_context: fidl::encoding::Context) -> usize {
1702 16
1703 }
1704 }
1705
1706 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubtreeSelector, D>
1707 for &SubtreeSelector
1708 {
1709 #[inline]
1710 unsafe fn encode(
1711 self,
1712 encoder: &mut fidl::encoding::Encoder<'_, D>,
1713 offset: usize,
1714 _depth: fidl::encoding::Depth,
1715 ) -> fidl::Result<()> {
1716 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1717 fidl::encoding::Encode::<SubtreeSelector, D>::encode(
1719 (
1720 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1721 ),
1722 encoder, offset, _depth
1723 )
1724 }
1725 }
1726 unsafe impl<
1727 D: fidl::encoding::ResourceDialect,
1728 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1729 > fidl::encoding::Encode<SubtreeSelector, D> for (T0,)
1730 {
1731 #[inline]
1732 unsafe fn encode(
1733 self,
1734 encoder: &mut fidl::encoding::Encoder<'_, D>,
1735 offset: usize,
1736 depth: fidl::encoding::Depth,
1737 ) -> fidl::Result<()> {
1738 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1739 self.0.encode(encoder, offset + 0, depth)?;
1743 Ok(())
1744 }
1745 }
1746
1747 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubtreeSelector {
1748 #[inline(always)]
1749 fn new_empty() -> Self {
1750 Self { node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D) }
1751 }
1752
1753 #[inline]
1754 unsafe fn decode(
1755 &mut self,
1756 decoder: &mut fidl::encoding::Decoder<'_, D>,
1757 offset: usize,
1758 _depth: fidl::encoding::Depth,
1759 ) -> fidl::Result<()> {
1760 decoder.debug_check_bounds::<Self>(offset);
1761 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1763 Ok(())
1764 }
1765 }
1766
1767 impl ComponentSelector {
1768 #[inline(always)]
1769 fn max_ordinal_present(&self) -> u64 {
1770 if let Some(_) = self.moniker_segments {
1771 return 1;
1772 }
1773 0
1774 }
1775 }
1776
1777 impl fidl::encoding::ValueTypeMarker for ComponentSelector {
1778 type Borrowed<'a> = &'a Self;
1779 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1780 value
1781 }
1782 }
1783
1784 unsafe impl fidl::encoding::TypeMarker for ComponentSelector {
1785 type Owned = Self;
1786
1787 #[inline(always)]
1788 fn inline_align(_context: fidl::encoding::Context) -> usize {
1789 8
1790 }
1791
1792 #[inline(always)]
1793 fn inline_size(_context: fidl::encoding::Context) -> usize {
1794 16
1795 }
1796 }
1797
1798 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentSelector, D>
1799 for &ComponentSelector
1800 {
1801 unsafe fn encode(
1802 self,
1803 encoder: &mut fidl::encoding::Encoder<'_, D>,
1804 offset: usize,
1805 mut depth: fidl::encoding::Depth,
1806 ) -> fidl::Result<()> {
1807 encoder.debug_check_bounds::<ComponentSelector>(offset);
1808 let max_ordinal: u64 = self.max_ordinal_present();
1810 encoder.write_num(max_ordinal, offset);
1811 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1812 if max_ordinal == 0 {
1814 return Ok(());
1815 }
1816 depth.increment()?;
1817 let envelope_size = 8;
1818 let bytes_len = max_ordinal as usize * envelope_size;
1819 #[allow(unused_variables)]
1820 let offset = encoder.out_of_line_offset(bytes_len);
1821 let mut _prev_end_offset: usize = 0;
1822 if 1 > max_ordinal {
1823 return Ok(());
1824 }
1825
1826 let cur_offset: usize = (1 - 1) * envelope_size;
1829
1830 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1832
1833 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<StringSelector, 25>, D>(
1838 self.moniker_segments.as_ref().map(<fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::ValueTypeMarker>::borrow),
1839 encoder, offset + cur_offset, depth
1840 )?;
1841
1842 _prev_end_offset = cur_offset + envelope_size;
1843
1844 Ok(())
1845 }
1846 }
1847
1848 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentSelector {
1849 #[inline(always)]
1850 fn new_empty() -> Self {
1851 Self::default()
1852 }
1853
1854 unsafe fn decode(
1855 &mut self,
1856 decoder: &mut fidl::encoding::Decoder<'_, D>,
1857 offset: usize,
1858 mut depth: fidl::encoding::Depth,
1859 ) -> fidl::Result<()> {
1860 decoder.debug_check_bounds::<Self>(offset);
1861 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1862 None => return Err(fidl::Error::NotNullable),
1863 Some(len) => len,
1864 };
1865 if len == 0 {
1867 return Ok(());
1868 };
1869 depth.increment()?;
1870 let envelope_size = 8;
1871 let bytes_len = len * envelope_size;
1872 let offset = decoder.out_of_line_offset(bytes_len)?;
1873 let mut _next_ordinal_to_read = 0;
1875 let mut next_offset = offset;
1876 let end_offset = offset + bytes_len;
1877 _next_ordinal_to_read += 1;
1878 if next_offset >= end_offset {
1879 return Ok(());
1880 }
1881
1882 while _next_ordinal_to_read < 1 {
1884 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1885 _next_ordinal_to_read += 1;
1886 next_offset += envelope_size;
1887 }
1888
1889 let next_out_of_line = decoder.next_out_of_line();
1890 let handles_before = decoder.remaining_handles();
1891 if let Some((inlined, num_bytes, num_handles)) =
1892 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1893 {
1894 let member_inline_size = <fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1895 if inlined != (member_inline_size <= 4) {
1896 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1897 }
1898 let inner_offset;
1899 let mut inner_depth = depth.clone();
1900 if inlined {
1901 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1902 inner_offset = next_offset;
1903 } else {
1904 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1905 inner_depth.increment()?;
1906 }
1907 let val_ref = self.moniker_segments.get_or_insert_with(
1908 || fidl::new_empty!(fidl::encoding::Vector<StringSelector, 25>, D),
1909 );
1910 fidl::decode!(fidl::encoding::Vector<StringSelector, 25>, D, val_ref, decoder, inner_offset, inner_depth)?;
1911 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1912 {
1913 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1914 }
1915 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1916 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1917 }
1918 }
1919
1920 next_offset += envelope_size;
1921
1922 while next_offset < end_offset {
1924 _next_ordinal_to_read += 1;
1925 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1926 next_offset += envelope_size;
1927 }
1928
1929 Ok(())
1930 }
1931 }
1932
1933 impl LogSettingsSetComponentInterestRequest {
1934 #[inline(always)]
1935 fn max_ordinal_present(&self) -> u64 {
1936 if let Some(_) = self.persist {
1937 return 2;
1938 }
1939 if let Some(_) = self.selectors {
1940 return 1;
1941 }
1942 0
1943 }
1944 }
1945
1946 impl fidl::encoding::ValueTypeMarker for LogSettingsSetComponentInterestRequest {
1947 type Borrowed<'a> = &'a Self;
1948 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1949 value
1950 }
1951 }
1952
1953 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetComponentInterestRequest {
1954 type Owned = Self;
1955
1956 #[inline(always)]
1957 fn inline_align(_context: fidl::encoding::Context) -> usize {
1958 8
1959 }
1960
1961 #[inline(always)]
1962 fn inline_size(_context: fidl::encoding::Context) -> usize {
1963 16
1964 }
1965 }
1966
1967 unsafe impl<D: fidl::encoding::ResourceDialect>
1968 fidl::encoding::Encode<LogSettingsSetComponentInterestRequest, D>
1969 for &LogSettingsSetComponentInterestRequest
1970 {
1971 unsafe fn encode(
1972 self,
1973 encoder: &mut fidl::encoding::Encoder<'_, D>,
1974 offset: usize,
1975 mut depth: fidl::encoding::Depth,
1976 ) -> fidl::Result<()> {
1977 encoder.debug_check_bounds::<LogSettingsSetComponentInterestRequest>(offset);
1978 let max_ordinal: u64 = self.max_ordinal_present();
1980 encoder.write_num(max_ordinal, offset);
1981 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1982 if max_ordinal == 0 {
1984 return Ok(());
1985 }
1986 depth.increment()?;
1987 let envelope_size = 8;
1988 let bytes_len = max_ordinal as usize * envelope_size;
1989 #[allow(unused_variables)]
1990 let offset = encoder.out_of_line_offset(bytes_len);
1991 let mut _prev_end_offset: usize = 0;
1992 if 1 > max_ordinal {
1993 return Ok(());
1994 }
1995
1996 let cur_offset: usize = (1 - 1) * envelope_size;
1999
2000 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2002
2003 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<LogInterestSelector, 64>, D>(
2008 self.selectors.as_ref().map(<fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow),
2009 encoder, offset + cur_offset, depth
2010 )?;
2011
2012 _prev_end_offset = cur_offset + envelope_size;
2013 if 2 > max_ordinal {
2014 return Ok(());
2015 }
2016
2017 let cur_offset: usize = (2 - 1) * envelope_size;
2020
2021 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2023
2024 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2029 self.persist.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2030 encoder,
2031 offset + cur_offset,
2032 depth,
2033 )?;
2034
2035 _prev_end_offset = cur_offset + envelope_size;
2036
2037 Ok(())
2038 }
2039 }
2040
2041 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2042 for LogSettingsSetComponentInterestRequest
2043 {
2044 #[inline(always)]
2045 fn new_empty() -> Self {
2046 Self::default()
2047 }
2048
2049 unsafe fn decode(
2050 &mut self,
2051 decoder: &mut fidl::encoding::Decoder<'_, D>,
2052 offset: usize,
2053 mut depth: fidl::encoding::Depth,
2054 ) -> fidl::Result<()> {
2055 decoder.debug_check_bounds::<Self>(offset);
2056 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2057 None => return Err(fidl::Error::NotNullable),
2058 Some(len) => len,
2059 };
2060 if len == 0 {
2062 return Ok(());
2063 };
2064 depth.increment()?;
2065 let envelope_size = 8;
2066 let bytes_len = len * envelope_size;
2067 let offset = decoder.out_of_line_offset(bytes_len)?;
2068 let mut _next_ordinal_to_read = 0;
2070 let mut next_offset = offset;
2071 let end_offset = offset + bytes_len;
2072 _next_ordinal_to_read += 1;
2073 if next_offset >= end_offset {
2074 return Ok(());
2075 }
2076
2077 while _next_ordinal_to_read < 1 {
2079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2080 _next_ordinal_to_read += 1;
2081 next_offset += envelope_size;
2082 }
2083
2084 let next_out_of_line = decoder.next_out_of_line();
2085 let handles_before = decoder.remaining_handles();
2086 if let Some((inlined, num_bytes, num_handles)) =
2087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2088 {
2089 let member_inline_size = <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2090 if inlined != (member_inline_size <= 4) {
2091 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2092 }
2093 let inner_offset;
2094 let mut inner_depth = depth.clone();
2095 if inlined {
2096 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2097 inner_offset = next_offset;
2098 } else {
2099 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2100 inner_depth.increment()?;
2101 }
2102 let val_ref = self.selectors.get_or_insert_with(
2103 || fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D),
2104 );
2105 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
2106 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2107 {
2108 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2109 }
2110 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2111 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2112 }
2113 }
2114
2115 next_offset += envelope_size;
2116 _next_ordinal_to_read += 1;
2117 if next_offset >= end_offset {
2118 return Ok(());
2119 }
2120
2121 while _next_ordinal_to_read < 2 {
2123 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2124 _next_ordinal_to_read += 1;
2125 next_offset += envelope_size;
2126 }
2127
2128 let next_out_of_line = decoder.next_out_of_line();
2129 let handles_before = decoder.remaining_handles();
2130 if let Some((inlined, num_bytes, num_handles)) =
2131 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2132 {
2133 let member_inline_size =
2134 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2135 if inlined != (member_inline_size <= 4) {
2136 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2137 }
2138 let inner_offset;
2139 let mut inner_depth = depth.clone();
2140 if inlined {
2141 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2142 inner_offset = next_offset;
2143 } else {
2144 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2145 inner_depth.increment()?;
2146 }
2147 let val_ref = self.persist.get_or_insert_with(|| fidl::new_empty!(bool, D));
2148 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2149 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2150 {
2151 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2152 }
2153 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2154 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2155 }
2156 }
2157
2158 next_offset += envelope_size;
2159
2160 while next_offset < end_offset {
2162 _next_ordinal_to_read += 1;
2163 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2164 next_offset += envelope_size;
2165 }
2166
2167 Ok(())
2168 }
2169 }
2170
2171 impl LogStreamOptions {
2172 #[inline(always)]
2173 fn max_ordinal_present(&self) -> u64 {
2174 if let Some(_) = self.include_rolled_out {
2175 return 4;
2176 }
2177 if let Some(_) = self.include_component_url {
2178 return 3;
2179 }
2180 if let Some(_) = self.include_moniker {
2181 return 2;
2182 }
2183 if let Some(_) = self.mode {
2184 return 1;
2185 }
2186 0
2187 }
2188 }
2189
2190 impl fidl::encoding::ValueTypeMarker for LogStreamOptions {
2191 type Borrowed<'a> = &'a Self;
2192 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2193 value
2194 }
2195 }
2196
2197 unsafe impl fidl::encoding::TypeMarker for LogStreamOptions {
2198 type Owned = Self;
2199
2200 #[inline(always)]
2201 fn inline_align(_context: fidl::encoding::Context) -> usize {
2202 8
2203 }
2204
2205 #[inline(always)]
2206 fn inline_size(_context: fidl::encoding::Context) -> usize {
2207 16
2208 }
2209 }
2210
2211 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogStreamOptions, D>
2212 for &LogStreamOptions
2213 {
2214 unsafe fn encode(
2215 self,
2216 encoder: &mut fidl::encoding::Encoder<'_, D>,
2217 offset: usize,
2218 mut depth: fidl::encoding::Depth,
2219 ) -> fidl::Result<()> {
2220 encoder.debug_check_bounds::<LogStreamOptions>(offset);
2221 let max_ordinal: u64 = self.max_ordinal_present();
2223 encoder.write_num(max_ordinal, offset);
2224 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2225 if max_ordinal == 0 {
2227 return Ok(());
2228 }
2229 depth.increment()?;
2230 let envelope_size = 8;
2231 let bytes_len = max_ordinal as usize * envelope_size;
2232 #[allow(unused_variables)]
2233 let offset = encoder.out_of_line_offset(bytes_len);
2234 let mut _prev_end_offset: usize = 0;
2235 if 1 > max_ordinal {
2236 return Ok(());
2237 }
2238
2239 let cur_offset: usize = (1 - 1) * envelope_size;
2242
2243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2245
2246 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
2251 self.mode.as_ref().map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
2252 encoder,
2253 offset + cur_offset,
2254 depth,
2255 )?;
2256
2257 _prev_end_offset = cur_offset + envelope_size;
2258 if 2 > max_ordinal {
2259 return Ok(());
2260 }
2261
2262 let cur_offset: usize = (2 - 1) * envelope_size;
2265
2266 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2268
2269 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2274 self.include_moniker
2275 .as_ref()
2276 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2277 encoder,
2278 offset + cur_offset,
2279 depth,
2280 )?;
2281
2282 _prev_end_offset = cur_offset + envelope_size;
2283 if 3 > max_ordinal {
2284 return Ok(());
2285 }
2286
2287 let cur_offset: usize = (3 - 1) * envelope_size;
2290
2291 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2293
2294 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2299 self.include_component_url
2300 .as_ref()
2301 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2302 encoder,
2303 offset + cur_offset,
2304 depth,
2305 )?;
2306
2307 _prev_end_offset = cur_offset + envelope_size;
2308 if 4 > max_ordinal {
2309 return Ok(());
2310 }
2311
2312 let cur_offset: usize = (4 - 1) * envelope_size;
2315
2316 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2318
2319 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2324 self.include_rolled_out
2325 .as_ref()
2326 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2327 encoder,
2328 offset + cur_offset,
2329 depth,
2330 )?;
2331
2332 _prev_end_offset = cur_offset + envelope_size;
2333
2334 Ok(())
2335 }
2336 }
2337
2338 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogStreamOptions {
2339 #[inline(always)]
2340 fn new_empty() -> Self {
2341 Self::default()
2342 }
2343
2344 unsafe fn decode(
2345 &mut self,
2346 decoder: &mut fidl::encoding::Decoder<'_, D>,
2347 offset: usize,
2348 mut depth: fidl::encoding::Depth,
2349 ) -> fidl::Result<()> {
2350 decoder.debug_check_bounds::<Self>(offset);
2351 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2352 None => return Err(fidl::Error::NotNullable),
2353 Some(len) => len,
2354 };
2355 if len == 0 {
2357 return Ok(());
2358 };
2359 depth.increment()?;
2360 let envelope_size = 8;
2361 let bytes_len = len * envelope_size;
2362 let offset = decoder.out_of_line_offset(bytes_len)?;
2363 let mut _next_ordinal_to_read = 0;
2365 let mut next_offset = offset;
2366 let end_offset = offset + bytes_len;
2367 _next_ordinal_to_read += 1;
2368 if next_offset >= end_offset {
2369 return Ok(());
2370 }
2371
2372 while _next_ordinal_to_read < 1 {
2374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2375 _next_ordinal_to_read += 1;
2376 next_offset += envelope_size;
2377 }
2378
2379 let next_out_of_line = decoder.next_out_of_line();
2380 let handles_before = decoder.remaining_handles();
2381 if let Some((inlined, num_bytes, num_handles)) =
2382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2383 {
2384 let member_inline_size =
2385 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2386 if inlined != (member_inline_size <= 4) {
2387 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2388 }
2389 let inner_offset;
2390 let mut inner_depth = depth.clone();
2391 if inlined {
2392 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2393 inner_offset = next_offset;
2394 } else {
2395 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2396 inner_depth.increment()?;
2397 }
2398 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
2399 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
2400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2401 {
2402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2403 }
2404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2406 }
2407 }
2408
2409 next_offset += envelope_size;
2410 _next_ordinal_to_read += 1;
2411 if next_offset >= end_offset {
2412 return Ok(());
2413 }
2414
2415 while _next_ordinal_to_read < 2 {
2417 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2418 _next_ordinal_to_read += 1;
2419 next_offset += envelope_size;
2420 }
2421
2422 let next_out_of_line = decoder.next_out_of_line();
2423 let handles_before = decoder.remaining_handles();
2424 if let Some((inlined, num_bytes, num_handles)) =
2425 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2426 {
2427 let member_inline_size =
2428 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2429 if inlined != (member_inline_size <= 4) {
2430 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2431 }
2432 let inner_offset;
2433 let mut inner_depth = depth.clone();
2434 if inlined {
2435 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2436 inner_offset = next_offset;
2437 } else {
2438 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2439 inner_depth.increment()?;
2440 }
2441 let val_ref = self.include_moniker.get_or_insert_with(|| fidl::new_empty!(bool, D));
2442 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2443 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2444 {
2445 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2446 }
2447 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2448 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2449 }
2450 }
2451
2452 next_offset += envelope_size;
2453 _next_ordinal_to_read += 1;
2454 if next_offset >= end_offset {
2455 return Ok(());
2456 }
2457
2458 while _next_ordinal_to_read < 3 {
2460 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2461 _next_ordinal_to_read += 1;
2462 next_offset += envelope_size;
2463 }
2464
2465 let next_out_of_line = decoder.next_out_of_line();
2466 let handles_before = decoder.remaining_handles();
2467 if let Some((inlined, num_bytes, num_handles)) =
2468 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2469 {
2470 let member_inline_size =
2471 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2472 if inlined != (member_inline_size <= 4) {
2473 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2474 }
2475 let inner_offset;
2476 let mut inner_depth = depth.clone();
2477 if inlined {
2478 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2479 inner_offset = next_offset;
2480 } else {
2481 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2482 inner_depth.increment()?;
2483 }
2484 let val_ref =
2485 self.include_component_url.get_or_insert_with(|| fidl::new_empty!(bool, D));
2486 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2487 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2488 {
2489 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2490 }
2491 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2492 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2493 }
2494 }
2495
2496 next_offset += envelope_size;
2497 _next_ordinal_to_read += 1;
2498 if next_offset >= end_offset {
2499 return Ok(());
2500 }
2501
2502 while _next_ordinal_to_read < 4 {
2504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2505 _next_ordinal_to_read += 1;
2506 next_offset += envelope_size;
2507 }
2508
2509 let next_out_of_line = decoder.next_out_of_line();
2510 let handles_before = decoder.remaining_handles();
2511 if let Some((inlined, num_bytes, num_handles)) =
2512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2513 {
2514 let member_inline_size =
2515 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2516 if inlined != (member_inline_size <= 4) {
2517 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2518 }
2519 let inner_offset;
2520 let mut inner_depth = depth.clone();
2521 if inlined {
2522 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2523 inner_offset = next_offset;
2524 } else {
2525 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2526 inner_depth.increment()?;
2527 }
2528 let val_ref =
2529 self.include_rolled_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
2530 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2531 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2532 {
2533 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2534 }
2535 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2536 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2537 }
2538 }
2539
2540 next_offset += envelope_size;
2541
2542 while next_offset < end_offset {
2544 _next_ordinal_to_read += 1;
2545 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2546 next_offset += envelope_size;
2547 }
2548
2549 Ok(())
2550 }
2551 }
2552
2553 impl PerformanceConfiguration {
2554 #[inline(always)]
2555 fn max_ordinal_present(&self) -> u64 {
2556 if let Some(_) = self.batch_retrieval_timeout_seconds {
2557 return 2;
2558 }
2559 if let Some(_) = self.max_aggregate_content_size_bytes {
2560 return 1;
2561 }
2562 0
2563 }
2564 }
2565
2566 impl fidl::encoding::ValueTypeMarker for PerformanceConfiguration {
2567 type Borrowed<'a> = &'a Self;
2568 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2569 value
2570 }
2571 }
2572
2573 unsafe impl fidl::encoding::TypeMarker for PerformanceConfiguration {
2574 type Owned = Self;
2575
2576 #[inline(always)]
2577 fn inline_align(_context: fidl::encoding::Context) -> usize {
2578 8
2579 }
2580
2581 #[inline(always)]
2582 fn inline_size(_context: fidl::encoding::Context) -> usize {
2583 16
2584 }
2585 }
2586
2587 unsafe impl<D: fidl::encoding::ResourceDialect>
2588 fidl::encoding::Encode<PerformanceConfiguration, D> for &PerformanceConfiguration
2589 {
2590 unsafe fn encode(
2591 self,
2592 encoder: &mut fidl::encoding::Encoder<'_, D>,
2593 offset: usize,
2594 mut depth: fidl::encoding::Depth,
2595 ) -> fidl::Result<()> {
2596 encoder.debug_check_bounds::<PerformanceConfiguration>(offset);
2597 let max_ordinal: u64 = self.max_ordinal_present();
2599 encoder.write_num(max_ordinal, offset);
2600 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2601 if max_ordinal == 0 {
2603 return Ok(());
2604 }
2605 depth.increment()?;
2606 let envelope_size = 8;
2607 let bytes_len = max_ordinal as usize * envelope_size;
2608 #[allow(unused_variables)]
2609 let offset = encoder.out_of_line_offset(bytes_len);
2610 let mut _prev_end_offset: usize = 0;
2611 if 1 > max_ordinal {
2612 return Ok(());
2613 }
2614
2615 let cur_offset: usize = (1 - 1) * envelope_size;
2618
2619 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2621
2622 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2627 self.max_aggregate_content_size_bytes
2628 .as_ref()
2629 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2630 encoder,
2631 offset + cur_offset,
2632 depth,
2633 )?;
2634
2635 _prev_end_offset = cur_offset + envelope_size;
2636 if 2 > max_ordinal {
2637 return Ok(());
2638 }
2639
2640 let cur_offset: usize = (2 - 1) * envelope_size;
2643
2644 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2646
2647 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2652 self.batch_retrieval_timeout_seconds
2653 .as_ref()
2654 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2655 encoder,
2656 offset + cur_offset,
2657 depth,
2658 )?;
2659
2660 _prev_end_offset = cur_offset + envelope_size;
2661
2662 Ok(())
2663 }
2664 }
2665
2666 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2667 for PerformanceConfiguration
2668 {
2669 #[inline(always)]
2670 fn new_empty() -> Self {
2671 Self::default()
2672 }
2673
2674 unsafe fn decode(
2675 &mut self,
2676 decoder: &mut fidl::encoding::Decoder<'_, D>,
2677 offset: usize,
2678 mut depth: fidl::encoding::Depth,
2679 ) -> fidl::Result<()> {
2680 decoder.debug_check_bounds::<Self>(offset);
2681 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2682 None => return Err(fidl::Error::NotNullable),
2683 Some(len) => len,
2684 };
2685 if len == 0 {
2687 return Ok(());
2688 };
2689 depth.increment()?;
2690 let envelope_size = 8;
2691 let bytes_len = len * envelope_size;
2692 let offset = decoder.out_of_line_offset(bytes_len)?;
2693 let mut _next_ordinal_to_read = 0;
2695 let mut next_offset = offset;
2696 let end_offset = offset + bytes_len;
2697 _next_ordinal_to_read += 1;
2698 if next_offset >= end_offset {
2699 return Ok(());
2700 }
2701
2702 while _next_ordinal_to_read < 1 {
2704 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2705 _next_ordinal_to_read += 1;
2706 next_offset += envelope_size;
2707 }
2708
2709 let next_out_of_line = decoder.next_out_of_line();
2710 let handles_before = decoder.remaining_handles();
2711 if let Some((inlined, num_bytes, num_handles)) =
2712 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2713 {
2714 let member_inline_size =
2715 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2716 if inlined != (member_inline_size <= 4) {
2717 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2718 }
2719 let inner_offset;
2720 let mut inner_depth = depth.clone();
2721 if inlined {
2722 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2723 inner_offset = next_offset;
2724 } else {
2725 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2726 inner_depth.increment()?;
2727 }
2728 let val_ref = self
2729 .max_aggregate_content_size_bytes
2730 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2731 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2732 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2733 {
2734 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2735 }
2736 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2737 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2738 }
2739 }
2740
2741 next_offset += envelope_size;
2742 _next_ordinal_to_read += 1;
2743 if next_offset >= end_offset {
2744 return Ok(());
2745 }
2746
2747 while _next_ordinal_to_read < 2 {
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 <i64 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 = self
2774 .batch_retrieval_timeout_seconds
2775 .get_or_insert_with(|| fidl::new_empty!(i64, D));
2776 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2777 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2778 {
2779 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2780 }
2781 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2782 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2783 }
2784 }
2785
2786 next_offset += envelope_size;
2787
2788 while next_offset < end_offset {
2790 _next_ordinal_to_read += 1;
2791 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2792 next_offset += envelope_size;
2793 }
2794
2795 Ok(())
2796 }
2797 }
2798
2799 impl SampleDatum {
2800 #[inline(always)]
2801 fn max_ordinal_present(&self) -> u64 {
2802 if let Some(_) = self.interval_secs {
2803 return 3;
2804 }
2805 if let Some(_) = self.strategy {
2806 return 2;
2807 }
2808 if let Some(_) = self.selector {
2809 return 1;
2810 }
2811 0
2812 }
2813 }
2814
2815 impl fidl::encoding::ValueTypeMarker for SampleDatum {
2816 type Borrowed<'a> = &'a Self;
2817 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2818 value
2819 }
2820 }
2821
2822 unsafe impl fidl::encoding::TypeMarker for SampleDatum {
2823 type Owned = Self;
2824
2825 #[inline(always)]
2826 fn inline_align(_context: fidl::encoding::Context) -> usize {
2827 8
2828 }
2829
2830 #[inline(always)]
2831 fn inline_size(_context: fidl::encoding::Context) -> usize {
2832 16
2833 }
2834 }
2835
2836 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleDatum, D>
2837 for &SampleDatum
2838 {
2839 unsafe fn encode(
2840 self,
2841 encoder: &mut fidl::encoding::Encoder<'_, D>,
2842 offset: usize,
2843 mut depth: fidl::encoding::Depth,
2844 ) -> fidl::Result<()> {
2845 encoder.debug_check_bounds::<SampleDatum>(offset);
2846 let max_ordinal: u64 = self.max_ordinal_present();
2848 encoder.write_num(max_ordinal, offset);
2849 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2850 if max_ordinal == 0 {
2852 return Ok(());
2853 }
2854 depth.increment()?;
2855 let envelope_size = 8;
2856 let bytes_len = max_ordinal as usize * envelope_size;
2857 #[allow(unused_variables)]
2858 let offset = encoder.out_of_line_offset(bytes_len);
2859 let mut _prev_end_offset: usize = 0;
2860 if 1 > max_ordinal {
2861 return Ok(());
2862 }
2863
2864 let cur_offset: usize = (1 - 1) * envelope_size;
2867
2868 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2870
2871 fidl::encoding::encode_in_envelope_optional::<SelectorArgument, D>(
2876 self.selector
2877 .as_ref()
2878 .map(<SelectorArgument as fidl::encoding::ValueTypeMarker>::borrow),
2879 encoder,
2880 offset + cur_offset,
2881 depth,
2882 )?;
2883
2884 _prev_end_offset = cur_offset + envelope_size;
2885 if 2 > max_ordinal {
2886 return Ok(());
2887 }
2888
2889 let cur_offset: usize = (2 - 1) * envelope_size;
2892
2893 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2895
2896 fidl::encoding::encode_in_envelope_optional::<SampleStrategy, D>(
2901 self.strategy
2902 .as_ref()
2903 .map(<SampleStrategy as fidl::encoding::ValueTypeMarker>::borrow),
2904 encoder,
2905 offset + cur_offset,
2906 depth,
2907 )?;
2908
2909 _prev_end_offset = cur_offset + envelope_size;
2910 if 3 > max_ordinal {
2911 return Ok(());
2912 }
2913
2914 let cur_offset: usize = (3 - 1) * envelope_size;
2917
2918 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2920
2921 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2926 self.interval_secs.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2927 encoder,
2928 offset + cur_offset,
2929 depth,
2930 )?;
2931
2932 _prev_end_offset = cur_offset + envelope_size;
2933
2934 Ok(())
2935 }
2936 }
2937
2938 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleDatum {
2939 #[inline(always)]
2940 fn new_empty() -> Self {
2941 Self::default()
2942 }
2943
2944 unsafe fn decode(
2945 &mut self,
2946 decoder: &mut fidl::encoding::Decoder<'_, D>,
2947 offset: usize,
2948 mut depth: fidl::encoding::Depth,
2949 ) -> fidl::Result<()> {
2950 decoder.debug_check_bounds::<Self>(offset);
2951 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2952 None => return Err(fidl::Error::NotNullable),
2953 Some(len) => len,
2954 };
2955 if len == 0 {
2957 return Ok(());
2958 };
2959 depth.increment()?;
2960 let envelope_size = 8;
2961 let bytes_len = len * envelope_size;
2962 let offset = decoder.out_of_line_offset(bytes_len)?;
2963 let mut _next_ordinal_to_read = 0;
2965 let mut next_offset = offset;
2966 let end_offset = offset + bytes_len;
2967 _next_ordinal_to_read += 1;
2968 if next_offset >= end_offset {
2969 return Ok(());
2970 }
2971
2972 while _next_ordinal_to_read < 1 {
2974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2975 _next_ordinal_to_read += 1;
2976 next_offset += envelope_size;
2977 }
2978
2979 let next_out_of_line = decoder.next_out_of_line();
2980 let handles_before = decoder.remaining_handles();
2981 if let Some((inlined, num_bytes, num_handles)) =
2982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2983 {
2984 let member_inline_size =
2985 <SelectorArgument as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2986 if inlined != (member_inline_size <= 4) {
2987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2988 }
2989 let inner_offset;
2990 let mut inner_depth = depth.clone();
2991 if inlined {
2992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2993 inner_offset = next_offset;
2994 } else {
2995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2996 inner_depth.increment()?;
2997 }
2998 let val_ref =
2999 self.selector.get_or_insert_with(|| fidl::new_empty!(SelectorArgument, D));
3000 fidl::decode!(SelectorArgument, D, val_ref, decoder, inner_offset, inner_depth)?;
3001 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3002 {
3003 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3004 }
3005 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3006 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3007 }
3008 }
3009
3010 next_offset += envelope_size;
3011 _next_ordinal_to_read += 1;
3012 if next_offset >= end_offset {
3013 return Ok(());
3014 }
3015
3016 while _next_ordinal_to_read < 2 {
3018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3019 _next_ordinal_to_read += 1;
3020 next_offset += envelope_size;
3021 }
3022
3023 let next_out_of_line = decoder.next_out_of_line();
3024 let handles_before = decoder.remaining_handles();
3025 if let Some((inlined, num_bytes, num_handles)) =
3026 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3027 {
3028 let member_inline_size =
3029 <SampleStrategy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3030 if inlined != (member_inline_size <= 4) {
3031 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3032 }
3033 let inner_offset;
3034 let mut inner_depth = depth.clone();
3035 if inlined {
3036 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3037 inner_offset = next_offset;
3038 } else {
3039 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3040 inner_depth.increment()?;
3041 }
3042 let val_ref =
3043 self.strategy.get_or_insert_with(|| fidl::new_empty!(SampleStrategy, D));
3044 fidl::decode!(SampleStrategy, D, val_ref, decoder, inner_offset, inner_depth)?;
3045 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3046 {
3047 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3048 }
3049 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3050 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3051 }
3052 }
3053
3054 next_offset += envelope_size;
3055 _next_ordinal_to_read += 1;
3056 if next_offset >= end_offset {
3057 return Ok(());
3058 }
3059
3060 while _next_ordinal_to_read < 3 {
3062 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3063 _next_ordinal_to_read += 1;
3064 next_offset += envelope_size;
3065 }
3066
3067 let next_out_of_line = decoder.next_out_of_line();
3068 let handles_before = decoder.remaining_handles();
3069 if let Some((inlined, num_bytes, num_handles)) =
3070 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3071 {
3072 let member_inline_size =
3073 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3074 if inlined != (member_inline_size <= 4) {
3075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3076 }
3077 let inner_offset;
3078 let mut inner_depth = depth.clone();
3079 if inlined {
3080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3081 inner_offset = next_offset;
3082 } else {
3083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3084 inner_depth.increment()?;
3085 }
3086 let val_ref = self.interval_secs.get_or_insert_with(|| fidl::new_empty!(i64, D));
3087 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3088 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3089 {
3090 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3091 }
3092 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3093 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3094 }
3095 }
3096
3097 next_offset += envelope_size;
3098
3099 while next_offset < end_offset {
3101 _next_ordinal_to_read += 1;
3102 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3103 next_offset += envelope_size;
3104 }
3105
3106 Ok(())
3107 }
3108 }
3109
3110 impl SampleParameters {
3111 #[inline(always)]
3112 fn max_ordinal_present(&self) -> u64 {
3113 if let Some(_) = self.data {
3114 return 1;
3115 }
3116 0
3117 }
3118 }
3119
3120 impl fidl::encoding::ValueTypeMarker for SampleParameters {
3121 type Borrowed<'a> = &'a Self;
3122 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3123 value
3124 }
3125 }
3126
3127 unsafe impl fidl::encoding::TypeMarker for SampleParameters {
3128 type Owned = Self;
3129
3130 #[inline(always)]
3131 fn inline_align(_context: fidl::encoding::Context) -> usize {
3132 8
3133 }
3134
3135 #[inline(always)]
3136 fn inline_size(_context: fidl::encoding::Context) -> usize {
3137 16
3138 }
3139 }
3140
3141 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SampleParameters, D>
3142 for &SampleParameters
3143 {
3144 unsafe fn encode(
3145 self,
3146 encoder: &mut fidl::encoding::Encoder<'_, D>,
3147 offset: usize,
3148 mut depth: fidl::encoding::Depth,
3149 ) -> fidl::Result<()> {
3150 encoder.debug_check_bounds::<SampleParameters>(offset);
3151 let max_ordinal: u64 = self.max_ordinal_present();
3153 encoder.write_num(max_ordinal, offset);
3154 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3155 if max_ordinal == 0 {
3157 return Ok(());
3158 }
3159 depth.increment()?;
3160 let envelope_size = 8;
3161 let bytes_len = max_ordinal as usize * envelope_size;
3162 #[allow(unused_variables)]
3163 let offset = encoder.out_of_line_offset(bytes_len);
3164 let mut _prev_end_offset: usize = 0;
3165 if 1 > max_ordinal {
3166 return Ok(());
3167 }
3168
3169 let cur_offset: usize = (1 - 1) * envelope_size;
3172
3173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3175
3176 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<SampleDatum, 100>, D>(
3181 self.data.as_ref().map(<fidl::encoding::Vector<SampleDatum, 100> as fidl::encoding::ValueTypeMarker>::borrow),
3182 encoder, offset + cur_offset, depth
3183 )?;
3184
3185 _prev_end_offset = cur_offset + envelope_size;
3186
3187 Ok(())
3188 }
3189 }
3190
3191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SampleParameters {
3192 #[inline(always)]
3193 fn new_empty() -> Self {
3194 Self::default()
3195 }
3196
3197 unsafe fn decode(
3198 &mut self,
3199 decoder: &mut fidl::encoding::Decoder<'_, D>,
3200 offset: usize,
3201 mut depth: fidl::encoding::Depth,
3202 ) -> fidl::Result<()> {
3203 decoder.debug_check_bounds::<Self>(offset);
3204 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3205 None => return Err(fidl::Error::NotNullable),
3206 Some(len) => len,
3207 };
3208 if len == 0 {
3210 return Ok(());
3211 };
3212 depth.increment()?;
3213 let envelope_size = 8;
3214 let bytes_len = len * envelope_size;
3215 let offset = decoder.out_of_line_offset(bytes_len)?;
3216 let mut _next_ordinal_to_read = 0;
3218 let mut next_offset = offset;
3219 let end_offset = offset + bytes_len;
3220 _next_ordinal_to_read += 1;
3221 if next_offset >= end_offset {
3222 return Ok(());
3223 }
3224
3225 while _next_ordinal_to_read < 1 {
3227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3228 _next_ordinal_to_read += 1;
3229 next_offset += envelope_size;
3230 }
3231
3232 let next_out_of_line = decoder.next_out_of_line();
3233 let handles_before = decoder.remaining_handles();
3234 if let Some((inlined, num_bytes, num_handles)) =
3235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3236 {
3237 let member_inline_size = <fidl::encoding::Vector<SampleDatum, 100> 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.data.get_or_insert_with(
3251 || fidl::new_empty!(fidl::encoding::Vector<SampleDatum, 100>, D),
3252 );
3253 fidl::decode!(fidl::encoding::Vector<SampleDatum, 100>, 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
3265 while next_offset < end_offset {
3267 _next_ordinal_to_read += 1;
3268 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3269 next_offset += envelope_size;
3270 }
3271
3272 Ok(())
3273 }
3274 }
3275
3276 impl Selector {
3277 #[inline(always)]
3278 fn max_ordinal_present(&self) -> u64 {
3279 if let Some(_) = self.tree_names {
3280 return 3;
3281 }
3282 if let Some(_) = self.tree_selector {
3283 return 2;
3284 }
3285 if let Some(_) = self.component_selector {
3286 return 1;
3287 }
3288 0
3289 }
3290 }
3291
3292 impl fidl::encoding::ValueTypeMarker for Selector {
3293 type Borrowed<'a> = &'a Self;
3294 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3295 value
3296 }
3297 }
3298
3299 unsafe impl fidl::encoding::TypeMarker for Selector {
3300 type Owned = Self;
3301
3302 #[inline(always)]
3303 fn inline_align(_context: fidl::encoding::Context) -> usize {
3304 8
3305 }
3306
3307 #[inline(always)]
3308 fn inline_size(_context: fidl::encoding::Context) -> usize {
3309 16
3310 }
3311 }
3312
3313 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Selector, D> for &Selector {
3314 unsafe fn encode(
3315 self,
3316 encoder: &mut fidl::encoding::Encoder<'_, D>,
3317 offset: usize,
3318 mut depth: fidl::encoding::Depth,
3319 ) -> fidl::Result<()> {
3320 encoder.debug_check_bounds::<Selector>(offset);
3321 let max_ordinal: u64 = self.max_ordinal_present();
3323 encoder.write_num(max_ordinal, offset);
3324 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3325 if max_ordinal == 0 {
3327 return Ok(());
3328 }
3329 depth.increment()?;
3330 let envelope_size = 8;
3331 let bytes_len = max_ordinal as usize * envelope_size;
3332 #[allow(unused_variables)]
3333 let offset = encoder.out_of_line_offset(bytes_len);
3334 let mut _prev_end_offset: usize = 0;
3335 if 1 > max_ordinal {
3336 return Ok(());
3337 }
3338
3339 let cur_offset: usize = (1 - 1) * envelope_size;
3342
3343 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3345
3346 fidl::encoding::encode_in_envelope_optional::<ComponentSelector, D>(
3351 self.component_selector
3352 .as_ref()
3353 .map(<ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow),
3354 encoder,
3355 offset + cur_offset,
3356 depth,
3357 )?;
3358
3359 _prev_end_offset = cur_offset + envelope_size;
3360 if 2 > max_ordinal {
3361 return Ok(());
3362 }
3363
3364 let cur_offset: usize = (2 - 1) * envelope_size;
3367
3368 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3370
3371 fidl::encoding::encode_in_envelope_optional::<TreeSelector, D>(
3376 self.tree_selector
3377 .as_ref()
3378 .map(<TreeSelector as fidl::encoding::ValueTypeMarker>::borrow),
3379 encoder,
3380 offset + cur_offset,
3381 depth,
3382 )?;
3383
3384 _prev_end_offset = cur_offset + envelope_size;
3385 if 3 > max_ordinal {
3386 return Ok(());
3387 }
3388
3389 let cur_offset: usize = (3 - 1) * envelope_size;
3392
3393 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3395
3396 fidl::encoding::encode_in_envelope_optional::<TreeNames, D>(
3401 self.tree_names
3402 .as_ref()
3403 .map(<TreeNames as fidl::encoding::ValueTypeMarker>::borrow),
3404 encoder,
3405 offset + cur_offset,
3406 depth,
3407 )?;
3408
3409 _prev_end_offset = cur_offset + envelope_size;
3410
3411 Ok(())
3412 }
3413 }
3414
3415 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Selector {
3416 #[inline(always)]
3417 fn new_empty() -> Self {
3418 Self::default()
3419 }
3420
3421 unsafe fn decode(
3422 &mut self,
3423 decoder: &mut fidl::encoding::Decoder<'_, D>,
3424 offset: usize,
3425 mut depth: fidl::encoding::Depth,
3426 ) -> fidl::Result<()> {
3427 decoder.debug_check_bounds::<Self>(offset);
3428 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3429 None => return Err(fidl::Error::NotNullable),
3430 Some(len) => len,
3431 };
3432 if len == 0 {
3434 return Ok(());
3435 };
3436 depth.increment()?;
3437 let envelope_size = 8;
3438 let bytes_len = len * envelope_size;
3439 let offset = decoder.out_of_line_offset(bytes_len)?;
3440 let mut _next_ordinal_to_read = 0;
3442 let mut next_offset = offset;
3443 let end_offset = offset + bytes_len;
3444 _next_ordinal_to_read += 1;
3445 if next_offset >= end_offset {
3446 return Ok(());
3447 }
3448
3449 while _next_ordinal_to_read < 1 {
3451 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3452 _next_ordinal_to_read += 1;
3453 next_offset += envelope_size;
3454 }
3455
3456 let next_out_of_line = decoder.next_out_of_line();
3457 let handles_before = decoder.remaining_handles();
3458 if let Some((inlined, num_bytes, num_handles)) =
3459 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3460 {
3461 let member_inline_size =
3462 <ComponentSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3463 if inlined != (member_inline_size <= 4) {
3464 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3465 }
3466 let inner_offset;
3467 let mut inner_depth = depth.clone();
3468 if inlined {
3469 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3470 inner_offset = next_offset;
3471 } else {
3472 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3473 inner_depth.increment()?;
3474 }
3475 let val_ref = self
3476 .component_selector
3477 .get_or_insert_with(|| fidl::new_empty!(ComponentSelector, D));
3478 fidl::decode!(ComponentSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3480 {
3481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3482 }
3483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3485 }
3486 }
3487
3488 next_offset += envelope_size;
3489 _next_ordinal_to_read += 1;
3490 if next_offset >= end_offset {
3491 return Ok(());
3492 }
3493
3494 while _next_ordinal_to_read < 2 {
3496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3497 _next_ordinal_to_read += 1;
3498 next_offset += envelope_size;
3499 }
3500
3501 let next_out_of_line = decoder.next_out_of_line();
3502 let handles_before = decoder.remaining_handles();
3503 if let Some((inlined, num_bytes, num_handles)) =
3504 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3505 {
3506 let member_inline_size =
3507 <TreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3508 if inlined != (member_inline_size <= 4) {
3509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3510 }
3511 let inner_offset;
3512 let mut inner_depth = depth.clone();
3513 if inlined {
3514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3515 inner_offset = next_offset;
3516 } else {
3517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3518 inner_depth.increment()?;
3519 }
3520 let val_ref =
3521 self.tree_selector.get_or_insert_with(|| fidl::new_empty!(TreeSelector, D));
3522 fidl::decode!(TreeSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3523 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3524 {
3525 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3526 }
3527 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3528 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3529 }
3530 }
3531
3532 next_offset += envelope_size;
3533 _next_ordinal_to_read += 1;
3534 if next_offset >= end_offset {
3535 return Ok(());
3536 }
3537
3538 while _next_ordinal_to_read < 3 {
3540 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3541 _next_ordinal_to_read += 1;
3542 next_offset += envelope_size;
3543 }
3544
3545 let next_out_of_line = decoder.next_out_of_line();
3546 let handles_before = decoder.remaining_handles();
3547 if let Some((inlined, num_bytes, num_handles)) =
3548 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3549 {
3550 let member_inline_size =
3551 <TreeNames as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3552 if inlined != (member_inline_size <= 4) {
3553 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3554 }
3555 let inner_offset;
3556 let mut inner_depth = depth.clone();
3557 if inlined {
3558 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3559 inner_offset = next_offset;
3560 } else {
3561 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3562 inner_depth.increment()?;
3563 }
3564 let val_ref = self.tree_names.get_or_insert_with(|| fidl::new_empty!(TreeNames, D));
3565 fidl::decode!(TreeNames, D, val_ref, decoder, inner_offset, inner_depth)?;
3566 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3567 {
3568 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3569 }
3570 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3571 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3572 }
3573 }
3574
3575 next_offset += envelope_size;
3576
3577 while next_offset < end_offset {
3579 _next_ordinal_to_read += 1;
3580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3581 next_offset += envelope_size;
3582 }
3583
3584 Ok(())
3585 }
3586 }
3587
3588 impl StreamParameters {
3589 #[inline(always)]
3590 fn max_ordinal_present(&self) -> u64 {
3591 if let Some(_) = self.performance_configuration {
3592 return 6;
3593 }
3594 if let Some(_) = self.batch_retrieval_timeout_seconds {
3595 return 5;
3596 }
3597 if let Some(_) = self.client_selector_configuration {
3598 return 4;
3599 }
3600 if let Some(_) = self.format {
3601 return 3;
3602 }
3603 if let Some(_) = self.stream_mode {
3604 return 2;
3605 }
3606 if let Some(_) = self.data_type {
3607 return 1;
3608 }
3609 0
3610 }
3611 }
3612
3613 impl fidl::encoding::ValueTypeMarker for StreamParameters {
3614 type Borrowed<'a> = &'a Self;
3615 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3616 value
3617 }
3618 }
3619
3620 unsafe impl fidl::encoding::TypeMarker for StreamParameters {
3621 type Owned = Self;
3622
3623 #[inline(always)]
3624 fn inline_align(_context: fidl::encoding::Context) -> usize {
3625 8
3626 }
3627
3628 #[inline(always)]
3629 fn inline_size(_context: fidl::encoding::Context) -> usize {
3630 16
3631 }
3632 }
3633
3634 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamParameters, D>
3635 for &StreamParameters
3636 {
3637 unsafe fn encode(
3638 self,
3639 encoder: &mut fidl::encoding::Encoder<'_, D>,
3640 offset: usize,
3641 mut depth: fidl::encoding::Depth,
3642 ) -> fidl::Result<()> {
3643 encoder.debug_check_bounds::<StreamParameters>(offset);
3644 let max_ordinal: u64 = self.max_ordinal_present();
3646 encoder.write_num(max_ordinal, offset);
3647 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3648 if max_ordinal == 0 {
3650 return Ok(());
3651 }
3652 depth.increment()?;
3653 let envelope_size = 8;
3654 let bytes_len = max_ordinal as usize * envelope_size;
3655 #[allow(unused_variables)]
3656 let offset = encoder.out_of_line_offset(bytes_len);
3657 let mut _prev_end_offset: usize = 0;
3658 if 1 > max_ordinal {
3659 return Ok(());
3660 }
3661
3662 let cur_offset: usize = (1 - 1) * envelope_size;
3665
3666 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3668
3669 fidl::encoding::encode_in_envelope_optional::<DataType, D>(
3674 self.data_type.as_ref().map(<DataType as fidl::encoding::ValueTypeMarker>::borrow),
3675 encoder,
3676 offset + cur_offset,
3677 depth,
3678 )?;
3679
3680 _prev_end_offset = cur_offset + envelope_size;
3681 if 2 > max_ordinal {
3682 return Ok(());
3683 }
3684
3685 let cur_offset: usize = (2 - 1) * envelope_size;
3688
3689 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3691
3692 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
3697 self.stream_mode
3698 .as_ref()
3699 .map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
3700 encoder,
3701 offset + cur_offset,
3702 depth,
3703 )?;
3704
3705 _prev_end_offset = cur_offset + envelope_size;
3706 if 3 > max_ordinal {
3707 return Ok(());
3708 }
3709
3710 let cur_offset: usize = (3 - 1) * envelope_size;
3713
3714 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3716
3717 fidl::encoding::encode_in_envelope_optional::<Format, D>(
3722 self.format.as_ref().map(<Format as fidl::encoding::ValueTypeMarker>::borrow),
3723 encoder,
3724 offset + cur_offset,
3725 depth,
3726 )?;
3727
3728 _prev_end_offset = cur_offset + envelope_size;
3729 if 4 > max_ordinal {
3730 return Ok(());
3731 }
3732
3733 let cur_offset: usize = (4 - 1) * envelope_size;
3736
3737 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3739
3740 fidl::encoding::encode_in_envelope_optional::<ClientSelectorConfiguration, D>(
3745 self.client_selector_configuration
3746 .as_ref()
3747 .map(<ClientSelectorConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3748 encoder,
3749 offset + cur_offset,
3750 depth,
3751 )?;
3752
3753 _prev_end_offset = cur_offset + envelope_size;
3754 if 5 > max_ordinal {
3755 return Ok(());
3756 }
3757
3758 let cur_offset: usize = (5 - 1) * envelope_size;
3761
3762 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3764
3765 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3770 self.batch_retrieval_timeout_seconds
3771 .as_ref()
3772 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3773 encoder,
3774 offset + cur_offset,
3775 depth,
3776 )?;
3777
3778 _prev_end_offset = cur_offset + envelope_size;
3779 if 6 > max_ordinal {
3780 return Ok(());
3781 }
3782
3783 let cur_offset: usize = (6 - 1) * envelope_size;
3786
3787 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3789
3790 fidl::encoding::encode_in_envelope_optional::<PerformanceConfiguration, D>(
3795 self.performance_configuration
3796 .as_ref()
3797 .map(<PerformanceConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3798 encoder,
3799 offset + cur_offset,
3800 depth,
3801 )?;
3802
3803 _prev_end_offset = cur_offset + envelope_size;
3804
3805 Ok(())
3806 }
3807 }
3808
3809 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamParameters {
3810 #[inline(always)]
3811 fn new_empty() -> Self {
3812 Self::default()
3813 }
3814
3815 unsafe fn decode(
3816 &mut self,
3817 decoder: &mut fidl::encoding::Decoder<'_, D>,
3818 offset: usize,
3819 mut depth: fidl::encoding::Depth,
3820 ) -> fidl::Result<()> {
3821 decoder.debug_check_bounds::<Self>(offset);
3822 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3823 None => return Err(fidl::Error::NotNullable),
3824 Some(len) => len,
3825 };
3826 if len == 0 {
3828 return Ok(());
3829 };
3830 depth.increment()?;
3831 let envelope_size = 8;
3832 let bytes_len = len * envelope_size;
3833 let offset = decoder.out_of_line_offset(bytes_len)?;
3834 let mut _next_ordinal_to_read = 0;
3836 let mut next_offset = offset;
3837 let end_offset = offset + bytes_len;
3838 _next_ordinal_to_read += 1;
3839 if next_offset >= end_offset {
3840 return Ok(());
3841 }
3842
3843 while _next_ordinal_to_read < 1 {
3845 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3846 _next_ordinal_to_read += 1;
3847 next_offset += envelope_size;
3848 }
3849
3850 let next_out_of_line = decoder.next_out_of_line();
3851 let handles_before = decoder.remaining_handles();
3852 if let Some((inlined, num_bytes, num_handles)) =
3853 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3854 {
3855 let member_inline_size =
3856 <DataType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3857 if inlined != (member_inline_size <= 4) {
3858 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3859 }
3860 let inner_offset;
3861 let mut inner_depth = depth.clone();
3862 if inlined {
3863 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3864 inner_offset = next_offset;
3865 } else {
3866 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3867 inner_depth.increment()?;
3868 }
3869 let val_ref = self.data_type.get_or_insert_with(|| fidl::new_empty!(DataType, D));
3870 fidl::decode!(DataType, D, val_ref, decoder, inner_offset, inner_depth)?;
3871 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3872 {
3873 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3874 }
3875 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3876 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3877 }
3878 }
3879
3880 next_offset += envelope_size;
3881 _next_ordinal_to_read += 1;
3882 if next_offset >= end_offset {
3883 return Ok(());
3884 }
3885
3886 while _next_ordinal_to_read < 2 {
3888 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3889 _next_ordinal_to_read += 1;
3890 next_offset += envelope_size;
3891 }
3892
3893 let next_out_of_line = decoder.next_out_of_line();
3894 let handles_before = decoder.remaining_handles();
3895 if let Some((inlined, num_bytes, num_handles)) =
3896 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3897 {
3898 let member_inline_size =
3899 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3900 if inlined != (member_inline_size <= 4) {
3901 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3902 }
3903 let inner_offset;
3904 let mut inner_depth = depth.clone();
3905 if inlined {
3906 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3907 inner_offset = next_offset;
3908 } else {
3909 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3910 inner_depth.increment()?;
3911 }
3912 let val_ref =
3913 self.stream_mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
3914 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
3915 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3916 {
3917 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3918 }
3919 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3920 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3921 }
3922 }
3923
3924 next_offset += envelope_size;
3925 _next_ordinal_to_read += 1;
3926 if next_offset >= end_offset {
3927 return Ok(());
3928 }
3929
3930 while _next_ordinal_to_read < 3 {
3932 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3933 _next_ordinal_to_read += 1;
3934 next_offset += envelope_size;
3935 }
3936
3937 let next_out_of_line = decoder.next_out_of_line();
3938 let handles_before = decoder.remaining_handles();
3939 if let Some((inlined, num_bytes, num_handles)) =
3940 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3941 {
3942 let member_inline_size =
3943 <Format as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3944 if inlined != (member_inline_size <= 4) {
3945 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3946 }
3947 let inner_offset;
3948 let mut inner_depth = depth.clone();
3949 if inlined {
3950 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3951 inner_offset = next_offset;
3952 } else {
3953 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3954 inner_depth.increment()?;
3955 }
3956 let val_ref = self.format.get_or_insert_with(|| fidl::new_empty!(Format, D));
3957 fidl::decode!(Format, D, val_ref, decoder, inner_offset, inner_depth)?;
3958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3959 {
3960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3961 }
3962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3964 }
3965 }
3966
3967 next_offset += envelope_size;
3968 _next_ordinal_to_read += 1;
3969 if next_offset >= end_offset {
3970 return Ok(());
3971 }
3972
3973 while _next_ordinal_to_read < 4 {
3975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3976 _next_ordinal_to_read += 1;
3977 next_offset += envelope_size;
3978 }
3979
3980 let next_out_of_line = decoder.next_out_of_line();
3981 let handles_before = decoder.remaining_handles();
3982 if let Some((inlined, num_bytes, num_handles)) =
3983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3984 {
3985 let member_inline_size =
3986 <ClientSelectorConfiguration as fidl::encoding::TypeMarker>::inline_size(
3987 decoder.context,
3988 );
3989 if inlined != (member_inline_size <= 4) {
3990 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3991 }
3992 let inner_offset;
3993 let mut inner_depth = depth.clone();
3994 if inlined {
3995 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3996 inner_offset = next_offset;
3997 } else {
3998 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3999 inner_depth.increment()?;
4000 }
4001 let val_ref = self
4002 .client_selector_configuration
4003 .get_or_insert_with(|| fidl::new_empty!(ClientSelectorConfiguration, D));
4004 fidl::decode!(
4005 ClientSelectorConfiguration,
4006 D,
4007 val_ref,
4008 decoder,
4009 inner_offset,
4010 inner_depth
4011 )?;
4012 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4013 {
4014 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4015 }
4016 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4017 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4018 }
4019 }
4020
4021 next_offset += envelope_size;
4022 _next_ordinal_to_read += 1;
4023 if next_offset >= end_offset {
4024 return Ok(());
4025 }
4026
4027 while _next_ordinal_to_read < 5 {
4029 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4030 _next_ordinal_to_read += 1;
4031 next_offset += envelope_size;
4032 }
4033
4034 let next_out_of_line = decoder.next_out_of_line();
4035 let handles_before = decoder.remaining_handles();
4036 if let Some((inlined, num_bytes, num_handles)) =
4037 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4038 {
4039 let member_inline_size =
4040 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4041 if inlined != (member_inline_size <= 4) {
4042 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4043 }
4044 let inner_offset;
4045 let mut inner_depth = depth.clone();
4046 if inlined {
4047 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4048 inner_offset = next_offset;
4049 } else {
4050 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4051 inner_depth.increment()?;
4052 }
4053 let val_ref = self
4054 .batch_retrieval_timeout_seconds
4055 .get_or_insert_with(|| fidl::new_empty!(i64, D));
4056 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4058 {
4059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4060 }
4061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4063 }
4064 }
4065
4066 next_offset += envelope_size;
4067 _next_ordinal_to_read += 1;
4068 if next_offset >= end_offset {
4069 return Ok(());
4070 }
4071
4072 while _next_ordinal_to_read < 6 {
4074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4075 _next_ordinal_to_read += 1;
4076 next_offset += envelope_size;
4077 }
4078
4079 let next_out_of_line = decoder.next_out_of_line();
4080 let handles_before = decoder.remaining_handles();
4081 if let Some((inlined, num_bytes, num_handles)) =
4082 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4083 {
4084 let member_inline_size =
4085 <PerformanceConfiguration as fidl::encoding::TypeMarker>::inline_size(
4086 decoder.context,
4087 );
4088 if inlined != (member_inline_size <= 4) {
4089 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4090 }
4091 let inner_offset;
4092 let mut inner_depth = depth.clone();
4093 if inlined {
4094 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4095 inner_offset = next_offset;
4096 } else {
4097 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4098 inner_depth.increment()?;
4099 }
4100 let val_ref = self
4101 .performance_configuration
4102 .get_or_insert_with(|| fidl::new_empty!(PerformanceConfiguration, D));
4103 fidl::decode!(
4104 PerformanceConfiguration,
4105 D,
4106 val_ref,
4107 decoder,
4108 inner_offset,
4109 inner_depth
4110 )?;
4111 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4112 {
4113 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4114 }
4115 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4116 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4117 }
4118 }
4119
4120 next_offset += envelope_size;
4121
4122 while next_offset < end_offset {
4124 _next_ordinal_to_read += 1;
4125 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4126 next_offset += envelope_size;
4127 }
4128
4129 Ok(())
4130 }
4131 }
4132
4133 impl fidl::encoding::ValueTypeMarker for ClientSelectorConfiguration {
4134 type Borrowed<'a> = &'a Self;
4135 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4136 value
4137 }
4138 }
4139
4140 unsafe impl fidl::encoding::TypeMarker for ClientSelectorConfiguration {
4141 type Owned = Self;
4142
4143 #[inline(always)]
4144 fn inline_align(_context: fidl::encoding::Context) -> usize {
4145 8
4146 }
4147
4148 #[inline(always)]
4149 fn inline_size(_context: fidl::encoding::Context) -> usize {
4150 16
4151 }
4152 }
4153
4154 unsafe impl<D: fidl::encoding::ResourceDialect>
4155 fidl::encoding::Encode<ClientSelectorConfiguration, D> for &ClientSelectorConfiguration
4156 {
4157 #[inline]
4158 unsafe fn encode(
4159 self,
4160 encoder: &mut fidl::encoding::Encoder<'_, D>,
4161 offset: usize,
4162 _depth: fidl::encoding::Depth,
4163 ) -> fidl::Result<()> {
4164 encoder.debug_check_bounds::<ClientSelectorConfiguration>(offset);
4165 encoder.write_num::<u64>(self.ordinal(), offset);
4166 match self {
4167 ClientSelectorConfiguration::Selectors(ref val) => {
4168 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<SelectorArgument>, D>(
4169 <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::ValueTypeMarker>::borrow(val),
4170 encoder, offset + 8, _depth
4171 )
4172 }
4173 ClientSelectorConfiguration::SelectAll(ref val) => {
4174 fidl::encoding::encode_in_envelope::<bool, D>(
4175 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
4176 encoder, offset + 8, _depth
4177 )
4178 }
4179 ClientSelectorConfiguration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4180 }
4181 }
4182 }
4183
4184 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4185 for ClientSelectorConfiguration
4186 {
4187 #[inline(always)]
4188 fn new_empty() -> Self {
4189 Self::__SourceBreaking { unknown_ordinal: 0 }
4190 }
4191
4192 #[inline]
4193 unsafe fn decode(
4194 &mut self,
4195 decoder: &mut fidl::encoding::Decoder<'_, D>,
4196 offset: usize,
4197 mut depth: fidl::encoding::Depth,
4198 ) -> fidl::Result<()> {
4199 decoder.debug_check_bounds::<Self>(offset);
4200 #[allow(unused_variables)]
4201 let next_out_of_line = decoder.next_out_of_line();
4202 let handles_before = decoder.remaining_handles();
4203 let (ordinal, inlined, num_bytes, num_handles) =
4204 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4205
4206 let member_inline_size = match ordinal {
4207 1 => <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4208 2 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4209 0 => return Err(fidl::Error::UnknownUnionTag),
4210 _ => num_bytes as usize,
4211 };
4212
4213 if inlined != (member_inline_size <= 4) {
4214 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4215 }
4216 let _inner_offset;
4217 if inlined {
4218 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4219 _inner_offset = offset + 8;
4220 } else {
4221 depth.increment()?;
4222 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4223 }
4224 match ordinal {
4225 1 => {
4226 #[allow(irrefutable_let_patterns)]
4227 if let ClientSelectorConfiguration::Selectors(_) = self {
4228 } else {
4230 *self = ClientSelectorConfiguration::Selectors(fidl::new_empty!(
4232 fidl::encoding::UnboundedVector<SelectorArgument>,
4233 D
4234 ));
4235 }
4236 #[allow(irrefutable_let_patterns)]
4237 if let ClientSelectorConfiguration::Selectors(ref mut val) = self {
4238 fidl::decode!(
4239 fidl::encoding::UnboundedVector<SelectorArgument>,
4240 D,
4241 val,
4242 decoder,
4243 _inner_offset,
4244 depth
4245 )?;
4246 } else {
4247 unreachable!()
4248 }
4249 }
4250 2 => {
4251 #[allow(irrefutable_let_patterns)]
4252 if let ClientSelectorConfiguration::SelectAll(_) = self {
4253 } else {
4255 *self = ClientSelectorConfiguration::SelectAll(fidl::new_empty!(bool, D));
4257 }
4258 #[allow(irrefutable_let_patterns)]
4259 if let ClientSelectorConfiguration::SelectAll(ref mut val) = self {
4260 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4261 } else {
4262 unreachable!()
4263 }
4264 }
4265 #[allow(deprecated)]
4266 ordinal => {
4267 for _ in 0..num_handles {
4268 decoder.drop_next_handle()?;
4269 }
4270 *self =
4271 ClientSelectorConfiguration::__SourceBreaking { unknown_ordinal: ordinal };
4272 }
4273 }
4274 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4275 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4276 }
4277 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4278 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4279 }
4280 Ok(())
4281 }
4282 }
4283
4284 impl fidl::encoding::ValueTypeMarker for SelectorArgument {
4285 type Borrowed<'a> = &'a Self;
4286 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4287 value
4288 }
4289 }
4290
4291 unsafe impl fidl::encoding::TypeMarker for SelectorArgument {
4292 type Owned = Self;
4293
4294 #[inline(always)]
4295 fn inline_align(_context: fidl::encoding::Context) -> usize {
4296 8
4297 }
4298
4299 #[inline(always)]
4300 fn inline_size(_context: fidl::encoding::Context) -> usize {
4301 16
4302 }
4303 }
4304
4305 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelectorArgument, D>
4306 for &SelectorArgument
4307 {
4308 #[inline]
4309 unsafe fn encode(
4310 self,
4311 encoder: &mut fidl::encoding::Encoder<'_, D>,
4312 offset: usize,
4313 _depth: fidl::encoding::Depth,
4314 ) -> fidl::Result<()> {
4315 encoder.debug_check_bounds::<SelectorArgument>(offset);
4316 encoder.write_num::<u64>(self.ordinal(), offset);
4317 match self {
4318 SelectorArgument::StructuredSelector(ref val) => {
4319 fidl::encoding::encode_in_envelope::<Selector, D>(
4320 <Selector as fidl::encoding::ValueTypeMarker>::borrow(val),
4321 encoder, offset + 8, _depth
4322 )
4323 }
4324 SelectorArgument::RawSelector(ref val) => {
4325 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4326 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4327 encoder, offset + 8, _depth
4328 )
4329 }
4330 SelectorArgument::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4331 }
4332 }
4333 }
4334
4335 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelectorArgument {
4336 #[inline(always)]
4337 fn new_empty() -> Self {
4338 Self::__SourceBreaking { unknown_ordinal: 0 }
4339 }
4340
4341 #[inline]
4342 unsafe fn decode(
4343 &mut self,
4344 decoder: &mut fidl::encoding::Decoder<'_, D>,
4345 offset: usize,
4346 mut depth: fidl::encoding::Depth,
4347 ) -> fidl::Result<()> {
4348 decoder.debug_check_bounds::<Self>(offset);
4349 #[allow(unused_variables)]
4350 let next_out_of_line = decoder.next_out_of_line();
4351 let handles_before = decoder.remaining_handles();
4352 let (ordinal, inlined, num_bytes, num_handles) =
4353 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4354
4355 let member_inline_size = match ordinal {
4356 1 => <Selector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4357 2 => {
4358 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4359 decoder.context,
4360 )
4361 }
4362 0 => return Err(fidl::Error::UnknownUnionTag),
4363 _ => num_bytes as usize,
4364 };
4365
4366 if inlined != (member_inline_size <= 4) {
4367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4368 }
4369 let _inner_offset;
4370 if inlined {
4371 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4372 _inner_offset = offset + 8;
4373 } else {
4374 depth.increment()?;
4375 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4376 }
4377 match ordinal {
4378 1 => {
4379 #[allow(irrefutable_let_patterns)]
4380 if let SelectorArgument::StructuredSelector(_) = self {
4381 } else {
4383 *self = SelectorArgument::StructuredSelector(fidl::new_empty!(Selector, D));
4385 }
4386 #[allow(irrefutable_let_patterns)]
4387 if let SelectorArgument::StructuredSelector(ref mut val) = self {
4388 fidl::decode!(Selector, D, val, decoder, _inner_offset, depth)?;
4389 } else {
4390 unreachable!()
4391 }
4392 }
4393 2 => {
4394 #[allow(irrefutable_let_patterns)]
4395 if let SelectorArgument::RawSelector(_) = self {
4396 } else {
4398 *self = SelectorArgument::RawSelector(fidl::new_empty!(
4400 fidl::encoding::BoundedString<1024>,
4401 D
4402 ));
4403 }
4404 #[allow(irrefutable_let_patterns)]
4405 if let SelectorArgument::RawSelector(ref mut val) = self {
4406 fidl::decode!(
4407 fidl::encoding::BoundedString<1024>,
4408 D,
4409 val,
4410 decoder,
4411 _inner_offset,
4412 depth
4413 )?;
4414 } else {
4415 unreachable!()
4416 }
4417 }
4418 #[allow(deprecated)]
4419 ordinal => {
4420 for _ in 0..num_handles {
4421 decoder.drop_next_handle()?;
4422 }
4423 *self = SelectorArgument::__SourceBreaking { unknown_ordinal: ordinal };
4424 }
4425 }
4426 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4428 }
4429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4431 }
4432 Ok(())
4433 }
4434 }
4435
4436 impl fidl::encoding::ValueTypeMarker for StringSelector {
4437 type Borrowed<'a> = &'a Self;
4438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4439 value
4440 }
4441 }
4442
4443 unsafe impl fidl::encoding::TypeMarker for StringSelector {
4444 type Owned = Self;
4445
4446 #[inline(always)]
4447 fn inline_align(_context: fidl::encoding::Context) -> usize {
4448 8
4449 }
4450
4451 #[inline(always)]
4452 fn inline_size(_context: fidl::encoding::Context) -> usize {
4453 16
4454 }
4455 }
4456
4457 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StringSelector, D>
4458 for &StringSelector
4459 {
4460 #[inline]
4461 unsafe fn encode(
4462 self,
4463 encoder: &mut fidl::encoding::Encoder<'_, D>,
4464 offset: usize,
4465 _depth: fidl::encoding::Depth,
4466 ) -> fidl::Result<()> {
4467 encoder.debug_check_bounds::<StringSelector>(offset);
4468 encoder.write_num::<u64>(self.ordinal(), offset);
4469 match self {
4470 StringSelector::StringPattern(ref val) => {
4471 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4472 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4473 encoder, offset + 8, _depth
4474 )
4475 }
4476 StringSelector::ExactMatch(ref val) => {
4477 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4478 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4479 encoder, offset + 8, _depth
4480 )
4481 }
4482 StringSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4483 }
4484 }
4485 }
4486
4487 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StringSelector {
4488 #[inline(always)]
4489 fn new_empty() -> Self {
4490 Self::__SourceBreaking { unknown_ordinal: 0 }
4491 }
4492
4493 #[inline]
4494 unsafe fn decode(
4495 &mut self,
4496 decoder: &mut fidl::encoding::Decoder<'_, D>,
4497 offset: usize,
4498 mut depth: fidl::encoding::Depth,
4499 ) -> fidl::Result<()> {
4500 decoder.debug_check_bounds::<Self>(offset);
4501 #[allow(unused_variables)]
4502 let next_out_of_line = decoder.next_out_of_line();
4503 let handles_before = decoder.remaining_handles();
4504 let (ordinal, inlined, num_bytes, num_handles) =
4505 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4506
4507 let member_inline_size = match ordinal {
4508 1 => {
4509 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4510 decoder.context,
4511 )
4512 }
4513 2 => {
4514 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4515 decoder.context,
4516 )
4517 }
4518 0 => return Err(fidl::Error::UnknownUnionTag),
4519 _ => num_bytes as usize,
4520 };
4521
4522 if inlined != (member_inline_size <= 4) {
4523 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4524 }
4525 let _inner_offset;
4526 if inlined {
4527 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4528 _inner_offset = offset + 8;
4529 } else {
4530 depth.increment()?;
4531 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4532 }
4533 match ordinal {
4534 1 => {
4535 #[allow(irrefutable_let_patterns)]
4536 if let StringSelector::StringPattern(_) = self {
4537 } else {
4539 *self = StringSelector::StringPattern(fidl::new_empty!(
4541 fidl::encoding::BoundedString<1024>,
4542 D
4543 ));
4544 }
4545 #[allow(irrefutable_let_patterns)]
4546 if let StringSelector::StringPattern(ref mut val) = self {
4547 fidl::decode!(
4548 fidl::encoding::BoundedString<1024>,
4549 D,
4550 val,
4551 decoder,
4552 _inner_offset,
4553 depth
4554 )?;
4555 } else {
4556 unreachable!()
4557 }
4558 }
4559 2 => {
4560 #[allow(irrefutable_let_patterns)]
4561 if let StringSelector::ExactMatch(_) = self {
4562 } else {
4564 *self = StringSelector::ExactMatch(fidl::new_empty!(
4566 fidl::encoding::BoundedString<1024>,
4567 D
4568 ));
4569 }
4570 #[allow(irrefutable_let_patterns)]
4571 if let StringSelector::ExactMatch(ref mut val) = self {
4572 fidl::decode!(
4573 fidl::encoding::BoundedString<1024>,
4574 D,
4575 val,
4576 decoder,
4577 _inner_offset,
4578 depth
4579 )?;
4580 } else {
4581 unreachable!()
4582 }
4583 }
4584 #[allow(deprecated)]
4585 ordinal => {
4586 for _ in 0..num_handles {
4587 decoder.drop_next_handle()?;
4588 }
4589 *self = StringSelector::__SourceBreaking { unknown_ordinal: ordinal };
4590 }
4591 }
4592 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4593 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4594 }
4595 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4596 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4597 }
4598 Ok(())
4599 }
4600 }
4601
4602 impl fidl::encoding::ValueTypeMarker for TreeNames {
4603 type Borrowed<'a> = &'a Self;
4604 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4605 value
4606 }
4607 }
4608
4609 unsafe impl fidl::encoding::TypeMarker for TreeNames {
4610 type Owned = Self;
4611
4612 #[inline(always)]
4613 fn inline_align(_context: fidl::encoding::Context) -> usize {
4614 8
4615 }
4616
4617 #[inline(always)]
4618 fn inline_size(_context: fidl::encoding::Context) -> usize {
4619 16
4620 }
4621 }
4622
4623 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeNames, D>
4624 for &TreeNames
4625 {
4626 #[inline]
4627 unsafe fn encode(
4628 self,
4629 encoder: &mut fidl::encoding::Encoder<'_, D>,
4630 offset: usize,
4631 _depth: fidl::encoding::Depth,
4632 ) -> fidl::Result<()> {
4633 encoder.debug_check_bounds::<TreeNames>(offset);
4634 encoder.write_num::<u64>(self.ordinal(), offset);
4635 match self {
4636 TreeNames::Some(ref val) => {
4637 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>, D>(
4638 <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::ValueTypeMarker>::borrow(val),
4639 encoder, offset + 8, _depth
4640 )
4641 }
4642 TreeNames::All(ref val) => {
4643 fidl::encoding::encode_in_envelope::<All, D>(
4644 <All as fidl::encoding::ValueTypeMarker>::borrow(val),
4645 encoder, offset + 8, _depth
4646 )
4647 }
4648 TreeNames::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4649 }
4650 }
4651 }
4652
4653 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeNames {
4654 #[inline(always)]
4655 fn new_empty() -> Self {
4656 Self::__SourceBreaking { unknown_ordinal: 0 }
4657 }
4658
4659 #[inline]
4660 unsafe fn decode(
4661 &mut self,
4662 decoder: &mut fidl::encoding::Decoder<'_, D>,
4663 offset: usize,
4664 mut depth: fidl::encoding::Depth,
4665 ) -> fidl::Result<()> {
4666 decoder.debug_check_bounds::<Self>(offset);
4667 #[allow(unused_variables)]
4668 let next_out_of_line = decoder.next_out_of_line();
4669 let handles_before = decoder.remaining_handles();
4670 let (ordinal, inlined, num_bytes, num_handles) =
4671 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4672
4673 let member_inline_size = match ordinal {
4674 1 => <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4675 2 => <All as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4676 0 => return Err(fidl::Error::UnknownUnionTag),
4677 _ => num_bytes as usize,
4678 };
4679
4680 if inlined != (member_inline_size <= 4) {
4681 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4682 }
4683 let _inner_offset;
4684 if inlined {
4685 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4686 _inner_offset = offset + 8;
4687 } else {
4688 depth.increment()?;
4689 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4690 }
4691 match ordinal {
4692 1 => {
4693 #[allow(irrefutable_let_patterns)]
4694 if let TreeNames::Some(_) = self {
4695 } else {
4697 *self = TreeNames::Some(fidl::new_empty!(
4699 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4700 D
4701 ));
4702 }
4703 #[allow(irrefutable_let_patterns)]
4704 if let TreeNames::Some(ref mut val) = self {
4705 fidl::decode!(
4706 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4707 D,
4708 val,
4709 decoder,
4710 _inner_offset,
4711 depth
4712 )?;
4713 } else {
4714 unreachable!()
4715 }
4716 }
4717 2 => {
4718 #[allow(irrefutable_let_patterns)]
4719 if let TreeNames::All(_) = self {
4720 } else {
4722 *self = TreeNames::All(fidl::new_empty!(All, D));
4724 }
4725 #[allow(irrefutable_let_patterns)]
4726 if let TreeNames::All(ref mut val) = self {
4727 fidl::decode!(All, D, val, decoder, _inner_offset, depth)?;
4728 } else {
4729 unreachable!()
4730 }
4731 }
4732 #[allow(deprecated)]
4733 ordinal => {
4734 for _ in 0..num_handles {
4735 decoder.drop_next_handle()?;
4736 }
4737 *self = TreeNames::__SourceBreaking { unknown_ordinal: ordinal };
4738 }
4739 }
4740 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4742 }
4743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4745 }
4746 Ok(())
4747 }
4748 }
4749
4750 impl fidl::encoding::ValueTypeMarker for TreeSelector {
4751 type Borrowed<'a> = &'a Self;
4752 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4753 value
4754 }
4755 }
4756
4757 unsafe impl fidl::encoding::TypeMarker for TreeSelector {
4758 type Owned = Self;
4759
4760 #[inline(always)]
4761 fn inline_align(_context: fidl::encoding::Context) -> usize {
4762 8
4763 }
4764
4765 #[inline(always)]
4766 fn inline_size(_context: fidl::encoding::Context) -> usize {
4767 16
4768 }
4769 }
4770
4771 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeSelector, D>
4772 for &TreeSelector
4773 {
4774 #[inline]
4775 unsafe fn encode(
4776 self,
4777 encoder: &mut fidl::encoding::Encoder<'_, D>,
4778 offset: usize,
4779 _depth: fidl::encoding::Depth,
4780 ) -> fidl::Result<()> {
4781 encoder.debug_check_bounds::<TreeSelector>(offset);
4782 encoder.write_num::<u64>(self.ordinal(), offset);
4783 match self {
4784 TreeSelector::SubtreeSelector(ref val) => {
4785 fidl::encoding::encode_in_envelope::<SubtreeSelector, D>(
4786 <SubtreeSelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4787 encoder,
4788 offset + 8,
4789 _depth,
4790 )
4791 }
4792 TreeSelector::PropertySelector(ref val) => {
4793 fidl::encoding::encode_in_envelope::<PropertySelector, D>(
4794 <PropertySelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4795 encoder,
4796 offset + 8,
4797 _depth,
4798 )
4799 }
4800 TreeSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4801 }
4802 }
4803 }
4804
4805 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeSelector {
4806 #[inline(always)]
4807 fn new_empty() -> Self {
4808 Self::__SourceBreaking { unknown_ordinal: 0 }
4809 }
4810
4811 #[inline]
4812 unsafe fn decode(
4813 &mut self,
4814 decoder: &mut fidl::encoding::Decoder<'_, D>,
4815 offset: usize,
4816 mut depth: fidl::encoding::Depth,
4817 ) -> fidl::Result<()> {
4818 decoder.debug_check_bounds::<Self>(offset);
4819 #[allow(unused_variables)]
4820 let next_out_of_line = decoder.next_out_of_line();
4821 let handles_before = decoder.remaining_handles();
4822 let (ordinal, inlined, num_bytes, num_handles) =
4823 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4824
4825 let member_inline_size = match ordinal {
4826 1 => <SubtreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4827 2 => <PropertySelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4828 0 => return Err(fidl::Error::UnknownUnionTag),
4829 _ => num_bytes as usize,
4830 };
4831
4832 if inlined != (member_inline_size <= 4) {
4833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4834 }
4835 let _inner_offset;
4836 if inlined {
4837 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4838 _inner_offset = offset + 8;
4839 } else {
4840 depth.increment()?;
4841 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4842 }
4843 match ordinal {
4844 1 => {
4845 #[allow(irrefutable_let_patterns)]
4846 if let TreeSelector::SubtreeSelector(_) = self {
4847 } else {
4849 *self = TreeSelector::SubtreeSelector(fidl::new_empty!(SubtreeSelector, D));
4851 }
4852 #[allow(irrefutable_let_patterns)]
4853 if let TreeSelector::SubtreeSelector(ref mut val) = self {
4854 fidl::decode!(SubtreeSelector, D, val, decoder, _inner_offset, depth)?;
4855 } else {
4856 unreachable!()
4857 }
4858 }
4859 2 => {
4860 #[allow(irrefutable_let_patterns)]
4861 if let TreeSelector::PropertySelector(_) = self {
4862 } else {
4864 *self =
4866 TreeSelector::PropertySelector(fidl::new_empty!(PropertySelector, D));
4867 }
4868 #[allow(irrefutable_let_patterns)]
4869 if let TreeSelector::PropertySelector(ref mut val) = self {
4870 fidl::decode!(PropertySelector, D, val, decoder, _inner_offset, depth)?;
4871 } else {
4872 unreachable!()
4873 }
4874 }
4875 #[allow(deprecated)]
4876 ordinal => {
4877 for _ in 0..num_handles {
4878 decoder.drop_next_handle()?;
4879 }
4880 *self = TreeSelector::__SourceBreaking { unknown_ordinal: ordinal };
4881 }
4882 }
4883 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4885 }
4886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4888 }
4889 Ok(())
4890 }
4891 }
4892}