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::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
760mod internal {
761 use super::*;
762 unsafe impl fidl::encoding::TypeMarker for DataType {
763 type Owned = Self;
764
765 #[inline(always)]
766 fn inline_align(_context: fidl::encoding::Context) -> usize {
767 std::mem::align_of::<u8>()
768 }
769
770 #[inline(always)]
771 fn inline_size(_context: fidl::encoding::Context) -> usize {
772 std::mem::size_of::<u8>()
773 }
774
775 #[inline(always)]
776 fn encode_is_copy() -> bool {
777 true
778 }
779
780 #[inline(always)]
781 fn decode_is_copy() -> bool {
782 false
783 }
784 }
785
786 impl fidl::encoding::ValueTypeMarker for DataType {
787 type Borrowed<'a> = Self;
788 #[inline(always)]
789 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
790 *value
791 }
792 }
793
794 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DataType {
795 #[inline]
796 unsafe fn encode(
797 self,
798 encoder: &mut fidl::encoding::Encoder<'_, D>,
799 offset: usize,
800 _depth: fidl::encoding::Depth,
801 ) -> fidl::Result<()> {
802 encoder.debug_check_bounds::<Self>(offset);
803 encoder.write_num(self.into_primitive(), offset);
804 Ok(())
805 }
806 }
807
808 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DataType {
809 #[inline(always)]
810 fn new_empty() -> Self {
811 Self::Inspect
812 }
813
814 #[inline]
815 unsafe fn decode(
816 &mut self,
817 decoder: &mut fidl::encoding::Decoder<'_, D>,
818 offset: usize,
819 _depth: fidl::encoding::Depth,
820 ) -> fidl::Result<()> {
821 decoder.debug_check_bounds::<Self>(offset);
822 let prim = decoder.read_num::<u8>(offset);
823
824 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
825 Ok(())
826 }
827 }
828 unsafe impl fidl::encoding::TypeMarker for Format {
829 type Owned = Self;
830
831 #[inline(always)]
832 fn inline_align(_context: fidl::encoding::Context) -> usize {
833 std::mem::align_of::<u32>()
834 }
835
836 #[inline(always)]
837 fn inline_size(_context: fidl::encoding::Context) -> usize {
838 std::mem::size_of::<u32>()
839 }
840
841 #[inline(always)]
842 fn encode_is_copy() -> bool {
843 true
844 }
845
846 #[inline(always)]
847 fn decode_is_copy() -> bool {
848 false
849 }
850 }
851
852 impl fidl::encoding::ValueTypeMarker for Format {
853 type Borrowed<'a> = Self;
854 #[inline(always)]
855 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
856 *value
857 }
858 }
859
860 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Format {
861 #[inline]
862 unsafe fn encode(
863 self,
864 encoder: &mut fidl::encoding::Encoder<'_, D>,
865 offset: usize,
866 _depth: fidl::encoding::Depth,
867 ) -> fidl::Result<()> {
868 encoder.debug_check_bounds::<Self>(offset);
869 encoder.write_num(self.into_primitive(), offset);
870 Ok(())
871 }
872 }
873
874 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Format {
875 #[inline(always)]
876 fn new_empty() -> Self {
877 Self::Json
878 }
879
880 #[inline]
881 unsafe fn decode(
882 &mut self,
883 decoder: &mut fidl::encoding::Decoder<'_, D>,
884 offset: usize,
885 _depth: fidl::encoding::Depth,
886 ) -> fidl::Result<()> {
887 decoder.debug_check_bounds::<Self>(offset);
888 let prim = decoder.read_num::<u32>(offset);
889
890 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
891 Ok(())
892 }
893 }
894 unsafe impl fidl::encoding::TypeMarker for ReaderError {
895 type Owned = Self;
896
897 #[inline(always)]
898 fn inline_align(_context: fidl::encoding::Context) -> usize {
899 std::mem::align_of::<u32>()
900 }
901
902 #[inline(always)]
903 fn inline_size(_context: fidl::encoding::Context) -> usize {
904 std::mem::size_of::<u32>()
905 }
906
907 #[inline(always)]
908 fn encode_is_copy() -> bool {
909 true
910 }
911
912 #[inline(always)]
913 fn decode_is_copy() -> bool {
914 false
915 }
916 }
917
918 impl fidl::encoding::ValueTypeMarker for ReaderError {
919 type Borrowed<'a> = Self;
920 #[inline(always)]
921 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
922 *value
923 }
924 }
925
926 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ReaderError {
927 #[inline]
928 unsafe fn encode(
929 self,
930 encoder: &mut fidl::encoding::Encoder<'_, D>,
931 offset: usize,
932 _depth: fidl::encoding::Depth,
933 ) -> fidl::Result<()> {
934 encoder.debug_check_bounds::<Self>(offset);
935 encoder.write_num(self.into_primitive(), offset);
936 Ok(())
937 }
938 }
939
940 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ReaderError {
941 #[inline(always)]
942 fn new_empty() -> Self {
943 Self::Io
944 }
945
946 #[inline]
947 unsafe fn decode(
948 &mut self,
949 decoder: &mut fidl::encoding::Decoder<'_, D>,
950 offset: usize,
951 _depth: fidl::encoding::Depth,
952 ) -> fidl::Result<()> {
953 decoder.debug_check_bounds::<Self>(offset);
954 let prim = decoder.read_num::<u32>(offset);
955
956 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
957 Ok(())
958 }
959 }
960 unsafe impl fidl::encoding::TypeMarker for Severity {
961 type Owned = Self;
962
963 #[inline(always)]
964 fn inline_align(_context: fidl::encoding::Context) -> usize {
965 std::mem::align_of::<u8>()
966 }
967
968 #[inline(always)]
969 fn inline_size(_context: fidl::encoding::Context) -> usize {
970 std::mem::size_of::<u8>()
971 }
972
973 #[inline(always)]
974 fn encode_is_copy() -> bool {
975 true
976 }
977
978 #[inline(always)]
979 fn decode_is_copy() -> bool {
980 false
981 }
982 }
983
984 impl fidl::encoding::ValueTypeMarker for Severity {
985 type Borrowed<'a> = Self;
986 #[inline(always)]
987 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
988 *value
989 }
990 }
991
992 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Severity {
993 #[inline]
994 unsafe fn encode(
995 self,
996 encoder: &mut fidl::encoding::Encoder<'_, D>,
997 offset: usize,
998 _depth: fidl::encoding::Depth,
999 ) -> fidl::Result<()> {
1000 encoder.debug_check_bounds::<Self>(offset);
1001 encoder.write_num(self.into_primitive(), offset);
1002 Ok(())
1003 }
1004 }
1005
1006 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Severity {
1007 #[inline(always)]
1008 fn new_empty() -> Self {
1009 Self::Trace
1010 }
1011
1012 #[inline]
1013 unsafe fn decode(
1014 &mut self,
1015 decoder: &mut fidl::encoding::Decoder<'_, D>,
1016 offset: usize,
1017 _depth: fidl::encoding::Depth,
1018 ) -> fidl::Result<()> {
1019 decoder.debug_check_bounds::<Self>(offset);
1020 let prim = decoder.read_num::<u8>(offset);
1021
1022 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1023 Ok(())
1024 }
1025 }
1026 unsafe impl fidl::encoding::TypeMarker for StreamMode {
1027 type Owned = Self;
1028
1029 #[inline(always)]
1030 fn inline_align(_context: fidl::encoding::Context) -> usize {
1031 std::mem::align_of::<u8>()
1032 }
1033
1034 #[inline(always)]
1035 fn inline_size(_context: fidl::encoding::Context) -> usize {
1036 std::mem::size_of::<u8>()
1037 }
1038
1039 #[inline(always)]
1040 fn encode_is_copy() -> bool {
1041 true
1042 }
1043
1044 #[inline(always)]
1045 fn decode_is_copy() -> bool {
1046 false
1047 }
1048 }
1049
1050 impl fidl::encoding::ValueTypeMarker for StreamMode {
1051 type Borrowed<'a> = Self;
1052 #[inline(always)]
1053 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1054 *value
1055 }
1056 }
1057
1058 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamMode {
1059 #[inline]
1060 unsafe fn encode(
1061 self,
1062 encoder: &mut fidl::encoding::Encoder<'_, D>,
1063 offset: usize,
1064 _depth: fidl::encoding::Depth,
1065 ) -> fidl::Result<()> {
1066 encoder.debug_check_bounds::<Self>(offset);
1067 encoder.write_num(self.into_primitive(), offset);
1068 Ok(())
1069 }
1070 }
1071
1072 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamMode {
1073 #[inline(always)]
1074 fn new_empty() -> Self {
1075 Self::Snapshot
1076 }
1077
1078 #[inline]
1079 unsafe fn decode(
1080 &mut self,
1081 decoder: &mut fidl::encoding::Decoder<'_, D>,
1082 offset: usize,
1083 _depth: fidl::encoding::Depth,
1084 ) -> fidl::Result<()> {
1085 decoder.debug_check_bounds::<Self>(offset);
1086 let prim = decoder.read_num::<u8>(offset);
1087
1088 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1089 Ok(())
1090 }
1091 }
1092
1093 impl fidl::encoding::ValueTypeMarker for All {
1094 type Borrowed<'a> = &'a Self;
1095 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1096 value
1097 }
1098 }
1099
1100 unsafe impl fidl::encoding::TypeMarker for All {
1101 type Owned = Self;
1102
1103 #[inline(always)]
1104 fn inline_align(_context: fidl::encoding::Context) -> usize {
1105 1
1106 }
1107
1108 #[inline(always)]
1109 fn inline_size(_context: fidl::encoding::Context) -> usize {
1110 1
1111 }
1112 }
1113
1114 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<All, D> for &All {
1115 #[inline]
1116 unsafe fn encode(
1117 self,
1118 encoder: &mut fidl::encoding::Encoder<'_, D>,
1119 offset: usize,
1120 _depth: fidl::encoding::Depth,
1121 ) -> fidl::Result<()> {
1122 encoder.debug_check_bounds::<All>(offset);
1123 encoder.write_num(0u8, offset);
1124 Ok(())
1125 }
1126 }
1127
1128 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for All {
1129 #[inline(always)]
1130 fn new_empty() -> Self {
1131 Self
1132 }
1133
1134 #[inline]
1135 unsafe fn decode(
1136 &mut self,
1137 decoder: &mut fidl::encoding::Decoder<'_, D>,
1138 offset: usize,
1139 _depth: fidl::encoding::Depth,
1140 ) -> fidl::Result<()> {
1141 decoder.debug_check_bounds::<Self>(offset);
1142 match decoder.read_num::<u8>(offset) {
1143 0 => Ok(()),
1144 _ => Err(fidl::Error::Invalid),
1145 }
1146 }
1147 }
1148
1149 impl fidl::encoding::ValueTypeMarker for LogInterestSelector {
1150 type Borrowed<'a> = &'a Self;
1151 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1152 value
1153 }
1154 }
1155
1156 unsafe impl fidl::encoding::TypeMarker for LogInterestSelector {
1157 type Owned = Self;
1158
1159 #[inline(always)]
1160 fn inline_align(_context: fidl::encoding::Context) -> usize {
1161 8
1162 }
1163
1164 #[inline(always)]
1165 fn inline_size(_context: fidl::encoding::Context) -> usize {
1166 32
1167 }
1168 }
1169
1170 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogInterestSelector, D>
1171 for &LogInterestSelector
1172 {
1173 #[inline]
1174 unsafe fn encode(
1175 self,
1176 encoder: &mut fidl::encoding::Encoder<'_, D>,
1177 offset: usize,
1178 _depth: fidl::encoding::Depth,
1179 ) -> fidl::Result<()> {
1180 encoder.debug_check_bounds::<LogInterestSelector>(offset);
1181 fidl::encoding::Encode::<LogInterestSelector, D>::encode(
1183 (
1184 <ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.selector),
1185 <fidl_fuchsia_diagnostics_types::Interest as fidl::encoding::ValueTypeMarker>::borrow(&self.interest),
1186 ),
1187 encoder, offset, _depth
1188 )
1189 }
1190 }
1191 unsafe impl<
1192 D: fidl::encoding::ResourceDialect,
1193 T0: fidl::encoding::Encode<ComponentSelector, D>,
1194 T1: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types::Interest, D>,
1195 > fidl::encoding::Encode<LogInterestSelector, D> for (T0, T1)
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 self.0.encode(encoder, offset + 0, depth)?;
1209 self.1.encode(encoder, offset + 16, depth)?;
1210 Ok(())
1211 }
1212 }
1213
1214 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogInterestSelector {
1215 #[inline(always)]
1216 fn new_empty() -> Self {
1217 Self {
1218 selector: fidl::new_empty!(ComponentSelector, D),
1219 interest: fidl::new_empty!(fidl_fuchsia_diagnostics_types::Interest, D),
1220 }
1221 }
1222
1223 #[inline]
1224 unsafe fn decode(
1225 &mut self,
1226 decoder: &mut fidl::encoding::Decoder<'_, D>,
1227 offset: usize,
1228 _depth: fidl::encoding::Depth,
1229 ) -> fidl::Result<()> {
1230 decoder.debug_check_bounds::<Self>(offset);
1231 fidl::decode!(ComponentSelector, D, &mut self.selector, decoder, offset + 0, _depth)?;
1233 fidl::decode!(
1234 fidl_fuchsia_diagnostics_types::Interest,
1235 D,
1236 &mut self.interest,
1237 decoder,
1238 offset + 16,
1239 _depth
1240 )?;
1241 Ok(())
1242 }
1243 }
1244
1245 impl fidl::encoding::ValueTypeMarker for LogSettingsRegisterInterestRequest {
1246 type Borrowed<'a> = &'a Self;
1247 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1248 value
1249 }
1250 }
1251
1252 unsafe impl fidl::encoding::TypeMarker for LogSettingsRegisterInterestRequest {
1253 type Owned = Self;
1254
1255 #[inline(always)]
1256 fn inline_align(_context: fidl::encoding::Context) -> usize {
1257 8
1258 }
1259
1260 #[inline(always)]
1261 fn inline_size(_context: fidl::encoding::Context) -> usize {
1262 16
1263 }
1264 }
1265
1266 unsafe impl<D: fidl::encoding::ResourceDialect>
1267 fidl::encoding::Encode<LogSettingsRegisterInterestRequest, D>
1268 for &LogSettingsRegisterInterestRequest
1269 {
1270 #[inline]
1271 unsafe fn encode(
1272 self,
1273 encoder: &mut fidl::encoding::Encoder<'_, D>,
1274 offset: usize,
1275 _depth: fidl::encoding::Depth,
1276 ) -> fidl::Result<()> {
1277 encoder.debug_check_bounds::<LogSettingsRegisterInterestRequest>(offset);
1278 fidl::encoding::Encode::<LogSettingsRegisterInterestRequest, D>::encode(
1280 (
1281 <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.selectors),
1282 ),
1283 encoder, offset, _depth
1284 )
1285 }
1286 }
1287 unsafe impl<
1288 D: fidl::encoding::ResourceDialect,
1289 T0: fidl::encoding::Encode<fidl::encoding::Vector<LogInterestSelector, 64>, D>,
1290 > fidl::encoding::Encode<LogSettingsRegisterInterestRequest, D> for (T0,)
1291 {
1292 #[inline]
1293 unsafe fn encode(
1294 self,
1295 encoder: &mut fidl::encoding::Encoder<'_, D>,
1296 offset: usize,
1297 depth: fidl::encoding::Depth,
1298 ) -> fidl::Result<()> {
1299 encoder.debug_check_bounds::<LogSettingsRegisterInterestRequest>(offset);
1300 self.0.encode(encoder, offset + 0, depth)?;
1304 Ok(())
1305 }
1306 }
1307
1308 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1309 for LogSettingsRegisterInterestRequest
1310 {
1311 #[inline(always)]
1312 fn new_empty() -> Self {
1313 Self { selectors: fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D) }
1314 }
1315
1316 #[inline]
1317 unsafe fn decode(
1318 &mut self,
1319 decoder: &mut fidl::encoding::Decoder<'_, D>,
1320 offset: usize,
1321 _depth: fidl::encoding::Depth,
1322 ) -> fidl::Result<()> {
1323 decoder.debug_check_bounds::<Self>(offset);
1324 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, &mut self.selectors, decoder, offset + 0, _depth)?;
1326 Ok(())
1327 }
1328 }
1329
1330 impl fidl::encoding::ValueTypeMarker for LogSettingsSetInterestRequest {
1331 type Borrowed<'a> = &'a Self;
1332 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1333 value
1334 }
1335 }
1336
1337 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetInterestRequest {
1338 type Owned = Self;
1339
1340 #[inline(always)]
1341 fn inline_align(_context: fidl::encoding::Context) -> usize {
1342 8
1343 }
1344
1345 #[inline(always)]
1346 fn inline_size(_context: fidl::encoding::Context) -> usize {
1347 16
1348 }
1349 }
1350
1351 unsafe impl<D: fidl::encoding::ResourceDialect>
1352 fidl::encoding::Encode<LogSettingsSetInterestRequest, D>
1353 for &LogSettingsSetInterestRequest
1354 {
1355 #[inline]
1356 unsafe fn encode(
1357 self,
1358 encoder: &mut fidl::encoding::Encoder<'_, D>,
1359 offset: usize,
1360 _depth: fidl::encoding::Depth,
1361 ) -> fidl::Result<()> {
1362 encoder.debug_check_bounds::<LogSettingsSetInterestRequest>(offset);
1363 fidl::encoding::Encode::<LogSettingsSetInterestRequest, D>::encode(
1365 (
1366 <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.selectors),
1367 ),
1368 encoder, offset, _depth
1369 )
1370 }
1371 }
1372 unsafe impl<
1373 D: fidl::encoding::ResourceDialect,
1374 T0: fidl::encoding::Encode<fidl::encoding::Vector<LogInterestSelector, 64>, D>,
1375 > fidl::encoding::Encode<LogSettingsSetInterestRequest, D> for (T0,)
1376 {
1377 #[inline]
1378 unsafe fn encode(
1379 self,
1380 encoder: &mut fidl::encoding::Encoder<'_, D>,
1381 offset: usize,
1382 depth: fidl::encoding::Depth,
1383 ) -> fidl::Result<()> {
1384 encoder.debug_check_bounds::<LogSettingsSetInterestRequest>(offset);
1385 self.0.encode(encoder, offset + 0, depth)?;
1389 Ok(())
1390 }
1391 }
1392
1393 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1394 for LogSettingsSetInterestRequest
1395 {
1396 #[inline(always)]
1397 fn new_empty() -> Self {
1398 Self { selectors: fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D) }
1399 }
1400
1401 #[inline]
1402 unsafe fn decode(
1403 &mut self,
1404 decoder: &mut fidl::encoding::Decoder<'_, D>,
1405 offset: usize,
1406 _depth: fidl::encoding::Depth,
1407 ) -> fidl::Result<()> {
1408 decoder.debug_check_bounds::<Self>(offset);
1409 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, &mut self.selectors, decoder, offset + 0, _depth)?;
1411 Ok(())
1412 }
1413 }
1414
1415 impl fidl::encoding::ValueTypeMarker for PropertySelector {
1416 type Borrowed<'a> = &'a Self;
1417 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1418 value
1419 }
1420 }
1421
1422 unsafe impl fidl::encoding::TypeMarker for PropertySelector {
1423 type Owned = Self;
1424
1425 #[inline(always)]
1426 fn inline_align(_context: fidl::encoding::Context) -> usize {
1427 8
1428 }
1429
1430 #[inline(always)]
1431 fn inline_size(_context: fidl::encoding::Context) -> usize {
1432 32
1433 }
1434 }
1435
1436 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PropertySelector, D>
1437 for &PropertySelector
1438 {
1439 #[inline]
1440 unsafe fn encode(
1441 self,
1442 encoder: &mut fidl::encoding::Encoder<'_, D>,
1443 offset: usize,
1444 _depth: fidl::encoding::Depth,
1445 ) -> fidl::Result<()> {
1446 encoder.debug_check_bounds::<PropertySelector>(offset);
1447 fidl::encoding::Encode::<PropertySelector, D>::encode(
1449 (
1450 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1451 <StringSelector as fidl::encoding::ValueTypeMarker>::borrow(&self.target_properties),
1452 ),
1453 encoder, offset, _depth
1454 )
1455 }
1456 }
1457 unsafe impl<
1458 D: fidl::encoding::ResourceDialect,
1459 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1460 T1: fidl::encoding::Encode<StringSelector, D>,
1461 > fidl::encoding::Encode<PropertySelector, D> for (T0, T1)
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 self.0.encode(encoder, offset + 0, depth)?;
1475 self.1.encode(encoder, offset + 16, depth)?;
1476 Ok(())
1477 }
1478 }
1479
1480 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PropertySelector {
1481 #[inline(always)]
1482 fn new_empty() -> Self {
1483 Self {
1484 node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D),
1485 target_properties: fidl::new_empty!(StringSelector, D),
1486 }
1487 }
1488
1489 #[inline]
1490 unsafe fn decode(
1491 &mut self,
1492 decoder: &mut fidl::encoding::Decoder<'_, D>,
1493 offset: usize,
1494 _depth: fidl::encoding::Depth,
1495 ) -> fidl::Result<()> {
1496 decoder.debug_check_bounds::<Self>(offset);
1497 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1499 fidl::decode!(
1500 StringSelector,
1501 D,
1502 &mut self.target_properties,
1503 decoder,
1504 offset + 16,
1505 _depth
1506 )?;
1507 Ok(())
1508 }
1509 }
1510
1511 impl fidl::encoding::ValueTypeMarker for SubtreeSelector {
1512 type Borrowed<'a> = &'a Self;
1513 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1514 value
1515 }
1516 }
1517
1518 unsafe impl fidl::encoding::TypeMarker for SubtreeSelector {
1519 type Owned = Self;
1520
1521 #[inline(always)]
1522 fn inline_align(_context: fidl::encoding::Context) -> usize {
1523 8
1524 }
1525
1526 #[inline(always)]
1527 fn inline_size(_context: fidl::encoding::Context) -> usize {
1528 16
1529 }
1530 }
1531
1532 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubtreeSelector, D>
1533 for &SubtreeSelector
1534 {
1535 #[inline]
1536 unsafe fn encode(
1537 self,
1538 encoder: &mut fidl::encoding::Encoder<'_, D>,
1539 offset: usize,
1540 _depth: fidl::encoding::Depth,
1541 ) -> fidl::Result<()> {
1542 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1543 fidl::encoding::Encode::<SubtreeSelector, D>::encode(
1545 (
1546 <fidl::encoding::Vector<StringSelector, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.node_path),
1547 ),
1548 encoder, offset, _depth
1549 )
1550 }
1551 }
1552 unsafe impl<
1553 D: fidl::encoding::ResourceDialect,
1554 T0: fidl::encoding::Encode<fidl::encoding::Vector<StringSelector, 100>, D>,
1555 > fidl::encoding::Encode<SubtreeSelector, D> for (T0,)
1556 {
1557 #[inline]
1558 unsafe fn encode(
1559 self,
1560 encoder: &mut fidl::encoding::Encoder<'_, D>,
1561 offset: usize,
1562 depth: fidl::encoding::Depth,
1563 ) -> fidl::Result<()> {
1564 encoder.debug_check_bounds::<SubtreeSelector>(offset);
1565 self.0.encode(encoder, offset + 0, depth)?;
1569 Ok(())
1570 }
1571 }
1572
1573 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubtreeSelector {
1574 #[inline(always)]
1575 fn new_empty() -> Self {
1576 Self { node_path: fidl::new_empty!(fidl::encoding::Vector<StringSelector, 100>, D) }
1577 }
1578
1579 #[inline]
1580 unsafe fn decode(
1581 &mut self,
1582 decoder: &mut fidl::encoding::Decoder<'_, D>,
1583 offset: usize,
1584 _depth: fidl::encoding::Depth,
1585 ) -> fidl::Result<()> {
1586 decoder.debug_check_bounds::<Self>(offset);
1587 fidl::decode!(fidl::encoding::Vector<StringSelector, 100>, D, &mut self.node_path, decoder, offset + 0, _depth)?;
1589 Ok(())
1590 }
1591 }
1592
1593 impl ComponentSelector {
1594 #[inline(always)]
1595 fn max_ordinal_present(&self) -> u64 {
1596 if let Some(_) = self.moniker_segments {
1597 return 1;
1598 }
1599 0
1600 }
1601 }
1602
1603 impl fidl::encoding::ValueTypeMarker for ComponentSelector {
1604 type Borrowed<'a> = &'a Self;
1605 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1606 value
1607 }
1608 }
1609
1610 unsafe impl fidl::encoding::TypeMarker for ComponentSelector {
1611 type Owned = Self;
1612
1613 #[inline(always)]
1614 fn inline_align(_context: fidl::encoding::Context) -> usize {
1615 8
1616 }
1617
1618 #[inline(always)]
1619 fn inline_size(_context: fidl::encoding::Context) -> usize {
1620 16
1621 }
1622 }
1623
1624 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentSelector, D>
1625 for &ComponentSelector
1626 {
1627 unsafe fn encode(
1628 self,
1629 encoder: &mut fidl::encoding::Encoder<'_, D>,
1630 offset: usize,
1631 mut depth: fidl::encoding::Depth,
1632 ) -> fidl::Result<()> {
1633 encoder.debug_check_bounds::<ComponentSelector>(offset);
1634 let max_ordinal: u64 = self.max_ordinal_present();
1636 encoder.write_num(max_ordinal, offset);
1637 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1638 if max_ordinal == 0 {
1640 return Ok(());
1641 }
1642 depth.increment()?;
1643 let envelope_size = 8;
1644 let bytes_len = max_ordinal as usize * envelope_size;
1645 #[allow(unused_variables)]
1646 let offset = encoder.out_of_line_offset(bytes_len);
1647 let mut _prev_end_offset: usize = 0;
1648 if 1 > max_ordinal {
1649 return Ok(());
1650 }
1651
1652 let cur_offset: usize = (1 - 1) * envelope_size;
1655
1656 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1658
1659 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<StringSelector, 25>, D>(
1664 self.moniker_segments.as_ref().map(<fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::ValueTypeMarker>::borrow),
1665 encoder, offset + cur_offset, depth
1666 )?;
1667
1668 _prev_end_offset = cur_offset + envelope_size;
1669
1670 Ok(())
1671 }
1672 }
1673
1674 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentSelector {
1675 #[inline(always)]
1676 fn new_empty() -> Self {
1677 Self::default()
1678 }
1679
1680 unsafe fn decode(
1681 &mut self,
1682 decoder: &mut fidl::encoding::Decoder<'_, D>,
1683 offset: usize,
1684 mut depth: fidl::encoding::Depth,
1685 ) -> fidl::Result<()> {
1686 decoder.debug_check_bounds::<Self>(offset);
1687 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1688 None => return Err(fidl::Error::NotNullable),
1689 Some(len) => len,
1690 };
1691 if len == 0 {
1693 return Ok(());
1694 };
1695 depth.increment()?;
1696 let envelope_size = 8;
1697 let bytes_len = len * envelope_size;
1698 let offset = decoder.out_of_line_offset(bytes_len)?;
1699 let mut _next_ordinal_to_read = 0;
1701 let mut next_offset = offset;
1702 let end_offset = offset + bytes_len;
1703 _next_ordinal_to_read += 1;
1704 if next_offset >= end_offset {
1705 return Ok(());
1706 }
1707
1708 while _next_ordinal_to_read < 1 {
1710 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1711 _next_ordinal_to_read += 1;
1712 next_offset += envelope_size;
1713 }
1714
1715 let next_out_of_line = decoder.next_out_of_line();
1716 let handles_before = decoder.remaining_handles();
1717 if let Some((inlined, num_bytes, num_handles)) =
1718 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1719 {
1720 let member_inline_size = <fidl::encoding::Vector<StringSelector, 25> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1721 if inlined != (member_inline_size <= 4) {
1722 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1723 }
1724 let inner_offset;
1725 let mut inner_depth = depth.clone();
1726 if inlined {
1727 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1728 inner_offset = next_offset;
1729 } else {
1730 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1731 inner_depth.increment()?;
1732 }
1733 let val_ref = self.moniker_segments.get_or_insert_with(
1734 || fidl::new_empty!(fidl::encoding::Vector<StringSelector, 25>, D),
1735 );
1736 fidl::decode!(fidl::encoding::Vector<StringSelector, 25>, D, val_ref, decoder, inner_offset, inner_depth)?;
1737 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1738 {
1739 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1740 }
1741 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1742 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1743 }
1744 }
1745
1746 next_offset += envelope_size;
1747
1748 while next_offset < end_offset {
1750 _next_ordinal_to_read += 1;
1751 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1752 next_offset += envelope_size;
1753 }
1754
1755 Ok(())
1756 }
1757 }
1758
1759 impl Interest {
1760 #[inline(always)]
1761 fn max_ordinal_present(&self) -> u64 {
1762 if let Some(_) = self.min_severity {
1763 return 1;
1764 }
1765 0
1766 }
1767 }
1768
1769 impl fidl::encoding::ValueTypeMarker for Interest {
1770 type Borrowed<'a> = &'a Self;
1771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1772 value
1773 }
1774 }
1775
1776 unsafe impl fidl::encoding::TypeMarker for Interest {
1777 type Owned = Self;
1778
1779 #[inline(always)]
1780 fn inline_align(_context: fidl::encoding::Context) -> usize {
1781 8
1782 }
1783
1784 #[inline(always)]
1785 fn inline_size(_context: fidl::encoding::Context) -> usize {
1786 16
1787 }
1788 }
1789
1790 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Interest, D> for &Interest {
1791 unsafe fn encode(
1792 self,
1793 encoder: &mut fidl::encoding::Encoder<'_, D>,
1794 offset: usize,
1795 mut depth: fidl::encoding::Depth,
1796 ) -> fidl::Result<()> {
1797 encoder.debug_check_bounds::<Interest>(offset);
1798 let max_ordinal: u64 = self.max_ordinal_present();
1800 encoder.write_num(max_ordinal, offset);
1801 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1802 if max_ordinal == 0 {
1804 return Ok(());
1805 }
1806 depth.increment()?;
1807 let envelope_size = 8;
1808 let bytes_len = max_ordinal as usize * envelope_size;
1809 #[allow(unused_variables)]
1810 let offset = encoder.out_of_line_offset(bytes_len);
1811 let mut _prev_end_offset: usize = 0;
1812 if 1 > max_ordinal {
1813 return Ok(());
1814 }
1815
1816 let cur_offset: usize = (1 - 1) * envelope_size;
1819
1820 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1822
1823 fidl::encoding::encode_in_envelope_optional::<Severity, D>(
1828 self.min_severity
1829 .as_ref()
1830 .map(<Severity as fidl::encoding::ValueTypeMarker>::borrow),
1831 encoder,
1832 offset + cur_offset,
1833 depth,
1834 )?;
1835
1836 _prev_end_offset = cur_offset + envelope_size;
1837
1838 Ok(())
1839 }
1840 }
1841
1842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Interest {
1843 #[inline(always)]
1844 fn new_empty() -> Self {
1845 Self::default()
1846 }
1847
1848 unsafe fn decode(
1849 &mut self,
1850 decoder: &mut fidl::encoding::Decoder<'_, D>,
1851 offset: usize,
1852 mut depth: fidl::encoding::Depth,
1853 ) -> fidl::Result<()> {
1854 decoder.debug_check_bounds::<Self>(offset);
1855 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1856 None => return Err(fidl::Error::NotNullable),
1857 Some(len) => len,
1858 };
1859 if len == 0 {
1861 return Ok(());
1862 };
1863 depth.increment()?;
1864 let envelope_size = 8;
1865 let bytes_len = len * envelope_size;
1866 let offset = decoder.out_of_line_offset(bytes_len)?;
1867 let mut _next_ordinal_to_read = 0;
1869 let mut next_offset = offset;
1870 let end_offset = offset + bytes_len;
1871 _next_ordinal_to_read += 1;
1872 if next_offset >= end_offset {
1873 return Ok(());
1874 }
1875
1876 while _next_ordinal_to_read < 1 {
1878 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1879 _next_ordinal_to_read += 1;
1880 next_offset += envelope_size;
1881 }
1882
1883 let next_out_of_line = decoder.next_out_of_line();
1884 let handles_before = decoder.remaining_handles();
1885 if let Some((inlined, num_bytes, num_handles)) =
1886 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1887 {
1888 let member_inline_size =
1889 <Severity as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1890 if inlined != (member_inline_size <= 4) {
1891 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1892 }
1893 let inner_offset;
1894 let mut inner_depth = depth.clone();
1895 if inlined {
1896 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1897 inner_offset = next_offset;
1898 } else {
1899 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1900 inner_depth.increment()?;
1901 }
1902 let val_ref =
1903 self.min_severity.get_or_insert_with(|| fidl::new_empty!(Severity, D));
1904 fidl::decode!(Severity, D, val_ref, decoder, inner_offset, inner_depth)?;
1905 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1906 {
1907 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1908 }
1909 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1910 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1911 }
1912 }
1913
1914 next_offset += envelope_size;
1915
1916 while next_offset < end_offset {
1918 _next_ordinal_to_read += 1;
1919 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1920 next_offset += envelope_size;
1921 }
1922
1923 Ok(())
1924 }
1925 }
1926
1927 impl LogSettingsSetComponentInterestRequest {
1928 #[inline(always)]
1929 fn max_ordinal_present(&self) -> u64 {
1930 if let Some(_) = self.persist {
1931 return 2;
1932 }
1933 if let Some(_) = self.selectors {
1934 return 1;
1935 }
1936 0
1937 }
1938 }
1939
1940 impl fidl::encoding::ValueTypeMarker for LogSettingsSetComponentInterestRequest {
1941 type Borrowed<'a> = &'a Self;
1942 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1943 value
1944 }
1945 }
1946
1947 unsafe impl fidl::encoding::TypeMarker for LogSettingsSetComponentInterestRequest {
1948 type Owned = Self;
1949
1950 #[inline(always)]
1951 fn inline_align(_context: fidl::encoding::Context) -> usize {
1952 8
1953 }
1954
1955 #[inline(always)]
1956 fn inline_size(_context: fidl::encoding::Context) -> usize {
1957 16
1958 }
1959 }
1960
1961 unsafe impl<D: fidl::encoding::ResourceDialect>
1962 fidl::encoding::Encode<LogSettingsSetComponentInterestRequest, D>
1963 for &LogSettingsSetComponentInterestRequest
1964 {
1965 unsafe fn encode(
1966 self,
1967 encoder: &mut fidl::encoding::Encoder<'_, D>,
1968 offset: usize,
1969 mut depth: fidl::encoding::Depth,
1970 ) -> fidl::Result<()> {
1971 encoder.debug_check_bounds::<LogSettingsSetComponentInterestRequest>(offset);
1972 let max_ordinal: u64 = self.max_ordinal_present();
1974 encoder.write_num(max_ordinal, offset);
1975 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1976 if max_ordinal == 0 {
1978 return Ok(());
1979 }
1980 depth.increment()?;
1981 let envelope_size = 8;
1982 let bytes_len = max_ordinal as usize * envelope_size;
1983 #[allow(unused_variables)]
1984 let offset = encoder.out_of_line_offset(bytes_len);
1985 let mut _prev_end_offset: usize = 0;
1986 if 1 > max_ordinal {
1987 return Ok(());
1988 }
1989
1990 let cur_offset: usize = (1 - 1) * envelope_size;
1993
1994 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1996
1997 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<LogInterestSelector, 64>, D>(
2002 self.selectors.as_ref().map(<fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::ValueTypeMarker>::borrow),
2003 encoder, offset + cur_offset, depth
2004 )?;
2005
2006 _prev_end_offset = cur_offset + envelope_size;
2007 if 2 > max_ordinal {
2008 return Ok(());
2009 }
2010
2011 let cur_offset: usize = (2 - 1) * envelope_size;
2014
2015 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2017
2018 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2023 self.persist.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2024 encoder,
2025 offset + cur_offset,
2026 depth,
2027 )?;
2028
2029 _prev_end_offset = cur_offset + envelope_size;
2030
2031 Ok(())
2032 }
2033 }
2034
2035 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2036 for LogSettingsSetComponentInterestRequest
2037 {
2038 #[inline(always)]
2039 fn new_empty() -> Self {
2040 Self::default()
2041 }
2042
2043 unsafe fn decode(
2044 &mut self,
2045 decoder: &mut fidl::encoding::Decoder<'_, D>,
2046 offset: usize,
2047 mut depth: fidl::encoding::Depth,
2048 ) -> fidl::Result<()> {
2049 decoder.debug_check_bounds::<Self>(offset);
2050 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2051 None => return Err(fidl::Error::NotNullable),
2052 Some(len) => len,
2053 };
2054 if len == 0 {
2056 return Ok(());
2057 };
2058 depth.increment()?;
2059 let envelope_size = 8;
2060 let bytes_len = len * envelope_size;
2061 let offset = decoder.out_of_line_offset(bytes_len)?;
2062 let mut _next_ordinal_to_read = 0;
2064 let mut next_offset = offset;
2065 let end_offset = offset + bytes_len;
2066 _next_ordinal_to_read += 1;
2067 if next_offset >= end_offset {
2068 return Ok(());
2069 }
2070
2071 while _next_ordinal_to_read < 1 {
2073 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2074 _next_ordinal_to_read += 1;
2075 next_offset += envelope_size;
2076 }
2077
2078 let next_out_of_line = decoder.next_out_of_line();
2079 let handles_before = decoder.remaining_handles();
2080 if let Some((inlined, num_bytes, num_handles)) =
2081 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2082 {
2083 let member_inline_size = <fidl::encoding::Vector<LogInterestSelector, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2084 if inlined != (member_inline_size <= 4) {
2085 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2086 }
2087 let inner_offset;
2088 let mut inner_depth = depth.clone();
2089 if inlined {
2090 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2091 inner_offset = next_offset;
2092 } else {
2093 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2094 inner_depth.increment()?;
2095 }
2096 let val_ref = self.selectors.get_or_insert_with(
2097 || fidl::new_empty!(fidl::encoding::Vector<LogInterestSelector, 64>, D),
2098 );
2099 fidl::decode!(fidl::encoding::Vector<LogInterestSelector, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
2100 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2101 {
2102 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2103 }
2104 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2105 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2106 }
2107 }
2108
2109 next_offset += envelope_size;
2110 _next_ordinal_to_read += 1;
2111 if next_offset >= end_offset {
2112 return Ok(());
2113 }
2114
2115 while _next_ordinal_to_read < 2 {
2117 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2118 _next_ordinal_to_read += 1;
2119 next_offset += envelope_size;
2120 }
2121
2122 let next_out_of_line = decoder.next_out_of_line();
2123 let handles_before = decoder.remaining_handles();
2124 if let Some((inlined, num_bytes, num_handles)) =
2125 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2126 {
2127 let member_inline_size =
2128 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2129 if inlined != (member_inline_size <= 4) {
2130 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2131 }
2132 let inner_offset;
2133 let mut inner_depth = depth.clone();
2134 if inlined {
2135 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2136 inner_offset = next_offset;
2137 } else {
2138 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2139 inner_depth.increment()?;
2140 }
2141 let val_ref = self.persist.get_or_insert_with(|| fidl::new_empty!(bool, D));
2142 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2143 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2144 {
2145 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2146 }
2147 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2148 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2149 }
2150 }
2151
2152 next_offset += envelope_size;
2153
2154 while next_offset < end_offset {
2156 _next_ordinal_to_read += 1;
2157 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2158 next_offset += envelope_size;
2159 }
2160
2161 Ok(())
2162 }
2163 }
2164
2165 impl LogStreamOptions {
2166 #[inline(always)]
2167 fn max_ordinal_present(&self) -> u64 {
2168 if let Some(_) = self.include_rolled_out {
2169 return 4;
2170 }
2171 if let Some(_) = self.include_component_url {
2172 return 3;
2173 }
2174 if let Some(_) = self.include_moniker {
2175 return 2;
2176 }
2177 if let Some(_) = self.mode {
2178 return 1;
2179 }
2180 0
2181 }
2182 }
2183
2184 impl fidl::encoding::ValueTypeMarker for LogStreamOptions {
2185 type Borrowed<'a> = &'a Self;
2186 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2187 value
2188 }
2189 }
2190
2191 unsafe impl fidl::encoding::TypeMarker for LogStreamOptions {
2192 type Owned = Self;
2193
2194 #[inline(always)]
2195 fn inline_align(_context: fidl::encoding::Context) -> usize {
2196 8
2197 }
2198
2199 #[inline(always)]
2200 fn inline_size(_context: fidl::encoding::Context) -> usize {
2201 16
2202 }
2203 }
2204
2205 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LogStreamOptions, D>
2206 for &LogStreamOptions
2207 {
2208 unsafe fn encode(
2209 self,
2210 encoder: &mut fidl::encoding::Encoder<'_, D>,
2211 offset: usize,
2212 mut depth: fidl::encoding::Depth,
2213 ) -> fidl::Result<()> {
2214 encoder.debug_check_bounds::<LogStreamOptions>(offset);
2215 let max_ordinal: u64 = self.max_ordinal_present();
2217 encoder.write_num(max_ordinal, offset);
2218 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2219 if max_ordinal == 0 {
2221 return Ok(());
2222 }
2223 depth.increment()?;
2224 let envelope_size = 8;
2225 let bytes_len = max_ordinal as usize * envelope_size;
2226 #[allow(unused_variables)]
2227 let offset = encoder.out_of_line_offset(bytes_len);
2228 let mut _prev_end_offset: usize = 0;
2229 if 1 > max_ordinal {
2230 return Ok(());
2231 }
2232
2233 let cur_offset: usize = (1 - 1) * envelope_size;
2236
2237 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2239
2240 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
2245 self.mode.as_ref().map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
2246 encoder,
2247 offset + cur_offset,
2248 depth,
2249 )?;
2250
2251 _prev_end_offset = cur_offset + envelope_size;
2252 if 2 > max_ordinal {
2253 return Ok(());
2254 }
2255
2256 let cur_offset: usize = (2 - 1) * envelope_size;
2259
2260 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2262
2263 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2268 self.include_moniker
2269 .as_ref()
2270 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2271 encoder,
2272 offset + cur_offset,
2273 depth,
2274 )?;
2275
2276 _prev_end_offset = cur_offset + envelope_size;
2277 if 3 > max_ordinal {
2278 return Ok(());
2279 }
2280
2281 let cur_offset: usize = (3 - 1) * envelope_size;
2284
2285 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2287
2288 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2293 self.include_component_url
2294 .as_ref()
2295 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2296 encoder,
2297 offset + cur_offset,
2298 depth,
2299 )?;
2300
2301 _prev_end_offset = cur_offset + envelope_size;
2302 if 4 > max_ordinal {
2303 return Ok(());
2304 }
2305
2306 let cur_offset: usize = (4 - 1) * envelope_size;
2309
2310 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2312
2313 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2318 self.include_rolled_out
2319 .as_ref()
2320 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2321 encoder,
2322 offset + cur_offset,
2323 depth,
2324 )?;
2325
2326 _prev_end_offset = cur_offset + envelope_size;
2327
2328 Ok(())
2329 }
2330 }
2331
2332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogStreamOptions {
2333 #[inline(always)]
2334 fn new_empty() -> Self {
2335 Self::default()
2336 }
2337
2338 unsafe fn decode(
2339 &mut self,
2340 decoder: &mut fidl::encoding::Decoder<'_, D>,
2341 offset: usize,
2342 mut depth: fidl::encoding::Depth,
2343 ) -> fidl::Result<()> {
2344 decoder.debug_check_bounds::<Self>(offset);
2345 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2346 None => return Err(fidl::Error::NotNullable),
2347 Some(len) => len,
2348 };
2349 if len == 0 {
2351 return Ok(());
2352 };
2353 depth.increment()?;
2354 let envelope_size = 8;
2355 let bytes_len = len * envelope_size;
2356 let offset = decoder.out_of_line_offset(bytes_len)?;
2357 let mut _next_ordinal_to_read = 0;
2359 let mut next_offset = offset;
2360 let end_offset = offset + bytes_len;
2361 _next_ordinal_to_read += 1;
2362 if next_offset >= end_offset {
2363 return Ok(());
2364 }
2365
2366 while _next_ordinal_to_read < 1 {
2368 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2369 _next_ordinal_to_read += 1;
2370 next_offset += envelope_size;
2371 }
2372
2373 let next_out_of_line = decoder.next_out_of_line();
2374 let handles_before = decoder.remaining_handles();
2375 if let Some((inlined, num_bytes, num_handles)) =
2376 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2377 {
2378 let member_inline_size =
2379 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2380 if inlined != (member_inline_size <= 4) {
2381 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2382 }
2383 let inner_offset;
2384 let mut inner_depth = depth.clone();
2385 if inlined {
2386 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2387 inner_offset = next_offset;
2388 } else {
2389 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2390 inner_depth.increment()?;
2391 }
2392 let val_ref = self.mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
2393 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
2394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2395 {
2396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2397 }
2398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2400 }
2401 }
2402
2403 next_offset += envelope_size;
2404 _next_ordinal_to_read += 1;
2405 if next_offset >= end_offset {
2406 return Ok(());
2407 }
2408
2409 while _next_ordinal_to_read < 2 {
2411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2412 _next_ordinal_to_read += 1;
2413 next_offset += envelope_size;
2414 }
2415
2416 let next_out_of_line = decoder.next_out_of_line();
2417 let handles_before = decoder.remaining_handles();
2418 if let Some((inlined, num_bytes, num_handles)) =
2419 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2420 {
2421 let member_inline_size =
2422 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2423 if inlined != (member_inline_size <= 4) {
2424 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2425 }
2426 let inner_offset;
2427 let mut inner_depth = depth.clone();
2428 if inlined {
2429 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2430 inner_offset = next_offset;
2431 } else {
2432 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2433 inner_depth.increment()?;
2434 }
2435 let val_ref = self.include_moniker.get_or_insert_with(|| fidl::new_empty!(bool, D));
2436 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2438 {
2439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2440 }
2441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2443 }
2444 }
2445
2446 next_offset += envelope_size;
2447 _next_ordinal_to_read += 1;
2448 if next_offset >= end_offset {
2449 return Ok(());
2450 }
2451
2452 while _next_ordinal_to_read < 3 {
2454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2455 _next_ordinal_to_read += 1;
2456 next_offset += envelope_size;
2457 }
2458
2459 let next_out_of_line = decoder.next_out_of_line();
2460 let handles_before = decoder.remaining_handles();
2461 if let Some((inlined, num_bytes, num_handles)) =
2462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2463 {
2464 let member_inline_size =
2465 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2466 if inlined != (member_inline_size <= 4) {
2467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2468 }
2469 let inner_offset;
2470 let mut inner_depth = depth.clone();
2471 if inlined {
2472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2473 inner_offset = next_offset;
2474 } else {
2475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2476 inner_depth.increment()?;
2477 }
2478 let val_ref =
2479 self.include_component_url.get_or_insert_with(|| fidl::new_empty!(bool, D));
2480 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2482 {
2483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2484 }
2485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2487 }
2488 }
2489
2490 next_offset += envelope_size;
2491 _next_ordinal_to_read += 1;
2492 if next_offset >= end_offset {
2493 return Ok(());
2494 }
2495
2496 while _next_ordinal_to_read < 4 {
2498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2499 _next_ordinal_to_read += 1;
2500 next_offset += envelope_size;
2501 }
2502
2503 let next_out_of_line = decoder.next_out_of_line();
2504 let handles_before = decoder.remaining_handles();
2505 if let Some((inlined, num_bytes, num_handles)) =
2506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2507 {
2508 let member_inline_size =
2509 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2510 if inlined != (member_inline_size <= 4) {
2511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2512 }
2513 let inner_offset;
2514 let mut inner_depth = depth.clone();
2515 if inlined {
2516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2517 inner_offset = next_offset;
2518 } else {
2519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2520 inner_depth.increment()?;
2521 }
2522 let val_ref =
2523 self.include_rolled_out.get_or_insert_with(|| fidl::new_empty!(bool, D));
2524 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2525 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2526 {
2527 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2528 }
2529 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2530 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2531 }
2532 }
2533
2534 next_offset += envelope_size;
2535
2536 while next_offset < end_offset {
2538 _next_ordinal_to_read += 1;
2539 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2540 next_offset += envelope_size;
2541 }
2542
2543 Ok(())
2544 }
2545 }
2546
2547 impl PerformanceConfiguration {
2548 #[inline(always)]
2549 fn max_ordinal_present(&self) -> u64 {
2550 if let Some(_) = self.batch_retrieval_timeout_seconds {
2551 return 2;
2552 }
2553 if let Some(_) = self.max_aggregate_content_size_bytes {
2554 return 1;
2555 }
2556 0
2557 }
2558 }
2559
2560 impl fidl::encoding::ValueTypeMarker for PerformanceConfiguration {
2561 type Borrowed<'a> = &'a Self;
2562 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2563 value
2564 }
2565 }
2566
2567 unsafe impl fidl::encoding::TypeMarker for PerformanceConfiguration {
2568 type Owned = Self;
2569
2570 #[inline(always)]
2571 fn inline_align(_context: fidl::encoding::Context) -> usize {
2572 8
2573 }
2574
2575 #[inline(always)]
2576 fn inline_size(_context: fidl::encoding::Context) -> usize {
2577 16
2578 }
2579 }
2580
2581 unsafe impl<D: fidl::encoding::ResourceDialect>
2582 fidl::encoding::Encode<PerformanceConfiguration, D> for &PerformanceConfiguration
2583 {
2584 unsafe fn encode(
2585 self,
2586 encoder: &mut fidl::encoding::Encoder<'_, D>,
2587 offset: usize,
2588 mut depth: fidl::encoding::Depth,
2589 ) -> fidl::Result<()> {
2590 encoder.debug_check_bounds::<PerformanceConfiguration>(offset);
2591 let max_ordinal: u64 = self.max_ordinal_present();
2593 encoder.write_num(max_ordinal, offset);
2594 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2595 if max_ordinal == 0 {
2597 return Ok(());
2598 }
2599 depth.increment()?;
2600 let envelope_size = 8;
2601 let bytes_len = max_ordinal as usize * envelope_size;
2602 #[allow(unused_variables)]
2603 let offset = encoder.out_of_line_offset(bytes_len);
2604 let mut _prev_end_offset: usize = 0;
2605 if 1 > max_ordinal {
2606 return Ok(());
2607 }
2608
2609 let cur_offset: usize = (1 - 1) * envelope_size;
2612
2613 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2615
2616 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2621 self.max_aggregate_content_size_bytes
2622 .as_ref()
2623 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2624 encoder,
2625 offset + cur_offset,
2626 depth,
2627 )?;
2628
2629 _prev_end_offset = cur_offset + envelope_size;
2630 if 2 > max_ordinal {
2631 return Ok(());
2632 }
2633
2634 let cur_offset: usize = (2 - 1) * envelope_size;
2637
2638 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2640
2641 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2646 self.batch_retrieval_timeout_seconds
2647 .as_ref()
2648 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2649 encoder,
2650 offset + cur_offset,
2651 depth,
2652 )?;
2653
2654 _prev_end_offset = cur_offset + envelope_size;
2655
2656 Ok(())
2657 }
2658 }
2659
2660 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2661 for PerformanceConfiguration
2662 {
2663 #[inline(always)]
2664 fn new_empty() -> Self {
2665 Self::default()
2666 }
2667
2668 unsafe fn decode(
2669 &mut self,
2670 decoder: &mut fidl::encoding::Decoder<'_, D>,
2671 offset: usize,
2672 mut depth: fidl::encoding::Depth,
2673 ) -> fidl::Result<()> {
2674 decoder.debug_check_bounds::<Self>(offset);
2675 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2676 None => return Err(fidl::Error::NotNullable),
2677 Some(len) => len,
2678 };
2679 if len == 0 {
2681 return Ok(());
2682 };
2683 depth.increment()?;
2684 let envelope_size = 8;
2685 let bytes_len = len * envelope_size;
2686 let offset = decoder.out_of_line_offset(bytes_len)?;
2687 let mut _next_ordinal_to_read = 0;
2689 let mut next_offset = offset;
2690 let end_offset = offset + bytes_len;
2691 _next_ordinal_to_read += 1;
2692 if next_offset >= end_offset {
2693 return Ok(());
2694 }
2695
2696 while _next_ordinal_to_read < 1 {
2698 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2699 _next_ordinal_to_read += 1;
2700 next_offset += envelope_size;
2701 }
2702
2703 let next_out_of_line = decoder.next_out_of_line();
2704 let handles_before = decoder.remaining_handles();
2705 if let Some((inlined, num_bytes, num_handles)) =
2706 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2707 {
2708 let member_inline_size =
2709 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2710 if inlined != (member_inline_size <= 4) {
2711 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2712 }
2713 let inner_offset;
2714 let mut inner_depth = depth.clone();
2715 if inlined {
2716 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2717 inner_offset = next_offset;
2718 } else {
2719 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2720 inner_depth.increment()?;
2721 }
2722 let val_ref = self
2723 .max_aggregate_content_size_bytes
2724 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2725 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2727 {
2728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2729 }
2730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2732 }
2733 }
2734
2735 next_offset += envelope_size;
2736 _next_ordinal_to_read += 1;
2737 if next_offset >= end_offset {
2738 return Ok(());
2739 }
2740
2741 while _next_ordinal_to_read < 2 {
2743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2744 _next_ordinal_to_read += 1;
2745 next_offset += envelope_size;
2746 }
2747
2748 let next_out_of_line = decoder.next_out_of_line();
2749 let handles_before = decoder.remaining_handles();
2750 if let Some((inlined, num_bytes, num_handles)) =
2751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2752 {
2753 let member_inline_size =
2754 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2755 if inlined != (member_inline_size <= 4) {
2756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2757 }
2758 let inner_offset;
2759 let mut inner_depth = depth.clone();
2760 if inlined {
2761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2762 inner_offset = next_offset;
2763 } else {
2764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2765 inner_depth.increment()?;
2766 }
2767 let val_ref = self
2768 .batch_retrieval_timeout_seconds
2769 .get_or_insert_with(|| fidl::new_empty!(i64, D));
2770 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2772 {
2773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2774 }
2775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2777 }
2778 }
2779
2780 next_offset += envelope_size;
2781
2782 while next_offset < end_offset {
2784 _next_ordinal_to_read += 1;
2785 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2786 next_offset += envelope_size;
2787 }
2788
2789 Ok(())
2790 }
2791 }
2792
2793 impl Selector {
2794 #[inline(always)]
2795 fn max_ordinal_present(&self) -> u64 {
2796 if let Some(_) = self.tree_names {
2797 return 3;
2798 }
2799 if let Some(_) = self.tree_selector {
2800 return 2;
2801 }
2802 if let Some(_) = self.component_selector {
2803 return 1;
2804 }
2805 0
2806 }
2807 }
2808
2809 impl fidl::encoding::ValueTypeMarker for Selector {
2810 type Borrowed<'a> = &'a Self;
2811 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2812 value
2813 }
2814 }
2815
2816 unsafe impl fidl::encoding::TypeMarker for Selector {
2817 type Owned = Self;
2818
2819 #[inline(always)]
2820 fn inline_align(_context: fidl::encoding::Context) -> usize {
2821 8
2822 }
2823
2824 #[inline(always)]
2825 fn inline_size(_context: fidl::encoding::Context) -> usize {
2826 16
2827 }
2828 }
2829
2830 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Selector, D> for &Selector {
2831 unsafe fn encode(
2832 self,
2833 encoder: &mut fidl::encoding::Encoder<'_, D>,
2834 offset: usize,
2835 mut depth: fidl::encoding::Depth,
2836 ) -> fidl::Result<()> {
2837 encoder.debug_check_bounds::<Selector>(offset);
2838 let max_ordinal: u64 = self.max_ordinal_present();
2840 encoder.write_num(max_ordinal, offset);
2841 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2842 if max_ordinal == 0 {
2844 return Ok(());
2845 }
2846 depth.increment()?;
2847 let envelope_size = 8;
2848 let bytes_len = max_ordinal as usize * envelope_size;
2849 #[allow(unused_variables)]
2850 let offset = encoder.out_of_line_offset(bytes_len);
2851 let mut _prev_end_offset: usize = 0;
2852 if 1 > max_ordinal {
2853 return Ok(());
2854 }
2855
2856 let cur_offset: usize = (1 - 1) * envelope_size;
2859
2860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2862
2863 fidl::encoding::encode_in_envelope_optional::<ComponentSelector, D>(
2868 self.component_selector
2869 .as_ref()
2870 .map(<ComponentSelector as fidl::encoding::ValueTypeMarker>::borrow),
2871 encoder,
2872 offset + cur_offset,
2873 depth,
2874 )?;
2875
2876 _prev_end_offset = cur_offset + envelope_size;
2877 if 2 > max_ordinal {
2878 return Ok(());
2879 }
2880
2881 let cur_offset: usize = (2 - 1) * envelope_size;
2884
2885 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2887
2888 fidl::encoding::encode_in_envelope_optional::<TreeSelector, D>(
2893 self.tree_selector
2894 .as_ref()
2895 .map(<TreeSelector as fidl::encoding::ValueTypeMarker>::borrow),
2896 encoder,
2897 offset + cur_offset,
2898 depth,
2899 )?;
2900
2901 _prev_end_offset = cur_offset + envelope_size;
2902 if 3 > max_ordinal {
2903 return Ok(());
2904 }
2905
2906 let cur_offset: usize = (3 - 1) * envelope_size;
2909
2910 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2912
2913 fidl::encoding::encode_in_envelope_optional::<TreeNames, D>(
2918 self.tree_names
2919 .as_ref()
2920 .map(<TreeNames as fidl::encoding::ValueTypeMarker>::borrow),
2921 encoder,
2922 offset + cur_offset,
2923 depth,
2924 )?;
2925
2926 _prev_end_offset = cur_offset + envelope_size;
2927
2928 Ok(())
2929 }
2930 }
2931
2932 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Selector {
2933 #[inline(always)]
2934 fn new_empty() -> Self {
2935 Self::default()
2936 }
2937
2938 unsafe fn decode(
2939 &mut self,
2940 decoder: &mut fidl::encoding::Decoder<'_, D>,
2941 offset: usize,
2942 mut depth: fidl::encoding::Depth,
2943 ) -> fidl::Result<()> {
2944 decoder.debug_check_bounds::<Self>(offset);
2945 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2946 None => return Err(fidl::Error::NotNullable),
2947 Some(len) => len,
2948 };
2949 if len == 0 {
2951 return Ok(());
2952 };
2953 depth.increment()?;
2954 let envelope_size = 8;
2955 let bytes_len = len * envelope_size;
2956 let offset = decoder.out_of_line_offset(bytes_len)?;
2957 let mut _next_ordinal_to_read = 0;
2959 let mut next_offset = offset;
2960 let end_offset = offset + bytes_len;
2961 _next_ordinal_to_read += 1;
2962 if next_offset >= end_offset {
2963 return Ok(());
2964 }
2965
2966 while _next_ordinal_to_read < 1 {
2968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2969 _next_ordinal_to_read += 1;
2970 next_offset += envelope_size;
2971 }
2972
2973 let next_out_of_line = decoder.next_out_of_line();
2974 let handles_before = decoder.remaining_handles();
2975 if let Some((inlined, num_bytes, num_handles)) =
2976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2977 {
2978 let member_inline_size =
2979 <ComponentSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2980 if inlined != (member_inline_size <= 4) {
2981 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2982 }
2983 let inner_offset;
2984 let mut inner_depth = depth.clone();
2985 if inlined {
2986 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2987 inner_offset = next_offset;
2988 } else {
2989 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2990 inner_depth.increment()?;
2991 }
2992 let val_ref = self
2993 .component_selector
2994 .get_or_insert_with(|| fidl::new_empty!(ComponentSelector, D));
2995 fidl::decode!(ComponentSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
2996 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2997 {
2998 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2999 }
3000 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3001 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3002 }
3003 }
3004
3005 next_offset += envelope_size;
3006 _next_ordinal_to_read += 1;
3007 if next_offset >= end_offset {
3008 return Ok(());
3009 }
3010
3011 while _next_ordinal_to_read < 2 {
3013 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3014 _next_ordinal_to_read += 1;
3015 next_offset += envelope_size;
3016 }
3017
3018 let next_out_of_line = decoder.next_out_of_line();
3019 let handles_before = decoder.remaining_handles();
3020 if let Some((inlined, num_bytes, num_handles)) =
3021 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3022 {
3023 let member_inline_size =
3024 <TreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3025 if inlined != (member_inline_size <= 4) {
3026 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3027 }
3028 let inner_offset;
3029 let mut inner_depth = depth.clone();
3030 if inlined {
3031 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3032 inner_offset = next_offset;
3033 } else {
3034 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3035 inner_depth.increment()?;
3036 }
3037 let val_ref =
3038 self.tree_selector.get_or_insert_with(|| fidl::new_empty!(TreeSelector, D));
3039 fidl::decode!(TreeSelector, D, val_ref, decoder, inner_offset, inner_depth)?;
3040 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3041 {
3042 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3043 }
3044 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3045 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3046 }
3047 }
3048
3049 next_offset += envelope_size;
3050 _next_ordinal_to_read += 1;
3051 if next_offset >= end_offset {
3052 return Ok(());
3053 }
3054
3055 while _next_ordinal_to_read < 3 {
3057 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3058 _next_ordinal_to_read += 1;
3059 next_offset += envelope_size;
3060 }
3061
3062 let next_out_of_line = decoder.next_out_of_line();
3063 let handles_before = decoder.remaining_handles();
3064 if let Some((inlined, num_bytes, num_handles)) =
3065 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3066 {
3067 let member_inline_size =
3068 <TreeNames as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3069 if inlined != (member_inline_size <= 4) {
3070 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3071 }
3072 let inner_offset;
3073 let mut inner_depth = depth.clone();
3074 if inlined {
3075 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3076 inner_offset = next_offset;
3077 } else {
3078 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3079 inner_depth.increment()?;
3080 }
3081 let val_ref = self.tree_names.get_or_insert_with(|| fidl::new_empty!(TreeNames, D));
3082 fidl::decode!(TreeNames, D, val_ref, decoder, inner_offset, inner_depth)?;
3083 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3084 {
3085 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3086 }
3087 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3088 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3089 }
3090 }
3091
3092 next_offset += envelope_size;
3093
3094 while next_offset < end_offset {
3096 _next_ordinal_to_read += 1;
3097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3098 next_offset += envelope_size;
3099 }
3100
3101 Ok(())
3102 }
3103 }
3104
3105 impl StreamParameters {
3106 #[inline(always)]
3107 fn max_ordinal_present(&self) -> u64 {
3108 if let Some(_) = self.performance_configuration {
3109 return 6;
3110 }
3111 if let Some(_) = self.batch_retrieval_timeout_seconds {
3112 return 5;
3113 }
3114 if let Some(_) = self.client_selector_configuration {
3115 return 4;
3116 }
3117 if let Some(_) = self.format {
3118 return 3;
3119 }
3120 if let Some(_) = self.stream_mode {
3121 return 2;
3122 }
3123 if let Some(_) = self.data_type {
3124 return 1;
3125 }
3126 0
3127 }
3128 }
3129
3130 impl fidl::encoding::ValueTypeMarker for StreamParameters {
3131 type Borrowed<'a> = &'a Self;
3132 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3133 value
3134 }
3135 }
3136
3137 unsafe impl fidl::encoding::TypeMarker for StreamParameters {
3138 type Owned = Self;
3139
3140 #[inline(always)]
3141 fn inline_align(_context: fidl::encoding::Context) -> usize {
3142 8
3143 }
3144
3145 #[inline(always)]
3146 fn inline_size(_context: fidl::encoding::Context) -> usize {
3147 16
3148 }
3149 }
3150
3151 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamParameters, D>
3152 for &StreamParameters
3153 {
3154 unsafe fn encode(
3155 self,
3156 encoder: &mut fidl::encoding::Encoder<'_, D>,
3157 offset: usize,
3158 mut depth: fidl::encoding::Depth,
3159 ) -> fidl::Result<()> {
3160 encoder.debug_check_bounds::<StreamParameters>(offset);
3161 let max_ordinal: u64 = self.max_ordinal_present();
3163 encoder.write_num(max_ordinal, offset);
3164 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3165 if max_ordinal == 0 {
3167 return Ok(());
3168 }
3169 depth.increment()?;
3170 let envelope_size = 8;
3171 let bytes_len = max_ordinal as usize * envelope_size;
3172 #[allow(unused_variables)]
3173 let offset = encoder.out_of_line_offset(bytes_len);
3174 let mut _prev_end_offset: usize = 0;
3175 if 1 > max_ordinal {
3176 return Ok(());
3177 }
3178
3179 let cur_offset: usize = (1 - 1) * envelope_size;
3182
3183 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3185
3186 fidl::encoding::encode_in_envelope_optional::<DataType, D>(
3191 self.data_type.as_ref().map(<DataType as fidl::encoding::ValueTypeMarker>::borrow),
3192 encoder,
3193 offset + cur_offset,
3194 depth,
3195 )?;
3196
3197 _prev_end_offset = cur_offset + envelope_size;
3198 if 2 > max_ordinal {
3199 return Ok(());
3200 }
3201
3202 let cur_offset: usize = (2 - 1) * envelope_size;
3205
3206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3208
3209 fidl::encoding::encode_in_envelope_optional::<StreamMode, D>(
3214 self.stream_mode
3215 .as_ref()
3216 .map(<StreamMode as fidl::encoding::ValueTypeMarker>::borrow),
3217 encoder,
3218 offset + cur_offset,
3219 depth,
3220 )?;
3221
3222 _prev_end_offset = cur_offset + envelope_size;
3223 if 3 > max_ordinal {
3224 return Ok(());
3225 }
3226
3227 let cur_offset: usize = (3 - 1) * envelope_size;
3230
3231 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3233
3234 fidl::encoding::encode_in_envelope_optional::<Format, D>(
3239 self.format.as_ref().map(<Format as fidl::encoding::ValueTypeMarker>::borrow),
3240 encoder,
3241 offset + cur_offset,
3242 depth,
3243 )?;
3244
3245 _prev_end_offset = cur_offset + envelope_size;
3246 if 4 > max_ordinal {
3247 return Ok(());
3248 }
3249
3250 let cur_offset: usize = (4 - 1) * envelope_size;
3253
3254 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3256
3257 fidl::encoding::encode_in_envelope_optional::<ClientSelectorConfiguration, D>(
3262 self.client_selector_configuration
3263 .as_ref()
3264 .map(<ClientSelectorConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3265 encoder,
3266 offset + cur_offset,
3267 depth,
3268 )?;
3269
3270 _prev_end_offset = cur_offset + envelope_size;
3271 if 5 > max_ordinal {
3272 return Ok(());
3273 }
3274
3275 let cur_offset: usize = (5 - 1) * envelope_size;
3278
3279 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3281
3282 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3287 self.batch_retrieval_timeout_seconds
3288 .as_ref()
3289 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3290 encoder,
3291 offset + cur_offset,
3292 depth,
3293 )?;
3294
3295 _prev_end_offset = cur_offset + envelope_size;
3296 if 6 > max_ordinal {
3297 return Ok(());
3298 }
3299
3300 let cur_offset: usize = (6 - 1) * envelope_size;
3303
3304 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3306
3307 fidl::encoding::encode_in_envelope_optional::<PerformanceConfiguration, D>(
3312 self.performance_configuration
3313 .as_ref()
3314 .map(<PerformanceConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3315 encoder,
3316 offset + cur_offset,
3317 depth,
3318 )?;
3319
3320 _prev_end_offset = cur_offset + envelope_size;
3321
3322 Ok(())
3323 }
3324 }
3325
3326 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamParameters {
3327 #[inline(always)]
3328 fn new_empty() -> Self {
3329 Self::default()
3330 }
3331
3332 unsafe fn decode(
3333 &mut self,
3334 decoder: &mut fidl::encoding::Decoder<'_, D>,
3335 offset: usize,
3336 mut depth: fidl::encoding::Depth,
3337 ) -> fidl::Result<()> {
3338 decoder.debug_check_bounds::<Self>(offset);
3339 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3340 None => return Err(fidl::Error::NotNullable),
3341 Some(len) => len,
3342 };
3343 if len == 0 {
3345 return Ok(());
3346 };
3347 depth.increment()?;
3348 let envelope_size = 8;
3349 let bytes_len = len * envelope_size;
3350 let offset = decoder.out_of_line_offset(bytes_len)?;
3351 let mut _next_ordinal_to_read = 0;
3353 let mut next_offset = offset;
3354 let end_offset = offset + bytes_len;
3355 _next_ordinal_to_read += 1;
3356 if next_offset >= end_offset {
3357 return Ok(());
3358 }
3359
3360 while _next_ordinal_to_read < 1 {
3362 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3363 _next_ordinal_to_read += 1;
3364 next_offset += envelope_size;
3365 }
3366
3367 let next_out_of_line = decoder.next_out_of_line();
3368 let handles_before = decoder.remaining_handles();
3369 if let Some((inlined, num_bytes, num_handles)) =
3370 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3371 {
3372 let member_inline_size =
3373 <DataType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3374 if inlined != (member_inline_size <= 4) {
3375 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3376 }
3377 let inner_offset;
3378 let mut inner_depth = depth.clone();
3379 if inlined {
3380 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3381 inner_offset = next_offset;
3382 } else {
3383 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3384 inner_depth.increment()?;
3385 }
3386 let val_ref = self.data_type.get_or_insert_with(|| fidl::new_empty!(DataType, D));
3387 fidl::decode!(DataType, D, val_ref, decoder, inner_offset, inner_depth)?;
3388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3389 {
3390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3391 }
3392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3394 }
3395 }
3396
3397 next_offset += envelope_size;
3398 _next_ordinal_to_read += 1;
3399 if next_offset >= end_offset {
3400 return Ok(());
3401 }
3402
3403 while _next_ordinal_to_read < 2 {
3405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3406 _next_ordinal_to_read += 1;
3407 next_offset += envelope_size;
3408 }
3409
3410 let next_out_of_line = decoder.next_out_of_line();
3411 let handles_before = decoder.remaining_handles();
3412 if let Some((inlined, num_bytes, num_handles)) =
3413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3414 {
3415 let member_inline_size =
3416 <StreamMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3417 if inlined != (member_inline_size <= 4) {
3418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3419 }
3420 let inner_offset;
3421 let mut inner_depth = depth.clone();
3422 if inlined {
3423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3424 inner_offset = next_offset;
3425 } else {
3426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3427 inner_depth.increment()?;
3428 }
3429 let val_ref =
3430 self.stream_mode.get_or_insert_with(|| fidl::new_empty!(StreamMode, D));
3431 fidl::decode!(StreamMode, D, val_ref, decoder, inner_offset, inner_depth)?;
3432 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3433 {
3434 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3435 }
3436 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3437 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3438 }
3439 }
3440
3441 next_offset += envelope_size;
3442 _next_ordinal_to_read += 1;
3443 if next_offset >= end_offset {
3444 return Ok(());
3445 }
3446
3447 while _next_ordinal_to_read < 3 {
3449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3450 _next_ordinal_to_read += 1;
3451 next_offset += envelope_size;
3452 }
3453
3454 let next_out_of_line = decoder.next_out_of_line();
3455 let handles_before = decoder.remaining_handles();
3456 if let Some((inlined, num_bytes, num_handles)) =
3457 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3458 {
3459 let member_inline_size =
3460 <Format as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3461 if inlined != (member_inline_size <= 4) {
3462 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3463 }
3464 let inner_offset;
3465 let mut inner_depth = depth.clone();
3466 if inlined {
3467 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3468 inner_offset = next_offset;
3469 } else {
3470 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3471 inner_depth.increment()?;
3472 }
3473 let val_ref = self.format.get_or_insert_with(|| fidl::new_empty!(Format, D));
3474 fidl::decode!(Format, D, val_ref, decoder, inner_offset, inner_depth)?;
3475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3476 {
3477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3478 }
3479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3481 }
3482 }
3483
3484 next_offset += envelope_size;
3485 _next_ordinal_to_read += 1;
3486 if next_offset >= end_offset {
3487 return Ok(());
3488 }
3489
3490 while _next_ordinal_to_read < 4 {
3492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3493 _next_ordinal_to_read += 1;
3494 next_offset += envelope_size;
3495 }
3496
3497 let next_out_of_line = decoder.next_out_of_line();
3498 let handles_before = decoder.remaining_handles();
3499 if let Some((inlined, num_bytes, num_handles)) =
3500 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3501 {
3502 let member_inline_size =
3503 <ClientSelectorConfiguration as fidl::encoding::TypeMarker>::inline_size(
3504 decoder.context,
3505 );
3506 if inlined != (member_inline_size <= 4) {
3507 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3508 }
3509 let inner_offset;
3510 let mut inner_depth = depth.clone();
3511 if inlined {
3512 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3513 inner_offset = next_offset;
3514 } else {
3515 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3516 inner_depth.increment()?;
3517 }
3518 let val_ref = self
3519 .client_selector_configuration
3520 .get_or_insert_with(|| fidl::new_empty!(ClientSelectorConfiguration, D));
3521 fidl::decode!(
3522 ClientSelectorConfiguration,
3523 D,
3524 val_ref,
3525 decoder,
3526 inner_offset,
3527 inner_depth
3528 )?;
3529 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3530 {
3531 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3532 }
3533 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3534 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3535 }
3536 }
3537
3538 next_offset += envelope_size;
3539 _next_ordinal_to_read += 1;
3540 if next_offset >= end_offset {
3541 return Ok(());
3542 }
3543
3544 while _next_ordinal_to_read < 5 {
3546 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3547 _next_ordinal_to_read += 1;
3548 next_offset += envelope_size;
3549 }
3550
3551 let next_out_of_line = decoder.next_out_of_line();
3552 let handles_before = decoder.remaining_handles();
3553 if let Some((inlined, num_bytes, num_handles)) =
3554 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3555 {
3556 let member_inline_size =
3557 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3558 if inlined != (member_inline_size <= 4) {
3559 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3560 }
3561 let inner_offset;
3562 let mut inner_depth = depth.clone();
3563 if inlined {
3564 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3565 inner_offset = next_offset;
3566 } else {
3567 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3568 inner_depth.increment()?;
3569 }
3570 let val_ref = self
3571 .batch_retrieval_timeout_seconds
3572 .get_or_insert_with(|| fidl::new_empty!(i64, D));
3573 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3574 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3575 {
3576 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3577 }
3578 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3579 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3580 }
3581 }
3582
3583 next_offset += envelope_size;
3584 _next_ordinal_to_read += 1;
3585 if next_offset >= end_offset {
3586 return Ok(());
3587 }
3588
3589 while _next_ordinal_to_read < 6 {
3591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3592 _next_ordinal_to_read += 1;
3593 next_offset += envelope_size;
3594 }
3595
3596 let next_out_of_line = decoder.next_out_of_line();
3597 let handles_before = decoder.remaining_handles();
3598 if let Some((inlined, num_bytes, num_handles)) =
3599 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3600 {
3601 let member_inline_size =
3602 <PerformanceConfiguration as fidl::encoding::TypeMarker>::inline_size(
3603 decoder.context,
3604 );
3605 if inlined != (member_inline_size <= 4) {
3606 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3607 }
3608 let inner_offset;
3609 let mut inner_depth = depth.clone();
3610 if inlined {
3611 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3612 inner_offset = next_offset;
3613 } else {
3614 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3615 inner_depth.increment()?;
3616 }
3617 let val_ref = self
3618 .performance_configuration
3619 .get_or_insert_with(|| fidl::new_empty!(PerformanceConfiguration, D));
3620 fidl::decode!(
3621 PerformanceConfiguration,
3622 D,
3623 val_ref,
3624 decoder,
3625 inner_offset,
3626 inner_depth
3627 )?;
3628 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3629 {
3630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3631 }
3632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3634 }
3635 }
3636
3637 next_offset += envelope_size;
3638
3639 while next_offset < end_offset {
3641 _next_ordinal_to_read += 1;
3642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3643 next_offset += envelope_size;
3644 }
3645
3646 Ok(())
3647 }
3648 }
3649
3650 impl fidl::encoding::ValueTypeMarker for ClientSelectorConfiguration {
3651 type Borrowed<'a> = &'a Self;
3652 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3653 value
3654 }
3655 }
3656
3657 unsafe impl fidl::encoding::TypeMarker for ClientSelectorConfiguration {
3658 type Owned = Self;
3659
3660 #[inline(always)]
3661 fn inline_align(_context: fidl::encoding::Context) -> usize {
3662 8
3663 }
3664
3665 #[inline(always)]
3666 fn inline_size(_context: fidl::encoding::Context) -> usize {
3667 16
3668 }
3669 }
3670
3671 unsafe impl<D: fidl::encoding::ResourceDialect>
3672 fidl::encoding::Encode<ClientSelectorConfiguration, D> for &ClientSelectorConfiguration
3673 {
3674 #[inline]
3675 unsafe fn encode(
3676 self,
3677 encoder: &mut fidl::encoding::Encoder<'_, D>,
3678 offset: usize,
3679 _depth: fidl::encoding::Depth,
3680 ) -> fidl::Result<()> {
3681 encoder.debug_check_bounds::<ClientSelectorConfiguration>(offset);
3682 encoder.write_num::<u64>(self.ordinal(), offset);
3683 match self {
3684 ClientSelectorConfiguration::Selectors(ref val) => {
3685 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<SelectorArgument>, D>(
3686 <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::ValueTypeMarker>::borrow(val),
3687 encoder, offset + 8, _depth
3688 )
3689 }
3690 ClientSelectorConfiguration::SelectAll(ref val) => {
3691 fidl::encoding::encode_in_envelope::<bool, D>(
3692 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3693 encoder, offset + 8, _depth
3694 )
3695 }
3696 ClientSelectorConfiguration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
3697 }
3698 }
3699 }
3700
3701 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3702 for ClientSelectorConfiguration
3703 {
3704 #[inline(always)]
3705 fn new_empty() -> Self {
3706 Self::__SourceBreaking { unknown_ordinal: 0 }
3707 }
3708
3709 #[inline]
3710 unsafe fn decode(
3711 &mut self,
3712 decoder: &mut fidl::encoding::Decoder<'_, D>,
3713 offset: usize,
3714 mut depth: fidl::encoding::Depth,
3715 ) -> fidl::Result<()> {
3716 decoder.debug_check_bounds::<Self>(offset);
3717 #[allow(unused_variables)]
3718 let next_out_of_line = decoder.next_out_of_line();
3719 let handles_before = decoder.remaining_handles();
3720 let (ordinal, inlined, num_bytes, num_handles) =
3721 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3722
3723 let member_inline_size = match ordinal {
3724 1 => <fidl::encoding::UnboundedVector<SelectorArgument> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3725 2 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3726 0 => return Err(fidl::Error::UnknownUnionTag),
3727 _ => num_bytes as usize,
3728 };
3729
3730 if inlined != (member_inline_size <= 4) {
3731 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3732 }
3733 let _inner_offset;
3734 if inlined {
3735 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3736 _inner_offset = offset + 8;
3737 } else {
3738 depth.increment()?;
3739 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3740 }
3741 match ordinal {
3742 1 => {
3743 #[allow(irrefutable_let_patterns)]
3744 if let ClientSelectorConfiguration::Selectors(_) = self {
3745 } else {
3747 *self = ClientSelectorConfiguration::Selectors(fidl::new_empty!(
3749 fidl::encoding::UnboundedVector<SelectorArgument>,
3750 D
3751 ));
3752 }
3753 #[allow(irrefutable_let_patterns)]
3754 if let ClientSelectorConfiguration::Selectors(ref mut val) = self {
3755 fidl::decode!(
3756 fidl::encoding::UnboundedVector<SelectorArgument>,
3757 D,
3758 val,
3759 decoder,
3760 _inner_offset,
3761 depth
3762 )?;
3763 } else {
3764 unreachable!()
3765 }
3766 }
3767 2 => {
3768 #[allow(irrefutable_let_patterns)]
3769 if let ClientSelectorConfiguration::SelectAll(_) = self {
3770 } else {
3772 *self = ClientSelectorConfiguration::SelectAll(fidl::new_empty!(bool, D));
3774 }
3775 #[allow(irrefutable_let_patterns)]
3776 if let ClientSelectorConfiguration::SelectAll(ref mut val) = self {
3777 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
3778 } else {
3779 unreachable!()
3780 }
3781 }
3782 #[allow(deprecated)]
3783 ordinal => {
3784 for _ in 0..num_handles {
3785 decoder.drop_next_handle()?;
3786 }
3787 *self =
3788 ClientSelectorConfiguration::__SourceBreaking { unknown_ordinal: ordinal };
3789 }
3790 }
3791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3793 }
3794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3796 }
3797 Ok(())
3798 }
3799 }
3800
3801 impl fidl::encoding::ValueTypeMarker for SelectorArgument {
3802 type Borrowed<'a> = &'a Self;
3803 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3804 value
3805 }
3806 }
3807
3808 unsafe impl fidl::encoding::TypeMarker for SelectorArgument {
3809 type Owned = Self;
3810
3811 #[inline(always)]
3812 fn inline_align(_context: fidl::encoding::Context) -> usize {
3813 8
3814 }
3815
3816 #[inline(always)]
3817 fn inline_size(_context: fidl::encoding::Context) -> usize {
3818 16
3819 }
3820 }
3821
3822 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelectorArgument, D>
3823 for &SelectorArgument
3824 {
3825 #[inline]
3826 unsafe fn encode(
3827 self,
3828 encoder: &mut fidl::encoding::Encoder<'_, D>,
3829 offset: usize,
3830 _depth: fidl::encoding::Depth,
3831 ) -> fidl::Result<()> {
3832 encoder.debug_check_bounds::<SelectorArgument>(offset);
3833 encoder.write_num::<u64>(self.ordinal(), offset);
3834 match self {
3835 SelectorArgument::StructuredSelector(ref val) => {
3836 fidl::encoding::encode_in_envelope::<Selector, D>(
3837 <Selector as fidl::encoding::ValueTypeMarker>::borrow(val),
3838 encoder, offset + 8, _depth
3839 )
3840 }
3841 SelectorArgument::RawSelector(ref val) => {
3842 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
3843 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
3844 encoder, offset + 8, _depth
3845 )
3846 }
3847 SelectorArgument::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
3848 }
3849 }
3850 }
3851
3852 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelectorArgument {
3853 #[inline(always)]
3854 fn new_empty() -> Self {
3855 Self::__SourceBreaking { unknown_ordinal: 0 }
3856 }
3857
3858 #[inline]
3859 unsafe fn decode(
3860 &mut self,
3861 decoder: &mut fidl::encoding::Decoder<'_, D>,
3862 offset: usize,
3863 mut depth: fidl::encoding::Depth,
3864 ) -> fidl::Result<()> {
3865 decoder.debug_check_bounds::<Self>(offset);
3866 #[allow(unused_variables)]
3867 let next_out_of_line = decoder.next_out_of_line();
3868 let handles_before = decoder.remaining_handles();
3869 let (ordinal, inlined, num_bytes, num_handles) =
3870 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3871
3872 let member_inline_size = match ordinal {
3873 1 => <Selector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3874 2 => {
3875 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
3876 decoder.context,
3877 )
3878 }
3879 0 => return Err(fidl::Error::UnknownUnionTag),
3880 _ => num_bytes as usize,
3881 };
3882
3883 if inlined != (member_inline_size <= 4) {
3884 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3885 }
3886 let _inner_offset;
3887 if inlined {
3888 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3889 _inner_offset = offset + 8;
3890 } else {
3891 depth.increment()?;
3892 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3893 }
3894 match ordinal {
3895 1 => {
3896 #[allow(irrefutable_let_patterns)]
3897 if let SelectorArgument::StructuredSelector(_) = self {
3898 } else {
3900 *self = SelectorArgument::StructuredSelector(fidl::new_empty!(Selector, D));
3902 }
3903 #[allow(irrefutable_let_patterns)]
3904 if let SelectorArgument::StructuredSelector(ref mut val) = self {
3905 fidl::decode!(Selector, D, val, decoder, _inner_offset, depth)?;
3906 } else {
3907 unreachable!()
3908 }
3909 }
3910 2 => {
3911 #[allow(irrefutable_let_patterns)]
3912 if let SelectorArgument::RawSelector(_) = self {
3913 } else {
3915 *self = SelectorArgument::RawSelector(fidl::new_empty!(
3917 fidl::encoding::BoundedString<1024>,
3918 D
3919 ));
3920 }
3921 #[allow(irrefutable_let_patterns)]
3922 if let SelectorArgument::RawSelector(ref mut val) = self {
3923 fidl::decode!(
3924 fidl::encoding::BoundedString<1024>,
3925 D,
3926 val,
3927 decoder,
3928 _inner_offset,
3929 depth
3930 )?;
3931 } else {
3932 unreachable!()
3933 }
3934 }
3935 #[allow(deprecated)]
3936 ordinal => {
3937 for _ in 0..num_handles {
3938 decoder.drop_next_handle()?;
3939 }
3940 *self = SelectorArgument::__SourceBreaking { unknown_ordinal: ordinal };
3941 }
3942 }
3943 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3944 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3945 }
3946 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3947 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3948 }
3949 Ok(())
3950 }
3951 }
3952
3953 impl fidl::encoding::ValueTypeMarker for StringSelector {
3954 type Borrowed<'a> = &'a Self;
3955 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3956 value
3957 }
3958 }
3959
3960 unsafe impl fidl::encoding::TypeMarker for StringSelector {
3961 type Owned = Self;
3962
3963 #[inline(always)]
3964 fn inline_align(_context: fidl::encoding::Context) -> usize {
3965 8
3966 }
3967
3968 #[inline(always)]
3969 fn inline_size(_context: fidl::encoding::Context) -> usize {
3970 16
3971 }
3972 }
3973
3974 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StringSelector, D>
3975 for &StringSelector
3976 {
3977 #[inline]
3978 unsafe fn encode(
3979 self,
3980 encoder: &mut fidl::encoding::Encoder<'_, D>,
3981 offset: usize,
3982 _depth: fidl::encoding::Depth,
3983 ) -> fidl::Result<()> {
3984 encoder.debug_check_bounds::<StringSelector>(offset);
3985 encoder.write_num::<u64>(self.ordinal(), offset);
3986 match self {
3987 StringSelector::StringPattern(ref val) => {
3988 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
3989 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
3990 encoder, offset + 8, _depth
3991 )
3992 }
3993 StringSelector::ExactMatch(ref val) => {
3994 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<1024>, D>(
3995 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(val),
3996 encoder, offset + 8, _depth
3997 )
3998 }
3999 StringSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4000 }
4001 }
4002 }
4003
4004 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StringSelector {
4005 #[inline(always)]
4006 fn new_empty() -> Self {
4007 Self::__SourceBreaking { unknown_ordinal: 0 }
4008 }
4009
4010 #[inline]
4011 unsafe fn decode(
4012 &mut self,
4013 decoder: &mut fidl::encoding::Decoder<'_, D>,
4014 offset: usize,
4015 mut depth: fidl::encoding::Depth,
4016 ) -> fidl::Result<()> {
4017 decoder.debug_check_bounds::<Self>(offset);
4018 #[allow(unused_variables)]
4019 let next_out_of_line = decoder.next_out_of_line();
4020 let handles_before = decoder.remaining_handles();
4021 let (ordinal, inlined, num_bytes, num_handles) =
4022 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4023
4024 let member_inline_size = match ordinal {
4025 1 => {
4026 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4027 decoder.context,
4028 )
4029 }
4030 2 => {
4031 <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(
4032 decoder.context,
4033 )
4034 }
4035 0 => return Err(fidl::Error::UnknownUnionTag),
4036 _ => num_bytes as usize,
4037 };
4038
4039 if inlined != (member_inline_size <= 4) {
4040 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4041 }
4042 let _inner_offset;
4043 if inlined {
4044 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4045 _inner_offset = offset + 8;
4046 } else {
4047 depth.increment()?;
4048 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4049 }
4050 match ordinal {
4051 1 => {
4052 #[allow(irrefutable_let_patterns)]
4053 if let StringSelector::StringPattern(_) = self {
4054 } else {
4056 *self = StringSelector::StringPattern(fidl::new_empty!(
4058 fidl::encoding::BoundedString<1024>,
4059 D
4060 ));
4061 }
4062 #[allow(irrefutable_let_patterns)]
4063 if let StringSelector::StringPattern(ref mut val) = self {
4064 fidl::decode!(
4065 fidl::encoding::BoundedString<1024>,
4066 D,
4067 val,
4068 decoder,
4069 _inner_offset,
4070 depth
4071 )?;
4072 } else {
4073 unreachable!()
4074 }
4075 }
4076 2 => {
4077 #[allow(irrefutable_let_patterns)]
4078 if let StringSelector::ExactMatch(_) = self {
4079 } else {
4081 *self = StringSelector::ExactMatch(fidl::new_empty!(
4083 fidl::encoding::BoundedString<1024>,
4084 D
4085 ));
4086 }
4087 #[allow(irrefutable_let_patterns)]
4088 if let StringSelector::ExactMatch(ref mut val) = self {
4089 fidl::decode!(
4090 fidl::encoding::BoundedString<1024>,
4091 D,
4092 val,
4093 decoder,
4094 _inner_offset,
4095 depth
4096 )?;
4097 } else {
4098 unreachable!()
4099 }
4100 }
4101 #[allow(deprecated)]
4102 ordinal => {
4103 for _ in 0..num_handles {
4104 decoder.drop_next_handle()?;
4105 }
4106 *self = StringSelector::__SourceBreaking { unknown_ordinal: ordinal };
4107 }
4108 }
4109 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4110 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4111 }
4112 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4113 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4114 }
4115 Ok(())
4116 }
4117 }
4118
4119 impl fidl::encoding::ValueTypeMarker for TreeNames {
4120 type Borrowed<'a> = &'a Self;
4121 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4122 value
4123 }
4124 }
4125
4126 unsafe impl fidl::encoding::TypeMarker for TreeNames {
4127 type Owned = Self;
4128
4129 #[inline(always)]
4130 fn inline_align(_context: fidl::encoding::Context) -> usize {
4131 8
4132 }
4133
4134 #[inline(always)]
4135 fn inline_size(_context: fidl::encoding::Context) -> usize {
4136 16
4137 }
4138 }
4139
4140 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeNames, D>
4141 for &TreeNames
4142 {
4143 #[inline]
4144 unsafe fn encode(
4145 self,
4146 encoder: &mut fidl::encoding::Encoder<'_, D>,
4147 offset: usize,
4148 _depth: fidl::encoding::Depth,
4149 ) -> fidl::Result<()> {
4150 encoder.debug_check_bounds::<TreeNames>(offset);
4151 encoder.write_num::<u64>(self.ordinal(), offset);
4152 match self {
4153 TreeNames::Some(ref val) => {
4154 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>, D>(
4155 <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::ValueTypeMarker>::borrow(val),
4156 encoder, offset + 8, _depth
4157 )
4158 }
4159 TreeNames::All(ref val) => {
4160 fidl::encoding::encode_in_envelope::<All, D>(
4161 <All as fidl::encoding::ValueTypeMarker>::borrow(val),
4162 encoder, offset + 8, _depth
4163 )
4164 }
4165 TreeNames::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4166 }
4167 }
4168 }
4169
4170 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeNames {
4171 #[inline(always)]
4172 fn new_empty() -> Self {
4173 Self::__SourceBreaking { unknown_ordinal: 0 }
4174 }
4175
4176 #[inline]
4177 unsafe fn decode(
4178 &mut self,
4179 decoder: &mut fidl::encoding::Decoder<'_, D>,
4180 offset: usize,
4181 mut depth: fidl::encoding::Depth,
4182 ) -> fidl::Result<()> {
4183 decoder.debug_check_bounds::<Self>(offset);
4184 #[allow(unused_variables)]
4185 let next_out_of_line = decoder.next_out_of_line();
4186 let handles_before = decoder.remaining_handles();
4187 let (ordinal, inlined, num_bytes, num_handles) =
4188 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4189
4190 let member_inline_size = match ordinal {
4191 1 => <fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4192 2 => <All as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4193 0 => return Err(fidl::Error::UnknownUnionTag),
4194 _ => num_bytes as usize,
4195 };
4196
4197 if inlined != (member_inline_size <= 4) {
4198 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4199 }
4200 let _inner_offset;
4201 if inlined {
4202 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4203 _inner_offset = offset + 8;
4204 } else {
4205 depth.increment()?;
4206 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4207 }
4208 match ordinal {
4209 1 => {
4210 #[allow(irrefutable_let_patterns)]
4211 if let TreeNames::Some(_) = self {
4212 } else {
4214 *self = TreeNames::Some(fidl::new_empty!(
4216 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4217 D
4218 ));
4219 }
4220 #[allow(irrefutable_let_patterns)]
4221 if let TreeNames::Some(ref mut val) = self {
4222 fidl::decode!(
4223 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<1024>>,
4224 D,
4225 val,
4226 decoder,
4227 _inner_offset,
4228 depth
4229 )?;
4230 } else {
4231 unreachable!()
4232 }
4233 }
4234 2 => {
4235 #[allow(irrefutable_let_patterns)]
4236 if let TreeNames::All(_) = self {
4237 } else {
4239 *self = TreeNames::All(fidl::new_empty!(All, D));
4241 }
4242 #[allow(irrefutable_let_patterns)]
4243 if let TreeNames::All(ref mut val) = self {
4244 fidl::decode!(All, D, val, decoder, _inner_offset, depth)?;
4245 } else {
4246 unreachable!()
4247 }
4248 }
4249 #[allow(deprecated)]
4250 ordinal => {
4251 for _ in 0..num_handles {
4252 decoder.drop_next_handle()?;
4253 }
4254 *self = TreeNames::__SourceBreaking { unknown_ordinal: ordinal };
4255 }
4256 }
4257 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4259 }
4260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4262 }
4263 Ok(())
4264 }
4265 }
4266
4267 impl fidl::encoding::ValueTypeMarker for TreeSelector {
4268 type Borrowed<'a> = &'a Self;
4269 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4270 value
4271 }
4272 }
4273
4274 unsafe impl fidl::encoding::TypeMarker for TreeSelector {
4275 type Owned = Self;
4276
4277 #[inline(always)]
4278 fn inline_align(_context: fidl::encoding::Context) -> usize {
4279 8
4280 }
4281
4282 #[inline(always)]
4283 fn inline_size(_context: fidl::encoding::Context) -> usize {
4284 16
4285 }
4286 }
4287
4288 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TreeSelector, D>
4289 for &TreeSelector
4290 {
4291 #[inline]
4292 unsafe fn encode(
4293 self,
4294 encoder: &mut fidl::encoding::Encoder<'_, D>,
4295 offset: usize,
4296 _depth: fidl::encoding::Depth,
4297 ) -> fidl::Result<()> {
4298 encoder.debug_check_bounds::<TreeSelector>(offset);
4299 encoder.write_num::<u64>(self.ordinal(), offset);
4300 match self {
4301 TreeSelector::SubtreeSelector(ref val) => {
4302 fidl::encoding::encode_in_envelope::<SubtreeSelector, D>(
4303 <SubtreeSelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4304 encoder,
4305 offset + 8,
4306 _depth,
4307 )
4308 }
4309 TreeSelector::PropertySelector(ref val) => {
4310 fidl::encoding::encode_in_envelope::<PropertySelector, D>(
4311 <PropertySelector as fidl::encoding::ValueTypeMarker>::borrow(val),
4312 encoder,
4313 offset + 8,
4314 _depth,
4315 )
4316 }
4317 TreeSelector::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4318 }
4319 }
4320 }
4321
4322 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TreeSelector {
4323 #[inline(always)]
4324 fn new_empty() -> Self {
4325 Self::__SourceBreaking { unknown_ordinal: 0 }
4326 }
4327
4328 #[inline]
4329 unsafe fn decode(
4330 &mut self,
4331 decoder: &mut fidl::encoding::Decoder<'_, D>,
4332 offset: usize,
4333 mut depth: fidl::encoding::Depth,
4334 ) -> fidl::Result<()> {
4335 decoder.debug_check_bounds::<Self>(offset);
4336 #[allow(unused_variables)]
4337 let next_out_of_line = decoder.next_out_of_line();
4338 let handles_before = decoder.remaining_handles();
4339 let (ordinal, inlined, num_bytes, num_handles) =
4340 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4341
4342 let member_inline_size = match ordinal {
4343 1 => <SubtreeSelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4344 2 => <PropertySelector as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4345 0 => return Err(fidl::Error::UnknownUnionTag),
4346 _ => num_bytes as usize,
4347 };
4348
4349 if inlined != (member_inline_size <= 4) {
4350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4351 }
4352 let _inner_offset;
4353 if inlined {
4354 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4355 _inner_offset = offset + 8;
4356 } else {
4357 depth.increment()?;
4358 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4359 }
4360 match ordinal {
4361 1 => {
4362 #[allow(irrefutable_let_patterns)]
4363 if let TreeSelector::SubtreeSelector(_) = self {
4364 } else {
4366 *self = TreeSelector::SubtreeSelector(fidl::new_empty!(SubtreeSelector, D));
4368 }
4369 #[allow(irrefutable_let_patterns)]
4370 if let TreeSelector::SubtreeSelector(ref mut val) = self {
4371 fidl::decode!(SubtreeSelector, D, val, decoder, _inner_offset, depth)?;
4372 } else {
4373 unreachable!()
4374 }
4375 }
4376 2 => {
4377 #[allow(irrefutable_let_patterns)]
4378 if let TreeSelector::PropertySelector(_) = self {
4379 } else {
4381 *self =
4383 TreeSelector::PropertySelector(fidl::new_empty!(PropertySelector, D));
4384 }
4385 #[allow(irrefutable_let_patterns)]
4386 if let TreeSelector::PropertySelector(ref mut val) = self {
4387 fidl::decode!(PropertySelector, D, val, decoder, _inner_offset, depth)?;
4388 } else {
4389 unreachable!()
4390 }
4391 }
4392 #[allow(deprecated)]
4393 ordinal => {
4394 for _ in 0..num_handles {
4395 decoder.drop_next_handle()?;
4396 }
4397 *self = TreeSelector::__SourceBreaking { unknown_ordinal: ordinal };
4398 }
4399 }
4400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4401 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4402 }
4403 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4404 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4405 }
4406 Ok(())
4407 }
4408 }
4409}