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 type AllowlistEntryMoniker = String;
24
25pub type InstanceId = String;
27
28pub const MAX_ALLOWLIST_SIZE: u64 = 128;
31
32#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
34#[repr(u8)]
35pub enum BuiltinBootResolver {
36 None = 1,
38 Boot = 2,
41}
42
43impl BuiltinBootResolver {
44 #[inline]
45 pub fn from_primitive(prim: u8) -> Option<Self> {
46 match prim {
47 1 => Some(Self::None),
48 2 => Some(Self::Boot),
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)]
61#[repr(u8)]
62pub enum LogDestination {
63 Syslog = 1,
65 Klog = 2,
67}
68
69impl LogDestination {
70 #[inline]
71 pub fn from_primitive(prim: u8) -> Option<Self> {
72 match prim {
73 1 => Some(Self::Syslog),
74 2 => Some(Self::Klog),
75 _ => None,
76 }
77 }
78
79 #[inline]
80 pub const fn into_primitive(self) -> u8 {
81 self as u8
82 }
83}
84
85#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
87#[repr(u8)]
88pub enum RealmBuilderResolverAndRunner {
89 None = 1,
91 Namespace = 2,
94}
95
96impl RealmBuilderResolverAndRunner {
97 #[inline]
98 pub fn from_primitive(prim: u8) -> Option<Self> {
99 match prim {
100 1 => Some(Self::None),
101 2 => Some(Self::Namespace),
102 _ => None,
103 }
104 }
105
106 #[inline]
107 pub const fn into_primitive(self) -> u8 {
108 self as u8
109 }
110}
111
112#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
115#[repr(u8)]
116pub enum TraceProvider {
117 Namespace = 1,
119 RootExposed = 2,
122}
123
124impl TraceProvider {
125 #[inline]
126 pub fn from_primitive(prim: u8) -> Option<Self> {
127 match prim {
128 1 => Some(Self::Namespace),
129 2 => Some(Self::RootExposed),
130 _ => None,
131 }
132 }
133
134 #[inline]
135 pub const fn into_primitive(self) -> u8 {
136 self as u8
137 }
138}
139
140#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
142#[repr(u8)]
143pub enum VmexSource {
144 SystemResource = 1,
146 Namespace = 2,
149}
150
151impl VmexSource {
152 #[inline]
153 pub fn from_primitive(prim: u8) -> Option<Self> {
154 match prim {
155 1 => Some(Self::SystemResource),
156 2 => Some(Self::Namespace),
157 _ => None,
158 }
159 }
160
161 #[inline]
162 pub const fn into_primitive(self) -> u8 {
163 self as u8
164 }
165}
166
167#[derive(Clone, Debug, Default, PartialEq)]
169pub struct AbiRevisionPolicy {
170 pub allowlist: Option<Vec<String>>,
175 #[doc(hidden)]
176 pub __source_breaking: fidl::marker::SourceBreaking,
177}
178
179impl fidl::Persistable for AbiRevisionPolicy {}
180
181#[derive(Clone, Debug, Default, PartialEq)]
182pub struct AllowlistedDirectory {
183 #[doc(hidden)]
184 pub __source_breaking: fidl::marker::SourceBreaking,
185}
186
187impl fidl::Persistable for AllowlistedDirectory {}
188
189#[derive(Clone, Debug, Default, PartialEq)]
190pub struct AllowlistedProtocol {
191 #[doc(hidden)]
192 pub __source_breaking: fidl::marker::SourceBreaking,
193}
194
195impl fidl::Persistable for AllowlistedProtocol {}
196
197#[derive(Clone, Debug, Default, PartialEq)]
198pub struct AllowlistedResolver {
199 #[doc(hidden)]
200 pub __source_breaking: fidl::marker::SourceBreaking,
201}
202
203impl fidl::Persistable for AllowlistedResolver {}
204
205#[derive(Clone, Debug, Default, PartialEq)]
206pub struct AllowlistedRunner {
207 #[doc(hidden)]
208 pub __source_breaking: fidl::marker::SourceBreaking,
209}
210
211impl fidl::Persistable for AllowlistedRunner {}
212
213#[derive(Clone, Debug, Default, PartialEq)]
214pub struct AllowlistedService {
215 #[doc(hidden)]
216 pub __source_breaking: fidl::marker::SourceBreaking,
217}
218
219impl fidl::Persistable for AllowlistedService {}
220
221#[derive(Clone, Debug, Default, PartialEq)]
222pub struct AllowlistedStorage {
223 #[doc(hidden)]
224 pub __source_breaking: fidl::marker::SourceBreaking,
225}
226
227impl fidl::Persistable for AllowlistedStorage {}
228
229#[derive(Clone, Debug, Default, PartialEq)]
232pub struct CapabilityAllowlistEntry {
233 pub source_moniker: Option<String>,
236 pub source_name: Option<String>,
238 pub capability: Option<AllowlistedCapability>,
241 pub target_monikers: Option<Vec<String>>,
244 pub source: Option<fidl_fuchsia_component_decl__common::Ref>,
246 #[doc(hidden)]
247 pub __source_breaking: fidl::marker::SourceBreaking,
248}
249
250impl fidl::Persistable for CapabilityAllowlistEntry {}
251
252#[derive(Clone, Debug, Default, PartialEq)]
255pub struct CapabilityPolicyAllowlists {
256 pub allowlist: Option<Vec<CapabilityAllowlistEntry>>,
257 #[doc(hidden)]
258 pub __source_breaking: fidl::marker::SourceBreaking,
259}
260
261impl fidl::Persistable for CapabilityPolicyAllowlists {}
262
263#[derive(Clone, Debug, Default, PartialEq)]
265pub struct ChildPolicyAllowlists {
266 pub reboot_on_terminate: Option<Vec<String>>,
269 #[doc(hidden)]
270 pub __source_breaking: fidl::marker::SourceBreaking,
271}
272
273impl fidl::Persistable for ChildPolicyAllowlists {}
274
275#[derive(Clone, Debug, Default, PartialEq)]
277pub struct ComponentIdIndex {
278 pub instances: Option<Vec<InstanceIdEntry>>,
282 #[doc(hidden)]
283 pub __source_breaking: fidl::marker::SourceBreaking,
284}
285
286impl fidl::Persistable for ComponentIdIndex {}
287
288#[derive(Clone, Debug, Default, PartialEq)]
289pub struct Config {
290 pub debug: Option<bool>,
298 pub list_children_batch_size: Option<u32>,
300 pub security_policy: Option<SecurityPolicy>,
302 pub namespace_capabilities: Option<Vec<fidl_fuchsia_component_decl__common::Capability>>,
304 pub use_builtin_process_launcher: Option<bool>,
313 pub maintain_utc_clock: Option<bool>,
317 pub num_threads: Option<u8>,
320 pub root_component_url: Option<String>,
324 pub component_id_index_path: Option<String>,
327 pub log_destination: Option<LogDestination>,
329 pub log_all_events: Option<bool>,
331 pub builtin_boot_resolver: Option<BuiltinBootResolver>,
334 pub realm_builder_resolver_and_runner: Option<RealmBuilderResolverAndRunner>,
338 pub builtin_capabilities: Option<Vec<fidl_fuchsia_component_decl__common::Capability>>,
340 pub enable_introspection: Option<bool>,
343 pub abi_revision_policy: Option<AbiRevisionPolicy>,
346 pub vmex_source: Option<VmexSource>,
349 pub health_check: Option<HealthCheck>,
351 pub trace_provider: Option<TraceProvider>,
354 pub inject_capabilities: Option<Vec<InjectedCapabilities>>,
356 pub scudo_options: Option<String>,
359 #[doc(hidden)]
360 pub __source_breaking: fidl::marker::SourceBreaking,
361}
362
363impl fidl::Persistable for Config {}
364
365#[derive(Clone, Debug, Default, PartialEq)]
368pub struct DebugRegistrationAllowlistEntry {
369 pub name: Option<String>,
371 pub debug: Option<AllowlistedDebugRegistration>,
374 pub moniker: Option<String>,
377 pub environment_name: Option<String>,
379 #[doc(hidden)]
380 pub __source_breaking: fidl::marker::SourceBreaking,
381}
382
383impl fidl::Persistable for DebugRegistrationAllowlistEntry {}
384
385#[derive(Clone, Debug, Default, PartialEq)]
387pub struct DebugRegistrationPolicyAllowlists {
388 pub allowlist: Option<Vec<DebugRegistrationAllowlistEntry>>,
389 #[doc(hidden)]
390 pub __source_breaking: fidl::marker::SourceBreaking,
391}
392
393impl fidl::Persistable for DebugRegistrationPolicyAllowlists {}
394
395#[derive(Clone, Debug, Default, PartialEq)]
398pub struct EventStreamRouteMetadata {
399 pub scope_moniker: Option<String>,
402 pub scope: Option<Vec<fidl_fuchsia_component_decl__common::Ref>>,
406 #[doc(hidden)]
407 pub __source_breaking: fidl::marker::SourceBreaking,
408}
409
410impl fidl::Persistable for EventStreamRouteMetadata {}
411
412#[derive(Clone, Debug, Default, PartialEq)]
414pub struct HealthCheck {
415 pub monikers: Option<Vec<String>>,
417 #[doc(hidden)]
418 pub __source_breaking: fidl::marker::SourceBreaking,
419}
420
421impl fidl::Persistable for HealthCheck {}
422
423#[derive(Clone, Debug, Default, PartialEq)]
426pub struct InjectedCapabilities {
427 pub components: Option<Vec<String>>,
429 pub use_: Option<Vec<InjectedUse>>,
431 #[doc(hidden)]
432 pub __source_breaking: fidl::marker::SourceBreaking,
433}
434
435impl fidl::Persistable for InjectedCapabilities {}
436
437#[derive(Clone, Debug, Default, PartialEq)]
439pub struct InjectedUseProtocol {
440 pub source_name: Option<String>,
442 pub target_path: Option<String>,
447 #[doc(hidden)]
448 pub __source_breaking: fidl::marker::SourceBreaking,
449}
450
451impl fidl::Persistable for InjectedUseProtocol {}
452
453#[derive(Clone, Debug, Default, PartialEq)]
454pub struct InstanceIdEntry {
455 pub instance_id: Option<String>,
458 pub moniker: Option<String>,
460 pub ignore_duplicate_id: Option<bool>,
463 #[doc(hidden)]
464 pub __source_breaking: fidl::marker::SourceBreaking,
465}
466
467impl fidl::Persistable for InstanceIdEntry {}
468
469#[derive(Clone, Debug, Default, PartialEq)]
471pub struct JobPolicyAllowlists {
472 pub ambient_mark_vmo_exec: Option<Vec<String>>,
479 pub main_process_critical: Option<Vec<String>>,
485 pub create_raw_processes: Option<Vec<String>>,
491 #[doc(hidden)]
492 pub __source_breaking: fidl::marker::SourceBreaking,
493}
494
495impl fidl::Persistable for JobPolicyAllowlists {}
496
497#[derive(Clone, Debug, Default, PartialEq)]
499pub struct SecurityPolicy {
500 pub job_policy: Option<JobPolicyAllowlists>,
502 pub capability_policy: Option<CapabilityPolicyAllowlists>,
504 pub debug_registration_policy: Option<DebugRegistrationPolicyAllowlists>,
506 pub child_policy: Option<ChildPolicyAllowlists>,
508 #[doc(hidden)]
509 pub __source_breaking: fidl::marker::SourceBreaking,
510}
511
512impl fidl::Persistable for SecurityPolicy {}
513
514#[derive(Clone, Debug)]
516pub enum AllowlistedCapability {
517 Directory(AllowlistedDirectory),
518 Protocol(AllowlistedProtocol),
519 Service(AllowlistedService),
520 Storage(AllowlistedStorage),
521 Runner(AllowlistedRunner),
522 Resolver(AllowlistedResolver),
523 #[doc(hidden)]
524 __SourceBreaking {
525 unknown_ordinal: u64,
526 },
527}
528
529#[macro_export]
531macro_rules! AllowlistedCapabilityUnknown {
532 () => {
533 _
534 };
535}
536
537impl PartialEq for AllowlistedCapability {
539 fn eq(&self, other: &Self) -> bool {
540 match (self, other) {
541 (Self::Directory(x), Self::Directory(y)) => *x == *y,
542 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
543 (Self::Service(x), Self::Service(y)) => *x == *y,
544 (Self::Storage(x), Self::Storage(y)) => *x == *y,
545 (Self::Runner(x), Self::Runner(y)) => *x == *y,
546 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
547 _ => false,
548 }
549 }
550}
551
552impl AllowlistedCapability {
553 #[inline]
554 pub fn ordinal(&self) -> u64 {
555 match *self {
556 Self::Directory(_) => 1,
557 Self::Protocol(_) => 3,
558 Self::Service(_) => 4,
559 Self::Storage(_) => 5,
560 Self::Runner(_) => 6,
561 Self::Resolver(_) => 7,
562 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
563 }
564 }
565
566 #[inline]
567 pub fn unknown_variant_for_testing() -> Self {
568 Self::__SourceBreaking { unknown_ordinal: 0 }
569 }
570
571 #[inline]
572 pub fn is_unknown(&self) -> bool {
573 match self {
574 Self::__SourceBreaking { .. } => true,
575 _ => false,
576 }
577 }
578}
579
580impl fidl::Persistable for AllowlistedCapability {}
581
582#[derive(Clone, Debug)]
584pub enum AllowlistedDebugRegistration {
585 Protocol(AllowlistedProtocol),
586 #[doc(hidden)]
587 __SourceBreaking {
588 unknown_ordinal: u64,
589 },
590}
591
592#[macro_export]
594macro_rules! AllowlistedDebugRegistrationUnknown {
595 () => {
596 _
597 };
598}
599
600impl PartialEq for AllowlistedDebugRegistration {
602 fn eq(&self, other: &Self) -> bool {
603 match (self, other) {
604 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
605 _ => false,
606 }
607 }
608}
609
610impl AllowlistedDebugRegistration {
611 #[inline]
612 pub fn ordinal(&self) -> u64 {
613 match *self {
614 Self::Protocol(_) => 1,
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 AllowlistedDebugRegistration {}
634
635#[derive(Clone, Debug)]
637pub enum InjectedUse {
638 Protocol(InjectedUseProtocol),
639 #[doc(hidden)]
640 __SourceBreaking {
641 unknown_ordinal: u64,
642 },
643}
644
645#[macro_export]
647macro_rules! InjectedUseUnknown {
648 () => {
649 _
650 };
651}
652
653impl PartialEq for InjectedUse {
655 fn eq(&self, other: &Self) -> bool {
656 match (self, other) {
657 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
658 _ => false,
659 }
660 }
661}
662
663impl InjectedUse {
664 #[inline]
665 pub fn ordinal(&self) -> u64 {
666 match *self {
667 Self::Protocol(_) => 1,
668 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
669 }
670 }
671
672 #[inline]
673 pub fn unknown_variant_for_testing() -> Self {
674 Self::__SourceBreaking { unknown_ordinal: 0 }
675 }
676
677 #[inline]
678 pub fn is_unknown(&self) -> bool {
679 match self {
680 Self::__SourceBreaking { .. } => true,
681 _ => false,
682 }
683 }
684}
685
686impl fidl::Persistable for InjectedUse {}
687
688pub mod component_sandbox_retriever_ordinals {
689 pub const GET_MY_SANDBOX: u64 = 0x61ca075fb9860e84;
690}
691
692mod internal {
693 use super::*;
694 unsafe impl fidl::encoding::TypeMarker for BuiltinBootResolver {
695 type Owned = Self;
696
697 #[inline(always)]
698 fn inline_align(_context: fidl::encoding::Context) -> usize {
699 std::mem::align_of::<u8>()
700 }
701
702 #[inline(always)]
703 fn inline_size(_context: fidl::encoding::Context) -> usize {
704 std::mem::size_of::<u8>()
705 }
706
707 #[inline(always)]
708 fn encode_is_copy() -> bool {
709 true
710 }
711
712 #[inline(always)]
713 fn decode_is_copy() -> bool {
714 false
715 }
716 }
717
718 impl fidl::encoding::ValueTypeMarker for BuiltinBootResolver {
719 type Borrowed<'a> = Self;
720 #[inline(always)]
721 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
722 *value
723 }
724 }
725
726 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
727 for BuiltinBootResolver
728 {
729 #[inline]
730 unsafe fn encode(
731 self,
732 encoder: &mut fidl::encoding::Encoder<'_, D>,
733 offset: usize,
734 _depth: fidl::encoding::Depth,
735 ) -> fidl::Result<()> {
736 encoder.debug_check_bounds::<Self>(offset);
737 encoder.write_num(self.into_primitive(), offset);
738 Ok(())
739 }
740 }
741
742 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BuiltinBootResolver {
743 #[inline(always)]
744 fn new_empty() -> Self {
745 Self::None
746 }
747
748 #[inline]
749 unsafe fn decode(
750 &mut self,
751 decoder: &mut fidl::encoding::Decoder<'_, D>,
752 offset: usize,
753 _depth: fidl::encoding::Depth,
754 ) -> fidl::Result<()> {
755 decoder.debug_check_bounds::<Self>(offset);
756 let prim = decoder.read_num::<u8>(offset);
757
758 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
759 Ok(())
760 }
761 }
762 unsafe impl fidl::encoding::TypeMarker for LogDestination {
763 type Owned = Self;
764
765 #[inline(always)]
766 fn inline_align(_context: fidl::encoding::Context) -> usize {
767 std::mem::align_of::<u8>()
768 }
769
770 #[inline(always)]
771 fn inline_size(_context: fidl::encoding::Context) -> usize {
772 std::mem::size_of::<u8>()
773 }
774
775 #[inline(always)]
776 fn encode_is_copy() -> bool {
777 true
778 }
779
780 #[inline(always)]
781 fn decode_is_copy() -> bool {
782 false
783 }
784 }
785
786 impl fidl::encoding::ValueTypeMarker for LogDestination {
787 type Borrowed<'a> = Self;
788 #[inline(always)]
789 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
790 *value
791 }
792 }
793
794 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for LogDestination {
795 #[inline]
796 unsafe fn encode(
797 self,
798 encoder: &mut fidl::encoding::Encoder<'_, D>,
799 offset: usize,
800 _depth: fidl::encoding::Depth,
801 ) -> fidl::Result<()> {
802 encoder.debug_check_bounds::<Self>(offset);
803 encoder.write_num(self.into_primitive(), offset);
804 Ok(())
805 }
806 }
807
808 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogDestination {
809 #[inline(always)]
810 fn new_empty() -> Self {
811 Self::Syslog
812 }
813
814 #[inline]
815 unsafe fn decode(
816 &mut self,
817 decoder: &mut fidl::encoding::Decoder<'_, D>,
818 offset: usize,
819 _depth: fidl::encoding::Depth,
820 ) -> fidl::Result<()> {
821 decoder.debug_check_bounds::<Self>(offset);
822 let prim = decoder.read_num::<u8>(offset);
823
824 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
825 Ok(())
826 }
827 }
828 unsafe impl fidl::encoding::TypeMarker for RealmBuilderResolverAndRunner {
829 type Owned = Self;
830
831 #[inline(always)]
832 fn inline_align(_context: fidl::encoding::Context) -> usize {
833 std::mem::align_of::<u8>()
834 }
835
836 #[inline(always)]
837 fn inline_size(_context: fidl::encoding::Context) -> usize {
838 std::mem::size_of::<u8>()
839 }
840
841 #[inline(always)]
842 fn encode_is_copy() -> bool {
843 true
844 }
845
846 #[inline(always)]
847 fn decode_is_copy() -> bool {
848 false
849 }
850 }
851
852 impl fidl::encoding::ValueTypeMarker for RealmBuilderResolverAndRunner {
853 type Borrowed<'a> = Self;
854 #[inline(always)]
855 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
856 *value
857 }
858 }
859
860 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
861 for RealmBuilderResolverAndRunner
862 {
863 #[inline]
864 unsafe fn encode(
865 self,
866 encoder: &mut fidl::encoding::Encoder<'_, D>,
867 offset: usize,
868 _depth: fidl::encoding::Depth,
869 ) -> fidl::Result<()> {
870 encoder.debug_check_bounds::<Self>(offset);
871 encoder.write_num(self.into_primitive(), offset);
872 Ok(())
873 }
874 }
875
876 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
877 for RealmBuilderResolverAndRunner
878 {
879 #[inline(always)]
880 fn new_empty() -> Self {
881 Self::None
882 }
883
884 #[inline]
885 unsafe fn decode(
886 &mut self,
887 decoder: &mut fidl::encoding::Decoder<'_, D>,
888 offset: usize,
889 _depth: fidl::encoding::Depth,
890 ) -> fidl::Result<()> {
891 decoder.debug_check_bounds::<Self>(offset);
892 let prim = decoder.read_num::<u8>(offset);
893
894 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
895 Ok(())
896 }
897 }
898 unsafe impl fidl::encoding::TypeMarker for TraceProvider {
899 type Owned = Self;
900
901 #[inline(always)]
902 fn inline_align(_context: fidl::encoding::Context) -> usize {
903 std::mem::align_of::<u8>()
904 }
905
906 #[inline(always)]
907 fn inline_size(_context: fidl::encoding::Context) -> usize {
908 std::mem::size_of::<u8>()
909 }
910
911 #[inline(always)]
912 fn encode_is_copy() -> bool {
913 true
914 }
915
916 #[inline(always)]
917 fn decode_is_copy() -> bool {
918 false
919 }
920 }
921
922 impl fidl::encoding::ValueTypeMarker for TraceProvider {
923 type Borrowed<'a> = Self;
924 #[inline(always)]
925 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
926 *value
927 }
928 }
929
930 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TraceProvider {
931 #[inline]
932 unsafe fn encode(
933 self,
934 encoder: &mut fidl::encoding::Encoder<'_, D>,
935 offset: usize,
936 _depth: fidl::encoding::Depth,
937 ) -> fidl::Result<()> {
938 encoder.debug_check_bounds::<Self>(offset);
939 encoder.write_num(self.into_primitive(), offset);
940 Ok(())
941 }
942 }
943
944 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceProvider {
945 #[inline(always)]
946 fn new_empty() -> Self {
947 Self::Namespace
948 }
949
950 #[inline]
951 unsafe fn decode(
952 &mut self,
953 decoder: &mut fidl::encoding::Decoder<'_, D>,
954 offset: usize,
955 _depth: fidl::encoding::Depth,
956 ) -> fidl::Result<()> {
957 decoder.debug_check_bounds::<Self>(offset);
958 let prim = decoder.read_num::<u8>(offset);
959
960 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
961 Ok(())
962 }
963 }
964 unsafe impl fidl::encoding::TypeMarker for VmexSource {
965 type Owned = Self;
966
967 #[inline(always)]
968 fn inline_align(_context: fidl::encoding::Context) -> usize {
969 std::mem::align_of::<u8>()
970 }
971
972 #[inline(always)]
973 fn inline_size(_context: fidl::encoding::Context) -> usize {
974 std::mem::size_of::<u8>()
975 }
976
977 #[inline(always)]
978 fn encode_is_copy() -> bool {
979 true
980 }
981
982 #[inline(always)]
983 fn decode_is_copy() -> bool {
984 false
985 }
986 }
987
988 impl fidl::encoding::ValueTypeMarker for VmexSource {
989 type Borrowed<'a> = Self;
990 #[inline(always)]
991 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
992 *value
993 }
994 }
995
996 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for VmexSource {
997 #[inline]
998 unsafe fn encode(
999 self,
1000 encoder: &mut fidl::encoding::Encoder<'_, D>,
1001 offset: usize,
1002 _depth: fidl::encoding::Depth,
1003 ) -> fidl::Result<()> {
1004 encoder.debug_check_bounds::<Self>(offset);
1005 encoder.write_num(self.into_primitive(), offset);
1006 Ok(())
1007 }
1008 }
1009
1010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VmexSource {
1011 #[inline(always)]
1012 fn new_empty() -> Self {
1013 Self::SystemResource
1014 }
1015
1016 #[inline]
1017 unsafe fn decode(
1018 &mut self,
1019 decoder: &mut fidl::encoding::Decoder<'_, D>,
1020 offset: usize,
1021 _depth: fidl::encoding::Depth,
1022 ) -> fidl::Result<()> {
1023 decoder.debug_check_bounds::<Self>(offset);
1024 let prim = decoder.read_num::<u8>(offset);
1025
1026 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1027 Ok(())
1028 }
1029 }
1030
1031 impl AbiRevisionPolicy {
1032 #[inline(always)]
1033 fn max_ordinal_present(&self) -> u64 {
1034 if let Some(_) = self.allowlist {
1035 return 1;
1036 }
1037 0
1038 }
1039 }
1040
1041 impl fidl::encoding::ValueTypeMarker for AbiRevisionPolicy {
1042 type Borrowed<'a> = &'a Self;
1043 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1044 value
1045 }
1046 }
1047
1048 unsafe impl fidl::encoding::TypeMarker for AbiRevisionPolicy {
1049 type Owned = Self;
1050
1051 #[inline(always)]
1052 fn inline_align(_context: fidl::encoding::Context) -> usize {
1053 8
1054 }
1055
1056 #[inline(always)]
1057 fn inline_size(_context: fidl::encoding::Context) -> usize {
1058 16
1059 }
1060 }
1061
1062 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AbiRevisionPolicy, D>
1063 for &AbiRevisionPolicy
1064 {
1065 unsafe fn encode(
1066 self,
1067 encoder: &mut fidl::encoding::Encoder<'_, D>,
1068 offset: usize,
1069 mut depth: fidl::encoding::Depth,
1070 ) -> fidl::Result<()> {
1071 encoder.debug_check_bounds::<AbiRevisionPolicy>(offset);
1072 let max_ordinal: u64 = self.max_ordinal_present();
1074 encoder.write_num(max_ordinal, offset);
1075 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1076 if max_ordinal == 0 {
1078 return Ok(());
1079 }
1080 depth.increment()?;
1081 let envelope_size = 8;
1082 let bytes_len = max_ordinal as usize * envelope_size;
1083 #[allow(unused_variables)]
1084 let offset = encoder.out_of_line_offset(bytes_len);
1085 let mut _prev_end_offset: usize = 0;
1086 if 1 > max_ordinal {
1087 return Ok(());
1088 }
1089
1090 let cur_offset: usize = (1 - 1) * envelope_size;
1093
1094 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1096
1097 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
1102 self.allowlist.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
1103 encoder, offset + cur_offset, depth
1104 )?;
1105
1106 _prev_end_offset = cur_offset + envelope_size;
1107
1108 Ok(())
1109 }
1110 }
1111
1112 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AbiRevisionPolicy {
1113 #[inline(always)]
1114 fn new_empty() -> Self {
1115 Self::default()
1116 }
1117
1118 unsafe fn decode(
1119 &mut self,
1120 decoder: &mut fidl::encoding::Decoder<'_, D>,
1121 offset: usize,
1122 mut depth: fidl::encoding::Depth,
1123 ) -> fidl::Result<()> {
1124 decoder.debug_check_bounds::<Self>(offset);
1125 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1126 None => return Err(fidl::Error::NotNullable),
1127 Some(len) => len,
1128 };
1129 if len == 0 {
1131 return Ok(());
1132 };
1133 depth.increment()?;
1134 let envelope_size = 8;
1135 let bytes_len = len * envelope_size;
1136 let offset = decoder.out_of_line_offset(bytes_len)?;
1137 let mut _next_ordinal_to_read = 0;
1139 let mut next_offset = offset;
1140 let end_offset = offset + bytes_len;
1141 _next_ordinal_to_read += 1;
1142 if next_offset >= end_offset {
1143 return Ok(());
1144 }
1145
1146 while _next_ordinal_to_read < 1 {
1148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1149 _next_ordinal_to_read += 1;
1150 next_offset += envelope_size;
1151 }
1152
1153 let next_out_of_line = decoder.next_out_of_line();
1154 let handles_before = decoder.remaining_handles();
1155 if let Some((inlined, num_bytes, num_handles)) =
1156 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1157 {
1158 let member_inline_size = <fidl::encoding::Vector<
1159 fidl::encoding::BoundedString<4096>,
1160 128,
1161 > as fidl::encoding::TypeMarker>::inline_size(
1162 decoder.context
1163 );
1164 if inlined != (member_inline_size <= 4) {
1165 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1166 }
1167 let inner_offset;
1168 let mut inner_depth = depth.clone();
1169 if inlined {
1170 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1171 inner_offset = next_offset;
1172 } else {
1173 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1174 inner_depth.increment()?;
1175 }
1176 let val_ref = self.allowlist.get_or_insert_with(|| {
1177 fidl::new_empty!(
1178 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
1179 D
1180 )
1181 });
1182 fidl::decode!(
1183 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
1184 D,
1185 val_ref,
1186 decoder,
1187 inner_offset,
1188 inner_depth
1189 )?;
1190 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1191 {
1192 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1193 }
1194 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1195 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1196 }
1197 }
1198
1199 next_offset += envelope_size;
1200
1201 while next_offset < end_offset {
1203 _next_ordinal_to_read += 1;
1204 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1205 next_offset += envelope_size;
1206 }
1207
1208 Ok(())
1209 }
1210 }
1211
1212 impl AllowlistedDirectory {
1213 #[inline(always)]
1214 fn max_ordinal_present(&self) -> u64 {
1215 0
1216 }
1217 }
1218
1219 impl fidl::encoding::ValueTypeMarker for AllowlistedDirectory {
1220 type Borrowed<'a> = &'a Self;
1221 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1222 value
1223 }
1224 }
1225
1226 unsafe impl fidl::encoding::TypeMarker for AllowlistedDirectory {
1227 type Owned = Self;
1228
1229 #[inline(always)]
1230 fn inline_align(_context: fidl::encoding::Context) -> usize {
1231 8
1232 }
1233
1234 #[inline(always)]
1235 fn inline_size(_context: fidl::encoding::Context) -> usize {
1236 16
1237 }
1238 }
1239
1240 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedDirectory, D>
1241 for &AllowlistedDirectory
1242 {
1243 unsafe fn encode(
1244 self,
1245 encoder: &mut fidl::encoding::Encoder<'_, D>,
1246 offset: usize,
1247 mut depth: fidl::encoding::Depth,
1248 ) -> fidl::Result<()> {
1249 encoder.debug_check_bounds::<AllowlistedDirectory>(offset);
1250 let max_ordinal: u64 = self.max_ordinal_present();
1252 encoder.write_num(max_ordinal, offset);
1253 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1254 if max_ordinal == 0 {
1256 return Ok(());
1257 }
1258 depth.increment()?;
1259 let envelope_size = 8;
1260 let bytes_len = max_ordinal as usize * envelope_size;
1261 #[allow(unused_variables)]
1262 let offset = encoder.out_of_line_offset(bytes_len);
1263 let mut _prev_end_offset: usize = 0;
1264
1265 Ok(())
1266 }
1267 }
1268
1269 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedDirectory {
1270 #[inline(always)]
1271 fn new_empty() -> Self {
1272 Self::default()
1273 }
1274
1275 unsafe fn decode(
1276 &mut self,
1277 decoder: &mut fidl::encoding::Decoder<'_, D>,
1278 offset: usize,
1279 mut depth: fidl::encoding::Depth,
1280 ) -> fidl::Result<()> {
1281 decoder.debug_check_bounds::<Self>(offset);
1282 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1283 None => return Err(fidl::Error::NotNullable),
1284 Some(len) => len,
1285 };
1286 if len == 0 {
1288 return Ok(());
1289 };
1290 depth.increment()?;
1291 let envelope_size = 8;
1292 let bytes_len = len * envelope_size;
1293 let offset = decoder.out_of_line_offset(bytes_len)?;
1294 let mut _next_ordinal_to_read = 0;
1296 let mut next_offset = offset;
1297 let end_offset = offset + bytes_len;
1298
1299 while next_offset < end_offset {
1301 _next_ordinal_to_read += 1;
1302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1303 next_offset += envelope_size;
1304 }
1305
1306 Ok(())
1307 }
1308 }
1309
1310 impl AllowlistedProtocol {
1311 #[inline(always)]
1312 fn max_ordinal_present(&self) -> u64 {
1313 0
1314 }
1315 }
1316
1317 impl fidl::encoding::ValueTypeMarker for AllowlistedProtocol {
1318 type Borrowed<'a> = &'a Self;
1319 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1320 value
1321 }
1322 }
1323
1324 unsafe impl fidl::encoding::TypeMarker for AllowlistedProtocol {
1325 type Owned = Self;
1326
1327 #[inline(always)]
1328 fn inline_align(_context: fidl::encoding::Context) -> usize {
1329 8
1330 }
1331
1332 #[inline(always)]
1333 fn inline_size(_context: fidl::encoding::Context) -> usize {
1334 16
1335 }
1336 }
1337
1338 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedProtocol, D>
1339 for &AllowlistedProtocol
1340 {
1341 unsafe fn encode(
1342 self,
1343 encoder: &mut fidl::encoding::Encoder<'_, D>,
1344 offset: usize,
1345 mut depth: fidl::encoding::Depth,
1346 ) -> fidl::Result<()> {
1347 encoder.debug_check_bounds::<AllowlistedProtocol>(offset);
1348 let max_ordinal: u64 = self.max_ordinal_present();
1350 encoder.write_num(max_ordinal, offset);
1351 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1352 if max_ordinal == 0 {
1354 return Ok(());
1355 }
1356 depth.increment()?;
1357 let envelope_size = 8;
1358 let bytes_len = max_ordinal as usize * envelope_size;
1359 #[allow(unused_variables)]
1360 let offset = encoder.out_of_line_offset(bytes_len);
1361 let mut _prev_end_offset: usize = 0;
1362
1363 Ok(())
1364 }
1365 }
1366
1367 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedProtocol {
1368 #[inline(always)]
1369 fn new_empty() -> Self {
1370 Self::default()
1371 }
1372
1373 unsafe fn decode(
1374 &mut self,
1375 decoder: &mut fidl::encoding::Decoder<'_, D>,
1376 offset: usize,
1377 mut depth: fidl::encoding::Depth,
1378 ) -> fidl::Result<()> {
1379 decoder.debug_check_bounds::<Self>(offset);
1380 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1381 None => return Err(fidl::Error::NotNullable),
1382 Some(len) => len,
1383 };
1384 if len == 0 {
1386 return Ok(());
1387 };
1388 depth.increment()?;
1389 let envelope_size = 8;
1390 let bytes_len = len * envelope_size;
1391 let offset = decoder.out_of_line_offset(bytes_len)?;
1392 let mut _next_ordinal_to_read = 0;
1394 let mut next_offset = offset;
1395 let end_offset = offset + bytes_len;
1396
1397 while next_offset < end_offset {
1399 _next_ordinal_to_read += 1;
1400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1401 next_offset += envelope_size;
1402 }
1403
1404 Ok(())
1405 }
1406 }
1407
1408 impl AllowlistedResolver {
1409 #[inline(always)]
1410 fn max_ordinal_present(&self) -> u64 {
1411 0
1412 }
1413 }
1414
1415 impl fidl::encoding::ValueTypeMarker for AllowlistedResolver {
1416 type Borrowed<'a> = &'a Self;
1417 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1418 value
1419 }
1420 }
1421
1422 unsafe impl fidl::encoding::TypeMarker for AllowlistedResolver {
1423 type Owned = Self;
1424
1425 #[inline(always)]
1426 fn inline_align(_context: fidl::encoding::Context) -> usize {
1427 8
1428 }
1429
1430 #[inline(always)]
1431 fn inline_size(_context: fidl::encoding::Context) -> usize {
1432 16
1433 }
1434 }
1435
1436 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedResolver, D>
1437 for &AllowlistedResolver
1438 {
1439 unsafe fn encode(
1440 self,
1441 encoder: &mut fidl::encoding::Encoder<'_, D>,
1442 offset: usize,
1443 mut depth: fidl::encoding::Depth,
1444 ) -> fidl::Result<()> {
1445 encoder.debug_check_bounds::<AllowlistedResolver>(offset);
1446 let max_ordinal: u64 = self.max_ordinal_present();
1448 encoder.write_num(max_ordinal, offset);
1449 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1450 if max_ordinal == 0 {
1452 return Ok(());
1453 }
1454 depth.increment()?;
1455 let envelope_size = 8;
1456 let bytes_len = max_ordinal as usize * envelope_size;
1457 #[allow(unused_variables)]
1458 let offset = encoder.out_of_line_offset(bytes_len);
1459 let mut _prev_end_offset: usize = 0;
1460
1461 Ok(())
1462 }
1463 }
1464
1465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedResolver {
1466 #[inline(always)]
1467 fn new_empty() -> Self {
1468 Self::default()
1469 }
1470
1471 unsafe fn decode(
1472 &mut self,
1473 decoder: &mut fidl::encoding::Decoder<'_, D>,
1474 offset: usize,
1475 mut depth: fidl::encoding::Depth,
1476 ) -> fidl::Result<()> {
1477 decoder.debug_check_bounds::<Self>(offset);
1478 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1479 None => return Err(fidl::Error::NotNullable),
1480 Some(len) => len,
1481 };
1482 if len == 0 {
1484 return Ok(());
1485 };
1486 depth.increment()?;
1487 let envelope_size = 8;
1488 let bytes_len = len * envelope_size;
1489 let offset = decoder.out_of_line_offset(bytes_len)?;
1490 let mut _next_ordinal_to_read = 0;
1492 let mut next_offset = offset;
1493 let end_offset = offset + bytes_len;
1494
1495 while next_offset < end_offset {
1497 _next_ordinal_to_read += 1;
1498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1499 next_offset += envelope_size;
1500 }
1501
1502 Ok(())
1503 }
1504 }
1505
1506 impl AllowlistedRunner {
1507 #[inline(always)]
1508 fn max_ordinal_present(&self) -> u64 {
1509 0
1510 }
1511 }
1512
1513 impl fidl::encoding::ValueTypeMarker for AllowlistedRunner {
1514 type Borrowed<'a> = &'a Self;
1515 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1516 value
1517 }
1518 }
1519
1520 unsafe impl fidl::encoding::TypeMarker for AllowlistedRunner {
1521 type Owned = Self;
1522
1523 #[inline(always)]
1524 fn inline_align(_context: fidl::encoding::Context) -> usize {
1525 8
1526 }
1527
1528 #[inline(always)]
1529 fn inline_size(_context: fidl::encoding::Context) -> usize {
1530 16
1531 }
1532 }
1533
1534 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedRunner, D>
1535 for &AllowlistedRunner
1536 {
1537 unsafe fn encode(
1538 self,
1539 encoder: &mut fidl::encoding::Encoder<'_, D>,
1540 offset: usize,
1541 mut depth: fidl::encoding::Depth,
1542 ) -> fidl::Result<()> {
1543 encoder.debug_check_bounds::<AllowlistedRunner>(offset);
1544 let max_ordinal: u64 = self.max_ordinal_present();
1546 encoder.write_num(max_ordinal, offset);
1547 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1548 if max_ordinal == 0 {
1550 return Ok(());
1551 }
1552 depth.increment()?;
1553 let envelope_size = 8;
1554 let bytes_len = max_ordinal as usize * envelope_size;
1555 #[allow(unused_variables)]
1556 let offset = encoder.out_of_line_offset(bytes_len);
1557 let mut _prev_end_offset: usize = 0;
1558
1559 Ok(())
1560 }
1561 }
1562
1563 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedRunner {
1564 #[inline(always)]
1565 fn new_empty() -> Self {
1566 Self::default()
1567 }
1568
1569 unsafe fn decode(
1570 &mut self,
1571 decoder: &mut fidl::encoding::Decoder<'_, D>,
1572 offset: usize,
1573 mut depth: fidl::encoding::Depth,
1574 ) -> fidl::Result<()> {
1575 decoder.debug_check_bounds::<Self>(offset);
1576 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1577 None => return Err(fidl::Error::NotNullable),
1578 Some(len) => len,
1579 };
1580 if len == 0 {
1582 return Ok(());
1583 };
1584 depth.increment()?;
1585 let envelope_size = 8;
1586 let bytes_len = len * envelope_size;
1587 let offset = decoder.out_of_line_offset(bytes_len)?;
1588 let mut _next_ordinal_to_read = 0;
1590 let mut next_offset = offset;
1591 let end_offset = offset + bytes_len;
1592
1593 while next_offset < end_offset {
1595 _next_ordinal_to_read += 1;
1596 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1597 next_offset += envelope_size;
1598 }
1599
1600 Ok(())
1601 }
1602 }
1603
1604 impl AllowlistedService {
1605 #[inline(always)]
1606 fn max_ordinal_present(&self) -> u64 {
1607 0
1608 }
1609 }
1610
1611 impl fidl::encoding::ValueTypeMarker for AllowlistedService {
1612 type Borrowed<'a> = &'a Self;
1613 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1614 value
1615 }
1616 }
1617
1618 unsafe impl fidl::encoding::TypeMarker for AllowlistedService {
1619 type Owned = Self;
1620
1621 #[inline(always)]
1622 fn inline_align(_context: fidl::encoding::Context) -> usize {
1623 8
1624 }
1625
1626 #[inline(always)]
1627 fn inline_size(_context: fidl::encoding::Context) -> usize {
1628 16
1629 }
1630 }
1631
1632 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedService, D>
1633 for &AllowlistedService
1634 {
1635 unsafe fn encode(
1636 self,
1637 encoder: &mut fidl::encoding::Encoder<'_, D>,
1638 offset: usize,
1639 mut depth: fidl::encoding::Depth,
1640 ) -> fidl::Result<()> {
1641 encoder.debug_check_bounds::<AllowlistedService>(offset);
1642 let max_ordinal: u64 = self.max_ordinal_present();
1644 encoder.write_num(max_ordinal, offset);
1645 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1646 if max_ordinal == 0 {
1648 return Ok(());
1649 }
1650 depth.increment()?;
1651 let envelope_size = 8;
1652 let bytes_len = max_ordinal as usize * envelope_size;
1653 #[allow(unused_variables)]
1654 let offset = encoder.out_of_line_offset(bytes_len);
1655 let mut _prev_end_offset: usize = 0;
1656
1657 Ok(())
1658 }
1659 }
1660
1661 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedService {
1662 #[inline(always)]
1663 fn new_empty() -> Self {
1664 Self::default()
1665 }
1666
1667 unsafe fn decode(
1668 &mut self,
1669 decoder: &mut fidl::encoding::Decoder<'_, D>,
1670 offset: usize,
1671 mut depth: fidl::encoding::Depth,
1672 ) -> fidl::Result<()> {
1673 decoder.debug_check_bounds::<Self>(offset);
1674 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1675 None => return Err(fidl::Error::NotNullable),
1676 Some(len) => len,
1677 };
1678 if len == 0 {
1680 return Ok(());
1681 };
1682 depth.increment()?;
1683 let envelope_size = 8;
1684 let bytes_len = len * envelope_size;
1685 let offset = decoder.out_of_line_offset(bytes_len)?;
1686 let mut _next_ordinal_to_read = 0;
1688 let mut next_offset = offset;
1689 let end_offset = offset + bytes_len;
1690
1691 while next_offset < end_offset {
1693 _next_ordinal_to_read += 1;
1694 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1695 next_offset += envelope_size;
1696 }
1697
1698 Ok(())
1699 }
1700 }
1701
1702 impl AllowlistedStorage {
1703 #[inline(always)]
1704 fn max_ordinal_present(&self) -> u64 {
1705 0
1706 }
1707 }
1708
1709 impl fidl::encoding::ValueTypeMarker for AllowlistedStorage {
1710 type Borrowed<'a> = &'a Self;
1711 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1712 value
1713 }
1714 }
1715
1716 unsafe impl fidl::encoding::TypeMarker for AllowlistedStorage {
1717 type Owned = Self;
1718
1719 #[inline(always)]
1720 fn inline_align(_context: fidl::encoding::Context) -> usize {
1721 8
1722 }
1723
1724 #[inline(always)]
1725 fn inline_size(_context: fidl::encoding::Context) -> usize {
1726 16
1727 }
1728 }
1729
1730 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedStorage, D>
1731 for &AllowlistedStorage
1732 {
1733 unsafe fn encode(
1734 self,
1735 encoder: &mut fidl::encoding::Encoder<'_, D>,
1736 offset: usize,
1737 mut depth: fidl::encoding::Depth,
1738 ) -> fidl::Result<()> {
1739 encoder.debug_check_bounds::<AllowlistedStorage>(offset);
1740 let max_ordinal: u64 = self.max_ordinal_present();
1742 encoder.write_num(max_ordinal, offset);
1743 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1744 if max_ordinal == 0 {
1746 return Ok(());
1747 }
1748 depth.increment()?;
1749 let envelope_size = 8;
1750 let bytes_len = max_ordinal as usize * envelope_size;
1751 #[allow(unused_variables)]
1752 let offset = encoder.out_of_line_offset(bytes_len);
1753 let mut _prev_end_offset: usize = 0;
1754
1755 Ok(())
1756 }
1757 }
1758
1759 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedStorage {
1760 #[inline(always)]
1761 fn new_empty() -> Self {
1762 Self::default()
1763 }
1764
1765 unsafe fn decode(
1766 &mut self,
1767 decoder: &mut fidl::encoding::Decoder<'_, D>,
1768 offset: usize,
1769 mut depth: fidl::encoding::Depth,
1770 ) -> fidl::Result<()> {
1771 decoder.debug_check_bounds::<Self>(offset);
1772 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1773 None => return Err(fidl::Error::NotNullable),
1774 Some(len) => len,
1775 };
1776 if len == 0 {
1778 return Ok(());
1779 };
1780 depth.increment()?;
1781 let envelope_size = 8;
1782 let bytes_len = len * envelope_size;
1783 let offset = decoder.out_of_line_offset(bytes_len)?;
1784 let mut _next_ordinal_to_read = 0;
1786 let mut next_offset = offset;
1787 let end_offset = offset + bytes_len;
1788
1789 while next_offset < end_offset {
1791 _next_ordinal_to_read += 1;
1792 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1793 next_offset += envelope_size;
1794 }
1795
1796 Ok(())
1797 }
1798 }
1799
1800 impl CapabilityAllowlistEntry {
1801 #[inline(always)]
1802 fn max_ordinal_present(&self) -> u64 {
1803 if let Some(_) = self.source {
1804 return 5;
1805 }
1806 if let Some(_) = self.target_monikers {
1807 return 4;
1808 }
1809 if let Some(_) = self.capability {
1810 return 3;
1811 }
1812 if let Some(_) = self.source_name {
1813 return 2;
1814 }
1815 if let Some(_) = self.source_moniker {
1816 return 1;
1817 }
1818 0
1819 }
1820 }
1821
1822 impl fidl::encoding::ValueTypeMarker for CapabilityAllowlistEntry {
1823 type Borrowed<'a> = &'a Self;
1824 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1825 value
1826 }
1827 }
1828
1829 unsafe impl fidl::encoding::TypeMarker for CapabilityAllowlistEntry {
1830 type Owned = Self;
1831
1832 #[inline(always)]
1833 fn inline_align(_context: fidl::encoding::Context) -> usize {
1834 8
1835 }
1836
1837 #[inline(always)]
1838 fn inline_size(_context: fidl::encoding::Context) -> usize {
1839 16
1840 }
1841 }
1842
1843 unsafe impl<D: fidl::encoding::ResourceDialect>
1844 fidl::encoding::Encode<CapabilityAllowlistEntry, D> for &CapabilityAllowlistEntry
1845 {
1846 unsafe fn encode(
1847 self,
1848 encoder: &mut fidl::encoding::Encoder<'_, D>,
1849 offset: usize,
1850 mut depth: fidl::encoding::Depth,
1851 ) -> fidl::Result<()> {
1852 encoder.debug_check_bounds::<CapabilityAllowlistEntry>(offset);
1853 let max_ordinal: u64 = self.max_ordinal_present();
1855 encoder.write_num(max_ordinal, offset);
1856 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1857 if max_ordinal == 0 {
1859 return Ok(());
1860 }
1861 depth.increment()?;
1862 let envelope_size = 8;
1863 let bytes_len = max_ordinal as usize * envelope_size;
1864 #[allow(unused_variables)]
1865 let offset = encoder.out_of_line_offset(bytes_len);
1866 let mut _prev_end_offset: usize = 0;
1867 if 1 > max_ordinal {
1868 return Ok(());
1869 }
1870
1871 let cur_offset: usize = (1 - 1) * envelope_size;
1874
1875 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1877
1878 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
1883 self.source_moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
1884 encoder, offset + cur_offset, depth
1885 )?;
1886
1887 _prev_end_offset = cur_offset + envelope_size;
1888 if 2 > max_ordinal {
1889 return Ok(());
1890 }
1891
1892 let cur_offset: usize = (2 - 1) * envelope_size;
1895
1896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1898
1899 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
1904 self.source_name.as_ref().map(
1905 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
1906 ),
1907 encoder,
1908 offset + cur_offset,
1909 depth,
1910 )?;
1911
1912 _prev_end_offset = cur_offset + envelope_size;
1913 if 3 > max_ordinal {
1914 return Ok(());
1915 }
1916
1917 let cur_offset: usize = (3 - 1) * envelope_size;
1920
1921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1923
1924 fidl::encoding::encode_in_envelope_optional::<AllowlistedCapability, D>(
1929 self.capability
1930 .as_ref()
1931 .map(<AllowlistedCapability as fidl::encoding::ValueTypeMarker>::borrow),
1932 encoder,
1933 offset + cur_offset,
1934 depth,
1935 )?;
1936
1937 _prev_end_offset = cur_offset + envelope_size;
1938 if 4 > max_ordinal {
1939 return Ok(());
1940 }
1941
1942 let cur_offset: usize = (4 - 1) * envelope_size;
1945
1946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1948
1949 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
1954 self.target_monikers.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
1955 encoder, offset + cur_offset, depth
1956 )?;
1957
1958 _prev_end_offset = cur_offset + envelope_size;
1959 if 5 > max_ordinal {
1960 return Ok(());
1961 }
1962
1963 let cur_offset: usize = (5 - 1) * envelope_size;
1966
1967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1969
1970 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Ref, D>(
1975 self.source.as_ref().map(<fidl_fuchsia_component_decl__common::Ref as fidl::encoding::ValueTypeMarker>::borrow),
1976 encoder, offset + cur_offset, depth
1977 )?;
1978
1979 _prev_end_offset = cur_offset + envelope_size;
1980
1981 Ok(())
1982 }
1983 }
1984
1985 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1986 for CapabilityAllowlistEntry
1987 {
1988 #[inline(always)]
1989 fn new_empty() -> Self {
1990 Self::default()
1991 }
1992
1993 unsafe fn decode(
1994 &mut self,
1995 decoder: &mut fidl::encoding::Decoder<'_, D>,
1996 offset: usize,
1997 mut depth: fidl::encoding::Depth,
1998 ) -> fidl::Result<()> {
1999 decoder.debug_check_bounds::<Self>(offset);
2000 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2001 None => return Err(fidl::Error::NotNullable),
2002 Some(len) => len,
2003 };
2004 if len == 0 {
2006 return Ok(());
2007 };
2008 depth.increment()?;
2009 let envelope_size = 8;
2010 let bytes_len = len * envelope_size;
2011 let offset = decoder.out_of_line_offset(bytes_len)?;
2012 let mut _next_ordinal_to_read = 0;
2014 let mut next_offset = offset;
2015 let end_offset = offset + bytes_len;
2016 _next_ordinal_to_read += 1;
2017 if next_offset >= end_offset {
2018 return Ok(());
2019 }
2020
2021 while _next_ordinal_to_read < 1 {
2023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2024 _next_ordinal_to_read += 1;
2025 next_offset += envelope_size;
2026 }
2027
2028 let next_out_of_line = decoder.next_out_of_line();
2029 let handles_before = decoder.remaining_handles();
2030 if let Some((inlined, num_bytes, num_handles)) =
2031 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2032 {
2033 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2034 if inlined != (member_inline_size <= 4) {
2035 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2036 }
2037 let inner_offset;
2038 let mut inner_depth = depth.clone();
2039 if inlined {
2040 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2041 inner_offset = next_offset;
2042 } else {
2043 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2044 inner_depth.increment()?;
2045 }
2046 let val_ref = self.source_moniker.get_or_insert_with(|| {
2047 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
2048 });
2049 fidl::decode!(
2050 fidl::encoding::BoundedString<4096>,
2051 D,
2052 val_ref,
2053 decoder,
2054 inner_offset,
2055 inner_depth
2056 )?;
2057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2058 {
2059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2060 }
2061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2063 }
2064 }
2065
2066 next_offset += envelope_size;
2067 _next_ordinal_to_read += 1;
2068 if next_offset >= end_offset {
2069 return Ok(());
2070 }
2071
2072 while _next_ordinal_to_read < 2 {
2074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2075 _next_ordinal_to_read += 1;
2076 next_offset += envelope_size;
2077 }
2078
2079 let next_out_of_line = decoder.next_out_of_line();
2080 let handles_before = decoder.remaining_handles();
2081 if let Some((inlined, num_bytes, num_handles)) =
2082 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2083 {
2084 let member_inline_size =
2085 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
2086 decoder.context,
2087 );
2088 if inlined != (member_inline_size <= 4) {
2089 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2090 }
2091 let inner_offset;
2092 let mut inner_depth = depth.clone();
2093 if inlined {
2094 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2095 inner_offset = next_offset;
2096 } else {
2097 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2098 inner_depth.increment()?;
2099 }
2100 let val_ref = self
2101 .source_name
2102 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
2103 fidl::decode!(
2104 fidl::encoding::BoundedString<255>,
2105 D,
2106 val_ref,
2107 decoder,
2108 inner_offset,
2109 inner_depth
2110 )?;
2111 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2112 {
2113 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2114 }
2115 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2116 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2117 }
2118 }
2119
2120 next_offset += envelope_size;
2121 _next_ordinal_to_read += 1;
2122 if next_offset >= end_offset {
2123 return Ok(());
2124 }
2125
2126 while _next_ordinal_to_read < 3 {
2128 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2129 _next_ordinal_to_read += 1;
2130 next_offset += envelope_size;
2131 }
2132
2133 let next_out_of_line = decoder.next_out_of_line();
2134 let handles_before = decoder.remaining_handles();
2135 if let Some((inlined, num_bytes, num_handles)) =
2136 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2137 {
2138 let member_inline_size =
2139 <AllowlistedCapability as fidl::encoding::TypeMarker>::inline_size(
2140 decoder.context,
2141 );
2142 if inlined != (member_inline_size <= 4) {
2143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2144 }
2145 let inner_offset;
2146 let mut inner_depth = depth.clone();
2147 if inlined {
2148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2149 inner_offset = next_offset;
2150 } else {
2151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2152 inner_depth.increment()?;
2153 }
2154 let val_ref = self
2155 .capability
2156 .get_or_insert_with(|| fidl::new_empty!(AllowlistedCapability, D));
2157 fidl::decode!(
2158 AllowlistedCapability,
2159 D,
2160 val_ref,
2161 decoder,
2162 inner_offset,
2163 inner_depth
2164 )?;
2165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2166 {
2167 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2168 }
2169 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2170 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2171 }
2172 }
2173
2174 next_offset += envelope_size;
2175 _next_ordinal_to_read += 1;
2176 if next_offset >= end_offset {
2177 return Ok(());
2178 }
2179
2180 while _next_ordinal_to_read < 4 {
2182 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2183 _next_ordinal_to_read += 1;
2184 next_offset += envelope_size;
2185 }
2186
2187 let next_out_of_line = decoder.next_out_of_line();
2188 let handles_before = decoder.remaining_handles();
2189 if let Some((inlined, num_bytes, num_handles)) =
2190 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2191 {
2192 let member_inline_size = <fidl::encoding::Vector<
2193 fidl::encoding::BoundedString<4096>,
2194 128,
2195 > as fidl::encoding::TypeMarker>::inline_size(
2196 decoder.context
2197 );
2198 if inlined != (member_inline_size <= 4) {
2199 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2200 }
2201 let inner_offset;
2202 let mut inner_depth = depth.clone();
2203 if inlined {
2204 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2205 inner_offset = next_offset;
2206 } else {
2207 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2208 inner_depth.increment()?;
2209 }
2210 let val_ref = self.target_monikers.get_or_insert_with(|| {
2211 fidl::new_empty!(
2212 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
2213 D
2214 )
2215 });
2216 fidl::decode!(
2217 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
2218 D,
2219 val_ref,
2220 decoder,
2221 inner_offset,
2222 inner_depth
2223 )?;
2224 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2225 {
2226 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2227 }
2228 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2229 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2230 }
2231 }
2232
2233 next_offset += envelope_size;
2234 _next_ordinal_to_read += 1;
2235 if next_offset >= end_offset {
2236 return Ok(());
2237 }
2238
2239 while _next_ordinal_to_read < 5 {
2241 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2242 _next_ordinal_to_read += 1;
2243 next_offset += envelope_size;
2244 }
2245
2246 let next_out_of_line = decoder.next_out_of_line();
2247 let handles_before = decoder.remaining_handles();
2248 if let Some((inlined, num_bytes, num_handles)) =
2249 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2250 {
2251 let member_inline_size = <fidl_fuchsia_component_decl__common::Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2252 if inlined != (member_inline_size <= 4) {
2253 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2254 }
2255 let inner_offset;
2256 let mut inner_depth = depth.clone();
2257 if inlined {
2258 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2259 inner_offset = next_offset;
2260 } else {
2261 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2262 inner_depth.increment()?;
2263 }
2264 let val_ref = self.source.get_or_insert_with(|| {
2265 fidl::new_empty!(fidl_fuchsia_component_decl__common::Ref, D)
2266 });
2267 fidl::decode!(
2268 fidl_fuchsia_component_decl__common::Ref,
2269 D,
2270 val_ref,
2271 decoder,
2272 inner_offset,
2273 inner_depth
2274 )?;
2275 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2276 {
2277 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2278 }
2279 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2280 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2281 }
2282 }
2283
2284 next_offset += envelope_size;
2285
2286 while next_offset < end_offset {
2288 _next_ordinal_to_read += 1;
2289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2290 next_offset += envelope_size;
2291 }
2292
2293 Ok(())
2294 }
2295 }
2296
2297 impl CapabilityPolicyAllowlists {
2298 #[inline(always)]
2299 fn max_ordinal_present(&self) -> u64 {
2300 if let Some(_) = self.allowlist {
2301 return 1;
2302 }
2303 0
2304 }
2305 }
2306
2307 impl fidl::encoding::ValueTypeMarker for CapabilityPolicyAllowlists {
2308 type Borrowed<'a> = &'a Self;
2309 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2310 value
2311 }
2312 }
2313
2314 unsafe impl fidl::encoding::TypeMarker for CapabilityPolicyAllowlists {
2315 type Owned = Self;
2316
2317 #[inline(always)]
2318 fn inline_align(_context: fidl::encoding::Context) -> usize {
2319 8
2320 }
2321
2322 #[inline(always)]
2323 fn inline_size(_context: fidl::encoding::Context) -> usize {
2324 16
2325 }
2326 }
2327
2328 unsafe impl<D: fidl::encoding::ResourceDialect>
2329 fidl::encoding::Encode<CapabilityPolicyAllowlists, D> for &CapabilityPolicyAllowlists
2330 {
2331 unsafe fn encode(
2332 self,
2333 encoder: &mut fidl::encoding::Encoder<'_, D>,
2334 offset: usize,
2335 mut depth: fidl::encoding::Depth,
2336 ) -> fidl::Result<()> {
2337 encoder.debug_check_bounds::<CapabilityPolicyAllowlists>(offset);
2338 let max_ordinal: u64 = self.max_ordinal_present();
2340 encoder.write_num(max_ordinal, offset);
2341 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2342 if max_ordinal == 0 {
2344 return Ok(());
2345 }
2346 depth.increment()?;
2347 let envelope_size = 8;
2348 let bytes_len = max_ordinal as usize * envelope_size;
2349 #[allow(unused_variables)]
2350 let offset = encoder.out_of_line_offset(bytes_len);
2351 let mut _prev_end_offset: usize = 0;
2352 if 1 > max_ordinal {
2353 return Ok(());
2354 }
2355
2356 let cur_offset: usize = (1 - 1) * envelope_size;
2359
2360 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2362
2363 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CapabilityAllowlistEntry, 128>, D>(
2368 self.allowlist.as_ref().map(<fidl::encoding::Vector<CapabilityAllowlistEntry, 128> as fidl::encoding::ValueTypeMarker>::borrow),
2369 encoder, offset + cur_offset, depth
2370 )?;
2371
2372 _prev_end_offset = cur_offset + envelope_size;
2373
2374 Ok(())
2375 }
2376 }
2377
2378 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2379 for CapabilityPolicyAllowlists
2380 {
2381 #[inline(always)]
2382 fn new_empty() -> Self {
2383 Self::default()
2384 }
2385
2386 unsafe fn decode(
2387 &mut self,
2388 decoder: &mut fidl::encoding::Decoder<'_, D>,
2389 offset: usize,
2390 mut depth: fidl::encoding::Depth,
2391 ) -> fidl::Result<()> {
2392 decoder.debug_check_bounds::<Self>(offset);
2393 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2394 None => return Err(fidl::Error::NotNullable),
2395 Some(len) => len,
2396 };
2397 if len == 0 {
2399 return Ok(());
2400 };
2401 depth.increment()?;
2402 let envelope_size = 8;
2403 let bytes_len = len * envelope_size;
2404 let offset = decoder.out_of_line_offset(bytes_len)?;
2405 let mut _next_ordinal_to_read = 0;
2407 let mut next_offset = offset;
2408 let end_offset = offset + bytes_len;
2409 _next_ordinal_to_read += 1;
2410 if next_offset >= end_offset {
2411 return Ok(());
2412 }
2413
2414 while _next_ordinal_to_read < 1 {
2416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2417 _next_ordinal_to_read += 1;
2418 next_offset += envelope_size;
2419 }
2420
2421 let next_out_of_line = decoder.next_out_of_line();
2422 let handles_before = decoder.remaining_handles();
2423 if let Some((inlined, num_bytes, num_handles)) =
2424 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2425 {
2426 let member_inline_size = <fidl::encoding::Vector<CapabilityAllowlistEntry, 128> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2427 if inlined != (member_inline_size <= 4) {
2428 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2429 }
2430 let inner_offset;
2431 let mut inner_depth = depth.clone();
2432 if inlined {
2433 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2434 inner_offset = next_offset;
2435 } else {
2436 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2437 inner_depth.increment()?;
2438 }
2439 let val_ref = self.allowlist.get_or_insert_with(
2440 || fidl::new_empty!(fidl::encoding::Vector<CapabilityAllowlistEntry, 128>, D),
2441 );
2442 fidl::decode!(fidl::encoding::Vector<CapabilityAllowlistEntry, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
2443 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2444 {
2445 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2446 }
2447 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2448 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2449 }
2450 }
2451
2452 next_offset += envelope_size;
2453
2454 while next_offset < end_offset {
2456 _next_ordinal_to_read += 1;
2457 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2458 next_offset += envelope_size;
2459 }
2460
2461 Ok(())
2462 }
2463 }
2464
2465 impl ChildPolicyAllowlists {
2466 #[inline(always)]
2467 fn max_ordinal_present(&self) -> u64 {
2468 if let Some(_) = self.reboot_on_terminate {
2469 return 1;
2470 }
2471 0
2472 }
2473 }
2474
2475 impl fidl::encoding::ValueTypeMarker for ChildPolicyAllowlists {
2476 type Borrowed<'a> = &'a Self;
2477 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2478 value
2479 }
2480 }
2481
2482 unsafe impl fidl::encoding::TypeMarker for ChildPolicyAllowlists {
2483 type Owned = Self;
2484
2485 #[inline(always)]
2486 fn inline_align(_context: fidl::encoding::Context) -> usize {
2487 8
2488 }
2489
2490 #[inline(always)]
2491 fn inline_size(_context: fidl::encoding::Context) -> usize {
2492 16
2493 }
2494 }
2495
2496 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChildPolicyAllowlists, D>
2497 for &ChildPolicyAllowlists
2498 {
2499 unsafe fn encode(
2500 self,
2501 encoder: &mut fidl::encoding::Encoder<'_, D>,
2502 offset: usize,
2503 mut depth: fidl::encoding::Depth,
2504 ) -> fidl::Result<()> {
2505 encoder.debug_check_bounds::<ChildPolicyAllowlists>(offset);
2506 let max_ordinal: u64 = self.max_ordinal_present();
2508 encoder.write_num(max_ordinal, offset);
2509 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2510 if max_ordinal == 0 {
2512 return Ok(());
2513 }
2514 depth.increment()?;
2515 let envelope_size = 8;
2516 let bytes_len = max_ordinal as usize * envelope_size;
2517 #[allow(unused_variables)]
2518 let offset = encoder.out_of_line_offset(bytes_len);
2519 let mut _prev_end_offset: usize = 0;
2520 if 1 > max_ordinal {
2521 return Ok(());
2522 }
2523
2524 let cur_offset: usize = (1 - 1) * envelope_size;
2527
2528 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2530
2531 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
2536 self.reboot_on_terminate.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
2537 encoder, offset + cur_offset, depth
2538 )?;
2539
2540 _prev_end_offset = cur_offset + envelope_size;
2541
2542 Ok(())
2543 }
2544 }
2545
2546 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChildPolicyAllowlists {
2547 #[inline(always)]
2548 fn new_empty() -> Self {
2549 Self::default()
2550 }
2551
2552 unsafe fn decode(
2553 &mut self,
2554 decoder: &mut fidl::encoding::Decoder<'_, D>,
2555 offset: usize,
2556 mut depth: fidl::encoding::Depth,
2557 ) -> fidl::Result<()> {
2558 decoder.debug_check_bounds::<Self>(offset);
2559 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2560 None => return Err(fidl::Error::NotNullable),
2561 Some(len) => len,
2562 };
2563 if len == 0 {
2565 return Ok(());
2566 };
2567 depth.increment()?;
2568 let envelope_size = 8;
2569 let bytes_len = len * envelope_size;
2570 let offset = decoder.out_of_line_offset(bytes_len)?;
2571 let mut _next_ordinal_to_read = 0;
2573 let mut next_offset = offset;
2574 let end_offset = offset + bytes_len;
2575 _next_ordinal_to_read += 1;
2576 if next_offset >= end_offset {
2577 return Ok(());
2578 }
2579
2580 while _next_ordinal_to_read < 1 {
2582 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2583 _next_ordinal_to_read += 1;
2584 next_offset += envelope_size;
2585 }
2586
2587 let next_out_of_line = decoder.next_out_of_line();
2588 let handles_before = decoder.remaining_handles();
2589 if let Some((inlined, num_bytes, num_handles)) =
2590 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2591 {
2592 let member_inline_size = <fidl::encoding::Vector<
2593 fidl::encoding::BoundedString<4096>,
2594 128,
2595 > as fidl::encoding::TypeMarker>::inline_size(
2596 decoder.context
2597 );
2598 if inlined != (member_inline_size <= 4) {
2599 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2600 }
2601 let inner_offset;
2602 let mut inner_depth = depth.clone();
2603 if inlined {
2604 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2605 inner_offset = next_offset;
2606 } else {
2607 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2608 inner_depth.increment()?;
2609 }
2610 let val_ref = self.reboot_on_terminate.get_or_insert_with(|| {
2611 fidl::new_empty!(
2612 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
2613 D
2614 )
2615 });
2616 fidl::decode!(
2617 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
2618 D,
2619 val_ref,
2620 decoder,
2621 inner_offset,
2622 inner_depth
2623 )?;
2624 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2625 {
2626 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2627 }
2628 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2629 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2630 }
2631 }
2632
2633 next_offset += envelope_size;
2634
2635 while next_offset < end_offset {
2637 _next_ordinal_to_read += 1;
2638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2639 next_offset += envelope_size;
2640 }
2641
2642 Ok(())
2643 }
2644 }
2645
2646 impl ComponentIdIndex {
2647 #[inline(always)]
2648 fn max_ordinal_present(&self) -> u64 {
2649 if let Some(_) = self.instances {
2650 return 2;
2651 }
2652 0
2653 }
2654 }
2655
2656 impl fidl::encoding::ValueTypeMarker for ComponentIdIndex {
2657 type Borrowed<'a> = &'a Self;
2658 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2659 value
2660 }
2661 }
2662
2663 unsafe impl fidl::encoding::TypeMarker for ComponentIdIndex {
2664 type Owned = Self;
2665
2666 #[inline(always)]
2667 fn inline_align(_context: fidl::encoding::Context) -> usize {
2668 8
2669 }
2670
2671 #[inline(always)]
2672 fn inline_size(_context: fidl::encoding::Context) -> usize {
2673 16
2674 }
2675 }
2676
2677 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentIdIndex, D>
2678 for &ComponentIdIndex
2679 {
2680 unsafe fn encode(
2681 self,
2682 encoder: &mut fidl::encoding::Encoder<'_, D>,
2683 offset: usize,
2684 mut depth: fidl::encoding::Depth,
2685 ) -> fidl::Result<()> {
2686 encoder.debug_check_bounds::<ComponentIdIndex>(offset);
2687 let max_ordinal: u64 = self.max_ordinal_present();
2689 encoder.write_num(max_ordinal, offset);
2690 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2691 if max_ordinal == 0 {
2693 return Ok(());
2694 }
2695 depth.increment()?;
2696 let envelope_size = 8;
2697 let bytes_len = max_ordinal as usize * envelope_size;
2698 #[allow(unused_variables)]
2699 let offset = encoder.out_of_line_offset(bytes_len);
2700 let mut _prev_end_offset: usize = 0;
2701 if 2 > max_ordinal {
2702 return Ok(());
2703 }
2704
2705 let cur_offset: usize = (2 - 1) * envelope_size;
2708
2709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2711
2712 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<InstanceIdEntry, 1024>, D>(
2717 self.instances.as_ref().map(<fidl::encoding::Vector<InstanceIdEntry, 1024> as fidl::encoding::ValueTypeMarker>::borrow),
2718 encoder, offset + cur_offset, depth
2719 )?;
2720
2721 _prev_end_offset = cur_offset + envelope_size;
2722
2723 Ok(())
2724 }
2725 }
2726
2727 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentIdIndex {
2728 #[inline(always)]
2729 fn new_empty() -> Self {
2730 Self::default()
2731 }
2732
2733 unsafe fn decode(
2734 &mut self,
2735 decoder: &mut fidl::encoding::Decoder<'_, D>,
2736 offset: usize,
2737 mut depth: fidl::encoding::Depth,
2738 ) -> fidl::Result<()> {
2739 decoder.debug_check_bounds::<Self>(offset);
2740 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2741 None => return Err(fidl::Error::NotNullable),
2742 Some(len) => len,
2743 };
2744 if len == 0 {
2746 return Ok(());
2747 };
2748 depth.increment()?;
2749 let envelope_size = 8;
2750 let bytes_len = len * envelope_size;
2751 let offset = decoder.out_of_line_offset(bytes_len)?;
2752 let mut _next_ordinal_to_read = 0;
2754 let mut next_offset = offset;
2755 let end_offset = offset + bytes_len;
2756 _next_ordinal_to_read += 1;
2757 if next_offset >= end_offset {
2758 return Ok(());
2759 }
2760
2761 while _next_ordinal_to_read < 2 {
2763 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2764 _next_ordinal_to_read += 1;
2765 next_offset += envelope_size;
2766 }
2767
2768 let next_out_of_line = decoder.next_out_of_line();
2769 let handles_before = decoder.remaining_handles();
2770 if let Some((inlined, num_bytes, num_handles)) =
2771 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2772 {
2773 let member_inline_size = <fidl::encoding::Vector<InstanceIdEntry, 1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2774 if inlined != (member_inline_size <= 4) {
2775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2776 }
2777 let inner_offset;
2778 let mut inner_depth = depth.clone();
2779 if inlined {
2780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2781 inner_offset = next_offset;
2782 } else {
2783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2784 inner_depth.increment()?;
2785 }
2786 let val_ref = self.instances.get_or_insert_with(
2787 || fidl::new_empty!(fidl::encoding::Vector<InstanceIdEntry, 1024>, D),
2788 );
2789 fidl::decode!(fidl::encoding::Vector<InstanceIdEntry, 1024>, D, val_ref, decoder, inner_offset, inner_depth)?;
2790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2791 {
2792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2793 }
2794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2796 }
2797 }
2798
2799 next_offset += envelope_size;
2800
2801 while next_offset < end_offset {
2803 _next_ordinal_to_read += 1;
2804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2805 next_offset += envelope_size;
2806 }
2807
2808 Ok(())
2809 }
2810 }
2811
2812 impl Config {
2813 #[inline(always)]
2814 fn max_ordinal_present(&self) -> u64 {
2815 if let Some(_) = self.scudo_options {
2816 return 24;
2817 }
2818 if let Some(_) = self.inject_capabilities {
2819 return 23;
2820 }
2821 if let Some(_) = self.trace_provider {
2822 return 22;
2823 }
2824 if let Some(_) = self.health_check {
2825 return 21;
2826 }
2827 if let Some(_) = self.vmex_source {
2828 return 20;
2829 }
2830 if let Some(_) = self.abi_revision_policy {
2831 return 19;
2832 }
2833 if let Some(_) = self.enable_introspection {
2834 return 18;
2835 }
2836 if let Some(_) = self.builtin_capabilities {
2837 return 17;
2838 }
2839 if let Some(_) = self.realm_builder_resolver_and_runner {
2840 return 16;
2841 }
2842 if let Some(_) = self.builtin_boot_resolver {
2843 return 14;
2844 }
2845 if let Some(_) = self.log_all_events {
2846 return 13;
2847 }
2848 if let Some(_) = self.log_destination {
2849 return 12;
2850 }
2851 if let Some(_) = self.component_id_index_path {
2852 return 11;
2853 }
2854 if let Some(_) = self.root_component_url {
2855 return 10;
2856 }
2857 if let Some(_) = self.num_threads {
2858 return 7;
2859 }
2860 if let Some(_) = self.maintain_utc_clock {
2861 return 6;
2862 }
2863 if let Some(_) = self.use_builtin_process_launcher {
2864 return 5;
2865 }
2866 if let Some(_) = self.namespace_capabilities {
2867 return 4;
2868 }
2869 if let Some(_) = self.security_policy {
2870 return 3;
2871 }
2872 if let Some(_) = self.list_children_batch_size {
2873 return 2;
2874 }
2875 if let Some(_) = self.debug {
2876 return 1;
2877 }
2878 0
2879 }
2880 }
2881
2882 impl fidl::encoding::ValueTypeMarker for Config {
2883 type Borrowed<'a> = &'a Self;
2884 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2885 value
2886 }
2887 }
2888
2889 unsafe impl fidl::encoding::TypeMarker for Config {
2890 type Owned = Self;
2891
2892 #[inline(always)]
2893 fn inline_align(_context: fidl::encoding::Context) -> usize {
2894 8
2895 }
2896
2897 #[inline(always)]
2898 fn inline_size(_context: fidl::encoding::Context) -> usize {
2899 16
2900 }
2901 }
2902
2903 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
2904 unsafe fn encode(
2905 self,
2906 encoder: &mut fidl::encoding::Encoder<'_, D>,
2907 offset: usize,
2908 mut depth: fidl::encoding::Depth,
2909 ) -> fidl::Result<()> {
2910 encoder.debug_check_bounds::<Config>(offset);
2911 let max_ordinal: u64 = self.max_ordinal_present();
2913 encoder.write_num(max_ordinal, offset);
2914 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2915 if max_ordinal == 0 {
2917 return Ok(());
2918 }
2919 depth.increment()?;
2920 let envelope_size = 8;
2921 let bytes_len = max_ordinal as usize * envelope_size;
2922 #[allow(unused_variables)]
2923 let offset = encoder.out_of_line_offset(bytes_len);
2924 let mut _prev_end_offset: usize = 0;
2925 if 1 > max_ordinal {
2926 return Ok(());
2927 }
2928
2929 let cur_offset: usize = (1 - 1) * envelope_size;
2932
2933 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2935
2936 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2941 self.debug.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2942 encoder,
2943 offset + cur_offset,
2944 depth,
2945 )?;
2946
2947 _prev_end_offset = cur_offset + envelope_size;
2948 if 2 > max_ordinal {
2949 return Ok(());
2950 }
2951
2952 let cur_offset: usize = (2 - 1) * envelope_size;
2955
2956 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2958
2959 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2964 self.list_children_batch_size
2965 .as_ref()
2966 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2967 encoder,
2968 offset + cur_offset,
2969 depth,
2970 )?;
2971
2972 _prev_end_offset = cur_offset + envelope_size;
2973 if 3 > max_ordinal {
2974 return Ok(());
2975 }
2976
2977 let cur_offset: usize = (3 - 1) * envelope_size;
2980
2981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2983
2984 fidl::encoding::encode_in_envelope_optional::<SecurityPolicy, D>(
2989 self.security_policy
2990 .as_ref()
2991 .map(<SecurityPolicy as fidl::encoding::ValueTypeMarker>::borrow),
2992 encoder,
2993 offset + cur_offset,
2994 depth,
2995 )?;
2996
2997 _prev_end_offset = cur_offset + envelope_size;
2998 if 4 > max_ordinal {
2999 return Ok(());
3000 }
3001
3002 let cur_offset: usize = (4 - 1) * envelope_size;
3005
3006 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3008
3009 fidl::encoding::encode_in_envelope_optional::<
3014 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Capability>,
3015 D,
3016 >(
3017 self.namespace_capabilities.as_ref().map(
3018 <fidl::encoding::UnboundedVector<
3019 fidl_fuchsia_component_decl__common::Capability,
3020 > as fidl::encoding::ValueTypeMarker>::borrow,
3021 ),
3022 encoder,
3023 offset + cur_offset,
3024 depth,
3025 )?;
3026
3027 _prev_end_offset = cur_offset + envelope_size;
3028 if 5 > max_ordinal {
3029 return Ok(());
3030 }
3031
3032 let cur_offset: usize = (5 - 1) * envelope_size;
3035
3036 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3038
3039 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3044 self.use_builtin_process_launcher
3045 .as_ref()
3046 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3047 encoder,
3048 offset + cur_offset,
3049 depth,
3050 )?;
3051
3052 _prev_end_offset = cur_offset + envelope_size;
3053 if 6 > max_ordinal {
3054 return Ok(());
3055 }
3056
3057 let cur_offset: usize = (6 - 1) * envelope_size;
3060
3061 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3063
3064 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3069 self.maintain_utc_clock
3070 .as_ref()
3071 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3072 encoder,
3073 offset + cur_offset,
3074 depth,
3075 )?;
3076
3077 _prev_end_offset = cur_offset + envelope_size;
3078 if 7 > max_ordinal {
3079 return Ok(());
3080 }
3081
3082 let cur_offset: usize = (7 - 1) * envelope_size;
3085
3086 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3088
3089 fidl::encoding::encode_in_envelope_optional::<u8, D>(
3094 self.num_threads.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
3095 encoder,
3096 offset + cur_offset,
3097 depth,
3098 )?;
3099
3100 _prev_end_offset = cur_offset + envelope_size;
3101 if 10 > max_ordinal {
3102 return Ok(());
3103 }
3104
3105 let cur_offset: usize = (10 - 1) * envelope_size;
3108
3109 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3111
3112 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
3117 self.root_component_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
3118 encoder, offset + cur_offset, depth
3119 )?;
3120
3121 _prev_end_offset = cur_offset + envelope_size;
3122 if 11 > max_ordinal {
3123 return Ok(());
3124 }
3125
3126 let cur_offset: usize = (11 - 1) * envelope_size;
3129
3130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3132
3133 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
3138 self.component_id_index_path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
3139 encoder, offset + cur_offset, depth
3140 )?;
3141
3142 _prev_end_offset = cur_offset + envelope_size;
3143 if 12 > max_ordinal {
3144 return Ok(());
3145 }
3146
3147 let cur_offset: usize = (12 - 1) * envelope_size;
3150
3151 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3153
3154 fidl::encoding::encode_in_envelope_optional::<LogDestination, D>(
3159 self.log_destination
3160 .as_ref()
3161 .map(<LogDestination as fidl::encoding::ValueTypeMarker>::borrow),
3162 encoder,
3163 offset + cur_offset,
3164 depth,
3165 )?;
3166
3167 _prev_end_offset = cur_offset + envelope_size;
3168 if 13 > max_ordinal {
3169 return Ok(());
3170 }
3171
3172 let cur_offset: usize = (13 - 1) * envelope_size;
3175
3176 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3178
3179 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3184 self.log_all_events.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3185 encoder,
3186 offset + cur_offset,
3187 depth,
3188 )?;
3189
3190 _prev_end_offset = cur_offset + envelope_size;
3191 if 14 > max_ordinal {
3192 return Ok(());
3193 }
3194
3195 let cur_offset: usize = (14 - 1) * envelope_size;
3198
3199 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3201
3202 fidl::encoding::encode_in_envelope_optional::<BuiltinBootResolver, D>(
3207 self.builtin_boot_resolver
3208 .as_ref()
3209 .map(<BuiltinBootResolver as fidl::encoding::ValueTypeMarker>::borrow),
3210 encoder,
3211 offset + cur_offset,
3212 depth,
3213 )?;
3214
3215 _prev_end_offset = cur_offset + envelope_size;
3216 if 16 > max_ordinal {
3217 return Ok(());
3218 }
3219
3220 let cur_offset: usize = (16 - 1) * envelope_size;
3223
3224 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3226
3227 fidl::encoding::encode_in_envelope_optional::<RealmBuilderResolverAndRunner, D>(
3232 self.realm_builder_resolver_and_runner.as_ref().map(
3233 <RealmBuilderResolverAndRunner as fidl::encoding::ValueTypeMarker>::borrow,
3234 ),
3235 encoder,
3236 offset + cur_offset,
3237 depth,
3238 )?;
3239
3240 _prev_end_offset = cur_offset + envelope_size;
3241 if 17 > max_ordinal {
3242 return Ok(());
3243 }
3244
3245 let cur_offset: usize = (17 - 1) * envelope_size;
3248
3249 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3251
3252 fidl::encoding::encode_in_envelope_optional::<
3257 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Capability>,
3258 D,
3259 >(
3260 self.builtin_capabilities.as_ref().map(
3261 <fidl::encoding::UnboundedVector<
3262 fidl_fuchsia_component_decl__common::Capability,
3263 > as fidl::encoding::ValueTypeMarker>::borrow,
3264 ),
3265 encoder,
3266 offset + cur_offset,
3267 depth,
3268 )?;
3269
3270 _prev_end_offset = cur_offset + envelope_size;
3271 if 18 > max_ordinal {
3272 return Ok(());
3273 }
3274
3275 let cur_offset: usize = (18 - 1) * envelope_size;
3278
3279 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3281
3282 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3287 self.enable_introspection
3288 .as_ref()
3289 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3290 encoder,
3291 offset + cur_offset,
3292 depth,
3293 )?;
3294
3295 _prev_end_offset = cur_offset + envelope_size;
3296 if 19 > max_ordinal {
3297 return Ok(());
3298 }
3299
3300 let cur_offset: usize = (19 - 1) * envelope_size;
3303
3304 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3306
3307 fidl::encoding::encode_in_envelope_optional::<AbiRevisionPolicy, D>(
3312 self.abi_revision_policy
3313 .as_ref()
3314 .map(<AbiRevisionPolicy as fidl::encoding::ValueTypeMarker>::borrow),
3315 encoder,
3316 offset + cur_offset,
3317 depth,
3318 )?;
3319
3320 _prev_end_offset = cur_offset + envelope_size;
3321 if 20 > max_ordinal {
3322 return Ok(());
3323 }
3324
3325 let cur_offset: usize = (20 - 1) * envelope_size;
3328
3329 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3331
3332 fidl::encoding::encode_in_envelope_optional::<VmexSource, D>(
3337 self.vmex_source
3338 .as_ref()
3339 .map(<VmexSource as fidl::encoding::ValueTypeMarker>::borrow),
3340 encoder,
3341 offset + cur_offset,
3342 depth,
3343 )?;
3344
3345 _prev_end_offset = cur_offset + envelope_size;
3346 if 21 > max_ordinal {
3347 return Ok(());
3348 }
3349
3350 let cur_offset: usize = (21 - 1) * envelope_size;
3353
3354 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3356
3357 fidl::encoding::encode_in_envelope_optional::<HealthCheck, D>(
3362 self.health_check
3363 .as_ref()
3364 .map(<HealthCheck as fidl::encoding::ValueTypeMarker>::borrow),
3365 encoder,
3366 offset + cur_offset,
3367 depth,
3368 )?;
3369
3370 _prev_end_offset = cur_offset + envelope_size;
3371 if 22 > max_ordinal {
3372 return Ok(());
3373 }
3374
3375 let cur_offset: usize = (22 - 1) * envelope_size;
3378
3379 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3381
3382 fidl::encoding::encode_in_envelope_optional::<TraceProvider, D>(
3387 self.trace_provider
3388 .as_ref()
3389 .map(<TraceProvider as fidl::encoding::ValueTypeMarker>::borrow),
3390 encoder,
3391 offset + cur_offset,
3392 depth,
3393 )?;
3394
3395 _prev_end_offset = cur_offset + envelope_size;
3396 if 23 > max_ordinal {
3397 return Ok(());
3398 }
3399
3400 let cur_offset: usize = (23 - 1) * envelope_size;
3403
3404 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3406
3407 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<InjectedCapabilities>, D>(
3412 self.inject_capabilities.as_ref().map(<fidl::encoding::UnboundedVector<InjectedCapabilities> as fidl::encoding::ValueTypeMarker>::borrow),
3413 encoder, offset + cur_offset, depth
3414 )?;
3415
3416 _prev_end_offset = cur_offset + envelope_size;
3417 if 24 > max_ordinal {
3418 return Ok(());
3419 }
3420
3421 let cur_offset: usize = (24 - 1) * envelope_size;
3424
3425 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3427
3428 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3433 self.scudo_options.as_ref().map(
3434 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3435 ),
3436 encoder,
3437 offset + cur_offset,
3438 depth,
3439 )?;
3440
3441 _prev_end_offset = cur_offset + envelope_size;
3442
3443 Ok(())
3444 }
3445 }
3446
3447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
3448 #[inline(always)]
3449 fn new_empty() -> Self {
3450 Self::default()
3451 }
3452
3453 unsafe fn decode(
3454 &mut self,
3455 decoder: &mut fidl::encoding::Decoder<'_, D>,
3456 offset: usize,
3457 mut depth: fidl::encoding::Depth,
3458 ) -> fidl::Result<()> {
3459 decoder.debug_check_bounds::<Self>(offset);
3460 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3461 None => return Err(fidl::Error::NotNullable),
3462 Some(len) => len,
3463 };
3464 if len == 0 {
3466 return Ok(());
3467 };
3468 depth.increment()?;
3469 let envelope_size = 8;
3470 let bytes_len = len * envelope_size;
3471 let offset = decoder.out_of_line_offset(bytes_len)?;
3472 let mut _next_ordinal_to_read = 0;
3474 let mut next_offset = offset;
3475 let end_offset = offset + bytes_len;
3476 _next_ordinal_to_read += 1;
3477 if next_offset >= end_offset {
3478 return Ok(());
3479 }
3480
3481 while _next_ordinal_to_read < 1 {
3483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3484 _next_ordinal_to_read += 1;
3485 next_offset += envelope_size;
3486 }
3487
3488 let next_out_of_line = decoder.next_out_of_line();
3489 let handles_before = decoder.remaining_handles();
3490 if let Some((inlined, num_bytes, num_handles)) =
3491 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3492 {
3493 let member_inline_size =
3494 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3495 if inlined != (member_inline_size <= 4) {
3496 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3497 }
3498 let inner_offset;
3499 let mut inner_depth = depth.clone();
3500 if inlined {
3501 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3502 inner_offset = next_offset;
3503 } else {
3504 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3505 inner_depth.increment()?;
3506 }
3507 let val_ref = self.debug.get_or_insert_with(|| fidl::new_empty!(bool, D));
3508 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3509 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3510 {
3511 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3512 }
3513 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3514 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3515 }
3516 }
3517
3518 next_offset += envelope_size;
3519 _next_ordinal_to_read += 1;
3520 if next_offset >= end_offset {
3521 return Ok(());
3522 }
3523
3524 while _next_ordinal_to_read < 2 {
3526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3527 _next_ordinal_to_read += 1;
3528 next_offset += envelope_size;
3529 }
3530
3531 let next_out_of_line = decoder.next_out_of_line();
3532 let handles_before = decoder.remaining_handles();
3533 if let Some((inlined, num_bytes, num_handles)) =
3534 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3535 {
3536 let member_inline_size =
3537 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3538 if inlined != (member_inline_size <= 4) {
3539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3540 }
3541 let inner_offset;
3542 let mut inner_depth = depth.clone();
3543 if inlined {
3544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3545 inner_offset = next_offset;
3546 } else {
3547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3548 inner_depth.increment()?;
3549 }
3550 let val_ref =
3551 self.list_children_batch_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
3552 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3553 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3554 {
3555 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3556 }
3557 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3558 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3559 }
3560 }
3561
3562 next_offset += envelope_size;
3563 _next_ordinal_to_read += 1;
3564 if next_offset >= end_offset {
3565 return Ok(());
3566 }
3567
3568 while _next_ordinal_to_read < 3 {
3570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3571 _next_ordinal_to_read += 1;
3572 next_offset += envelope_size;
3573 }
3574
3575 let next_out_of_line = decoder.next_out_of_line();
3576 let handles_before = decoder.remaining_handles();
3577 if let Some((inlined, num_bytes, num_handles)) =
3578 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3579 {
3580 let member_inline_size =
3581 <SecurityPolicy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3582 if inlined != (member_inline_size <= 4) {
3583 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3584 }
3585 let inner_offset;
3586 let mut inner_depth = depth.clone();
3587 if inlined {
3588 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3589 inner_offset = next_offset;
3590 } else {
3591 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3592 inner_depth.increment()?;
3593 }
3594 let val_ref =
3595 self.security_policy.get_or_insert_with(|| fidl::new_empty!(SecurityPolicy, D));
3596 fidl::decode!(SecurityPolicy, D, val_ref, decoder, inner_offset, inner_depth)?;
3597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3598 {
3599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3600 }
3601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3603 }
3604 }
3605
3606 next_offset += envelope_size;
3607 _next_ordinal_to_read += 1;
3608 if next_offset >= end_offset {
3609 return Ok(());
3610 }
3611
3612 while _next_ordinal_to_read < 4 {
3614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3615 _next_ordinal_to_read += 1;
3616 next_offset += envelope_size;
3617 }
3618
3619 let next_out_of_line = decoder.next_out_of_line();
3620 let handles_before = decoder.remaining_handles();
3621 if let Some((inlined, num_bytes, num_handles)) =
3622 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3623 {
3624 let member_inline_size = <fidl::encoding::UnboundedVector<
3625 fidl_fuchsia_component_decl__common::Capability,
3626 > as fidl::encoding::TypeMarker>::inline_size(
3627 decoder.context
3628 );
3629 if inlined != (member_inline_size <= 4) {
3630 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3631 }
3632 let inner_offset;
3633 let mut inner_depth = depth.clone();
3634 if inlined {
3635 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3636 inner_offset = next_offset;
3637 } else {
3638 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3639 inner_depth.increment()?;
3640 }
3641 let val_ref = self.namespace_capabilities.get_or_insert_with(|| {
3642 fidl::new_empty!(
3643 fidl::encoding::UnboundedVector<
3644 fidl_fuchsia_component_decl__common::Capability,
3645 >,
3646 D
3647 )
3648 });
3649 fidl::decode!(
3650 fidl::encoding::UnboundedVector<
3651 fidl_fuchsia_component_decl__common::Capability,
3652 >,
3653 D,
3654 val_ref,
3655 decoder,
3656 inner_offset,
3657 inner_depth
3658 )?;
3659 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3660 {
3661 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3662 }
3663 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3664 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3665 }
3666 }
3667
3668 next_offset += envelope_size;
3669 _next_ordinal_to_read += 1;
3670 if next_offset >= end_offset {
3671 return Ok(());
3672 }
3673
3674 while _next_ordinal_to_read < 5 {
3676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3677 _next_ordinal_to_read += 1;
3678 next_offset += envelope_size;
3679 }
3680
3681 let next_out_of_line = decoder.next_out_of_line();
3682 let handles_before = decoder.remaining_handles();
3683 if let Some((inlined, num_bytes, num_handles)) =
3684 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3685 {
3686 let member_inline_size =
3687 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3688 if inlined != (member_inline_size <= 4) {
3689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3690 }
3691 let inner_offset;
3692 let mut inner_depth = depth.clone();
3693 if inlined {
3694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3695 inner_offset = next_offset;
3696 } else {
3697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3698 inner_depth.increment()?;
3699 }
3700 let val_ref = self
3701 .use_builtin_process_launcher
3702 .get_or_insert_with(|| fidl::new_empty!(bool, D));
3703 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3704 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3705 {
3706 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3707 }
3708 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3709 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3710 }
3711 }
3712
3713 next_offset += envelope_size;
3714 _next_ordinal_to_read += 1;
3715 if next_offset >= end_offset {
3716 return Ok(());
3717 }
3718
3719 while _next_ordinal_to_read < 6 {
3721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3722 _next_ordinal_to_read += 1;
3723 next_offset += envelope_size;
3724 }
3725
3726 let next_out_of_line = decoder.next_out_of_line();
3727 let handles_before = decoder.remaining_handles();
3728 if let Some((inlined, num_bytes, num_handles)) =
3729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3730 {
3731 let member_inline_size =
3732 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3733 if inlined != (member_inline_size <= 4) {
3734 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3735 }
3736 let inner_offset;
3737 let mut inner_depth = depth.clone();
3738 if inlined {
3739 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3740 inner_offset = next_offset;
3741 } else {
3742 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3743 inner_depth.increment()?;
3744 }
3745 let val_ref =
3746 self.maintain_utc_clock.get_or_insert_with(|| fidl::new_empty!(bool, D));
3747 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3748 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3749 {
3750 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3751 }
3752 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3753 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3754 }
3755 }
3756
3757 next_offset += envelope_size;
3758 _next_ordinal_to_read += 1;
3759 if next_offset >= end_offset {
3760 return Ok(());
3761 }
3762
3763 while _next_ordinal_to_read < 7 {
3765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3766 _next_ordinal_to_read += 1;
3767 next_offset += envelope_size;
3768 }
3769
3770 let next_out_of_line = decoder.next_out_of_line();
3771 let handles_before = decoder.remaining_handles();
3772 if let Some((inlined, num_bytes, num_handles)) =
3773 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3774 {
3775 let member_inline_size =
3776 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3777 if inlined != (member_inline_size <= 4) {
3778 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3779 }
3780 let inner_offset;
3781 let mut inner_depth = depth.clone();
3782 if inlined {
3783 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3784 inner_offset = next_offset;
3785 } else {
3786 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3787 inner_depth.increment()?;
3788 }
3789 let val_ref = self.num_threads.get_or_insert_with(|| fidl::new_empty!(u8, D));
3790 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
3791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3792 {
3793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3794 }
3795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3797 }
3798 }
3799
3800 next_offset += envelope_size;
3801 _next_ordinal_to_read += 1;
3802 if next_offset >= end_offset {
3803 return Ok(());
3804 }
3805
3806 while _next_ordinal_to_read < 10 {
3808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3809 _next_ordinal_to_read += 1;
3810 next_offset += envelope_size;
3811 }
3812
3813 let next_out_of_line = decoder.next_out_of_line();
3814 let handles_before = decoder.remaining_handles();
3815 if let Some((inlined, num_bytes, num_handles)) =
3816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3817 {
3818 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3819 if inlined != (member_inline_size <= 4) {
3820 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3821 }
3822 let inner_offset;
3823 let mut inner_depth = depth.clone();
3824 if inlined {
3825 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3826 inner_offset = next_offset;
3827 } else {
3828 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3829 inner_depth.increment()?;
3830 }
3831 let val_ref = self.root_component_url.get_or_insert_with(|| {
3832 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
3833 });
3834 fidl::decode!(
3835 fidl::encoding::BoundedString<4096>,
3836 D,
3837 val_ref,
3838 decoder,
3839 inner_offset,
3840 inner_depth
3841 )?;
3842 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3843 {
3844 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3845 }
3846 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3847 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3848 }
3849 }
3850
3851 next_offset += envelope_size;
3852 _next_ordinal_to_read += 1;
3853 if next_offset >= end_offset {
3854 return Ok(());
3855 }
3856
3857 while _next_ordinal_to_read < 11 {
3859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3860 _next_ordinal_to_read += 1;
3861 next_offset += envelope_size;
3862 }
3863
3864 let next_out_of_line = decoder.next_out_of_line();
3865 let handles_before = decoder.remaining_handles();
3866 if let Some((inlined, num_bytes, num_handles)) =
3867 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3868 {
3869 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3870 if inlined != (member_inline_size <= 4) {
3871 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3872 }
3873 let inner_offset;
3874 let mut inner_depth = depth.clone();
3875 if inlined {
3876 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3877 inner_offset = next_offset;
3878 } else {
3879 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3880 inner_depth.increment()?;
3881 }
3882 let val_ref = self.component_id_index_path.get_or_insert_with(|| {
3883 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
3884 });
3885 fidl::decode!(
3886 fidl::encoding::BoundedString<4095>,
3887 D,
3888 val_ref,
3889 decoder,
3890 inner_offset,
3891 inner_depth
3892 )?;
3893 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3894 {
3895 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3896 }
3897 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3898 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3899 }
3900 }
3901
3902 next_offset += envelope_size;
3903 _next_ordinal_to_read += 1;
3904 if next_offset >= end_offset {
3905 return Ok(());
3906 }
3907
3908 while _next_ordinal_to_read < 12 {
3910 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3911 _next_ordinal_to_read += 1;
3912 next_offset += envelope_size;
3913 }
3914
3915 let next_out_of_line = decoder.next_out_of_line();
3916 let handles_before = decoder.remaining_handles();
3917 if let Some((inlined, num_bytes, num_handles)) =
3918 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3919 {
3920 let member_inline_size =
3921 <LogDestination as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3922 if inlined != (member_inline_size <= 4) {
3923 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3924 }
3925 let inner_offset;
3926 let mut inner_depth = depth.clone();
3927 if inlined {
3928 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3929 inner_offset = next_offset;
3930 } else {
3931 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3932 inner_depth.increment()?;
3933 }
3934 let val_ref =
3935 self.log_destination.get_or_insert_with(|| fidl::new_empty!(LogDestination, D));
3936 fidl::decode!(LogDestination, D, val_ref, decoder, inner_offset, inner_depth)?;
3937 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3938 {
3939 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3940 }
3941 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3942 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3943 }
3944 }
3945
3946 next_offset += envelope_size;
3947 _next_ordinal_to_read += 1;
3948 if next_offset >= end_offset {
3949 return Ok(());
3950 }
3951
3952 while _next_ordinal_to_read < 13 {
3954 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3955 _next_ordinal_to_read += 1;
3956 next_offset += envelope_size;
3957 }
3958
3959 let next_out_of_line = decoder.next_out_of_line();
3960 let handles_before = decoder.remaining_handles();
3961 if let Some((inlined, num_bytes, num_handles)) =
3962 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3963 {
3964 let member_inline_size =
3965 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3966 if inlined != (member_inline_size <= 4) {
3967 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3968 }
3969 let inner_offset;
3970 let mut inner_depth = depth.clone();
3971 if inlined {
3972 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3973 inner_offset = next_offset;
3974 } else {
3975 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3976 inner_depth.increment()?;
3977 }
3978 let val_ref = self.log_all_events.get_or_insert_with(|| fidl::new_empty!(bool, D));
3979 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3980 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3981 {
3982 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3983 }
3984 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3985 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3986 }
3987 }
3988
3989 next_offset += envelope_size;
3990 _next_ordinal_to_read += 1;
3991 if next_offset >= end_offset {
3992 return Ok(());
3993 }
3994
3995 while _next_ordinal_to_read < 14 {
3997 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3998 _next_ordinal_to_read += 1;
3999 next_offset += envelope_size;
4000 }
4001
4002 let next_out_of_line = decoder.next_out_of_line();
4003 let handles_before = decoder.remaining_handles();
4004 if let Some((inlined, num_bytes, num_handles)) =
4005 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4006 {
4007 let member_inline_size =
4008 <BuiltinBootResolver as fidl::encoding::TypeMarker>::inline_size(
4009 decoder.context,
4010 );
4011 if inlined != (member_inline_size <= 4) {
4012 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4013 }
4014 let inner_offset;
4015 let mut inner_depth = depth.clone();
4016 if inlined {
4017 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4018 inner_offset = next_offset;
4019 } else {
4020 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4021 inner_depth.increment()?;
4022 }
4023 let val_ref = self
4024 .builtin_boot_resolver
4025 .get_or_insert_with(|| fidl::new_empty!(BuiltinBootResolver, D));
4026 fidl::decode!(BuiltinBootResolver, D, val_ref, decoder, inner_offset, inner_depth)?;
4027 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4028 {
4029 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4030 }
4031 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4032 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4033 }
4034 }
4035
4036 next_offset += envelope_size;
4037 _next_ordinal_to_read += 1;
4038 if next_offset >= end_offset {
4039 return Ok(());
4040 }
4041
4042 while _next_ordinal_to_read < 16 {
4044 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4045 _next_ordinal_to_read += 1;
4046 next_offset += envelope_size;
4047 }
4048
4049 let next_out_of_line = decoder.next_out_of_line();
4050 let handles_before = decoder.remaining_handles();
4051 if let Some((inlined, num_bytes, num_handles)) =
4052 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4053 {
4054 let member_inline_size =
4055 <RealmBuilderResolverAndRunner as fidl::encoding::TypeMarker>::inline_size(
4056 decoder.context,
4057 );
4058 if inlined != (member_inline_size <= 4) {
4059 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4060 }
4061 let inner_offset;
4062 let mut inner_depth = depth.clone();
4063 if inlined {
4064 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4065 inner_offset = next_offset;
4066 } else {
4067 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4068 inner_depth.increment()?;
4069 }
4070 let val_ref = self
4071 .realm_builder_resolver_and_runner
4072 .get_or_insert_with(|| fidl::new_empty!(RealmBuilderResolverAndRunner, D));
4073 fidl::decode!(
4074 RealmBuilderResolverAndRunner,
4075 D,
4076 val_ref,
4077 decoder,
4078 inner_offset,
4079 inner_depth
4080 )?;
4081 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4082 {
4083 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4084 }
4085 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4086 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4087 }
4088 }
4089
4090 next_offset += envelope_size;
4091 _next_ordinal_to_read += 1;
4092 if next_offset >= end_offset {
4093 return Ok(());
4094 }
4095
4096 while _next_ordinal_to_read < 17 {
4098 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4099 _next_ordinal_to_read += 1;
4100 next_offset += envelope_size;
4101 }
4102
4103 let next_out_of_line = decoder.next_out_of_line();
4104 let handles_before = decoder.remaining_handles();
4105 if let Some((inlined, num_bytes, num_handles)) =
4106 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4107 {
4108 let member_inline_size = <fidl::encoding::UnboundedVector<
4109 fidl_fuchsia_component_decl__common::Capability,
4110 > as fidl::encoding::TypeMarker>::inline_size(
4111 decoder.context
4112 );
4113 if inlined != (member_inline_size <= 4) {
4114 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4115 }
4116 let inner_offset;
4117 let mut inner_depth = depth.clone();
4118 if inlined {
4119 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4120 inner_offset = next_offset;
4121 } else {
4122 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4123 inner_depth.increment()?;
4124 }
4125 let val_ref = self.builtin_capabilities.get_or_insert_with(|| {
4126 fidl::new_empty!(
4127 fidl::encoding::UnboundedVector<
4128 fidl_fuchsia_component_decl__common::Capability,
4129 >,
4130 D
4131 )
4132 });
4133 fidl::decode!(
4134 fidl::encoding::UnboundedVector<
4135 fidl_fuchsia_component_decl__common::Capability,
4136 >,
4137 D,
4138 val_ref,
4139 decoder,
4140 inner_offset,
4141 inner_depth
4142 )?;
4143 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4144 {
4145 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4146 }
4147 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4148 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4149 }
4150 }
4151
4152 next_offset += envelope_size;
4153 _next_ordinal_to_read += 1;
4154 if next_offset >= end_offset {
4155 return Ok(());
4156 }
4157
4158 while _next_ordinal_to_read < 18 {
4160 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4161 _next_ordinal_to_read += 1;
4162 next_offset += envelope_size;
4163 }
4164
4165 let next_out_of_line = decoder.next_out_of_line();
4166 let handles_before = decoder.remaining_handles();
4167 if let Some((inlined, num_bytes, num_handles)) =
4168 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4169 {
4170 let member_inline_size =
4171 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4172 if inlined != (member_inline_size <= 4) {
4173 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4174 }
4175 let inner_offset;
4176 let mut inner_depth = depth.clone();
4177 if inlined {
4178 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4179 inner_offset = next_offset;
4180 } else {
4181 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4182 inner_depth.increment()?;
4183 }
4184 let val_ref =
4185 self.enable_introspection.get_or_insert_with(|| fidl::new_empty!(bool, D));
4186 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4187 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4188 {
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 }
4195
4196 next_offset += envelope_size;
4197 _next_ordinal_to_read += 1;
4198 if next_offset >= end_offset {
4199 return Ok(());
4200 }
4201
4202 while _next_ordinal_to_read < 19 {
4204 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4205 _next_ordinal_to_read += 1;
4206 next_offset += envelope_size;
4207 }
4208
4209 let next_out_of_line = decoder.next_out_of_line();
4210 let handles_before = decoder.remaining_handles();
4211 if let Some((inlined, num_bytes, num_handles)) =
4212 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4213 {
4214 let member_inline_size =
4215 <AbiRevisionPolicy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4216 if inlined != (member_inline_size <= 4) {
4217 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4218 }
4219 let inner_offset;
4220 let mut inner_depth = depth.clone();
4221 if inlined {
4222 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4223 inner_offset = next_offset;
4224 } else {
4225 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4226 inner_depth.increment()?;
4227 }
4228 let val_ref = self
4229 .abi_revision_policy
4230 .get_or_insert_with(|| fidl::new_empty!(AbiRevisionPolicy, D));
4231 fidl::decode!(AbiRevisionPolicy, D, val_ref, decoder, inner_offset, inner_depth)?;
4232 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4233 {
4234 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4235 }
4236 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4237 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4238 }
4239 }
4240
4241 next_offset += envelope_size;
4242 _next_ordinal_to_read += 1;
4243 if next_offset >= end_offset {
4244 return Ok(());
4245 }
4246
4247 while _next_ordinal_to_read < 20 {
4249 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4250 _next_ordinal_to_read += 1;
4251 next_offset += envelope_size;
4252 }
4253
4254 let next_out_of_line = decoder.next_out_of_line();
4255 let handles_before = decoder.remaining_handles();
4256 if let Some((inlined, num_bytes, num_handles)) =
4257 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4258 {
4259 let member_inline_size =
4260 <VmexSource as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4261 if inlined != (member_inline_size <= 4) {
4262 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4263 }
4264 let inner_offset;
4265 let mut inner_depth = depth.clone();
4266 if inlined {
4267 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4268 inner_offset = next_offset;
4269 } else {
4270 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4271 inner_depth.increment()?;
4272 }
4273 let val_ref =
4274 self.vmex_source.get_or_insert_with(|| fidl::new_empty!(VmexSource, D));
4275 fidl::decode!(VmexSource, D, val_ref, decoder, inner_offset, inner_depth)?;
4276 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4277 {
4278 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4279 }
4280 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4281 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4282 }
4283 }
4284
4285 next_offset += envelope_size;
4286 _next_ordinal_to_read += 1;
4287 if next_offset >= end_offset {
4288 return Ok(());
4289 }
4290
4291 while _next_ordinal_to_read < 21 {
4293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4294 _next_ordinal_to_read += 1;
4295 next_offset += envelope_size;
4296 }
4297
4298 let next_out_of_line = decoder.next_out_of_line();
4299 let handles_before = decoder.remaining_handles();
4300 if let Some((inlined, num_bytes, num_handles)) =
4301 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4302 {
4303 let member_inline_size =
4304 <HealthCheck as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4305 if inlined != (member_inline_size <= 4) {
4306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4307 }
4308 let inner_offset;
4309 let mut inner_depth = depth.clone();
4310 if inlined {
4311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4312 inner_offset = next_offset;
4313 } else {
4314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4315 inner_depth.increment()?;
4316 }
4317 let val_ref =
4318 self.health_check.get_or_insert_with(|| fidl::new_empty!(HealthCheck, D));
4319 fidl::decode!(HealthCheck, D, val_ref, decoder, inner_offset, inner_depth)?;
4320 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4321 {
4322 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4323 }
4324 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4325 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4326 }
4327 }
4328
4329 next_offset += envelope_size;
4330 _next_ordinal_to_read += 1;
4331 if next_offset >= end_offset {
4332 return Ok(());
4333 }
4334
4335 while _next_ordinal_to_read < 22 {
4337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4338 _next_ordinal_to_read += 1;
4339 next_offset += envelope_size;
4340 }
4341
4342 let next_out_of_line = decoder.next_out_of_line();
4343 let handles_before = decoder.remaining_handles();
4344 if let Some((inlined, num_bytes, num_handles)) =
4345 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4346 {
4347 let member_inline_size =
4348 <TraceProvider as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4349 if inlined != (member_inline_size <= 4) {
4350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4351 }
4352 let inner_offset;
4353 let mut inner_depth = depth.clone();
4354 if inlined {
4355 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4356 inner_offset = next_offset;
4357 } else {
4358 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4359 inner_depth.increment()?;
4360 }
4361 let val_ref =
4362 self.trace_provider.get_or_insert_with(|| fidl::new_empty!(TraceProvider, D));
4363 fidl::decode!(TraceProvider, D, val_ref, decoder, inner_offset, inner_depth)?;
4364 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4365 {
4366 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4367 }
4368 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4369 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4370 }
4371 }
4372
4373 next_offset += envelope_size;
4374 _next_ordinal_to_read += 1;
4375 if next_offset >= end_offset {
4376 return Ok(());
4377 }
4378
4379 while _next_ordinal_to_read < 23 {
4381 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4382 _next_ordinal_to_read += 1;
4383 next_offset += envelope_size;
4384 }
4385
4386 let next_out_of_line = decoder.next_out_of_line();
4387 let handles_before = decoder.remaining_handles();
4388 if let Some((inlined, num_bytes, num_handles)) =
4389 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4390 {
4391 let member_inline_size = <fidl::encoding::UnboundedVector<InjectedCapabilities> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4392 if inlined != (member_inline_size <= 4) {
4393 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4394 }
4395 let inner_offset;
4396 let mut inner_depth = depth.clone();
4397 if inlined {
4398 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4399 inner_offset = next_offset;
4400 } else {
4401 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4402 inner_depth.increment()?;
4403 }
4404 let val_ref = self.inject_capabilities.get_or_insert_with(|| {
4405 fidl::new_empty!(fidl::encoding::UnboundedVector<InjectedCapabilities>, D)
4406 });
4407 fidl::decode!(
4408 fidl::encoding::UnboundedVector<InjectedCapabilities>,
4409 D,
4410 val_ref,
4411 decoder,
4412 inner_offset,
4413 inner_depth
4414 )?;
4415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4416 {
4417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4418 }
4419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4421 }
4422 }
4423
4424 next_offset += envelope_size;
4425 _next_ordinal_to_read += 1;
4426 if next_offset >= end_offset {
4427 return Ok(());
4428 }
4429
4430 while _next_ordinal_to_read < 24 {
4432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4433 _next_ordinal_to_read += 1;
4434 next_offset += envelope_size;
4435 }
4436
4437 let next_out_of_line = decoder.next_out_of_line();
4438 let handles_before = decoder.remaining_handles();
4439 if let Some((inlined, num_bytes, num_handles)) =
4440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4441 {
4442 let member_inline_size =
4443 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
4444 decoder.context,
4445 );
4446 if inlined != (member_inline_size <= 4) {
4447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4448 }
4449 let inner_offset;
4450 let mut inner_depth = depth.clone();
4451 if inlined {
4452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4453 inner_offset = next_offset;
4454 } else {
4455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4456 inner_depth.increment()?;
4457 }
4458 let val_ref = self
4459 .scudo_options
4460 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
4461 fidl::decode!(
4462 fidl::encoding::UnboundedString,
4463 D,
4464 val_ref,
4465 decoder,
4466 inner_offset,
4467 inner_depth
4468 )?;
4469 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4470 {
4471 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4472 }
4473 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4474 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4475 }
4476 }
4477
4478 next_offset += envelope_size;
4479
4480 while next_offset < end_offset {
4482 _next_ordinal_to_read += 1;
4483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4484 next_offset += envelope_size;
4485 }
4486
4487 Ok(())
4488 }
4489 }
4490
4491 impl DebugRegistrationAllowlistEntry {
4492 #[inline(always)]
4493 fn max_ordinal_present(&self) -> u64 {
4494 if let Some(_) = self.environment_name {
4495 return 4;
4496 }
4497 if let Some(_) = self.moniker {
4498 return 3;
4499 }
4500 if let Some(_) = self.debug {
4501 return 2;
4502 }
4503 if let Some(_) = self.name {
4504 return 1;
4505 }
4506 0
4507 }
4508 }
4509
4510 impl fidl::encoding::ValueTypeMarker for DebugRegistrationAllowlistEntry {
4511 type Borrowed<'a> = &'a Self;
4512 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4513 value
4514 }
4515 }
4516
4517 unsafe impl fidl::encoding::TypeMarker for DebugRegistrationAllowlistEntry {
4518 type Owned = Self;
4519
4520 #[inline(always)]
4521 fn inline_align(_context: fidl::encoding::Context) -> usize {
4522 8
4523 }
4524
4525 #[inline(always)]
4526 fn inline_size(_context: fidl::encoding::Context) -> usize {
4527 16
4528 }
4529 }
4530
4531 unsafe impl<D: fidl::encoding::ResourceDialect>
4532 fidl::encoding::Encode<DebugRegistrationAllowlistEntry, D>
4533 for &DebugRegistrationAllowlistEntry
4534 {
4535 unsafe fn encode(
4536 self,
4537 encoder: &mut fidl::encoding::Encoder<'_, D>,
4538 offset: usize,
4539 mut depth: fidl::encoding::Depth,
4540 ) -> fidl::Result<()> {
4541 encoder.debug_check_bounds::<DebugRegistrationAllowlistEntry>(offset);
4542 let max_ordinal: u64 = self.max_ordinal_present();
4544 encoder.write_num(max_ordinal, offset);
4545 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4546 if max_ordinal == 0 {
4548 return Ok(());
4549 }
4550 depth.increment()?;
4551 let envelope_size = 8;
4552 let bytes_len = max_ordinal as usize * envelope_size;
4553 #[allow(unused_variables)]
4554 let offset = encoder.out_of_line_offset(bytes_len);
4555 let mut _prev_end_offset: usize = 0;
4556 if 1 > max_ordinal {
4557 return Ok(());
4558 }
4559
4560 let cur_offset: usize = (1 - 1) * envelope_size;
4563
4564 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4566
4567 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4572 self.name.as_ref().map(
4573 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4574 ),
4575 encoder,
4576 offset + cur_offset,
4577 depth,
4578 )?;
4579
4580 _prev_end_offset = cur_offset + envelope_size;
4581 if 2 > max_ordinal {
4582 return Ok(());
4583 }
4584
4585 let cur_offset: usize = (2 - 1) * envelope_size;
4588
4589 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4591
4592 fidl::encoding::encode_in_envelope_optional::<AllowlistedDebugRegistration, D>(
4597 self.debug
4598 .as_ref()
4599 .map(<AllowlistedDebugRegistration as fidl::encoding::ValueTypeMarker>::borrow),
4600 encoder,
4601 offset + cur_offset,
4602 depth,
4603 )?;
4604
4605 _prev_end_offset = cur_offset + envelope_size;
4606 if 3 > max_ordinal {
4607 return Ok(());
4608 }
4609
4610 let cur_offset: usize = (3 - 1) * envelope_size;
4613
4614 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4616
4617 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
4622 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
4623 encoder, offset + cur_offset, depth
4624 )?;
4625
4626 _prev_end_offset = cur_offset + envelope_size;
4627 if 4 > max_ordinal {
4628 return Ok(());
4629 }
4630
4631 let cur_offset: usize = (4 - 1) * envelope_size;
4634
4635 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4637
4638 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4643 self.environment_name.as_ref().map(
4644 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4645 ),
4646 encoder,
4647 offset + cur_offset,
4648 depth,
4649 )?;
4650
4651 _prev_end_offset = cur_offset + envelope_size;
4652
4653 Ok(())
4654 }
4655 }
4656
4657 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4658 for DebugRegistrationAllowlistEntry
4659 {
4660 #[inline(always)]
4661 fn new_empty() -> Self {
4662 Self::default()
4663 }
4664
4665 unsafe fn decode(
4666 &mut self,
4667 decoder: &mut fidl::encoding::Decoder<'_, D>,
4668 offset: usize,
4669 mut depth: fidl::encoding::Depth,
4670 ) -> fidl::Result<()> {
4671 decoder.debug_check_bounds::<Self>(offset);
4672 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4673 None => return Err(fidl::Error::NotNullable),
4674 Some(len) => len,
4675 };
4676 if len == 0 {
4678 return Ok(());
4679 };
4680 depth.increment()?;
4681 let envelope_size = 8;
4682 let bytes_len = len * envelope_size;
4683 let offset = decoder.out_of_line_offset(bytes_len)?;
4684 let mut _next_ordinal_to_read = 0;
4686 let mut next_offset = offset;
4687 let end_offset = offset + bytes_len;
4688 _next_ordinal_to_read += 1;
4689 if next_offset >= end_offset {
4690 return Ok(());
4691 }
4692
4693 while _next_ordinal_to_read < 1 {
4695 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4696 _next_ordinal_to_read += 1;
4697 next_offset += envelope_size;
4698 }
4699
4700 let next_out_of_line = decoder.next_out_of_line();
4701 let handles_before = decoder.remaining_handles();
4702 if let Some((inlined, num_bytes, num_handles)) =
4703 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4704 {
4705 let member_inline_size =
4706 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4707 decoder.context,
4708 );
4709 if inlined != (member_inline_size <= 4) {
4710 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4711 }
4712 let inner_offset;
4713 let mut inner_depth = depth.clone();
4714 if inlined {
4715 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4716 inner_offset = next_offset;
4717 } else {
4718 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4719 inner_depth.increment()?;
4720 }
4721 let val_ref = self
4722 .name
4723 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4724 fidl::decode!(
4725 fidl::encoding::BoundedString<255>,
4726 D,
4727 val_ref,
4728 decoder,
4729 inner_offset,
4730 inner_depth
4731 )?;
4732 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4733 {
4734 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4735 }
4736 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4737 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4738 }
4739 }
4740
4741 next_offset += envelope_size;
4742 _next_ordinal_to_read += 1;
4743 if next_offset >= end_offset {
4744 return Ok(());
4745 }
4746
4747 while _next_ordinal_to_read < 2 {
4749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4750 _next_ordinal_to_read += 1;
4751 next_offset += envelope_size;
4752 }
4753
4754 let next_out_of_line = decoder.next_out_of_line();
4755 let handles_before = decoder.remaining_handles();
4756 if let Some((inlined, num_bytes, num_handles)) =
4757 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4758 {
4759 let member_inline_size =
4760 <AllowlistedDebugRegistration as fidl::encoding::TypeMarker>::inline_size(
4761 decoder.context,
4762 );
4763 if inlined != (member_inline_size <= 4) {
4764 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4765 }
4766 let inner_offset;
4767 let mut inner_depth = depth.clone();
4768 if inlined {
4769 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4770 inner_offset = next_offset;
4771 } else {
4772 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4773 inner_depth.increment()?;
4774 }
4775 let val_ref = self
4776 .debug
4777 .get_or_insert_with(|| fidl::new_empty!(AllowlistedDebugRegistration, D));
4778 fidl::decode!(
4779 AllowlistedDebugRegistration,
4780 D,
4781 val_ref,
4782 decoder,
4783 inner_offset,
4784 inner_depth
4785 )?;
4786 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4787 {
4788 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4789 }
4790 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4791 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4792 }
4793 }
4794
4795 next_offset += envelope_size;
4796 _next_ordinal_to_read += 1;
4797 if next_offset >= end_offset {
4798 return Ok(());
4799 }
4800
4801 while _next_ordinal_to_read < 3 {
4803 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4804 _next_ordinal_to_read += 1;
4805 next_offset += envelope_size;
4806 }
4807
4808 let next_out_of_line = decoder.next_out_of_line();
4809 let handles_before = decoder.remaining_handles();
4810 if let Some((inlined, num_bytes, num_handles)) =
4811 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4812 {
4813 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4814 if inlined != (member_inline_size <= 4) {
4815 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4816 }
4817 let inner_offset;
4818 let mut inner_depth = depth.clone();
4819 if inlined {
4820 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4821 inner_offset = next_offset;
4822 } else {
4823 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4824 inner_depth.increment()?;
4825 }
4826 let val_ref = self.moniker.get_or_insert_with(|| {
4827 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
4828 });
4829 fidl::decode!(
4830 fidl::encoding::BoundedString<4096>,
4831 D,
4832 val_ref,
4833 decoder,
4834 inner_offset,
4835 inner_depth
4836 )?;
4837 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4838 {
4839 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4840 }
4841 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4842 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4843 }
4844 }
4845
4846 next_offset += envelope_size;
4847 _next_ordinal_to_read += 1;
4848 if next_offset >= end_offset {
4849 return Ok(());
4850 }
4851
4852 while _next_ordinal_to_read < 4 {
4854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4855 _next_ordinal_to_read += 1;
4856 next_offset += envelope_size;
4857 }
4858
4859 let next_out_of_line = decoder.next_out_of_line();
4860 let handles_before = decoder.remaining_handles();
4861 if let Some((inlined, num_bytes, num_handles)) =
4862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4863 {
4864 let member_inline_size =
4865 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4866 decoder.context,
4867 );
4868 if inlined != (member_inline_size <= 4) {
4869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4870 }
4871 let inner_offset;
4872 let mut inner_depth = depth.clone();
4873 if inlined {
4874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4875 inner_offset = next_offset;
4876 } else {
4877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4878 inner_depth.increment()?;
4879 }
4880 let val_ref = self
4881 .environment_name
4882 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4883 fidl::decode!(
4884 fidl::encoding::BoundedString<255>,
4885 D,
4886 val_ref,
4887 decoder,
4888 inner_offset,
4889 inner_depth
4890 )?;
4891 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4892 {
4893 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4894 }
4895 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4896 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4897 }
4898 }
4899
4900 next_offset += envelope_size;
4901
4902 while next_offset < end_offset {
4904 _next_ordinal_to_read += 1;
4905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4906 next_offset += envelope_size;
4907 }
4908
4909 Ok(())
4910 }
4911 }
4912
4913 impl DebugRegistrationPolicyAllowlists {
4914 #[inline(always)]
4915 fn max_ordinal_present(&self) -> u64 {
4916 if let Some(_) = self.allowlist {
4917 return 1;
4918 }
4919 0
4920 }
4921 }
4922
4923 impl fidl::encoding::ValueTypeMarker for DebugRegistrationPolicyAllowlists {
4924 type Borrowed<'a> = &'a Self;
4925 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4926 value
4927 }
4928 }
4929
4930 unsafe impl fidl::encoding::TypeMarker for DebugRegistrationPolicyAllowlists {
4931 type Owned = Self;
4932
4933 #[inline(always)]
4934 fn inline_align(_context: fidl::encoding::Context) -> usize {
4935 8
4936 }
4937
4938 #[inline(always)]
4939 fn inline_size(_context: fidl::encoding::Context) -> usize {
4940 16
4941 }
4942 }
4943
4944 unsafe impl<D: fidl::encoding::ResourceDialect>
4945 fidl::encoding::Encode<DebugRegistrationPolicyAllowlists, D>
4946 for &DebugRegistrationPolicyAllowlists
4947 {
4948 unsafe fn encode(
4949 self,
4950 encoder: &mut fidl::encoding::Encoder<'_, D>,
4951 offset: usize,
4952 mut depth: fidl::encoding::Depth,
4953 ) -> fidl::Result<()> {
4954 encoder.debug_check_bounds::<DebugRegistrationPolicyAllowlists>(offset);
4955 let max_ordinal: u64 = self.max_ordinal_present();
4957 encoder.write_num(max_ordinal, offset);
4958 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4959 if max_ordinal == 0 {
4961 return Ok(());
4962 }
4963 depth.increment()?;
4964 let envelope_size = 8;
4965 let bytes_len = max_ordinal as usize * envelope_size;
4966 #[allow(unused_variables)]
4967 let offset = encoder.out_of_line_offset(bytes_len);
4968 let mut _prev_end_offset: usize = 0;
4969 if 1 > max_ordinal {
4970 return Ok(());
4971 }
4972
4973 let cur_offset: usize = (1 - 1) * envelope_size;
4976
4977 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4979
4980 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D>(
4985 self.allowlist.as_ref().map(<fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128> as fidl::encoding::ValueTypeMarker>::borrow),
4986 encoder, offset + cur_offset, depth
4987 )?;
4988
4989 _prev_end_offset = cur_offset + envelope_size;
4990
4991 Ok(())
4992 }
4993 }
4994
4995 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4996 for DebugRegistrationPolicyAllowlists
4997 {
4998 #[inline(always)]
4999 fn new_empty() -> Self {
5000 Self::default()
5001 }
5002
5003 unsafe fn decode(
5004 &mut self,
5005 decoder: &mut fidl::encoding::Decoder<'_, D>,
5006 offset: usize,
5007 mut depth: fidl::encoding::Depth,
5008 ) -> fidl::Result<()> {
5009 decoder.debug_check_bounds::<Self>(offset);
5010 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5011 None => return Err(fidl::Error::NotNullable),
5012 Some(len) => len,
5013 };
5014 if len == 0 {
5016 return Ok(());
5017 };
5018 depth.increment()?;
5019 let envelope_size = 8;
5020 let bytes_len = len * envelope_size;
5021 let offset = decoder.out_of_line_offset(bytes_len)?;
5022 let mut _next_ordinal_to_read = 0;
5024 let mut next_offset = offset;
5025 let end_offset = offset + bytes_len;
5026 _next_ordinal_to_read += 1;
5027 if next_offset >= end_offset {
5028 return Ok(());
5029 }
5030
5031 while _next_ordinal_to_read < 1 {
5033 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5034 _next_ordinal_to_read += 1;
5035 next_offset += envelope_size;
5036 }
5037
5038 let next_out_of_line = decoder.next_out_of_line();
5039 let handles_before = decoder.remaining_handles();
5040 if let Some((inlined, num_bytes, num_handles)) =
5041 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5042 {
5043 let member_inline_size = <fidl::encoding::Vector<
5044 DebugRegistrationAllowlistEntry,
5045 128,
5046 > as fidl::encoding::TypeMarker>::inline_size(
5047 decoder.context
5048 );
5049 if inlined != (member_inline_size <= 4) {
5050 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5051 }
5052 let inner_offset;
5053 let mut inner_depth = depth.clone();
5054 if inlined {
5055 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5056 inner_offset = next_offset;
5057 } else {
5058 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5059 inner_depth.increment()?;
5060 }
5061 let val_ref =
5062 self.allowlist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D));
5063 fidl::decode!(fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
5064 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5065 {
5066 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5067 }
5068 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5069 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5070 }
5071 }
5072
5073 next_offset += envelope_size;
5074
5075 while next_offset < end_offset {
5077 _next_ordinal_to_read += 1;
5078 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5079 next_offset += envelope_size;
5080 }
5081
5082 Ok(())
5083 }
5084 }
5085
5086 impl EventStreamRouteMetadata {
5087 #[inline(always)]
5088 fn max_ordinal_present(&self) -> u64 {
5089 if let Some(_) = self.scope {
5090 return 2;
5091 }
5092 if let Some(_) = self.scope_moniker {
5093 return 1;
5094 }
5095 0
5096 }
5097 }
5098
5099 impl fidl::encoding::ValueTypeMarker for EventStreamRouteMetadata {
5100 type Borrowed<'a> = &'a Self;
5101 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5102 value
5103 }
5104 }
5105
5106 unsafe impl fidl::encoding::TypeMarker for EventStreamRouteMetadata {
5107 type Owned = Self;
5108
5109 #[inline(always)]
5110 fn inline_align(_context: fidl::encoding::Context) -> usize {
5111 8
5112 }
5113
5114 #[inline(always)]
5115 fn inline_size(_context: fidl::encoding::Context) -> usize {
5116 16
5117 }
5118 }
5119
5120 unsafe impl<D: fidl::encoding::ResourceDialect>
5121 fidl::encoding::Encode<EventStreamRouteMetadata, D> for &EventStreamRouteMetadata
5122 {
5123 unsafe fn encode(
5124 self,
5125 encoder: &mut fidl::encoding::Encoder<'_, D>,
5126 offset: usize,
5127 mut depth: fidl::encoding::Depth,
5128 ) -> fidl::Result<()> {
5129 encoder.debug_check_bounds::<EventStreamRouteMetadata>(offset);
5130 let max_ordinal: u64 = self.max_ordinal_present();
5132 encoder.write_num(max_ordinal, offset);
5133 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5134 if max_ordinal == 0 {
5136 return Ok(());
5137 }
5138 depth.increment()?;
5139 let envelope_size = 8;
5140 let bytes_len = max_ordinal as usize * envelope_size;
5141 #[allow(unused_variables)]
5142 let offset = encoder.out_of_line_offset(bytes_len);
5143 let mut _prev_end_offset: usize = 0;
5144 if 1 > max_ordinal {
5145 return Ok(());
5146 }
5147
5148 let cur_offset: usize = (1 - 1) * envelope_size;
5151
5152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5154
5155 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
5160 self.scope_moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
5161 encoder, offset + cur_offset, depth
5162 )?;
5163
5164 _prev_end_offset = cur_offset + envelope_size;
5165 if 2 > max_ordinal {
5166 return Ok(());
5167 }
5168
5169 let cur_offset: usize = (2 - 1) * envelope_size;
5172
5173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5175
5176 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>, D>(
5181 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref> as fidl::encoding::ValueTypeMarker>::borrow),
5182 encoder, offset + cur_offset, depth
5183 )?;
5184
5185 _prev_end_offset = cur_offset + envelope_size;
5186
5187 Ok(())
5188 }
5189 }
5190
5191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5192 for EventStreamRouteMetadata
5193 {
5194 #[inline(always)]
5195 fn new_empty() -> Self {
5196 Self::default()
5197 }
5198
5199 unsafe fn decode(
5200 &mut self,
5201 decoder: &mut fidl::encoding::Decoder<'_, D>,
5202 offset: usize,
5203 mut depth: fidl::encoding::Depth,
5204 ) -> fidl::Result<()> {
5205 decoder.debug_check_bounds::<Self>(offset);
5206 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5207 None => return Err(fidl::Error::NotNullable),
5208 Some(len) => len,
5209 };
5210 if len == 0 {
5212 return Ok(());
5213 };
5214 depth.increment()?;
5215 let envelope_size = 8;
5216 let bytes_len = len * envelope_size;
5217 let offset = decoder.out_of_line_offset(bytes_len)?;
5218 let mut _next_ordinal_to_read = 0;
5220 let mut next_offset = offset;
5221 let end_offset = offset + bytes_len;
5222 _next_ordinal_to_read += 1;
5223 if next_offset >= end_offset {
5224 return Ok(());
5225 }
5226
5227 while _next_ordinal_to_read < 1 {
5229 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5230 _next_ordinal_to_read += 1;
5231 next_offset += envelope_size;
5232 }
5233
5234 let next_out_of_line = decoder.next_out_of_line();
5235 let handles_before = decoder.remaining_handles();
5236 if let Some((inlined, num_bytes, num_handles)) =
5237 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5238 {
5239 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5240 if inlined != (member_inline_size <= 4) {
5241 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5242 }
5243 let inner_offset;
5244 let mut inner_depth = depth.clone();
5245 if inlined {
5246 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5247 inner_offset = next_offset;
5248 } else {
5249 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5250 inner_depth.increment()?;
5251 }
5252 let val_ref = self.scope_moniker.get_or_insert_with(|| {
5253 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
5254 });
5255 fidl::decode!(
5256 fidl::encoding::BoundedString<4096>,
5257 D,
5258 val_ref,
5259 decoder,
5260 inner_offset,
5261 inner_depth
5262 )?;
5263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5264 {
5265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5266 }
5267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5269 }
5270 }
5271
5272 next_offset += envelope_size;
5273 _next_ordinal_to_read += 1;
5274 if next_offset >= end_offset {
5275 return Ok(());
5276 }
5277
5278 while _next_ordinal_to_read < 2 {
5280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5281 _next_ordinal_to_read += 1;
5282 next_offset += envelope_size;
5283 }
5284
5285 let next_out_of_line = decoder.next_out_of_line();
5286 let handles_before = decoder.remaining_handles();
5287 if let Some((inlined, num_bytes, num_handles)) =
5288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5289 {
5290 let member_inline_size = <fidl::encoding::UnboundedVector<
5291 fidl_fuchsia_component_decl__common::Ref,
5292 > as fidl::encoding::TypeMarker>::inline_size(
5293 decoder.context
5294 );
5295 if inlined != (member_inline_size <= 4) {
5296 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5297 }
5298 let inner_offset;
5299 let mut inner_depth = depth.clone();
5300 if inlined {
5301 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5302 inner_offset = next_offset;
5303 } else {
5304 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5305 inner_depth.increment()?;
5306 }
5307 let val_ref = self.scope.get_or_insert_with(|| {
5308 fidl::new_empty!(
5309 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
5310 D
5311 )
5312 });
5313 fidl::decode!(
5314 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
5315 D,
5316 val_ref,
5317 decoder,
5318 inner_offset,
5319 inner_depth
5320 )?;
5321 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5322 {
5323 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5324 }
5325 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5326 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5327 }
5328 }
5329
5330 next_offset += envelope_size;
5331
5332 while next_offset < end_offset {
5334 _next_ordinal_to_read += 1;
5335 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5336 next_offset += envelope_size;
5337 }
5338
5339 Ok(())
5340 }
5341 }
5342
5343 impl HealthCheck {
5344 #[inline(always)]
5345 fn max_ordinal_present(&self) -> u64 {
5346 if let Some(_) = self.monikers {
5347 return 1;
5348 }
5349 0
5350 }
5351 }
5352
5353 impl fidl::encoding::ValueTypeMarker for HealthCheck {
5354 type Borrowed<'a> = &'a Self;
5355 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5356 value
5357 }
5358 }
5359
5360 unsafe impl fidl::encoding::TypeMarker for HealthCheck {
5361 type Owned = Self;
5362
5363 #[inline(always)]
5364 fn inline_align(_context: fidl::encoding::Context) -> usize {
5365 8
5366 }
5367
5368 #[inline(always)]
5369 fn inline_size(_context: fidl::encoding::Context) -> usize {
5370 16
5371 }
5372 }
5373
5374 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HealthCheck, D>
5375 for &HealthCheck
5376 {
5377 unsafe fn encode(
5378 self,
5379 encoder: &mut fidl::encoding::Encoder<'_, D>,
5380 offset: usize,
5381 mut depth: fidl::encoding::Depth,
5382 ) -> fidl::Result<()> {
5383 encoder.debug_check_bounds::<HealthCheck>(offset);
5384 let max_ordinal: u64 = self.max_ordinal_present();
5386 encoder.write_num(max_ordinal, offset);
5387 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5388 if max_ordinal == 0 {
5390 return Ok(());
5391 }
5392 depth.increment()?;
5393 let envelope_size = 8;
5394 let bytes_len = max_ordinal as usize * envelope_size;
5395 #[allow(unused_variables)]
5396 let offset = encoder.out_of_line_offset(bytes_len);
5397 let mut _prev_end_offset: usize = 0;
5398 if 1 > max_ordinal {
5399 return Ok(());
5400 }
5401
5402 let cur_offset: usize = (1 - 1) * envelope_size;
5405
5406 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5408
5409 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>, D>(
5414 self.monikers.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>> as fidl::encoding::ValueTypeMarker>::borrow),
5415 encoder, offset + cur_offset, depth
5416 )?;
5417
5418 _prev_end_offset = cur_offset + envelope_size;
5419
5420 Ok(())
5421 }
5422 }
5423
5424 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HealthCheck {
5425 #[inline(always)]
5426 fn new_empty() -> Self {
5427 Self::default()
5428 }
5429
5430 unsafe fn decode(
5431 &mut self,
5432 decoder: &mut fidl::encoding::Decoder<'_, D>,
5433 offset: usize,
5434 mut depth: fidl::encoding::Depth,
5435 ) -> fidl::Result<()> {
5436 decoder.debug_check_bounds::<Self>(offset);
5437 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5438 None => return Err(fidl::Error::NotNullable),
5439 Some(len) => len,
5440 };
5441 if len == 0 {
5443 return Ok(());
5444 };
5445 depth.increment()?;
5446 let envelope_size = 8;
5447 let bytes_len = len * envelope_size;
5448 let offset = decoder.out_of_line_offset(bytes_len)?;
5449 let mut _next_ordinal_to_read = 0;
5451 let mut next_offset = offset;
5452 let end_offset = offset + bytes_len;
5453 _next_ordinal_to_read += 1;
5454 if next_offset >= end_offset {
5455 return Ok(());
5456 }
5457
5458 while _next_ordinal_to_read < 1 {
5460 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5461 _next_ordinal_to_read += 1;
5462 next_offset += envelope_size;
5463 }
5464
5465 let next_out_of_line = decoder.next_out_of_line();
5466 let handles_before = decoder.remaining_handles();
5467 if let Some((inlined, num_bytes, num_handles)) =
5468 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5469 {
5470 let member_inline_size = <fidl::encoding::UnboundedVector<
5471 fidl::encoding::BoundedString<255>,
5472 > as fidl::encoding::TypeMarker>::inline_size(
5473 decoder.context
5474 );
5475 if inlined != (member_inline_size <= 4) {
5476 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5477 }
5478 let inner_offset;
5479 let mut inner_depth = depth.clone();
5480 if inlined {
5481 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5482 inner_offset = next_offset;
5483 } else {
5484 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5485 inner_depth.increment()?;
5486 }
5487 let val_ref = self.monikers.get_or_insert_with(|| {
5488 fidl::new_empty!(
5489 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>,
5490 D
5491 )
5492 });
5493 fidl::decode!(
5494 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>,
5495 D,
5496 val_ref,
5497 decoder,
5498 inner_offset,
5499 inner_depth
5500 )?;
5501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5502 {
5503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5504 }
5505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5507 }
5508 }
5509
5510 next_offset += envelope_size;
5511
5512 while next_offset < end_offset {
5514 _next_ordinal_to_read += 1;
5515 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5516 next_offset += envelope_size;
5517 }
5518
5519 Ok(())
5520 }
5521 }
5522
5523 impl InjectedCapabilities {
5524 #[inline(always)]
5525 fn max_ordinal_present(&self) -> u64 {
5526 if let Some(_) = self.use_ {
5527 return 2;
5528 }
5529 if let Some(_) = self.components {
5530 return 1;
5531 }
5532 0
5533 }
5534 }
5535
5536 impl fidl::encoding::ValueTypeMarker for InjectedCapabilities {
5537 type Borrowed<'a> = &'a Self;
5538 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5539 value
5540 }
5541 }
5542
5543 unsafe impl fidl::encoding::TypeMarker for InjectedCapabilities {
5544 type Owned = Self;
5545
5546 #[inline(always)]
5547 fn inline_align(_context: fidl::encoding::Context) -> usize {
5548 8
5549 }
5550
5551 #[inline(always)]
5552 fn inline_size(_context: fidl::encoding::Context) -> usize {
5553 16
5554 }
5555 }
5556
5557 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedCapabilities, D>
5558 for &InjectedCapabilities
5559 {
5560 unsafe fn encode(
5561 self,
5562 encoder: &mut fidl::encoding::Encoder<'_, D>,
5563 offset: usize,
5564 mut depth: fidl::encoding::Depth,
5565 ) -> fidl::Result<()> {
5566 encoder.debug_check_bounds::<InjectedCapabilities>(offset);
5567 let max_ordinal: u64 = self.max_ordinal_present();
5569 encoder.write_num(max_ordinal, offset);
5570 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5571 if max_ordinal == 0 {
5573 return Ok(());
5574 }
5575 depth.increment()?;
5576 let envelope_size = 8;
5577 let bytes_len = max_ordinal as usize * envelope_size;
5578 #[allow(unused_variables)]
5579 let offset = encoder.out_of_line_offset(bytes_len);
5580 let mut _prev_end_offset: usize = 0;
5581 if 1 > max_ordinal {
5582 return Ok(());
5583 }
5584
5585 let cur_offset: usize = (1 - 1) * envelope_size;
5588
5589 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5591
5592 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
5597 self.components.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
5598 encoder, offset + cur_offset, depth
5599 )?;
5600
5601 _prev_end_offset = cur_offset + envelope_size;
5602 if 2 > max_ordinal {
5603 return Ok(());
5604 }
5605
5606 let cur_offset: usize = (2 - 1) * envelope_size;
5609
5610 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5612
5613 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<InjectedUse>, D>(
5618 self.use_.as_ref().map(<fidl::encoding::UnboundedVector<InjectedUse> as fidl::encoding::ValueTypeMarker>::borrow),
5619 encoder, offset + cur_offset, depth
5620 )?;
5621
5622 _prev_end_offset = cur_offset + envelope_size;
5623
5624 Ok(())
5625 }
5626 }
5627
5628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedCapabilities {
5629 #[inline(always)]
5630 fn new_empty() -> Self {
5631 Self::default()
5632 }
5633
5634 unsafe fn decode(
5635 &mut self,
5636 decoder: &mut fidl::encoding::Decoder<'_, D>,
5637 offset: usize,
5638 mut depth: fidl::encoding::Depth,
5639 ) -> fidl::Result<()> {
5640 decoder.debug_check_bounds::<Self>(offset);
5641 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5642 None => return Err(fidl::Error::NotNullable),
5643 Some(len) => len,
5644 };
5645 if len == 0 {
5647 return Ok(());
5648 };
5649 depth.increment()?;
5650 let envelope_size = 8;
5651 let bytes_len = len * envelope_size;
5652 let offset = decoder.out_of_line_offset(bytes_len)?;
5653 let mut _next_ordinal_to_read = 0;
5655 let mut next_offset = offset;
5656 let end_offset = offset + bytes_len;
5657 _next_ordinal_to_read += 1;
5658 if next_offset >= end_offset {
5659 return Ok(());
5660 }
5661
5662 while _next_ordinal_to_read < 1 {
5664 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5665 _next_ordinal_to_read += 1;
5666 next_offset += envelope_size;
5667 }
5668
5669 let next_out_of_line = decoder.next_out_of_line();
5670 let handles_before = decoder.remaining_handles();
5671 if let Some((inlined, num_bytes, num_handles)) =
5672 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5673 {
5674 let member_inline_size = <fidl::encoding::Vector<
5675 fidl::encoding::BoundedString<4096>,
5676 128,
5677 > as fidl::encoding::TypeMarker>::inline_size(
5678 decoder.context
5679 );
5680 if inlined != (member_inline_size <= 4) {
5681 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5682 }
5683 let inner_offset;
5684 let mut inner_depth = depth.clone();
5685 if inlined {
5686 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5687 inner_offset = next_offset;
5688 } else {
5689 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5690 inner_depth.increment()?;
5691 }
5692 let val_ref = self.components.get_or_insert_with(|| {
5693 fidl::new_empty!(
5694 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
5695 D
5696 )
5697 });
5698 fidl::decode!(
5699 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
5700 D,
5701 val_ref,
5702 decoder,
5703 inner_offset,
5704 inner_depth
5705 )?;
5706 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5707 {
5708 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5709 }
5710 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5711 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5712 }
5713 }
5714
5715 next_offset += envelope_size;
5716 _next_ordinal_to_read += 1;
5717 if next_offset >= end_offset {
5718 return Ok(());
5719 }
5720
5721 while _next_ordinal_to_read < 2 {
5723 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5724 _next_ordinal_to_read += 1;
5725 next_offset += envelope_size;
5726 }
5727
5728 let next_out_of_line = decoder.next_out_of_line();
5729 let handles_before = decoder.remaining_handles();
5730 if let Some((inlined, num_bytes, num_handles)) =
5731 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5732 {
5733 let member_inline_size = <fidl::encoding::UnboundedVector<InjectedUse> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5734 if inlined != (member_inline_size <= 4) {
5735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5736 }
5737 let inner_offset;
5738 let mut inner_depth = depth.clone();
5739 if inlined {
5740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5741 inner_offset = next_offset;
5742 } else {
5743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5744 inner_depth.increment()?;
5745 }
5746 let val_ref = self.use_.get_or_insert_with(|| {
5747 fidl::new_empty!(fidl::encoding::UnboundedVector<InjectedUse>, D)
5748 });
5749 fidl::decode!(
5750 fidl::encoding::UnboundedVector<InjectedUse>,
5751 D,
5752 val_ref,
5753 decoder,
5754 inner_offset,
5755 inner_depth
5756 )?;
5757 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5758 {
5759 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5760 }
5761 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5762 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5763 }
5764 }
5765
5766 next_offset += envelope_size;
5767
5768 while next_offset < end_offset {
5770 _next_ordinal_to_read += 1;
5771 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5772 next_offset += envelope_size;
5773 }
5774
5775 Ok(())
5776 }
5777 }
5778
5779 impl InjectedUseProtocol {
5780 #[inline(always)]
5781 fn max_ordinal_present(&self) -> u64 {
5782 if let Some(_) = self.target_path {
5783 return 2;
5784 }
5785 if let Some(_) = self.source_name {
5786 return 1;
5787 }
5788 0
5789 }
5790 }
5791
5792 impl fidl::encoding::ValueTypeMarker for InjectedUseProtocol {
5793 type Borrowed<'a> = &'a Self;
5794 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5795 value
5796 }
5797 }
5798
5799 unsafe impl fidl::encoding::TypeMarker for InjectedUseProtocol {
5800 type Owned = Self;
5801
5802 #[inline(always)]
5803 fn inline_align(_context: fidl::encoding::Context) -> usize {
5804 8
5805 }
5806
5807 #[inline(always)]
5808 fn inline_size(_context: fidl::encoding::Context) -> usize {
5809 16
5810 }
5811 }
5812
5813 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedUseProtocol, D>
5814 for &InjectedUseProtocol
5815 {
5816 unsafe fn encode(
5817 self,
5818 encoder: &mut fidl::encoding::Encoder<'_, D>,
5819 offset: usize,
5820 mut depth: fidl::encoding::Depth,
5821 ) -> fidl::Result<()> {
5822 encoder.debug_check_bounds::<InjectedUseProtocol>(offset);
5823 let max_ordinal: u64 = self.max_ordinal_present();
5825 encoder.write_num(max_ordinal, offset);
5826 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5827 if max_ordinal == 0 {
5829 return Ok(());
5830 }
5831 depth.increment()?;
5832 let envelope_size = 8;
5833 let bytes_len = max_ordinal as usize * envelope_size;
5834 #[allow(unused_variables)]
5835 let offset = encoder.out_of_line_offset(bytes_len);
5836 let mut _prev_end_offset: usize = 0;
5837 if 1 > max_ordinal {
5838 return Ok(());
5839 }
5840
5841 let cur_offset: usize = (1 - 1) * envelope_size;
5844
5845 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5847
5848 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
5853 self.source_name.as_ref().map(
5854 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
5855 ),
5856 encoder,
5857 offset + cur_offset,
5858 depth,
5859 )?;
5860
5861 _prev_end_offset = cur_offset + envelope_size;
5862 if 2 > max_ordinal {
5863 return Ok(());
5864 }
5865
5866 let cur_offset: usize = (2 - 1) * envelope_size;
5869
5870 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5872
5873 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
5878 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
5879 encoder, offset + cur_offset, depth
5880 )?;
5881
5882 _prev_end_offset = cur_offset + envelope_size;
5883
5884 Ok(())
5885 }
5886 }
5887
5888 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedUseProtocol {
5889 #[inline(always)]
5890 fn new_empty() -> Self {
5891 Self::default()
5892 }
5893
5894 unsafe fn decode(
5895 &mut self,
5896 decoder: &mut fidl::encoding::Decoder<'_, D>,
5897 offset: usize,
5898 mut depth: fidl::encoding::Depth,
5899 ) -> fidl::Result<()> {
5900 decoder.debug_check_bounds::<Self>(offset);
5901 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5902 None => return Err(fidl::Error::NotNullable),
5903 Some(len) => len,
5904 };
5905 if len == 0 {
5907 return Ok(());
5908 };
5909 depth.increment()?;
5910 let envelope_size = 8;
5911 let bytes_len = len * envelope_size;
5912 let offset = decoder.out_of_line_offset(bytes_len)?;
5913 let mut _next_ordinal_to_read = 0;
5915 let mut next_offset = offset;
5916 let end_offset = offset + bytes_len;
5917 _next_ordinal_to_read += 1;
5918 if next_offset >= end_offset {
5919 return Ok(());
5920 }
5921
5922 while _next_ordinal_to_read < 1 {
5924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5925 _next_ordinal_to_read += 1;
5926 next_offset += envelope_size;
5927 }
5928
5929 let next_out_of_line = decoder.next_out_of_line();
5930 let handles_before = decoder.remaining_handles();
5931 if let Some((inlined, num_bytes, num_handles)) =
5932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5933 {
5934 let member_inline_size =
5935 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5936 decoder.context,
5937 );
5938 if inlined != (member_inline_size <= 4) {
5939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5940 }
5941 let inner_offset;
5942 let mut inner_depth = depth.clone();
5943 if inlined {
5944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5945 inner_offset = next_offset;
5946 } else {
5947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5948 inner_depth.increment()?;
5949 }
5950 let val_ref = self
5951 .source_name
5952 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5953 fidl::decode!(
5954 fidl::encoding::BoundedString<100>,
5955 D,
5956 val_ref,
5957 decoder,
5958 inner_offset,
5959 inner_depth
5960 )?;
5961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5962 {
5963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5964 }
5965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5967 }
5968 }
5969
5970 next_offset += envelope_size;
5971 _next_ordinal_to_read += 1;
5972 if next_offset >= end_offset {
5973 return Ok(());
5974 }
5975
5976 while _next_ordinal_to_read < 2 {
5978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5979 _next_ordinal_to_read += 1;
5980 next_offset += envelope_size;
5981 }
5982
5983 let next_out_of_line = decoder.next_out_of_line();
5984 let handles_before = decoder.remaining_handles();
5985 if let Some((inlined, num_bytes, num_handles)) =
5986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5987 {
5988 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5989 if inlined != (member_inline_size <= 4) {
5990 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5991 }
5992 let inner_offset;
5993 let mut inner_depth = depth.clone();
5994 if inlined {
5995 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5996 inner_offset = next_offset;
5997 } else {
5998 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5999 inner_depth.increment()?;
6000 }
6001 let val_ref = self.target_path.get_or_insert_with(|| {
6002 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
6003 });
6004 fidl::decode!(
6005 fidl::encoding::BoundedString<1024>,
6006 D,
6007 val_ref,
6008 decoder,
6009 inner_offset,
6010 inner_depth
6011 )?;
6012 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6013 {
6014 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6015 }
6016 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6017 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6018 }
6019 }
6020
6021 next_offset += envelope_size;
6022
6023 while next_offset < end_offset {
6025 _next_ordinal_to_read += 1;
6026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6027 next_offset += envelope_size;
6028 }
6029
6030 Ok(())
6031 }
6032 }
6033
6034 impl InstanceIdEntry {
6035 #[inline(always)]
6036 fn max_ordinal_present(&self) -> u64 {
6037 if let Some(_) = self.ignore_duplicate_id {
6038 return 4;
6039 }
6040 if let Some(_) = self.moniker {
6041 return 3;
6042 }
6043 if let Some(_) = self.instance_id {
6044 return 1;
6045 }
6046 0
6047 }
6048 }
6049
6050 impl fidl::encoding::ValueTypeMarker for InstanceIdEntry {
6051 type Borrowed<'a> = &'a Self;
6052 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6053 value
6054 }
6055 }
6056
6057 unsafe impl fidl::encoding::TypeMarker for InstanceIdEntry {
6058 type Owned = Self;
6059
6060 #[inline(always)]
6061 fn inline_align(_context: fidl::encoding::Context) -> usize {
6062 8
6063 }
6064
6065 #[inline(always)]
6066 fn inline_size(_context: fidl::encoding::Context) -> usize {
6067 16
6068 }
6069 }
6070
6071 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InstanceIdEntry, D>
6072 for &InstanceIdEntry
6073 {
6074 unsafe fn encode(
6075 self,
6076 encoder: &mut fidl::encoding::Encoder<'_, D>,
6077 offset: usize,
6078 mut depth: fidl::encoding::Depth,
6079 ) -> fidl::Result<()> {
6080 encoder.debug_check_bounds::<InstanceIdEntry>(offset);
6081 let max_ordinal: u64 = self.max_ordinal_present();
6083 encoder.write_num(max_ordinal, offset);
6084 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6085 if max_ordinal == 0 {
6087 return Ok(());
6088 }
6089 depth.increment()?;
6090 let envelope_size = 8;
6091 let bytes_len = max_ordinal as usize * envelope_size;
6092 #[allow(unused_variables)]
6093 let offset = encoder.out_of_line_offset(bytes_len);
6094 let mut _prev_end_offset: usize = 0;
6095 if 1 > max_ordinal {
6096 return Ok(());
6097 }
6098
6099 let cur_offset: usize = (1 - 1) * envelope_size;
6102
6103 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6105
6106 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
6111 self.instance_id.as_ref().map(
6112 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
6113 ),
6114 encoder,
6115 offset + cur_offset,
6116 depth,
6117 )?;
6118
6119 _prev_end_offset = cur_offset + envelope_size;
6120 if 3 > max_ordinal {
6121 return Ok(());
6122 }
6123
6124 let cur_offset: usize = (3 - 1) * envelope_size;
6127
6128 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6130
6131 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
6136 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
6137 encoder, offset + cur_offset, depth
6138 )?;
6139
6140 _prev_end_offset = cur_offset + envelope_size;
6141 if 4 > max_ordinal {
6142 return Ok(());
6143 }
6144
6145 let cur_offset: usize = (4 - 1) * envelope_size;
6148
6149 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6151
6152 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6157 self.ignore_duplicate_id
6158 .as_ref()
6159 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6160 encoder,
6161 offset + cur_offset,
6162 depth,
6163 )?;
6164
6165 _prev_end_offset = cur_offset + envelope_size;
6166
6167 Ok(())
6168 }
6169 }
6170
6171 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InstanceIdEntry {
6172 #[inline(always)]
6173 fn new_empty() -> Self {
6174 Self::default()
6175 }
6176
6177 unsafe fn decode(
6178 &mut self,
6179 decoder: &mut fidl::encoding::Decoder<'_, D>,
6180 offset: usize,
6181 mut depth: fidl::encoding::Depth,
6182 ) -> fidl::Result<()> {
6183 decoder.debug_check_bounds::<Self>(offset);
6184 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6185 None => return Err(fidl::Error::NotNullable),
6186 Some(len) => len,
6187 };
6188 if len == 0 {
6190 return Ok(());
6191 };
6192 depth.increment()?;
6193 let envelope_size = 8;
6194 let bytes_len = len * envelope_size;
6195 let offset = decoder.out_of_line_offset(bytes_len)?;
6196 let mut _next_ordinal_to_read = 0;
6198 let mut next_offset = offset;
6199 let end_offset = offset + bytes_len;
6200 _next_ordinal_to_read += 1;
6201 if next_offset >= end_offset {
6202 return Ok(());
6203 }
6204
6205 while _next_ordinal_to_read < 1 {
6207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6208 _next_ordinal_to_read += 1;
6209 next_offset += envelope_size;
6210 }
6211
6212 let next_out_of_line = decoder.next_out_of_line();
6213 let handles_before = decoder.remaining_handles();
6214 if let Some((inlined, num_bytes, num_handles)) =
6215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6216 {
6217 let member_inline_size =
6218 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
6219 decoder.context,
6220 );
6221 if inlined != (member_inline_size <= 4) {
6222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6223 }
6224 let inner_offset;
6225 let mut inner_depth = depth.clone();
6226 if inlined {
6227 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6228 inner_offset = next_offset;
6229 } else {
6230 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6231 inner_depth.increment()?;
6232 }
6233 let val_ref = self
6234 .instance_id
6235 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
6236 fidl::decode!(
6237 fidl::encoding::BoundedString<64>,
6238 D,
6239 val_ref,
6240 decoder,
6241 inner_offset,
6242 inner_depth
6243 )?;
6244 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6245 {
6246 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6247 }
6248 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6249 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6250 }
6251 }
6252
6253 next_offset += envelope_size;
6254 _next_ordinal_to_read += 1;
6255 if next_offset >= end_offset {
6256 return Ok(());
6257 }
6258
6259 while _next_ordinal_to_read < 3 {
6261 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6262 _next_ordinal_to_read += 1;
6263 next_offset += envelope_size;
6264 }
6265
6266 let next_out_of_line = decoder.next_out_of_line();
6267 let handles_before = decoder.remaining_handles();
6268 if let Some((inlined, num_bytes, num_handles)) =
6269 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6270 {
6271 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6272 if inlined != (member_inline_size <= 4) {
6273 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6274 }
6275 let inner_offset;
6276 let mut inner_depth = depth.clone();
6277 if inlined {
6278 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6279 inner_offset = next_offset;
6280 } else {
6281 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6282 inner_depth.increment()?;
6283 }
6284 let val_ref = self.moniker.get_or_insert_with(|| {
6285 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
6286 });
6287 fidl::decode!(
6288 fidl::encoding::BoundedString<4096>,
6289 D,
6290 val_ref,
6291 decoder,
6292 inner_offset,
6293 inner_depth
6294 )?;
6295 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6296 {
6297 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6298 }
6299 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6300 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6301 }
6302 }
6303
6304 next_offset += envelope_size;
6305 _next_ordinal_to_read += 1;
6306 if next_offset >= end_offset {
6307 return Ok(());
6308 }
6309
6310 while _next_ordinal_to_read < 4 {
6312 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6313 _next_ordinal_to_read += 1;
6314 next_offset += envelope_size;
6315 }
6316
6317 let next_out_of_line = decoder.next_out_of_line();
6318 let handles_before = decoder.remaining_handles();
6319 if let Some((inlined, num_bytes, num_handles)) =
6320 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6321 {
6322 let member_inline_size =
6323 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6324 if inlined != (member_inline_size <= 4) {
6325 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6326 }
6327 let inner_offset;
6328 let mut inner_depth = depth.clone();
6329 if inlined {
6330 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6331 inner_offset = next_offset;
6332 } else {
6333 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6334 inner_depth.increment()?;
6335 }
6336 let val_ref =
6337 self.ignore_duplicate_id.get_or_insert_with(|| fidl::new_empty!(bool, D));
6338 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6339 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6340 {
6341 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6342 }
6343 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6344 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6345 }
6346 }
6347
6348 next_offset += envelope_size;
6349
6350 while next_offset < end_offset {
6352 _next_ordinal_to_read += 1;
6353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6354 next_offset += envelope_size;
6355 }
6356
6357 Ok(())
6358 }
6359 }
6360
6361 impl JobPolicyAllowlists {
6362 #[inline(always)]
6363 fn max_ordinal_present(&self) -> u64 {
6364 if let Some(_) = self.create_raw_processes {
6365 return 3;
6366 }
6367 if let Some(_) = self.main_process_critical {
6368 return 2;
6369 }
6370 if let Some(_) = self.ambient_mark_vmo_exec {
6371 return 1;
6372 }
6373 0
6374 }
6375 }
6376
6377 impl fidl::encoding::ValueTypeMarker for JobPolicyAllowlists {
6378 type Borrowed<'a> = &'a Self;
6379 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6380 value
6381 }
6382 }
6383
6384 unsafe impl fidl::encoding::TypeMarker for JobPolicyAllowlists {
6385 type Owned = Self;
6386
6387 #[inline(always)]
6388 fn inline_align(_context: fidl::encoding::Context) -> usize {
6389 8
6390 }
6391
6392 #[inline(always)]
6393 fn inline_size(_context: fidl::encoding::Context) -> usize {
6394 16
6395 }
6396 }
6397
6398 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<JobPolicyAllowlists, D>
6399 for &JobPolicyAllowlists
6400 {
6401 unsafe fn encode(
6402 self,
6403 encoder: &mut fidl::encoding::Encoder<'_, D>,
6404 offset: usize,
6405 mut depth: fidl::encoding::Depth,
6406 ) -> fidl::Result<()> {
6407 encoder.debug_check_bounds::<JobPolicyAllowlists>(offset);
6408 let max_ordinal: u64 = self.max_ordinal_present();
6410 encoder.write_num(max_ordinal, offset);
6411 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6412 if max_ordinal == 0 {
6414 return Ok(());
6415 }
6416 depth.increment()?;
6417 let envelope_size = 8;
6418 let bytes_len = max_ordinal as usize * envelope_size;
6419 #[allow(unused_variables)]
6420 let offset = encoder.out_of_line_offset(bytes_len);
6421 let mut _prev_end_offset: usize = 0;
6422 if 1 > max_ordinal {
6423 return Ok(());
6424 }
6425
6426 let cur_offset: usize = (1 - 1) * envelope_size;
6429
6430 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6432
6433 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
6438 self.ambient_mark_vmo_exec.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
6439 encoder, offset + cur_offset, depth
6440 )?;
6441
6442 _prev_end_offset = cur_offset + envelope_size;
6443 if 2 > max_ordinal {
6444 return Ok(());
6445 }
6446
6447 let cur_offset: usize = (2 - 1) * envelope_size;
6450
6451 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6453
6454 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
6459 self.main_process_critical.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
6460 encoder, offset + cur_offset, depth
6461 )?;
6462
6463 _prev_end_offset = cur_offset + envelope_size;
6464 if 3 > max_ordinal {
6465 return Ok(());
6466 }
6467
6468 let cur_offset: usize = (3 - 1) * envelope_size;
6471
6472 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6474
6475 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
6480 self.create_raw_processes.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
6481 encoder, offset + cur_offset, depth
6482 )?;
6483
6484 _prev_end_offset = cur_offset + envelope_size;
6485
6486 Ok(())
6487 }
6488 }
6489
6490 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for JobPolicyAllowlists {
6491 #[inline(always)]
6492 fn new_empty() -> Self {
6493 Self::default()
6494 }
6495
6496 unsafe fn decode(
6497 &mut self,
6498 decoder: &mut fidl::encoding::Decoder<'_, D>,
6499 offset: usize,
6500 mut depth: fidl::encoding::Depth,
6501 ) -> fidl::Result<()> {
6502 decoder.debug_check_bounds::<Self>(offset);
6503 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6504 None => return Err(fidl::Error::NotNullable),
6505 Some(len) => len,
6506 };
6507 if len == 0 {
6509 return Ok(());
6510 };
6511 depth.increment()?;
6512 let envelope_size = 8;
6513 let bytes_len = len * envelope_size;
6514 let offset = decoder.out_of_line_offset(bytes_len)?;
6515 let mut _next_ordinal_to_read = 0;
6517 let mut next_offset = offset;
6518 let end_offset = offset + bytes_len;
6519 _next_ordinal_to_read += 1;
6520 if next_offset >= end_offset {
6521 return Ok(());
6522 }
6523
6524 while _next_ordinal_to_read < 1 {
6526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6527 _next_ordinal_to_read += 1;
6528 next_offset += envelope_size;
6529 }
6530
6531 let next_out_of_line = decoder.next_out_of_line();
6532 let handles_before = decoder.remaining_handles();
6533 if let Some((inlined, num_bytes, num_handles)) =
6534 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6535 {
6536 let member_inline_size = <fidl::encoding::Vector<
6537 fidl::encoding::BoundedString<4096>,
6538 128,
6539 > as fidl::encoding::TypeMarker>::inline_size(
6540 decoder.context
6541 );
6542 if inlined != (member_inline_size <= 4) {
6543 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6544 }
6545 let inner_offset;
6546 let mut inner_depth = depth.clone();
6547 if inlined {
6548 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6549 inner_offset = next_offset;
6550 } else {
6551 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6552 inner_depth.increment()?;
6553 }
6554 let val_ref = self.ambient_mark_vmo_exec.get_or_insert_with(|| {
6555 fidl::new_empty!(
6556 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6557 D
6558 )
6559 });
6560 fidl::decode!(
6561 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6562 D,
6563 val_ref,
6564 decoder,
6565 inner_offset,
6566 inner_depth
6567 )?;
6568 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6569 {
6570 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6571 }
6572 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6573 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6574 }
6575 }
6576
6577 next_offset += envelope_size;
6578 _next_ordinal_to_read += 1;
6579 if next_offset >= end_offset {
6580 return Ok(());
6581 }
6582
6583 while _next_ordinal_to_read < 2 {
6585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6586 _next_ordinal_to_read += 1;
6587 next_offset += envelope_size;
6588 }
6589
6590 let next_out_of_line = decoder.next_out_of_line();
6591 let handles_before = decoder.remaining_handles();
6592 if let Some((inlined, num_bytes, num_handles)) =
6593 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6594 {
6595 let member_inline_size = <fidl::encoding::Vector<
6596 fidl::encoding::BoundedString<4096>,
6597 128,
6598 > as fidl::encoding::TypeMarker>::inline_size(
6599 decoder.context
6600 );
6601 if inlined != (member_inline_size <= 4) {
6602 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6603 }
6604 let inner_offset;
6605 let mut inner_depth = depth.clone();
6606 if inlined {
6607 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6608 inner_offset = next_offset;
6609 } else {
6610 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6611 inner_depth.increment()?;
6612 }
6613 let val_ref = self.main_process_critical.get_or_insert_with(|| {
6614 fidl::new_empty!(
6615 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6616 D
6617 )
6618 });
6619 fidl::decode!(
6620 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6621 D,
6622 val_ref,
6623 decoder,
6624 inner_offset,
6625 inner_depth
6626 )?;
6627 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6628 {
6629 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6630 }
6631 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6632 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6633 }
6634 }
6635
6636 next_offset += envelope_size;
6637 _next_ordinal_to_read += 1;
6638 if next_offset >= end_offset {
6639 return Ok(());
6640 }
6641
6642 while _next_ordinal_to_read < 3 {
6644 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6645 _next_ordinal_to_read += 1;
6646 next_offset += envelope_size;
6647 }
6648
6649 let next_out_of_line = decoder.next_out_of_line();
6650 let handles_before = decoder.remaining_handles();
6651 if let Some((inlined, num_bytes, num_handles)) =
6652 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6653 {
6654 let member_inline_size = <fidl::encoding::Vector<
6655 fidl::encoding::BoundedString<4096>,
6656 128,
6657 > as fidl::encoding::TypeMarker>::inline_size(
6658 decoder.context
6659 );
6660 if inlined != (member_inline_size <= 4) {
6661 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6662 }
6663 let inner_offset;
6664 let mut inner_depth = depth.clone();
6665 if inlined {
6666 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6667 inner_offset = next_offset;
6668 } else {
6669 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6670 inner_depth.increment()?;
6671 }
6672 let val_ref = self.create_raw_processes.get_or_insert_with(|| {
6673 fidl::new_empty!(
6674 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6675 D
6676 )
6677 });
6678 fidl::decode!(
6679 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6680 D,
6681 val_ref,
6682 decoder,
6683 inner_offset,
6684 inner_depth
6685 )?;
6686 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6687 {
6688 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6689 }
6690 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6691 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6692 }
6693 }
6694
6695 next_offset += envelope_size;
6696
6697 while next_offset < end_offset {
6699 _next_ordinal_to_read += 1;
6700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6701 next_offset += envelope_size;
6702 }
6703
6704 Ok(())
6705 }
6706 }
6707
6708 impl SecurityPolicy {
6709 #[inline(always)]
6710 fn max_ordinal_present(&self) -> u64 {
6711 if let Some(_) = self.child_policy {
6712 return 4;
6713 }
6714 if let Some(_) = self.debug_registration_policy {
6715 return 3;
6716 }
6717 if let Some(_) = self.capability_policy {
6718 return 2;
6719 }
6720 if let Some(_) = self.job_policy {
6721 return 1;
6722 }
6723 0
6724 }
6725 }
6726
6727 impl fidl::encoding::ValueTypeMarker for SecurityPolicy {
6728 type Borrowed<'a> = &'a Self;
6729 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6730 value
6731 }
6732 }
6733
6734 unsafe impl fidl::encoding::TypeMarker for SecurityPolicy {
6735 type Owned = Self;
6736
6737 #[inline(always)]
6738 fn inline_align(_context: fidl::encoding::Context) -> usize {
6739 8
6740 }
6741
6742 #[inline(always)]
6743 fn inline_size(_context: fidl::encoding::Context) -> usize {
6744 16
6745 }
6746 }
6747
6748 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SecurityPolicy, D>
6749 for &SecurityPolicy
6750 {
6751 unsafe fn encode(
6752 self,
6753 encoder: &mut fidl::encoding::Encoder<'_, D>,
6754 offset: usize,
6755 mut depth: fidl::encoding::Depth,
6756 ) -> fidl::Result<()> {
6757 encoder.debug_check_bounds::<SecurityPolicy>(offset);
6758 let max_ordinal: u64 = self.max_ordinal_present();
6760 encoder.write_num(max_ordinal, offset);
6761 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6762 if max_ordinal == 0 {
6764 return Ok(());
6765 }
6766 depth.increment()?;
6767 let envelope_size = 8;
6768 let bytes_len = max_ordinal as usize * envelope_size;
6769 #[allow(unused_variables)]
6770 let offset = encoder.out_of_line_offset(bytes_len);
6771 let mut _prev_end_offset: usize = 0;
6772 if 1 > max_ordinal {
6773 return Ok(());
6774 }
6775
6776 let cur_offset: usize = (1 - 1) * envelope_size;
6779
6780 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6782
6783 fidl::encoding::encode_in_envelope_optional::<JobPolicyAllowlists, D>(
6788 self.job_policy
6789 .as_ref()
6790 .map(<JobPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
6791 encoder,
6792 offset + cur_offset,
6793 depth,
6794 )?;
6795
6796 _prev_end_offset = cur_offset + envelope_size;
6797 if 2 > max_ordinal {
6798 return Ok(());
6799 }
6800
6801 let cur_offset: usize = (2 - 1) * envelope_size;
6804
6805 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6807
6808 fidl::encoding::encode_in_envelope_optional::<CapabilityPolicyAllowlists, D>(
6813 self.capability_policy
6814 .as_ref()
6815 .map(<CapabilityPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
6816 encoder,
6817 offset + cur_offset,
6818 depth,
6819 )?;
6820
6821 _prev_end_offset = cur_offset + envelope_size;
6822 if 3 > max_ordinal {
6823 return Ok(());
6824 }
6825
6826 let cur_offset: usize = (3 - 1) * envelope_size;
6829
6830 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6832
6833 fidl::encoding::encode_in_envelope_optional::<DebugRegistrationPolicyAllowlists, D>(
6838 self.debug_registration_policy.as_ref().map(
6839 <DebugRegistrationPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow,
6840 ),
6841 encoder,
6842 offset + cur_offset,
6843 depth,
6844 )?;
6845
6846 _prev_end_offset = cur_offset + envelope_size;
6847 if 4 > max_ordinal {
6848 return Ok(());
6849 }
6850
6851 let cur_offset: usize = (4 - 1) * envelope_size;
6854
6855 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6857
6858 fidl::encoding::encode_in_envelope_optional::<ChildPolicyAllowlists, D>(
6863 self.child_policy
6864 .as_ref()
6865 .map(<ChildPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
6866 encoder,
6867 offset + cur_offset,
6868 depth,
6869 )?;
6870
6871 _prev_end_offset = cur_offset + envelope_size;
6872
6873 Ok(())
6874 }
6875 }
6876
6877 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SecurityPolicy {
6878 #[inline(always)]
6879 fn new_empty() -> Self {
6880 Self::default()
6881 }
6882
6883 unsafe fn decode(
6884 &mut self,
6885 decoder: &mut fidl::encoding::Decoder<'_, D>,
6886 offset: usize,
6887 mut depth: fidl::encoding::Depth,
6888 ) -> fidl::Result<()> {
6889 decoder.debug_check_bounds::<Self>(offset);
6890 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6891 None => return Err(fidl::Error::NotNullable),
6892 Some(len) => len,
6893 };
6894 if len == 0 {
6896 return Ok(());
6897 };
6898 depth.increment()?;
6899 let envelope_size = 8;
6900 let bytes_len = len * envelope_size;
6901 let offset = decoder.out_of_line_offset(bytes_len)?;
6902 let mut _next_ordinal_to_read = 0;
6904 let mut next_offset = offset;
6905 let end_offset = offset + bytes_len;
6906 _next_ordinal_to_read += 1;
6907 if next_offset >= end_offset {
6908 return Ok(());
6909 }
6910
6911 while _next_ordinal_to_read < 1 {
6913 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6914 _next_ordinal_to_read += 1;
6915 next_offset += envelope_size;
6916 }
6917
6918 let next_out_of_line = decoder.next_out_of_line();
6919 let handles_before = decoder.remaining_handles();
6920 if let Some((inlined, num_bytes, num_handles)) =
6921 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6922 {
6923 let member_inline_size =
6924 <JobPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
6925 decoder.context,
6926 );
6927 if inlined != (member_inline_size <= 4) {
6928 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6929 }
6930 let inner_offset;
6931 let mut inner_depth = depth.clone();
6932 if inlined {
6933 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6934 inner_offset = next_offset;
6935 } else {
6936 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6937 inner_depth.increment()?;
6938 }
6939 let val_ref =
6940 self.job_policy.get_or_insert_with(|| fidl::new_empty!(JobPolicyAllowlists, D));
6941 fidl::decode!(JobPolicyAllowlists, D, val_ref, decoder, inner_offset, inner_depth)?;
6942 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6943 {
6944 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6945 }
6946 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6947 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6948 }
6949 }
6950
6951 next_offset += envelope_size;
6952 _next_ordinal_to_read += 1;
6953 if next_offset >= end_offset {
6954 return Ok(());
6955 }
6956
6957 while _next_ordinal_to_read < 2 {
6959 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6960 _next_ordinal_to_read += 1;
6961 next_offset += envelope_size;
6962 }
6963
6964 let next_out_of_line = decoder.next_out_of_line();
6965 let handles_before = decoder.remaining_handles();
6966 if let Some((inlined, num_bytes, num_handles)) =
6967 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6968 {
6969 let member_inline_size =
6970 <CapabilityPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
6971 decoder.context,
6972 );
6973 if inlined != (member_inline_size <= 4) {
6974 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6975 }
6976 let inner_offset;
6977 let mut inner_depth = depth.clone();
6978 if inlined {
6979 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6980 inner_offset = next_offset;
6981 } else {
6982 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6983 inner_depth.increment()?;
6984 }
6985 let val_ref = self
6986 .capability_policy
6987 .get_or_insert_with(|| fidl::new_empty!(CapabilityPolicyAllowlists, D));
6988 fidl::decode!(
6989 CapabilityPolicyAllowlists,
6990 D,
6991 val_ref,
6992 decoder,
6993 inner_offset,
6994 inner_depth
6995 )?;
6996 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6997 {
6998 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6999 }
7000 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7001 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7002 }
7003 }
7004
7005 next_offset += envelope_size;
7006 _next_ordinal_to_read += 1;
7007 if next_offset >= end_offset {
7008 return Ok(());
7009 }
7010
7011 while _next_ordinal_to_read < 3 {
7013 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7014 _next_ordinal_to_read += 1;
7015 next_offset += envelope_size;
7016 }
7017
7018 let next_out_of_line = decoder.next_out_of_line();
7019 let handles_before = decoder.remaining_handles();
7020 if let Some((inlined, num_bytes, num_handles)) =
7021 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7022 {
7023 let member_inline_size =
7024 <DebugRegistrationPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
7025 decoder.context,
7026 );
7027 if inlined != (member_inline_size <= 4) {
7028 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7029 }
7030 let inner_offset;
7031 let mut inner_depth = depth.clone();
7032 if inlined {
7033 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7034 inner_offset = next_offset;
7035 } else {
7036 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7037 inner_depth.increment()?;
7038 }
7039 let val_ref = self
7040 .debug_registration_policy
7041 .get_or_insert_with(|| fidl::new_empty!(DebugRegistrationPolicyAllowlists, D));
7042 fidl::decode!(
7043 DebugRegistrationPolicyAllowlists,
7044 D,
7045 val_ref,
7046 decoder,
7047 inner_offset,
7048 inner_depth
7049 )?;
7050 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7051 {
7052 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7053 }
7054 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7055 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7056 }
7057 }
7058
7059 next_offset += envelope_size;
7060 _next_ordinal_to_read += 1;
7061 if next_offset >= end_offset {
7062 return Ok(());
7063 }
7064
7065 while _next_ordinal_to_read < 4 {
7067 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7068 _next_ordinal_to_read += 1;
7069 next_offset += envelope_size;
7070 }
7071
7072 let next_out_of_line = decoder.next_out_of_line();
7073 let handles_before = decoder.remaining_handles();
7074 if let Some((inlined, num_bytes, num_handles)) =
7075 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7076 {
7077 let member_inline_size =
7078 <ChildPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
7079 decoder.context,
7080 );
7081 if inlined != (member_inline_size <= 4) {
7082 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7083 }
7084 let inner_offset;
7085 let mut inner_depth = depth.clone();
7086 if inlined {
7087 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7088 inner_offset = next_offset;
7089 } else {
7090 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7091 inner_depth.increment()?;
7092 }
7093 let val_ref = self
7094 .child_policy
7095 .get_or_insert_with(|| fidl::new_empty!(ChildPolicyAllowlists, D));
7096 fidl::decode!(
7097 ChildPolicyAllowlists,
7098 D,
7099 val_ref,
7100 decoder,
7101 inner_offset,
7102 inner_depth
7103 )?;
7104 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7105 {
7106 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7107 }
7108 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7109 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7110 }
7111 }
7112
7113 next_offset += envelope_size;
7114
7115 while next_offset < end_offset {
7117 _next_ordinal_to_read += 1;
7118 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7119 next_offset += envelope_size;
7120 }
7121
7122 Ok(())
7123 }
7124 }
7125
7126 impl fidl::encoding::ValueTypeMarker for AllowlistedCapability {
7127 type Borrowed<'a> = &'a Self;
7128 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7129 value
7130 }
7131 }
7132
7133 unsafe impl fidl::encoding::TypeMarker for AllowlistedCapability {
7134 type Owned = Self;
7135
7136 #[inline(always)]
7137 fn inline_align(_context: fidl::encoding::Context) -> usize {
7138 8
7139 }
7140
7141 #[inline(always)]
7142 fn inline_size(_context: fidl::encoding::Context) -> usize {
7143 16
7144 }
7145 }
7146
7147 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedCapability, D>
7148 for &AllowlistedCapability
7149 {
7150 #[inline]
7151 unsafe fn encode(
7152 self,
7153 encoder: &mut fidl::encoding::Encoder<'_, D>,
7154 offset: usize,
7155 _depth: fidl::encoding::Depth,
7156 ) -> fidl::Result<()> {
7157 encoder.debug_check_bounds::<AllowlistedCapability>(offset);
7158 encoder.write_num::<u64>(self.ordinal(), offset);
7159 match self {
7160 AllowlistedCapability::Directory(ref val) => {
7161 fidl::encoding::encode_in_envelope::<AllowlistedDirectory, D>(
7162 <AllowlistedDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
7163 encoder,
7164 offset + 8,
7165 _depth,
7166 )
7167 }
7168 AllowlistedCapability::Protocol(ref val) => {
7169 fidl::encoding::encode_in_envelope::<AllowlistedProtocol, D>(
7170 <AllowlistedProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7171 encoder,
7172 offset + 8,
7173 _depth,
7174 )
7175 }
7176 AllowlistedCapability::Service(ref val) => {
7177 fidl::encoding::encode_in_envelope::<AllowlistedService, D>(
7178 <AllowlistedService as fidl::encoding::ValueTypeMarker>::borrow(val),
7179 encoder,
7180 offset + 8,
7181 _depth,
7182 )
7183 }
7184 AllowlistedCapability::Storage(ref val) => {
7185 fidl::encoding::encode_in_envelope::<AllowlistedStorage, D>(
7186 <AllowlistedStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
7187 encoder,
7188 offset + 8,
7189 _depth,
7190 )
7191 }
7192 AllowlistedCapability::Runner(ref val) => {
7193 fidl::encoding::encode_in_envelope::<AllowlistedRunner, D>(
7194 <AllowlistedRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
7195 encoder,
7196 offset + 8,
7197 _depth,
7198 )
7199 }
7200 AllowlistedCapability::Resolver(ref val) => {
7201 fidl::encoding::encode_in_envelope::<AllowlistedResolver, D>(
7202 <AllowlistedResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
7203 encoder,
7204 offset + 8,
7205 _depth,
7206 )
7207 }
7208 AllowlistedCapability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7209 }
7210 }
7211 }
7212
7213 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedCapability {
7214 #[inline(always)]
7215 fn new_empty() -> Self {
7216 Self::__SourceBreaking { unknown_ordinal: 0 }
7217 }
7218
7219 #[inline]
7220 unsafe fn decode(
7221 &mut self,
7222 decoder: &mut fidl::encoding::Decoder<'_, D>,
7223 offset: usize,
7224 mut depth: fidl::encoding::Depth,
7225 ) -> fidl::Result<()> {
7226 decoder.debug_check_bounds::<Self>(offset);
7227 #[allow(unused_variables)]
7228 let next_out_of_line = decoder.next_out_of_line();
7229 let handles_before = decoder.remaining_handles();
7230 let (ordinal, inlined, num_bytes, num_handles) =
7231 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7232
7233 let member_inline_size = match ordinal {
7234 1 => <AllowlistedDirectory as fidl::encoding::TypeMarker>::inline_size(
7235 decoder.context,
7236 ),
7237 3 => <AllowlistedProtocol as fidl::encoding::TypeMarker>::inline_size(
7238 decoder.context,
7239 ),
7240 4 => {
7241 <AllowlistedService as fidl::encoding::TypeMarker>::inline_size(decoder.context)
7242 }
7243 5 => {
7244 <AllowlistedStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context)
7245 }
7246 6 => {
7247 <AllowlistedRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context)
7248 }
7249 7 => <AllowlistedResolver as fidl::encoding::TypeMarker>::inline_size(
7250 decoder.context,
7251 ),
7252 0 => return Err(fidl::Error::UnknownUnionTag),
7253 _ => num_bytes as usize,
7254 };
7255
7256 if inlined != (member_inline_size <= 4) {
7257 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7258 }
7259 let _inner_offset;
7260 if inlined {
7261 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7262 _inner_offset = offset + 8;
7263 } else {
7264 depth.increment()?;
7265 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7266 }
7267 match ordinal {
7268 1 => {
7269 #[allow(irrefutable_let_patterns)]
7270 if let AllowlistedCapability::Directory(_) = self {
7271 } else {
7273 *self = AllowlistedCapability::Directory(fidl::new_empty!(
7275 AllowlistedDirectory,
7276 D
7277 ));
7278 }
7279 #[allow(irrefutable_let_patterns)]
7280 if let AllowlistedCapability::Directory(ref mut val) = self {
7281 fidl::decode!(AllowlistedDirectory, D, val, decoder, _inner_offset, depth)?;
7282 } else {
7283 unreachable!()
7284 }
7285 }
7286 3 => {
7287 #[allow(irrefutable_let_patterns)]
7288 if let AllowlistedCapability::Protocol(_) = self {
7289 } else {
7291 *self = AllowlistedCapability::Protocol(fidl::new_empty!(
7293 AllowlistedProtocol,
7294 D
7295 ));
7296 }
7297 #[allow(irrefutable_let_patterns)]
7298 if let AllowlistedCapability::Protocol(ref mut val) = self {
7299 fidl::decode!(AllowlistedProtocol, D, val, decoder, _inner_offset, depth)?;
7300 } else {
7301 unreachable!()
7302 }
7303 }
7304 4 => {
7305 #[allow(irrefutable_let_patterns)]
7306 if let AllowlistedCapability::Service(_) = self {
7307 } else {
7309 *self =
7311 AllowlistedCapability::Service(fidl::new_empty!(AllowlistedService, D));
7312 }
7313 #[allow(irrefutable_let_patterns)]
7314 if let AllowlistedCapability::Service(ref mut val) = self {
7315 fidl::decode!(AllowlistedService, D, val, decoder, _inner_offset, depth)?;
7316 } else {
7317 unreachable!()
7318 }
7319 }
7320 5 => {
7321 #[allow(irrefutable_let_patterns)]
7322 if let AllowlistedCapability::Storage(_) = self {
7323 } else {
7325 *self =
7327 AllowlistedCapability::Storage(fidl::new_empty!(AllowlistedStorage, D));
7328 }
7329 #[allow(irrefutable_let_patterns)]
7330 if let AllowlistedCapability::Storage(ref mut val) = self {
7331 fidl::decode!(AllowlistedStorage, D, val, decoder, _inner_offset, depth)?;
7332 } else {
7333 unreachable!()
7334 }
7335 }
7336 6 => {
7337 #[allow(irrefutable_let_patterns)]
7338 if let AllowlistedCapability::Runner(_) = self {
7339 } else {
7341 *self =
7343 AllowlistedCapability::Runner(fidl::new_empty!(AllowlistedRunner, D));
7344 }
7345 #[allow(irrefutable_let_patterns)]
7346 if let AllowlistedCapability::Runner(ref mut val) = self {
7347 fidl::decode!(AllowlistedRunner, D, val, decoder, _inner_offset, depth)?;
7348 } else {
7349 unreachable!()
7350 }
7351 }
7352 7 => {
7353 #[allow(irrefutable_let_patterns)]
7354 if let AllowlistedCapability::Resolver(_) = self {
7355 } else {
7357 *self = AllowlistedCapability::Resolver(fidl::new_empty!(
7359 AllowlistedResolver,
7360 D
7361 ));
7362 }
7363 #[allow(irrefutable_let_patterns)]
7364 if let AllowlistedCapability::Resolver(ref mut val) = self {
7365 fidl::decode!(AllowlistedResolver, D, val, decoder, _inner_offset, depth)?;
7366 } else {
7367 unreachable!()
7368 }
7369 }
7370 #[allow(deprecated)]
7371 ordinal => {
7372 for _ in 0..num_handles {
7373 decoder.drop_next_handle()?;
7374 }
7375 *self = AllowlistedCapability::__SourceBreaking { unknown_ordinal: ordinal };
7376 }
7377 }
7378 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7379 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7380 }
7381 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7382 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7383 }
7384 Ok(())
7385 }
7386 }
7387
7388 impl fidl::encoding::ValueTypeMarker for AllowlistedDebugRegistration {
7389 type Borrowed<'a> = &'a Self;
7390 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7391 value
7392 }
7393 }
7394
7395 unsafe impl fidl::encoding::TypeMarker for AllowlistedDebugRegistration {
7396 type Owned = Self;
7397
7398 #[inline(always)]
7399 fn inline_align(_context: fidl::encoding::Context) -> usize {
7400 8
7401 }
7402
7403 #[inline(always)]
7404 fn inline_size(_context: fidl::encoding::Context) -> usize {
7405 16
7406 }
7407 }
7408
7409 unsafe impl<D: fidl::encoding::ResourceDialect>
7410 fidl::encoding::Encode<AllowlistedDebugRegistration, D> for &AllowlistedDebugRegistration
7411 {
7412 #[inline]
7413 unsafe fn encode(
7414 self,
7415 encoder: &mut fidl::encoding::Encoder<'_, D>,
7416 offset: usize,
7417 _depth: fidl::encoding::Depth,
7418 ) -> fidl::Result<()> {
7419 encoder.debug_check_bounds::<AllowlistedDebugRegistration>(offset);
7420 encoder.write_num::<u64>(self.ordinal(), offset);
7421 match self {
7422 AllowlistedDebugRegistration::Protocol(ref val) => {
7423 fidl::encoding::encode_in_envelope::<AllowlistedProtocol, D>(
7424 <AllowlistedProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7425 encoder,
7426 offset + 8,
7427 _depth,
7428 )
7429 }
7430 AllowlistedDebugRegistration::__SourceBreaking { .. } => {
7431 Err(fidl::Error::UnknownUnionTag)
7432 }
7433 }
7434 }
7435 }
7436
7437 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7438 for AllowlistedDebugRegistration
7439 {
7440 #[inline(always)]
7441 fn new_empty() -> Self {
7442 Self::__SourceBreaking { unknown_ordinal: 0 }
7443 }
7444
7445 #[inline]
7446 unsafe fn decode(
7447 &mut self,
7448 decoder: &mut fidl::encoding::Decoder<'_, D>,
7449 offset: usize,
7450 mut depth: fidl::encoding::Depth,
7451 ) -> fidl::Result<()> {
7452 decoder.debug_check_bounds::<Self>(offset);
7453 #[allow(unused_variables)]
7454 let next_out_of_line = decoder.next_out_of_line();
7455 let handles_before = decoder.remaining_handles();
7456 let (ordinal, inlined, num_bytes, num_handles) =
7457 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7458
7459 let member_inline_size = match ordinal {
7460 1 => <AllowlistedProtocol as fidl::encoding::TypeMarker>::inline_size(
7461 decoder.context,
7462 ),
7463 0 => return Err(fidl::Error::UnknownUnionTag),
7464 _ => num_bytes as usize,
7465 };
7466
7467 if inlined != (member_inline_size <= 4) {
7468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7469 }
7470 let _inner_offset;
7471 if inlined {
7472 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7473 _inner_offset = offset + 8;
7474 } else {
7475 depth.increment()?;
7476 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7477 }
7478 match ordinal {
7479 1 => {
7480 #[allow(irrefutable_let_patterns)]
7481 if let AllowlistedDebugRegistration::Protocol(_) = self {
7482 } else {
7484 *self = AllowlistedDebugRegistration::Protocol(fidl::new_empty!(
7486 AllowlistedProtocol,
7487 D
7488 ));
7489 }
7490 #[allow(irrefutable_let_patterns)]
7491 if let AllowlistedDebugRegistration::Protocol(ref mut val) = self {
7492 fidl::decode!(AllowlistedProtocol, D, val, decoder, _inner_offset, depth)?;
7493 } else {
7494 unreachable!()
7495 }
7496 }
7497 #[allow(deprecated)]
7498 ordinal => {
7499 for _ in 0..num_handles {
7500 decoder.drop_next_handle()?;
7501 }
7502 *self =
7503 AllowlistedDebugRegistration::__SourceBreaking { unknown_ordinal: ordinal };
7504 }
7505 }
7506 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7507 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7508 }
7509 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7510 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7511 }
7512 Ok(())
7513 }
7514 }
7515
7516 impl fidl::encoding::ValueTypeMarker for InjectedUse {
7517 type Borrowed<'a> = &'a Self;
7518 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7519 value
7520 }
7521 }
7522
7523 unsafe impl fidl::encoding::TypeMarker for InjectedUse {
7524 type Owned = Self;
7525
7526 #[inline(always)]
7527 fn inline_align(_context: fidl::encoding::Context) -> usize {
7528 8
7529 }
7530
7531 #[inline(always)]
7532 fn inline_size(_context: fidl::encoding::Context) -> usize {
7533 16
7534 }
7535 }
7536
7537 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedUse, D>
7538 for &InjectedUse
7539 {
7540 #[inline]
7541 unsafe fn encode(
7542 self,
7543 encoder: &mut fidl::encoding::Encoder<'_, D>,
7544 offset: usize,
7545 _depth: fidl::encoding::Depth,
7546 ) -> fidl::Result<()> {
7547 encoder.debug_check_bounds::<InjectedUse>(offset);
7548 encoder.write_num::<u64>(self.ordinal(), offset);
7549 match self {
7550 InjectedUse::Protocol(ref val) => {
7551 fidl::encoding::encode_in_envelope::<InjectedUseProtocol, D>(
7552 <InjectedUseProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7553 encoder,
7554 offset + 8,
7555 _depth,
7556 )
7557 }
7558 InjectedUse::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7559 }
7560 }
7561 }
7562
7563 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedUse {
7564 #[inline(always)]
7565 fn new_empty() -> Self {
7566 Self::__SourceBreaking { unknown_ordinal: 0 }
7567 }
7568
7569 #[inline]
7570 unsafe fn decode(
7571 &mut self,
7572 decoder: &mut fidl::encoding::Decoder<'_, D>,
7573 offset: usize,
7574 mut depth: fidl::encoding::Depth,
7575 ) -> fidl::Result<()> {
7576 decoder.debug_check_bounds::<Self>(offset);
7577 #[allow(unused_variables)]
7578 let next_out_of_line = decoder.next_out_of_line();
7579 let handles_before = decoder.remaining_handles();
7580 let (ordinal, inlined, num_bytes, num_handles) =
7581 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7582
7583 let member_inline_size = match ordinal {
7584 1 => <InjectedUseProtocol as fidl::encoding::TypeMarker>::inline_size(
7585 decoder.context,
7586 ),
7587 0 => return Err(fidl::Error::UnknownUnionTag),
7588 _ => num_bytes as usize,
7589 };
7590
7591 if inlined != (member_inline_size <= 4) {
7592 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7593 }
7594 let _inner_offset;
7595 if inlined {
7596 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7597 _inner_offset = offset + 8;
7598 } else {
7599 depth.increment()?;
7600 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7601 }
7602 match ordinal {
7603 1 => {
7604 #[allow(irrefutable_let_patterns)]
7605 if let InjectedUse::Protocol(_) = self {
7606 } else {
7608 *self = InjectedUse::Protocol(fidl::new_empty!(InjectedUseProtocol, D));
7610 }
7611 #[allow(irrefutable_let_patterns)]
7612 if let InjectedUse::Protocol(ref mut val) = self {
7613 fidl::decode!(InjectedUseProtocol, D, val, decoder, _inner_offset, depth)?;
7614 } else {
7615 unreachable!()
7616 }
7617 }
7618 #[allow(deprecated)]
7619 ordinal => {
7620 for _ in 0..num_handles {
7621 decoder.drop_next_handle()?;
7622 }
7623 *self = InjectedUse::__SourceBreaking { unknown_ordinal: ordinal };
7624 }
7625 }
7626 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7627 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7628 }
7629 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7630 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7631 }
7632 Ok(())
7633 }
7634 }
7635}