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