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::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Capability>, D>(
3014 self.namespace_capabilities.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Capability> as fidl::encoding::ValueTypeMarker>::borrow),
3015 encoder, offset + cur_offset, depth
3016 )?;
3017
3018 _prev_end_offset = cur_offset + envelope_size;
3019 if 5 > max_ordinal {
3020 return Ok(());
3021 }
3022
3023 let cur_offset: usize = (5 - 1) * envelope_size;
3026
3027 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3029
3030 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3035 self.use_builtin_process_launcher
3036 .as_ref()
3037 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3038 encoder,
3039 offset + cur_offset,
3040 depth,
3041 )?;
3042
3043 _prev_end_offset = cur_offset + envelope_size;
3044 if 6 > max_ordinal {
3045 return Ok(());
3046 }
3047
3048 let cur_offset: usize = (6 - 1) * envelope_size;
3051
3052 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3054
3055 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3060 self.maintain_utc_clock
3061 .as_ref()
3062 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3063 encoder,
3064 offset + cur_offset,
3065 depth,
3066 )?;
3067
3068 _prev_end_offset = cur_offset + envelope_size;
3069 if 7 > max_ordinal {
3070 return Ok(());
3071 }
3072
3073 let cur_offset: usize = (7 - 1) * envelope_size;
3076
3077 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3079
3080 fidl::encoding::encode_in_envelope_optional::<u8, D>(
3085 self.num_threads.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
3086 encoder,
3087 offset + cur_offset,
3088 depth,
3089 )?;
3090
3091 _prev_end_offset = cur_offset + envelope_size;
3092 if 10 > max_ordinal {
3093 return Ok(());
3094 }
3095
3096 let cur_offset: usize = (10 - 1) * envelope_size;
3099
3100 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3102
3103 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
3108 self.root_component_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
3109 encoder, offset + cur_offset, depth
3110 )?;
3111
3112 _prev_end_offset = cur_offset + envelope_size;
3113 if 11 > max_ordinal {
3114 return Ok(());
3115 }
3116
3117 let cur_offset: usize = (11 - 1) * envelope_size;
3120
3121 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3123
3124 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
3129 self.component_id_index_path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
3130 encoder, offset + cur_offset, depth
3131 )?;
3132
3133 _prev_end_offset = cur_offset + envelope_size;
3134 if 12 > max_ordinal {
3135 return Ok(());
3136 }
3137
3138 let cur_offset: usize = (12 - 1) * envelope_size;
3141
3142 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3144
3145 fidl::encoding::encode_in_envelope_optional::<LogDestination, D>(
3150 self.log_destination
3151 .as_ref()
3152 .map(<LogDestination as fidl::encoding::ValueTypeMarker>::borrow),
3153 encoder,
3154 offset + cur_offset,
3155 depth,
3156 )?;
3157
3158 _prev_end_offset = cur_offset + envelope_size;
3159 if 13 > max_ordinal {
3160 return Ok(());
3161 }
3162
3163 let cur_offset: usize = (13 - 1) * envelope_size;
3166
3167 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3169
3170 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3175 self.log_all_events.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3176 encoder,
3177 offset + cur_offset,
3178 depth,
3179 )?;
3180
3181 _prev_end_offset = cur_offset + envelope_size;
3182 if 14 > max_ordinal {
3183 return Ok(());
3184 }
3185
3186 let cur_offset: usize = (14 - 1) * envelope_size;
3189
3190 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3192
3193 fidl::encoding::encode_in_envelope_optional::<BuiltinBootResolver, D>(
3198 self.builtin_boot_resolver
3199 .as_ref()
3200 .map(<BuiltinBootResolver as fidl::encoding::ValueTypeMarker>::borrow),
3201 encoder,
3202 offset + cur_offset,
3203 depth,
3204 )?;
3205
3206 _prev_end_offset = cur_offset + envelope_size;
3207 if 16 > max_ordinal {
3208 return Ok(());
3209 }
3210
3211 let cur_offset: usize = (16 - 1) * envelope_size;
3214
3215 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3217
3218 fidl::encoding::encode_in_envelope_optional::<RealmBuilderResolverAndRunner, D>(
3223 self.realm_builder_resolver_and_runner.as_ref().map(
3224 <RealmBuilderResolverAndRunner as fidl::encoding::ValueTypeMarker>::borrow,
3225 ),
3226 encoder,
3227 offset + cur_offset,
3228 depth,
3229 )?;
3230
3231 _prev_end_offset = cur_offset + envelope_size;
3232 if 17 > max_ordinal {
3233 return Ok(());
3234 }
3235
3236 let cur_offset: usize = (17 - 1) * envelope_size;
3239
3240 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3242
3243 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Capability>, D>(
3248 self.builtin_capabilities.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Capability> as fidl::encoding::ValueTypeMarker>::borrow),
3249 encoder, offset + cur_offset, depth
3250 )?;
3251
3252 _prev_end_offset = cur_offset + envelope_size;
3253 if 18 > max_ordinal {
3254 return Ok(());
3255 }
3256
3257 let cur_offset: usize = (18 - 1) * envelope_size;
3260
3261 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3263
3264 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3269 self.enable_introspection
3270 .as_ref()
3271 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3272 encoder,
3273 offset + cur_offset,
3274 depth,
3275 )?;
3276
3277 _prev_end_offset = cur_offset + envelope_size;
3278 if 19 > max_ordinal {
3279 return Ok(());
3280 }
3281
3282 let cur_offset: usize = (19 - 1) * envelope_size;
3285
3286 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3288
3289 fidl::encoding::encode_in_envelope_optional::<AbiRevisionPolicy, D>(
3294 self.abi_revision_policy
3295 .as_ref()
3296 .map(<AbiRevisionPolicy as fidl::encoding::ValueTypeMarker>::borrow),
3297 encoder,
3298 offset + cur_offset,
3299 depth,
3300 )?;
3301
3302 _prev_end_offset = cur_offset + envelope_size;
3303 if 20 > max_ordinal {
3304 return Ok(());
3305 }
3306
3307 let cur_offset: usize = (20 - 1) * envelope_size;
3310
3311 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3313
3314 fidl::encoding::encode_in_envelope_optional::<VmexSource, D>(
3319 self.vmex_source
3320 .as_ref()
3321 .map(<VmexSource as fidl::encoding::ValueTypeMarker>::borrow),
3322 encoder,
3323 offset + cur_offset,
3324 depth,
3325 )?;
3326
3327 _prev_end_offset = cur_offset + envelope_size;
3328 if 21 > max_ordinal {
3329 return Ok(());
3330 }
3331
3332 let cur_offset: usize = (21 - 1) * envelope_size;
3335
3336 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3338
3339 fidl::encoding::encode_in_envelope_optional::<HealthCheck, D>(
3344 self.health_check
3345 .as_ref()
3346 .map(<HealthCheck as fidl::encoding::ValueTypeMarker>::borrow),
3347 encoder,
3348 offset + cur_offset,
3349 depth,
3350 )?;
3351
3352 _prev_end_offset = cur_offset + envelope_size;
3353 if 22 > max_ordinal {
3354 return Ok(());
3355 }
3356
3357 let cur_offset: usize = (22 - 1) * envelope_size;
3360
3361 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3363
3364 fidl::encoding::encode_in_envelope_optional::<TraceProvider, D>(
3369 self.trace_provider
3370 .as_ref()
3371 .map(<TraceProvider as fidl::encoding::ValueTypeMarker>::borrow),
3372 encoder,
3373 offset + cur_offset,
3374 depth,
3375 )?;
3376
3377 _prev_end_offset = cur_offset + envelope_size;
3378 if 23 > max_ordinal {
3379 return Ok(());
3380 }
3381
3382 let cur_offset: usize = (23 - 1) * envelope_size;
3385
3386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3388
3389 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<InjectedCapabilities>, D>(
3394 self.inject_capabilities.as_ref().map(<fidl::encoding::UnboundedVector<InjectedCapabilities> as fidl::encoding::ValueTypeMarker>::borrow),
3395 encoder, offset + cur_offset, depth
3396 )?;
3397
3398 _prev_end_offset = cur_offset + envelope_size;
3399 if 24 > max_ordinal {
3400 return Ok(());
3401 }
3402
3403 let cur_offset: usize = (24 - 1) * envelope_size;
3406
3407 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3409
3410 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3415 self.scudo_options.as_ref().map(
3416 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3417 ),
3418 encoder,
3419 offset + cur_offset,
3420 depth,
3421 )?;
3422
3423 _prev_end_offset = cur_offset + envelope_size;
3424
3425 Ok(())
3426 }
3427 }
3428
3429 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
3430 #[inline(always)]
3431 fn new_empty() -> Self {
3432 Self::default()
3433 }
3434
3435 unsafe fn decode(
3436 &mut self,
3437 decoder: &mut fidl::encoding::Decoder<'_, D>,
3438 offset: usize,
3439 mut depth: fidl::encoding::Depth,
3440 ) -> fidl::Result<()> {
3441 decoder.debug_check_bounds::<Self>(offset);
3442 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3443 None => return Err(fidl::Error::NotNullable),
3444 Some(len) => len,
3445 };
3446 if len == 0 {
3448 return Ok(());
3449 };
3450 depth.increment()?;
3451 let envelope_size = 8;
3452 let bytes_len = len * envelope_size;
3453 let offset = decoder.out_of_line_offset(bytes_len)?;
3454 let mut _next_ordinal_to_read = 0;
3456 let mut next_offset = offset;
3457 let end_offset = offset + bytes_len;
3458 _next_ordinal_to_read += 1;
3459 if next_offset >= end_offset {
3460 return Ok(());
3461 }
3462
3463 while _next_ordinal_to_read < 1 {
3465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3466 _next_ordinal_to_read += 1;
3467 next_offset += envelope_size;
3468 }
3469
3470 let next_out_of_line = decoder.next_out_of_line();
3471 let handles_before = decoder.remaining_handles();
3472 if let Some((inlined, num_bytes, num_handles)) =
3473 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3474 {
3475 let member_inline_size =
3476 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3477 if inlined != (member_inline_size <= 4) {
3478 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3479 }
3480 let inner_offset;
3481 let mut inner_depth = depth.clone();
3482 if inlined {
3483 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3484 inner_offset = next_offset;
3485 } else {
3486 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3487 inner_depth.increment()?;
3488 }
3489 let val_ref = self.debug.get_or_insert_with(|| fidl::new_empty!(bool, D));
3490 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3491 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3492 {
3493 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3494 }
3495 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3496 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3497 }
3498 }
3499
3500 next_offset += envelope_size;
3501 _next_ordinal_to_read += 1;
3502 if next_offset >= end_offset {
3503 return Ok(());
3504 }
3505
3506 while _next_ordinal_to_read < 2 {
3508 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3509 _next_ordinal_to_read += 1;
3510 next_offset += envelope_size;
3511 }
3512
3513 let next_out_of_line = decoder.next_out_of_line();
3514 let handles_before = decoder.remaining_handles();
3515 if let Some((inlined, num_bytes, num_handles)) =
3516 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3517 {
3518 let member_inline_size =
3519 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3520 if inlined != (member_inline_size <= 4) {
3521 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3522 }
3523 let inner_offset;
3524 let mut inner_depth = depth.clone();
3525 if inlined {
3526 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3527 inner_offset = next_offset;
3528 } else {
3529 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3530 inner_depth.increment()?;
3531 }
3532 let val_ref =
3533 self.list_children_batch_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
3534 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3535 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3536 {
3537 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3538 }
3539 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3540 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3541 }
3542 }
3543
3544 next_offset += envelope_size;
3545 _next_ordinal_to_read += 1;
3546 if next_offset >= end_offset {
3547 return Ok(());
3548 }
3549
3550 while _next_ordinal_to_read < 3 {
3552 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3553 _next_ordinal_to_read += 1;
3554 next_offset += envelope_size;
3555 }
3556
3557 let next_out_of_line = decoder.next_out_of_line();
3558 let handles_before = decoder.remaining_handles();
3559 if let Some((inlined, num_bytes, num_handles)) =
3560 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3561 {
3562 let member_inline_size =
3563 <SecurityPolicy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3564 if inlined != (member_inline_size <= 4) {
3565 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3566 }
3567 let inner_offset;
3568 let mut inner_depth = depth.clone();
3569 if inlined {
3570 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3571 inner_offset = next_offset;
3572 } else {
3573 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3574 inner_depth.increment()?;
3575 }
3576 let val_ref =
3577 self.security_policy.get_or_insert_with(|| fidl::new_empty!(SecurityPolicy, D));
3578 fidl::decode!(SecurityPolicy, D, val_ref, decoder, inner_offset, inner_depth)?;
3579 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3580 {
3581 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3582 }
3583 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3584 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3585 }
3586 }
3587
3588 next_offset += envelope_size;
3589 _next_ordinal_to_read += 1;
3590 if next_offset >= end_offset {
3591 return Ok(());
3592 }
3593
3594 while _next_ordinal_to_read < 4 {
3596 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3597 _next_ordinal_to_read += 1;
3598 next_offset += envelope_size;
3599 }
3600
3601 let next_out_of_line = decoder.next_out_of_line();
3602 let handles_before = decoder.remaining_handles();
3603 if let Some((inlined, num_bytes, num_handles)) =
3604 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3605 {
3606 let member_inline_size = <fidl::encoding::UnboundedVector<
3607 fidl_fuchsia_component_decl_common::Capability,
3608 > as fidl::encoding::TypeMarker>::inline_size(
3609 decoder.context
3610 );
3611 if inlined != (member_inline_size <= 4) {
3612 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3613 }
3614 let inner_offset;
3615 let mut inner_depth = depth.clone();
3616 if inlined {
3617 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3618 inner_offset = next_offset;
3619 } else {
3620 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3621 inner_depth.increment()?;
3622 }
3623 let val_ref = self.namespace_capabilities.get_or_insert_with(|| {
3624 fidl::new_empty!(
3625 fidl::encoding::UnboundedVector<
3626 fidl_fuchsia_component_decl_common::Capability,
3627 >,
3628 D
3629 )
3630 });
3631 fidl::decode!(
3632 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Capability>,
3633 D,
3634 val_ref,
3635 decoder,
3636 inner_offset,
3637 inner_depth
3638 )?;
3639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3640 {
3641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3642 }
3643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3645 }
3646 }
3647
3648 next_offset += envelope_size;
3649 _next_ordinal_to_read += 1;
3650 if next_offset >= end_offset {
3651 return Ok(());
3652 }
3653
3654 while _next_ordinal_to_read < 5 {
3656 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3657 _next_ordinal_to_read += 1;
3658 next_offset += envelope_size;
3659 }
3660
3661 let next_out_of_line = decoder.next_out_of_line();
3662 let handles_before = decoder.remaining_handles();
3663 if let Some((inlined, num_bytes, num_handles)) =
3664 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3665 {
3666 let member_inline_size =
3667 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3668 if inlined != (member_inline_size <= 4) {
3669 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3670 }
3671 let inner_offset;
3672 let mut inner_depth = depth.clone();
3673 if inlined {
3674 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3675 inner_offset = next_offset;
3676 } else {
3677 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3678 inner_depth.increment()?;
3679 }
3680 let val_ref = self
3681 .use_builtin_process_launcher
3682 .get_or_insert_with(|| fidl::new_empty!(bool, D));
3683 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3684 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3685 {
3686 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3687 }
3688 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3689 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3690 }
3691 }
3692
3693 next_offset += envelope_size;
3694 _next_ordinal_to_read += 1;
3695 if next_offset >= end_offset {
3696 return Ok(());
3697 }
3698
3699 while _next_ordinal_to_read < 6 {
3701 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3702 _next_ordinal_to_read += 1;
3703 next_offset += envelope_size;
3704 }
3705
3706 let next_out_of_line = decoder.next_out_of_line();
3707 let handles_before = decoder.remaining_handles();
3708 if let Some((inlined, num_bytes, num_handles)) =
3709 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3710 {
3711 let member_inline_size =
3712 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3713 if inlined != (member_inline_size <= 4) {
3714 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3715 }
3716 let inner_offset;
3717 let mut inner_depth = depth.clone();
3718 if inlined {
3719 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3720 inner_offset = next_offset;
3721 } else {
3722 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3723 inner_depth.increment()?;
3724 }
3725 let val_ref =
3726 self.maintain_utc_clock.get_or_insert_with(|| fidl::new_empty!(bool, D));
3727 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3728 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3729 {
3730 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3731 }
3732 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3733 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3734 }
3735 }
3736
3737 next_offset += envelope_size;
3738 _next_ordinal_to_read += 1;
3739 if next_offset >= end_offset {
3740 return Ok(());
3741 }
3742
3743 while _next_ordinal_to_read < 7 {
3745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3746 _next_ordinal_to_read += 1;
3747 next_offset += envelope_size;
3748 }
3749
3750 let next_out_of_line = decoder.next_out_of_line();
3751 let handles_before = decoder.remaining_handles();
3752 if let Some((inlined, num_bytes, num_handles)) =
3753 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3754 {
3755 let member_inline_size =
3756 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3757 if inlined != (member_inline_size <= 4) {
3758 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3759 }
3760 let inner_offset;
3761 let mut inner_depth = depth.clone();
3762 if inlined {
3763 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3764 inner_offset = next_offset;
3765 } else {
3766 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3767 inner_depth.increment()?;
3768 }
3769 let val_ref = self.num_threads.get_or_insert_with(|| fidl::new_empty!(u8, D));
3770 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
3771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3772 {
3773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3774 }
3775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3777 }
3778 }
3779
3780 next_offset += envelope_size;
3781 _next_ordinal_to_read += 1;
3782 if next_offset >= end_offset {
3783 return Ok(());
3784 }
3785
3786 while _next_ordinal_to_read < 10 {
3788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3789 _next_ordinal_to_read += 1;
3790 next_offset += envelope_size;
3791 }
3792
3793 let next_out_of_line = decoder.next_out_of_line();
3794 let handles_before = decoder.remaining_handles();
3795 if let Some((inlined, num_bytes, num_handles)) =
3796 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3797 {
3798 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3799 if inlined != (member_inline_size <= 4) {
3800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3801 }
3802 let inner_offset;
3803 let mut inner_depth = depth.clone();
3804 if inlined {
3805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3806 inner_offset = next_offset;
3807 } else {
3808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3809 inner_depth.increment()?;
3810 }
3811 let val_ref = self.root_component_url.get_or_insert_with(|| {
3812 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
3813 });
3814 fidl::decode!(
3815 fidl::encoding::BoundedString<4096>,
3816 D,
3817 val_ref,
3818 decoder,
3819 inner_offset,
3820 inner_depth
3821 )?;
3822 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3823 {
3824 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3825 }
3826 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3827 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3828 }
3829 }
3830
3831 next_offset += envelope_size;
3832 _next_ordinal_to_read += 1;
3833 if next_offset >= end_offset {
3834 return Ok(());
3835 }
3836
3837 while _next_ordinal_to_read < 11 {
3839 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3840 _next_ordinal_to_read += 1;
3841 next_offset += envelope_size;
3842 }
3843
3844 let next_out_of_line = decoder.next_out_of_line();
3845 let handles_before = decoder.remaining_handles();
3846 if let Some((inlined, num_bytes, num_handles)) =
3847 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3848 {
3849 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3850 if inlined != (member_inline_size <= 4) {
3851 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3852 }
3853 let inner_offset;
3854 let mut inner_depth = depth.clone();
3855 if inlined {
3856 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3857 inner_offset = next_offset;
3858 } else {
3859 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3860 inner_depth.increment()?;
3861 }
3862 let val_ref = self.component_id_index_path.get_or_insert_with(|| {
3863 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
3864 });
3865 fidl::decode!(
3866 fidl::encoding::BoundedString<4095>,
3867 D,
3868 val_ref,
3869 decoder,
3870 inner_offset,
3871 inner_depth
3872 )?;
3873 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3874 {
3875 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3876 }
3877 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3878 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3879 }
3880 }
3881
3882 next_offset += envelope_size;
3883 _next_ordinal_to_read += 1;
3884 if next_offset >= end_offset {
3885 return Ok(());
3886 }
3887
3888 while _next_ordinal_to_read < 12 {
3890 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3891 _next_ordinal_to_read += 1;
3892 next_offset += envelope_size;
3893 }
3894
3895 let next_out_of_line = decoder.next_out_of_line();
3896 let handles_before = decoder.remaining_handles();
3897 if let Some((inlined, num_bytes, num_handles)) =
3898 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3899 {
3900 let member_inline_size =
3901 <LogDestination as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3902 if inlined != (member_inline_size <= 4) {
3903 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3904 }
3905 let inner_offset;
3906 let mut inner_depth = depth.clone();
3907 if inlined {
3908 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3909 inner_offset = next_offset;
3910 } else {
3911 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3912 inner_depth.increment()?;
3913 }
3914 let val_ref =
3915 self.log_destination.get_or_insert_with(|| fidl::new_empty!(LogDestination, D));
3916 fidl::decode!(LogDestination, D, val_ref, decoder, inner_offset, inner_depth)?;
3917 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3918 {
3919 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3920 }
3921 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3922 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3923 }
3924 }
3925
3926 next_offset += envelope_size;
3927 _next_ordinal_to_read += 1;
3928 if next_offset >= end_offset {
3929 return Ok(());
3930 }
3931
3932 while _next_ordinal_to_read < 13 {
3934 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3935 _next_ordinal_to_read += 1;
3936 next_offset += envelope_size;
3937 }
3938
3939 let next_out_of_line = decoder.next_out_of_line();
3940 let handles_before = decoder.remaining_handles();
3941 if let Some((inlined, num_bytes, num_handles)) =
3942 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3943 {
3944 let member_inline_size =
3945 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3946 if inlined != (member_inline_size <= 4) {
3947 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3948 }
3949 let inner_offset;
3950 let mut inner_depth = depth.clone();
3951 if inlined {
3952 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3953 inner_offset = next_offset;
3954 } else {
3955 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3956 inner_depth.increment()?;
3957 }
3958 let val_ref = self.log_all_events.get_or_insert_with(|| fidl::new_empty!(bool, D));
3959 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3960 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3961 {
3962 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3963 }
3964 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3965 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3966 }
3967 }
3968
3969 next_offset += envelope_size;
3970 _next_ordinal_to_read += 1;
3971 if next_offset >= end_offset {
3972 return Ok(());
3973 }
3974
3975 while _next_ordinal_to_read < 14 {
3977 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3978 _next_ordinal_to_read += 1;
3979 next_offset += envelope_size;
3980 }
3981
3982 let next_out_of_line = decoder.next_out_of_line();
3983 let handles_before = decoder.remaining_handles();
3984 if let Some((inlined, num_bytes, num_handles)) =
3985 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3986 {
3987 let member_inline_size =
3988 <BuiltinBootResolver as fidl::encoding::TypeMarker>::inline_size(
3989 decoder.context,
3990 );
3991 if inlined != (member_inline_size <= 4) {
3992 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3993 }
3994 let inner_offset;
3995 let mut inner_depth = depth.clone();
3996 if inlined {
3997 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3998 inner_offset = next_offset;
3999 } else {
4000 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4001 inner_depth.increment()?;
4002 }
4003 let val_ref = self
4004 .builtin_boot_resolver
4005 .get_or_insert_with(|| fidl::new_empty!(BuiltinBootResolver, D));
4006 fidl::decode!(BuiltinBootResolver, D, val_ref, decoder, inner_offset, inner_depth)?;
4007 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4008 {
4009 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4010 }
4011 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4012 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4013 }
4014 }
4015
4016 next_offset += envelope_size;
4017 _next_ordinal_to_read += 1;
4018 if next_offset >= end_offset {
4019 return Ok(());
4020 }
4021
4022 while _next_ordinal_to_read < 16 {
4024 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4025 _next_ordinal_to_read += 1;
4026 next_offset += envelope_size;
4027 }
4028
4029 let next_out_of_line = decoder.next_out_of_line();
4030 let handles_before = decoder.remaining_handles();
4031 if let Some((inlined, num_bytes, num_handles)) =
4032 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4033 {
4034 let member_inline_size =
4035 <RealmBuilderResolverAndRunner as fidl::encoding::TypeMarker>::inline_size(
4036 decoder.context,
4037 );
4038 if inlined != (member_inline_size <= 4) {
4039 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4040 }
4041 let inner_offset;
4042 let mut inner_depth = depth.clone();
4043 if inlined {
4044 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4045 inner_offset = next_offset;
4046 } else {
4047 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4048 inner_depth.increment()?;
4049 }
4050 let val_ref = self
4051 .realm_builder_resolver_and_runner
4052 .get_or_insert_with(|| fidl::new_empty!(RealmBuilderResolverAndRunner, D));
4053 fidl::decode!(
4054 RealmBuilderResolverAndRunner,
4055 D,
4056 val_ref,
4057 decoder,
4058 inner_offset,
4059 inner_depth
4060 )?;
4061 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4062 {
4063 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4064 }
4065 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4066 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4067 }
4068 }
4069
4070 next_offset += envelope_size;
4071 _next_ordinal_to_read += 1;
4072 if next_offset >= end_offset {
4073 return Ok(());
4074 }
4075
4076 while _next_ordinal_to_read < 17 {
4078 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4079 _next_ordinal_to_read += 1;
4080 next_offset += envelope_size;
4081 }
4082
4083 let next_out_of_line = decoder.next_out_of_line();
4084 let handles_before = decoder.remaining_handles();
4085 if let Some((inlined, num_bytes, num_handles)) =
4086 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4087 {
4088 let member_inline_size = <fidl::encoding::UnboundedVector<
4089 fidl_fuchsia_component_decl_common::Capability,
4090 > as fidl::encoding::TypeMarker>::inline_size(
4091 decoder.context
4092 );
4093 if inlined != (member_inline_size <= 4) {
4094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4095 }
4096 let inner_offset;
4097 let mut inner_depth = depth.clone();
4098 if inlined {
4099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4100 inner_offset = next_offset;
4101 } else {
4102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4103 inner_depth.increment()?;
4104 }
4105 let val_ref = self.builtin_capabilities.get_or_insert_with(|| {
4106 fidl::new_empty!(
4107 fidl::encoding::UnboundedVector<
4108 fidl_fuchsia_component_decl_common::Capability,
4109 >,
4110 D
4111 )
4112 });
4113 fidl::decode!(
4114 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Capability>,
4115 D,
4116 val_ref,
4117 decoder,
4118 inner_offset,
4119 inner_depth
4120 )?;
4121 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4122 {
4123 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4124 }
4125 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4126 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4127 }
4128 }
4129
4130 next_offset += envelope_size;
4131 _next_ordinal_to_read += 1;
4132 if next_offset >= end_offset {
4133 return Ok(());
4134 }
4135
4136 while _next_ordinal_to_read < 18 {
4138 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4139 _next_ordinal_to_read += 1;
4140 next_offset += envelope_size;
4141 }
4142
4143 let next_out_of_line = decoder.next_out_of_line();
4144 let handles_before = decoder.remaining_handles();
4145 if let Some((inlined, num_bytes, num_handles)) =
4146 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4147 {
4148 let member_inline_size =
4149 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4150 if inlined != (member_inline_size <= 4) {
4151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4152 }
4153 let inner_offset;
4154 let mut inner_depth = depth.clone();
4155 if inlined {
4156 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4157 inner_offset = next_offset;
4158 } else {
4159 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4160 inner_depth.increment()?;
4161 }
4162 let val_ref =
4163 self.enable_introspection.get_or_insert_with(|| fidl::new_empty!(bool, D));
4164 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4166 {
4167 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4168 }
4169 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4170 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4171 }
4172 }
4173
4174 next_offset += envelope_size;
4175 _next_ordinal_to_read += 1;
4176 if next_offset >= end_offset {
4177 return Ok(());
4178 }
4179
4180 while _next_ordinal_to_read < 19 {
4182 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4183 _next_ordinal_to_read += 1;
4184 next_offset += envelope_size;
4185 }
4186
4187 let next_out_of_line = decoder.next_out_of_line();
4188 let handles_before = decoder.remaining_handles();
4189 if let Some((inlined, num_bytes, num_handles)) =
4190 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4191 {
4192 let member_inline_size =
4193 <AbiRevisionPolicy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4194 if inlined != (member_inline_size <= 4) {
4195 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4196 }
4197 let inner_offset;
4198 let mut inner_depth = depth.clone();
4199 if inlined {
4200 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4201 inner_offset = next_offset;
4202 } else {
4203 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4204 inner_depth.increment()?;
4205 }
4206 let val_ref = self
4207 .abi_revision_policy
4208 .get_or_insert_with(|| fidl::new_empty!(AbiRevisionPolicy, D));
4209 fidl::decode!(AbiRevisionPolicy, D, val_ref, decoder, inner_offset, inner_depth)?;
4210 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4211 {
4212 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4213 }
4214 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4215 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4216 }
4217 }
4218
4219 next_offset += envelope_size;
4220 _next_ordinal_to_read += 1;
4221 if next_offset >= end_offset {
4222 return Ok(());
4223 }
4224
4225 while _next_ordinal_to_read < 20 {
4227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4228 _next_ordinal_to_read += 1;
4229 next_offset += envelope_size;
4230 }
4231
4232 let next_out_of_line = decoder.next_out_of_line();
4233 let handles_before = decoder.remaining_handles();
4234 if let Some((inlined, num_bytes, num_handles)) =
4235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4236 {
4237 let member_inline_size =
4238 <VmexSource as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4239 if inlined != (member_inline_size <= 4) {
4240 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4241 }
4242 let inner_offset;
4243 let mut inner_depth = depth.clone();
4244 if inlined {
4245 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4246 inner_offset = next_offset;
4247 } else {
4248 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4249 inner_depth.increment()?;
4250 }
4251 let val_ref =
4252 self.vmex_source.get_or_insert_with(|| fidl::new_empty!(VmexSource, D));
4253 fidl::decode!(VmexSource, D, val_ref, decoder, inner_offset, inner_depth)?;
4254 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4255 {
4256 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4257 }
4258 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4259 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4260 }
4261 }
4262
4263 next_offset += envelope_size;
4264 _next_ordinal_to_read += 1;
4265 if next_offset >= end_offset {
4266 return Ok(());
4267 }
4268
4269 while _next_ordinal_to_read < 21 {
4271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4272 _next_ordinal_to_read += 1;
4273 next_offset += envelope_size;
4274 }
4275
4276 let next_out_of_line = decoder.next_out_of_line();
4277 let handles_before = decoder.remaining_handles();
4278 if let Some((inlined, num_bytes, num_handles)) =
4279 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4280 {
4281 let member_inline_size =
4282 <HealthCheck as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4283 if inlined != (member_inline_size <= 4) {
4284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4285 }
4286 let inner_offset;
4287 let mut inner_depth = depth.clone();
4288 if inlined {
4289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4290 inner_offset = next_offset;
4291 } else {
4292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4293 inner_depth.increment()?;
4294 }
4295 let val_ref =
4296 self.health_check.get_or_insert_with(|| fidl::new_empty!(HealthCheck, D));
4297 fidl::decode!(HealthCheck, D, val_ref, decoder, inner_offset, inner_depth)?;
4298 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4299 {
4300 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4301 }
4302 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4303 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4304 }
4305 }
4306
4307 next_offset += envelope_size;
4308 _next_ordinal_to_read += 1;
4309 if next_offset >= end_offset {
4310 return Ok(());
4311 }
4312
4313 while _next_ordinal_to_read < 22 {
4315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4316 _next_ordinal_to_read += 1;
4317 next_offset += envelope_size;
4318 }
4319
4320 let next_out_of_line = decoder.next_out_of_line();
4321 let handles_before = decoder.remaining_handles();
4322 if let Some((inlined, num_bytes, num_handles)) =
4323 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4324 {
4325 let member_inline_size =
4326 <TraceProvider as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4327 if inlined != (member_inline_size <= 4) {
4328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4329 }
4330 let inner_offset;
4331 let mut inner_depth = depth.clone();
4332 if inlined {
4333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4334 inner_offset = next_offset;
4335 } else {
4336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4337 inner_depth.increment()?;
4338 }
4339 let val_ref =
4340 self.trace_provider.get_or_insert_with(|| fidl::new_empty!(TraceProvider, D));
4341 fidl::decode!(TraceProvider, D, val_ref, decoder, inner_offset, inner_depth)?;
4342 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4343 {
4344 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4345 }
4346 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4347 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4348 }
4349 }
4350
4351 next_offset += envelope_size;
4352 _next_ordinal_to_read += 1;
4353 if next_offset >= end_offset {
4354 return Ok(());
4355 }
4356
4357 while _next_ordinal_to_read < 23 {
4359 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4360 _next_ordinal_to_read += 1;
4361 next_offset += envelope_size;
4362 }
4363
4364 let next_out_of_line = decoder.next_out_of_line();
4365 let handles_before = decoder.remaining_handles();
4366 if let Some((inlined, num_bytes, num_handles)) =
4367 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4368 {
4369 let member_inline_size = <fidl::encoding::UnboundedVector<InjectedCapabilities> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4370 if inlined != (member_inline_size <= 4) {
4371 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4372 }
4373 let inner_offset;
4374 let mut inner_depth = depth.clone();
4375 if inlined {
4376 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4377 inner_offset = next_offset;
4378 } else {
4379 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4380 inner_depth.increment()?;
4381 }
4382 let val_ref = self.inject_capabilities.get_or_insert_with(|| {
4383 fidl::new_empty!(fidl::encoding::UnboundedVector<InjectedCapabilities>, D)
4384 });
4385 fidl::decode!(
4386 fidl::encoding::UnboundedVector<InjectedCapabilities>,
4387 D,
4388 val_ref,
4389 decoder,
4390 inner_offset,
4391 inner_depth
4392 )?;
4393 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4394 {
4395 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4396 }
4397 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4398 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4399 }
4400 }
4401
4402 next_offset += envelope_size;
4403 _next_ordinal_to_read += 1;
4404 if next_offset >= end_offset {
4405 return Ok(());
4406 }
4407
4408 while _next_ordinal_to_read < 24 {
4410 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4411 _next_ordinal_to_read += 1;
4412 next_offset += envelope_size;
4413 }
4414
4415 let next_out_of_line = decoder.next_out_of_line();
4416 let handles_before = decoder.remaining_handles();
4417 if let Some((inlined, num_bytes, num_handles)) =
4418 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4419 {
4420 let member_inline_size =
4421 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
4422 decoder.context,
4423 );
4424 if inlined != (member_inline_size <= 4) {
4425 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4426 }
4427 let inner_offset;
4428 let mut inner_depth = depth.clone();
4429 if inlined {
4430 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4431 inner_offset = next_offset;
4432 } else {
4433 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4434 inner_depth.increment()?;
4435 }
4436 let val_ref = self
4437 .scudo_options
4438 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
4439 fidl::decode!(
4440 fidl::encoding::UnboundedString,
4441 D,
4442 val_ref,
4443 decoder,
4444 inner_offset,
4445 inner_depth
4446 )?;
4447 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4448 {
4449 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4450 }
4451 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4452 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4453 }
4454 }
4455
4456 next_offset += envelope_size;
4457
4458 while next_offset < end_offset {
4460 _next_ordinal_to_read += 1;
4461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4462 next_offset += envelope_size;
4463 }
4464
4465 Ok(())
4466 }
4467 }
4468
4469 impl DebugRegistrationAllowlistEntry {
4470 #[inline(always)]
4471 fn max_ordinal_present(&self) -> u64 {
4472 if let Some(_) = self.environment_name {
4473 return 4;
4474 }
4475 if let Some(_) = self.moniker {
4476 return 3;
4477 }
4478 if let Some(_) = self.debug {
4479 return 2;
4480 }
4481 if let Some(_) = self.name {
4482 return 1;
4483 }
4484 0
4485 }
4486 }
4487
4488 impl fidl::encoding::ValueTypeMarker for DebugRegistrationAllowlistEntry {
4489 type Borrowed<'a> = &'a Self;
4490 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4491 value
4492 }
4493 }
4494
4495 unsafe impl fidl::encoding::TypeMarker for DebugRegistrationAllowlistEntry {
4496 type Owned = Self;
4497
4498 #[inline(always)]
4499 fn inline_align(_context: fidl::encoding::Context) -> usize {
4500 8
4501 }
4502
4503 #[inline(always)]
4504 fn inline_size(_context: fidl::encoding::Context) -> usize {
4505 16
4506 }
4507 }
4508
4509 unsafe impl<D: fidl::encoding::ResourceDialect>
4510 fidl::encoding::Encode<DebugRegistrationAllowlistEntry, D>
4511 for &DebugRegistrationAllowlistEntry
4512 {
4513 unsafe fn encode(
4514 self,
4515 encoder: &mut fidl::encoding::Encoder<'_, D>,
4516 offset: usize,
4517 mut depth: fidl::encoding::Depth,
4518 ) -> fidl::Result<()> {
4519 encoder.debug_check_bounds::<DebugRegistrationAllowlistEntry>(offset);
4520 let max_ordinal: u64 = self.max_ordinal_present();
4522 encoder.write_num(max_ordinal, offset);
4523 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4524 if max_ordinal == 0 {
4526 return Ok(());
4527 }
4528 depth.increment()?;
4529 let envelope_size = 8;
4530 let bytes_len = max_ordinal as usize * envelope_size;
4531 #[allow(unused_variables)]
4532 let offset = encoder.out_of_line_offset(bytes_len);
4533 let mut _prev_end_offset: usize = 0;
4534 if 1 > max_ordinal {
4535 return Ok(());
4536 }
4537
4538 let cur_offset: usize = (1 - 1) * envelope_size;
4541
4542 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4544
4545 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4550 self.name.as_ref().map(
4551 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4552 ),
4553 encoder,
4554 offset + cur_offset,
4555 depth,
4556 )?;
4557
4558 _prev_end_offset = cur_offset + envelope_size;
4559 if 2 > max_ordinal {
4560 return Ok(());
4561 }
4562
4563 let cur_offset: usize = (2 - 1) * envelope_size;
4566
4567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4569
4570 fidl::encoding::encode_in_envelope_optional::<AllowlistedDebugRegistration, D>(
4575 self.debug
4576 .as_ref()
4577 .map(<AllowlistedDebugRegistration as fidl::encoding::ValueTypeMarker>::borrow),
4578 encoder,
4579 offset + cur_offset,
4580 depth,
4581 )?;
4582
4583 _prev_end_offset = cur_offset + envelope_size;
4584 if 3 > max_ordinal {
4585 return Ok(());
4586 }
4587
4588 let cur_offset: usize = (3 - 1) * envelope_size;
4591
4592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4594
4595 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
4600 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
4601 encoder, offset + cur_offset, depth
4602 )?;
4603
4604 _prev_end_offset = cur_offset + envelope_size;
4605 if 4 > max_ordinal {
4606 return Ok(());
4607 }
4608
4609 let cur_offset: usize = (4 - 1) * envelope_size;
4612
4613 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4615
4616 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4621 self.environment_name.as_ref().map(
4622 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4623 ),
4624 encoder,
4625 offset + cur_offset,
4626 depth,
4627 )?;
4628
4629 _prev_end_offset = cur_offset + envelope_size;
4630
4631 Ok(())
4632 }
4633 }
4634
4635 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4636 for DebugRegistrationAllowlistEntry
4637 {
4638 #[inline(always)]
4639 fn new_empty() -> Self {
4640 Self::default()
4641 }
4642
4643 unsafe fn decode(
4644 &mut self,
4645 decoder: &mut fidl::encoding::Decoder<'_, D>,
4646 offset: usize,
4647 mut depth: fidl::encoding::Depth,
4648 ) -> fidl::Result<()> {
4649 decoder.debug_check_bounds::<Self>(offset);
4650 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4651 None => return Err(fidl::Error::NotNullable),
4652 Some(len) => len,
4653 };
4654 if len == 0 {
4656 return Ok(());
4657 };
4658 depth.increment()?;
4659 let envelope_size = 8;
4660 let bytes_len = len * envelope_size;
4661 let offset = decoder.out_of_line_offset(bytes_len)?;
4662 let mut _next_ordinal_to_read = 0;
4664 let mut next_offset = offset;
4665 let end_offset = offset + bytes_len;
4666 _next_ordinal_to_read += 1;
4667 if next_offset >= end_offset {
4668 return Ok(());
4669 }
4670
4671 while _next_ordinal_to_read < 1 {
4673 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4674 _next_ordinal_to_read += 1;
4675 next_offset += envelope_size;
4676 }
4677
4678 let next_out_of_line = decoder.next_out_of_line();
4679 let handles_before = decoder.remaining_handles();
4680 if let Some((inlined, num_bytes, num_handles)) =
4681 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4682 {
4683 let member_inline_size =
4684 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4685 decoder.context,
4686 );
4687 if inlined != (member_inline_size <= 4) {
4688 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4689 }
4690 let inner_offset;
4691 let mut inner_depth = depth.clone();
4692 if inlined {
4693 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4694 inner_offset = next_offset;
4695 } else {
4696 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4697 inner_depth.increment()?;
4698 }
4699 let val_ref = self
4700 .name
4701 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4702 fidl::decode!(
4703 fidl::encoding::BoundedString<255>,
4704 D,
4705 val_ref,
4706 decoder,
4707 inner_offset,
4708 inner_depth
4709 )?;
4710 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4711 {
4712 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4713 }
4714 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4715 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4716 }
4717 }
4718
4719 next_offset += envelope_size;
4720 _next_ordinal_to_read += 1;
4721 if next_offset >= end_offset {
4722 return Ok(());
4723 }
4724
4725 while _next_ordinal_to_read < 2 {
4727 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4728 _next_ordinal_to_read += 1;
4729 next_offset += envelope_size;
4730 }
4731
4732 let next_out_of_line = decoder.next_out_of_line();
4733 let handles_before = decoder.remaining_handles();
4734 if let Some((inlined, num_bytes, num_handles)) =
4735 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4736 {
4737 let member_inline_size =
4738 <AllowlistedDebugRegistration as fidl::encoding::TypeMarker>::inline_size(
4739 decoder.context,
4740 );
4741 if inlined != (member_inline_size <= 4) {
4742 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4743 }
4744 let inner_offset;
4745 let mut inner_depth = depth.clone();
4746 if inlined {
4747 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4748 inner_offset = next_offset;
4749 } else {
4750 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4751 inner_depth.increment()?;
4752 }
4753 let val_ref = self
4754 .debug
4755 .get_or_insert_with(|| fidl::new_empty!(AllowlistedDebugRegistration, D));
4756 fidl::decode!(
4757 AllowlistedDebugRegistration,
4758 D,
4759 val_ref,
4760 decoder,
4761 inner_offset,
4762 inner_depth
4763 )?;
4764 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4765 {
4766 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4767 }
4768 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4769 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4770 }
4771 }
4772
4773 next_offset += envelope_size;
4774 _next_ordinal_to_read += 1;
4775 if next_offset >= end_offset {
4776 return Ok(());
4777 }
4778
4779 while _next_ordinal_to_read < 3 {
4781 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4782 _next_ordinal_to_read += 1;
4783 next_offset += envelope_size;
4784 }
4785
4786 let next_out_of_line = decoder.next_out_of_line();
4787 let handles_before = decoder.remaining_handles();
4788 if let Some((inlined, num_bytes, num_handles)) =
4789 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4790 {
4791 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4792 if inlined != (member_inline_size <= 4) {
4793 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4794 }
4795 let inner_offset;
4796 let mut inner_depth = depth.clone();
4797 if inlined {
4798 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4799 inner_offset = next_offset;
4800 } else {
4801 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4802 inner_depth.increment()?;
4803 }
4804 let val_ref = self.moniker.get_or_insert_with(|| {
4805 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
4806 });
4807 fidl::decode!(
4808 fidl::encoding::BoundedString<4096>,
4809 D,
4810 val_ref,
4811 decoder,
4812 inner_offset,
4813 inner_depth
4814 )?;
4815 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4816 {
4817 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4818 }
4819 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4820 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4821 }
4822 }
4823
4824 next_offset += envelope_size;
4825 _next_ordinal_to_read += 1;
4826 if next_offset >= end_offset {
4827 return Ok(());
4828 }
4829
4830 while _next_ordinal_to_read < 4 {
4832 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4833 _next_ordinal_to_read += 1;
4834 next_offset += envelope_size;
4835 }
4836
4837 let next_out_of_line = decoder.next_out_of_line();
4838 let handles_before = decoder.remaining_handles();
4839 if let Some((inlined, num_bytes, num_handles)) =
4840 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4841 {
4842 let member_inline_size =
4843 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4844 decoder.context,
4845 );
4846 if inlined != (member_inline_size <= 4) {
4847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4848 }
4849 let inner_offset;
4850 let mut inner_depth = depth.clone();
4851 if inlined {
4852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4853 inner_offset = next_offset;
4854 } else {
4855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4856 inner_depth.increment()?;
4857 }
4858 let val_ref = self
4859 .environment_name
4860 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4861 fidl::decode!(
4862 fidl::encoding::BoundedString<255>,
4863 D,
4864 val_ref,
4865 decoder,
4866 inner_offset,
4867 inner_depth
4868 )?;
4869 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4870 {
4871 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4872 }
4873 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4874 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4875 }
4876 }
4877
4878 next_offset += envelope_size;
4879
4880 while next_offset < end_offset {
4882 _next_ordinal_to_read += 1;
4883 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4884 next_offset += envelope_size;
4885 }
4886
4887 Ok(())
4888 }
4889 }
4890
4891 impl DebugRegistrationPolicyAllowlists {
4892 #[inline(always)]
4893 fn max_ordinal_present(&self) -> u64 {
4894 if let Some(_) = self.allowlist {
4895 return 1;
4896 }
4897 0
4898 }
4899 }
4900
4901 impl fidl::encoding::ValueTypeMarker for DebugRegistrationPolicyAllowlists {
4902 type Borrowed<'a> = &'a Self;
4903 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4904 value
4905 }
4906 }
4907
4908 unsafe impl fidl::encoding::TypeMarker for DebugRegistrationPolicyAllowlists {
4909 type Owned = Self;
4910
4911 #[inline(always)]
4912 fn inline_align(_context: fidl::encoding::Context) -> usize {
4913 8
4914 }
4915
4916 #[inline(always)]
4917 fn inline_size(_context: fidl::encoding::Context) -> usize {
4918 16
4919 }
4920 }
4921
4922 unsafe impl<D: fidl::encoding::ResourceDialect>
4923 fidl::encoding::Encode<DebugRegistrationPolicyAllowlists, D>
4924 for &DebugRegistrationPolicyAllowlists
4925 {
4926 unsafe fn encode(
4927 self,
4928 encoder: &mut fidl::encoding::Encoder<'_, D>,
4929 offset: usize,
4930 mut depth: fidl::encoding::Depth,
4931 ) -> fidl::Result<()> {
4932 encoder.debug_check_bounds::<DebugRegistrationPolicyAllowlists>(offset);
4933 let max_ordinal: u64 = self.max_ordinal_present();
4935 encoder.write_num(max_ordinal, offset);
4936 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4937 if max_ordinal == 0 {
4939 return Ok(());
4940 }
4941 depth.increment()?;
4942 let envelope_size = 8;
4943 let bytes_len = max_ordinal as usize * envelope_size;
4944 #[allow(unused_variables)]
4945 let offset = encoder.out_of_line_offset(bytes_len);
4946 let mut _prev_end_offset: usize = 0;
4947 if 1 > max_ordinal {
4948 return Ok(());
4949 }
4950
4951 let cur_offset: usize = (1 - 1) * envelope_size;
4954
4955 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4957
4958 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D>(
4963 self.allowlist.as_ref().map(<fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128> as fidl::encoding::ValueTypeMarker>::borrow),
4964 encoder, offset + cur_offset, depth
4965 )?;
4966
4967 _prev_end_offset = cur_offset + envelope_size;
4968
4969 Ok(())
4970 }
4971 }
4972
4973 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4974 for DebugRegistrationPolicyAllowlists
4975 {
4976 #[inline(always)]
4977 fn new_empty() -> Self {
4978 Self::default()
4979 }
4980
4981 unsafe fn decode(
4982 &mut self,
4983 decoder: &mut fidl::encoding::Decoder<'_, D>,
4984 offset: usize,
4985 mut depth: fidl::encoding::Depth,
4986 ) -> fidl::Result<()> {
4987 decoder.debug_check_bounds::<Self>(offset);
4988 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4989 None => return Err(fidl::Error::NotNullable),
4990 Some(len) => len,
4991 };
4992 if len == 0 {
4994 return Ok(());
4995 };
4996 depth.increment()?;
4997 let envelope_size = 8;
4998 let bytes_len = len * envelope_size;
4999 let offset = decoder.out_of_line_offset(bytes_len)?;
5000 let mut _next_ordinal_to_read = 0;
5002 let mut next_offset = offset;
5003 let end_offset = offset + bytes_len;
5004 _next_ordinal_to_read += 1;
5005 if next_offset >= end_offset {
5006 return Ok(());
5007 }
5008
5009 while _next_ordinal_to_read < 1 {
5011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5012 _next_ordinal_to_read += 1;
5013 next_offset += envelope_size;
5014 }
5015
5016 let next_out_of_line = decoder.next_out_of_line();
5017 let handles_before = decoder.remaining_handles();
5018 if let Some((inlined, num_bytes, num_handles)) =
5019 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5020 {
5021 let member_inline_size = <fidl::encoding::Vector<
5022 DebugRegistrationAllowlistEntry,
5023 128,
5024 > as fidl::encoding::TypeMarker>::inline_size(
5025 decoder.context
5026 );
5027 if inlined != (member_inline_size <= 4) {
5028 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5029 }
5030 let inner_offset;
5031 let mut inner_depth = depth.clone();
5032 if inlined {
5033 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5034 inner_offset = next_offset;
5035 } else {
5036 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5037 inner_depth.increment()?;
5038 }
5039 let val_ref =
5040 self.allowlist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D));
5041 fidl::decode!(fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
5042 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5043 {
5044 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5045 }
5046 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5047 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5048 }
5049 }
5050
5051 next_offset += envelope_size;
5052
5053 while next_offset < end_offset {
5055 _next_ordinal_to_read += 1;
5056 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5057 next_offset += envelope_size;
5058 }
5059
5060 Ok(())
5061 }
5062 }
5063
5064 impl EventStreamRouteMetadata {
5065 #[inline(always)]
5066 fn max_ordinal_present(&self) -> u64 {
5067 if let Some(_) = self.scope {
5068 return 2;
5069 }
5070 if let Some(_) = self.scope_moniker {
5071 return 1;
5072 }
5073 0
5074 }
5075 }
5076
5077 impl fidl::encoding::ValueTypeMarker for EventStreamRouteMetadata {
5078 type Borrowed<'a> = &'a Self;
5079 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5080 value
5081 }
5082 }
5083
5084 unsafe impl fidl::encoding::TypeMarker for EventStreamRouteMetadata {
5085 type Owned = Self;
5086
5087 #[inline(always)]
5088 fn inline_align(_context: fidl::encoding::Context) -> usize {
5089 8
5090 }
5091
5092 #[inline(always)]
5093 fn inline_size(_context: fidl::encoding::Context) -> usize {
5094 16
5095 }
5096 }
5097
5098 unsafe impl<D: fidl::encoding::ResourceDialect>
5099 fidl::encoding::Encode<EventStreamRouteMetadata, D> for &EventStreamRouteMetadata
5100 {
5101 unsafe fn encode(
5102 self,
5103 encoder: &mut fidl::encoding::Encoder<'_, D>,
5104 offset: usize,
5105 mut depth: fidl::encoding::Depth,
5106 ) -> fidl::Result<()> {
5107 encoder.debug_check_bounds::<EventStreamRouteMetadata>(offset);
5108 let max_ordinal: u64 = self.max_ordinal_present();
5110 encoder.write_num(max_ordinal, offset);
5111 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5112 if max_ordinal == 0 {
5114 return Ok(());
5115 }
5116 depth.increment()?;
5117 let envelope_size = 8;
5118 let bytes_len = max_ordinal as usize * envelope_size;
5119 #[allow(unused_variables)]
5120 let offset = encoder.out_of_line_offset(bytes_len);
5121 let mut _prev_end_offset: usize = 0;
5122 if 1 > max_ordinal {
5123 return Ok(());
5124 }
5125
5126 let cur_offset: usize = (1 - 1) * envelope_size;
5129
5130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5132
5133 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
5138 self.scope_moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
5139 encoder, offset + cur_offset, depth
5140 )?;
5141
5142 _prev_end_offset = cur_offset + envelope_size;
5143 if 2 > max_ordinal {
5144 return Ok(());
5145 }
5146
5147 let cur_offset: usize = (2 - 1) * envelope_size;
5150
5151 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5153
5154 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>, D>(
5159 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref> as fidl::encoding::ValueTypeMarker>::borrow),
5160 encoder, offset + cur_offset, depth
5161 )?;
5162
5163 _prev_end_offset = cur_offset + envelope_size;
5164
5165 Ok(())
5166 }
5167 }
5168
5169 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5170 for EventStreamRouteMetadata
5171 {
5172 #[inline(always)]
5173 fn new_empty() -> Self {
5174 Self::default()
5175 }
5176
5177 unsafe fn decode(
5178 &mut self,
5179 decoder: &mut fidl::encoding::Decoder<'_, D>,
5180 offset: usize,
5181 mut depth: fidl::encoding::Depth,
5182 ) -> fidl::Result<()> {
5183 decoder.debug_check_bounds::<Self>(offset);
5184 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5185 None => return Err(fidl::Error::NotNullable),
5186 Some(len) => len,
5187 };
5188 if len == 0 {
5190 return Ok(());
5191 };
5192 depth.increment()?;
5193 let envelope_size = 8;
5194 let bytes_len = len * envelope_size;
5195 let offset = decoder.out_of_line_offset(bytes_len)?;
5196 let mut _next_ordinal_to_read = 0;
5198 let mut next_offset = offset;
5199 let end_offset = offset + bytes_len;
5200 _next_ordinal_to_read += 1;
5201 if next_offset >= end_offset {
5202 return Ok(());
5203 }
5204
5205 while _next_ordinal_to_read < 1 {
5207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5208 _next_ordinal_to_read += 1;
5209 next_offset += envelope_size;
5210 }
5211
5212 let next_out_of_line = decoder.next_out_of_line();
5213 let handles_before = decoder.remaining_handles();
5214 if let Some((inlined, num_bytes, num_handles)) =
5215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5216 {
5217 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5218 if inlined != (member_inline_size <= 4) {
5219 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5220 }
5221 let inner_offset;
5222 let mut inner_depth = depth.clone();
5223 if inlined {
5224 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5225 inner_offset = next_offset;
5226 } else {
5227 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5228 inner_depth.increment()?;
5229 }
5230 let val_ref = self.scope_moniker.get_or_insert_with(|| {
5231 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
5232 });
5233 fidl::decode!(
5234 fidl::encoding::BoundedString<4096>,
5235 D,
5236 val_ref,
5237 decoder,
5238 inner_offset,
5239 inner_depth
5240 )?;
5241 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5242 {
5243 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5244 }
5245 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5246 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5247 }
5248 }
5249
5250 next_offset += envelope_size;
5251 _next_ordinal_to_read += 1;
5252 if next_offset >= end_offset {
5253 return Ok(());
5254 }
5255
5256 while _next_ordinal_to_read < 2 {
5258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5259 _next_ordinal_to_read += 1;
5260 next_offset += envelope_size;
5261 }
5262
5263 let next_out_of_line = decoder.next_out_of_line();
5264 let handles_before = decoder.remaining_handles();
5265 if let Some((inlined, num_bytes, num_handles)) =
5266 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5267 {
5268 let member_inline_size = <fidl::encoding::UnboundedVector<
5269 fidl_fuchsia_component_decl_common::Ref,
5270 > as fidl::encoding::TypeMarker>::inline_size(
5271 decoder.context
5272 );
5273 if inlined != (member_inline_size <= 4) {
5274 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5275 }
5276 let inner_offset;
5277 let mut inner_depth = depth.clone();
5278 if inlined {
5279 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5280 inner_offset = next_offset;
5281 } else {
5282 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5283 inner_depth.increment()?;
5284 }
5285 let val_ref = self.scope.get_or_insert_with(|| {
5286 fidl::new_empty!(
5287 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
5288 D
5289 )
5290 });
5291 fidl::decode!(
5292 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
5293 D,
5294 val_ref,
5295 decoder,
5296 inner_offset,
5297 inner_depth
5298 )?;
5299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5300 {
5301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5302 }
5303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5305 }
5306 }
5307
5308 next_offset += envelope_size;
5309
5310 while next_offset < end_offset {
5312 _next_ordinal_to_read += 1;
5313 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5314 next_offset += envelope_size;
5315 }
5316
5317 Ok(())
5318 }
5319 }
5320
5321 impl HealthCheck {
5322 #[inline(always)]
5323 fn max_ordinal_present(&self) -> u64 {
5324 if let Some(_) = self.monikers {
5325 return 1;
5326 }
5327 0
5328 }
5329 }
5330
5331 impl fidl::encoding::ValueTypeMarker for HealthCheck {
5332 type Borrowed<'a> = &'a Self;
5333 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5334 value
5335 }
5336 }
5337
5338 unsafe impl fidl::encoding::TypeMarker for HealthCheck {
5339 type Owned = Self;
5340
5341 #[inline(always)]
5342 fn inline_align(_context: fidl::encoding::Context) -> usize {
5343 8
5344 }
5345
5346 #[inline(always)]
5347 fn inline_size(_context: fidl::encoding::Context) -> usize {
5348 16
5349 }
5350 }
5351
5352 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HealthCheck, D>
5353 for &HealthCheck
5354 {
5355 unsafe fn encode(
5356 self,
5357 encoder: &mut fidl::encoding::Encoder<'_, D>,
5358 offset: usize,
5359 mut depth: fidl::encoding::Depth,
5360 ) -> fidl::Result<()> {
5361 encoder.debug_check_bounds::<HealthCheck>(offset);
5362 let max_ordinal: u64 = self.max_ordinal_present();
5364 encoder.write_num(max_ordinal, offset);
5365 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5366 if max_ordinal == 0 {
5368 return Ok(());
5369 }
5370 depth.increment()?;
5371 let envelope_size = 8;
5372 let bytes_len = max_ordinal as usize * envelope_size;
5373 #[allow(unused_variables)]
5374 let offset = encoder.out_of_line_offset(bytes_len);
5375 let mut _prev_end_offset: usize = 0;
5376 if 1 > max_ordinal {
5377 return Ok(());
5378 }
5379
5380 let cur_offset: usize = (1 - 1) * envelope_size;
5383
5384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5386
5387 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>, D>(
5392 self.monikers.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>> as fidl::encoding::ValueTypeMarker>::borrow),
5393 encoder, offset + cur_offset, depth
5394 )?;
5395
5396 _prev_end_offset = cur_offset + envelope_size;
5397
5398 Ok(())
5399 }
5400 }
5401
5402 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HealthCheck {
5403 #[inline(always)]
5404 fn new_empty() -> Self {
5405 Self::default()
5406 }
5407
5408 unsafe fn decode(
5409 &mut self,
5410 decoder: &mut fidl::encoding::Decoder<'_, D>,
5411 offset: usize,
5412 mut depth: fidl::encoding::Depth,
5413 ) -> fidl::Result<()> {
5414 decoder.debug_check_bounds::<Self>(offset);
5415 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5416 None => return Err(fidl::Error::NotNullable),
5417 Some(len) => len,
5418 };
5419 if len == 0 {
5421 return Ok(());
5422 };
5423 depth.increment()?;
5424 let envelope_size = 8;
5425 let bytes_len = len * envelope_size;
5426 let offset = decoder.out_of_line_offset(bytes_len)?;
5427 let mut _next_ordinal_to_read = 0;
5429 let mut next_offset = offset;
5430 let end_offset = offset + bytes_len;
5431 _next_ordinal_to_read += 1;
5432 if next_offset >= end_offset {
5433 return Ok(());
5434 }
5435
5436 while _next_ordinal_to_read < 1 {
5438 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5439 _next_ordinal_to_read += 1;
5440 next_offset += envelope_size;
5441 }
5442
5443 let next_out_of_line = decoder.next_out_of_line();
5444 let handles_before = decoder.remaining_handles();
5445 if let Some((inlined, num_bytes, num_handles)) =
5446 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5447 {
5448 let member_inline_size = <fidl::encoding::UnboundedVector<
5449 fidl::encoding::BoundedString<255>,
5450 > as fidl::encoding::TypeMarker>::inline_size(
5451 decoder.context
5452 );
5453 if inlined != (member_inline_size <= 4) {
5454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5455 }
5456 let inner_offset;
5457 let mut inner_depth = depth.clone();
5458 if inlined {
5459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5460 inner_offset = next_offset;
5461 } else {
5462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5463 inner_depth.increment()?;
5464 }
5465 let val_ref = self.monikers.get_or_insert_with(|| {
5466 fidl::new_empty!(
5467 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>,
5468 D
5469 )
5470 });
5471 fidl::decode!(
5472 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>,
5473 D,
5474 val_ref,
5475 decoder,
5476 inner_offset,
5477 inner_depth
5478 )?;
5479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5480 {
5481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5482 }
5483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5485 }
5486 }
5487
5488 next_offset += envelope_size;
5489
5490 while next_offset < end_offset {
5492 _next_ordinal_to_read += 1;
5493 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5494 next_offset += envelope_size;
5495 }
5496
5497 Ok(())
5498 }
5499 }
5500
5501 impl InjectedCapabilities {
5502 #[inline(always)]
5503 fn max_ordinal_present(&self) -> u64 {
5504 if let Some(_) = self.use_ {
5505 return 2;
5506 }
5507 if let Some(_) = self.components {
5508 return 1;
5509 }
5510 0
5511 }
5512 }
5513
5514 impl fidl::encoding::ValueTypeMarker for InjectedCapabilities {
5515 type Borrowed<'a> = &'a Self;
5516 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5517 value
5518 }
5519 }
5520
5521 unsafe impl fidl::encoding::TypeMarker for InjectedCapabilities {
5522 type Owned = Self;
5523
5524 #[inline(always)]
5525 fn inline_align(_context: fidl::encoding::Context) -> usize {
5526 8
5527 }
5528
5529 #[inline(always)]
5530 fn inline_size(_context: fidl::encoding::Context) -> usize {
5531 16
5532 }
5533 }
5534
5535 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedCapabilities, D>
5536 for &InjectedCapabilities
5537 {
5538 unsafe fn encode(
5539 self,
5540 encoder: &mut fidl::encoding::Encoder<'_, D>,
5541 offset: usize,
5542 mut depth: fidl::encoding::Depth,
5543 ) -> fidl::Result<()> {
5544 encoder.debug_check_bounds::<InjectedCapabilities>(offset);
5545 let max_ordinal: u64 = self.max_ordinal_present();
5547 encoder.write_num(max_ordinal, offset);
5548 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5549 if max_ordinal == 0 {
5551 return Ok(());
5552 }
5553 depth.increment()?;
5554 let envelope_size = 8;
5555 let bytes_len = max_ordinal as usize * envelope_size;
5556 #[allow(unused_variables)]
5557 let offset = encoder.out_of_line_offset(bytes_len);
5558 let mut _prev_end_offset: usize = 0;
5559 if 1 > max_ordinal {
5560 return Ok(());
5561 }
5562
5563 let cur_offset: usize = (1 - 1) * envelope_size;
5566
5567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5569
5570 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
5575 self.components.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
5576 encoder, offset + cur_offset, depth
5577 )?;
5578
5579 _prev_end_offset = cur_offset + envelope_size;
5580 if 2 > max_ordinal {
5581 return Ok(());
5582 }
5583
5584 let cur_offset: usize = (2 - 1) * envelope_size;
5587
5588 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5590
5591 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<InjectedUse>, D>(
5596 self.use_.as_ref().map(<fidl::encoding::UnboundedVector<InjectedUse> as fidl::encoding::ValueTypeMarker>::borrow),
5597 encoder, offset + cur_offset, depth
5598 )?;
5599
5600 _prev_end_offset = cur_offset + envelope_size;
5601
5602 Ok(())
5603 }
5604 }
5605
5606 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedCapabilities {
5607 #[inline(always)]
5608 fn new_empty() -> Self {
5609 Self::default()
5610 }
5611
5612 unsafe fn decode(
5613 &mut self,
5614 decoder: &mut fidl::encoding::Decoder<'_, D>,
5615 offset: usize,
5616 mut depth: fidl::encoding::Depth,
5617 ) -> fidl::Result<()> {
5618 decoder.debug_check_bounds::<Self>(offset);
5619 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5620 None => return Err(fidl::Error::NotNullable),
5621 Some(len) => len,
5622 };
5623 if len == 0 {
5625 return Ok(());
5626 };
5627 depth.increment()?;
5628 let envelope_size = 8;
5629 let bytes_len = len * envelope_size;
5630 let offset = decoder.out_of_line_offset(bytes_len)?;
5631 let mut _next_ordinal_to_read = 0;
5633 let mut next_offset = offset;
5634 let end_offset = offset + bytes_len;
5635 _next_ordinal_to_read += 1;
5636 if next_offset >= end_offset {
5637 return Ok(());
5638 }
5639
5640 while _next_ordinal_to_read < 1 {
5642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5643 _next_ordinal_to_read += 1;
5644 next_offset += envelope_size;
5645 }
5646
5647 let next_out_of_line = decoder.next_out_of_line();
5648 let handles_before = decoder.remaining_handles();
5649 if let Some((inlined, num_bytes, num_handles)) =
5650 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5651 {
5652 let member_inline_size = <fidl::encoding::Vector<
5653 fidl::encoding::BoundedString<4096>,
5654 128,
5655 > as fidl::encoding::TypeMarker>::inline_size(
5656 decoder.context
5657 );
5658 if inlined != (member_inline_size <= 4) {
5659 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5660 }
5661 let inner_offset;
5662 let mut inner_depth = depth.clone();
5663 if inlined {
5664 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5665 inner_offset = next_offset;
5666 } else {
5667 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5668 inner_depth.increment()?;
5669 }
5670 let val_ref = self.components.get_or_insert_with(|| {
5671 fidl::new_empty!(
5672 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
5673 D
5674 )
5675 });
5676 fidl::decode!(
5677 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
5678 D,
5679 val_ref,
5680 decoder,
5681 inner_offset,
5682 inner_depth
5683 )?;
5684 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5685 {
5686 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5687 }
5688 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5689 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5690 }
5691 }
5692
5693 next_offset += envelope_size;
5694 _next_ordinal_to_read += 1;
5695 if next_offset >= end_offset {
5696 return Ok(());
5697 }
5698
5699 while _next_ordinal_to_read < 2 {
5701 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5702 _next_ordinal_to_read += 1;
5703 next_offset += envelope_size;
5704 }
5705
5706 let next_out_of_line = decoder.next_out_of_line();
5707 let handles_before = decoder.remaining_handles();
5708 if let Some((inlined, num_bytes, num_handles)) =
5709 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5710 {
5711 let member_inline_size = <fidl::encoding::UnboundedVector<InjectedUse> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5712 if inlined != (member_inline_size <= 4) {
5713 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5714 }
5715 let inner_offset;
5716 let mut inner_depth = depth.clone();
5717 if inlined {
5718 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5719 inner_offset = next_offset;
5720 } else {
5721 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5722 inner_depth.increment()?;
5723 }
5724 let val_ref = self.use_.get_or_insert_with(|| {
5725 fidl::new_empty!(fidl::encoding::UnboundedVector<InjectedUse>, D)
5726 });
5727 fidl::decode!(
5728 fidl::encoding::UnboundedVector<InjectedUse>,
5729 D,
5730 val_ref,
5731 decoder,
5732 inner_offset,
5733 inner_depth
5734 )?;
5735 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5736 {
5737 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5738 }
5739 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5740 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5741 }
5742 }
5743
5744 next_offset += envelope_size;
5745
5746 while next_offset < end_offset {
5748 _next_ordinal_to_read += 1;
5749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5750 next_offset += envelope_size;
5751 }
5752
5753 Ok(())
5754 }
5755 }
5756
5757 impl InjectedUseProtocol {
5758 #[inline(always)]
5759 fn max_ordinal_present(&self) -> u64 {
5760 if let Some(_) = self.target_path {
5761 return 2;
5762 }
5763 if let Some(_) = self.source_name {
5764 return 1;
5765 }
5766 0
5767 }
5768 }
5769
5770 impl fidl::encoding::ValueTypeMarker for InjectedUseProtocol {
5771 type Borrowed<'a> = &'a Self;
5772 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5773 value
5774 }
5775 }
5776
5777 unsafe impl fidl::encoding::TypeMarker for InjectedUseProtocol {
5778 type Owned = Self;
5779
5780 #[inline(always)]
5781 fn inline_align(_context: fidl::encoding::Context) -> usize {
5782 8
5783 }
5784
5785 #[inline(always)]
5786 fn inline_size(_context: fidl::encoding::Context) -> usize {
5787 16
5788 }
5789 }
5790
5791 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedUseProtocol, D>
5792 for &InjectedUseProtocol
5793 {
5794 unsafe fn encode(
5795 self,
5796 encoder: &mut fidl::encoding::Encoder<'_, D>,
5797 offset: usize,
5798 mut depth: fidl::encoding::Depth,
5799 ) -> fidl::Result<()> {
5800 encoder.debug_check_bounds::<InjectedUseProtocol>(offset);
5801 let max_ordinal: u64 = self.max_ordinal_present();
5803 encoder.write_num(max_ordinal, offset);
5804 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5805 if max_ordinal == 0 {
5807 return Ok(());
5808 }
5809 depth.increment()?;
5810 let envelope_size = 8;
5811 let bytes_len = max_ordinal as usize * envelope_size;
5812 #[allow(unused_variables)]
5813 let offset = encoder.out_of_line_offset(bytes_len);
5814 let mut _prev_end_offset: usize = 0;
5815 if 1 > max_ordinal {
5816 return Ok(());
5817 }
5818
5819 let cur_offset: usize = (1 - 1) * envelope_size;
5822
5823 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5825
5826 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
5831 self.source_name.as_ref().map(
5832 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
5833 ),
5834 encoder,
5835 offset + cur_offset,
5836 depth,
5837 )?;
5838
5839 _prev_end_offset = cur_offset + envelope_size;
5840 if 2 > max_ordinal {
5841 return Ok(());
5842 }
5843
5844 let cur_offset: usize = (2 - 1) * envelope_size;
5847
5848 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5850
5851 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
5856 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
5857 encoder, offset + cur_offset, depth
5858 )?;
5859
5860 _prev_end_offset = cur_offset + envelope_size;
5861
5862 Ok(())
5863 }
5864 }
5865
5866 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedUseProtocol {
5867 #[inline(always)]
5868 fn new_empty() -> Self {
5869 Self::default()
5870 }
5871
5872 unsafe fn decode(
5873 &mut self,
5874 decoder: &mut fidl::encoding::Decoder<'_, D>,
5875 offset: usize,
5876 mut depth: fidl::encoding::Depth,
5877 ) -> fidl::Result<()> {
5878 decoder.debug_check_bounds::<Self>(offset);
5879 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5880 None => return Err(fidl::Error::NotNullable),
5881 Some(len) => len,
5882 };
5883 if len == 0 {
5885 return Ok(());
5886 };
5887 depth.increment()?;
5888 let envelope_size = 8;
5889 let bytes_len = len * envelope_size;
5890 let offset = decoder.out_of_line_offset(bytes_len)?;
5891 let mut _next_ordinal_to_read = 0;
5893 let mut next_offset = offset;
5894 let end_offset = offset + bytes_len;
5895 _next_ordinal_to_read += 1;
5896 if next_offset >= end_offset {
5897 return Ok(());
5898 }
5899
5900 while _next_ordinal_to_read < 1 {
5902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5903 _next_ordinal_to_read += 1;
5904 next_offset += envelope_size;
5905 }
5906
5907 let next_out_of_line = decoder.next_out_of_line();
5908 let handles_before = decoder.remaining_handles();
5909 if let Some((inlined, num_bytes, num_handles)) =
5910 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5911 {
5912 let member_inline_size =
5913 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5914 decoder.context,
5915 );
5916 if inlined != (member_inline_size <= 4) {
5917 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5918 }
5919 let inner_offset;
5920 let mut inner_depth = depth.clone();
5921 if inlined {
5922 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5923 inner_offset = next_offset;
5924 } else {
5925 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5926 inner_depth.increment()?;
5927 }
5928 let val_ref = self
5929 .source_name
5930 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5931 fidl::decode!(
5932 fidl::encoding::BoundedString<100>,
5933 D,
5934 val_ref,
5935 decoder,
5936 inner_offset,
5937 inner_depth
5938 )?;
5939 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5940 {
5941 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5942 }
5943 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5944 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5945 }
5946 }
5947
5948 next_offset += envelope_size;
5949 _next_ordinal_to_read += 1;
5950 if next_offset >= end_offset {
5951 return Ok(());
5952 }
5953
5954 while _next_ordinal_to_read < 2 {
5956 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5957 _next_ordinal_to_read += 1;
5958 next_offset += envelope_size;
5959 }
5960
5961 let next_out_of_line = decoder.next_out_of_line();
5962 let handles_before = decoder.remaining_handles();
5963 if let Some((inlined, num_bytes, num_handles)) =
5964 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5965 {
5966 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5967 if inlined != (member_inline_size <= 4) {
5968 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5969 }
5970 let inner_offset;
5971 let mut inner_depth = depth.clone();
5972 if inlined {
5973 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5974 inner_offset = next_offset;
5975 } else {
5976 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5977 inner_depth.increment()?;
5978 }
5979 let val_ref = self.target_path.get_or_insert_with(|| {
5980 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
5981 });
5982 fidl::decode!(
5983 fidl::encoding::BoundedString<1024>,
5984 D,
5985 val_ref,
5986 decoder,
5987 inner_offset,
5988 inner_depth
5989 )?;
5990 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5991 {
5992 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5993 }
5994 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5995 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5996 }
5997 }
5998
5999 next_offset += envelope_size;
6000
6001 while next_offset < end_offset {
6003 _next_ordinal_to_read += 1;
6004 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6005 next_offset += envelope_size;
6006 }
6007
6008 Ok(())
6009 }
6010 }
6011
6012 impl InstanceIdEntry {
6013 #[inline(always)]
6014 fn max_ordinal_present(&self) -> u64 {
6015 if let Some(_) = self.ignore_duplicate_id {
6016 return 4;
6017 }
6018 if let Some(_) = self.moniker {
6019 return 3;
6020 }
6021 if let Some(_) = self.instance_id {
6022 return 1;
6023 }
6024 0
6025 }
6026 }
6027
6028 impl fidl::encoding::ValueTypeMarker for InstanceIdEntry {
6029 type Borrowed<'a> = &'a Self;
6030 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6031 value
6032 }
6033 }
6034
6035 unsafe impl fidl::encoding::TypeMarker for InstanceIdEntry {
6036 type Owned = Self;
6037
6038 #[inline(always)]
6039 fn inline_align(_context: fidl::encoding::Context) -> usize {
6040 8
6041 }
6042
6043 #[inline(always)]
6044 fn inline_size(_context: fidl::encoding::Context) -> usize {
6045 16
6046 }
6047 }
6048
6049 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InstanceIdEntry, D>
6050 for &InstanceIdEntry
6051 {
6052 unsafe fn encode(
6053 self,
6054 encoder: &mut fidl::encoding::Encoder<'_, D>,
6055 offset: usize,
6056 mut depth: fidl::encoding::Depth,
6057 ) -> fidl::Result<()> {
6058 encoder.debug_check_bounds::<InstanceIdEntry>(offset);
6059 let max_ordinal: u64 = self.max_ordinal_present();
6061 encoder.write_num(max_ordinal, offset);
6062 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6063 if max_ordinal == 0 {
6065 return Ok(());
6066 }
6067 depth.increment()?;
6068 let envelope_size = 8;
6069 let bytes_len = max_ordinal as usize * envelope_size;
6070 #[allow(unused_variables)]
6071 let offset = encoder.out_of_line_offset(bytes_len);
6072 let mut _prev_end_offset: usize = 0;
6073 if 1 > max_ordinal {
6074 return Ok(());
6075 }
6076
6077 let cur_offset: usize = (1 - 1) * envelope_size;
6080
6081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6083
6084 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
6089 self.instance_id.as_ref().map(
6090 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
6091 ),
6092 encoder,
6093 offset + cur_offset,
6094 depth,
6095 )?;
6096
6097 _prev_end_offset = cur_offset + envelope_size;
6098 if 3 > max_ordinal {
6099 return Ok(());
6100 }
6101
6102 let cur_offset: usize = (3 - 1) * envelope_size;
6105
6106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6108
6109 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
6114 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
6115 encoder, offset + cur_offset, depth
6116 )?;
6117
6118 _prev_end_offset = cur_offset + envelope_size;
6119 if 4 > max_ordinal {
6120 return Ok(());
6121 }
6122
6123 let cur_offset: usize = (4 - 1) * envelope_size;
6126
6127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6129
6130 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6135 self.ignore_duplicate_id
6136 .as_ref()
6137 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6138 encoder,
6139 offset + cur_offset,
6140 depth,
6141 )?;
6142
6143 _prev_end_offset = cur_offset + envelope_size;
6144
6145 Ok(())
6146 }
6147 }
6148
6149 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InstanceIdEntry {
6150 #[inline(always)]
6151 fn new_empty() -> Self {
6152 Self::default()
6153 }
6154
6155 unsafe fn decode(
6156 &mut self,
6157 decoder: &mut fidl::encoding::Decoder<'_, D>,
6158 offset: usize,
6159 mut depth: fidl::encoding::Depth,
6160 ) -> fidl::Result<()> {
6161 decoder.debug_check_bounds::<Self>(offset);
6162 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6163 None => return Err(fidl::Error::NotNullable),
6164 Some(len) => len,
6165 };
6166 if len == 0 {
6168 return Ok(());
6169 };
6170 depth.increment()?;
6171 let envelope_size = 8;
6172 let bytes_len = len * envelope_size;
6173 let offset = decoder.out_of_line_offset(bytes_len)?;
6174 let mut _next_ordinal_to_read = 0;
6176 let mut next_offset = offset;
6177 let end_offset = offset + bytes_len;
6178 _next_ordinal_to_read += 1;
6179 if next_offset >= end_offset {
6180 return Ok(());
6181 }
6182
6183 while _next_ordinal_to_read < 1 {
6185 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6186 _next_ordinal_to_read += 1;
6187 next_offset += envelope_size;
6188 }
6189
6190 let next_out_of_line = decoder.next_out_of_line();
6191 let handles_before = decoder.remaining_handles();
6192 if let Some((inlined, num_bytes, num_handles)) =
6193 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6194 {
6195 let member_inline_size =
6196 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
6197 decoder.context,
6198 );
6199 if inlined != (member_inline_size <= 4) {
6200 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6201 }
6202 let inner_offset;
6203 let mut inner_depth = depth.clone();
6204 if inlined {
6205 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6206 inner_offset = next_offset;
6207 } else {
6208 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6209 inner_depth.increment()?;
6210 }
6211 let val_ref = self
6212 .instance_id
6213 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
6214 fidl::decode!(
6215 fidl::encoding::BoundedString<64>,
6216 D,
6217 val_ref,
6218 decoder,
6219 inner_offset,
6220 inner_depth
6221 )?;
6222 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6223 {
6224 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6225 }
6226 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6227 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6228 }
6229 }
6230
6231 next_offset += envelope_size;
6232 _next_ordinal_to_read += 1;
6233 if next_offset >= end_offset {
6234 return Ok(());
6235 }
6236
6237 while _next_ordinal_to_read < 3 {
6239 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6240 _next_ordinal_to_read += 1;
6241 next_offset += envelope_size;
6242 }
6243
6244 let next_out_of_line = decoder.next_out_of_line();
6245 let handles_before = decoder.remaining_handles();
6246 if let Some((inlined, num_bytes, num_handles)) =
6247 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6248 {
6249 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6250 if inlined != (member_inline_size <= 4) {
6251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6252 }
6253 let inner_offset;
6254 let mut inner_depth = depth.clone();
6255 if inlined {
6256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6257 inner_offset = next_offset;
6258 } else {
6259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6260 inner_depth.increment()?;
6261 }
6262 let val_ref = self.moniker.get_or_insert_with(|| {
6263 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
6264 });
6265 fidl::decode!(
6266 fidl::encoding::BoundedString<4096>,
6267 D,
6268 val_ref,
6269 decoder,
6270 inner_offset,
6271 inner_depth
6272 )?;
6273 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6274 {
6275 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6276 }
6277 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6278 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6279 }
6280 }
6281
6282 next_offset += envelope_size;
6283 _next_ordinal_to_read += 1;
6284 if next_offset >= end_offset {
6285 return Ok(());
6286 }
6287
6288 while _next_ordinal_to_read < 4 {
6290 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6291 _next_ordinal_to_read += 1;
6292 next_offset += envelope_size;
6293 }
6294
6295 let next_out_of_line = decoder.next_out_of_line();
6296 let handles_before = decoder.remaining_handles();
6297 if let Some((inlined, num_bytes, num_handles)) =
6298 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6299 {
6300 let member_inline_size =
6301 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6302 if inlined != (member_inline_size <= 4) {
6303 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6304 }
6305 let inner_offset;
6306 let mut inner_depth = depth.clone();
6307 if inlined {
6308 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6309 inner_offset = next_offset;
6310 } else {
6311 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6312 inner_depth.increment()?;
6313 }
6314 let val_ref =
6315 self.ignore_duplicate_id.get_or_insert_with(|| fidl::new_empty!(bool, D));
6316 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6317 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6318 {
6319 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6320 }
6321 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6322 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6323 }
6324 }
6325
6326 next_offset += envelope_size;
6327
6328 while next_offset < end_offset {
6330 _next_ordinal_to_read += 1;
6331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6332 next_offset += envelope_size;
6333 }
6334
6335 Ok(())
6336 }
6337 }
6338
6339 impl JobPolicyAllowlists {
6340 #[inline(always)]
6341 fn max_ordinal_present(&self) -> u64 {
6342 if let Some(_) = self.create_raw_processes {
6343 return 3;
6344 }
6345 if let Some(_) = self.main_process_critical {
6346 return 2;
6347 }
6348 if let Some(_) = self.ambient_mark_vmo_exec {
6349 return 1;
6350 }
6351 0
6352 }
6353 }
6354
6355 impl fidl::encoding::ValueTypeMarker for JobPolicyAllowlists {
6356 type Borrowed<'a> = &'a Self;
6357 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6358 value
6359 }
6360 }
6361
6362 unsafe impl fidl::encoding::TypeMarker for JobPolicyAllowlists {
6363 type Owned = Self;
6364
6365 #[inline(always)]
6366 fn inline_align(_context: fidl::encoding::Context) -> usize {
6367 8
6368 }
6369
6370 #[inline(always)]
6371 fn inline_size(_context: fidl::encoding::Context) -> usize {
6372 16
6373 }
6374 }
6375
6376 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<JobPolicyAllowlists, D>
6377 for &JobPolicyAllowlists
6378 {
6379 unsafe fn encode(
6380 self,
6381 encoder: &mut fidl::encoding::Encoder<'_, D>,
6382 offset: usize,
6383 mut depth: fidl::encoding::Depth,
6384 ) -> fidl::Result<()> {
6385 encoder.debug_check_bounds::<JobPolicyAllowlists>(offset);
6386 let max_ordinal: u64 = self.max_ordinal_present();
6388 encoder.write_num(max_ordinal, offset);
6389 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6390 if max_ordinal == 0 {
6392 return Ok(());
6393 }
6394 depth.increment()?;
6395 let envelope_size = 8;
6396 let bytes_len = max_ordinal as usize * envelope_size;
6397 #[allow(unused_variables)]
6398 let offset = encoder.out_of_line_offset(bytes_len);
6399 let mut _prev_end_offset: usize = 0;
6400 if 1 > max_ordinal {
6401 return Ok(());
6402 }
6403
6404 let cur_offset: usize = (1 - 1) * envelope_size;
6407
6408 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6410
6411 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
6416 self.ambient_mark_vmo_exec.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
6417 encoder, offset + cur_offset, depth
6418 )?;
6419
6420 _prev_end_offset = cur_offset + envelope_size;
6421 if 2 > max_ordinal {
6422 return Ok(());
6423 }
6424
6425 let cur_offset: usize = (2 - 1) * envelope_size;
6428
6429 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6431
6432 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
6437 self.main_process_critical.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
6438 encoder, offset + cur_offset, depth
6439 )?;
6440
6441 _prev_end_offset = cur_offset + envelope_size;
6442 if 3 > max_ordinal {
6443 return Ok(());
6444 }
6445
6446 let cur_offset: usize = (3 - 1) * envelope_size;
6449
6450 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6452
6453 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
6458 self.create_raw_processes.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
6459 encoder, offset + cur_offset, depth
6460 )?;
6461
6462 _prev_end_offset = cur_offset + envelope_size;
6463
6464 Ok(())
6465 }
6466 }
6467
6468 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for JobPolicyAllowlists {
6469 #[inline(always)]
6470 fn new_empty() -> Self {
6471 Self::default()
6472 }
6473
6474 unsafe fn decode(
6475 &mut self,
6476 decoder: &mut fidl::encoding::Decoder<'_, D>,
6477 offset: usize,
6478 mut depth: fidl::encoding::Depth,
6479 ) -> fidl::Result<()> {
6480 decoder.debug_check_bounds::<Self>(offset);
6481 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6482 None => return Err(fidl::Error::NotNullable),
6483 Some(len) => len,
6484 };
6485 if len == 0 {
6487 return Ok(());
6488 };
6489 depth.increment()?;
6490 let envelope_size = 8;
6491 let bytes_len = len * envelope_size;
6492 let offset = decoder.out_of_line_offset(bytes_len)?;
6493 let mut _next_ordinal_to_read = 0;
6495 let mut next_offset = offset;
6496 let end_offset = offset + bytes_len;
6497 _next_ordinal_to_read += 1;
6498 if next_offset >= end_offset {
6499 return Ok(());
6500 }
6501
6502 while _next_ordinal_to_read < 1 {
6504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6505 _next_ordinal_to_read += 1;
6506 next_offset += envelope_size;
6507 }
6508
6509 let next_out_of_line = decoder.next_out_of_line();
6510 let handles_before = decoder.remaining_handles();
6511 if let Some((inlined, num_bytes, num_handles)) =
6512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6513 {
6514 let member_inline_size = <fidl::encoding::Vector<
6515 fidl::encoding::BoundedString<4096>,
6516 128,
6517 > as fidl::encoding::TypeMarker>::inline_size(
6518 decoder.context
6519 );
6520 if inlined != (member_inline_size <= 4) {
6521 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6522 }
6523 let inner_offset;
6524 let mut inner_depth = depth.clone();
6525 if inlined {
6526 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6527 inner_offset = next_offset;
6528 } else {
6529 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6530 inner_depth.increment()?;
6531 }
6532 let val_ref = self.ambient_mark_vmo_exec.get_or_insert_with(|| {
6533 fidl::new_empty!(
6534 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6535 D
6536 )
6537 });
6538 fidl::decode!(
6539 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6540 D,
6541 val_ref,
6542 decoder,
6543 inner_offset,
6544 inner_depth
6545 )?;
6546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6547 {
6548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6549 }
6550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6552 }
6553 }
6554
6555 next_offset += envelope_size;
6556 _next_ordinal_to_read += 1;
6557 if next_offset >= end_offset {
6558 return Ok(());
6559 }
6560
6561 while _next_ordinal_to_read < 2 {
6563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6564 _next_ordinal_to_read += 1;
6565 next_offset += envelope_size;
6566 }
6567
6568 let next_out_of_line = decoder.next_out_of_line();
6569 let handles_before = decoder.remaining_handles();
6570 if let Some((inlined, num_bytes, num_handles)) =
6571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6572 {
6573 let member_inline_size = <fidl::encoding::Vector<
6574 fidl::encoding::BoundedString<4096>,
6575 128,
6576 > as fidl::encoding::TypeMarker>::inline_size(
6577 decoder.context
6578 );
6579 if inlined != (member_inline_size <= 4) {
6580 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6581 }
6582 let inner_offset;
6583 let mut inner_depth = depth.clone();
6584 if inlined {
6585 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6586 inner_offset = next_offset;
6587 } else {
6588 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6589 inner_depth.increment()?;
6590 }
6591 let val_ref = self.main_process_critical.get_or_insert_with(|| {
6592 fidl::new_empty!(
6593 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6594 D
6595 )
6596 });
6597 fidl::decode!(
6598 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6599 D,
6600 val_ref,
6601 decoder,
6602 inner_offset,
6603 inner_depth
6604 )?;
6605 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6606 {
6607 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6608 }
6609 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6610 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6611 }
6612 }
6613
6614 next_offset += envelope_size;
6615 _next_ordinal_to_read += 1;
6616 if next_offset >= end_offset {
6617 return Ok(());
6618 }
6619
6620 while _next_ordinal_to_read < 3 {
6622 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6623 _next_ordinal_to_read += 1;
6624 next_offset += envelope_size;
6625 }
6626
6627 let next_out_of_line = decoder.next_out_of_line();
6628 let handles_before = decoder.remaining_handles();
6629 if let Some((inlined, num_bytes, num_handles)) =
6630 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6631 {
6632 let member_inline_size = <fidl::encoding::Vector<
6633 fidl::encoding::BoundedString<4096>,
6634 128,
6635 > as fidl::encoding::TypeMarker>::inline_size(
6636 decoder.context
6637 );
6638 if inlined != (member_inline_size <= 4) {
6639 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6640 }
6641 let inner_offset;
6642 let mut inner_depth = depth.clone();
6643 if inlined {
6644 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6645 inner_offset = next_offset;
6646 } else {
6647 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6648 inner_depth.increment()?;
6649 }
6650 let val_ref = self.create_raw_processes.get_or_insert_with(|| {
6651 fidl::new_empty!(
6652 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6653 D
6654 )
6655 });
6656 fidl::decode!(
6657 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
6658 D,
6659 val_ref,
6660 decoder,
6661 inner_offset,
6662 inner_depth
6663 )?;
6664 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6665 {
6666 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6667 }
6668 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6669 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6670 }
6671 }
6672
6673 next_offset += envelope_size;
6674
6675 while next_offset < end_offset {
6677 _next_ordinal_to_read += 1;
6678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6679 next_offset += envelope_size;
6680 }
6681
6682 Ok(())
6683 }
6684 }
6685
6686 impl SecurityPolicy {
6687 #[inline(always)]
6688 fn max_ordinal_present(&self) -> u64 {
6689 if let Some(_) = self.child_policy {
6690 return 4;
6691 }
6692 if let Some(_) = self.debug_registration_policy {
6693 return 3;
6694 }
6695 if let Some(_) = self.capability_policy {
6696 return 2;
6697 }
6698 if let Some(_) = self.job_policy {
6699 return 1;
6700 }
6701 0
6702 }
6703 }
6704
6705 impl fidl::encoding::ValueTypeMarker for SecurityPolicy {
6706 type Borrowed<'a> = &'a Self;
6707 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6708 value
6709 }
6710 }
6711
6712 unsafe impl fidl::encoding::TypeMarker for SecurityPolicy {
6713 type Owned = Self;
6714
6715 #[inline(always)]
6716 fn inline_align(_context: fidl::encoding::Context) -> usize {
6717 8
6718 }
6719
6720 #[inline(always)]
6721 fn inline_size(_context: fidl::encoding::Context) -> usize {
6722 16
6723 }
6724 }
6725
6726 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SecurityPolicy, D>
6727 for &SecurityPolicy
6728 {
6729 unsafe fn encode(
6730 self,
6731 encoder: &mut fidl::encoding::Encoder<'_, D>,
6732 offset: usize,
6733 mut depth: fidl::encoding::Depth,
6734 ) -> fidl::Result<()> {
6735 encoder.debug_check_bounds::<SecurityPolicy>(offset);
6736 let max_ordinal: u64 = self.max_ordinal_present();
6738 encoder.write_num(max_ordinal, offset);
6739 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6740 if max_ordinal == 0 {
6742 return Ok(());
6743 }
6744 depth.increment()?;
6745 let envelope_size = 8;
6746 let bytes_len = max_ordinal as usize * envelope_size;
6747 #[allow(unused_variables)]
6748 let offset = encoder.out_of_line_offset(bytes_len);
6749 let mut _prev_end_offset: usize = 0;
6750 if 1 > max_ordinal {
6751 return Ok(());
6752 }
6753
6754 let cur_offset: usize = (1 - 1) * envelope_size;
6757
6758 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6760
6761 fidl::encoding::encode_in_envelope_optional::<JobPolicyAllowlists, D>(
6766 self.job_policy
6767 .as_ref()
6768 .map(<JobPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
6769 encoder,
6770 offset + cur_offset,
6771 depth,
6772 )?;
6773
6774 _prev_end_offset = cur_offset + envelope_size;
6775 if 2 > max_ordinal {
6776 return Ok(());
6777 }
6778
6779 let cur_offset: usize = (2 - 1) * envelope_size;
6782
6783 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6785
6786 fidl::encoding::encode_in_envelope_optional::<CapabilityPolicyAllowlists, D>(
6791 self.capability_policy
6792 .as_ref()
6793 .map(<CapabilityPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
6794 encoder,
6795 offset + cur_offset,
6796 depth,
6797 )?;
6798
6799 _prev_end_offset = cur_offset + envelope_size;
6800 if 3 > max_ordinal {
6801 return Ok(());
6802 }
6803
6804 let cur_offset: usize = (3 - 1) * envelope_size;
6807
6808 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6810
6811 fidl::encoding::encode_in_envelope_optional::<DebugRegistrationPolicyAllowlists, D>(
6816 self.debug_registration_policy.as_ref().map(
6817 <DebugRegistrationPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow,
6818 ),
6819 encoder,
6820 offset + cur_offset,
6821 depth,
6822 )?;
6823
6824 _prev_end_offset = cur_offset + envelope_size;
6825 if 4 > max_ordinal {
6826 return Ok(());
6827 }
6828
6829 let cur_offset: usize = (4 - 1) * envelope_size;
6832
6833 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6835
6836 fidl::encoding::encode_in_envelope_optional::<ChildPolicyAllowlists, D>(
6841 self.child_policy
6842 .as_ref()
6843 .map(<ChildPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
6844 encoder,
6845 offset + cur_offset,
6846 depth,
6847 )?;
6848
6849 _prev_end_offset = cur_offset + envelope_size;
6850
6851 Ok(())
6852 }
6853 }
6854
6855 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SecurityPolicy {
6856 #[inline(always)]
6857 fn new_empty() -> Self {
6858 Self::default()
6859 }
6860
6861 unsafe fn decode(
6862 &mut self,
6863 decoder: &mut fidl::encoding::Decoder<'_, D>,
6864 offset: usize,
6865 mut depth: fidl::encoding::Depth,
6866 ) -> fidl::Result<()> {
6867 decoder.debug_check_bounds::<Self>(offset);
6868 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6869 None => return Err(fidl::Error::NotNullable),
6870 Some(len) => len,
6871 };
6872 if len == 0 {
6874 return Ok(());
6875 };
6876 depth.increment()?;
6877 let envelope_size = 8;
6878 let bytes_len = len * envelope_size;
6879 let offset = decoder.out_of_line_offset(bytes_len)?;
6880 let mut _next_ordinal_to_read = 0;
6882 let mut next_offset = offset;
6883 let end_offset = offset + bytes_len;
6884 _next_ordinal_to_read += 1;
6885 if next_offset >= end_offset {
6886 return Ok(());
6887 }
6888
6889 while _next_ordinal_to_read < 1 {
6891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6892 _next_ordinal_to_read += 1;
6893 next_offset += envelope_size;
6894 }
6895
6896 let next_out_of_line = decoder.next_out_of_line();
6897 let handles_before = decoder.remaining_handles();
6898 if let Some((inlined, num_bytes, num_handles)) =
6899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6900 {
6901 let member_inline_size =
6902 <JobPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
6903 decoder.context,
6904 );
6905 if inlined != (member_inline_size <= 4) {
6906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6907 }
6908 let inner_offset;
6909 let mut inner_depth = depth.clone();
6910 if inlined {
6911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6912 inner_offset = next_offset;
6913 } else {
6914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6915 inner_depth.increment()?;
6916 }
6917 let val_ref =
6918 self.job_policy.get_or_insert_with(|| fidl::new_empty!(JobPolicyAllowlists, D));
6919 fidl::decode!(JobPolicyAllowlists, D, val_ref, decoder, inner_offset, inner_depth)?;
6920 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6921 {
6922 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6923 }
6924 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6925 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6926 }
6927 }
6928
6929 next_offset += envelope_size;
6930 _next_ordinal_to_read += 1;
6931 if next_offset >= end_offset {
6932 return Ok(());
6933 }
6934
6935 while _next_ordinal_to_read < 2 {
6937 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6938 _next_ordinal_to_read += 1;
6939 next_offset += envelope_size;
6940 }
6941
6942 let next_out_of_line = decoder.next_out_of_line();
6943 let handles_before = decoder.remaining_handles();
6944 if let Some((inlined, num_bytes, num_handles)) =
6945 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6946 {
6947 let member_inline_size =
6948 <CapabilityPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
6949 decoder.context,
6950 );
6951 if inlined != (member_inline_size <= 4) {
6952 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6953 }
6954 let inner_offset;
6955 let mut inner_depth = depth.clone();
6956 if inlined {
6957 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6958 inner_offset = next_offset;
6959 } else {
6960 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6961 inner_depth.increment()?;
6962 }
6963 let val_ref = self
6964 .capability_policy
6965 .get_or_insert_with(|| fidl::new_empty!(CapabilityPolicyAllowlists, D));
6966 fidl::decode!(
6967 CapabilityPolicyAllowlists,
6968 D,
6969 val_ref,
6970 decoder,
6971 inner_offset,
6972 inner_depth
6973 )?;
6974 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6975 {
6976 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6977 }
6978 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6979 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6980 }
6981 }
6982
6983 next_offset += envelope_size;
6984 _next_ordinal_to_read += 1;
6985 if next_offset >= end_offset {
6986 return Ok(());
6987 }
6988
6989 while _next_ordinal_to_read < 3 {
6991 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6992 _next_ordinal_to_read += 1;
6993 next_offset += envelope_size;
6994 }
6995
6996 let next_out_of_line = decoder.next_out_of_line();
6997 let handles_before = decoder.remaining_handles();
6998 if let Some((inlined, num_bytes, num_handles)) =
6999 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7000 {
7001 let member_inline_size =
7002 <DebugRegistrationPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
7003 decoder.context,
7004 );
7005 if inlined != (member_inline_size <= 4) {
7006 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7007 }
7008 let inner_offset;
7009 let mut inner_depth = depth.clone();
7010 if inlined {
7011 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7012 inner_offset = next_offset;
7013 } else {
7014 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7015 inner_depth.increment()?;
7016 }
7017 let val_ref = self
7018 .debug_registration_policy
7019 .get_or_insert_with(|| fidl::new_empty!(DebugRegistrationPolicyAllowlists, D));
7020 fidl::decode!(
7021 DebugRegistrationPolicyAllowlists,
7022 D,
7023 val_ref,
7024 decoder,
7025 inner_offset,
7026 inner_depth
7027 )?;
7028 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7029 {
7030 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7031 }
7032 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7033 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7034 }
7035 }
7036
7037 next_offset += envelope_size;
7038 _next_ordinal_to_read += 1;
7039 if next_offset >= end_offset {
7040 return Ok(());
7041 }
7042
7043 while _next_ordinal_to_read < 4 {
7045 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7046 _next_ordinal_to_read += 1;
7047 next_offset += envelope_size;
7048 }
7049
7050 let next_out_of_line = decoder.next_out_of_line();
7051 let handles_before = decoder.remaining_handles();
7052 if let Some((inlined, num_bytes, num_handles)) =
7053 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7054 {
7055 let member_inline_size =
7056 <ChildPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
7057 decoder.context,
7058 );
7059 if inlined != (member_inline_size <= 4) {
7060 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7061 }
7062 let inner_offset;
7063 let mut inner_depth = depth.clone();
7064 if inlined {
7065 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7066 inner_offset = next_offset;
7067 } else {
7068 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7069 inner_depth.increment()?;
7070 }
7071 let val_ref = self
7072 .child_policy
7073 .get_or_insert_with(|| fidl::new_empty!(ChildPolicyAllowlists, D));
7074 fidl::decode!(
7075 ChildPolicyAllowlists,
7076 D,
7077 val_ref,
7078 decoder,
7079 inner_offset,
7080 inner_depth
7081 )?;
7082 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7083 {
7084 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7085 }
7086 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7087 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7088 }
7089 }
7090
7091 next_offset += envelope_size;
7092
7093 while next_offset < end_offset {
7095 _next_ordinal_to_read += 1;
7096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7097 next_offset += envelope_size;
7098 }
7099
7100 Ok(())
7101 }
7102 }
7103
7104 impl fidl::encoding::ValueTypeMarker for AllowlistedCapability {
7105 type Borrowed<'a> = &'a Self;
7106 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7107 value
7108 }
7109 }
7110
7111 unsafe impl fidl::encoding::TypeMarker for AllowlistedCapability {
7112 type Owned = Self;
7113
7114 #[inline(always)]
7115 fn inline_align(_context: fidl::encoding::Context) -> usize {
7116 8
7117 }
7118
7119 #[inline(always)]
7120 fn inline_size(_context: fidl::encoding::Context) -> usize {
7121 16
7122 }
7123 }
7124
7125 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedCapability, D>
7126 for &AllowlistedCapability
7127 {
7128 #[inline]
7129 unsafe fn encode(
7130 self,
7131 encoder: &mut fidl::encoding::Encoder<'_, D>,
7132 offset: usize,
7133 _depth: fidl::encoding::Depth,
7134 ) -> fidl::Result<()> {
7135 encoder.debug_check_bounds::<AllowlistedCapability>(offset);
7136 encoder.write_num::<u64>(self.ordinal(), offset);
7137 match self {
7138 AllowlistedCapability::Directory(ref val) => {
7139 fidl::encoding::encode_in_envelope::<AllowlistedDirectory, D>(
7140 <AllowlistedDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
7141 encoder,
7142 offset + 8,
7143 _depth,
7144 )
7145 }
7146 AllowlistedCapability::Protocol(ref val) => {
7147 fidl::encoding::encode_in_envelope::<AllowlistedProtocol, D>(
7148 <AllowlistedProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7149 encoder,
7150 offset + 8,
7151 _depth,
7152 )
7153 }
7154 AllowlistedCapability::Service(ref val) => {
7155 fidl::encoding::encode_in_envelope::<AllowlistedService, D>(
7156 <AllowlistedService as fidl::encoding::ValueTypeMarker>::borrow(val),
7157 encoder,
7158 offset + 8,
7159 _depth,
7160 )
7161 }
7162 AllowlistedCapability::Storage(ref val) => {
7163 fidl::encoding::encode_in_envelope::<AllowlistedStorage, D>(
7164 <AllowlistedStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
7165 encoder,
7166 offset + 8,
7167 _depth,
7168 )
7169 }
7170 AllowlistedCapability::Runner(ref val) => {
7171 fidl::encoding::encode_in_envelope::<AllowlistedRunner, D>(
7172 <AllowlistedRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
7173 encoder,
7174 offset + 8,
7175 _depth,
7176 )
7177 }
7178 AllowlistedCapability::Resolver(ref val) => {
7179 fidl::encoding::encode_in_envelope::<AllowlistedResolver, D>(
7180 <AllowlistedResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
7181 encoder,
7182 offset + 8,
7183 _depth,
7184 )
7185 }
7186 AllowlistedCapability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7187 }
7188 }
7189 }
7190
7191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedCapability {
7192 #[inline(always)]
7193 fn new_empty() -> Self {
7194 Self::__SourceBreaking { unknown_ordinal: 0 }
7195 }
7196
7197 #[inline]
7198 unsafe fn decode(
7199 &mut self,
7200 decoder: &mut fidl::encoding::Decoder<'_, D>,
7201 offset: usize,
7202 mut depth: fidl::encoding::Depth,
7203 ) -> fidl::Result<()> {
7204 decoder.debug_check_bounds::<Self>(offset);
7205 #[allow(unused_variables)]
7206 let next_out_of_line = decoder.next_out_of_line();
7207 let handles_before = decoder.remaining_handles();
7208 let (ordinal, inlined, num_bytes, num_handles) =
7209 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7210
7211 let member_inline_size = match ordinal {
7212 1 => <AllowlistedDirectory as fidl::encoding::TypeMarker>::inline_size(
7213 decoder.context,
7214 ),
7215 3 => <AllowlistedProtocol as fidl::encoding::TypeMarker>::inline_size(
7216 decoder.context,
7217 ),
7218 4 => {
7219 <AllowlistedService as fidl::encoding::TypeMarker>::inline_size(decoder.context)
7220 }
7221 5 => {
7222 <AllowlistedStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context)
7223 }
7224 6 => {
7225 <AllowlistedRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context)
7226 }
7227 7 => <AllowlistedResolver as fidl::encoding::TypeMarker>::inline_size(
7228 decoder.context,
7229 ),
7230 0 => return Err(fidl::Error::UnknownUnionTag),
7231 _ => num_bytes as usize,
7232 };
7233
7234 if inlined != (member_inline_size <= 4) {
7235 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7236 }
7237 let _inner_offset;
7238 if inlined {
7239 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7240 _inner_offset = offset + 8;
7241 } else {
7242 depth.increment()?;
7243 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7244 }
7245 match ordinal {
7246 1 => {
7247 #[allow(irrefutable_let_patterns)]
7248 if let AllowlistedCapability::Directory(_) = self {
7249 } else {
7251 *self = AllowlistedCapability::Directory(fidl::new_empty!(
7253 AllowlistedDirectory,
7254 D
7255 ));
7256 }
7257 #[allow(irrefutable_let_patterns)]
7258 if let AllowlistedCapability::Directory(ref mut val) = self {
7259 fidl::decode!(AllowlistedDirectory, D, val, decoder, _inner_offset, depth)?;
7260 } else {
7261 unreachable!()
7262 }
7263 }
7264 3 => {
7265 #[allow(irrefutable_let_patterns)]
7266 if let AllowlistedCapability::Protocol(_) = self {
7267 } else {
7269 *self = AllowlistedCapability::Protocol(fidl::new_empty!(
7271 AllowlistedProtocol,
7272 D
7273 ));
7274 }
7275 #[allow(irrefutable_let_patterns)]
7276 if let AllowlistedCapability::Protocol(ref mut val) = self {
7277 fidl::decode!(AllowlistedProtocol, D, val, decoder, _inner_offset, depth)?;
7278 } else {
7279 unreachable!()
7280 }
7281 }
7282 4 => {
7283 #[allow(irrefutable_let_patterns)]
7284 if let AllowlistedCapability::Service(_) = self {
7285 } else {
7287 *self =
7289 AllowlistedCapability::Service(fidl::new_empty!(AllowlistedService, D));
7290 }
7291 #[allow(irrefutable_let_patterns)]
7292 if let AllowlistedCapability::Service(ref mut val) = self {
7293 fidl::decode!(AllowlistedService, D, val, decoder, _inner_offset, depth)?;
7294 } else {
7295 unreachable!()
7296 }
7297 }
7298 5 => {
7299 #[allow(irrefutable_let_patterns)]
7300 if let AllowlistedCapability::Storage(_) = self {
7301 } else {
7303 *self =
7305 AllowlistedCapability::Storage(fidl::new_empty!(AllowlistedStorage, D));
7306 }
7307 #[allow(irrefutable_let_patterns)]
7308 if let AllowlistedCapability::Storage(ref mut val) = self {
7309 fidl::decode!(AllowlistedStorage, D, val, decoder, _inner_offset, depth)?;
7310 } else {
7311 unreachable!()
7312 }
7313 }
7314 6 => {
7315 #[allow(irrefutable_let_patterns)]
7316 if let AllowlistedCapability::Runner(_) = self {
7317 } else {
7319 *self =
7321 AllowlistedCapability::Runner(fidl::new_empty!(AllowlistedRunner, D));
7322 }
7323 #[allow(irrefutable_let_patterns)]
7324 if let AllowlistedCapability::Runner(ref mut val) = self {
7325 fidl::decode!(AllowlistedRunner, D, val, decoder, _inner_offset, depth)?;
7326 } else {
7327 unreachable!()
7328 }
7329 }
7330 7 => {
7331 #[allow(irrefutable_let_patterns)]
7332 if let AllowlistedCapability::Resolver(_) = self {
7333 } else {
7335 *self = AllowlistedCapability::Resolver(fidl::new_empty!(
7337 AllowlistedResolver,
7338 D
7339 ));
7340 }
7341 #[allow(irrefutable_let_patterns)]
7342 if let AllowlistedCapability::Resolver(ref mut val) = self {
7343 fidl::decode!(AllowlistedResolver, D, val, decoder, _inner_offset, depth)?;
7344 } else {
7345 unreachable!()
7346 }
7347 }
7348 #[allow(deprecated)]
7349 ordinal => {
7350 for _ in 0..num_handles {
7351 decoder.drop_next_handle()?;
7352 }
7353 *self = AllowlistedCapability::__SourceBreaking { unknown_ordinal: ordinal };
7354 }
7355 }
7356 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7357 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7358 }
7359 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7360 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7361 }
7362 Ok(())
7363 }
7364 }
7365
7366 impl fidl::encoding::ValueTypeMarker for AllowlistedDebugRegistration {
7367 type Borrowed<'a> = &'a Self;
7368 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7369 value
7370 }
7371 }
7372
7373 unsafe impl fidl::encoding::TypeMarker for AllowlistedDebugRegistration {
7374 type Owned = Self;
7375
7376 #[inline(always)]
7377 fn inline_align(_context: fidl::encoding::Context) -> usize {
7378 8
7379 }
7380
7381 #[inline(always)]
7382 fn inline_size(_context: fidl::encoding::Context) -> usize {
7383 16
7384 }
7385 }
7386
7387 unsafe impl<D: fidl::encoding::ResourceDialect>
7388 fidl::encoding::Encode<AllowlistedDebugRegistration, D> for &AllowlistedDebugRegistration
7389 {
7390 #[inline]
7391 unsafe fn encode(
7392 self,
7393 encoder: &mut fidl::encoding::Encoder<'_, D>,
7394 offset: usize,
7395 _depth: fidl::encoding::Depth,
7396 ) -> fidl::Result<()> {
7397 encoder.debug_check_bounds::<AllowlistedDebugRegistration>(offset);
7398 encoder.write_num::<u64>(self.ordinal(), offset);
7399 match self {
7400 AllowlistedDebugRegistration::Protocol(ref val) => {
7401 fidl::encoding::encode_in_envelope::<AllowlistedProtocol, D>(
7402 <AllowlistedProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7403 encoder,
7404 offset + 8,
7405 _depth,
7406 )
7407 }
7408 AllowlistedDebugRegistration::__SourceBreaking { .. } => {
7409 Err(fidl::Error::UnknownUnionTag)
7410 }
7411 }
7412 }
7413 }
7414
7415 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7416 for AllowlistedDebugRegistration
7417 {
7418 #[inline(always)]
7419 fn new_empty() -> Self {
7420 Self::__SourceBreaking { unknown_ordinal: 0 }
7421 }
7422
7423 #[inline]
7424 unsafe fn decode(
7425 &mut self,
7426 decoder: &mut fidl::encoding::Decoder<'_, D>,
7427 offset: usize,
7428 mut depth: fidl::encoding::Depth,
7429 ) -> fidl::Result<()> {
7430 decoder.debug_check_bounds::<Self>(offset);
7431 #[allow(unused_variables)]
7432 let next_out_of_line = decoder.next_out_of_line();
7433 let handles_before = decoder.remaining_handles();
7434 let (ordinal, inlined, num_bytes, num_handles) =
7435 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7436
7437 let member_inline_size = match ordinal {
7438 1 => <AllowlistedProtocol as fidl::encoding::TypeMarker>::inline_size(
7439 decoder.context,
7440 ),
7441 0 => return Err(fidl::Error::UnknownUnionTag),
7442 _ => num_bytes as usize,
7443 };
7444
7445 if inlined != (member_inline_size <= 4) {
7446 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7447 }
7448 let _inner_offset;
7449 if inlined {
7450 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7451 _inner_offset = offset + 8;
7452 } else {
7453 depth.increment()?;
7454 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7455 }
7456 match ordinal {
7457 1 => {
7458 #[allow(irrefutable_let_patterns)]
7459 if let AllowlistedDebugRegistration::Protocol(_) = self {
7460 } else {
7462 *self = AllowlistedDebugRegistration::Protocol(fidl::new_empty!(
7464 AllowlistedProtocol,
7465 D
7466 ));
7467 }
7468 #[allow(irrefutable_let_patterns)]
7469 if let AllowlistedDebugRegistration::Protocol(ref mut val) = self {
7470 fidl::decode!(AllowlistedProtocol, D, val, decoder, _inner_offset, depth)?;
7471 } else {
7472 unreachable!()
7473 }
7474 }
7475 #[allow(deprecated)]
7476 ordinal => {
7477 for _ in 0..num_handles {
7478 decoder.drop_next_handle()?;
7479 }
7480 *self =
7481 AllowlistedDebugRegistration::__SourceBreaking { unknown_ordinal: ordinal };
7482 }
7483 }
7484 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7485 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7486 }
7487 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7488 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7489 }
7490 Ok(())
7491 }
7492 }
7493
7494 impl fidl::encoding::ValueTypeMarker for InjectedUse {
7495 type Borrowed<'a> = &'a Self;
7496 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7497 value
7498 }
7499 }
7500
7501 unsafe impl fidl::encoding::TypeMarker for InjectedUse {
7502 type Owned = Self;
7503
7504 #[inline(always)]
7505 fn inline_align(_context: fidl::encoding::Context) -> usize {
7506 8
7507 }
7508
7509 #[inline(always)]
7510 fn inline_size(_context: fidl::encoding::Context) -> usize {
7511 16
7512 }
7513 }
7514
7515 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedUse, D>
7516 for &InjectedUse
7517 {
7518 #[inline]
7519 unsafe fn encode(
7520 self,
7521 encoder: &mut fidl::encoding::Encoder<'_, D>,
7522 offset: usize,
7523 _depth: fidl::encoding::Depth,
7524 ) -> fidl::Result<()> {
7525 encoder.debug_check_bounds::<InjectedUse>(offset);
7526 encoder.write_num::<u64>(self.ordinal(), offset);
7527 match self {
7528 InjectedUse::Protocol(ref val) => {
7529 fidl::encoding::encode_in_envelope::<InjectedUseProtocol, D>(
7530 <InjectedUseProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7531 encoder,
7532 offset + 8,
7533 _depth,
7534 )
7535 }
7536 InjectedUse::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7537 }
7538 }
7539 }
7540
7541 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedUse {
7542 #[inline(always)]
7543 fn new_empty() -> Self {
7544 Self::__SourceBreaking { unknown_ordinal: 0 }
7545 }
7546
7547 #[inline]
7548 unsafe fn decode(
7549 &mut self,
7550 decoder: &mut fidl::encoding::Decoder<'_, D>,
7551 offset: usize,
7552 mut depth: fidl::encoding::Depth,
7553 ) -> fidl::Result<()> {
7554 decoder.debug_check_bounds::<Self>(offset);
7555 #[allow(unused_variables)]
7556 let next_out_of_line = decoder.next_out_of_line();
7557 let handles_before = decoder.remaining_handles();
7558 let (ordinal, inlined, num_bytes, num_handles) =
7559 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7560
7561 let member_inline_size = match ordinal {
7562 1 => <InjectedUseProtocol as fidl::encoding::TypeMarker>::inline_size(
7563 decoder.context,
7564 ),
7565 0 => return Err(fidl::Error::UnknownUnionTag),
7566 _ => num_bytes as usize,
7567 };
7568
7569 if inlined != (member_inline_size <= 4) {
7570 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7571 }
7572 let _inner_offset;
7573 if inlined {
7574 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7575 _inner_offset = offset + 8;
7576 } else {
7577 depth.increment()?;
7578 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7579 }
7580 match ordinal {
7581 1 => {
7582 #[allow(irrefutable_let_patterns)]
7583 if let InjectedUse::Protocol(_) = self {
7584 } else {
7586 *self = InjectedUse::Protocol(fidl::new_empty!(InjectedUseProtocol, D));
7588 }
7589 #[allow(irrefutable_let_patterns)]
7590 if let InjectedUse::Protocol(ref mut val) = self {
7591 fidl::decode!(InjectedUseProtocol, D, val, decoder, _inner_offset, depth)?;
7592 } else {
7593 unreachable!()
7594 }
7595 }
7596 #[allow(deprecated)]
7597 ordinal => {
7598 for _ in 0..num_handles {
7599 decoder.drop_next_handle()?;
7600 }
7601 *self = InjectedUse::__SourceBreaking { unknown_ordinal: ordinal };
7602 }
7603 }
7604 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7605 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7606 }
7607 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7608 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7609 }
7610 Ok(())
7611 }
7612 }
7613}