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