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 LegacyFxt = 4,
149 Fxt = 5,
153}
154
155impl Format {
156 #[inline]
157 pub fn from_primitive(prim: u32) -> Option<Self> {
158 match prim {
159 1 => Some(Self::Json),
160 2 => Some(Self::Text),
161 3 => Some(Self::Cbor),
162 4 => Some(Self::LegacyFxt),
163 5 => Some(Self::Fxt),
164 _ => None,
165 }
166 }
167
168 #[inline]
169 pub const fn into_primitive(self) -> u32 {
170 self as u32
171 }
172}
173
174#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
177#[repr(u32)]
178pub enum ReaderError {
179 Io = 1,
180}
181
182impl ReaderError {
183 #[inline]
184 pub fn from_primitive(prim: u32) -> Option<Self> {
185 match prim {
186 1 => Some(Self::Io),
187 _ => None,
188 }
189 }
190
191 #[inline]
192 pub const fn into_primitive(self) -> u32 {
193 self as u32
194 }
195}
196
197#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
202pub enum RuntimeError {
203 BatchIteratorFailed,
206 #[doc(hidden)]
207 __SourceBreaking { unknown_ordinal: u32 },
208}
209
210#[macro_export]
212macro_rules! RuntimeErrorUnknown {
213 () => {
214 _
215 };
216}
217
218impl RuntimeError {
219 #[inline]
220 pub fn from_primitive(prim: u32) -> Option<Self> {
221 match prim {
222 1 => Some(Self::BatchIteratorFailed),
223 _ => None,
224 }
225 }
226
227 #[inline]
228 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
229 match prim {
230 1 => Self::BatchIteratorFailed,
231 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
232 }
233 }
234
235 #[inline]
236 pub fn unknown() -> Self {
237 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
238 }
239
240 #[inline]
241 pub const fn into_primitive(self) -> u32 {
242 match self {
243 Self::BatchIteratorFailed => 1,
244 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
245 }
246 }
247
248 #[inline]
249 pub fn is_unknown(&self) -> bool {
250 match self {
251 Self::__SourceBreaking { unknown_ordinal: _ } => true,
252 _ => false,
253 }
254 }
255}
256
257#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
260pub enum SampleStrategy {
261 OnDiff,
265 Always,
270 #[doc(hidden)]
271 __SourceBreaking { unknown_ordinal: u8 },
272}
273
274#[macro_export]
276macro_rules! SampleStrategyUnknown {
277 () => {
278 _
279 };
280}
281
282impl SampleStrategy {
283 #[inline]
284 pub fn from_primitive(prim: u8) -> Option<Self> {
285 match prim {
286 1 => Some(Self::OnDiff),
287 2 => Some(Self::Always),
288 _ => None,
289 }
290 }
291
292 #[inline]
293 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
294 match prim {
295 1 => Self::OnDiff,
296 2 => Self::Always,
297 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
298 }
299 }
300
301 #[inline]
302 pub fn unknown() -> Self {
303 Self::__SourceBreaking { unknown_ordinal: 0xff }
304 }
305
306 #[inline]
307 pub const fn into_primitive(self) -> u8 {
308 match self {
309 Self::OnDiff => 1,
310 Self::Always => 2,
311 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
312 }
313 }
314
315 #[inline]
316 pub fn is_unknown(&self) -> bool {
317 match self {
318 Self::__SourceBreaking { unknown_ordinal: _ } => true,
319 _ => false,
320 }
321 }
322}
323
324#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
326#[repr(u8)]
327pub enum StreamMode {
328 Snapshot = 1,
331 SnapshotThenSubscribe = 2,
335 Subscribe = 3,
338}
339
340impl StreamMode {
341 #[inline]
342 pub fn from_primitive(prim: u8) -> Option<Self> {
343 match prim {
344 1 => Some(Self::Snapshot),
345 2 => Some(Self::SnapshotThenSubscribe),
346 3 => Some(Self::Subscribe),
347 _ => None,
348 }
349 }
350
351 #[inline]
352 pub const fn into_primitive(self) -> u8 {
353 self as u8
354 }
355}
356
357#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
358pub struct All;
359
360impl fidl::Persistable for All {}
361
362#[derive(Clone, Debug, PartialEq)]
363pub struct LogInterestSelector {
364 pub selector: ComponentSelector,
366 pub interest: fidl_fuchsia_diagnostics_types_common::Interest,
368}
369
370impl fidl::Persistable for LogInterestSelector {}
371
372#[derive(Clone, Debug, PartialEq)]
375pub struct PropertySelector {
376 pub node_path: Vec<StringSelector>,
389 pub target_properties: StringSelector,
395}
396
397impl fidl::Persistable for PropertySelector {}
398
399#[derive(Clone, Debug, PartialEq)]
402pub struct SubtreeSelector {
403 pub node_path: Vec<StringSelector>,
416}
417
418impl fidl::Persistable for SubtreeSelector {}
419
420#[derive(Clone, Debug, Default, PartialEq)]
439pub struct ComponentSelector {
440 pub moniker_segments: Option<Vec<StringSelector>>,
448 #[doc(hidden)]
449 pub __source_breaking: fidl::marker::SourceBreaking,
450}
451
452impl fidl::Persistable for ComponentSelector {}
453
454#[derive(Clone, Debug, Default, PartialEq)]
455pub struct LogSettingsSetComponentInterestRequest {
456 pub selectors: Option<Vec<LogInterestSelector>>,
458 pub persist: Option<bool>,
461 #[doc(hidden)]
462 pub __source_breaking: fidl::marker::SourceBreaking,
463}
464
465impl fidl::Persistable for LogSettingsSetComponentInterestRequest {}
466
467#[derive(Clone, Debug, Default, PartialEq)]
468pub struct LogStreamOptions {
469 pub mode: Option<StreamMode>,
471 pub include_moniker: Option<bool>,
474 pub include_component_url: Option<bool>,
477 pub include_rolled_out: Option<bool>,
481 pub subscribe_to_manifest: Option<bool>,
482 #[doc(hidden)]
483 pub __source_breaking: fidl::marker::SourceBreaking,
484}
485
486impl fidl::Persistable for LogStreamOptions {}
487
488#[derive(Clone, Debug, Default, PartialEq)]
490pub struct PerformanceConfiguration {
491 pub max_aggregate_content_size_bytes: Option<u64>,
497 pub batch_retrieval_timeout_seconds: Option<i64>,
506 #[doc(hidden)]
507 pub __source_breaking: fidl::marker::SourceBreaking,
508}
509
510impl fidl::Persistable for PerformanceConfiguration {}
511
512#[derive(Clone, Debug, Default, PartialEq)]
513pub struct SampleDatum {
514 pub selector: Option<SelectorArgument>,
516 pub strategy: Option<SampleStrategy>,
518 pub interval_secs: Option<i64>,
536 #[doc(hidden)]
537 pub __source_breaking: fidl::marker::SourceBreaking,
538}
539
540impl fidl::Persistable for SampleDatum {}
541
542#[derive(Clone, Debug, Default, PartialEq)]
544pub struct SampleParameters {
545 pub data: Option<Vec<SampleDatum>>,
551 #[doc(hidden)]
552 pub __source_breaking: fidl::marker::SourceBreaking,
553}
554
555impl fidl::Persistable for SampleParameters {}
556
557#[derive(Clone, Debug, Default, PartialEq)]
571pub struct Selector {
572 pub component_selector: Option<ComponentSelector>,
575 pub tree_selector: Option<TreeSelector>,
579 pub tree_names: Option<TreeNames>,
585 #[doc(hidden)]
586 pub __source_breaking: fidl::marker::SourceBreaking,
587}
588
589impl fidl::Persistable for Selector {}
590
591#[derive(Clone, Debug, Default, PartialEq)]
593pub struct StreamParameters {
594 pub data_type: Option<DataType>,
598 pub stream_mode: Option<StreamMode>,
602 pub format: Option<Format>,
606 pub client_selector_configuration: Option<ClientSelectorConfiguration>,
611 pub batch_retrieval_timeout_seconds: Option<i64>,
620 pub performance_configuration: Option<PerformanceConfiguration>,
623 #[doc(hidden)]
624 pub __source_breaking: fidl::marker::SourceBreaking,
625}
626
627impl fidl::Persistable for StreamParameters {}
628
629#[derive(Clone, Debug)]
630pub enum ClientSelectorConfiguration {
631 Selectors(Vec<SelectorArgument>),
635 SelectAll(bool),
638 #[doc(hidden)]
639 __SourceBreaking { unknown_ordinal: u64 },
640}
641
642#[macro_export]
644macro_rules! ClientSelectorConfigurationUnknown {
645 () => {
646 _
647 };
648}
649
650impl PartialEq for ClientSelectorConfiguration {
652 fn eq(&self, other: &Self) -> bool {
653 match (self, other) {
654 (Self::Selectors(x), Self::Selectors(y)) => *x == *y,
655 (Self::SelectAll(x), Self::SelectAll(y)) => *x == *y,
656 _ => false,
657 }
658 }
659}
660
661impl ClientSelectorConfiguration {
662 #[inline]
663 pub fn ordinal(&self) -> u64 {
664 match *self {
665 Self::Selectors(_) => 1,
666 Self::SelectAll(_) => 2,
667 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
668 }
669 }
670
671 #[inline]
672 pub fn unknown_variant_for_testing() -> Self {
673 Self::__SourceBreaking { unknown_ordinal: 0 }
674 }
675
676 #[inline]
677 pub fn is_unknown(&self) -> bool {
678 match self {
679 Self::__SourceBreaking { .. } => true,
680 _ => false,
681 }
682 }
683}
684
685impl fidl::Persistable for ClientSelectorConfiguration {}
686
687#[derive(Clone, Debug)]
690pub enum SelectorArgument {
691 StructuredSelector(Selector),
694 RawSelector(String),
701 #[doc(hidden)]
702 __SourceBreaking { unknown_ordinal: u64 },
703}
704
705#[macro_export]
707macro_rules! SelectorArgumentUnknown {
708 () => {
709 _
710 };
711}
712
713impl PartialEq for SelectorArgument {
715 fn eq(&self, other: &Self) -> bool {
716 match (self, other) {
717 (Self::StructuredSelector(x), Self::StructuredSelector(y)) => *x == *y,
718 (Self::RawSelector(x), Self::RawSelector(y)) => *x == *y,
719 _ => false,
720 }
721 }
722}
723
724impl SelectorArgument {
725 #[inline]
726 pub fn ordinal(&self) -> u64 {
727 match *self {
728 Self::StructuredSelector(_) => 1,
729 Self::RawSelector(_) => 2,
730 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
731 }
732 }
733
734 #[inline]
735 pub fn unknown_variant_for_testing() -> Self {
736 Self::__SourceBreaking { unknown_ordinal: 0 }
737 }
738
739 #[inline]
740 pub fn is_unknown(&self) -> bool {
741 match self {
742 Self::__SourceBreaking { .. } => true,
743 _ => false,
744 }
745 }
746}
747
748impl fidl::Persistable for SelectorArgument {}
749
750#[derive(Clone, Debug)]
753pub enum StringSelector {
754 StringPattern(String),
774 ExactMatch(String),
775 #[doc(hidden)]
776 __SourceBreaking {
777 unknown_ordinal: u64,
778 },
779}
780
781#[macro_export]
783macro_rules! StringSelectorUnknown {
784 () => {
785 _
786 };
787}
788
789impl PartialEq for StringSelector {
791 fn eq(&self, other: &Self) -> bool {
792 match (self, other) {
793 (Self::StringPattern(x), Self::StringPattern(y)) => *x == *y,
794 (Self::ExactMatch(x), Self::ExactMatch(y)) => *x == *y,
795 _ => false,
796 }
797 }
798}
799
800impl StringSelector {
801 #[inline]
802 pub fn ordinal(&self) -> u64 {
803 match *self {
804 Self::StringPattern(_) => 1,
805 Self::ExactMatch(_) => 2,
806 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
807 }
808 }
809
810 #[inline]
811 pub fn unknown_variant_for_testing() -> Self {
812 Self::__SourceBreaking { unknown_ordinal: 0 }
813 }
814
815 #[inline]
816 pub fn is_unknown(&self) -> bool {
817 match self {
818 Self::__SourceBreaking { .. } => true,
819 _ => false,
820 }
821 }
822}
823
824impl fidl::Persistable for StringSelector {}
825
826#[derive(Clone, Debug)]
830pub enum TreeNames {
831 Some(Vec<String>),
833 All(All),
836 #[doc(hidden)]
837 __SourceBreaking { unknown_ordinal: u64 },
838}
839
840#[macro_export]
842macro_rules! TreeNamesUnknown {
843 () => {
844 _
845 };
846}
847
848impl PartialEq for TreeNames {
850 fn eq(&self, other: &Self) -> bool {
851 match (self, other) {
852 (Self::Some(x), Self::Some(y)) => *x == *y,
853 (Self::All(x), Self::All(y)) => *x == *y,
854 _ => false,
855 }
856 }
857}
858
859impl TreeNames {
860 #[inline]
861 pub fn ordinal(&self) -> u64 {
862 match *self {
863 Self::Some(_) => 1,
864 Self::All(_) => 2,
865 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
866 }
867 }
868
869 #[inline]
870 pub fn unknown_variant_for_testing() -> Self {
871 Self::__SourceBreaking { unknown_ordinal: 0 }
872 }
873
874 #[inline]
875 pub fn is_unknown(&self) -> bool {
876 match self {
877 Self::__SourceBreaking { .. } => true,
878 _ => false,
879 }
880 }
881}
882
883impl fidl::Persistable for TreeNames {}
884
885#[derive(Clone, Debug)]
888pub enum TreeSelector {
889 SubtreeSelector(SubtreeSelector),
892 PropertySelector(PropertySelector),
895 #[doc(hidden)]
896 __SourceBreaking { unknown_ordinal: u64 },
897}
898
899#[macro_export]
901macro_rules! TreeSelectorUnknown {
902 () => {
903 _
904 };
905}
906
907impl PartialEq for TreeSelector {
909 fn eq(&self, other: &Self) -> bool {
910 match (self, other) {
911 (Self::SubtreeSelector(x), Self::SubtreeSelector(y)) => *x == *y,
912 (Self::PropertySelector(x), Self::PropertySelector(y)) => *x == *y,
913 _ => false,
914 }
915 }
916}
917
918impl TreeSelector {
919 #[inline]
920 pub fn ordinal(&self) -> u64 {
921 match *self {
922 Self::SubtreeSelector(_) => 1,
923 Self::PropertySelector(_) => 2,
924 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
925 }
926 }
927
928 #[inline]
929 pub fn unknown_variant_for_testing() -> Self {
930 Self::__SourceBreaking { unknown_ordinal: 0 }
931 }
932
933 #[inline]
934 pub fn is_unknown(&self) -> bool {
935 match self {
936 Self::__SourceBreaking { .. } => true,
937 _ => false,
938 }
939 }
940}
941
942impl fidl::Persistable for TreeSelector {}
943
944pub mod archive_accessor_ordinals {
945 pub const STREAM_DIAGNOSTICS: u64 = 0x20c73e2ecd653c3e;
946 pub const STREAM_DIAGNOSTICS_TO_SOCKET: u64 = 0x2498dd7cea299478;
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.performance_configuration {
3671 return 6;
3672 }
3673 if let Some(_) = self.batch_retrieval_timeout_seconds {
3674 return 5;
3675 }
3676 if let Some(_) = self.client_selector_configuration {
3677 return 4;
3678 }
3679 if let Some(_) = self.format {
3680 return 3;
3681 }
3682 if let Some(_) = self.stream_mode {
3683 return 2;
3684 }
3685 if let Some(_) = self.data_type {
3686 return 1;
3687 }
3688 0
3689 }
3690 }
3691
3692 impl fidl::encoding::ValueTypeMarker for StreamParameters {
3693 type Borrowed<'a> = &'a Self;
3694 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3695 value
3696 }
3697 }
3698
3699 unsafe impl fidl::encoding::TypeMarker for StreamParameters {
3700 type Owned = Self;
3701
3702 #[inline(always)]
3703 fn inline_align(_context: fidl::encoding::Context) -> usize {
3704 8
3705 }
3706
3707 #[inline(always)]
3708 fn inline_size(_context: fidl::encoding::Context) -> usize {
3709 16
3710 }
3711 }
3712
3713 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamParameters, D>
3714 for &StreamParameters
3715 {
3716 unsafe fn encode(
3717 self,
3718 encoder: &mut fidl::encoding::Encoder<'_, D>,
3719 offset: usize,
3720 mut depth: fidl::encoding::Depth,
3721 ) -> fidl::Result<()> {
3722 encoder.debug_check_bounds::<StreamParameters>(offset);
3723 let max_ordinal: u64 = self.max_ordinal_present();
3725 encoder.write_num(max_ordinal, offset);
3726 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3727 if max_ordinal == 0 {
3729 return Ok(());
3730 }
3731 depth.increment()?;
3732 let envelope_size = 8;
3733 let bytes_len = max_ordinal as usize * envelope_size;
3734 #[allow(unused_variables)]
3735 let offset = encoder.out_of_line_offset(bytes_len);
3736 let mut _prev_end_offset: usize = 0;
3737 if 1 > max_ordinal {
3738 return Ok(());
3739 }
3740
3741 let cur_offset: usize = (1 - 1) * envelope_size;
3744
3745 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3747
3748 fidl::encoding::encode_in_envelope_optional::<DataType, D>(
3753 self.data_type.as_ref().map(<DataType as fidl::encoding::ValueTypeMarker>::borrow),
3754 encoder,
3755 offset + cur_offset,
3756 depth,
3757 )?;
3758
3759 _prev_end_offset = cur_offset + envelope_size;
3760 if 2 > max_ordinal {
3761 return Ok(());
3762 }
3763
3764 let cur_offset: usize = (2 - 1) * envelope_size;
3767
3768 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3770
3771 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
3776 self.stream_mode
3777 .as_ref()
3778 .map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
3779 encoder,
3780 offset + cur_offset,
3781 depth,
3782 )?;
3783
3784 _prev_end_offset = cur_offset + envelope_size;
3785 if 3 > max_ordinal {
3786 return Ok(());
3787 }
3788
3789 let cur_offset: usize = (3 - 1) * envelope_size;
3792
3793 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3795
3796 fidl::encoding::encode_in_envelope_optional::<Format, D>(
3801 self.format.as_ref().map(<Format as fidl::encoding::ValueTypeMarker>::borrow),
3802 encoder,
3803 offset + cur_offset,
3804 depth,
3805 )?;
3806
3807 _prev_end_offset = cur_offset + envelope_size;
3808 if 4 > max_ordinal {
3809 return Ok(());
3810 }
3811
3812 let cur_offset: usize = (4 - 1) * envelope_size;
3815
3816 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3818
3819 fidl::encoding::encode_in_envelope_optional::<ClientSelectorConfiguration, D>(
3824 self.client_selector_configuration
3825 .as_ref()
3826 .map(<ClientSelectorConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3827 encoder,
3828 offset + cur_offset,
3829 depth,
3830 )?;
3831
3832 _prev_end_offset = cur_offset + envelope_size;
3833 if 5 > max_ordinal {
3834 return Ok(());
3835 }
3836
3837 let cur_offset: usize = (5 - 1) * envelope_size;
3840
3841 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3843
3844 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3849 self.batch_retrieval_timeout_seconds
3850 .as_ref()
3851 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3852 encoder,
3853 offset + cur_offset,
3854 depth,
3855 )?;
3856
3857 _prev_end_offset = cur_offset + envelope_size;
3858 if 6 > max_ordinal {
3859 return Ok(());
3860 }
3861
3862 let cur_offset: usize = (6 - 1) * envelope_size;
3865
3866 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3868
3869 fidl::encoding::encode_in_envelope_optional::<PerformanceConfiguration, D>(
3874 self.performance_configuration
3875 .as_ref()
3876 .map(<PerformanceConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3877 encoder,
3878 offset + cur_offset,
3879 depth,
3880 )?;
3881
3882 _prev_end_offset = cur_offset + envelope_size;
3883
3884 Ok(())
3885 }
3886 }
3887
3888 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamParameters {
3889 #[inline(always)]
3890 fn new_empty() -> Self {
3891 Self::default()
3892 }
3893
3894 unsafe fn decode(
3895 &mut self,
3896 decoder: &mut fidl::encoding::Decoder<'_, D>,
3897 offset: usize,
3898 mut depth: fidl::encoding::Depth,
3899 ) -> fidl::Result<()> {
3900 decoder.debug_check_bounds::<Self>(offset);
3901 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3902 None => return Err(fidl::Error::NotNullable),
3903 Some(len) => len,
3904 };
3905 if len == 0 {
3907 return Ok(());
3908 };
3909 depth.increment()?;
3910 let envelope_size = 8;
3911 let bytes_len = len * envelope_size;
3912 let offset = decoder.out_of_line_offset(bytes_len)?;
3913 let mut _next_ordinal_to_read = 0;
3915 let mut next_offset = offset;
3916 let end_offset = offset + bytes_len;
3917 _next_ordinal_to_read += 1;
3918 if next_offset >= end_offset {
3919 return Ok(());
3920 }
3921
3922 while _next_ordinal_to_read < 1 {
3924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3925 _next_ordinal_to_read += 1;
3926 next_offset += envelope_size;
3927 }
3928
3929 let next_out_of_line = decoder.next_out_of_line();
3930 let handles_before = decoder.remaining_handles();
3931 if let Some((inlined, num_bytes, num_handles)) =
3932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3933 {
3934 let member_inline_size =
3935 <DataType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3936 if inlined != (member_inline_size <= 4) {
3937 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3938 }
3939 let inner_offset;
3940 let mut inner_depth = depth.clone();
3941 if inlined {
3942 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3943 inner_offset = next_offset;
3944 } else {
3945 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3946 inner_depth.increment()?;
3947 }
3948 let val_ref = self.data_type.get_or_insert_with(|| fidl::new_empty!(DataType, D));
3949 fidl::decode!(DataType, D, val_ref, decoder, inner_offset, inner_depth)?;
3950 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3951 {
3952 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3953 }
3954 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3955 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3956 }
3957 }
3958
3959 next_offset += envelope_size;
3960 _next_ordinal_to_read += 1;
3961 if next_offset >= end_offset {
3962 return Ok(());
3963 }
3964
3965 while _next_ordinal_to_read < 2 {
3967 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3968 _next_ordinal_to_read += 1;
3969 next_offset += envelope_size;
3970 }
3971
3972 let next_out_of_line = decoder.next_out_of_line();
3973 let handles_before = decoder.remaining_handles();
3974 if let Some((inlined, num_bytes, num_handles)) =
3975 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3976 {
3977 let member_inline_size =
3978 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3979 if inlined != (member_inline_size <= 4) {
3980 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3981 }
3982 let inner_offset;
3983 let mut inner_depth = depth.clone();
3984 if inlined {
3985 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3986 inner_offset = next_offset;
3987 } else {
3988 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3989 inner_depth.increment()?;
3990 }
3991 let val_ref =
3992 self.stream_mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
3993 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
3994 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3995 {
3996 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3997 }
3998 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3999 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4000 }
4001 }
4002
4003 next_offset += envelope_size;
4004 _next_ordinal_to_read += 1;
4005 if next_offset >= end_offset {
4006 return Ok(());
4007 }
4008
4009 while _next_ordinal_to_read < 3 {
4011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4012 _next_ordinal_to_read += 1;
4013 next_offset += envelope_size;
4014 }
4015
4016 let next_out_of_line = decoder.next_out_of_line();
4017 let handles_before = decoder.remaining_handles();
4018 if let Some((inlined, num_bytes, num_handles)) =
4019 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4020 {
4021 let member_inline_size =
4022 <Format as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4023 if inlined != (member_inline_size <= 4) {
4024 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4025 }
4026 let inner_offset;
4027 let mut inner_depth = depth.clone();
4028 if inlined {
4029 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4030 inner_offset = next_offset;
4031 } else {
4032 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4033 inner_depth.increment()?;
4034 }
4035 let val_ref = self.format.get_or_insert_with(|| fidl::new_empty!(Format, D));
4036 fidl::decode!(Format, D, val_ref, decoder, inner_offset, inner_depth)?;
4037 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4038 {
4039 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4040 }
4041 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4042 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4043 }
4044 }
4045
4046 next_offset += envelope_size;
4047 _next_ordinal_to_read += 1;
4048 if next_offset >= end_offset {
4049 return Ok(());
4050 }
4051
4052 while _next_ordinal_to_read < 4 {
4054 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4055 _next_ordinal_to_read += 1;
4056 next_offset += envelope_size;
4057 }
4058
4059 let next_out_of_line = decoder.next_out_of_line();
4060 let handles_before = decoder.remaining_handles();
4061 if let Some((inlined, num_bytes, num_handles)) =
4062 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4063 {
4064 let member_inline_size =
4065 <ClientSelectorConfiguration as fidl::encoding::TypeMarker>::inline_size(
4066 decoder.context,
4067 );
4068 if inlined != (member_inline_size <= 4) {
4069 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4070 }
4071 let inner_offset;
4072 let mut inner_depth = depth.clone();
4073 if inlined {
4074 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4075 inner_offset = next_offset;
4076 } else {
4077 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4078 inner_depth.increment()?;
4079 }
4080 let val_ref = self
4081 .client_selector_configuration
4082 .get_or_insert_with(|| fidl::new_empty!(ClientSelectorConfiguration, D));
4083 fidl::decode!(
4084 ClientSelectorConfiguration,
4085 D,
4086 val_ref,
4087 decoder,
4088 inner_offset,
4089 inner_depth
4090 )?;
4091 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4092 {
4093 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4094 }
4095 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4096 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4097 }
4098 }
4099
4100 next_offset += envelope_size;
4101 _next_ordinal_to_read += 1;
4102 if next_offset >= end_offset {
4103 return Ok(());
4104 }
4105
4106 while _next_ordinal_to_read < 5 {
4108 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4109 _next_ordinal_to_read += 1;
4110 next_offset += envelope_size;
4111 }
4112
4113 let next_out_of_line = decoder.next_out_of_line();
4114 let handles_before = decoder.remaining_handles();
4115 if let Some((inlined, num_bytes, num_handles)) =
4116 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4117 {
4118 let member_inline_size =
4119 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4120 if inlined != (member_inline_size <= 4) {
4121 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4122 }
4123 let inner_offset;
4124 let mut inner_depth = depth.clone();
4125 if inlined {
4126 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4127 inner_offset = next_offset;
4128 } else {
4129 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4130 inner_depth.increment()?;
4131 }
4132 let val_ref = self
4133 .batch_retrieval_timeout_seconds
4134 .get_or_insert_with(|| fidl::new_empty!(i64, D));
4135 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4136 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4137 {
4138 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4139 }
4140 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4141 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4142 }
4143 }
4144
4145 next_offset += envelope_size;
4146 _next_ordinal_to_read += 1;
4147 if next_offset >= end_offset {
4148 return Ok(());
4149 }
4150
4151 while _next_ordinal_to_read < 6 {
4153 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4154 _next_ordinal_to_read += 1;
4155 next_offset += envelope_size;
4156 }
4157
4158 let next_out_of_line = decoder.next_out_of_line();
4159 let handles_before = decoder.remaining_handles();
4160 if let Some((inlined, num_bytes, num_handles)) =
4161 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4162 {
4163 let member_inline_size =
4164 <PerformanceConfiguration as fidl::encoding::TypeMarker>::inline_size(
4165 decoder.context,
4166 );
4167 if inlined != (member_inline_size <= 4) {
4168 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4169 }
4170 let inner_offset;
4171 let mut inner_depth = depth.clone();
4172 if inlined {
4173 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4174 inner_offset = next_offset;
4175 } else {
4176 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4177 inner_depth.increment()?;
4178 }
4179 let val_ref = self
4180 .performance_configuration
4181 .get_or_insert_with(|| fidl::new_empty!(PerformanceConfiguration, D));
4182 fidl::decode!(
4183 PerformanceConfiguration,
4184 D,
4185 val_ref,
4186 decoder,
4187 inner_offset,
4188 inner_depth
4189 )?;
4190 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4191 {
4192 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4193 }
4194 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4195 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4196 }
4197 }
4198
4199 next_offset += envelope_size;
4200
4201 while next_offset < end_offset {
4203 _next_ordinal_to_read += 1;
4204 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4205 next_offset += envelope_size;
4206 }
4207
4208 Ok(())
4209 }
4210 }
4211
4212 impl fidl::encoding::ValueTypeMarker for ClientSelectorConfiguration {
4213 type Borrowed<'a> = &'a Self;
4214 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4215 value
4216 }
4217 }
4218
4219 unsafe impl fidl::encoding::TypeMarker for ClientSelectorConfiguration {
4220 type Owned = Self;
4221
4222 #[inline(always)]
4223 fn inline_align(_context: fidl::encoding::Context) -> usize {
4224 8
4225 }
4226
4227 #[inline(always)]
4228 fn inline_size(_context: fidl::encoding::Context) -> usize {
4229 16
4230 }
4231 }
4232
4233 unsafe impl<D: fidl::encoding::ResourceDialect>
4234 fidl::encoding::Encode<ClientSelectorConfiguration, D> for &ClientSelectorConfiguration
4235 {
4236 #[inline]
4237 unsafe fn encode(
4238 self,
4239 encoder: &mut fidl::encoding::Encoder<'_, D>,
4240 offset: usize,
4241 _depth: fidl::encoding::Depth,
4242 ) -> fidl::Result<()> {
4243 encoder.debug_check_bounds::<ClientSelectorConfiguration>(offset);
4244 encoder.write_num::<u64>(self.ordinal(), offset);
4245 match self {
4246 ClientSelectorConfiguration::Selectors(ref val) => {
4247 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<SelectorArgument>, D>(
4248 <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::ValueTypeMarker>::borrow(val),
4249 encoder, offset + 8, _depth
4250 )
4251 }
4252 ClientSelectorConfiguration::SelectAll(ref val) => {
4253 fidl::encoding::encode_in_envelope::<bool, D>(
4254 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
4255 encoder, offset + 8, _depth
4256 )
4257 }
4258 ClientSelectorConfiguration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4259 }
4260 }
4261 }
4262
4263 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4264 for ClientSelectorConfiguration
4265 {
4266 #[inline(always)]
4267 fn new_empty() -> Self {
4268 Self::__SourceBreaking { unknown_ordinal: 0 }
4269 }
4270
4271 #[inline]
4272 unsafe fn decode(
4273 &mut self,
4274 decoder: &mut fidl::encoding::Decoder<'_, D>,
4275 offset: usize,
4276 mut depth: fidl::encoding::Depth,
4277 ) -> fidl::Result<()> {
4278 decoder.debug_check_bounds::<Self>(offset);
4279 #[allow(unused_variables)]
4280 let next_out_of_line = decoder.next_out_of_line();
4281 let handles_before = decoder.remaining_handles();
4282 let (ordinal, inlined, num_bytes, num_handles) =
4283 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4284
4285 let member_inline_size = match ordinal {
4286 1 => <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4287 2 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4288 0 => return Err(fidl::Error::UnknownUnionTag),
4289 _ => num_bytes as usize,
4290 };
4291
4292 if inlined != (member_inline_size <= 4) {
4293 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4294 }
4295 let _inner_offset;
4296 if inlined {
4297 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4298 _inner_offset = offset + 8;
4299 } else {
4300 depth.increment()?;
4301 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4302 }
4303 match ordinal {
4304 1 => {
4305 #[allow(irrefutable_let_patterns)]
4306 if let ClientSelectorConfiguration::Selectors(_) = self {
4307 } else {
4309 *self = ClientSelectorConfiguration::Selectors(fidl::new_empty!(
4311 fidl::encoding::UnboundedVector<SelectorArgument>,
4312 D
4313 ));
4314 }
4315 #[allow(irrefutable_let_patterns)]
4316 if let ClientSelectorConfiguration::Selectors(ref mut val) = self {
4317 fidl::decode!(
4318 fidl::encoding::UnboundedVector<SelectorArgument>,
4319 D,
4320 val,
4321 decoder,
4322 _inner_offset,
4323 depth
4324 )?;
4325 } else {
4326 unreachable!()
4327 }
4328 }
4329 2 => {
4330 #[allow(irrefutable_let_patterns)]
4331 if let ClientSelectorConfiguration::SelectAll(_) = self {
4332 } else {
4334 *self = ClientSelectorConfiguration::SelectAll(fidl::new_empty!(bool, D));
4336 }
4337 #[allow(irrefutable_let_patterns)]
4338 if let ClientSelectorConfiguration::SelectAll(ref mut val) = self {
4339 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4340 } else {
4341 unreachable!()
4342 }
4343 }
4344 #[allow(deprecated)]
4345 ordinal => {
4346 for _ in 0..num_handles {
4347 decoder.drop_next_handle()?;
4348 }
4349 *self =
4350 ClientSelectorConfiguration::__SourceBreaking { unknown_ordinal: ordinal };
4351 }
4352 }
4353 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4354 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4355 }
4356 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4357 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4358 }
4359 Ok(())
4360 }
4361 }
4362
4363 impl fidl::encoding::ValueTypeMarker for SelectorArgument {
4364 type Borrowed<'a> = &'a Self;
4365 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4366 value
4367 }
4368 }
4369
4370 unsafe impl fidl::encoding::TypeMarker for SelectorArgument {
4371 type Owned = Self;
4372
4373 #[inline(always)]
4374 fn inline_align(_context: fidl::encoding::Context) -> usize {
4375 8
4376 }
4377
4378 #[inline(always)]
4379 fn inline_size(_context: fidl::encoding::Context) -> usize {
4380 16
4381 }
4382 }
4383
4384 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelectorArgument, D>
4385 for &SelectorArgument
4386 {
4387 #[inline]
4388 unsafe fn encode(
4389 self,
4390 encoder: &mut fidl::encoding::Encoder<'_, D>,
4391 offset: usize,
4392 _depth: fidl::encoding::Depth,
4393 ) -> fidl::Result<()> {
4394 encoder.debug_check_bounds::<SelectorArgument>(offset);
4395 encoder.write_num::<u64>(self.ordinal(), offset);
4396 match self {
4397 SelectorArgument::StructuredSelector(ref val) => {
4398 fidl::encoding::encode_in_envelope::<Selector, D>(
4399 <Selector as fidl::encoding::ValueTypeMarker>::borrow(val),
4400 encoder, offset + 8, _depth
4401 )
4402 }
4403 SelectorArgument::RawSelector(ref val) => {
4404 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4405 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4406 encoder, offset + 8, _depth
4407 )
4408 }
4409 SelectorArgument::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4410 }
4411 }
4412 }
4413
4414 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelectorArgument {
4415 #[inline(always)]
4416 fn new_empty() -> Self {
4417 Self::__SourceBreaking { unknown_ordinal: 0 }
4418 }
4419
4420 #[inline]
4421 unsafe fn decode(
4422 &mut self,
4423 decoder: &mut fidl::encoding::Decoder<'_, D>,
4424 offset: usize,
4425 mut depth: fidl::encoding::Depth,
4426 ) -> fidl::Result<()> {
4427 decoder.debug_check_bounds::<Self>(offset);
4428 #[allow(unused_variables)]
4429 let next_out_of_line = decoder.next_out_of_line();
4430 let handles_before = decoder.remaining_handles();
4431 let (ordinal, inlined, num_bytes, num_handles) =
4432 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4433
4434 let member_inline_size = match ordinal {
4435 1 => <Selector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4436 2 => {
4437 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4438 decoder.context,
4439 )
4440 }
4441 0 => return Err(fidl::Error::UnknownUnionTag),
4442 _ => num_bytes as usize,
4443 };
4444
4445 if inlined != (member_inline_size <= 4) {
4446 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4447 }
4448 let _inner_offset;
4449 if inlined {
4450 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4451 _inner_offset = offset + 8;
4452 } else {
4453 depth.increment()?;
4454 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4455 }
4456 match ordinal {
4457 1 => {
4458 #[allow(irrefutable_let_patterns)]
4459 if let SelectorArgument::StructuredSelector(_) = self {
4460 } else {
4462 *self = SelectorArgument::StructuredSelector(fidl::new_empty!(Selector, D));
4464 }
4465 #[allow(irrefutable_let_patterns)]
4466 if let SelectorArgument::StructuredSelector(ref mut val) = self {
4467 fidl::decode!(Selector, D, val, decoder, _inner_offset, depth)?;
4468 } else {
4469 unreachable!()
4470 }
4471 }
4472 2 => {
4473 #[allow(irrefutable_let_patterns)]
4474 if let SelectorArgument::RawSelector(_) = self {
4475 } else {
4477 *self = SelectorArgument::RawSelector(fidl::new_empty!(
4479 fidl::encoding::BoundedString<1024>,
4480 D
4481 ));
4482 }
4483 #[allow(irrefutable_let_patterns)]
4484 if let SelectorArgument::RawSelector(ref mut val) = self {
4485 fidl::decode!(
4486 fidl::encoding::BoundedString<1024>,
4487 D,
4488 val,
4489 decoder,
4490 _inner_offset,
4491 depth
4492 )?;
4493 } else {
4494 unreachable!()
4495 }
4496 }
4497 #[allow(deprecated)]
4498 ordinal => {
4499 for _ in 0..num_handles {
4500 decoder.drop_next_handle()?;
4501 }
4502 *self = SelectorArgument::__SourceBreaking { unknown_ordinal: ordinal };
4503 }
4504 }
4505 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4506 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4507 }
4508 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4509 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4510 }
4511 Ok(())
4512 }
4513 }
4514
4515 impl fidl::encoding::ValueTypeMarker for StringSelector {
4516 type Borrowed<'a> = &'a Self;
4517 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4518 value
4519 }
4520 }
4521
4522 unsafe impl fidl::encoding::TypeMarker for StringSelector {
4523 type Owned = Self;
4524
4525 #[inline(always)]
4526 fn inline_align(_context: fidl::encoding::Context) -> usize {
4527 8
4528 }
4529
4530 #[inline(always)]
4531 fn inline_size(_context: fidl::encoding::Context) -> usize {
4532 16
4533 }
4534 }
4535
4536 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StringSelector, D>
4537 for &StringSelector
4538 {
4539 #[inline]
4540 unsafe fn encode(
4541 self,
4542 encoder: &mut fidl::encoding::Encoder<'_, D>,
4543 offset: usize,
4544 _depth: fidl::encoding::Depth,
4545 ) -> fidl::Result<()> {
4546 encoder.debug_check_bounds::<StringSelector>(offset);
4547 encoder.write_num::<u64>(self.ordinal(), offset);
4548 match self {
4549 StringSelector::StringPattern(ref val) => {
4550 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4551 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4552 encoder, offset + 8, _depth
4553 )
4554 }
4555 StringSelector::ExactMatch(ref val) => {
4556 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4557 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4558 encoder, offset + 8, _depth
4559 )
4560 }
4561 StringSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4562 }
4563 }
4564 }
4565
4566 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StringSelector {
4567 #[inline(always)]
4568 fn new_empty() -> Self {
4569 Self::__SourceBreaking { unknown_ordinal: 0 }
4570 }
4571
4572 #[inline]
4573 unsafe fn decode(
4574 &mut self,
4575 decoder: &mut fidl::encoding::Decoder<'_, D>,
4576 offset: usize,
4577 mut depth: fidl::encoding::Depth,
4578 ) -> fidl::Result<()> {
4579 decoder.debug_check_bounds::<Self>(offset);
4580 #[allow(unused_variables)]
4581 let next_out_of_line = decoder.next_out_of_line();
4582 let handles_before = decoder.remaining_handles();
4583 let (ordinal, inlined, num_bytes, num_handles) =
4584 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4585
4586 let member_inline_size = match ordinal {
4587 1 => {
4588 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4589 decoder.context,
4590 )
4591 }
4592 2 => {
4593 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4594 decoder.context,
4595 )
4596 }
4597 0 => return Err(fidl::Error::UnknownUnionTag),
4598 _ => num_bytes as usize,
4599 };
4600
4601 if inlined != (member_inline_size <= 4) {
4602 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4603 }
4604 let _inner_offset;
4605 if inlined {
4606 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4607 _inner_offset = offset + 8;
4608 } else {
4609 depth.increment()?;
4610 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4611 }
4612 match ordinal {
4613 1 => {
4614 #[allow(irrefutable_let_patterns)]
4615 if let StringSelector::StringPattern(_) = self {
4616 } else {
4618 *self = StringSelector::StringPattern(fidl::new_empty!(
4620 fidl::encoding::BoundedString<1024>,
4621 D
4622 ));
4623 }
4624 #[allow(irrefutable_let_patterns)]
4625 if let StringSelector::StringPattern(ref mut val) = self {
4626 fidl::decode!(
4627 fidl::encoding::BoundedString<1024>,
4628 D,
4629 val,
4630 decoder,
4631 _inner_offset,
4632 depth
4633 )?;
4634 } else {
4635 unreachable!()
4636 }
4637 }
4638 2 => {
4639 #[allow(irrefutable_let_patterns)]
4640 if let StringSelector::ExactMatch(_) = self {
4641 } else {
4643 *self = StringSelector::ExactMatch(fidl::new_empty!(
4645 fidl::encoding::BoundedString<1024>,
4646 D
4647 ));
4648 }
4649 #[allow(irrefutable_let_patterns)]
4650 if let StringSelector::ExactMatch(ref mut val) = self {
4651 fidl::decode!(
4652 fidl::encoding::BoundedString<1024>,
4653 D,
4654 val,
4655 decoder,
4656 _inner_offset,
4657 depth
4658 )?;
4659 } else {
4660 unreachable!()
4661 }
4662 }
4663 #[allow(deprecated)]
4664 ordinal => {
4665 for _ in 0..num_handles {
4666 decoder.drop_next_handle()?;
4667 }
4668 *self = StringSelector::__SourceBreaking { unknown_ordinal: ordinal };
4669 }
4670 }
4671 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4672 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4673 }
4674 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4675 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4676 }
4677 Ok(())
4678 }
4679 }
4680
4681 impl fidl::encoding::ValueTypeMarker for TreeNames {
4682 type Borrowed<'a> = &'a Self;
4683 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4684 value
4685 }
4686 }
4687
4688 unsafe impl fidl::encoding::TypeMarker for TreeNames {
4689 type Owned = Self;
4690
4691 #[inline(always)]
4692 fn inline_align(_context: fidl::encoding::Context) -> usize {
4693 8
4694 }
4695
4696 #[inline(always)]
4697 fn inline_size(_context: fidl::encoding::Context) -> usize {
4698 16
4699 }
4700 }
4701
4702 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeNames, D>
4703 for &TreeNames
4704 {
4705 #[inline]
4706 unsafe fn encode(
4707 self,
4708 encoder: &mut fidl::encoding::Encoder<'_, D>,
4709 offset: usize,
4710 _depth: fidl::encoding::Depth,
4711 ) -> fidl::Result<()> {
4712 encoder.debug_check_bounds::<TreeNames>(offset);
4713 encoder.write_num::<u64>(self.ordinal(), offset);
4714 match self {
4715 TreeNames::Some(ref val) => {
4716 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>, D>(
4717 <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::ValueTypeMarker>::borrow(val),
4718 encoder, offset + 8, _depth
4719 )
4720 }
4721 TreeNames::All(ref val) => {
4722 fidl::encoding::encode_in_envelope::<All, D>(
4723 <All as fidl::encoding::ValueTypeMarker>::borrow(val),
4724 encoder, offset + 8, _depth
4725 )
4726 }
4727 TreeNames::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4728 }
4729 }
4730 }
4731
4732 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeNames {
4733 #[inline(always)]
4734 fn new_empty() -> Self {
4735 Self::__SourceBreaking { unknown_ordinal: 0 }
4736 }
4737
4738 #[inline]
4739 unsafe fn decode(
4740 &mut self,
4741 decoder: &mut fidl::encoding::Decoder<'_, D>,
4742 offset: usize,
4743 mut depth: fidl::encoding::Depth,
4744 ) -> fidl::Result<()> {
4745 decoder.debug_check_bounds::<Self>(offset);
4746 #[allow(unused_variables)]
4747 let next_out_of_line = decoder.next_out_of_line();
4748 let handles_before = decoder.remaining_handles();
4749 let (ordinal, inlined, num_bytes, num_handles) =
4750 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4751
4752 let member_inline_size = match ordinal {
4753 1 => <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4754 2 => <All as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4755 0 => return Err(fidl::Error::UnknownUnionTag),
4756 _ => num_bytes as usize,
4757 };
4758
4759 if inlined != (member_inline_size <= 4) {
4760 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4761 }
4762 let _inner_offset;
4763 if inlined {
4764 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4765 _inner_offset = offset + 8;
4766 } else {
4767 depth.increment()?;
4768 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4769 }
4770 match ordinal {
4771 1 => {
4772 #[allow(irrefutable_let_patterns)]
4773 if let TreeNames::Some(_) = self {
4774 } else {
4776 *self = TreeNames::Some(fidl::new_empty!(
4778 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4779 D
4780 ));
4781 }
4782 #[allow(irrefutable_let_patterns)]
4783 if let TreeNames::Some(ref mut val) = self {
4784 fidl::decode!(
4785 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4786 D,
4787 val,
4788 decoder,
4789 _inner_offset,
4790 depth
4791 )?;
4792 } else {
4793 unreachable!()
4794 }
4795 }
4796 2 => {
4797 #[allow(irrefutable_let_patterns)]
4798 if let TreeNames::All(_) = self {
4799 } else {
4801 *self = TreeNames::All(fidl::new_empty!(All, D));
4803 }
4804 #[allow(irrefutable_let_patterns)]
4805 if let TreeNames::All(ref mut val) = self {
4806 fidl::decode!(All, D, val, decoder, _inner_offset, depth)?;
4807 } else {
4808 unreachable!()
4809 }
4810 }
4811 #[allow(deprecated)]
4812 ordinal => {
4813 for _ in 0..num_handles {
4814 decoder.drop_next_handle()?;
4815 }
4816 *self = TreeNames::__SourceBreaking { unknown_ordinal: ordinal };
4817 }
4818 }
4819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4820 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4821 }
4822 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4823 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4824 }
4825 Ok(())
4826 }
4827 }
4828
4829 impl fidl::encoding::ValueTypeMarker for TreeSelector {
4830 type Borrowed<'a> = &'a Self;
4831 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4832 value
4833 }
4834 }
4835
4836 unsafe impl fidl::encoding::TypeMarker for TreeSelector {
4837 type Owned = Self;
4838
4839 #[inline(always)]
4840 fn inline_align(_context: fidl::encoding::Context) -> usize {
4841 8
4842 }
4843
4844 #[inline(always)]
4845 fn inline_size(_context: fidl::encoding::Context) -> usize {
4846 16
4847 }
4848 }
4849
4850 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeSelector, D>
4851 for &TreeSelector
4852 {
4853 #[inline]
4854 unsafe fn encode(
4855 self,
4856 encoder: &mut fidl::encoding::Encoder<'_, D>,
4857 offset: usize,
4858 _depth: fidl::encoding::Depth,
4859 ) -> fidl::Result<()> {
4860 encoder.debug_check_bounds::<TreeSelector>(offset);
4861 encoder.write_num::<u64>(self.ordinal(), offset);
4862 match self {
4863 TreeSelector::SubtreeSelector(ref val) => {
4864 fidl::encoding::encode_in_envelope::<SubtreeSelector, D>(
4865 <SubtreeSelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4866 encoder,
4867 offset + 8,
4868 _depth,
4869 )
4870 }
4871 TreeSelector::PropertySelector(ref val) => {
4872 fidl::encoding::encode_in_envelope::<PropertySelector, D>(
4873 <PropertySelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4874 encoder,
4875 offset + 8,
4876 _depth,
4877 )
4878 }
4879 TreeSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4880 }
4881 }
4882 }
4883
4884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeSelector {
4885 #[inline(always)]
4886 fn new_empty() -> Self {
4887 Self::__SourceBreaking { unknown_ordinal: 0 }
4888 }
4889
4890 #[inline]
4891 unsafe fn decode(
4892 &mut self,
4893 decoder: &mut fidl::encoding::Decoder<'_, D>,
4894 offset: usize,
4895 mut depth: fidl::encoding::Depth,
4896 ) -> fidl::Result<()> {
4897 decoder.debug_check_bounds::<Self>(offset);
4898 #[allow(unused_variables)]
4899 let next_out_of_line = decoder.next_out_of_line();
4900 let handles_before = decoder.remaining_handles();
4901 let (ordinal, inlined, num_bytes, num_handles) =
4902 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4903
4904 let member_inline_size = match ordinal {
4905 1 => <SubtreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4906 2 => <PropertySelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4907 0 => return Err(fidl::Error::UnknownUnionTag),
4908 _ => num_bytes as usize,
4909 };
4910
4911 if inlined != (member_inline_size <= 4) {
4912 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4913 }
4914 let _inner_offset;
4915 if inlined {
4916 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4917 _inner_offset = offset + 8;
4918 } else {
4919 depth.increment()?;
4920 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4921 }
4922 match ordinal {
4923 1 => {
4924 #[allow(irrefutable_let_patterns)]
4925 if let TreeSelector::SubtreeSelector(_) = self {
4926 } else {
4928 *self = TreeSelector::SubtreeSelector(fidl::new_empty!(SubtreeSelector, D));
4930 }
4931 #[allow(irrefutable_let_patterns)]
4932 if let TreeSelector::SubtreeSelector(ref mut val) = self {
4933 fidl::decode!(SubtreeSelector, D, val, decoder, _inner_offset, depth)?;
4934 } else {
4935 unreachable!()
4936 }
4937 }
4938 2 => {
4939 #[allow(irrefutable_let_patterns)]
4940 if let TreeSelector::PropertySelector(_) = self {
4941 } else {
4943 *self =
4945 TreeSelector::PropertySelector(fidl::new_empty!(PropertySelector, D));
4946 }
4947 #[allow(irrefutable_let_patterns)]
4948 if let TreeSelector::PropertySelector(ref mut val) = self {
4949 fidl::decode!(PropertySelector, D, val, decoder, _inner_offset, depth)?;
4950 } else {
4951 unreachable!()
4952 }
4953 }
4954 #[allow(deprecated)]
4955 ordinal => {
4956 for _ in 0..num_handles {
4957 decoder.drop_next_handle()?;
4958 }
4959 *self = TreeSelector::__SourceBreaking { unknown_ordinal: ordinal };
4960 }
4961 }
4962 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4964 }
4965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4967 }
4968 Ok(())
4969 }
4970 }
4971}