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_STRING_SELECTOR_LENGTH: u16 = 1024;
29
30pub const MONIKER_ARG_NAME: &str = "$__moniker";
31
32pub const ROLLED_OUT_ARG_NAME: &str = "$__rolled_out";
33
34#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
35#[repr(u8)]
36pub enum DataType {
37 Inspect = 1,
39 Logs = 3,
41}
42
43impl DataType {
44 #[inline]
45 pub fn from_primitive(prim: u8) -> Option<Self> {
46 match prim {
47 1 => Some(Self::Inspect),
48 3 => Some(Self::Logs),
49 _ => None,
50 }
51 }
52
53 #[inline]
54 pub const fn into_primitive(self) -> u8 {
55 self as u8
56 }
57}
58
59#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
62#[repr(u32)]
63pub enum Format {
64 Json = 1,
67 Text = 2,
69 Cbor = 3,
72 Fxt = 4,
76}
77
78impl Format {
79 #[inline]
80 pub fn from_primitive(prim: u32) -> Option<Self> {
81 match prim {
82 1 => Some(Self::Json),
83 2 => Some(Self::Text),
84 3 => Some(Self::Cbor),
85 4 => Some(Self::Fxt),
86 _ => None,
87 }
88 }
89
90 #[inline]
91 pub const fn into_primitive(self) -> u32 {
92 self as u32
93 }
94}
95
96#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
99#[repr(u32)]
100pub enum ReaderError {
101 Io = 1,
102}
103
104impl ReaderError {
105 #[inline]
106 pub fn from_primitive(prim: u32) -> Option<Self> {
107 match prim {
108 1 => Some(Self::Io),
109 _ => None,
110 }
111 }
112
113 #[inline]
114 pub const fn into_primitive(self) -> u32 {
115 self as u32
116 }
117}
118
119#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
121#[repr(u8)]
122pub enum Severity {
123 Trace = 16,
125 Debug = 32,
127 Info = 48,
129 Warn = 64,
131 Error = 80,
133 Fatal = 96,
135}
136
137impl Severity {
138 #[inline]
139 pub fn from_primitive(prim: u8) -> Option<Self> {
140 match prim {
141 16 => Some(Self::Trace),
142 32 => Some(Self::Debug),
143 48 => Some(Self::Info),
144 64 => Some(Self::Warn),
145 80 => Some(Self::Error),
146 96 => Some(Self::Fatal),
147 _ => None,
148 }
149 }
150
151 #[inline]
152 pub const fn into_primitive(self) -> u8 {
153 self as u8
154 }
155}
156
157#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
159#[repr(u8)]
160pub enum StreamMode {
161 Snapshot = 1,
164 SnapshotThenSubscribe = 2,
168 Subscribe = 3,
171}
172
173impl StreamMode {
174 #[inline]
175 pub fn from_primitive(prim: u8) -> Option<Self> {
176 match prim {
177 1 => Some(Self::Snapshot),
178 2 => Some(Self::SnapshotThenSubscribe),
179 3 => Some(Self::Subscribe),
180 _ => None,
181 }
182 }
183
184 #[inline]
185 pub const fn into_primitive(self) -> u8 {
186 self as u8
187 }
188}
189
190#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
191pub struct All;
192
193impl fidl::Persistable for All {}
194
195#[derive(Clone, Debug, PartialEq)]
196pub struct LogInterestSelector {
197 pub selector: ComponentSelector,
199 pub interest: fidl_fuchsia_diagnostics_types__common::Interest,
201}
202
203impl fidl::Persistable for LogInterestSelector {}
204
205#[derive(Clone, Debug, PartialEq)]
206pub struct LogSettingsRegisterInterestRequest {
207 pub selectors: Vec<LogInterestSelector>,
208}
209
210impl fidl::Persistable for LogSettingsRegisterInterestRequest {}
211
212#[derive(Clone, Debug, PartialEq)]
213pub struct LogSettingsSetInterestRequest {
214 pub selectors: Vec<LogInterestSelector>,
215}
216
217impl fidl::Persistable for LogSettingsSetInterestRequest {}
218
219#[derive(Clone, Debug, PartialEq)]
222pub struct PropertySelector {
223 pub node_path: Vec<StringSelector>,
236 pub target_properties: StringSelector,
242}
243
244impl fidl::Persistable for PropertySelector {}
245
246#[derive(Clone, Debug, PartialEq)]
249pub struct SubtreeSelector {
250 pub node_path: Vec<StringSelector>,
263}
264
265impl fidl::Persistable for SubtreeSelector {}
266
267#[derive(Clone, Debug, Default, PartialEq)]
286pub struct ComponentSelector {
287 pub moniker_segments: Option<Vec<StringSelector>>,
295 #[doc(hidden)]
296 pub __source_breaking: fidl::marker::SourceBreaking,
297}
298
299impl fidl::Persistable for ComponentSelector {}
300
301#[derive(Clone, Debug, Default, PartialEq)]
304pub struct Interest {
305 pub min_severity: Option<Severity>,
310 #[doc(hidden)]
311 pub __source_breaking: fidl::marker::SourceBreaking,
312}
313
314impl fidl::Persistable for Interest {}
315
316#[derive(Clone, Debug, Default, PartialEq)]
317pub struct LogSettingsSetComponentInterestRequest {
318 pub selectors: Option<Vec<LogInterestSelector>>,
320 pub persist: Option<bool>,
323 #[doc(hidden)]
324 pub __source_breaking: fidl::marker::SourceBreaking,
325}
326
327impl fidl::Persistable for LogSettingsSetComponentInterestRequest {}
328
329#[derive(Clone, Debug, Default, PartialEq)]
330pub struct LogStreamOptions {
331 pub mode: Option<StreamMode>,
333 pub include_moniker: Option<bool>,
336 pub include_component_url: Option<bool>,
339 pub include_rolled_out: Option<bool>,
343 #[doc(hidden)]
344 pub __source_breaking: fidl::marker::SourceBreaking,
345}
346
347impl fidl::Persistable for LogStreamOptions {}
348
349#[derive(Clone, Debug, Default, PartialEq)]
351pub struct PerformanceConfiguration {
352 pub max_aggregate_content_size_bytes: Option<u64>,
358 pub batch_retrieval_timeout_seconds: Option<i64>,
367 #[doc(hidden)]
368 pub __source_breaking: fidl::marker::SourceBreaking,
369}
370
371impl fidl::Persistable for PerformanceConfiguration {}
372
373#[derive(Clone, Debug, Default, PartialEq)]
387pub struct Selector {
388 pub component_selector: Option<ComponentSelector>,
391 pub tree_selector: Option<TreeSelector>,
395 pub tree_names: Option<TreeNames>,
401 #[doc(hidden)]
402 pub __source_breaking: fidl::marker::SourceBreaking,
403}
404
405impl fidl::Persistable for Selector {}
406
407#[derive(Clone, Debug, Default, PartialEq)]
409pub struct StreamParameters {
410 pub data_type: Option<DataType>,
414 pub stream_mode: Option<StreamMode>,
418 pub format: Option<Format>,
422 pub client_selector_configuration: Option<ClientSelectorConfiguration>,
427 pub batch_retrieval_timeout_seconds: Option<i64>,
436 pub performance_configuration: Option<PerformanceConfiguration>,
439 #[doc(hidden)]
440 pub __source_breaking: fidl::marker::SourceBreaking,
441}
442
443impl fidl::Persistable for StreamParameters {}
444
445#[derive(Clone, Debug)]
446pub enum ClientSelectorConfiguration {
447 Selectors(Vec<SelectorArgument>),
451 SelectAll(bool),
454 #[doc(hidden)]
455 __SourceBreaking { unknown_ordinal: u64 },
456}
457
458#[macro_export]
460macro_rules! ClientSelectorConfigurationUnknown {
461 () => {
462 _
463 };
464}
465
466impl PartialEq for ClientSelectorConfiguration {
468 fn eq(&self, other: &Self) -> bool {
469 match (self, other) {
470 (Self::Selectors(x), Self::Selectors(y)) => *x == *y,
471 (Self::SelectAll(x), Self::SelectAll(y)) => *x == *y,
472 _ => false,
473 }
474 }
475}
476
477impl ClientSelectorConfiguration {
478 #[inline]
479 pub fn ordinal(&self) -> u64 {
480 match *self {
481 Self::Selectors(_) => 1,
482 Self::SelectAll(_) => 2,
483 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
484 }
485 }
486
487 #[inline]
488 pub fn unknown_variant_for_testing() -> Self {
489 Self::__SourceBreaking { unknown_ordinal: 0 }
490 }
491
492 #[inline]
493 pub fn is_unknown(&self) -> bool {
494 match self {
495 Self::__SourceBreaking { .. } => true,
496 _ => false,
497 }
498 }
499}
500
501impl fidl::Persistable for ClientSelectorConfiguration {}
502
503#[derive(Clone, Debug)]
506pub enum SelectorArgument {
507 StructuredSelector(Selector),
510 RawSelector(String),
517 #[doc(hidden)]
518 __SourceBreaking { unknown_ordinal: u64 },
519}
520
521#[macro_export]
523macro_rules! SelectorArgumentUnknown {
524 () => {
525 _
526 };
527}
528
529impl PartialEq for SelectorArgument {
531 fn eq(&self, other: &Self) -> bool {
532 match (self, other) {
533 (Self::StructuredSelector(x), Self::StructuredSelector(y)) => *x == *y,
534 (Self::RawSelector(x), Self::RawSelector(y)) => *x == *y,
535 _ => false,
536 }
537 }
538}
539
540impl SelectorArgument {
541 #[inline]
542 pub fn ordinal(&self) -> u64 {
543 match *self {
544 Self::StructuredSelector(_) => 1,
545 Self::RawSelector(_) => 2,
546 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
547 }
548 }
549
550 #[inline]
551 pub fn unknown_variant_for_testing() -> Self {
552 Self::__SourceBreaking { unknown_ordinal: 0 }
553 }
554
555 #[inline]
556 pub fn is_unknown(&self) -> bool {
557 match self {
558 Self::__SourceBreaking { .. } => true,
559 _ => false,
560 }
561 }
562}
563
564impl fidl::Persistable for SelectorArgument {}
565
566#[derive(Clone, Debug)]
569pub enum StringSelector {
570 StringPattern(String),
590 ExactMatch(String),
591 #[doc(hidden)]
592 __SourceBreaking {
593 unknown_ordinal: u64,
594 },
595}
596
597#[macro_export]
599macro_rules! StringSelectorUnknown {
600 () => {
601 _
602 };
603}
604
605impl PartialEq for StringSelector {
607 fn eq(&self, other: &Self) -> bool {
608 match (self, other) {
609 (Self::StringPattern(x), Self::StringPattern(y)) => *x == *y,
610 (Self::ExactMatch(x), Self::ExactMatch(y)) => *x == *y,
611 _ => false,
612 }
613 }
614}
615
616impl StringSelector {
617 #[inline]
618 pub fn ordinal(&self) -> u64 {
619 match *self {
620 Self::StringPattern(_) => 1,
621 Self::ExactMatch(_) => 2,
622 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
623 }
624 }
625
626 #[inline]
627 pub fn unknown_variant_for_testing() -> Self {
628 Self::__SourceBreaking { unknown_ordinal: 0 }
629 }
630
631 #[inline]
632 pub fn is_unknown(&self) -> bool {
633 match self {
634 Self::__SourceBreaking { .. } => true,
635 _ => false,
636 }
637 }
638}
639
640impl fidl::Persistable for StringSelector {}
641
642#[derive(Clone, Debug)]
646pub enum TreeNames {
647 Some(Vec<String>),
649 All(All),
652 #[doc(hidden)]
653 __SourceBreaking { unknown_ordinal: u64 },
654}
655
656#[macro_export]
658macro_rules! TreeNamesUnknown {
659 () => {
660 _
661 };
662}
663
664impl PartialEq for TreeNames {
666 fn eq(&self, other: &Self) -> bool {
667 match (self, other) {
668 (Self::Some(x), Self::Some(y)) => *x == *y,
669 (Self::All(x), Self::All(y)) => *x == *y,
670 _ => false,
671 }
672 }
673}
674
675impl TreeNames {
676 #[inline]
677 pub fn ordinal(&self) -> u64 {
678 match *self {
679 Self::Some(_) => 1,
680 Self::All(_) => 2,
681 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
682 }
683 }
684
685 #[inline]
686 pub fn unknown_variant_for_testing() -> Self {
687 Self::__SourceBreaking { unknown_ordinal: 0 }
688 }
689
690 #[inline]
691 pub fn is_unknown(&self) -> bool {
692 match self {
693 Self::__SourceBreaking { .. } => true,
694 _ => false,
695 }
696 }
697}
698
699impl fidl::Persistable for TreeNames {}
700
701#[derive(Clone, Debug)]
704pub enum TreeSelector {
705 SubtreeSelector(SubtreeSelector),
708 PropertySelector(PropertySelector),
711 #[doc(hidden)]
712 __SourceBreaking { unknown_ordinal: u64 },
713}
714
715#[macro_export]
717macro_rules! TreeSelectorUnknown {
718 () => {
719 _
720 };
721}
722
723impl PartialEq for TreeSelector {
725 fn eq(&self, other: &Self) -> bool {
726 match (self, other) {
727 (Self::SubtreeSelector(x), Self::SubtreeSelector(y)) => *x == *y,
728 (Self::PropertySelector(x), Self::PropertySelector(y)) => *x == *y,
729 _ => false,
730 }
731 }
732}
733
734impl TreeSelector {
735 #[inline]
736 pub fn ordinal(&self) -> u64 {
737 match *self {
738 Self::SubtreeSelector(_) => 1,
739 Self::PropertySelector(_) => 2,
740 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
741 }
742 }
743
744 #[inline]
745 pub fn unknown_variant_for_testing() -> Self {
746 Self::__SourceBreaking { unknown_ordinal: 0 }
747 }
748
749 #[inline]
750 pub fn is_unknown(&self) -> bool {
751 match self {
752 Self::__SourceBreaking { .. } => true,
753 _ => false,
754 }
755 }
756}
757
758impl fidl::Persistable for TreeSelector {}
759
760pub mod archive_accessor_ordinals {
761 pub const STREAM_DIAGNOSTICS: u64 = 0x20c73e2ecd653c3e;
762 pub const WAIT_FOR_READY: u64 = 0x122963198011bd24;
763}
764
765pub mod batch_iterator_ordinals {
766 pub const GET_NEXT: u64 = 0x781986486c6254a5;
767 pub const WAIT_FOR_READY: u64 = 0x70598ee271597603;
768}
769
770pub mod log_flusher_ordinals {
771 pub const WAIT_UNTIL_FLUSHED: u64 = 0x7dc4892e46748b5b;
772}
773
774pub mod log_settings_ordinals {
775 pub const REGISTER_INTEREST: u64 = 0x49d7c14eec975fb;
776 pub const SET_INTEREST: u64 = 0x71beced9d2411f90;
777 pub const SET_COMPONENT_INTEREST: u64 = 0x35f7004d2367f6c1;
778}
779
780pub mod log_stream_ordinals {
781 pub const CONNECT: u64 = 0x745eb34f10d51a88;
782}
783
784mod internal {
785 use super::*;
786 unsafe impl fidl::encoding::TypeMarker for DataType {
787 type Owned = Self;
788
789 #[inline(always)]
790 fn inline_align(_context: fidl::encoding::Context) -> usize {
791 std::mem::align_of::<u8>()
792 }
793
794 #[inline(always)]
795 fn inline_size(_context: fidl::encoding::Context) -> usize {
796 std::mem::size_of::<u8>()
797 }
798
799 #[inline(always)]
800 fn encode_is_copy() -> bool {
801 true
802 }
803
804 #[inline(always)]
805 fn decode_is_copy() -> bool {
806 false
807 }
808 }
809
810 impl fidl::encoding::ValueTypeMarker for DataType {
811 type Borrowed<'a> = Self;
812 #[inline(always)]
813 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
814 *value
815 }
816 }
817
818 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DataType {
819 #[inline]
820 unsafe fn encode(
821 self,
822 encoder: &mut fidl::encoding::Encoder<'_, D>,
823 offset: usize,
824 _depth: fidl::encoding::Depth,
825 ) -> fidl::Result<()> {
826 encoder.debug_check_bounds::<Self>(offset);
827 encoder.write_num(self.into_primitive(), offset);
828 Ok(())
829 }
830 }
831
832 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DataType {
833 #[inline(always)]
834 fn new_empty() -> Self {
835 Self::Inspect
836 }
837
838 #[inline]
839 unsafe fn decode(
840 &mut self,
841 decoder: &mut fidl::encoding::Decoder<'_, D>,
842 offset: usize,
843 _depth: fidl::encoding::Depth,
844 ) -> fidl::Result<()> {
845 decoder.debug_check_bounds::<Self>(offset);
846 let prim = decoder.read_num::<u8>(offset);
847
848 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
849 Ok(())
850 }
851 }
852 unsafe impl fidl::encoding::TypeMarker for Format {
853 type Owned = Self;
854
855 #[inline(always)]
856 fn inline_align(_context: fidl::encoding::Context) -> usize {
857 std::mem::align_of::<u32>()
858 }
859
860 #[inline(always)]
861 fn inline_size(_context: fidl::encoding::Context) -> usize {
862 std::mem::size_of::<u32>()
863 }
864
865 #[inline(always)]
866 fn encode_is_copy() -> bool {
867 true
868 }
869
870 #[inline(always)]
871 fn decode_is_copy() -> bool {
872 false
873 }
874 }
875
876 impl fidl::encoding::ValueTypeMarker for Format {
877 type Borrowed<'a> = Self;
878 #[inline(always)]
879 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
880 *value
881 }
882 }
883
884 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Format {
885 #[inline]
886 unsafe fn encode(
887 self,
888 encoder: &mut fidl::encoding::Encoder<'_, D>,
889 offset: usize,
890 _depth: fidl::encoding::Depth,
891 ) -> fidl::Result<()> {
892 encoder.debug_check_bounds::<Self>(offset);
893 encoder.write_num(self.into_primitive(), offset);
894 Ok(())
895 }
896 }
897
898 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
899 #[inline(always)]
900 fn new_empty() -> Self {
901 Self::Json
902 }
903
904 #[inline]
905 unsafe fn decode(
906 &mut self,
907 decoder: &mut fidl::encoding::Decoder<'_, D>,
908 offset: usize,
909 _depth: fidl::encoding::Depth,
910 ) -> fidl::Result<()> {
911 decoder.debug_check_bounds::<Self>(offset);
912 let prim = decoder.read_num::<u32>(offset);
913
914 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
915 Ok(())
916 }
917 }
918 unsafe impl fidl::encoding::TypeMarker for ReaderError {
919 type Owned = Self;
920
921 #[inline(always)]
922 fn inline_align(_context: fidl::encoding::Context) -> usize {
923 std::mem::align_of::<u32>()
924 }
925
926 #[inline(always)]
927 fn inline_size(_context: fidl::encoding::Context) -> usize {
928 std::mem::size_of::<u32>()
929 }
930
931 #[inline(always)]
932 fn encode_is_copy() -> bool {
933 true
934 }
935
936 #[inline(always)]
937 fn decode_is_copy() -> bool {
938 false
939 }
940 }
941
942 impl fidl::encoding::ValueTypeMarker for ReaderError {
943 type Borrowed<'a> = Self;
944 #[inline(always)]
945 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
946 *value
947 }
948 }
949
950 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ReaderError {
951 #[inline]
952 unsafe fn encode(
953 self,
954 encoder: &mut fidl::encoding::Encoder<'_, D>,
955 offset: usize,
956 _depth: fidl::encoding::Depth,
957 ) -> fidl::Result<()> {
958 encoder.debug_check_bounds::<Self>(offset);
959 encoder.write_num(self.into_primitive(), offset);
960 Ok(())
961 }
962 }
963
964 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ReaderError {
965 #[inline(always)]
966 fn new_empty() -> Self {
967 Self::Io
968 }
969
970 #[inline]
971 unsafe fn decode(
972 &mut self,
973 decoder: &mut fidl::encoding::Decoder<'_, D>,
974 offset: usize,
975 _depth: fidl::encoding::Depth,
976 ) -> fidl::Result<()> {
977 decoder.debug_check_bounds::<Self>(offset);
978 let prim = decoder.read_num::<u32>(offset);
979
980 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
981 Ok(())
982 }
983 }
984 unsafe impl fidl::encoding::TypeMarker for Severity {
985 type Owned = Self;
986
987 #[inline(always)]
988 fn inline_align(_context: fidl::encoding::Context) -> usize {
989 std::mem::align_of::<u8>()
990 }
991
992 #[inline(always)]
993 fn inline_size(_context: fidl::encoding::Context) -> usize {
994 std::mem::size_of::<u8>()
995 }
996
997 #[inline(always)]
998 fn encode_is_copy() -> bool {
999 true
1000 }
1001
1002 #[inline(always)]
1003 fn decode_is_copy() -> bool {
1004 false
1005 }
1006 }
1007
1008 impl fidl::encoding::ValueTypeMarker for Severity {
1009 type Borrowed<'a> = Self;
1010 #[inline(always)]
1011 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1012 *value
1013 }
1014 }
1015
1016 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Severity {
1017 #[inline]
1018 unsafe fn encode(
1019 self,
1020 encoder: &mut fidl::encoding::Encoder<'_, D>,
1021 offset: usize,
1022 _depth: fidl::encoding::Depth,
1023 ) -> fidl::Result<()> {
1024 encoder.debug_check_bounds::<Self>(offset);
1025 encoder.write_num(self.into_primitive(), offset);
1026 Ok(())
1027 }
1028 }
1029
1030 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Severity {
1031 #[inline(always)]
1032 fn new_empty() -> Self {
1033 Self::Trace
1034 }
1035
1036 #[inline]
1037 unsafe fn decode(
1038 &mut self,
1039 decoder: &mut fidl::encoding::Decoder<'_, D>,
1040 offset: usize,
1041 _depth: fidl::encoding::Depth,
1042 ) -> fidl::Result<()> {
1043 decoder.debug_check_bounds::<Self>(offset);
1044 let prim = decoder.read_num::<u8>(offset);
1045
1046 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1047 Ok(())
1048 }
1049 }
1050 unsafe impl fidl::encoding::TypeMarker for StreamMode {
1051 type Owned = Self;
1052
1053 #[inline(always)]
1054 fn inline_align(_context: fidl::encoding::Context) -> usize {
1055 std::mem::align_of::<u8>()
1056 }
1057
1058 #[inline(always)]
1059 fn inline_size(_context: fidl::encoding::Context) -> usize {
1060 std::mem::size_of::<u8>()
1061 }
1062
1063 #[inline(always)]
1064 fn encode_is_copy() -> bool {
1065 true
1066 }
1067
1068 #[inline(always)]
1069 fn decode_is_copy() -> bool {
1070 false
1071 }
1072 }
1073
1074 impl fidl::encoding::ValueTypeMarker for StreamMode {
1075 type Borrowed<'a> = Self;
1076 #[inline(always)]
1077 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1078 *value
1079 }
1080 }
1081
1082 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamMode {
1083 #[inline]
1084 unsafe fn encode(
1085 self,
1086 encoder: &mut fidl::encoding::Encoder<'_, D>,
1087 offset: usize,
1088 _depth: fidl::encoding::Depth,
1089 ) -> fidl::Result<()> {
1090 encoder.debug_check_bounds::<Self>(offset);
1091 encoder.write_num(self.into_primitive(), offset);
1092 Ok(())
1093 }
1094 }
1095
1096 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamMode {
1097 #[inline(always)]
1098 fn new_empty() -> Self {
1099 Self::Snapshot
1100 }
1101
1102 #[inline]
1103 unsafe fn decode(
1104 &mut self,
1105 decoder: &mut fidl::encoding::Decoder<'_, D>,
1106 offset: usize,
1107 _depth: fidl::encoding::Depth,
1108 ) -> fidl::Result<()> {
1109 decoder.debug_check_bounds::<Self>(offset);
1110 let prim = decoder.read_num::<u8>(offset);
1111
1112 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1113 Ok(())
1114 }
1115 }
1116
1117 impl fidl::encoding::ValueTypeMarker for All {
1118 type Borrowed<'a> = &'a Self;
1119 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1120 value
1121 }
1122 }
1123
1124 unsafe impl fidl::encoding::TypeMarker for All {
1125 type Owned = Self;
1126
1127 #[inline(always)]
1128 fn inline_align(_context: fidl::encoding::Context) -> usize {
1129 1
1130 }
1131
1132 #[inline(always)]
1133 fn inline_size(_context: fidl::encoding::Context) -> usize {
1134 1
1135 }
1136 }
1137
1138 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<All, D> for &All {
1139 #[inline]
1140 unsafe fn encode(
1141 self,
1142 encoder: &mut fidl::encoding::Encoder<'_, D>,
1143 offset: usize,
1144 _depth: fidl::encoding::Depth,
1145 ) -> fidl::Result<()> {
1146 encoder.debug_check_bounds::<All>(offset);
1147 encoder.write_num(0u8, offset);
1148 Ok(())
1149 }
1150 }
1151
1152 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for All {
1153 #[inline(always)]
1154 fn new_empty() -> Self {
1155 Self
1156 }
1157
1158 #[inline]
1159 unsafe fn decode(
1160 &mut self,
1161 decoder: &mut fidl::encoding::Decoder<'_, D>,
1162 offset: usize,
1163 _depth: fidl::encoding::Depth,
1164 ) -> fidl::Result<()> {
1165 decoder.debug_check_bounds::<Self>(offset);
1166 match decoder.read_num::<u8>(offset) {
1167 0 => Ok(()),
1168 _ => Err(fidl::Error::Invalid),
1169 }
1170 }
1171 }
1172
1173 impl fidl::encoding::ValueTypeMarker for LogInterestSelector {
1174 type Borrowed<'a> = &'a Self;
1175 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1176 value
1177 }
1178 }
1179
1180 unsafe impl fidl::encoding::TypeMarker for LogInterestSelector {
1181 type Owned = Self;
1182
1183 #[inline(always)]
1184 fn inline_align(_context: fidl::encoding::Context) -> usize {
1185 8
1186 }
1187
1188 #[inline(always)]
1189 fn inline_size(_context: fidl::encoding::Context) -> usize {
1190 32
1191 }
1192 }
1193
1194 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogInterestSelector, D>
1195 for &LogInterestSelector
1196 {
1197 #[inline]
1198 unsafe fn encode(
1199 self,
1200 encoder: &mut fidl::encoding::Encoder<'_, D>,
1201 offset: usize,
1202 _depth: fidl::encoding::Depth,
1203 ) -> fidl::Result<()> {
1204 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1205 fidl::encoding::Encode::<LogInterestSelector, D>::encode(
1207 (
1208 <ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.selector),
1209 <fidl_fuchsia_diagnostics_types__common::Interest as fidl::encoding::ValueTypeMarker>::borrow(&self.interest),
1210 ),
1211 encoder, offset, _depth
1212 )
1213 }
1214 }
1215 unsafe impl<
1216 D: fidl::encoding::ResourceDialect,
1217 T0: fidl::encoding::Encode<ComponentSelector, D>,
1218 T1: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types__common::Interest, D>,
1219 > fidl::encoding::Encode<LogInterestSelector, D> for (T0, T1)
1220 {
1221 #[inline]
1222 unsafe fn encode(
1223 self,
1224 encoder: &mut fidl::encoding::Encoder<'_, D>,
1225 offset: usize,
1226 depth: fidl::encoding::Depth,
1227 ) -> fidl::Result<()> {
1228 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1229 self.0.encode(encoder, offset + 0, depth)?;
1233 self.1.encode(encoder, offset + 16, depth)?;
1234 Ok(())
1235 }
1236 }
1237
1238 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogInterestSelector {
1239 #[inline(always)]
1240 fn new_empty() -> Self {
1241 Self {
1242 selector: fidl::new_empty!(ComponentSelector, D),
1243 interest: fidl::new_empty!(fidl_fuchsia_diagnostics_types__common::Interest, D),
1244 }
1245 }
1246
1247 #[inline]
1248 unsafe fn decode(
1249 &mut self,
1250 decoder: &mut fidl::encoding::Decoder<'_, D>,
1251 offset: usize,
1252 _depth: fidl::encoding::Depth,
1253 ) -> fidl::Result<()> {
1254 decoder.debug_check_bounds::<Self>(offset);
1255 fidl::decode!(ComponentSelector, D, &mut self.selector, decoder, offset + 0, _depth)?;
1257 fidl::decode!(
1258 fidl_fuchsia_diagnostics_types__common::Interest,
1259 D,
1260 &mut self.interest,
1261 decoder,
1262 offset + 16,
1263 _depth
1264 )?;
1265 Ok(())
1266 }
1267 }
1268
1269 impl fidl::encoding::ValueTypeMarker for LogSettingsRegisterInterestRequest {
1270 type Borrowed<'a> = &'a Self;
1271 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1272 value
1273 }
1274 }
1275
1276 unsafe impl fidl::encoding::TypeMarker for LogSettingsRegisterInterestRequest {
1277 type Owned = Self;
1278
1279 #[inline(always)]
1280 fn inline_align(_context: fidl::encoding::Context) -> usize {
1281 8
1282 }
1283
1284 #[inline(always)]
1285 fn inline_size(_context: fidl::encoding::Context) -> usize {
1286 16
1287 }
1288 }
1289
1290 unsafe impl<D: fidl::encoding::ResourceDialect>
1291 fidl::encoding::Encode<LogSettingsRegisterInterestRequest, D>
1292 for &LogSettingsRegisterInterestRequest
1293 {
1294 #[inline]
1295 unsafe fn encode(
1296 self,
1297 encoder: &mut fidl::encoding::Encoder<'_, D>,
1298 offset: usize,
1299 _depth: fidl::encoding::Depth,
1300 ) -> fidl::Result<()> {
1301 encoder.debug_check_bounds::<LogSettingsRegisterInterestRequest>(offset);
1302 fidl::encoding::Encode::<LogSettingsRegisterInterestRequest, D>::encode(
1304 (
1305 <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.selectors),
1306 ),
1307 encoder, offset, _depth
1308 )
1309 }
1310 }
1311 unsafe impl<
1312 D: fidl::encoding::ResourceDialect,
1313 T0: fidl::encoding::Encode<fidl::encoding::Vector<LogInterestSelector, 64>, D>,
1314 > fidl::encoding::Encode<LogSettingsRegisterInterestRequest, D> for (T0,)
1315 {
1316 #[inline]
1317 unsafe fn encode(
1318 self,
1319 encoder: &mut fidl::encoding::Encoder<'_, D>,
1320 offset: usize,
1321 depth: fidl::encoding::Depth,
1322 ) -> fidl::Result<()> {
1323 encoder.debug_check_bounds::<LogSettingsRegisterInterestRequest>(offset);
1324 self.0.encode(encoder, offset + 0, depth)?;
1328 Ok(())
1329 }
1330 }
1331
1332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1333 for LogSettingsRegisterInterestRequest
1334 {
1335 #[inline(always)]
1336 fn new_empty() -> Self {
1337 Self { selectors: fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D) }
1338 }
1339
1340 #[inline]
1341 unsafe fn decode(
1342 &mut self,
1343 decoder: &mut fidl::encoding::Decoder<'_, D>,
1344 offset: usize,
1345 _depth: fidl::encoding::Depth,
1346 ) -> fidl::Result<()> {
1347 decoder.debug_check_bounds::<Self>(offset);
1348 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, &mut self.selectors, decoder, offset + 0, _depth)?;
1350 Ok(())
1351 }
1352 }
1353
1354 impl fidl::encoding::ValueTypeMarker for LogSettingsSetInterestRequest {
1355 type Borrowed<'a> = &'a Self;
1356 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1357 value
1358 }
1359 }
1360
1361 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetInterestRequest {
1362 type Owned = Self;
1363
1364 #[inline(always)]
1365 fn inline_align(_context: fidl::encoding::Context) -> usize {
1366 8
1367 }
1368
1369 #[inline(always)]
1370 fn inline_size(_context: fidl::encoding::Context) -> usize {
1371 16
1372 }
1373 }
1374
1375 unsafe impl<D: fidl::encoding::ResourceDialect>
1376 fidl::encoding::Encode<LogSettingsSetInterestRequest, D>
1377 for &LogSettingsSetInterestRequest
1378 {
1379 #[inline]
1380 unsafe fn encode(
1381 self,
1382 encoder: &mut fidl::encoding::Encoder<'_, D>,
1383 offset: usize,
1384 _depth: fidl::encoding::Depth,
1385 ) -> fidl::Result<()> {
1386 encoder.debug_check_bounds::<LogSettingsSetInterestRequest>(offset);
1387 fidl::encoding::Encode::<LogSettingsSetInterestRequest, D>::encode(
1389 (
1390 <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.selectors),
1391 ),
1392 encoder, offset, _depth
1393 )
1394 }
1395 }
1396 unsafe impl<
1397 D: fidl::encoding::ResourceDialect,
1398 T0: fidl::encoding::Encode<fidl::encoding::Vector<LogInterestSelector, 64>, D>,
1399 > fidl::encoding::Encode<LogSettingsSetInterestRequest, D> for (T0,)
1400 {
1401 #[inline]
1402 unsafe fn encode(
1403 self,
1404 encoder: &mut fidl::encoding::Encoder<'_, D>,
1405 offset: usize,
1406 depth: fidl::encoding::Depth,
1407 ) -> fidl::Result<()> {
1408 encoder.debug_check_bounds::<LogSettingsSetInterestRequest>(offset);
1409 self.0.encode(encoder, offset + 0, depth)?;
1413 Ok(())
1414 }
1415 }
1416
1417 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1418 for LogSettingsSetInterestRequest
1419 {
1420 #[inline(always)]
1421 fn new_empty() -> Self {
1422 Self { selectors: fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D) }
1423 }
1424
1425 #[inline]
1426 unsafe fn decode(
1427 &mut self,
1428 decoder: &mut fidl::encoding::Decoder<'_, D>,
1429 offset: usize,
1430 _depth: fidl::encoding::Depth,
1431 ) -> fidl::Result<()> {
1432 decoder.debug_check_bounds::<Self>(offset);
1433 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, &mut self.selectors, decoder, offset + 0, _depth)?;
1435 Ok(())
1436 }
1437 }
1438
1439 impl fidl::encoding::ValueTypeMarker for PropertySelector {
1440 type Borrowed<'a> = &'a Self;
1441 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1442 value
1443 }
1444 }
1445
1446 unsafe impl fidl::encoding::TypeMarker for PropertySelector {
1447 type Owned = Self;
1448
1449 #[inline(always)]
1450 fn inline_align(_context: fidl::encoding::Context) -> usize {
1451 8
1452 }
1453
1454 #[inline(always)]
1455 fn inline_size(_context: fidl::encoding::Context) -> usize {
1456 32
1457 }
1458 }
1459
1460 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PropertySelector, D>
1461 for &PropertySelector
1462 {
1463 #[inline]
1464 unsafe fn encode(
1465 self,
1466 encoder: &mut fidl::encoding::Encoder<'_, D>,
1467 offset: usize,
1468 _depth: fidl::encoding::Depth,
1469 ) -> fidl::Result<()> {
1470 encoder.debug_check_bounds::<PropertySelector>(offset);
1471 fidl::encoding::Encode::<PropertySelector, D>::encode(
1473 (
1474 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1475 <StringSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.target_properties),
1476 ),
1477 encoder, offset, _depth
1478 )
1479 }
1480 }
1481 unsafe impl<
1482 D: fidl::encoding::ResourceDialect,
1483 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1484 T1: fidl::encoding::Encode<StringSelector, D>,
1485 > fidl::encoding::Encode<PropertySelector, D> for (T0, T1)
1486 {
1487 #[inline]
1488 unsafe fn encode(
1489 self,
1490 encoder: &mut fidl::encoding::Encoder<'_, D>,
1491 offset: usize,
1492 depth: fidl::encoding::Depth,
1493 ) -> fidl::Result<()> {
1494 encoder.debug_check_bounds::<PropertySelector>(offset);
1495 self.0.encode(encoder, offset + 0, depth)?;
1499 self.1.encode(encoder, offset + 16, depth)?;
1500 Ok(())
1501 }
1502 }
1503
1504 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PropertySelector {
1505 #[inline(always)]
1506 fn new_empty() -> Self {
1507 Self {
1508 node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D),
1509 target_properties: fidl::new_empty!(StringSelector, D),
1510 }
1511 }
1512
1513 #[inline]
1514 unsafe fn decode(
1515 &mut self,
1516 decoder: &mut fidl::encoding::Decoder<'_, D>,
1517 offset: usize,
1518 _depth: fidl::encoding::Depth,
1519 ) -> fidl::Result<()> {
1520 decoder.debug_check_bounds::<Self>(offset);
1521 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1523 fidl::decode!(
1524 StringSelector,
1525 D,
1526 &mut self.target_properties,
1527 decoder,
1528 offset + 16,
1529 _depth
1530 )?;
1531 Ok(())
1532 }
1533 }
1534
1535 impl fidl::encoding::ValueTypeMarker for SubtreeSelector {
1536 type Borrowed<'a> = &'a Self;
1537 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1538 value
1539 }
1540 }
1541
1542 unsafe impl fidl::encoding::TypeMarker for SubtreeSelector {
1543 type Owned = Self;
1544
1545 #[inline(always)]
1546 fn inline_align(_context: fidl::encoding::Context) -> usize {
1547 8
1548 }
1549
1550 #[inline(always)]
1551 fn inline_size(_context: fidl::encoding::Context) -> usize {
1552 16
1553 }
1554 }
1555
1556 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubtreeSelector, D>
1557 for &SubtreeSelector
1558 {
1559 #[inline]
1560 unsafe fn encode(
1561 self,
1562 encoder: &mut fidl::encoding::Encoder<'_, D>,
1563 offset: usize,
1564 _depth: fidl::encoding::Depth,
1565 ) -> fidl::Result<()> {
1566 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1567 fidl::encoding::Encode::<SubtreeSelector, D>::encode(
1569 (
1570 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1571 ),
1572 encoder, offset, _depth
1573 )
1574 }
1575 }
1576 unsafe impl<
1577 D: fidl::encoding::ResourceDialect,
1578 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1579 > fidl::encoding::Encode<SubtreeSelector, D> for (T0,)
1580 {
1581 #[inline]
1582 unsafe fn encode(
1583 self,
1584 encoder: &mut fidl::encoding::Encoder<'_, D>,
1585 offset: usize,
1586 depth: fidl::encoding::Depth,
1587 ) -> fidl::Result<()> {
1588 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1589 self.0.encode(encoder, offset + 0, depth)?;
1593 Ok(())
1594 }
1595 }
1596
1597 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubtreeSelector {
1598 #[inline(always)]
1599 fn new_empty() -> Self {
1600 Self { node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D) }
1601 }
1602
1603 #[inline]
1604 unsafe fn decode(
1605 &mut self,
1606 decoder: &mut fidl::encoding::Decoder<'_, D>,
1607 offset: usize,
1608 _depth: fidl::encoding::Depth,
1609 ) -> fidl::Result<()> {
1610 decoder.debug_check_bounds::<Self>(offset);
1611 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1613 Ok(())
1614 }
1615 }
1616
1617 impl ComponentSelector {
1618 #[inline(always)]
1619 fn max_ordinal_present(&self) -> u64 {
1620 if let Some(_) = self.moniker_segments {
1621 return 1;
1622 }
1623 0
1624 }
1625 }
1626
1627 impl fidl::encoding::ValueTypeMarker for ComponentSelector {
1628 type Borrowed<'a> = &'a Self;
1629 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1630 value
1631 }
1632 }
1633
1634 unsafe impl fidl::encoding::TypeMarker for ComponentSelector {
1635 type Owned = Self;
1636
1637 #[inline(always)]
1638 fn inline_align(_context: fidl::encoding::Context) -> usize {
1639 8
1640 }
1641
1642 #[inline(always)]
1643 fn inline_size(_context: fidl::encoding::Context) -> usize {
1644 16
1645 }
1646 }
1647
1648 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentSelector, D>
1649 for &ComponentSelector
1650 {
1651 unsafe fn encode(
1652 self,
1653 encoder: &mut fidl::encoding::Encoder<'_, D>,
1654 offset: usize,
1655 mut depth: fidl::encoding::Depth,
1656 ) -> fidl::Result<()> {
1657 encoder.debug_check_bounds::<ComponentSelector>(offset);
1658 let max_ordinal: u64 = self.max_ordinal_present();
1660 encoder.write_num(max_ordinal, offset);
1661 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1662 if max_ordinal == 0 {
1664 return Ok(());
1665 }
1666 depth.increment()?;
1667 let envelope_size = 8;
1668 let bytes_len = max_ordinal as usize * envelope_size;
1669 #[allow(unused_variables)]
1670 let offset = encoder.out_of_line_offset(bytes_len);
1671 let mut _prev_end_offset: usize = 0;
1672 if 1 > max_ordinal {
1673 return Ok(());
1674 }
1675
1676 let cur_offset: usize = (1 - 1) * envelope_size;
1679
1680 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1682
1683 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<StringSelector, 25>, D>(
1688 self.moniker_segments.as_ref().map(<fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::ValueTypeMarker>::borrow),
1689 encoder, offset + cur_offset, depth
1690 )?;
1691
1692 _prev_end_offset = cur_offset + envelope_size;
1693
1694 Ok(())
1695 }
1696 }
1697
1698 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentSelector {
1699 #[inline(always)]
1700 fn new_empty() -> Self {
1701 Self::default()
1702 }
1703
1704 unsafe fn decode(
1705 &mut self,
1706 decoder: &mut fidl::encoding::Decoder<'_, D>,
1707 offset: usize,
1708 mut depth: fidl::encoding::Depth,
1709 ) -> fidl::Result<()> {
1710 decoder.debug_check_bounds::<Self>(offset);
1711 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1712 None => return Err(fidl::Error::NotNullable),
1713 Some(len) => len,
1714 };
1715 if len == 0 {
1717 return Ok(());
1718 };
1719 depth.increment()?;
1720 let envelope_size = 8;
1721 let bytes_len = len * envelope_size;
1722 let offset = decoder.out_of_line_offset(bytes_len)?;
1723 let mut _next_ordinal_to_read = 0;
1725 let mut next_offset = offset;
1726 let end_offset = offset + bytes_len;
1727 _next_ordinal_to_read += 1;
1728 if next_offset >= end_offset {
1729 return Ok(());
1730 }
1731
1732 while _next_ordinal_to_read < 1 {
1734 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1735 _next_ordinal_to_read += 1;
1736 next_offset += envelope_size;
1737 }
1738
1739 let next_out_of_line = decoder.next_out_of_line();
1740 let handles_before = decoder.remaining_handles();
1741 if let Some((inlined, num_bytes, num_handles)) =
1742 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1743 {
1744 let member_inline_size = <fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1745 if inlined != (member_inline_size <= 4) {
1746 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1747 }
1748 let inner_offset;
1749 let mut inner_depth = depth.clone();
1750 if inlined {
1751 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1752 inner_offset = next_offset;
1753 } else {
1754 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1755 inner_depth.increment()?;
1756 }
1757 let val_ref = self.moniker_segments.get_or_insert_with(
1758 || fidl::new_empty!(fidl::encoding::Vector<StringSelector, 25>, D),
1759 );
1760 fidl::decode!(fidl::encoding::Vector<StringSelector, 25>, D, val_ref, decoder, inner_offset, inner_depth)?;
1761 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1762 {
1763 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1764 }
1765 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1766 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1767 }
1768 }
1769
1770 next_offset += envelope_size;
1771
1772 while next_offset < end_offset {
1774 _next_ordinal_to_read += 1;
1775 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1776 next_offset += envelope_size;
1777 }
1778
1779 Ok(())
1780 }
1781 }
1782
1783 impl Interest {
1784 #[inline(always)]
1785 fn max_ordinal_present(&self) -> u64 {
1786 if let Some(_) = self.min_severity {
1787 return 1;
1788 }
1789 0
1790 }
1791 }
1792
1793 impl fidl::encoding::ValueTypeMarker for Interest {
1794 type Borrowed<'a> = &'a Self;
1795 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1796 value
1797 }
1798 }
1799
1800 unsafe impl fidl::encoding::TypeMarker for Interest {
1801 type Owned = Self;
1802
1803 #[inline(always)]
1804 fn inline_align(_context: fidl::encoding::Context) -> usize {
1805 8
1806 }
1807
1808 #[inline(always)]
1809 fn inline_size(_context: fidl::encoding::Context) -> usize {
1810 16
1811 }
1812 }
1813
1814 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Interest, D> for &Interest {
1815 unsafe fn encode(
1816 self,
1817 encoder: &mut fidl::encoding::Encoder<'_, D>,
1818 offset: usize,
1819 mut depth: fidl::encoding::Depth,
1820 ) -> fidl::Result<()> {
1821 encoder.debug_check_bounds::<Interest>(offset);
1822 let max_ordinal: u64 = self.max_ordinal_present();
1824 encoder.write_num(max_ordinal, offset);
1825 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1826 if max_ordinal == 0 {
1828 return Ok(());
1829 }
1830 depth.increment()?;
1831 let envelope_size = 8;
1832 let bytes_len = max_ordinal as usize * envelope_size;
1833 #[allow(unused_variables)]
1834 let offset = encoder.out_of_line_offset(bytes_len);
1835 let mut _prev_end_offset: usize = 0;
1836 if 1 > max_ordinal {
1837 return Ok(());
1838 }
1839
1840 let cur_offset: usize = (1 - 1) * envelope_size;
1843
1844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1846
1847 fidl::encoding::encode_in_envelope_optional::<Severity, D>(
1852 self.min_severity
1853 .as_ref()
1854 .map(<Severity as fidl::encoding::ValueTypeMarker>::borrow),
1855 encoder,
1856 offset + cur_offset,
1857 depth,
1858 )?;
1859
1860 _prev_end_offset = cur_offset + envelope_size;
1861
1862 Ok(())
1863 }
1864 }
1865
1866 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Interest {
1867 #[inline(always)]
1868 fn new_empty() -> Self {
1869 Self::default()
1870 }
1871
1872 unsafe fn decode(
1873 &mut self,
1874 decoder: &mut fidl::encoding::Decoder<'_, D>,
1875 offset: usize,
1876 mut depth: fidl::encoding::Depth,
1877 ) -> fidl::Result<()> {
1878 decoder.debug_check_bounds::<Self>(offset);
1879 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1880 None => return Err(fidl::Error::NotNullable),
1881 Some(len) => len,
1882 };
1883 if len == 0 {
1885 return Ok(());
1886 };
1887 depth.increment()?;
1888 let envelope_size = 8;
1889 let bytes_len = len * envelope_size;
1890 let offset = decoder.out_of_line_offset(bytes_len)?;
1891 let mut _next_ordinal_to_read = 0;
1893 let mut next_offset = offset;
1894 let end_offset = offset + bytes_len;
1895 _next_ordinal_to_read += 1;
1896 if next_offset >= end_offset {
1897 return Ok(());
1898 }
1899
1900 while _next_ordinal_to_read < 1 {
1902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1903 _next_ordinal_to_read += 1;
1904 next_offset += envelope_size;
1905 }
1906
1907 let next_out_of_line = decoder.next_out_of_line();
1908 let handles_before = decoder.remaining_handles();
1909 if let Some((inlined, num_bytes, num_handles)) =
1910 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1911 {
1912 let member_inline_size =
1913 <Severity as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1914 if inlined != (member_inline_size <= 4) {
1915 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1916 }
1917 let inner_offset;
1918 let mut inner_depth = depth.clone();
1919 if inlined {
1920 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1921 inner_offset = next_offset;
1922 } else {
1923 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1924 inner_depth.increment()?;
1925 }
1926 let val_ref =
1927 self.min_severity.get_or_insert_with(|| fidl::new_empty!(Severity, D));
1928 fidl::decode!(Severity, D, val_ref, decoder, inner_offset, inner_depth)?;
1929 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1930 {
1931 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1932 }
1933 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1934 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1935 }
1936 }
1937
1938 next_offset += envelope_size;
1939
1940 while next_offset < end_offset {
1942 _next_ordinal_to_read += 1;
1943 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1944 next_offset += envelope_size;
1945 }
1946
1947 Ok(())
1948 }
1949 }
1950
1951 impl LogSettingsSetComponentInterestRequest {
1952 #[inline(always)]
1953 fn max_ordinal_present(&self) -> u64 {
1954 if let Some(_) = self.persist {
1955 return 2;
1956 }
1957 if let Some(_) = self.selectors {
1958 return 1;
1959 }
1960 0
1961 }
1962 }
1963
1964 impl fidl::encoding::ValueTypeMarker for LogSettingsSetComponentInterestRequest {
1965 type Borrowed<'a> = &'a Self;
1966 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1967 value
1968 }
1969 }
1970
1971 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetComponentInterestRequest {
1972 type Owned = Self;
1973
1974 #[inline(always)]
1975 fn inline_align(_context: fidl::encoding::Context) -> usize {
1976 8
1977 }
1978
1979 #[inline(always)]
1980 fn inline_size(_context: fidl::encoding::Context) -> usize {
1981 16
1982 }
1983 }
1984
1985 unsafe impl<D: fidl::encoding::ResourceDialect>
1986 fidl::encoding::Encode<LogSettingsSetComponentInterestRequest, D>
1987 for &LogSettingsSetComponentInterestRequest
1988 {
1989 unsafe fn encode(
1990 self,
1991 encoder: &mut fidl::encoding::Encoder<'_, D>,
1992 offset: usize,
1993 mut depth: fidl::encoding::Depth,
1994 ) -> fidl::Result<()> {
1995 encoder.debug_check_bounds::<LogSettingsSetComponentInterestRequest>(offset);
1996 let max_ordinal: u64 = self.max_ordinal_present();
1998 encoder.write_num(max_ordinal, offset);
1999 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2000 if max_ordinal == 0 {
2002 return Ok(());
2003 }
2004 depth.increment()?;
2005 let envelope_size = 8;
2006 let bytes_len = max_ordinal as usize * envelope_size;
2007 #[allow(unused_variables)]
2008 let offset = encoder.out_of_line_offset(bytes_len);
2009 let mut _prev_end_offset: usize = 0;
2010 if 1 > max_ordinal {
2011 return Ok(());
2012 }
2013
2014 let cur_offset: usize = (1 - 1) * envelope_size;
2017
2018 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2020
2021 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<LogInterestSelector, 64>, D>(
2026 self.selectors.as_ref().map(<fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow),
2027 encoder, offset + cur_offset, depth
2028 )?;
2029
2030 _prev_end_offset = cur_offset + envelope_size;
2031 if 2 > max_ordinal {
2032 return Ok(());
2033 }
2034
2035 let cur_offset: usize = (2 - 1) * envelope_size;
2038
2039 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2041
2042 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2047 self.persist.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2048 encoder,
2049 offset + cur_offset,
2050 depth,
2051 )?;
2052
2053 _prev_end_offset = cur_offset + envelope_size;
2054
2055 Ok(())
2056 }
2057 }
2058
2059 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2060 for LogSettingsSetComponentInterestRequest
2061 {
2062 #[inline(always)]
2063 fn new_empty() -> Self {
2064 Self::default()
2065 }
2066
2067 unsafe fn decode(
2068 &mut self,
2069 decoder: &mut fidl::encoding::Decoder<'_, D>,
2070 offset: usize,
2071 mut depth: fidl::encoding::Depth,
2072 ) -> fidl::Result<()> {
2073 decoder.debug_check_bounds::<Self>(offset);
2074 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2075 None => return Err(fidl::Error::NotNullable),
2076 Some(len) => len,
2077 };
2078 if len == 0 {
2080 return Ok(());
2081 };
2082 depth.increment()?;
2083 let envelope_size = 8;
2084 let bytes_len = len * envelope_size;
2085 let offset = decoder.out_of_line_offset(bytes_len)?;
2086 let mut _next_ordinal_to_read = 0;
2088 let mut next_offset = offset;
2089 let end_offset = offset + bytes_len;
2090 _next_ordinal_to_read += 1;
2091 if next_offset >= end_offset {
2092 return Ok(());
2093 }
2094
2095 while _next_ordinal_to_read < 1 {
2097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2098 _next_ordinal_to_read += 1;
2099 next_offset += envelope_size;
2100 }
2101
2102 let next_out_of_line = decoder.next_out_of_line();
2103 let handles_before = decoder.remaining_handles();
2104 if let Some((inlined, num_bytes, num_handles)) =
2105 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2106 {
2107 let member_inline_size = <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2108 if inlined != (member_inline_size <= 4) {
2109 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2110 }
2111 let inner_offset;
2112 let mut inner_depth = depth.clone();
2113 if inlined {
2114 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2115 inner_offset = next_offset;
2116 } else {
2117 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2118 inner_depth.increment()?;
2119 }
2120 let val_ref = self.selectors.get_or_insert_with(
2121 || fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D),
2122 );
2123 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
2124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2125 {
2126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2127 }
2128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2130 }
2131 }
2132
2133 next_offset += envelope_size;
2134 _next_ordinal_to_read += 1;
2135 if next_offset >= end_offset {
2136 return Ok(());
2137 }
2138
2139 while _next_ordinal_to_read < 2 {
2141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2142 _next_ordinal_to_read += 1;
2143 next_offset += envelope_size;
2144 }
2145
2146 let next_out_of_line = decoder.next_out_of_line();
2147 let handles_before = decoder.remaining_handles();
2148 if let Some((inlined, num_bytes, num_handles)) =
2149 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2150 {
2151 let member_inline_size =
2152 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2153 if inlined != (member_inline_size <= 4) {
2154 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2155 }
2156 let inner_offset;
2157 let mut inner_depth = depth.clone();
2158 if inlined {
2159 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2160 inner_offset = next_offset;
2161 } else {
2162 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2163 inner_depth.increment()?;
2164 }
2165 let val_ref = self.persist.get_or_insert_with(|| fidl::new_empty!(bool, D));
2166 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2168 {
2169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2170 }
2171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2173 }
2174 }
2175
2176 next_offset += envelope_size;
2177
2178 while next_offset < end_offset {
2180 _next_ordinal_to_read += 1;
2181 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2182 next_offset += envelope_size;
2183 }
2184
2185 Ok(())
2186 }
2187 }
2188
2189 impl LogStreamOptions {
2190 #[inline(always)]
2191 fn max_ordinal_present(&self) -> u64 {
2192 if let Some(_) = self.include_rolled_out {
2193 return 4;
2194 }
2195 if let Some(_) = self.include_component_url {
2196 return 3;
2197 }
2198 if let Some(_) = self.include_moniker {
2199 return 2;
2200 }
2201 if let Some(_) = self.mode {
2202 return 1;
2203 }
2204 0
2205 }
2206 }
2207
2208 impl fidl::encoding::ValueTypeMarker for LogStreamOptions {
2209 type Borrowed<'a> = &'a Self;
2210 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2211 value
2212 }
2213 }
2214
2215 unsafe impl fidl::encoding::TypeMarker for LogStreamOptions {
2216 type Owned = Self;
2217
2218 #[inline(always)]
2219 fn inline_align(_context: fidl::encoding::Context) -> usize {
2220 8
2221 }
2222
2223 #[inline(always)]
2224 fn inline_size(_context: fidl::encoding::Context) -> usize {
2225 16
2226 }
2227 }
2228
2229 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogStreamOptions, D>
2230 for &LogStreamOptions
2231 {
2232 unsafe fn encode(
2233 self,
2234 encoder: &mut fidl::encoding::Encoder<'_, D>,
2235 offset: usize,
2236 mut depth: fidl::encoding::Depth,
2237 ) -> fidl::Result<()> {
2238 encoder.debug_check_bounds::<LogStreamOptions>(offset);
2239 let max_ordinal: u64 = self.max_ordinal_present();
2241 encoder.write_num(max_ordinal, offset);
2242 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2243 if max_ordinal == 0 {
2245 return Ok(());
2246 }
2247 depth.increment()?;
2248 let envelope_size = 8;
2249 let bytes_len = max_ordinal as usize * envelope_size;
2250 #[allow(unused_variables)]
2251 let offset = encoder.out_of_line_offset(bytes_len);
2252 let mut _prev_end_offset: usize = 0;
2253 if 1 > max_ordinal {
2254 return Ok(());
2255 }
2256
2257 let cur_offset: usize = (1 - 1) * envelope_size;
2260
2261 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2263
2264 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
2269 self.mode.as_ref().map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
2270 encoder,
2271 offset + cur_offset,
2272 depth,
2273 )?;
2274
2275 _prev_end_offset = cur_offset + envelope_size;
2276 if 2 > max_ordinal {
2277 return Ok(());
2278 }
2279
2280 let cur_offset: usize = (2 - 1) * envelope_size;
2283
2284 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2286
2287 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2292 self.include_moniker
2293 .as_ref()
2294 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2295 encoder,
2296 offset + cur_offset,
2297 depth,
2298 )?;
2299
2300 _prev_end_offset = cur_offset + envelope_size;
2301 if 3 > max_ordinal {
2302 return Ok(());
2303 }
2304
2305 let cur_offset: usize = (3 - 1) * envelope_size;
2308
2309 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2311
2312 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2317 self.include_component_url
2318 .as_ref()
2319 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2320 encoder,
2321 offset + cur_offset,
2322 depth,
2323 )?;
2324
2325 _prev_end_offset = cur_offset + envelope_size;
2326 if 4 > max_ordinal {
2327 return Ok(());
2328 }
2329
2330 let cur_offset: usize = (4 - 1) * envelope_size;
2333
2334 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2336
2337 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2342 self.include_rolled_out
2343 .as_ref()
2344 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2345 encoder,
2346 offset + cur_offset,
2347 depth,
2348 )?;
2349
2350 _prev_end_offset = cur_offset + envelope_size;
2351
2352 Ok(())
2353 }
2354 }
2355
2356 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogStreamOptions {
2357 #[inline(always)]
2358 fn new_empty() -> Self {
2359 Self::default()
2360 }
2361
2362 unsafe fn decode(
2363 &mut self,
2364 decoder: &mut fidl::encoding::Decoder<'_, D>,
2365 offset: usize,
2366 mut depth: fidl::encoding::Depth,
2367 ) -> fidl::Result<()> {
2368 decoder.debug_check_bounds::<Self>(offset);
2369 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2370 None => return Err(fidl::Error::NotNullable),
2371 Some(len) => len,
2372 };
2373 if len == 0 {
2375 return Ok(());
2376 };
2377 depth.increment()?;
2378 let envelope_size = 8;
2379 let bytes_len = len * envelope_size;
2380 let offset = decoder.out_of_line_offset(bytes_len)?;
2381 let mut _next_ordinal_to_read = 0;
2383 let mut next_offset = offset;
2384 let end_offset = offset + bytes_len;
2385 _next_ordinal_to_read += 1;
2386 if next_offset >= end_offset {
2387 return Ok(());
2388 }
2389
2390 while _next_ordinal_to_read < 1 {
2392 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2393 _next_ordinal_to_read += 1;
2394 next_offset += envelope_size;
2395 }
2396
2397 let next_out_of_line = decoder.next_out_of_line();
2398 let handles_before = decoder.remaining_handles();
2399 if let Some((inlined, num_bytes, num_handles)) =
2400 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2401 {
2402 let member_inline_size =
2403 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2404 if inlined != (member_inline_size <= 4) {
2405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2406 }
2407 let inner_offset;
2408 let mut inner_depth = depth.clone();
2409 if inlined {
2410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2411 inner_offset = next_offset;
2412 } else {
2413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2414 inner_depth.increment()?;
2415 }
2416 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
2417 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
2418 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2419 {
2420 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2421 }
2422 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2423 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2424 }
2425 }
2426
2427 next_offset += envelope_size;
2428 _next_ordinal_to_read += 1;
2429 if next_offset >= end_offset {
2430 return Ok(());
2431 }
2432
2433 while _next_ordinal_to_read < 2 {
2435 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2436 _next_ordinal_to_read += 1;
2437 next_offset += envelope_size;
2438 }
2439
2440 let next_out_of_line = decoder.next_out_of_line();
2441 let handles_before = decoder.remaining_handles();
2442 if let Some((inlined, num_bytes, num_handles)) =
2443 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2444 {
2445 let member_inline_size =
2446 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2447 if inlined != (member_inline_size <= 4) {
2448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2449 }
2450 let inner_offset;
2451 let mut inner_depth = depth.clone();
2452 if inlined {
2453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2454 inner_offset = next_offset;
2455 } else {
2456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2457 inner_depth.increment()?;
2458 }
2459 let val_ref = self.include_moniker.get_or_insert_with(|| fidl::new_empty!(bool, D));
2460 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2461 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2462 {
2463 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2464 }
2465 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2466 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2467 }
2468 }
2469
2470 next_offset += envelope_size;
2471 _next_ordinal_to_read += 1;
2472 if next_offset >= end_offset {
2473 return Ok(());
2474 }
2475
2476 while _next_ordinal_to_read < 3 {
2478 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2479 _next_ordinal_to_read += 1;
2480 next_offset += envelope_size;
2481 }
2482
2483 let next_out_of_line = decoder.next_out_of_line();
2484 let handles_before = decoder.remaining_handles();
2485 if let Some((inlined, num_bytes, num_handles)) =
2486 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2487 {
2488 let member_inline_size =
2489 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2490 if inlined != (member_inline_size <= 4) {
2491 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2492 }
2493 let inner_offset;
2494 let mut inner_depth = depth.clone();
2495 if inlined {
2496 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2497 inner_offset = next_offset;
2498 } else {
2499 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2500 inner_depth.increment()?;
2501 }
2502 let val_ref =
2503 self.include_component_url.get_or_insert_with(|| fidl::new_empty!(bool, D));
2504 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2505 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2506 {
2507 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2508 }
2509 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2510 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2511 }
2512 }
2513
2514 next_offset += envelope_size;
2515 _next_ordinal_to_read += 1;
2516 if next_offset >= end_offset {
2517 return Ok(());
2518 }
2519
2520 while _next_ordinal_to_read < 4 {
2522 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2523 _next_ordinal_to_read += 1;
2524 next_offset += envelope_size;
2525 }
2526
2527 let next_out_of_line = decoder.next_out_of_line();
2528 let handles_before = decoder.remaining_handles();
2529 if let Some((inlined, num_bytes, num_handles)) =
2530 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2531 {
2532 let member_inline_size =
2533 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2534 if inlined != (member_inline_size <= 4) {
2535 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2536 }
2537 let inner_offset;
2538 let mut inner_depth = depth.clone();
2539 if inlined {
2540 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2541 inner_offset = next_offset;
2542 } else {
2543 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2544 inner_depth.increment()?;
2545 }
2546 let val_ref =
2547 self.include_rolled_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
2548 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2549 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2550 {
2551 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2552 }
2553 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2554 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2555 }
2556 }
2557
2558 next_offset += envelope_size;
2559
2560 while next_offset < end_offset {
2562 _next_ordinal_to_read += 1;
2563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2564 next_offset += envelope_size;
2565 }
2566
2567 Ok(())
2568 }
2569 }
2570
2571 impl PerformanceConfiguration {
2572 #[inline(always)]
2573 fn max_ordinal_present(&self) -> u64 {
2574 if let Some(_) = self.batch_retrieval_timeout_seconds {
2575 return 2;
2576 }
2577 if let Some(_) = self.max_aggregate_content_size_bytes {
2578 return 1;
2579 }
2580 0
2581 }
2582 }
2583
2584 impl fidl::encoding::ValueTypeMarker for PerformanceConfiguration {
2585 type Borrowed<'a> = &'a Self;
2586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2587 value
2588 }
2589 }
2590
2591 unsafe impl fidl::encoding::TypeMarker for PerformanceConfiguration {
2592 type Owned = Self;
2593
2594 #[inline(always)]
2595 fn inline_align(_context: fidl::encoding::Context) -> usize {
2596 8
2597 }
2598
2599 #[inline(always)]
2600 fn inline_size(_context: fidl::encoding::Context) -> usize {
2601 16
2602 }
2603 }
2604
2605 unsafe impl<D: fidl::encoding::ResourceDialect>
2606 fidl::encoding::Encode<PerformanceConfiguration, D> for &PerformanceConfiguration
2607 {
2608 unsafe fn encode(
2609 self,
2610 encoder: &mut fidl::encoding::Encoder<'_, D>,
2611 offset: usize,
2612 mut depth: fidl::encoding::Depth,
2613 ) -> fidl::Result<()> {
2614 encoder.debug_check_bounds::<PerformanceConfiguration>(offset);
2615 let max_ordinal: u64 = self.max_ordinal_present();
2617 encoder.write_num(max_ordinal, offset);
2618 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2619 if max_ordinal == 0 {
2621 return Ok(());
2622 }
2623 depth.increment()?;
2624 let envelope_size = 8;
2625 let bytes_len = max_ordinal as usize * envelope_size;
2626 #[allow(unused_variables)]
2627 let offset = encoder.out_of_line_offset(bytes_len);
2628 let mut _prev_end_offset: usize = 0;
2629 if 1 > max_ordinal {
2630 return Ok(());
2631 }
2632
2633 let cur_offset: usize = (1 - 1) * envelope_size;
2636
2637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2639
2640 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2645 self.max_aggregate_content_size_bytes
2646 .as_ref()
2647 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2648 encoder,
2649 offset + cur_offset,
2650 depth,
2651 )?;
2652
2653 _prev_end_offset = cur_offset + envelope_size;
2654 if 2 > max_ordinal {
2655 return Ok(());
2656 }
2657
2658 let cur_offset: usize = (2 - 1) * envelope_size;
2661
2662 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2664
2665 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2670 self.batch_retrieval_timeout_seconds
2671 .as_ref()
2672 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2673 encoder,
2674 offset + cur_offset,
2675 depth,
2676 )?;
2677
2678 _prev_end_offset = cur_offset + envelope_size;
2679
2680 Ok(())
2681 }
2682 }
2683
2684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2685 for PerformanceConfiguration
2686 {
2687 #[inline(always)]
2688 fn new_empty() -> Self {
2689 Self::default()
2690 }
2691
2692 unsafe fn decode(
2693 &mut self,
2694 decoder: &mut fidl::encoding::Decoder<'_, D>,
2695 offset: usize,
2696 mut depth: fidl::encoding::Depth,
2697 ) -> fidl::Result<()> {
2698 decoder.debug_check_bounds::<Self>(offset);
2699 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2700 None => return Err(fidl::Error::NotNullable),
2701 Some(len) => len,
2702 };
2703 if len == 0 {
2705 return Ok(());
2706 };
2707 depth.increment()?;
2708 let envelope_size = 8;
2709 let bytes_len = len * envelope_size;
2710 let offset = decoder.out_of_line_offset(bytes_len)?;
2711 let mut _next_ordinal_to_read = 0;
2713 let mut next_offset = offset;
2714 let end_offset = offset + bytes_len;
2715 _next_ordinal_to_read += 1;
2716 if next_offset >= end_offset {
2717 return Ok(());
2718 }
2719
2720 while _next_ordinal_to_read < 1 {
2722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2723 _next_ordinal_to_read += 1;
2724 next_offset += envelope_size;
2725 }
2726
2727 let next_out_of_line = decoder.next_out_of_line();
2728 let handles_before = decoder.remaining_handles();
2729 if let Some((inlined, num_bytes, num_handles)) =
2730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2731 {
2732 let member_inline_size =
2733 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2734 if inlined != (member_inline_size <= 4) {
2735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2736 }
2737 let inner_offset;
2738 let mut inner_depth = depth.clone();
2739 if inlined {
2740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2741 inner_offset = next_offset;
2742 } else {
2743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2744 inner_depth.increment()?;
2745 }
2746 let val_ref = self
2747 .max_aggregate_content_size_bytes
2748 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2749 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2750 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2751 {
2752 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2753 }
2754 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2755 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2756 }
2757 }
2758
2759 next_offset += envelope_size;
2760 _next_ordinal_to_read += 1;
2761 if next_offset >= end_offset {
2762 return Ok(());
2763 }
2764
2765 while _next_ordinal_to_read < 2 {
2767 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2768 _next_ordinal_to_read += 1;
2769 next_offset += envelope_size;
2770 }
2771
2772 let next_out_of_line = decoder.next_out_of_line();
2773 let handles_before = decoder.remaining_handles();
2774 if let Some((inlined, num_bytes, num_handles)) =
2775 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2776 {
2777 let member_inline_size =
2778 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2779 if inlined != (member_inline_size <= 4) {
2780 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2781 }
2782 let inner_offset;
2783 let mut inner_depth = depth.clone();
2784 if inlined {
2785 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2786 inner_offset = next_offset;
2787 } else {
2788 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2789 inner_depth.increment()?;
2790 }
2791 let val_ref = self
2792 .batch_retrieval_timeout_seconds
2793 .get_or_insert_with(|| fidl::new_empty!(i64, D));
2794 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2796 {
2797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2798 }
2799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2801 }
2802 }
2803
2804 next_offset += envelope_size;
2805
2806 while next_offset < end_offset {
2808 _next_ordinal_to_read += 1;
2809 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2810 next_offset += envelope_size;
2811 }
2812
2813 Ok(())
2814 }
2815 }
2816
2817 impl Selector {
2818 #[inline(always)]
2819 fn max_ordinal_present(&self) -> u64 {
2820 if let Some(_) = self.tree_names {
2821 return 3;
2822 }
2823 if let Some(_) = self.tree_selector {
2824 return 2;
2825 }
2826 if let Some(_) = self.component_selector {
2827 return 1;
2828 }
2829 0
2830 }
2831 }
2832
2833 impl fidl::encoding::ValueTypeMarker for Selector {
2834 type Borrowed<'a> = &'a Self;
2835 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2836 value
2837 }
2838 }
2839
2840 unsafe impl fidl::encoding::TypeMarker for Selector {
2841 type Owned = Self;
2842
2843 #[inline(always)]
2844 fn inline_align(_context: fidl::encoding::Context) -> usize {
2845 8
2846 }
2847
2848 #[inline(always)]
2849 fn inline_size(_context: fidl::encoding::Context) -> usize {
2850 16
2851 }
2852 }
2853
2854 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Selector, D> for &Selector {
2855 unsafe fn encode(
2856 self,
2857 encoder: &mut fidl::encoding::Encoder<'_, D>,
2858 offset: usize,
2859 mut depth: fidl::encoding::Depth,
2860 ) -> fidl::Result<()> {
2861 encoder.debug_check_bounds::<Selector>(offset);
2862 let max_ordinal: u64 = self.max_ordinal_present();
2864 encoder.write_num(max_ordinal, offset);
2865 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2866 if max_ordinal == 0 {
2868 return Ok(());
2869 }
2870 depth.increment()?;
2871 let envelope_size = 8;
2872 let bytes_len = max_ordinal as usize * envelope_size;
2873 #[allow(unused_variables)]
2874 let offset = encoder.out_of_line_offset(bytes_len);
2875 let mut _prev_end_offset: usize = 0;
2876 if 1 > max_ordinal {
2877 return Ok(());
2878 }
2879
2880 let cur_offset: usize = (1 - 1) * envelope_size;
2883
2884 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2886
2887 fidl::encoding::encode_in_envelope_optional::<ComponentSelector, D>(
2892 self.component_selector
2893 .as_ref()
2894 .map(<ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow),
2895 encoder,
2896 offset + cur_offset,
2897 depth,
2898 )?;
2899
2900 _prev_end_offset = cur_offset + envelope_size;
2901 if 2 > max_ordinal {
2902 return Ok(());
2903 }
2904
2905 let cur_offset: usize = (2 - 1) * envelope_size;
2908
2909 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2911
2912 fidl::encoding::encode_in_envelope_optional::<TreeSelector, D>(
2917 self.tree_selector
2918 .as_ref()
2919 .map(<TreeSelector as fidl::encoding::ValueTypeMarker>::borrow),
2920 encoder,
2921 offset + cur_offset,
2922 depth,
2923 )?;
2924
2925 _prev_end_offset = cur_offset + envelope_size;
2926 if 3 > max_ordinal {
2927 return Ok(());
2928 }
2929
2930 let cur_offset: usize = (3 - 1) * envelope_size;
2933
2934 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2936
2937 fidl::encoding::encode_in_envelope_optional::<TreeNames, D>(
2942 self.tree_names
2943 .as_ref()
2944 .map(<TreeNames as fidl::encoding::ValueTypeMarker>::borrow),
2945 encoder,
2946 offset + cur_offset,
2947 depth,
2948 )?;
2949
2950 _prev_end_offset = cur_offset + envelope_size;
2951
2952 Ok(())
2953 }
2954 }
2955
2956 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Selector {
2957 #[inline(always)]
2958 fn new_empty() -> Self {
2959 Self::default()
2960 }
2961
2962 unsafe fn decode(
2963 &mut self,
2964 decoder: &mut fidl::encoding::Decoder<'_, D>,
2965 offset: usize,
2966 mut depth: fidl::encoding::Depth,
2967 ) -> fidl::Result<()> {
2968 decoder.debug_check_bounds::<Self>(offset);
2969 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2970 None => return Err(fidl::Error::NotNullable),
2971 Some(len) => len,
2972 };
2973 if len == 0 {
2975 return Ok(());
2976 };
2977 depth.increment()?;
2978 let envelope_size = 8;
2979 let bytes_len = len * envelope_size;
2980 let offset = decoder.out_of_line_offset(bytes_len)?;
2981 let mut _next_ordinal_to_read = 0;
2983 let mut next_offset = offset;
2984 let end_offset = offset + bytes_len;
2985 _next_ordinal_to_read += 1;
2986 if next_offset >= end_offset {
2987 return Ok(());
2988 }
2989
2990 while _next_ordinal_to_read < 1 {
2992 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2993 _next_ordinal_to_read += 1;
2994 next_offset += envelope_size;
2995 }
2996
2997 let next_out_of_line = decoder.next_out_of_line();
2998 let handles_before = decoder.remaining_handles();
2999 if let Some((inlined, num_bytes, num_handles)) =
3000 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3001 {
3002 let member_inline_size =
3003 <ComponentSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3004 if inlined != (member_inline_size <= 4) {
3005 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3006 }
3007 let inner_offset;
3008 let mut inner_depth = depth.clone();
3009 if inlined {
3010 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3011 inner_offset = next_offset;
3012 } else {
3013 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3014 inner_depth.increment()?;
3015 }
3016 let val_ref = self
3017 .component_selector
3018 .get_or_insert_with(|| fidl::new_empty!(ComponentSelector, D));
3019 fidl::decode!(ComponentSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3020 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3021 {
3022 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3023 }
3024 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3025 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3026 }
3027 }
3028
3029 next_offset += envelope_size;
3030 _next_ordinal_to_read += 1;
3031 if next_offset >= end_offset {
3032 return Ok(());
3033 }
3034
3035 while _next_ordinal_to_read < 2 {
3037 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3038 _next_ordinal_to_read += 1;
3039 next_offset += envelope_size;
3040 }
3041
3042 let next_out_of_line = decoder.next_out_of_line();
3043 let handles_before = decoder.remaining_handles();
3044 if let Some((inlined, num_bytes, num_handles)) =
3045 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3046 {
3047 let member_inline_size =
3048 <TreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3049 if inlined != (member_inline_size <= 4) {
3050 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3051 }
3052 let inner_offset;
3053 let mut inner_depth = depth.clone();
3054 if inlined {
3055 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3056 inner_offset = next_offset;
3057 } else {
3058 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3059 inner_depth.increment()?;
3060 }
3061 let val_ref =
3062 self.tree_selector.get_or_insert_with(|| fidl::new_empty!(TreeSelector, D));
3063 fidl::decode!(TreeSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3064 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3065 {
3066 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3067 }
3068 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3069 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3070 }
3071 }
3072
3073 next_offset += envelope_size;
3074 _next_ordinal_to_read += 1;
3075 if next_offset >= end_offset {
3076 return Ok(());
3077 }
3078
3079 while _next_ordinal_to_read < 3 {
3081 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3082 _next_ordinal_to_read += 1;
3083 next_offset += envelope_size;
3084 }
3085
3086 let next_out_of_line = decoder.next_out_of_line();
3087 let handles_before = decoder.remaining_handles();
3088 if let Some((inlined, num_bytes, num_handles)) =
3089 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3090 {
3091 let member_inline_size =
3092 <TreeNames as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3093 if inlined != (member_inline_size <= 4) {
3094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3095 }
3096 let inner_offset;
3097 let mut inner_depth = depth.clone();
3098 if inlined {
3099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3100 inner_offset = next_offset;
3101 } else {
3102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3103 inner_depth.increment()?;
3104 }
3105 let val_ref = self.tree_names.get_or_insert_with(|| fidl::new_empty!(TreeNames, D));
3106 fidl::decode!(TreeNames, D, val_ref, decoder, inner_offset, inner_depth)?;
3107 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3108 {
3109 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3110 }
3111 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3112 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3113 }
3114 }
3115
3116 next_offset += envelope_size;
3117
3118 while next_offset < end_offset {
3120 _next_ordinal_to_read += 1;
3121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3122 next_offset += envelope_size;
3123 }
3124
3125 Ok(())
3126 }
3127 }
3128
3129 impl StreamParameters {
3130 #[inline(always)]
3131 fn max_ordinal_present(&self) -> u64 {
3132 if let Some(_) = self.performance_configuration {
3133 return 6;
3134 }
3135 if let Some(_) = self.batch_retrieval_timeout_seconds {
3136 return 5;
3137 }
3138 if let Some(_) = self.client_selector_configuration {
3139 return 4;
3140 }
3141 if let Some(_) = self.format {
3142 return 3;
3143 }
3144 if let Some(_) = self.stream_mode {
3145 return 2;
3146 }
3147 if let Some(_) = self.data_type {
3148 return 1;
3149 }
3150 0
3151 }
3152 }
3153
3154 impl fidl::encoding::ValueTypeMarker for StreamParameters {
3155 type Borrowed<'a> = &'a Self;
3156 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3157 value
3158 }
3159 }
3160
3161 unsafe impl fidl::encoding::TypeMarker for StreamParameters {
3162 type Owned = Self;
3163
3164 #[inline(always)]
3165 fn inline_align(_context: fidl::encoding::Context) -> usize {
3166 8
3167 }
3168
3169 #[inline(always)]
3170 fn inline_size(_context: fidl::encoding::Context) -> usize {
3171 16
3172 }
3173 }
3174
3175 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamParameters, D>
3176 for &StreamParameters
3177 {
3178 unsafe fn encode(
3179 self,
3180 encoder: &mut fidl::encoding::Encoder<'_, D>,
3181 offset: usize,
3182 mut depth: fidl::encoding::Depth,
3183 ) -> fidl::Result<()> {
3184 encoder.debug_check_bounds::<StreamParameters>(offset);
3185 let max_ordinal: u64 = self.max_ordinal_present();
3187 encoder.write_num(max_ordinal, offset);
3188 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3189 if max_ordinal == 0 {
3191 return Ok(());
3192 }
3193 depth.increment()?;
3194 let envelope_size = 8;
3195 let bytes_len = max_ordinal as usize * envelope_size;
3196 #[allow(unused_variables)]
3197 let offset = encoder.out_of_line_offset(bytes_len);
3198 let mut _prev_end_offset: usize = 0;
3199 if 1 > max_ordinal {
3200 return Ok(());
3201 }
3202
3203 let cur_offset: usize = (1 - 1) * envelope_size;
3206
3207 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3209
3210 fidl::encoding::encode_in_envelope_optional::<DataType, D>(
3215 self.data_type.as_ref().map(<DataType as fidl::encoding::ValueTypeMarker>::borrow),
3216 encoder,
3217 offset + cur_offset,
3218 depth,
3219 )?;
3220
3221 _prev_end_offset = cur_offset + envelope_size;
3222 if 2 > max_ordinal {
3223 return Ok(());
3224 }
3225
3226 let cur_offset: usize = (2 - 1) * envelope_size;
3229
3230 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3232
3233 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
3238 self.stream_mode
3239 .as_ref()
3240 .map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
3241 encoder,
3242 offset + cur_offset,
3243 depth,
3244 )?;
3245
3246 _prev_end_offset = cur_offset + envelope_size;
3247 if 3 > max_ordinal {
3248 return Ok(());
3249 }
3250
3251 let cur_offset: usize = (3 - 1) * envelope_size;
3254
3255 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3257
3258 fidl::encoding::encode_in_envelope_optional::<Format, D>(
3263 self.format.as_ref().map(<Format as fidl::encoding::ValueTypeMarker>::borrow),
3264 encoder,
3265 offset + cur_offset,
3266 depth,
3267 )?;
3268
3269 _prev_end_offset = cur_offset + envelope_size;
3270 if 4 > max_ordinal {
3271 return Ok(());
3272 }
3273
3274 let cur_offset: usize = (4 - 1) * envelope_size;
3277
3278 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3280
3281 fidl::encoding::encode_in_envelope_optional::<ClientSelectorConfiguration, D>(
3286 self.client_selector_configuration
3287 .as_ref()
3288 .map(<ClientSelectorConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3289 encoder,
3290 offset + cur_offset,
3291 depth,
3292 )?;
3293
3294 _prev_end_offset = cur_offset + envelope_size;
3295 if 5 > max_ordinal {
3296 return Ok(());
3297 }
3298
3299 let cur_offset: usize = (5 - 1) * envelope_size;
3302
3303 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3305
3306 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3311 self.batch_retrieval_timeout_seconds
3312 .as_ref()
3313 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3314 encoder,
3315 offset + cur_offset,
3316 depth,
3317 )?;
3318
3319 _prev_end_offset = cur_offset + envelope_size;
3320 if 6 > max_ordinal {
3321 return Ok(());
3322 }
3323
3324 let cur_offset: usize = (6 - 1) * envelope_size;
3327
3328 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3330
3331 fidl::encoding::encode_in_envelope_optional::<PerformanceConfiguration, D>(
3336 self.performance_configuration
3337 .as_ref()
3338 .map(<PerformanceConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3339 encoder,
3340 offset + cur_offset,
3341 depth,
3342 )?;
3343
3344 _prev_end_offset = cur_offset + envelope_size;
3345
3346 Ok(())
3347 }
3348 }
3349
3350 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamParameters {
3351 #[inline(always)]
3352 fn new_empty() -> Self {
3353 Self::default()
3354 }
3355
3356 unsafe fn decode(
3357 &mut self,
3358 decoder: &mut fidl::encoding::Decoder<'_, D>,
3359 offset: usize,
3360 mut depth: fidl::encoding::Depth,
3361 ) -> fidl::Result<()> {
3362 decoder.debug_check_bounds::<Self>(offset);
3363 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3364 None => return Err(fidl::Error::NotNullable),
3365 Some(len) => len,
3366 };
3367 if len == 0 {
3369 return Ok(());
3370 };
3371 depth.increment()?;
3372 let envelope_size = 8;
3373 let bytes_len = len * envelope_size;
3374 let offset = decoder.out_of_line_offset(bytes_len)?;
3375 let mut _next_ordinal_to_read = 0;
3377 let mut next_offset = offset;
3378 let end_offset = offset + bytes_len;
3379 _next_ordinal_to_read += 1;
3380 if next_offset >= end_offset {
3381 return Ok(());
3382 }
3383
3384 while _next_ordinal_to_read < 1 {
3386 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3387 _next_ordinal_to_read += 1;
3388 next_offset += envelope_size;
3389 }
3390
3391 let next_out_of_line = decoder.next_out_of_line();
3392 let handles_before = decoder.remaining_handles();
3393 if let Some((inlined, num_bytes, num_handles)) =
3394 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3395 {
3396 let member_inline_size =
3397 <DataType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3398 if inlined != (member_inline_size <= 4) {
3399 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3400 }
3401 let inner_offset;
3402 let mut inner_depth = depth.clone();
3403 if inlined {
3404 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3405 inner_offset = next_offset;
3406 } else {
3407 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3408 inner_depth.increment()?;
3409 }
3410 let val_ref = self.data_type.get_or_insert_with(|| fidl::new_empty!(DataType, D));
3411 fidl::decode!(DataType, D, val_ref, decoder, inner_offset, inner_depth)?;
3412 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3413 {
3414 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3415 }
3416 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3417 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3418 }
3419 }
3420
3421 next_offset += envelope_size;
3422 _next_ordinal_to_read += 1;
3423 if next_offset >= end_offset {
3424 return Ok(());
3425 }
3426
3427 while _next_ordinal_to_read < 2 {
3429 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3430 _next_ordinal_to_read += 1;
3431 next_offset += envelope_size;
3432 }
3433
3434 let next_out_of_line = decoder.next_out_of_line();
3435 let handles_before = decoder.remaining_handles();
3436 if let Some((inlined, num_bytes, num_handles)) =
3437 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3438 {
3439 let member_inline_size =
3440 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3441 if inlined != (member_inline_size <= 4) {
3442 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3443 }
3444 let inner_offset;
3445 let mut inner_depth = depth.clone();
3446 if inlined {
3447 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3448 inner_offset = next_offset;
3449 } else {
3450 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3451 inner_depth.increment()?;
3452 }
3453 let val_ref =
3454 self.stream_mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
3455 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
3456 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3457 {
3458 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3459 }
3460 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3461 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3462 }
3463 }
3464
3465 next_offset += envelope_size;
3466 _next_ordinal_to_read += 1;
3467 if next_offset >= end_offset {
3468 return Ok(());
3469 }
3470
3471 while _next_ordinal_to_read < 3 {
3473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3474 _next_ordinal_to_read += 1;
3475 next_offset += envelope_size;
3476 }
3477
3478 let next_out_of_line = decoder.next_out_of_line();
3479 let handles_before = decoder.remaining_handles();
3480 if let Some((inlined, num_bytes, num_handles)) =
3481 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3482 {
3483 let member_inline_size =
3484 <Format as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3485 if inlined != (member_inline_size <= 4) {
3486 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3487 }
3488 let inner_offset;
3489 let mut inner_depth = depth.clone();
3490 if inlined {
3491 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3492 inner_offset = next_offset;
3493 } else {
3494 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3495 inner_depth.increment()?;
3496 }
3497 let val_ref = self.format.get_or_insert_with(|| fidl::new_empty!(Format, D));
3498 fidl::decode!(Format, D, val_ref, decoder, inner_offset, inner_depth)?;
3499 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3500 {
3501 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3502 }
3503 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3504 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3505 }
3506 }
3507
3508 next_offset += envelope_size;
3509 _next_ordinal_to_read += 1;
3510 if next_offset >= end_offset {
3511 return Ok(());
3512 }
3513
3514 while _next_ordinal_to_read < 4 {
3516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3517 _next_ordinal_to_read += 1;
3518 next_offset += envelope_size;
3519 }
3520
3521 let next_out_of_line = decoder.next_out_of_line();
3522 let handles_before = decoder.remaining_handles();
3523 if let Some((inlined, num_bytes, num_handles)) =
3524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3525 {
3526 let member_inline_size =
3527 <ClientSelectorConfiguration as fidl::encoding::TypeMarker>::inline_size(
3528 decoder.context,
3529 );
3530 if inlined != (member_inline_size <= 4) {
3531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3532 }
3533 let inner_offset;
3534 let mut inner_depth = depth.clone();
3535 if inlined {
3536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3537 inner_offset = next_offset;
3538 } else {
3539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3540 inner_depth.increment()?;
3541 }
3542 let val_ref = self
3543 .client_selector_configuration
3544 .get_or_insert_with(|| fidl::new_empty!(ClientSelectorConfiguration, D));
3545 fidl::decode!(
3546 ClientSelectorConfiguration,
3547 D,
3548 val_ref,
3549 decoder,
3550 inner_offset,
3551 inner_depth
3552 )?;
3553 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3554 {
3555 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3556 }
3557 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3558 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3559 }
3560 }
3561
3562 next_offset += envelope_size;
3563 _next_ordinal_to_read += 1;
3564 if next_offset >= end_offset {
3565 return Ok(());
3566 }
3567
3568 while _next_ordinal_to_read < 5 {
3570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3571 _next_ordinal_to_read += 1;
3572 next_offset += envelope_size;
3573 }
3574
3575 let next_out_of_line = decoder.next_out_of_line();
3576 let handles_before = decoder.remaining_handles();
3577 if let Some((inlined, num_bytes, num_handles)) =
3578 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3579 {
3580 let member_inline_size =
3581 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3582 if inlined != (member_inline_size <= 4) {
3583 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3584 }
3585 let inner_offset;
3586 let mut inner_depth = depth.clone();
3587 if inlined {
3588 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3589 inner_offset = next_offset;
3590 } else {
3591 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3592 inner_depth.increment()?;
3593 }
3594 let val_ref = self
3595 .batch_retrieval_timeout_seconds
3596 .get_or_insert_with(|| fidl::new_empty!(i64, D));
3597 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3598 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3599 {
3600 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3601 }
3602 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3603 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3604 }
3605 }
3606
3607 next_offset += envelope_size;
3608 _next_ordinal_to_read += 1;
3609 if next_offset >= end_offset {
3610 return Ok(());
3611 }
3612
3613 while _next_ordinal_to_read < 6 {
3615 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3616 _next_ordinal_to_read += 1;
3617 next_offset += envelope_size;
3618 }
3619
3620 let next_out_of_line = decoder.next_out_of_line();
3621 let handles_before = decoder.remaining_handles();
3622 if let Some((inlined, num_bytes, num_handles)) =
3623 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3624 {
3625 let member_inline_size =
3626 <PerformanceConfiguration as fidl::encoding::TypeMarker>::inline_size(
3627 decoder.context,
3628 );
3629 if inlined != (member_inline_size <= 4) {
3630 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3631 }
3632 let inner_offset;
3633 let mut inner_depth = depth.clone();
3634 if inlined {
3635 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3636 inner_offset = next_offset;
3637 } else {
3638 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3639 inner_depth.increment()?;
3640 }
3641 let val_ref = self
3642 .performance_configuration
3643 .get_or_insert_with(|| fidl::new_empty!(PerformanceConfiguration, D));
3644 fidl::decode!(
3645 PerformanceConfiguration,
3646 D,
3647 val_ref,
3648 decoder,
3649 inner_offset,
3650 inner_depth
3651 )?;
3652 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3653 {
3654 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3655 }
3656 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3657 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3658 }
3659 }
3660
3661 next_offset += envelope_size;
3662
3663 while next_offset < end_offset {
3665 _next_ordinal_to_read += 1;
3666 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3667 next_offset += envelope_size;
3668 }
3669
3670 Ok(())
3671 }
3672 }
3673
3674 impl fidl::encoding::ValueTypeMarker for ClientSelectorConfiguration {
3675 type Borrowed<'a> = &'a Self;
3676 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3677 value
3678 }
3679 }
3680
3681 unsafe impl fidl::encoding::TypeMarker for ClientSelectorConfiguration {
3682 type Owned = Self;
3683
3684 #[inline(always)]
3685 fn inline_align(_context: fidl::encoding::Context) -> usize {
3686 8
3687 }
3688
3689 #[inline(always)]
3690 fn inline_size(_context: fidl::encoding::Context) -> usize {
3691 16
3692 }
3693 }
3694
3695 unsafe impl<D: fidl::encoding::ResourceDialect>
3696 fidl::encoding::Encode<ClientSelectorConfiguration, D> for &ClientSelectorConfiguration
3697 {
3698 #[inline]
3699 unsafe fn encode(
3700 self,
3701 encoder: &mut fidl::encoding::Encoder<'_, D>,
3702 offset: usize,
3703 _depth: fidl::encoding::Depth,
3704 ) -> fidl::Result<()> {
3705 encoder.debug_check_bounds::<ClientSelectorConfiguration>(offset);
3706 encoder.write_num::<u64>(self.ordinal(), offset);
3707 match self {
3708 ClientSelectorConfiguration::Selectors(ref val) => {
3709 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<SelectorArgument>, D>(
3710 <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::ValueTypeMarker>::borrow(val),
3711 encoder, offset + 8, _depth
3712 )
3713 }
3714 ClientSelectorConfiguration::SelectAll(ref val) => {
3715 fidl::encoding::encode_in_envelope::<bool, D>(
3716 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3717 encoder, offset + 8, _depth
3718 )
3719 }
3720 ClientSelectorConfiguration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
3721 }
3722 }
3723 }
3724
3725 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3726 for ClientSelectorConfiguration
3727 {
3728 #[inline(always)]
3729 fn new_empty() -> Self {
3730 Self::__SourceBreaking { unknown_ordinal: 0 }
3731 }
3732
3733 #[inline]
3734 unsafe fn decode(
3735 &mut self,
3736 decoder: &mut fidl::encoding::Decoder<'_, D>,
3737 offset: usize,
3738 mut depth: fidl::encoding::Depth,
3739 ) -> fidl::Result<()> {
3740 decoder.debug_check_bounds::<Self>(offset);
3741 #[allow(unused_variables)]
3742 let next_out_of_line = decoder.next_out_of_line();
3743 let handles_before = decoder.remaining_handles();
3744 let (ordinal, inlined, num_bytes, num_handles) =
3745 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3746
3747 let member_inline_size = match ordinal {
3748 1 => <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3749 2 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3750 0 => return Err(fidl::Error::UnknownUnionTag),
3751 _ => num_bytes as usize,
3752 };
3753
3754 if inlined != (member_inline_size <= 4) {
3755 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3756 }
3757 let _inner_offset;
3758 if inlined {
3759 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3760 _inner_offset = offset + 8;
3761 } else {
3762 depth.increment()?;
3763 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3764 }
3765 match ordinal {
3766 1 => {
3767 #[allow(irrefutable_let_patterns)]
3768 if let ClientSelectorConfiguration::Selectors(_) = self {
3769 } else {
3771 *self = ClientSelectorConfiguration::Selectors(fidl::new_empty!(
3773 fidl::encoding::UnboundedVector<SelectorArgument>,
3774 D
3775 ));
3776 }
3777 #[allow(irrefutable_let_patterns)]
3778 if let ClientSelectorConfiguration::Selectors(ref mut val) = self {
3779 fidl::decode!(
3780 fidl::encoding::UnboundedVector<SelectorArgument>,
3781 D,
3782 val,
3783 decoder,
3784 _inner_offset,
3785 depth
3786 )?;
3787 } else {
3788 unreachable!()
3789 }
3790 }
3791 2 => {
3792 #[allow(irrefutable_let_patterns)]
3793 if let ClientSelectorConfiguration::SelectAll(_) = self {
3794 } else {
3796 *self = ClientSelectorConfiguration::SelectAll(fidl::new_empty!(bool, D));
3798 }
3799 #[allow(irrefutable_let_patterns)]
3800 if let ClientSelectorConfiguration::SelectAll(ref mut val) = self {
3801 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
3802 } else {
3803 unreachable!()
3804 }
3805 }
3806 #[allow(deprecated)]
3807 ordinal => {
3808 for _ in 0..num_handles {
3809 decoder.drop_next_handle()?;
3810 }
3811 *self =
3812 ClientSelectorConfiguration::__SourceBreaking { unknown_ordinal: ordinal };
3813 }
3814 }
3815 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3817 }
3818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3820 }
3821 Ok(())
3822 }
3823 }
3824
3825 impl fidl::encoding::ValueTypeMarker for SelectorArgument {
3826 type Borrowed<'a> = &'a Self;
3827 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3828 value
3829 }
3830 }
3831
3832 unsafe impl fidl::encoding::TypeMarker for SelectorArgument {
3833 type Owned = Self;
3834
3835 #[inline(always)]
3836 fn inline_align(_context: fidl::encoding::Context) -> usize {
3837 8
3838 }
3839
3840 #[inline(always)]
3841 fn inline_size(_context: fidl::encoding::Context) -> usize {
3842 16
3843 }
3844 }
3845
3846 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelectorArgument, D>
3847 for &SelectorArgument
3848 {
3849 #[inline]
3850 unsafe fn encode(
3851 self,
3852 encoder: &mut fidl::encoding::Encoder<'_, D>,
3853 offset: usize,
3854 _depth: fidl::encoding::Depth,
3855 ) -> fidl::Result<()> {
3856 encoder.debug_check_bounds::<SelectorArgument>(offset);
3857 encoder.write_num::<u64>(self.ordinal(), offset);
3858 match self {
3859 SelectorArgument::StructuredSelector(ref val) => {
3860 fidl::encoding::encode_in_envelope::<Selector, D>(
3861 <Selector as fidl::encoding::ValueTypeMarker>::borrow(val),
3862 encoder, offset + 8, _depth
3863 )
3864 }
3865 SelectorArgument::RawSelector(ref val) => {
3866 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
3867 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
3868 encoder, offset + 8, _depth
3869 )
3870 }
3871 SelectorArgument::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
3872 }
3873 }
3874 }
3875
3876 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelectorArgument {
3877 #[inline(always)]
3878 fn new_empty() -> Self {
3879 Self::__SourceBreaking { unknown_ordinal: 0 }
3880 }
3881
3882 #[inline]
3883 unsafe fn decode(
3884 &mut self,
3885 decoder: &mut fidl::encoding::Decoder<'_, D>,
3886 offset: usize,
3887 mut depth: fidl::encoding::Depth,
3888 ) -> fidl::Result<()> {
3889 decoder.debug_check_bounds::<Self>(offset);
3890 #[allow(unused_variables)]
3891 let next_out_of_line = decoder.next_out_of_line();
3892 let handles_before = decoder.remaining_handles();
3893 let (ordinal, inlined, num_bytes, num_handles) =
3894 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3895
3896 let member_inline_size = match ordinal {
3897 1 => <Selector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3898 2 => {
3899 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
3900 decoder.context,
3901 )
3902 }
3903 0 => return Err(fidl::Error::UnknownUnionTag),
3904 _ => num_bytes as usize,
3905 };
3906
3907 if inlined != (member_inline_size <= 4) {
3908 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3909 }
3910 let _inner_offset;
3911 if inlined {
3912 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3913 _inner_offset = offset + 8;
3914 } else {
3915 depth.increment()?;
3916 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3917 }
3918 match ordinal {
3919 1 => {
3920 #[allow(irrefutable_let_patterns)]
3921 if let SelectorArgument::StructuredSelector(_) = self {
3922 } else {
3924 *self = SelectorArgument::StructuredSelector(fidl::new_empty!(Selector, D));
3926 }
3927 #[allow(irrefutable_let_patterns)]
3928 if let SelectorArgument::StructuredSelector(ref mut val) = self {
3929 fidl::decode!(Selector, D, val, decoder, _inner_offset, depth)?;
3930 } else {
3931 unreachable!()
3932 }
3933 }
3934 2 => {
3935 #[allow(irrefutable_let_patterns)]
3936 if let SelectorArgument::RawSelector(_) = self {
3937 } else {
3939 *self = SelectorArgument::RawSelector(fidl::new_empty!(
3941 fidl::encoding::BoundedString<1024>,
3942 D
3943 ));
3944 }
3945 #[allow(irrefutable_let_patterns)]
3946 if let SelectorArgument::RawSelector(ref mut val) = self {
3947 fidl::decode!(
3948 fidl::encoding::BoundedString<1024>,
3949 D,
3950 val,
3951 decoder,
3952 _inner_offset,
3953 depth
3954 )?;
3955 } else {
3956 unreachable!()
3957 }
3958 }
3959 #[allow(deprecated)]
3960 ordinal => {
3961 for _ in 0..num_handles {
3962 decoder.drop_next_handle()?;
3963 }
3964 *self = SelectorArgument::__SourceBreaking { unknown_ordinal: ordinal };
3965 }
3966 }
3967 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3968 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3969 }
3970 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3971 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3972 }
3973 Ok(())
3974 }
3975 }
3976
3977 impl fidl::encoding::ValueTypeMarker for StringSelector {
3978 type Borrowed<'a> = &'a Self;
3979 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3980 value
3981 }
3982 }
3983
3984 unsafe impl fidl::encoding::TypeMarker for StringSelector {
3985 type Owned = Self;
3986
3987 #[inline(always)]
3988 fn inline_align(_context: fidl::encoding::Context) -> usize {
3989 8
3990 }
3991
3992 #[inline(always)]
3993 fn inline_size(_context: fidl::encoding::Context) -> usize {
3994 16
3995 }
3996 }
3997
3998 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StringSelector, D>
3999 for &StringSelector
4000 {
4001 #[inline]
4002 unsafe fn encode(
4003 self,
4004 encoder: &mut fidl::encoding::Encoder<'_, D>,
4005 offset: usize,
4006 _depth: fidl::encoding::Depth,
4007 ) -> fidl::Result<()> {
4008 encoder.debug_check_bounds::<StringSelector>(offset);
4009 encoder.write_num::<u64>(self.ordinal(), offset);
4010 match self {
4011 StringSelector::StringPattern(ref val) => {
4012 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4013 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4014 encoder, offset + 8, _depth
4015 )
4016 }
4017 StringSelector::ExactMatch(ref val) => {
4018 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
4019 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
4020 encoder, offset + 8, _depth
4021 )
4022 }
4023 StringSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4024 }
4025 }
4026 }
4027
4028 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StringSelector {
4029 #[inline(always)]
4030 fn new_empty() -> Self {
4031 Self::__SourceBreaking { unknown_ordinal: 0 }
4032 }
4033
4034 #[inline]
4035 unsafe fn decode(
4036 &mut self,
4037 decoder: &mut fidl::encoding::Decoder<'_, D>,
4038 offset: usize,
4039 mut depth: fidl::encoding::Depth,
4040 ) -> fidl::Result<()> {
4041 decoder.debug_check_bounds::<Self>(offset);
4042 #[allow(unused_variables)]
4043 let next_out_of_line = decoder.next_out_of_line();
4044 let handles_before = decoder.remaining_handles();
4045 let (ordinal, inlined, num_bytes, num_handles) =
4046 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4047
4048 let member_inline_size = match ordinal {
4049 1 => {
4050 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4051 decoder.context,
4052 )
4053 }
4054 2 => {
4055 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4056 decoder.context,
4057 )
4058 }
4059 0 => return Err(fidl::Error::UnknownUnionTag),
4060 _ => num_bytes as usize,
4061 };
4062
4063 if inlined != (member_inline_size <= 4) {
4064 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4065 }
4066 let _inner_offset;
4067 if inlined {
4068 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4069 _inner_offset = offset + 8;
4070 } else {
4071 depth.increment()?;
4072 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4073 }
4074 match ordinal {
4075 1 => {
4076 #[allow(irrefutable_let_patterns)]
4077 if let StringSelector::StringPattern(_) = self {
4078 } else {
4080 *self = StringSelector::StringPattern(fidl::new_empty!(
4082 fidl::encoding::BoundedString<1024>,
4083 D
4084 ));
4085 }
4086 #[allow(irrefutable_let_patterns)]
4087 if let StringSelector::StringPattern(ref mut val) = self {
4088 fidl::decode!(
4089 fidl::encoding::BoundedString<1024>,
4090 D,
4091 val,
4092 decoder,
4093 _inner_offset,
4094 depth
4095 )?;
4096 } else {
4097 unreachable!()
4098 }
4099 }
4100 2 => {
4101 #[allow(irrefutable_let_patterns)]
4102 if let StringSelector::ExactMatch(_) = self {
4103 } else {
4105 *self = StringSelector::ExactMatch(fidl::new_empty!(
4107 fidl::encoding::BoundedString<1024>,
4108 D
4109 ));
4110 }
4111 #[allow(irrefutable_let_patterns)]
4112 if let StringSelector::ExactMatch(ref mut val) = self {
4113 fidl::decode!(
4114 fidl::encoding::BoundedString<1024>,
4115 D,
4116 val,
4117 decoder,
4118 _inner_offset,
4119 depth
4120 )?;
4121 } else {
4122 unreachable!()
4123 }
4124 }
4125 #[allow(deprecated)]
4126 ordinal => {
4127 for _ in 0..num_handles {
4128 decoder.drop_next_handle()?;
4129 }
4130 *self = StringSelector::__SourceBreaking { unknown_ordinal: ordinal };
4131 }
4132 }
4133 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4134 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4135 }
4136 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4137 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4138 }
4139 Ok(())
4140 }
4141 }
4142
4143 impl fidl::encoding::ValueTypeMarker for TreeNames {
4144 type Borrowed<'a> = &'a Self;
4145 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4146 value
4147 }
4148 }
4149
4150 unsafe impl fidl::encoding::TypeMarker for TreeNames {
4151 type Owned = Self;
4152
4153 #[inline(always)]
4154 fn inline_align(_context: fidl::encoding::Context) -> usize {
4155 8
4156 }
4157
4158 #[inline(always)]
4159 fn inline_size(_context: fidl::encoding::Context) -> usize {
4160 16
4161 }
4162 }
4163
4164 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeNames, D>
4165 for &TreeNames
4166 {
4167 #[inline]
4168 unsafe fn encode(
4169 self,
4170 encoder: &mut fidl::encoding::Encoder<'_, D>,
4171 offset: usize,
4172 _depth: fidl::encoding::Depth,
4173 ) -> fidl::Result<()> {
4174 encoder.debug_check_bounds::<TreeNames>(offset);
4175 encoder.write_num::<u64>(self.ordinal(), offset);
4176 match self {
4177 TreeNames::Some(ref val) => {
4178 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>, D>(
4179 <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::ValueTypeMarker>::borrow(val),
4180 encoder, offset + 8, _depth
4181 )
4182 }
4183 TreeNames::All(ref val) => {
4184 fidl::encoding::encode_in_envelope::<All, D>(
4185 <All as fidl::encoding::ValueTypeMarker>::borrow(val),
4186 encoder, offset + 8, _depth
4187 )
4188 }
4189 TreeNames::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4190 }
4191 }
4192 }
4193
4194 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeNames {
4195 #[inline(always)]
4196 fn new_empty() -> Self {
4197 Self::__SourceBreaking { unknown_ordinal: 0 }
4198 }
4199
4200 #[inline]
4201 unsafe fn decode(
4202 &mut self,
4203 decoder: &mut fidl::encoding::Decoder<'_, D>,
4204 offset: usize,
4205 mut depth: fidl::encoding::Depth,
4206 ) -> fidl::Result<()> {
4207 decoder.debug_check_bounds::<Self>(offset);
4208 #[allow(unused_variables)]
4209 let next_out_of_line = decoder.next_out_of_line();
4210 let handles_before = decoder.remaining_handles();
4211 let (ordinal, inlined, num_bytes, num_handles) =
4212 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4213
4214 let member_inline_size = match ordinal {
4215 1 => <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4216 2 => <All as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4217 0 => return Err(fidl::Error::UnknownUnionTag),
4218 _ => num_bytes as usize,
4219 };
4220
4221 if inlined != (member_inline_size <= 4) {
4222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4223 }
4224 let _inner_offset;
4225 if inlined {
4226 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4227 _inner_offset = offset + 8;
4228 } else {
4229 depth.increment()?;
4230 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4231 }
4232 match ordinal {
4233 1 => {
4234 #[allow(irrefutable_let_patterns)]
4235 if let TreeNames::Some(_) = self {
4236 } else {
4238 *self = TreeNames::Some(fidl::new_empty!(
4240 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4241 D
4242 ));
4243 }
4244 #[allow(irrefutable_let_patterns)]
4245 if let TreeNames::Some(ref mut val) = self {
4246 fidl::decode!(
4247 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4248 D,
4249 val,
4250 decoder,
4251 _inner_offset,
4252 depth
4253 )?;
4254 } else {
4255 unreachable!()
4256 }
4257 }
4258 2 => {
4259 #[allow(irrefutable_let_patterns)]
4260 if let TreeNames::All(_) = self {
4261 } else {
4263 *self = TreeNames::All(fidl::new_empty!(All, D));
4265 }
4266 #[allow(irrefutable_let_patterns)]
4267 if let TreeNames::All(ref mut val) = self {
4268 fidl::decode!(All, D, val, decoder, _inner_offset, depth)?;
4269 } else {
4270 unreachable!()
4271 }
4272 }
4273 #[allow(deprecated)]
4274 ordinal => {
4275 for _ in 0..num_handles {
4276 decoder.drop_next_handle()?;
4277 }
4278 *self = TreeNames::__SourceBreaking { unknown_ordinal: ordinal };
4279 }
4280 }
4281 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4282 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4283 }
4284 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4285 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4286 }
4287 Ok(())
4288 }
4289 }
4290
4291 impl fidl::encoding::ValueTypeMarker for TreeSelector {
4292 type Borrowed<'a> = &'a Self;
4293 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4294 value
4295 }
4296 }
4297
4298 unsafe impl fidl::encoding::TypeMarker for TreeSelector {
4299 type Owned = Self;
4300
4301 #[inline(always)]
4302 fn inline_align(_context: fidl::encoding::Context) -> usize {
4303 8
4304 }
4305
4306 #[inline(always)]
4307 fn inline_size(_context: fidl::encoding::Context) -> usize {
4308 16
4309 }
4310 }
4311
4312 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeSelector, D>
4313 for &TreeSelector
4314 {
4315 #[inline]
4316 unsafe fn encode(
4317 self,
4318 encoder: &mut fidl::encoding::Encoder<'_, D>,
4319 offset: usize,
4320 _depth: fidl::encoding::Depth,
4321 ) -> fidl::Result<()> {
4322 encoder.debug_check_bounds::<TreeSelector>(offset);
4323 encoder.write_num::<u64>(self.ordinal(), offset);
4324 match self {
4325 TreeSelector::SubtreeSelector(ref val) => {
4326 fidl::encoding::encode_in_envelope::<SubtreeSelector, D>(
4327 <SubtreeSelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4328 encoder,
4329 offset + 8,
4330 _depth,
4331 )
4332 }
4333 TreeSelector::PropertySelector(ref val) => {
4334 fidl::encoding::encode_in_envelope::<PropertySelector, D>(
4335 <PropertySelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4336 encoder,
4337 offset + 8,
4338 _depth,
4339 )
4340 }
4341 TreeSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4342 }
4343 }
4344 }
4345
4346 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeSelector {
4347 #[inline(always)]
4348 fn new_empty() -> Self {
4349 Self::__SourceBreaking { unknown_ordinal: 0 }
4350 }
4351
4352 #[inline]
4353 unsafe fn decode(
4354 &mut self,
4355 decoder: &mut fidl::encoding::Decoder<'_, D>,
4356 offset: usize,
4357 mut depth: fidl::encoding::Depth,
4358 ) -> fidl::Result<()> {
4359 decoder.debug_check_bounds::<Self>(offset);
4360 #[allow(unused_variables)]
4361 let next_out_of_line = decoder.next_out_of_line();
4362 let handles_before = decoder.remaining_handles();
4363 let (ordinal, inlined, num_bytes, num_handles) =
4364 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4365
4366 let member_inline_size = match ordinal {
4367 1 => <SubtreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4368 2 => <PropertySelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4369 0 => return Err(fidl::Error::UnknownUnionTag),
4370 _ => num_bytes as usize,
4371 };
4372
4373 if inlined != (member_inline_size <= 4) {
4374 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4375 }
4376 let _inner_offset;
4377 if inlined {
4378 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4379 _inner_offset = offset + 8;
4380 } else {
4381 depth.increment()?;
4382 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4383 }
4384 match ordinal {
4385 1 => {
4386 #[allow(irrefutable_let_patterns)]
4387 if let TreeSelector::SubtreeSelector(_) = self {
4388 } else {
4390 *self = TreeSelector::SubtreeSelector(fidl::new_empty!(SubtreeSelector, D));
4392 }
4393 #[allow(irrefutable_let_patterns)]
4394 if let TreeSelector::SubtreeSelector(ref mut val) = self {
4395 fidl::decode!(SubtreeSelector, D, val, decoder, _inner_offset, depth)?;
4396 } else {
4397 unreachable!()
4398 }
4399 }
4400 2 => {
4401 #[allow(irrefutable_let_patterns)]
4402 if let TreeSelector::PropertySelector(_) = self {
4403 } else {
4405 *self =
4407 TreeSelector::PropertySelector(fidl::new_empty!(PropertySelector, D));
4408 }
4409 #[allow(irrefutable_let_patterns)]
4410 if let TreeSelector::PropertySelector(ref mut val) = self {
4411 fidl::decode!(PropertySelector, D, val, decoder, _inner_offset, depth)?;
4412 } else {
4413 unreachable!()
4414 }
4415 }
4416 #[allow(deprecated)]
4417 ordinal => {
4418 for _ in 0..num_handles {
4419 decoder.drop_next_handle()?;
4420 }
4421 *self = TreeSelector::__SourceBreaking { unknown_ordinal: ordinal };
4422 }
4423 }
4424 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4425 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4426 }
4427 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4428 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4429 }
4430 Ok(())
4431 }
4432 }
4433}