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 type Moniker = String;
29
30pub const MAX_ALLOWLIST_SIZE: u64 = 128;
33
34#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
36#[repr(u8)]
37pub enum BuiltinBootResolver {
38 None = 1,
40 Boot = 2,
43}
44
45impl BuiltinBootResolver {
46 #[inline]
47 pub fn from_primitive(prim: u8) -> Option<Self> {
48 match prim {
49 1 => Some(Self::None),
50 2 => Some(Self::Boot),
51 _ => None,
52 }
53 }
54
55 #[inline]
56 pub const fn into_primitive(self) -> u8 {
57 self as u8
58 }
59}
60
61#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
63#[repr(u8)]
64pub enum LogDestination {
65 Syslog = 1,
67 Klog = 2,
69}
70
71impl LogDestination {
72 #[inline]
73 pub fn from_primitive(prim: u8) -> Option<Self> {
74 match prim {
75 1 => Some(Self::Syslog),
76 2 => Some(Self::Klog),
77 _ => None,
78 }
79 }
80
81 #[inline]
82 pub const fn into_primitive(self) -> u8 {
83 self as u8
84 }
85}
86
87#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
89#[repr(u8)]
90pub enum RealmBuilderResolverAndRunner {
91 None = 1,
93 Namespace = 2,
96}
97
98impl RealmBuilderResolverAndRunner {
99 #[inline]
100 pub fn from_primitive(prim: u8) -> Option<Self> {
101 match prim {
102 1 => Some(Self::None),
103 2 => Some(Self::Namespace),
104 _ => None,
105 }
106 }
107
108 #[inline]
109 pub const fn into_primitive(self) -> u8 {
110 self as u8
111 }
112}
113
114#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
117#[repr(u8)]
118pub enum TraceProvider {
119 Namespace = 1,
121 RootExposed = 2,
124}
125
126impl TraceProvider {
127 #[inline]
128 pub fn from_primitive(prim: u8) -> Option<Self> {
129 match prim {
130 1 => Some(Self::Namespace),
131 2 => Some(Self::RootExposed),
132 _ => None,
133 }
134 }
135
136 #[inline]
137 pub const fn into_primitive(self) -> u8 {
138 self as u8
139 }
140}
141
142#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
144#[repr(u8)]
145pub enum VmexSource {
146 SystemResource = 1,
148 Namespace = 2,
151}
152
153impl VmexSource {
154 #[inline]
155 pub fn from_primitive(prim: u8) -> Option<Self> {
156 match prim {
157 1 => Some(Self::SystemResource),
158 2 => Some(Self::Namespace),
159 _ => None,
160 }
161 }
162
163 #[inline]
164 pub const fn into_primitive(self) -> u8 {
165 self as u8
166 }
167}
168
169#[derive(Clone, Debug, Default, PartialEq)]
171pub struct AbiRevisionPolicy {
172 pub allowlist: Option<Vec<String>>,
177 #[doc(hidden)]
178 pub __source_breaking: fidl::marker::SourceBreaking,
179}
180
181impl fidl::Persistable for AbiRevisionPolicy {}
182
183#[derive(Clone, Debug, Default, PartialEq)]
184pub struct AllowlistedDirectory {
185 #[doc(hidden)]
186 pub __source_breaking: fidl::marker::SourceBreaking,
187}
188
189impl fidl::Persistable for AllowlistedDirectory {}
190
191#[derive(Clone, Debug, Default, PartialEq)]
192pub struct AllowlistedProtocol {
193 #[doc(hidden)]
194 pub __source_breaking: fidl::marker::SourceBreaking,
195}
196
197impl fidl::Persistable for AllowlistedProtocol {}
198
199#[derive(Clone, Debug, Default, PartialEq)]
200pub struct AllowlistedResolver {
201 #[doc(hidden)]
202 pub __source_breaking: fidl::marker::SourceBreaking,
203}
204
205impl fidl::Persistable for AllowlistedResolver {}
206
207#[derive(Clone, Debug, Default, PartialEq)]
208pub struct AllowlistedRunner {
209 #[doc(hidden)]
210 pub __source_breaking: fidl::marker::SourceBreaking,
211}
212
213impl fidl::Persistable for AllowlistedRunner {}
214
215#[derive(Clone, Debug, Default, PartialEq)]
216pub struct AllowlistedService {
217 #[doc(hidden)]
218 pub __source_breaking: fidl::marker::SourceBreaking,
219}
220
221impl fidl::Persistable for AllowlistedService {}
222
223#[derive(Clone, Debug, Default, PartialEq)]
224pub struct AllowlistedStorage {
225 #[doc(hidden)]
226 pub __source_breaking: fidl::marker::SourceBreaking,
227}
228
229impl fidl::Persistable for AllowlistedStorage {}
230
231#[derive(Clone, Debug, Default, PartialEq)]
232pub struct AnonymizedAggregate {
233 pub capability: Option<AggregateCapability>,
234 pub moniker: Option<String>,
235 pub members: Option<Vec<AggregateMember>>,
236 pub sources: Option<Sources>,
237 pub instances: Option<Vec<fidl_fuchsia_sys2__common::ServiceInstance>>,
238 #[doc(hidden)]
239 pub __source_breaking: fidl::marker::SourceBreaking,
240}
241
242impl fidl::Persistable for AnonymizedAggregate {}
243
244#[derive(Clone, Debug, Default, PartialEq)]
245pub struct Builtin {
246 pub capability: Option<InternalCapability>,
247 #[doc(hidden)]
248 pub __source_breaking: fidl::marker::SourceBreaking,
249}
250
251impl fidl::Persistable for Builtin {}
252
253#[derive(Clone, Debug, Default, PartialEq)]
254pub struct Capability {
255 pub source_capability: Option<ComponentCapability>,
256 pub moniker: Option<String>,
257 #[doc(hidden)]
258 pub __source_breaking: fidl::marker::SourceBreaking,
259}
260
261impl fidl::Persistable for Capability {}
262
263#[derive(Clone, Debug, Default, PartialEq)]
266pub struct CapabilityAllowlistEntry {
267 pub source_moniker: Option<String>,
270 pub source_name: Option<String>,
272 pub capability: Option<AllowlistedCapability>,
275 pub target_monikers: Option<Vec<String>>,
278 pub source: Option<fidl_fuchsia_component_decl__common::Ref>,
280 #[doc(hidden)]
281 pub __source_breaking: fidl::marker::SourceBreaking,
282}
283
284impl fidl::Persistable for CapabilityAllowlistEntry {}
285
286#[derive(Clone, Debug, Default, PartialEq)]
289pub struct CapabilityPolicyAllowlists {
290 pub allowlist: Option<Vec<CapabilityAllowlistEntry>>,
291 #[doc(hidden)]
292 pub __source_breaking: fidl::marker::SourceBreaking,
293}
294
295impl fidl::Persistable for CapabilityPolicyAllowlists {}
296
297#[derive(Clone, Debug, Default, PartialEq)]
299pub struct ChildPolicyAllowlists {
300 pub reboot_on_terminate: Option<Vec<String>>,
303 #[doc(hidden)]
304 pub __source_breaking: fidl::marker::SourceBreaking,
305}
306
307impl fidl::Persistable for ChildPolicyAllowlists {}
308
309#[derive(Clone, Debug, Default, PartialEq)]
310pub struct Component {
311 pub capability: Option<ComponentCapability>,
312 pub moniker: Option<String>,
313 #[doc(hidden)]
314 pub __source_breaking: fidl::marker::SourceBreaking,
315}
316
317impl fidl::Persistable for Component {}
318
319#[derive(Clone, Debug, Default, PartialEq)]
321pub struct ComponentIdIndex {
322 pub instances: Option<Vec<InstanceIdEntry>>,
326 #[doc(hidden)]
327 pub __source_breaking: fidl::marker::SourceBreaking,
328}
329
330impl fidl::Persistable for ComponentIdIndex {}
331
332#[derive(Clone, Debug, Default, PartialEq)]
333pub struct Config {
334 pub debug: Option<bool>,
342 pub list_children_batch_size: Option<u32>,
344 pub security_policy: Option<SecurityPolicy>,
346 pub namespace_capabilities: Option<Vec<fidl_fuchsia_component_decl__common::Capability>>,
348 pub use_builtin_process_launcher: Option<bool>,
357 pub maintain_utc_clock: Option<bool>,
361 pub num_threads: Option<u8>,
364 pub root_component_url: Option<String>,
368 pub component_id_index_path: Option<String>,
371 pub log_destination: Option<LogDestination>,
373 pub log_all_events: Option<bool>,
375 pub builtin_boot_resolver: Option<BuiltinBootResolver>,
378 pub realm_builder_resolver_and_runner: Option<RealmBuilderResolverAndRunner>,
382 pub builtin_capabilities: Option<Vec<fidl_fuchsia_component_decl__common::Capability>>,
384 pub enable_introspection: Option<bool>,
387 pub abi_revision_policy: Option<AbiRevisionPolicy>,
390 pub vmex_source: Option<VmexSource>,
393 pub health_check: Option<HealthCheck>,
395 pub trace_provider: Option<TraceProvider>,
398 pub inject: Option<Vec<InjectedBundle>>,
400 #[doc(hidden)]
401 pub __source_breaking: fidl::marker::SourceBreaking,
402}
403
404impl fidl::Persistable for Config {}
405
406#[derive(Clone, Debug, Default, PartialEq)]
409pub struct DebugRegistrationAllowlistEntry {
410 pub name: Option<String>,
412 pub debug: Option<AllowlistedDebugRegistration>,
415 pub moniker: Option<String>,
418 pub environment_name: Option<String>,
420 #[doc(hidden)]
421 pub __source_breaking: fidl::marker::SourceBreaking,
422}
423
424impl fidl::Persistable for DebugRegistrationAllowlistEntry {}
425
426#[derive(Clone, Debug, Default, PartialEq)]
428pub struct DebugRegistrationPolicyAllowlists {
429 pub allowlist: Option<Vec<DebugRegistrationAllowlistEntry>>,
430 #[doc(hidden)]
431 pub __source_breaking: fidl::marker::SourceBreaking,
432}
433
434impl fidl::Persistable for DebugRegistrationPolicyAllowlists {}
435
436#[derive(Clone, Debug, Default, PartialEq)]
437pub struct Environment {
438 pub capability: Option<ComponentCapability>,
439 pub moniker: Option<String>,
440 #[doc(hidden)]
441 pub __source_breaking: fidl::marker::SourceBreaking,
442}
443
444impl fidl::Persistable for Environment {}
445
446#[derive(Clone, Debug, Default, PartialEq)]
447pub struct EnvironmentSource {
448 pub source_name: Option<String>,
449 pub source: Option<fidl_fuchsia_component_decl__common::Ref>,
450 #[doc(hidden)]
451 pub __source_breaking: fidl::marker::SourceBreaking,
452}
453
454impl fidl::Persistable for EnvironmentSource {}
455
456#[derive(Clone, Debug, Default, PartialEq)]
459pub struct EventStreamRouteMetadata {
460 pub scope_moniker: Option<String>,
463 pub scope: Option<Vec<fidl_fuchsia_component_decl__common::Ref>>,
467 #[doc(hidden)]
468 pub __source_breaking: fidl::marker::SourceBreaking,
469}
470
471impl fidl::Persistable for EventStreamRouteMetadata {}
472
473#[derive(Clone, Debug, Default, PartialEq)]
474pub struct FilteredAggregateProvider {
475 pub capability: Option<AggregateCapability>,
476 pub moniker: Option<String>,
477 pub offer_service_decls: Option<Vec<fidl_fuchsia_component_decl__common::OfferService>>,
478 pub sources: Option<Sources>,
479 #[doc(hidden)]
480 pub __source_breaking: fidl::marker::SourceBreaking,
481}
482
483impl fidl::Persistable for FilteredAggregateProvider {}
484
485#[derive(Clone, Debug, Default, PartialEq)]
486pub struct FilteredProvider {
487 pub capability: Option<AggregateCapability>,
488 pub moniker: Option<String>,
489 pub service_capability: Option<ComponentCapability>,
490 pub offer_service_decl: Option<fidl_fuchsia_component_decl__common::OfferService>,
491 #[doc(hidden)]
492 pub __source_breaking: fidl::marker::SourceBreaking,
493}
494
495impl fidl::Persistable for FilteredProvider {}
496
497#[derive(Clone, Debug, Default, PartialEq)]
498pub struct Framework {
499 pub capability: Option<InternalCapability>,
500 pub moniker: Option<String>,
501 #[doc(hidden)]
502 pub __source_breaking: fidl::marker::SourceBreaking,
503}
504
505impl fidl::Persistable for Framework {}
506
507#[derive(Clone, Debug, Default, PartialEq)]
509pub struct HealthCheck {
510 pub monikers: Option<Vec<String>>,
512 #[doc(hidden)]
513 pub __source_breaking: fidl::marker::SourceBreaking,
514}
515
516impl fidl::Persistable for HealthCheck {}
517
518#[derive(Clone, Debug, Default, PartialEq)]
521pub struct InjectedBundle {
522 pub components: Option<Vec<String>>,
524 pub use_: Option<Vec<InjectedUse>>,
526 #[doc(hidden)]
527 pub __source_breaking: fidl::marker::SourceBreaking,
528}
529
530impl fidl::Persistable for InjectedBundle {}
531
532#[derive(Clone, Debug, Default, PartialEq)]
534pub struct InjectedUseProtocol {
535 pub source_name: Option<String>,
537 pub target_path: Option<String>,
542 #[doc(hidden)]
543 pub __source_breaking: fidl::marker::SourceBreaking,
544}
545
546impl fidl::Persistable for InjectedUseProtocol {}
547
548#[derive(Clone, Debug, Default, PartialEq)]
549pub struct InstanceIdEntry {
550 pub instance_id: Option<String>,
553 pub moniker: Option<String>,
555 #[doc(hidden)]
556 pub __source_breaking: fidl::marker::SourceBreaking,
557}
558
559impl fidl::Persistable for InstanceIdEntry {}
560
561#[derive(Clone, Debug, Default, PartialEq)]
563pub struct JobPolicyAllowlists {
564 pub ambient_mark_vmo_exec: Option<Vec<String>>,
571 pub main_process_critical: Option<Vec<String>>,
577 pub create_raw_processes: Option<Vec<String>>,
583 #[doc(hidden)]
584 pub __source_breaking: fidl::marker::SourceBreaking,
585}
586
587impl fidl::Persistable for JobPolicyAllowlists {}
588
589#[derive(Clone, Debug, Default, PartialEq)]
590pub struct Namespace {
591 pub capability: Option<ComponentCapability>,
592 #[doc(hidden)]
593 pub __source_breaking: fidl::marker::SourceBreaking,
594}
595
596impl fidl::Persistable for Namespace {}
597
598#[derive(Clone, Debug, Default, PartialEq)]
600pub struct SecurityPolicy {
601 pub job_policy: Option<JobPolicyAllowlists>,
603 pub capability_policy: Option<CapabilityPolicyAllowlists>,
605 pub debug_registration_policy: Option<DebugRegistrationPolicyAllowlists>,
607 pub child_policy: Option<ChildPolicyAllowlists>,
609 #[doc(hidden)]
610 pub __source_breaking: fidl::marker::SourceBreaking,
611}
612
613impl fidl::Persistable for SecurityPolicy {}
614
615#[derive(Clone, Debug, Default, PartialEq)]
616pub struct Sources {
617 pub framework: Option<bool>,
618 pub builtin: Option<bool>,
619 pub capability: Option<bool>,
620 pub collection: Option<bool>,
621 pub namespace: Option<bool>,
622 pub component: Option<bool>,
623 pub capability_type: Option<String>,
624 #[doc(hidden)]
625 pub __source_breaking: fidl::marker::SourceBreaking,
626}
627
628impl fidl::Persistable for Sources {}
629
630#[derive(Clone, Debug, Default, PartialEq)]
631pub struct Void {
632 pub capability: Option<InternalCapability>,
633 pub moniker: Option<String>,
634 #[doc(hidden)]
635 pub __source_breaking: fidl::marker::SourceBreaking,
636}
637
638impl fidl::Persistable for Void {}
639
640#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
641pub enum AggregateCapability {
642 Service(String),
643}
644
645impl AggregateCapability {
646 #[inline]
647 pub fn ordinal(&self) -> u64 {
648 match *self {
649 Self::Service(_) => 1,
650 }
651 }
652}
653
654impl fidl::Persistable for AggregateCapability {}
655
656#[derive(Clone, Debug, PartialEq)]
657pub enum AggregateMember {
658 Child(fidl_fuchsia_component_decl__common::ChildRef),
659 Collection(String),
660 Parent(fidl_fuchsia_component_decl__common::ParentRef),
661 Self_(fidl_fuchsia_component_decl__common::SelfRef),
662}
663
664impl AggregateMember {
665 #[inline]
666 pub fn ordinal(&self) -> u64 {
667 match *self {
668 Self::Child(_) => 1,
669 Self::Collection(_) => 2,
670 Self::Parent(_) => 3,
671 Self::Self_(_) => 4,
672 }
673 }
674}
675
676impl fidl::Persistable for AggregateMember {}
677
678#[derive(Clone, Debug)]
680pub enum AllowlistedCapability {
681 Directory(AllowlistedDirectory),
682 Protocol(AllowlistedProtocol),
683 Service(AllowlistedService),
684 Storage(AllowlistedStorage),
685 Runner(AllowlistedRunner),
686 Resolver(AllowlistedResolver),
687 #[doc(hidden)]
688 __SourceBreaking {
689 unknown_ordinal: u64,
690 },
691}
692
693#[macro_export]
695macro_rules! AllowlistedCapabilityUnknown {
696 () => {
697 _
698 };
699}
700
701impl PartialEq for AllowlistedCapability {
703 fn eq(&self, other: &Self) -> bool {
704 match (self, other) {
705 (Self::Directory(x), Self::Directory(y)) => *x == *y,
706 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
707 (Self::Service(x), Self::Service(y)) => *x == *y,
708 (Self::Storage(x), Self::Storage(y)) => *x == *y,
709 (Self::Runner(x), Self::Runner(y)) => *x == *y,
710 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
711 _ => false,
712 }
713 }
714}
715
716impl AllowlistedCapability {
717 #[inline]
718 pub fn ordinal(&self) -> u64 {
719 match *self {
720 Self::Directory(_) => 1,
721 Self::Protocol(_) => 3,
722 Self::Service(_) => 4,
723 Self::Storage(_) => 5,
724 Self::Runner(_) => 6,
725 Self::Resolver(_) => 7,
726 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
727 }
728 }
729
730 #[inline]
731 pub fn unknown_variant_for_testing() -> Self {
732 Self::__SourceBreaking { unknown_ordinal: 0 }
733 }
734
735 #[inline]
736 pub fn is_unknown(&self) -> bool {
737 match self {
738 Self::__SourceBreaking { .. } => true,
739 _ => false,
740 }
741 }
742}
743
744impl fidl::Persistable for AllowlistedCapability {}
745
746#[derive(Clone, Debug)]
748pub enum AllowlistedDebugRegistration {
749 Protocol(AllowlistedProtocol),
750 #[doc(hidden)]
751 __SourceBreaking {
752 unknown_ordinal: u64,
753 },
754}
755
756#[macro_export]
758macro_rules! AllowlistedDebugRegistrationUnknown {
759 () => {
760 _
761 };
762}
763
764impl PartialEq for AllowlistedDebugRegistration {
766 fn eq(&self, other: &Self) -> bool {
767 match (self, other) {
768 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
769 _ => false,
770 }
771 }
772}
773
774impl AllowlistedDebugRegistration {
775 #[inline]
776 pub fn ordinal(&self) -> u64 {
777 match *self {
778 Self::Protocol(_) => 1,
779 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
780 }
781 }
782
783 #[inline]
784 pub fn unknown_variant_for_testing() -> Self {
785 Self::__SourceBreaking { unknown_ordinal: 0 }
786 }
787
788 #[inline]
789 pub fn is_unknown(&self) -> bool {
790 match self {
791 Self::__SourceBreaking { .. } => true,
792 _ => false,
793 }
794 }
795}
796
797impl fidl::Persistable for AllowlistedDebugRegistration {}
798
799#[derive(Clone, Debug, PartialEq)]
800pub enum CapabilitySource {
801 Component(Component),
802 Framework(Framework),
803 Builtin(Builtin),
804 Namespace(Namespace),
805 Capability(Capability),
806 AnonymizedAggregate(AnonymizedAggregate),
807 FilteredProvider(FilteredProvider),
808 FilteredAggregateProvider(FilteredAggregateProvider),
809 Environment(Environment),
810 Void(Void),
811}
812
813impl CapabilitySource {
814 #[inline]
815 pub fn ordinal(&self) -> u64 {
816 match *self {
817 Self::Component(_) => 1,
818 Self::Framework(_) => 2,
819 Self::Builtin(_) => 3,
820 Self::Namespace(_) => 4,
821 Self::Capability(_) => 5,
822 Self::AnonymizedAggregate(_) => 6,
823 Self::FilteredProvider(_) => 7,
824 Self::FilteredAggregateProvider(_) => 8,
825 Self::Environment(_) => 9,
826 Self::Void(_) => 10,
827 }
828 }
829}
830
831impl fidl::Persistable for CapabilitySource {}
832
833#[derive(Clone, Debug, PartialEq)]
834pub enum ComponentCapability {
835 Use_(fidl_fuchsia_component_decl__common::Use),
836 Offer(fidl_fuchsia_component_decl__common::Offer),
837 Expose(fidl_fuchsia_component_decl__common::Expose),
838 Config(fidl_fuchsia_component_decl__common::Configuration),
839 Dictionary(fidl_fuchsia_component_decl__common::Dictionary),
840 Directory(fidl_fuchsia_component_decl__common::Directory),
841 Environment(EnvironmentCapability),
842 EventStream(fidl_fuchsia_component_decl__common::EventStream),
843 Protocol(fidl_fuchsia_component_decl__common::Protocol),
844 Resolver(fidl_fuchsia_component_decl__common::Resolver),
845 Runner(fidl_fuchsia_component_decl__common::Runner),
846 Service(fidl_fuchsia_component_decl__common::Service),
847 Storage(fidl_fuchsia_component_decl__common::Storage),
848}
849
850impl ComponentCapability {
851 #[inline]
852 pub fn ordinal(&self) -> u64 {
853 match *self {
854 Self::Use_(_) => 1,
855 Self::Offer(_) => 2,
856 Self::Expose(_) => 3,
857 Self::Config(_) => 4,
858 Self::Dictionary(_) => 5,
859 Self::Directory(_) => 6,
860 Self::Environment(_) => 7,
861 Self::EventStream(_) => 8,
862 Self::Protocol(_) => 9,
863 Self::Resolver(_) => 10,
864 Self::Runner(_) => 11,
865 Self::Service(_) => 12,
866 Self::Storage(_) => 13,
867 }
868 }
869}
870
871impl fidl::Persistable for ComponentCapability {}
872
873#[derive(Clone, Debug, PartialEq)]
874pub enum EnvironmentCapability {
875 Runner(EnvironmentSource),
876 Resolver(EnvironmentSource),
877 Debug(EnvironmentSource),
878}
879
880impl EnvironmentCapability {
881 #[inline]
882 pub fn ordinal(&self) -> u64 {
883 match *self {
884 Self::Runner(_) => 1,
885 Self::Resolver(_) => 2,
886 Self::Debug(_) => 3,
887 }
888 }
889}
890
891impl fidl::Persistable for EnvironmentCapability {}
892
893#[derive(Clone, Debug)]
895pub enum InjectedUse {
896 Protocol(InjectedUseProtocol),
897 #[doc(hidden)]
898 __SourceBreaking {
899 unknown_ordinal: u64,
900 },
901}
902
903#[macro_export]
905macro_rules! InjectedUseUnknown {
906 () => {
907 _
908 };
909}
910
911impl PartialEq for InjectedUse {
913 fn eq(&self, other: &Self) -> bool {
914 match (self, other) {
915 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
916 _ => false,
917 }
918 }
919}
920
921impl InjectedUse {
922 #[inline]
923 pub fn ordinal(&self) -> u64 {
924 match *self {
925 Self::Protocol(_) => 1,
926 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
927 }
928 }
929
930 #[inline]
931 pub fn unknown_variant_for_testing() -> Self {
932 Self::__SourceBreaking { unknown_ordinal: 0 }
933 }
934
935 #[inline]
936 pub fn is_unknown(&self) -> bool {
937 match self {
938 Self::__SourceBreaking { .. } => true,
939 _ => false,
940 }
941 }
942}
943
944impl fidl::Persistable for InjectedUse {}
945
946#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
947pub enum InternalCapability {
948 Config(String),
949 Dictionary(String),
950 Directory(String),
951 EventStream(String),
952 Protocol(String),
953 Resolver(String),
954 Runner(String),
955 Service(String),
956 Storage(String),
957}
958
959impl InternalCapability {
960 #[inline]
961 pub fn ordinal(&self) -> u64 {
962 match *self {
963 Self::Config(_) => 1,
964 Self::Dictionary(_) => 2,
965 Self::Directory(_) => 3,
966 Self::EventStream(_) => 4,
967 Self::Protocol(_) => 5,
968 Self::Resolver(_) => 6,
969 Self::Runner(_) => 7,
970 Self::Service(_) => 8,
971 Self::Storage(_) => 9,
972 }
973 }
974}
975
976impl fidl::Persistable for InternalCapability {}
977
978pub mod component_sandbox_retriever_ordinals {
979 pub const GET_MY_SANDBOX: u64 = 0x61ca075fb9860e84;
980}
981
982mod internal {
983 use super::*;
984 unsafe impl fidl::encoding::TypeMarker for BuiltinBootResolver {
985 type Owned = Self;
986
987 #[inline(always)]
988 fn inline_align(_context: fidl::encoding::Context) -> usize {
989 std::mem::align_of::<u8>()
990 }
991
992 #[inline(always)]
993 fn inline_size(_context: fidl::encoding::Context) -> usize {
994 std::mem::size_of::<u8>()
995 }
996
997 #[inline(always)]
998 fn encode_is_copy() -> bool {
999 true
1000 }
1001
1002 #[inline(always)]
1003 fn decode_is_copy() -> bool {
1004 false
1005 }
1006 }
1007
1008 impl fidl::encoding::ValueTypeMarker for BuiltinBootResolver {
1009 type Borrowed<'a> = Self;
1010 #[inline(always)]
1011 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1012 *value
1013 }
1014 }
1015
1016 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1017 for BuiltinBootResolver
1018 {
1019 #[inline]
1020 unsafe fn encode(
1021 self,
1022 encoder: &mut fidl::encoding::Encoder<'_, D>,
1023 offset: usize,
1024 _depth: fidl::encoding::Depth,
1025 ) -> fidl::Result<()> {
1026 encoder.debug_check_bounds::<Self>(offset);
1027 encoder.write_num(self.into_primitive(), offset);
1028 Ok(())
1029 }
1030 }
1031
1032 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BuiltinBootResolver {
1033 #[inline(always)]
1034 fn new_empty() -> Self {
1035 Self::None
1036 }
1037
1038 #[inline]
1039 unsafe fn decode(
1040 &mut self,
1041 decoder: &mut fidl::encoding::Decoder<'_, D>,
1042 offset: usize,
1043 _depth: fidl::encoding::Depth,
1044 ) -> fidl::Result<()> {
1045 decoder.debug_check_bounds::<Self>(offset);
1046 let prim = decoder.read_num::<u8>(offset);
1047
1048 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1049 Ok(())
1050 }
1051 }
1052 unsafe impl fidl::encoding::TypeMarker for LogDestination {
1053 type Owned = Self;
1054
1055 #[inline(always)]
1056 fn inline_align(_context: fidl::encoding::Context) -> usize {
1057 std::mem::align_of::<u8>()
1058 }
1059
1060 #[inline(always)]
1061 fn inline_size(_context: fidl::encoding::Context) -> usize {
1062 std::mem::size_of::<u8>()
1063 }
1064
1065 #[inline(always)]
1066 fn encode_is_copy() -> bool {
1067 true
1068 }
1069
1070 #[inline(always)]
1071 fn decode_is_copy() -> bool {
1072 false
1073 }
1074 }
1075
1076 impl fidl::encoding::ValueTypeMarker for LogDestination {
1077 type Borrowed<'a> = Self;
1078 #[inline(always)]
1079 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1080 *value
1081 }
1082 }
1083
1084 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for LogDestination {
1085 #[inline]
1086 unsafe fn encode(
1087 self,
1088 encoder: &mut fidl::encoding::Encoder<'_, D>,
1089 offset: usize,
1090 _depth: fidl::encoding::Depth,
1091 ) -> fidl::Result<()> {
1092 encoder.debug_check_bounds::<Self>(offset);
1093 encoder.write_num(self.into_primitive(), offset);
1094 Ok(())
1095 }
1096 }
1097
1098 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LogDestination {
1099 #[inline(always)]
1100 fn new_empty() -> Self {
1101 Self::Syslog
1102 }
1103
1104 #[inline]
1105 unsafe fn decode(
1106 &mut self,
1107 decoder: &mut fidl::encoding::Decoder<'_, D>,
1108 offset: usize,
1109 _depth: fidl::encoding::Depth,
1110 ) -> fidl::Result<()> {
1111 decoder.debug_check_bounds::<Self>(offset);
1112 let prim = decoder.read_num::<u8>(offset);
1113
1114 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1115 Ok(())
1116 }
1117 }
1118 unsafe impl fidl::encoding::TypeMarker for RealmBuilderResolverAndRunner {
1119 type Owned = Self;
1120
1121 #[inline(always)]
1122 fn inline_align(_context: fidl::encoding::Context) -> usize {
1123 std::mem::align_of::<u8>()
1124 }
1125
1126 #[inline(always)]
1127 fn inline_size(_context: fidl::encoding::Context) -> usize {
1128 std::mem::size_of::<u8>()
1129 }
1130
1131 #[inline(always)]
1132 fn encode_is_copy() -> bool {
1133 true
1134 }
1135
1136 #[inline(always)]
1137 fn decode_is_copy() -> bool {
1138 false
1139 }
1140 }
1141
1142 impl fidl::encoding::ValueTypeMarker for RealmBuilderResolverAndRunner {
1143 type Borrowed<'a> = Self;
1144 #[inline(always)]
1145 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1146 *value
1147 }
1148 }
1149
1150 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1151 for RealmBuilderResolverAndRunner
1152 {
1153 #[inline]
1154 unsafe fn encode(
1155 self,
1156 encoder: &mut fidl::encoding::Encoder<'_, D>,
1157 offset: usize,
1158 _depth: fidl::encoding::Depth,
1159 ) -> fidl::Result<()> {
1160 encoder.debug_check_bounds::<Self>(offset);
1161 encoder.write_num(self.into_primitive(), offset);
1162 Ok(())
1163 }
1164 }
1165
1166 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1167 for RealmBuilderResolverAndRunner
1168 {
1169 #[inline(always)]
1170 fn new_empty() -> Self {
1171 Self::None
1172 }
1173
1174 #[inline]
1175 unsafe fn decode(
1176 &mut self,
1177 decoder: &mut fidl::encoding::Decoder<'_, D>,
1178 offset: usize,
1179 _depth: fidl::encoding::Depth,
1180 ) -> fidl::Result<()> {
1181 decoder.debug_check_bounds::<Self>(offset);
1182 let prim = decoder.read_num::<u8>(offset);
1183
1184 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1185 Ok(())
1186 }
1187 }
1188 unsafe impl fidl::encoding::TypeMarker for TraceProvider {
1189 type Owned = Self;
1190
1191 #[inline(always)]
1192 fn inline_align(_context: fidl::encoding::Context) -> usize {
1193 std::mem::align_of::<u8>()
1194 }
1195
1196 #[inline(always)]
1197 fn inline_size(_context: fidl::encoding::Context) -> usize {
1198 std::mem::size_of::<u8>()
1199 }
1200
1201 #[inline(always)]
1202 fn encode_is_copy() -> bool {
1203 true
1204 }
1205
1206 #[inline(always)]
1207 fn decode_is_copy() -> bool {
1208 false
1209 }
1210 }
1211
1212 impl fidl::encoding::ValueTypeMarker for TraceProvider {
1213 type Borrowed<'a> = Self;
1214 #[inline(always)]
1215 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1216 *value
1217 }
1218 }
1219
1220 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TraceProvider {
1221 #[inline]
1222 unsafe fn encode(
1223 self,
1224 encoder: &mut fidl::encoding::Encoder<'_, D>,
1225 offset: usize,
1226 _depth: fidl::encoding::Depth,
1227 ) -> fidl::Result<()> {
1228 encoder.debug_check_bounds::<Self>(offset);
1229 encoder.write_num(self.into_primitive(), offset);
1230 Ok(())
1231 }
1232 }
1233
1234 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceProvider {
1235 #[inline(always)]
1236 fn new_empty() -> Self {
1237 Self::Namespace
1238 }
1239
1240 #[inline]
1241 unsafe fn decode(
1242 &mut self,
1243 decoder: &mut fidl::encoding::Decoder<'_, D>,
1244 offset: usize,
1245 _depth: fidl::encoding::Depth,
1246 ) -> fidl::Result<()> {
1247 decoder.debug_check_bounds::<Self>(offset);
1248 let prim = decoder.read_num::<u8>(offset);
1249
1250 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1251 Ok(())
1252 }
1253 }
1254 unsafe impl fidl::encoding::TypeMarker for VmexSource {
1255 type Owned = Self;
1256
1257 #[inline(always)]
1258 fn inline_align(_context: fidl::encoding::Context) -> usize {
1259 std::mem::align_of::<u8>()
1260 }
1261
1262 #[inline(always)]
1263 fn inline_size(_context: fidl::encoding::Context) -> usize {
1264 std::mem::size_of::<u8>()
1265 }
1266
1267 #[inline(always)]
1268 fn encode_is_copy() -> bool {
1269 true
1270 }
1271
1272 #[inline(always)]
1273 fn decode_is_copy() -> bool {
1274 false
1275 }
1276 }
1277
1278 impl fidl::encoding::ValueTypeMarker for VmexSource {
1279 type Borrowed<'a> = Self;
1280 #[inline(always)]
1281 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1282 *value
1283 }
1284 }
1285
1286 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for VmexSource {
1287 #[inline]
1288 unsafe fn encode(
1289 self,
1290 encoder: &mut fidl::encoding::Encoder<'_, D>,
1291 offset: usize,
1292 _depth: fidl::encoding::Depth,
1293 ) -> fidl::Result<()> {
1294 encoder.debug_check_bounds::<Self>(offset);
1295 encoder.write_num(self.into_primitive(), offset);
1296 Ok(())
1297 }
1298 }
1299
1300 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VmexSource {
1301 #[inline(always)]
1302 fn new_empty() -> Self {
1303 Self::SystemResource
1304 }
1305
1306 #[inline]
1307 unsafe fn decode(
1308 &mut self,
1309 decoder: &mut fidl::encoding::Decoder<'_, D>,
1310 offset: usize,
1311 _depth: fidl::encoding::Depth,
1312 ) -> fidl::Result<()> {
1313 decoder.debug_check_bounds::<Self>(offset);
1314 let prim = decoder.read_num::<u8>(offset);
1315
1316 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1317 Ok(())
1318 }
1319 }
1320
1321 impl AbiRevisionPolicy {
1322 #[inline(always)]
1323 fn max_ordinal_present(&self) -> u64 {
1324 if let Some(_) = self.allowlist {
1325 return 1;
1326 }
1327 0
1328 }
1329 }
1330
1331 impl fidl::encoding::ValueTypeMarker for AbiRevisionPolicy {
1332 type Borrowed<'a> = &'a Self;
1333 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1334 value
1335 }
1336 }
1337
1338 unsafe impl fidl::encoding::TypeMarker for AbiRevisionPolicy {
1339 type Owned = Self;
1340
1341 #[inline(always)]
1342 fn inline_align(_context: fidl::encoding::Context) -> usize {
1343 8
1344 }
1345
1346 #[inline(always)]
1347 fn inline_size(_context: fidl::encoding::Context) -> usize {
1348 16
1349 }
1350 }
1351
1352 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AbiRevisionPolicy, D>
1353 for &AbiRevisionPolicy
1354 {
1355 unsafe fn encode(
1356 self,
1357 encoder: &mut fidl::encoding::Encoder<'_, D>,
1358 offset: usize,
1359 mut depth: fidl::encoding::Depth,
1360 ) -> fidl::Result<()> {
1361 encoder.debug_check_bounds::<AbiRevisionPolicy>(offset);
1362 let max_ordinal: u64 = self.max_ordinal_present();
1364 encoder.write_num(max_ordinal, offset);
1365 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1366 if max_ordinal == 0 {
1368 return Ok(());
1369 }
1370 depth.increment()?;
1371 let envelope_size = 8;
1372 let bytes_len = max_ordinal as usize * envelope_size;
1373 #[allow(unused_variables)]
1374 let offset = encoder.out_of_line_offset(bytes_len);
1375 let mut _prev_end_offset: usize = 0;
1376 if 1 > max_ordinal {
1377 return Ok(());
1378 }
1379
1380 let cur_offset: usize = (1 - 1) * envelope_size;
1383
1384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1386
1387 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
1392 self.allowlist.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
1393 encoder, offset + cur_offset, depth
1394 )?;
1395
1396 _prev_end_offset = cur_offset + envelope_size;
1397
1398 Ok(())
1399 }
1400 }
1401
1402 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AbiRevisionPolicy {
1403 #[inline(always)]
1404 fn new_empty() -> Self {
1405 Self::default()
1406 }
1407
1408 unsafe fn decode(
1409 &mut self,
1410 decoder: &mut fidl::encoding::Decoder<'_, D>,
1411 offset: usize,
1412 mut depth: fidl::encoding::Depth,
1413 ) -> fidl::Result<()> {
1414 decoder.debug_check_bounds::<Self>(offset);
1415 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1416 None => return Err(fidl::Error::NotNullable),
1417 Some(len) => len,
1418 };
1419 if len == 0 {
1421 return Ok(());
1422 };
1423 depth.increment()?;
1424 let envelope_size = 8;
1425 let bytes_len = len * envelope_size;
1426 let offset = decoder.out_of_line_offset(bytes_len)?;
1427 let mut _next_ordinal_to_read = 0;
1429 let mut next_offset = offset;
1430 let end_offset = offset + bytes_len;
1431 _next_ordinal_to_read += 1;
1432 if next_offset >= end_offset {
1433 return Ok(());
1434 }
1435
1436 while _next_ordinal_to_read < 1 {
1438 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1439 _next_ordinal_to_read += 1;
1440 next_offset += envelope_size;
1441 }
1442
1443 let next_out_of_line = decoder.next_out_of_line();
1444 let handles_before = decoder.remaining_handles();
1445 if let Some((inlined, num_bytes, num_handles)) =
1446 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1447 {
1448 let member_inline_size = <fidl::encoding::Vector<
1449 fidl::encoding::BoundedString<4096>,
1450 128,
1451 > as fidl::encoding::TypeMarker>::inline_size(
1452 decoder.context
1453 );
1454 if inlined != (member_inline_size <= 4) {
1455 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1456 }
1457 let inner_offset;
1458 let mut inner_depth = depth.clone();
1459 if inlined {
1460 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1461 inner_offset = next_offset;
1462 } else {
1463 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1464 inner_depth.increment()?;
1465 }
1466 let val_ref = self.allowlist.get_or_insert_with(|| {
1467 fidl::new_empty!(
1468 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
1469 D
1470 )
1471 });
1472 fidl::decode!(
1473 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
1474 D,
1475 val_ref,
1476 decoder,
1477 inner_offset,
1478 inner_depth
1479 )?;
1480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1481 {
1482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1483 }
1484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1486 }
1487 }
1488
1489 next_offset += envelope_size;
1490
1491 while next_offset < end_offset {
1493 _next_ordinal_to_read += 1;
1494 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1495 next_offset += envelope_size;
1496 }
1497
1498 Ok(())
1499 }
1500 }
1501
1502 impl AllowlistedDirectory {
1503 #[inline(always)]
1504 fn max_ordinal_present(&self) -> u64 {
1505 0
1506 }
1507 }
1508
1509 impl fidl::encoding::ValueTypeMarker for AllowlistedDirectory {
1510 type Borrowed<'a> = &'a Self;
1511 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1512 value
1513 }
1514 }
1515
1516 unsafe impl fidl::encoding::TypeMarker for AllowlistedDirectory {
1517 type Owned = Self;
1518
1519 #[inline(always)]
1520 fn inline_align(_context: fidl::encoding::Context) -> usize {
1521 8
1522 }
1523
1524 #[inline(always)]
1525 fn inline_size(_context: fidl::encoding::Context) -> usize {
1526 16
1527 }
1528 }
1529
1530 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedDirectory, D>
1531 for &AllowlistedDirectory
1532 {
1533 unsafe fn encode(
1534 self,
1535 encoder: &mut fidl::encoding::Encoder<'_, D>,
1536 offset: usize,
1537 mut depth: fidl::encoding::Depth,
1538 ) -> fidl::Result<()> {
1539 encoder.debug_check_bounds::<AllowlistedDirectory>(offset);
1540 let max_ordinal: u64 = self.max_ordinal_present();
1542 encoder.write_num(max_ordinal, offset);
1543 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1544 if max_ordinal == 0 {
1546 return Ok(());
1547 }
1548 depth.increment()?;
1549 let envelope_size = 8;
1550 let bytes_len = max_ordinal as usize * envelope_size;
1551 #[allow(unused_variables)]
1552 let offset = encoder.out_of_line_offset(bytes_len);
1553 let mut _prev_end_offset: usize = 0;
1554
1555 Ok(())
1556 }
1557 }
1558
1559 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedDirectory {
1560 #[inline(always)]
1561 fn new_empty() -> Self {
1562 Self::default()
1563 }
1564
1565 unsafe fn decode(
1566 &mut self,
1567 decoder: &mut fidl::encoding::Decoder<'_, D>,
1568 offset: usize,
1569 mut depth: fidl::encoding::Depth,
1570 ) -> fidl::Result<()> {
1571 decoder.debug_check_bounds::<Self>(offset);
1572 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1573 None => return Err(fidl::Error::NotNullable),
1574 Some(len) => len,
1575 };
1576 if len == 0 {
1578 return Ok(());
1579 };
1580 depth.increment()?;
1581 let envelope_size = 8;
1582 let bytes_len = len * envelope_size;
1583 let offset = decoder.out_of_line_offset(bytes_len)?;
1584 let mut _next_ordinal_to_read = 0;
1586 let mut next_offset = offset;
1587 let end_offset = offset + bytes_len;
1588
1589 while next_offset < end_offset {
1591 _next_ordinal_to_read += 1;
1592 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1593 next_offset += envelope_size;
1594 }
1595
1596 Ok(())
1597 }
1598 }
1599
1600 impl AllowlistedProtocol {
1601 #[inline(always)]
1602 fn max_ordinal_present(&self) -> u64 {
1603 0
1604 }
1605 }
1606
1607 impl fidl::encoding::ValueTypeMarker for AllowlistedProtocol {
1608 type Borrowed<'a> = &'a Self;
1609 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1610 value
1611 }
1612 }
1613
1614 unsafe impl fidl::encoding::TypeMarker for AllowlistedProtocol {
1615 type Owned = Self;
1616
1617 #[inline(always)]
1618 fn inline_align(_context: fidl::encoding::Context) -> usize {
1619 8
1620 }
1621
1622 #[inline(always)]
1623 fn inline_size(_context: fidl::encoding::Context) -> usize {
1624 16
1625 }
1626 }
1627
1628 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedProtocol, D>
1629 for &AllowlistedProtocol
1630 {
1631 unsafe fn encode(
1632 self,
1633 encoder: &mut fidl::encoding::Encoder<'_, D>,
1634 offset: usize,
1635 mut depth: fidl::encoding::Depth,
1636 ) -> fidl::Result<()> {
1637 encoder.debug_check_bounds::<AllowlistedProtocol>(offset);
1638 let max_ordinal: u64 = self.max_ordinal_present();
1640 encoder.write_num(max_ordinal, offset);
1641 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1642 if max_ordinal == 0 {
1644 return Ok(());
1645 }
1646 depth.increment()?;
1647 let envelope_size = 8;
1648 let bytes_len = max_ordinal as usize * envelope_size;
1649 #[allow(unused_variables)]
1650 let offset = encoder.out_of_line_offset(bytes_len);
1651 let mut _prev_end_offset: usize = 0;
1652
1653 Ok(())
1654 }
1655 }
1656
1657 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedProtocol {
1658 #[inline(always)]
1659 fn new_empty() -> Self {
1660 Self::default()
1661 }
1662
1663 unsafe fn decode(
1664 &mut self,
1665 decoder: &mut fidl::encoding::Decoder<'_, D>,
1666 offset: usize,
1667 mut depth: fidl::encoding::Depth,
1668 ) -> fidl::Result<()> {
1669 decoder.debug_check_bounds::<Self>(offset);
1670 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1671 None => return Err(fidl::Error::NotNullable),
1672 Some(len) => len,
1673 };
1674 if len == 0 {
1676 return Ok(());
1677 };
1678 depth.increment()?;
1679 let envelope_size = 8;
1680 let bytes_len = len * envelope_size;
1681 let offset = decoder.out_of_line_offset(bytes_len)?;
1682 let mut _next_ordinal_to_read = 0;
1684 let mut next_offset = offset;
1685 let end_offset = offset + bytes_len;
1686
1687 while next_offset < end_offset {
1689 _next_ordinal_to_read += 1;
1690 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1691 next_offset += envelope_size;
1692 }
1693
1694 Ok(())
1695 }
1696 }
1697
1698 impl AllowlistedResolver {
1699 #[inline(always)]
1700 fn max_ordinal_present(&self) -> u64 {
1701 0
1702 }
1703 }
1704
1705 impl fidl::encoding::ValueTypeMarker for AllowlistedResolver {
1706 type Borrowed<'a> = &'a Self;
1707 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1708 value
1709 }
1710 }
1711
1712 unsafe impl fidl::encoding::TypeMarker for AllowlistedResolver {
1713 type Owned = Self;
1714
1715 #[inline(always)]
1716 fn inline_align(_context: fidl::encoding::Context) -> usize {
1717 8
1718 }
1719
1720 #[inline(always)]
1721 fn inline_size(_context: fidl::encoding::Context) -> usize {
1722 16
1723 }
1724 }
1725
1726 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedResolver, D>
1727 for &AllowlistedResolver
1728 {
1729 unsafe fn encode(
1730 self,
1731 encoder: &mut fidl::encoding::Encoder<'_, D>,
1732 offset: usize,
1733 mut depth: fidl::encoding::Depth,
1734 ) -> fidl::Result<()> {
1735 encoder.debug_check_bounds::<AllowlistedResolver>(offset);
1736 let max_ordinal: u64 = self.max_ordinal_present();
1738 encoder.write_num(max_ordinal, offset);
1739 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1740 if max_ordinal == 0 {
1742 return Ok(());
1743 }
1744 depth.increment()?;
1745 let envelope_size = 8;
1746 let bytes_len = max_ordinal as usize * envelope_size;
1747 #[allow(unused_variables)]
1748 let offset = encoder.out_of_line_offset(bytes_len);
1749 let mut _prev_end_offset: usize = 0;
1750
1751 Ok(())
1752 }
1753 }
1754
1755 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedResolver {
1756 #[inline(always)]
1757 fn new_empty() -> Self {
1758 Self::default()
1759 }
1760
1761 unsafe fn decode(
1762 &mut self,
1763 decoder: &mut fidl::encoding::Decoder<'_, D>,
1764 offset: usize,
1765 mut depth: fidl::encoding::Depth,
1766 ) -> fidl::Result<()> {
1767 decoder.debug_check_bounds::<Self>(offset);
1768 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1769 None => return Err(fidl::Error::NotNullable),
1770 Some(len) => len,
1771 };
1772 if len == 0 {
1774 return Ok(());
1775 };
1776 depth.increment()?;
1777 let envelope_size = 8;
1778 let bytes_len = len * envelope_size;
1779 let offset = decoder.out_of_line_offset(bytes_len)?;
1780 let mut _next_ordinal_to_read = 0;
1782 let mut next_offset = offset;
1783 let end_offset = offset + bytes_len;
1784
1785 while next_offset < end_offset {
1787 _next_ordinal_to_read += 1;
1788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1789 next_offset += envelope_size;
1790 }
1791
1792 Ok(())
1793 }
1794 }
1795
1796 impl AllowlistedRunner {
1797 #[inline(always)]
1798 fn max_ordinal_present(&self) -> u64 {
1799 0
1800 }
1801 }
1802
1803 impl fidl::encoding::ValueTypeMarker for AllowlistedRunner {
1804 type Borrowed<'a> = &'a Self;
1805 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1806 value
1807 }
1808 }
1809
1810 unsafe impl fidl::encoding::TypeMarker for AllowlistedRunner {
1811 type Owned = Self;
1812
1813 #[inline(always)]
1814 fn inline_align(_context: fidl::encoding::Context) -> usize {
1815 8
1816 }
1817
1818 #[inline(always)]
1819 fn inline_size(_context: fidl::encoding::Context) -> usize {
1820 16
1821 }
1822 }
1823
1824 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedRunner, D>
1825 for &AllowlistedRunner
1826 {
1827 unsafe fn encode(
1828 self,
1829 encoder: &mut fidl::encoding::Encoder<'_, D>,
1830 offset: usize,
1831 mut depth: fidl::encoding::Depth,
1832 ) -> fidl::Result<()> {
1833 encoder.debug_check_bounds::<AllowlistedRunner>(offset);
1834 let max_ordinal: u64 = self.max_ordinal_present();
1836 encoder.write_num(max_ordinal, offset);
1837 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1838 if max_ordinal == 0 {
1840 return Ok(());
1841 }
1842 depth.increment()?;
1843 let envelope_size = 8;
1844 let bytes_len = max_ordinal as usize * envelope_size;
1845 #[allow(unused_variables)]
1846 let offset = encoder.out_of_line_offset(bytes_len);
1847 let mut _prev_end_offset: usize = 0;
1848
1849 Ok(())
1850 }
1851 }
1852
1853 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedRunner {
1854 #[inline(always)]
1855 fn new_empty() -> Self {
1856 Self::default()
1857 }
1858
1859 unsafe fn decode(
1860 &mut self,
1861 decoder: &mut fidl::encoding::Decoder<'_, D>,
1862 offset: usize,
1863 mut depth: fidl::encoding::Depth,
1864 ) -> fidl::Result<()> {
1865 decoder.debug_check_bounds::<Self>(offset);
1866 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1867 None => return Err(fidl::Error::NotNullable),
1868 Some(len) => len,
1869 };
1870 if len == 0 {
1872 return Ok(());
1873 };
1874 depth.increment()?;
1875 let envelope_size = 8;
1876 let bytes_len = len * envelope_size;
1877 let offset = decoder.out_of_line_offset(bytes_len)?;
1878 let mut _next_ordinal_to_read = 0;
1880 let mut next_offset = offset;
1881 let end_offset = offset + bytes_len;
1882
1883 while next_offset < end_offset {
1885 _next_ordinal_to_read += 1;
1886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1887 next_offset += envelope_size;
1888 }
1889
1890 Ok(())
1891 }
1892 }
1893
1894 impl AllowlistedService {
1895 #[inline(always)]
1896 fn max_ordinal_present(&self) -> u64 {
1897 0
1898 }
1899 }
1900
1901 impl fidl::encoding::ValueTypeMarker for AllowlistedService {
1902 type Borrowed<'a> = &'a Self;
1903 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1904 value
1905 }
1906 }
1907
1908 unsafe impl fidl::encoding::TypeMarker for AllowlistedService {
1909 type Owned = Self;
1910
1911 #[inline(always)]
1912 fn inline_align(_context: fidl::encoding::Context) -> usize {
1913 8
1914 }
1915
1916 #[inline(always)]
1917 fn inline_size(_context: fidl::encoding::Context) -> usize {
1918 16
1919 }
1920 }
1921
1922 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedService, D>
1923 for &AllowlistedService
1924 {
1925 unsafe fn encode(
1926 self,
1927 encoder: &mut fidl::encoding::Encoder<'_, D>,
1928 offset: usize,
1929 mut depth: fidl::encoding::Depth,
1930 ) -> fidl::Result<()> {
1931 encoder.debug_check_bounds::<AllowlistedService>(offset);
1932 let max_ordinal: u64 = self.max_ordinal_present();
1934 encoder.write_num(max_ordinal, offset);
1935 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1936 if max_ordinal == 0 {
1938 return Ok(());
1939 }
1940 depth.increment()?;
1941 let envelope_size = 8;
1942 let bytes_len = max_ordinal as usize * envelope_size;
1943 #[allow(unused_variables)]
1944 let offset = encoder.out_of_line_offset(bytes_len);
1945 let mut _prev_end_offset: usize = 0;
1946
1947 Ok(())
1948 }
1949 }
1950
1951 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedService {
1952 #[inline(always)]
1953 fn new_empty() -> Self {
1954 Self::default()
1955 }
1956
1957 unsafe fn decode(
1958 &mut self,
1959 decoder: &mut fidl::encoding::Decoder<'_, D>,
1960 offset: usize,
1961 mut depth: fidl::encoding::Depth,
1962 ) -> fidl::Result<()> {
1963 decoder.debug_check_bounds::<Self>(offset);
1964 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1965 None => return Err(fidl::Error::NotNullable),
1966 Some(len) => len,
1967 };
1968 if len == 0 {
1970 return Ok(());
1971 };
1972 depth.increment()?;
1973 let envelope_size = 8;
1974 let bytes_len = len * envelope_size;
1975 let offset = decoder.out_of_line_offset(bytes_len)?;
1976 let mut _next_ordinal_to_read = 0;
1978 let mut next_offset = offset;
1979 let end_offset = offset + bytes_len;
1980
1981 while next_offset < end_offset {
1983 _next_ordinal_to_read += 1;
1984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1985 next_offset += envelope_size;
1986 }
1987
1988 Ok(())
1989 }
1990 }
1991
1992 impl AllowlistedStorage {
1993 #[inline(always)]
1994 fn max_ordinal_present(&self) -> u64 {
1995 0
1996 }
1997 }
1998
1999 impl fidl::encoding::ValueTypeMarker for AllowlistedStorage {
2000 type Borrowed<'a> = &'a Self;
2001 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2002 value
2003 }
2004 }
2005
2006 unsafe impl fidl::encoding::TypeMarker for AllowlistedStorage {
2007 type Owned = Self;
2008
2009 #[inline(always)]
2010 fn inline_align(_context: fidl::encoding::Context) -> usize {
2011 8
2012 }
2013
2014 #[inline(always)]
2015 fn inline_size(_context: fidl::encoding::Context) -> usize {
2016 16
2017 }
2018 }
2019
2020 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedStorage, D>
2021 for &AllowlistedStorage
2022 {
2023 unsafe fn encode(
2024 self,
2025 encoder: &mut fidl::encoding::Encoder<'_, D>,
2026 offset: usize,
2027 mut depth: fidl::encoding::Depth,
2028 ) -> fidl::Result<()> {
2029 encoder.debug_check_bounds::<AllowlistedStorage>(offset);
2030 let max_ordinal: u64 = self.max_ordinal_present();
2032 encoder.write_num(max_ordinal, offset);
2033 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2034 if max_ordinal == 0 {
2036 return Ok(());
2037 }
2038 depth.increment()?;
2039 let envelope_size = 8;
2040 let bytes_len = max_ordinal as usize * envelope_size;
2041 #[allow(unused_variables)]
2042 let offset = encoder.out_of_line_offset(bytes_len);
2043 let mut _prev_end_offset: usize = 0;
2044
2045 Ok(())
2046 }
2047 }
2048
2049 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedStorage {
2050 #[inline(always)]
2051 fn new_empty() -> Self {
2052 Self::default()
2053 }
2054
2055 unsafe fn decode(
2056 &mut self,
2057 decoder: &mut fidl::encoding::Decoder<'_, D>,
2058 offset: usize,
2059 mut depth: fidl::encoding::Depth,
2060 ) -> fidl::Result<()> {
2061 decoder.debug_check_bounds::<Self>(offset);
2062 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2063 None => return Err(fidl::Error::NotNullable),
2064 Some(len) => len,
2065 };
2066 if len == 0 {
2068 return Ok(());
2069 };
2070 depth.increment()?;
2071 let envelope_size = 8;
2072 let bytes_len = len * envelope_size;
2073 let offset = decoder.out_of_line_offset(bytes_len)?;
2074 let mut _next_ordinal_to_read = 0;
2076 let mut next_offset = offset;
2077 let end_offset = offset + bytes_len;
2078
2079 while next_offset < end_offset {
2081 _next_ordinal_to_read += 1;
2082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2083 next_offset += envelope_size;
2084 }
2085
2086 Ok(())
2087 }
2088 }
2089
2090 impl AnonymizedAggregate {
2091 #[inline(always)]
2092 fn max_ordinal_present(&self) -> u64 {
2093 if let Some(_) = self.instances {
2094 return 5;
2095 }
2096 if let Some(_) = self.sources {
2097 return 4;
2098 }
2099 if let Some(_) = self.members {
2100 return 3;
2101 }
2102 if let Some(_) = self.moniker {
2103 return 2;
2104 }
2105 if let Some(_) = self.capability {
2106 return 1;
2107 }
2108 0
2109 }
2110 }
2111
2112 impl fidl::encoding::ValueTypeMarker for AnonymizedAggregate {
2113 type Borrowed<'a> = &'a Self;
2114 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2115 value
2116 }
2117 }
2118
2119 unsafe impl fidl::encoding::TypeMarker for AnonymizedAggregate {
2120 type Owned = Self;
2121
2122 #[inline(always)]
2123 fn inline_align(_context: fidl::encoding::Context) -> usize {
2124 8
2125 }
2126
2127 #[inline(always)]
2128 fn inline_size(_context: fidl::encoding::Context) -> usize {
2129 16
2130 }
2131 }
2132
2133 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AnonymizedAggregate, D>
2134 for &AnonymizedAggregate
2135 {
2136 unsafe fn encode(
2137 self,
2138 encoder: &mut fidl::encoding::Encoder<'_, D>,
2139 offset: usize,
2140 mut depth: fidl::encoding::Depth,
2141 ) -> fidl::Result<()> {
2142 encoder.debug_check_bounds::<AnonymizedAggregate>(offset);
2143 let max_ordinal: u64 = self.max_ordinal_present();
2145 encoder.write_num(max_ordinal, offset);
2146 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2147 if max_ordinal == 0 {
2149 return Ok(());
2150 }
2151 depth.increment()?;
2152 let envelope_size = 8;
2153 let bytes_len = max_ordinal as usize * envelope_size;
2154 #[allow(unused_variables)]
2155 let offset = encoder.out_of_line_offset(bytes_len);
2156 let mut _prev_end_offset: usize = 0;
2157 if 1 > max_ordinal {
2158 return Ok(());
2159 }
2160
2161 let cur_offset: usize = (1 - 1) * envelope_size;
2164
2165 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2167
2168 fidl::encoding::encode_in_envelope_optional::<AggregateCapability, D>(
2173 self.capability
2174 .as_ref()
2175 .map(<AggregateCapability as fidl::encoding::ValueTypeMarker>::borrow),
2176 encoder,
2177 offset + cur_offset,
2178 depth,
2179 )?;
2180
2181 _prev_end_offset = cur_offset + envelope_size;
2182 if 2 > max_ordinal {
2183 return Ok(());
2184 }
2185
2186 let cur_offset: usize = (2 - 1) * envelope_size;
2189
2190 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2192
2193 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
2198 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
2199 encoder, offset + cur_offset, depth
2200 )?;
2201
2202 _prev_end_offset = cur_offset + envelope_size;
2203 if 3 > max_ordinal {
2204 return Ok(());
2205 }
2206
2207 let cur_offset: usize = (3 - 1) * envelope_size;
2210
2211 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2213
2214 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<AggregateMember>, D>(
2219 self.members.as_ref().map(<fidl::encoding::UnboundedVector<AggregateMember> as fidl::encoding::ValueTypeMarker>::borrow),
2220 encoder, offset + cur_offset, depth
2221 )?;
2222
2223 _prev_end_offset = cur_offset + envelope_size;
2224 if 4 > max_ordinal {
2225 return Ok(());
2226 }
2227
2228 let cur_offset: usize = (4 - 1) * envelope_size;
2231
2232 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2234
2235 fidl::encoding::encode_in_envelope_optional::<Sources, D>(
2240 self.sources.as_ref().map(<Sources as fidl::encoding::ValueTypeMarker>::borrow),
2241 encoder,
2242 offset + cur_offset,
2243 depth,
2244 )?;
2245
2246 _prev_end_offset = cur_offset + envelope_size;
2247 if 5 > max_ordinal {
2248 return Ok(());
2249 }
2250
2251 let cur_offset: usize = (5 - 1) * envelope_size;
2254
2255 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2257
2258 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_sys2__common::ServiceInstance>, D>(
2263 self.instances.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_sys2__common::ServiceInstance> as fidl::encoding::ValueTypeMarker>::borrow),
2264 encoder, offset + cur_offset, depth
2265 )?;
2266
2267 _prev_end_offset = cur_offset + envelope_size;
2268
2269 Ok(())
2270 }
2271 }
2272
2273 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AnonymizedAggregate {
2274 #[inline(always)]
2275 fn new_empty() -> Self {
2276 Self::default()
2277 }
2278
2279 unsafe fn decode(
2280 &mut self,
2281 decoder: &mut fidl::encoding::Decoder<'_, D>,
2282 offset: usize,
2283 mut depth: fidl::encoding::Depth,
2284 ) -> fidl::Result<()> {
2285 decoder.debug_check_bounds::<Self>(offset);
2286 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2287 None => return Err(fidl::Error::NotNullable),
2288 Some(len) => len,
2289 };
2290 if len == 0 {
2292 return Ok(());
2293 };
2294 depth.increment()?;
2295 let envelope_size = 8;
2296 let bytes_len = len * envelope_size;
2297 let offset = decoder.out_of_line_offset(bytes_len)?;
2298 let mut _next_ordinal_to_read = 0;
2300 let mut next_offset = offset;
2301 let end_offset = offset + bytes_len;
2302 _next_ordinal_to_read += 1;
2303 if next_offset >= end_offset {
2304 return Ok(());
2305 }
2306
2307 while _next_ordinal_to_read < 1 {
2309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2310 _next_ordinal_to_read += 1;
2311 next_offset += envelope_size;
2312 }
2313
2314 let next_out_of_line = decoder.next_out_of_line();
2315 let handles_before = decoder.remaining_handles();
2316 if let Some((inlined, num_bytes, num_handles)) =
2317 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2318 {
2319 let member_inline_size =
2320 <AggregateCapability as fidl::encoding::TypeMarker>::inline_size(
2321 decoder.context,
2322 );
2323 if inlined != (member_inline_size <= 4) {
2324 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2325 }
2326 let inner_offset;
2327 let mut inner_depth = depth.clone();
2328 if inlined {
2329 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2330 inner_offset = next_offset;
2331 } else {
2332 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2333 inner_depth.increment()?;
2334 }
2335 let val_ref =
2336 self.capability.get_or_insert_with(|| fidl::new_empty!(AggregateCapability, D));
2337 fidl::decode!(AggregateCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
2338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2339 {
2340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2341 }
2342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2344 }
2345 }
2346
2347 next_offset += envelope_size;
2348 _next_ordinal_to_read += 1;
2349 if next_offset >= end_offset {
2350 return Ok(());
2351 }
2352
2353 while _next_ordinal_to_read < 2 {
2355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2356 _next_ordinal_to_read += 1;
2357 next_offset += envelope_size;
2358 }
2359
2360 let next_out_of_line = decoder.next_out_of_line();
2361 let handles_before = decoder.remaining_handles();
2362 if let Some((inlined, num_bytes, num_handles)) =
2363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2364 {
2365 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2366 if inlined != (member_inline_size <= 4) {
2367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2368 }
2369 let inner_offset;
2370 let mut inner_depth = depth.clone();
2371 if inlined {
2372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2373 inner_offset = next_offset;
2374 } else {
2375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2376 inner_depth.increment()?;
2377 }
2378 let val_ref = self.moniker.get_or_insert_with(|| {
2379 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
2380 });
2381 fidl::decode!(
2382 fidl::encoding::BoundedString<4096>,
2383 D,
2384 val_ref,
2385 decoder,
2386 inner_offset,
2387 inner_depth
2388 )?;
2389 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2390 {
2391 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2392 }
2393 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2394 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2395 }
2396 }
2397
2398 next_offset += envelope_size;
2399 _next_ordinal_to_read += 1;
2400 if next_offset >= end_offset {
2401 return Ok(());
2402 }
2403
2404 while _next_ordinal_to_read < 3 {
2406 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2407 _next_ordinal_to_read += 1;
2408 next_offset += envelope_size;
2409 }
2410
2411 let next_out_of_line = decoder.next_out_of_line();
2412 let handles_before = decoder.remaining_handles();
2413 if let Some((inlined, num_bytes, num_handles)) =
2414 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2415 {
2416 let member_inline_size = <fidl::encoding::UnboundedVector<AggregateMember> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2417 if inlined != (member_inline_size <= 4) {
2418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2419 }
2420 let inner_offset;
2421 let mut inner_depth = depth.clone();
2422 if inlined {
2423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2424 inner_offset = next_offset;
2425 } else {
2426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2427 inner_depth.increment()?;
2428 }
2429 let val_ref = self.members.get_or_insert_with(|| {
2430 fidl::new_empty!(fidl::encoding::UnboundedVector<AggregateMember>, D)
2431 });
2432 fidl::decode!(
2433 fidl::encoding::UnboundedVector<AggregateMember>,
2434 D,
2435 val_ref,
2436 decoder,
2437 inner_offset,
2438 inner_depth
2439 )?;
2440 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2441 {
2442 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2443 }
2444 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2445 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2446 }
2447 }
2448
2449 next_offset += envelope_size;
2450 _next_ordinal_to_read += 1;
2451 if next_offset >= end_offset {
2452 return Ok(());
2453 }
2454
2455 while _next_ordinal_to_read < 4 {
2457 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2458 _next_ordinal_to_read += 1;
2459 next_offset += envelope_size;
2460 }
2461
2462 let next_out_of_line = decoder.next_out_of_line();
2463 let handles_before = decoder.remaining_handles();
2464 if let Some((inlined, num_bytes, num_handles)) =
2465 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2466 {
2467 let member_inline_size =
2468 <Sources as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2469 if inlined != (member_inline_size <= 4) {
2470 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2471 }
2472 let inner_offset;
2473 let mut inner_depth = depth.clone();
2474 if inlined {
2475 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2476 inner_offset = next_offset;
2477 } else {
2478 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2479 inner_depth.increment()?;
2480 }
2481 let val_ref = self.sources.get_or_insert_with(|| fidl::new_empty!(Sources, D));
2482 fidl::decode!(Sources, D, val_ref, decoder, inner_offset, inner_depth)?;
2483 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2484 {
2485 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2486 }
2487 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2488 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2489 }
2490 }
2491
2492 next_offset += envelope_size;
2493 _next_ordinal_to_read += 1;
2494 if next_offset >= end_offset {
2495 return Ok(());
2496 }
2497
2498 while _next_ordinal_to_read < 5 {
2500 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2501 _next_ordinal_to_read += 1;
2502 next_offset += envelope_size;
2503 }
2504
2505 let next_out_of_line = decoder.next_out_of_line();
2506 let handles_before = decoder.remaining_handles();
2507 if let Some((inlined, num_bytes, num_handles)) =
2508 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2509 {
2510 let member_inline_size = <fidl::encoding::UnboundedVector<
2511 fidl_fuchsia_sys2__common::ServiceInstance,
2512 > as fidl::encoding::TypeMarker>::inline_size(
2513 decoder.context
2514 );
2515 if inlined != (member_inline_size <= 4) {
2516 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2517 }
2518 let inner_offset;
2519 let mut inner_depth = depth.clone();
2520 if inlined {
2521 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2522 inner_offset = next_offset;
2523 } else {
2524 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2525 inner_depth.increment()?;
2526 }
2527 let val_ref = self.instances.get_or_insert_with(|| {
2528 fidl::new_empty!(
2529 fidl::encoding::UnboundedVector<fidl_fuchsia_sys2__common::ServiceInstance>,
2530 D
2531 )
2532 });
2533 fidl::decode!(
2534 fidl::encoding::UnboundedVector<fidl_fuchsia_sys2__common::ServiceInstance>,
2535 D,
2536 val_ref,
2537 decoder,
2538 inner_offset,
2539 inner_depth
2540 )?;
2541 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2542 {
2543 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2544 }
2545 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2546 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2547 }
2548 }
2549
2550 next_offset += envelope_size;
2551
2552 while next_offset < end_offset {
2554 _next_ordinal_to_read += 1;
2555 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2556 next_offset += envelope_size;
2557 }
2558
2559 Ok(())
2560 }
2561 }
2562
2563 impl Builtin {
2564 #[inline(always)]
2565 fn max_ordinal_present(&self) -> u64 {
2566 if let Some(_) = self.capability {
2567 return 1;
2568 }
2569 0
2570 }
2571 }
2572
2573 impl fidl::encoding::ValueTypeMarker for Builtin {
2574 type Borrowed<'a> = &'a Self;
2575 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2576 value
2577 }
2578 }
2579
2580 unsafe impl fidl::encoding::TypeMarker for Builtin {
2581 type Owned = Self;
2582
2583 #[inline(always)]
2584 fn inline_align(_context: fidl::encoding::Context) -> usize {
2585 8
2586 }
2587
2588 #[inline(always)]
2589 fn inline_size(_context: fidl::encoding::Context) -> usize {
2590 16
2591 }
2592 }
2593
2594 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Builtin, D> for &Builtin {
2595 unsafe fn encode(
2596 self,
2597 encoder: &mut fidl::encoding::Encoder<'_, D>,
2598 offset: usize,
2599 mut depth: fidl::encoding::Depth,
2600 ) -> fidl::Result<()> {
2601 encoder.debug_check_bounds::<Builtin>(offset);
2602 let max_ordinal: u64 = self.max_ordinal_present();
2604 encoder.write_num(max_ordinal, offset);
2605 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2606 if max_ordinal == 0 {
2608 return Ok(());
2609 }
2610 depth.increment()?;
2611 let envelope_size = 8;
2612 let bytes_len = max_ordinal as usize * envelope_size;
2613 #[allow(unused_variables)]
2614 let offset = encoder.out_of_line_offset(bytes_len);
2615 let mut _prev_end_offset: usize = 0;
2616 if 1 > max_ordinal {
2617 return Ok(());
2618 }
2619
2620 let cur_offset: usize = (1 - 1) * envelope_size;
2623
2624 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2626
2627 fidl::encoding::encode_in_envelope_optional::<InternalCapability, D>(
2632 self.capability
2633 .as_ref()
2634 .map(<InternalCapability as fidl::encoding::ValueTypeMarker>::borrow),
2635 encoder,
2636 offset + cur_offset,
2637 depth,
2638 )?;
2639
2640 _prev_end_offset = cur_offset + envelope_size;
2641
2642 Ok(())
2643 }
2644 }
2645
2646 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Builtin {
2647 #[inline(always)]
2648 fn new_empty() -> Self {
2649 Self::default()
2650 }
2651
2652 unsafe fn decode(
2653 &mut self,
2654 decoder: &mut fidl::encoding::Decoder<'_, D>,
2655 offset: usize,
2656 mut depth: fidl::encoding::Depth,
2657 ) -> fidl::Result<()> {
2658 decoder.debug_check_bounds::<Self>(offset);
2659 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2660 None => return Err(fidl::Error::NotNullable),
2661 Some(len) => len,
2662 };
2663 if len == 0 {
2665 return Ok(());
2666 };
2667 depth.increment()?;
2668 let envelope_size = 8;
2669 let bytes_len = len * envelope_size;
2670 let offset = decoder.out_of_line_offset(bytes_len)?;
2671 let mut _next_ordinal_to_read = 0;
2673 let mut next_offset = offset;
2674 let end_offset = offset + bytes_len;
2675 _next_ordinal_to_read += 1;
2676 if next_offset >= end_offset {
2677 return Ok(());
2678 }
2679
2680 while _next_ordinal_to_read < 1 {
2682 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2683 _next_ordinal_to_read += 1;
2684 next_offset += envelope_size;
2685 }
2686
2687 let next_out_of_line = decoder.next_out_of_line();
2688 let handles_before = decoder.remaining_handles();
2689 if let Some((inlined, num_bytes, num_handles)) =
2690 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2691 {
2692 let member_inline_size =
2693 <InternalCapability as fidl::encoding::TypeMarker>::inline_size(
2694 decoder.context,
2695 );
2696 if inlined != (member_inline_size <= 4) {
2697 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2698 }
2699 let inner_offset;
2700 let mut inner_depth = depth.clone();
2701 if inlined {
2702 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2703 inner_offset = next_offset;
2704 } else {
2705 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2706 inner_depth.increment()?;
2707 }
2708 let val_ref =
2709 self.capability.get_or_insert_with(|| fidl::new_empty!(InternalCapability, D));
2710 fidl::decode!(InternalCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
2711 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2712 {
2713 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2714 }
2715 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2716 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2717 }
2718 }
2719
2720 next_offset += envelope_size;
2721
2722 while next_offset < end_offset {
2724 _next_ordinal_to_read += 1;
2725 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2726 next_offset += envelope_size;
2727 }
2728
2729 Ok(())
2730 }
2731 }
2732
2733 impl Capability {
2734 #[inline(always)]
2735 fn max_ordinal_present(&self) -> u64 {
2736 if let Some(_) = self.moniker {
2737 return 2;
2738 }
2739 if let Some(_) = self.source_capability {
2740 return 1;
2741 }
2742 0
2743 }
2744 }
2745
2746 impl fidl::encoding::ValueTypeMarker for Capability {
2747 type Borrowed<'a> = &'a Self;
2748 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2749 value
2750 }
2751 }
2752
2753 unsafe impl fidl::encoding::TypeMarker for Capability {
2754 type Owned = Self;
2755
2756 #[inline(always)]
2757 fn inline_align(_context: fidl::encoding::Context) -> usize {
2758 8
2759 }
2760
2761 #[inline(always)]
2762 fn inline_size(_context: fidl::encoding::Context) -> usize {
2763 16
2764 }
2765 }
2766
2767 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Capability, D>
2768 for &Capability
2769 {
2770 unsafe fn encode(
2771 self,
2772 encoder: &mut fidl::encoding::Encoder<'_, D>,
2773 offset: usize,
2774 mut depth: fidl::encoding::Depth,
2775 ) -> fidl::Result<()> {
2776 encoder.debug_check_bounds::<Capability>(offset);
2777 let max_ordinal: u64 = self.max_ordinal_present();
2779 encoder.write_num(max_ordinal, offset);
2780 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2781 if max_ordinal == 0 {
2783 return Ok(());
2784 }
2785 depth.increment()?;
2786 let envelope_size = 8;
2787 let bytes_len = max_ordinal as usize * envelope_size;
2788 #[allow(unused_variables)]
2789 let offset = encoder.out_of_line_offset(bytes_len);
2790 let mut _prev_end_offset: usize = 0;
2791 if 1 > max_ordinal {
2792 return Ok(());
2793 }
2794
2795 let cur_offset: usize = (1 - 1) * envelope_size;
2798
2799 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2801
2802 fidl::encoding::encode_in_envelope_optional::<ComponentCapability, D>(
2807 self.source_capability
2808 .as_ref()
2809 .map(<ComponentCapability as fidl::encoding::ValueTypeMarker>::borrow),
2810 encoder,
2811 offset + cur_offset,
2812 depth,
2813 )?;
2814
2815 _prev_end_offset = cur_offset + envelope_size;
2816 if 2 > max_ordinal {
2817 return Ok(());
2818 }
2819
2820 let cur_offset: usize = (2 - 1) * envelope_size;
2823
2824 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2826
2827 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
2832 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
2833 encoder, offset + cur_offset, depth
2834 )?;
2835
2836 _prev_end_offset = cur_offset + envelope_size;
2837
2838 Ok(())
2839 }
2840 }
2841
2842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Capability {
2843 #[inline(always)]
2844 fn new_empty() -> Self {
2845 Self::default()
2846 }
2847
2848 unsafe fn decode(
2849 &mut self,
2850 decoder: &mut fidl::encoding::Decoder<'_, D>,
2851 offset: usize,
2852 mut depth: fidl::encoding::Depth,
2853 ) -> fidl::Result<()> {
2854 decoder.debug_check_bounds::<Self>(offset);
2855 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2856 None => return Err(fidl::Error::NotNullable),
2857 Some(len) => len,
2858 };
2859 if len == 0 {
2861 return Ok(());
2862 };
2863 depth.increment()?;
2864 let envelope_size = 8;
2865 let bytes_len = len * envelope_size;
2866 let offset = decoder.out_of_line_offset(bytes_len)?;
2867 let mut _next_ordinal_to_read = 0;
2869 let mut next_offset = offset;
2870 let end_offset = offset + bytes_len;
2871 _next_ordinal_to_read += 1;
2872 if next_offset >= end_offset {
2873 return Ok(());
2874 }
2875
2876 while _next_ordinal_to_read < 1 {
2878 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2879 _next_ordinal_to_read += 1;
2880 next_offset += envelope_size;
2881 }
2882
2883 let next_out_of_line = decoder.next_out_of_line();
2884 let handles_before = decoder.remaining_handles();
2885 if let Some((inlined, num_bytes, num_handles)) =
2886 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2887 {
2888 let member_inline_size =
2889 <ComponentCapability as fidl::encoding::TypeMarker>::inline_size(
2890 decoder.context,
2891 );
2892 if inlined != (member_inline_size <= 4) {
2893 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2894 }
2895 let inner_offset;
2896 let mut inner_depth = depth.clone();
2897 if inlined {
2898 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2899 inner_offset = next_offset;
2900 } else {
2901 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2902 inner_depth.increment()?;
2903 }
2904 let val_ref = self
2905 .source_capability
2906 .get_or_insert_with(|| fidl::new_empty!(ComponentCapability, D));
2907 fidl::decode!(ComponentCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
2908 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2909 {
2910 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2911 }
2912 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2913 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2914 }
2915 }
2916
2917 next_offset += envelope_size;
2918 _next_ordinal_to_read += 1;
2919 if next_offset >= end_offset {
2920 return Ok(());
2921 }
2922
2923 while _next_ordinal_to_read < 2 {
2925 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2926 _next_ordinal_to_read += 1;
2927 next_offset += envelope_size;
2928 }
2929
2930 let next_out_of_line = decoder.next_out_of_line();
2931 let handles_before = decoder.remaining_handles();
2932 if let Some((inlined, num_bytes, num_handles)) =
2933 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2934 {
2935 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2936 if inlined != (member_inline_size <= 4) {
2937 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2938 }
2939 let inner_offset;
2940 let mut inner_depth = depth.clone();
2941 if inlined {
2942 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2943 inner_offset = next_offset;
2944 } else {
2945 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2946 inner_depth.increment()?;
2947 }
2948 let val_ref = self.moniker.get_or_insert_with(|| {
2949 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
2950 });
2951 fidl::decode!(
2952 fidl::encoding::BoundedString<4096>,
2953 D,
2954 val_ref,
2955 decoder,
2956 inner_offset,
2957 inner_depth
2958 )?;
2959 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2960 {
2961 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2962 }
2963 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2964 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2965 }
2966 }
2967
2968 next_offset += envelope_size;
2969
2970 while next_offset < end_offset {
2972 _next_ordinal_to_read += 1;
2973 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2974 next_offset += envelope_size;
2975 }
2976
2977 Ok(())
2978 }
2979 }
2980
2981 impl CapabilityAllowlistEntry {
2982 #[inline(always)]
2983 fn max_ordinal_present(&self) -> u64 {
2984 if let Some(_) = self.source {
2985 return 5;
2986 }
2987 if let Some(_) = self.target_monikers {
2988 return 4;
2989 }
2990 if let Some(_) = self.capability {
2991 return 3;
2992 }
2993 if let Some(_) = self.source_name {
2994 return 2;
2995 }
2996 if let Some(_) = self.source_moniker {
2997 return 1;
2998 }
2999 0
3000 }
3001 }
3002
3003 impl fidl::encoding::ValueTypeMarker for CapabilityAllowlistEntry {
3004 type Borrowed<'a> = &'a Self;
3005 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3006 value
3007 }
3008 }
3009
3010 unsafe impl fidl::encoding::TypeMarker for CapabilityAllowlistEntry {
3011 type Owned = Self;
3012
3013 #[inline(always)]
3014 fn inline_align(_context: fidl::encoding::Context) -> usize {
3015 8
3016 }
3017
3018 #[inline(always)]
3019 fn inline_size(_context: fidl::encoding::Context) -> usize {
3020 16
3021 }
3022 }
3023
3024 unsafe impl<D: fidl::encoding::ResourceDialect>
3025 fidl::encoding::Encode<CapabilityAllowlistEntry, D> for &CapabilityAllowlistEntry
3026 {
3027 unsafe fn encode(
3028 self,
3029 encoder: &mut fidl::encoding::Encoder<'_, D>,
3030 offset: usize,
3031 mut depth: fidl::encoding::Depth,
3032 ) -> fidl::Result<()> {
3033 encoder.debug_check_bounds::<CapabilityAllowlistEntry>(offset);
3034 let max_ordinal: u64 = self.max_ordinal_present();
3036 encoder.write_num(max_ordinal, offset);
3037 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3038 if max_ordinal == 0 {
3040 return Ok(());
3041 }
3042 depth.increment()?;
3043 let envelope_size = 8;
3044 let bytes_len = max_ordinal as usize * envelope_size;
3045 #[allow(unused_variables)]
3046 let offset = encoder.out_of_line_offset(bytes_len);
3047 let mut _prev_end_offset: usize = 0;
3048 if 1 > max_ordinal {
3049 return Ok(());
3050 }
3051
3052 let cur_offset: usize = (1 - 1) * envelope_size;
3055
3056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3058
3059 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
3064 self.source_moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
3065 encoder, offset + cur_offset, depth
3066 )?;
3067
3068 _prev_end_offset = cur_offset + envelope_size;
3069 if 2 > max_ordinal {
3070 return Ok(());
3071 }
3072
3073 let cur_offset: usize = (2 - 1) * envelope_size;
3076
3077 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3079
3080 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3085 self.source_name.as_ref().map(
3086 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3087 ),
3088 encoder,
3089 offset + cur_offset,
3090 depth,
3091 )?;
3092
3093 _prev_end_offset = cur_offset + envelope_size;
3094 if 3 > max_ordinal {
3095 return Ok(());
3096 }
3097
3098 let cur_offset: usize = (3 - 1) * envelope_size;
3101
3102 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3104
3105 fidl::encoding::encode_in_envelope_optional::<AllowlistedCapability, D>(
3110 self.capability
3111 .as_ref()
3112 .map(<AllowlistedCapability as fidl::encoding::ValueTypeMarker>::borrow),
3113 encoder,
3114 offset + cur_offset,
3115 depth,
3116 )?;
3117
3118 _prev_end_offset = cur_offset + envelope_size;
3119 if 4 > max_ordinal {
3120 return Ok(());
3121 }
3122
3123 let cur_offset: usize = (4 - 1) * envelope_size;
3126
3127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3129
3130 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
3135 self.target_monikers.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
3136 encoder, offset + cur_offset, depth
3137 )?;
3138
3139 _prev_end_offset = cur_offset + envelope_size;
3140 if 5 > max_ordinal {
3141 return Ok(());
3142 }
3143
3144 let cur_offset: usize = (5 - 1) * envelope_size;
3147
3148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3150
3151 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Ref, D>(
3156 self.source.as_ref().map(<fidl_fuchsia_component_decl__common::Ref as fidl::encoding::ValueTypeMarker>::borrow),
3157 encoder, offset + cur_offset, depth
3158 )?;
3159
3160 _prev_end_offset = cur_offset + envelope_size;
3161
3162 Ok(())
3163 }
3164 }
3165
3166 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3167 for CapabilityAllowlistEntry
3168 {
3169 #[inline(always)]
3170 fn new_empty() -> Self {
3171 Self::default()
3172 }
3173
3174 unsafe fn decode(
3175 &mut self,
3176 decoder: &mut fidl::encoding::Decoder<'_, D>,
3177 offset: usize,
3178 mut depth: fidl::encoding::Depth,
3179 ) -> fidl::Result<()> {
3180 decoder.debug_check_bounds::<Self>(offset);
3181 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3182 None => return Err(fidl::Error::NotNullable),
3183 Some(len) => len,
3184 };
3185 if len == 0 {
3187 return Ok(());
3188 };
3189 depth.increment()?;
3190 let envelope_size = 8;
3191 let bytes_len = len * envelope_size;
3192 let offset = decoder.out_of_line_offset(bytes_len)?;
3193 let mut _next_ordinal_to_read = 0;
3195 let mut next_offset = offset;
3196 let end_offset = offset + bytes_len;
3197 _next_ordinal_to_read += 1;
3198 if next_offset >= end_offset {
3199 return Ok(());
3200 }
3201
3202 while _next_ordinal_to_read < 1 {
3204 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3205 _next_ordinal_to_read += 1;
3206 next_offset += envelope_size;
3207 }
3208
3209 let next_out_of_line = decoder.next_out_of_line();
3210 let handles_before = decoder.remaining_handles();
3211 if let Some((inlined, num_bytes, num_handles)) =
3212 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3213 {
3214 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3215 if inlined != (member_inline_size <= 4) {
3216 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3217 }
3218 let inner_offset;
3219 let mut inner_depth = depth.clone();
3220 if inlined {
3221 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3222 inner_offset = next_offset;
3223 } else {
3224 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3225 inner_depth.increment()?;
3226 }
3227 let val_ref = self.source_moniker.get_or_insert_with(|| {
3228 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
3229 });
3230 fidl::decode!(
3231 fidl::encoding::BoundedString<4096>,
3232 D,
3233 val_ref,
3234 decoder,
3235 inner_offset,
3236 inner_depth
3237 )?;
3238 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3239 {
3240 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3241 }
3242 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3243 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3244 }
3245 }
3246
3247 next_offset += envelope_size;
3248 _next_ordinal_to_read += 1;
3249 if next_offset >= end_offset {
3250 return Ok(());
3251 }
3252
3253 while _next_ordinal_to_read < 2 {
3255 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3256 _next_ordinal_to_read += 1;
3257 next_offset += envelope_size;
3258 }
3259
3260 let next_out_of_line = decoder.next_out_of_line();
3261 let handles_before = decoder.remaining_handles();
3262 if let Some((inlined, num_bytes, num_handles)) =
3263 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3264 {
3265 let member_inline_size =
3266 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3267 decoder.context,
3268 );
3269 if inlined != (member_inline_size <= 4) {
3270 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3271 }
3272 let inner_offset;
3273 let mut inner_depth = depth.clone();
3274 if inlined {
3275 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3276 inner_offset = next_offset;
3277 } else {
3278 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3279 inner_depth.increment()?;
3280 }
3281 let val_ref = self
3282 .source_name
3283 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3284 fidl::decode!(
3285 fidl::encoding::BoundedString<255>,
3286 D,
3287 val_ref,
3288 decoder,
3289 inner_offset,
3290 inner_depth
3291 )?;
3292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3293 {
3294 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3295 }
3296 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3297 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3298 }
3299 }
3300
3301 next_offset += envelope_size;
3302 _next_ordinal_to_read += 1;
3303 if next_offset >= end_offset {
3304 return Ok(());
3305 }
3306
3307 while _next_ordinal_to_read < 3 {
3309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3310 _next_ordinal_to_read += 1;
3311 next_offset += envelope_size;
3312 }
3313
3314 let next_out_of_line = decoder.next_out_of_line();
3315 let handles_before = decoder.remaining_handles();
3316 if let Some((inlined, num_bytes, num_handles)) =
3317 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3318 {
3319 let member_inline_size =
3320 <AllowlistedCapability as fidl::encoding::TypeMarker>::inline_size(
3321 decoder.context,
3322 );
3323 if inlined != (member_inline_size <= 4) {
3324 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3325 }
3326 let inner_offset;
3327 let mut inner_depth = depth.clone();
3328 if inlined {
3329 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3330 inner_offset = next_offset;
3331 } else {
3332 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3333 inner_depth.increment()?;
3334 }
3335 let val_ref = self
3336 .capability
3337 .get_or_insert_with(|| fidl::new_empty!(AllowlistedCapability, D));
3338 fidl::decode!(
3339 AllowlistedCapability,
3340 D,
3341 val_ref,
3342 decoder,
3343 inner_offset,
3344 inner_depth
3345 )?;
3346 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3347 {
3348 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3349 }
3350 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3351 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3352 }
3353 }
3354
3355 next_offset += envelope_size;
3356 _next_ordinal_to_read += 1;
3357 if next_offset >= end_offset {
3358 return Ok(());
3359 }
3360
3361 while _next_ordinal_to_read < 4 {
3363 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3364 _next_ordinal_to_read += 1;
3365 next_offset += envelope_size;
3366 }
3367
3368 let next_out_of_line = decoder.next_out_of_line();
3369 let handles_before = decoder.remaining_handles();
3370 if let Some((inlined, num_bytes, num_handles)) =
3371 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3372 {
3373 let member_inline_size = <fidl::encoding::Vector<
3374 fidl::encoding::BoundedString<4096>,
3375 128,
3376 > as fidl::encoding::TypeMarker>::inline_size(
3377 decoder.context
3378 );
3379 if inlined != (member_inline_size <= 4) {
3380 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3381 }
3382 let inner_offset;
3383 let mut inner_depth = depth.clone();
3384 if inlined {
3385 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3386 inner_offset = next_offset;
3387 } else {
3388 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3389 inner_depth.increment()?;
3390 }
3391 let val_ref = self.target_monikers.get_or_insert_with(|| {
3392 fidl::new_empty!(
3393 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
3394 D
3395 )
3396 });
3397 fidl::decode!(
3398 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
3399 D,
3400 val_ref,
3401 decoder,
3402 inner_offset,
3403 inner_depth
3404 )?;
3405 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3406 {
3407 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3408 }
3409 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3410 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3411 }
3412 }
3413
3414 next_offset += envelope_size;
3415 _next_ordinal_to_read += 1;
3416 if next_offset >= end_offset {
3417 return Ok(());
3418 }
3419
3420 while _next_ordinal_to_read < 5 {
3422 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3423 _next_ordinal_to_read += 1;
3424 next_offset += envelope_size;
3425 }
3426
3427 let next_out_of_line = decoder.next_out_of_line();
3428 let handles_before = decoder.remaining_handles();
3429 if let Some((inlined, num_bytes, num_handles)) =
3430 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3431 {
3432 let member_inline_size = <fidl_fuchsia_component_decl__common::Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3433 if inlined != (member_inline_size <= 4) {
3434 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3435 }
3436 let inner_offset;
3437 let mut inner_depth = depth.clone();
3438 if inlined {
3439 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3440 inner_offset = next_offset;
3441 } else {
3442 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3443 inner_depth.increment()?;
3444 }
3445 let val_ref = self.source.get_or_insert_with(|| {
3446 fidl::new_empty!(fidl_fuchsia_component_decl__common::Ref, D)
3447 });
3448 fidl::decode!(
3449 fidl_fuchsia_component_decl__common::Ref,
3450 D,
3451 val_ref,
3452 decoder,
3453 inner_offset,
3454 inner_depth
3455 )?;
3456 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3457 {
3458 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3459 }
3460 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3461 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3462 }
3463 }
3464
3465 next_offset += envelope_size;
3466
3467 while next_offset < end_offset {
3469 _next_ordinal_to_read += 1;
3470 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3471 next_offset += envelope_size;
3472 }
3473
3474 Ok(())
3475 }
3476 }
3477
3478 impl CapabilityPolicyAllowlists {
3479 #[inline(always)]
3480 fn max_ordinal_present(&self) -> u64 {
3481 if let Some(_) = self.allowlist {
3482 return 1;
3483 }
3484 0
3485 }
3486 }
3487
3488 impl fidl::encoding::ValueTypeMarker for CapabilityPolicyAllowlists {
3489 type Borrowed<'a> = &'a Self;
3490 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3491 value
3492 }
3493 }
3494
3495 unsafe impl fidl::encoding::TypeMarker for CapabilityPolicyAllowlists {
3496 type Owned = Self;
3497
3498 #[inline(always)]
3499 fn inline_align(_context: fidl::encoding::Context) -> usize {
3500 8
3501 }
3502
3503 #[inline(always)]
3504 fn inline_size(_context: fidl::encoding::Context) -> usize {
3505 16
3506 }
3507 }
3508
3509 unsafe impl<D: fidl::encoding::ResourceDialect>
3510 fidl::encoding::Encode<CapabilityPolicyAllowlists, D> for &CapabilityPolicyAllowlists
3511 {
3512 unsafe fn encode(
3513 self,
3514 encoder: &mut fidl::encoding::Encoder<'_, D>,
3515 offset: usize,
3516 mut depth: fidl::encoding::Depth,
3517 ) -> fidl::Result<()> {
3518 encoder.debug_check_bounds::<CapabilityPolicyAllowlists>(offset);
3519 let max_ordinal: u64 = self.max_ordinal_present();
3521 encoder.write_num(max_ordinal, offset);
3522 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3523 if max_ordinal == 0 {
3525 return Ok(());
3526 }
3527 depth.increment()?;
3528 let envelope_size = 8;
3529 let bytes_len = max_ordinal as usize * envelope_size;
3530 #[allow(unused_variables)]
3531 let offset = encoder.out_of_line_offset(bytes_len);
3532 let mut _prev_end_offset: usize = 0;
3533 if 1 > max_ordinal {
3534 return Ok(());
3535 }
3536
3537 let cur_offset: usize = (1 - 1) * envelope_size;
3540
3541 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3543
3544 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CapabilityAllowlistEntry, 128>, D>(
3549 self.allowlist.as_ref().map(<fidl::encoding::Vector<CapabilityAllowlistEntry, 128> as fidl::encoding::ValueTypeMarker>::borrow),
3550 encoder, offset + cur_offset, depth
3551 )?;
3552
3553 _prev_end_offset = cur_offset + envelope_size;
3554
3555 Ok(())
3556 }
3557 }
3558
3559 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3560 for CapabilityPolicyAllowlists
3561 {
3562 #[inline(always)]
3563 fn new_empty() -> Self {
3564 Self::default()
3565 }
3566
3567 unsafe fn decode(
3568 &mut self,
3569 decoder: &mut fidl::encoding::Decoder<'_, D>,
3570 offset: usize,
3571 mut depth: fidl::encoding::Depth,
3572 ) -> fidl::Result<()> {
3573 decoder.debug_check_bounds::<Self>(offset);
3574 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3575 None => return Err(fidl::Error::NotNullable),
3576 Some(len) => len,
3577 };
3578 if len == 0 {
3580 return Ok(());
3581 };
3582 depth.increment()?;
3583 let envelope_size = 8;
3584 let bytes_len = len * envelope_size;
3585 let offset = decoder.out_of_line_offset(bytes_len)?;
3586 let mut _next_ordinal_to_read = 0;
3588 let mut next_offset = offset;
3589 let end_offset = offset + bytes_len;
3590 _next_ordinal_to_read += 1;
3591 if next_offset >= end_offset {
3592 return Ok(());
3593 }
3594
3595 while _next_ordinal_to_read < 1 {
3597 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3598 _next_ordinal_to_read += 1;
3599 next_offset += envelope_size;
3600 }
3601
3602 let next_out_of_line = decoder.next_out_of_line();
3603 let handles_before = decoder.remaining_handles();
3604 if let Some((inlined, num_bytes, num_handles)) =
3605 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3606 {
3607 let member_inline_size = <fidl::encoding::Vector<CapabilityAllowlistEntry, 128> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3608 if inlined != (member_inline_size <= 4) {
3609 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3610 }
3611 let inner_offset;
3612 let mut inner_depth = depth.clone();
3613 if inlined {
3614 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3615 inner_offset = next_offset;
3616 } else {
3617 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3618 inner_depth.increment()?;
3619 }
3620 let val_ref = self.allowlist.get_or_insert_with(
3621 || fidl::new_empty!(fidl::encoding::Vector<CapabilityAllowlistEntry, 128>, D),
3622 );
3623 fidl::decode!(fidl::encoding::Vector<CapabilityAllowlistEntry, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
3624 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3625 {
3626 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3627 }
3628 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3629 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3630 }
3631 }
3632
3633 next_offset += envelope_size;
3634
3635 while next_offset < end_offset {
3637 _next_ordinal_to_read += 1;
3638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3639 next_offset += envelope_size;
3640 }
3641
3642 Ok(())
3643 }
3644 }
3645
3646 impl ChildPolicyAllowlists {
3647 #[inline(always)]
3648 fn max_ordinal_present(&self) -> u64 {
3649 if let Some(_) = self.reboot_on_terminate {
3650 return 1;
3651 }
3652 0
3653 }
3654 }
3655
3656 impl fidl::encoding::ValueTypeMarker for ChildPolicyAllowlists {
3657 type Borrowed<'a> = &'a Self;
3658 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3659 value
3660 }
3661 }
3662
3663 unsafe impl fidl::encoding::TypeMarker for ChildPolicyAllowlists {
3664 type Owned = Self;
3665
3666 #[inline(always)]
3667 fn inline_align(_context: fidl::encoding::Context) -> usize {
3668 8
3669 }
3670
3671 #[inline(always)]
3672 fn inline_size(_context: fidl::encoding::Context) -> usize {
3673 16
3674 }
3675 }
3676
3677 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChildPolicyAllowlists, D>
3678 for &ChildPolicyAllowlists
3679 {
3680 unsafe fn encode(
3681 self,
3682 encoder: &mut fidl::encoding::Encoder<'_, D>,
3683 offset: usize,
3684 mut depth: fidl::encoding::Depth,
3685 ) -> fidl::Result<()> {
3686 encoder.debug_check_bounds::<ChildPolicyAllowlists>(offset);
3687 let max_ordinal: u64 = self.max_ordinal_present();
3689 encoder.write_num(max_ordinal, offset);
3690 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3691 if max_ordinal == 0 {
3693 return Ok(());
3694 }
3695 depth.increment()?;
3696 let envelope_size = 8;
3697 let bytes_len = max_ordinal as usize * envelope_size;
3698 #[allow(unused_variables)]
3699 let offset = encoder.out_of_line_offset(bytes_len);
3700 let mut _prev_end_offset: usize = 0;
3701 if 1 > max_ordinal {
3702 return Ok(());
3703 }
3704
3705 let cur_offset: usize = (1 - 1) * envelope_size;
3708
3709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3711
3712 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
3717 self.reboot_on_terminate.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
3718 encoder, offset + cur_offset, depth
3719 )?;
3720
3721 _prev_end_offset = cur_offset + envelope_size;
3722
3723 Ok(())
3724 }
3725 }
3726
3727 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChildPolicyAllowlists {
3728 #[inline(always)]
3729 fn new_empty() -> Self {
3730 Self::default()
3731 }
3732
3733 unsafe fn decode(
3734 &mut self,
3735 decoder: &mut fidl::encoding::Decoder<'_, D>,
3736 offset: usize,
3737 mut depth: fidl::encoding::Depth,
3738 ) -> fidl::Result<()> {
3739 decoder.debug_check_bounds::<Self>(offset);
3740 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3741 None => return Err(fidl::Error::NotNullable),
3742 Some(len) => len,
3743 };
3744 if len == 0 {
3746 return Ok(());
3747 };
3748 depth.increment()?;
3749 let envelope_size = 8;
3750 let bytes_len = len * envelope_size;
3751 let offset = decoder.out_of_line_offset(bytes_len)?;
3752 let mut _next_ordinal_to_read = 0;
3754 let mut next_offset = offset;
3755 let end_offset = offset + bytes_len;
3756 _next_ordinal_to_read += 1;
3757 if next_offset >= end_offset {
3758 return Ok(());
3759 }
3760
3761 while _next_ordinal_to_read < 1 {
3763 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3764 _next_ordinal_to_read += 1;
3765 next_offset += envelope_size;
3766 }
3767
3768 let next_out_of_line = decoder.next_out_of_line();
3769 let handles_before = decoder.remaining_handles();
3770 if let Some((inlined, num_bytes, num_handles)) =
3771 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3772 {
3773 let member_inline_size = <fidl::encoding::Vector<
3774 fidl::encoding::BoundedString<4096>,
3775 128,
3776 > as fidl::encoding::TypeMarker>::inline_size(
3777 decoder.context
3778 );
3779 if inlined != (member_inline_size <= 4) {
3780 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3781 }
3782 let inner_offset;
3783 let mut inner_depth = depth.clone();
3784 if inlined {
3785 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3786 inner_offset = next_offset;
3787 } else {
3788 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3789 inner_depth.increment()?;
3790 }
3791 let val_ref = self.reboot_on_terminate.get_or_insert_with(|| {
3792 fidl::new_empty!(
3793 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
3794 D
3795 )
3796 });
3797 fidl::decode!(
3798 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
3799 D,
3800 val_ref,
3801 decoder,
3802 inner_offset,
3803 inner_depth
3804 )?;
3805 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3806 {
3807 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3808 }
3809 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3810 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3811 }
3812 }
3813
3814 next_offset += envelope_size;
3815
3816 while next_offset < end_offset {
3818 _next_ordinal_to_read += 1;
3819 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3820 next_offset += envelope_size;
3821 }
3822
3823 Ok(())
3824 }
3825 }
3826
3827 impl Component {
3828 #[inline(always)]
3829 fn max_ordinal_present(&self) -> u64 {
3830 if let Some(_) = self.moniker {
3831 return 2;
3832 }
3833 if let Some(_) = self.capability {
3834 return 1;
3835 }
3836 0
3837 }
3838 }
3839
3840 impl fidl::encoding::ValueTypeMarker for Component {
3841 type Borrowed<'a> = &'a Self;
3842 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3843 value
3844 }
3845 }
3846
3847 unsafe impl fidl::encoding::TypeMarker for Component {
3848 type Owned = Self;
3849
3850 #[inline(always)]
3851 fn inline_align(_context: fidl::encoding::Context) -> usize {
3852 8
3853 }
3854
3855 #[inline(always)]
3856 fn inline_size(_context: fidl::encoding::Context) -> usize {
3857 16
3858 }
3859 }
3860
3861 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Component, D>
3862 for &Component
3863 {
3864 unsafe fn encode(
3865 self,
3866 encoder: &mut fidl::encoding::Encoder<'_, D>,
3867 offset: usize,
3868 mut depth: fidl::encoding::Depth,
3869 ) -> fidl::Result<()> {
3870 encoder.debug_check_bounds::<Component>(offset);
3871 let max_ordinal: u64 = self.max_ordinal_present();
3873 encoder.write_num(max_ordinal, offset);
3874 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3875 if max_ordinal == 0 {
3877 return Ok(());
3878 }
3879 depth.increment()?;
3880 let envelope_size = 8;
3881 let bytes_len = max_ordinal as usize * envelope_size;
3882 #[allow(unused_variables)]
3883 let offset = encoder.out_of_line_offset(bytes_len);
3884 let mut _prev_end_offset: usize = 0;
3885 if 1 > max_ordinal {
3886 return Ok(());
3887 }
3888
3889 let cur_offset: usize = (1 - 1) * envelope_size;
3892
3893 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3895
3896 fidl::encoding::encode_in_envelope_optional::<ComponentCapability, D>(
3901 self.capability
3902 .as_ref()
3903 .map(<ComponentCapability as fidl::encoding::ValueTypeMarker>::borrow),
3904 encoder,
3905 offset + cur_offset,
3906 depth,
3907 )?;
3908
3909 _prev_end_offset = cur_offset + envelope_size;
3910 if 2 > max_ordinal {
3911 return Ok(());
3912 }
3913
3914 let cur_offset: usize = (2 - 1) * envelope_size;
3917
3918 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3920
3921 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
3926 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
3927 encoder, offset + cur_offset, depth
3928 )?;
3929
3930 _prev_end_offset = cur_offset + envelope_size;
3931
3932 Ok(())
3933 }
3934 }
3935
3936 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Component {
3937 #[inline(always)]
3938 fn new_empty() -> Self {
3939 Self::default()
3940 }
3941
3942 unsafe fn decode(
3943 &mut self,
3944 decoder: &mut fidl::encoding::Decoder<'_, D>,
3945 offset: usize,
3946 mut depth: fidl::encoding::Depth,
3947 ) -> fidl::Result<()> {
3948 decoder.debug_check_bounds::<Self>(offset);
3949 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3950 None => return Err(fidl::Error::NotNullable),
3951 Some(len) => len,
3952 };
3953 if len == 0 {
3955 return Ok(());
3956 };
3957 depth.increment()?;
3958 let envelope_size = 8;
3959 let bytes_len = len * envelope_size;
3960 let offset = decoder.out_of_line_offset(bytes_len)?;
3961 let mut _next_ordinal_to_read = 0;
3963 let mut next_offset = offset;
3964 let end_offset = offset + bytes_len;
3965 _next_ordinal_to_read += 1;
3966 if next_offset >= end_offset {
3967 return Ok(());
3968 }
3969
3970 while _next_ordinal_to_read < 1 {
3972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3973 _next_ordinal_to_read += 1;
3974 next_offset += envelope_size;
3975 }
3976
3977 let next_out_of_line = decoder.next_out_of_line();
3978 let handles_before = decoder.remaining_handles();
3979 if let Some((inlined, num_bytes, num_handles)) =
3980 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3981 {
3982 let member_inline_size =
3983 <ComponentCapability as fidl::encoding::TypeMarker>::inline_size(
3984 decoder.context,
3985 );
3986 if inlined != (member_inline_size <= 4) {
3987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3988 }
3989 let inner_offset;
3990 let mut inner_depth = depth.clone();
3991 if inlined {
3992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3993 inner_offset = next_offset;
3994 } else {
3995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3996 inner_depth.increment()?;
3997 }
3998 let val_ref =
3999 self.capability.get_or_insert_with(|| fidl::new_empty!(ComponentCapability, D));
4000 fidl::decode!(ComponentCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
4001 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4002 {
4003 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4004 }
4005 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4006 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4007 }
4008 }
4009
4010 next_offset += envelope_size;
4011 _next_ordinal_to_read += 1;
4012 if next_offset >= end_offset {
4013 return Ok(());
4014 }
4015
4016 while _next_ordinal_to_read < 2 {
4018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4019 _next_ordinal_to_read += 1;
4020 next_offset += envelope_size;
4021 }
4022
4023 let next_out_of_line = decoder.next_out_of_line();
4024 let handles_before = decoder.remaining_handles();
4025 if let Some((inlined, num_bytes, num_handles)) =
4026 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4027 {
4028 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4029 if inlined != (member_inline_size <= 4) {
4030 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4031 }
4032 let inner_offset;
4033 let mut inner_depth = depth.clone();
4034 if inlined {
4035 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4036 inner_offset = next_offset;
4037 } else {
4038 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4039 inner_depth.increment()?;
4040 }
4041 let val_ref = self.moniker.get_or_insert_with(|| {
4042 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
4043 });
4044 fidl::decode!(
4045 fidl::encoding::BoundedString<4096>,
4046 D,
4047 val_ref,
4048 decoder,
4049 inner_offset,
4050 inner_depth
4051 )?;
4052 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4053 {
4054 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4055 }
4056 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4057 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4058 }
4059 }
4060
4061 next_offset += envelope_size;
4062
4063 while next_offset < end_offset {
4065 _next_ordinal_to_read += 1;
4066 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4067 next_offset += envelope_size;
4068 }
4069
4070 Ok(())
4071 }
4072 }
4073
4074 impl ComponentIdIndex {
4075 #[inline(always)]
4076 fn max_ordinal_present(&self) -> u64 {
4077 if let Some(_) = self.instances {
4078 return 2;
4079 }
4080 0
4081 }
4082 }
4083
4084 impl fidl::encoding::ValueTypeMarker for ComponentIdIndex {
4085 type Borrowed<'a> = &'a Self;
4086 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4087 value
4088 }
4089 }
4090
4091 unsafe impl fidl::encoding::TypeMarker for ComponentIdIndex {
4092 type Owned = Self;
4093
4094 #[inline(always)]
4095 fn inline_align(_context: fidl::encoding::Context) -> usize {
4096 8
4097 }
4098
4099 #[inline(always)]
4100 fn inline_size(_context: fidl::encoding::Context) -> usize {
4101 16
4102 }
4103 }
4104
4105 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentIdIndex, D>
4106 for &ComponentIdIndex
4107 {
4108 unsafe fn encode(
4109 self,
4110 encoder: &mut fidl::encoding::Encoder<'_, D>,
4111 offset: usize,
4112 mut depth: fidl::encoding::Depth,
4113 ) -> fidl::Result<()> {
4114 encoder.debug_check_bounds::<ComponentIdIndex>(offset);
4115 let max_ordinal: u64 = self.max_ordinal_present();
4117 encoder.write_num(max_ordinal, offset);
4118 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4119 if max_ordinal == 0 {
4121 return Ok(());
4122 }
4123 depth.increment()?;
4124 let envelope_size = 8;
4125 let bytes_len = max_ordinal as usize * envelope_size;
4126 #[allow(unused_variables)]
4127 let offset = encoder.out_of_line_offset(bytes_len);
4128 let mut _prev_end_offset: usize = 0;
4129 if 2 > max_ordinal {
4130 return Ok(());
4131 }
4132
4133 let cur_offset: usize = (2 - 1) * envelope_size;
4136
4137 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4139
4140 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<InstanceIdEntry, 1024>, D>(
4145 self.instances.as_ref().map(<fidl::encoding::Vector<InstanceIdEntry, 1024> as fidl::encoding::ValueTypeMarker>::borrow),
4146 encoder, offset + cur_offset, depth
4147 )?;
4148
4149 _prev_end_offset = cur_offset + envelope_size;
4150
4151 Ok(())
4152 }
4153 }
4154
4155 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentIdIndex {
4156 #[inline(always)]
4157 fn new_empty() -> Self {
4158 Self::default()
4159 }
4160
4161 unsafe fn decode(
4162 &mut self,
4163 decoder: &mut fidl::encoding::Decoder<'_, D>,
4164 offset: usize,
4165 mut depth: fidl::encoding::Depth,
4166 ) -> fidl::Result<()> {
4167 decoder.debug_check_bounds::<Self>(offset);
4168 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4169 None => return Err(fidl::Error::NotNullable),
4170 Some(len) => len,
4171 };
4172 if len == 0 {
4174 return Ok(());
4175 };
4176 depth.increment()?;
4177 let envelope_size = 8;
4178 let bytes_len = len * envelope_size;
4179 let offset = decoder.out_of_line_offset(bytes_len)?;
4180 let mut _next_ordinal_to_read = 0;
4182 let mut next_offset = offset;
4183 let end_offset = offset + bytes_len;
4184 _next_ordinal_to_read += 1;
4185 if next_offset >= end_offset {
4186 return Ok(());
4187 }
4188
4189 while _next_ordinal_to_read < 2 {
4191 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4192 _next_ordinal_to_read += 1;
4193 next_offset += envelope_size;
4194 }
4195
4196 let next_out_of_line = decoder.next_out_of_line();
4197 let handles_before = decoder.remaining_handles();
4198 if let Some((inlined, num_bytes, num_handles)) =
4199 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4200 {
4201 let member_inline_size = <fidl::encoding::Vector<InstanceIdEntry, 1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4202 if inlined != (member_inline_size <= 4) {
4203 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4204 }
4205 let inner_offset;
4206 let mut inner_depth = depth.clone();
4207 if inlined {
4208 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4209 inner_offset = next_offset;
4210 } else {
4211 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4212 inner_depth.increment()?;
4213 }
4214 let val_ref = self.instances.get_or_insert_with(
4215 || fidl::new_empty!(fidl::encoding::Vector<InstanceIdEntry, 1024>, D),
4216 );
4217 fidl::decode!(fidl::encoding::Vector<InstanceIdEntry, 1024>, D, val_ref, decoder, inner_offset, inner_depth)?;
4218 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4219 {
4220 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4221 }
4222 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4223 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4224 }
4225 }
4226
4227 next_offset += envelope_size;
4228
4229 while next_offset < end_offset {
4231 _next_ordinal_to_read += 1;
4232 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4233 next_offset += envelope_size;
4234 }
4235
4236 Ok(())
4237 }
4238 }
4239
4240 impl Config {
4241 #[inline(always)]
4242 fn max_ordinal_present(&self) -> u64 {
4243 if let Some(_) = self.inject {
4244 return 23;
4245 }
4246 if let Some(_) = self.trace_provider {
4247 return 22;
4248 }
4249 if let Some(_) = self.health_check {
4250 return 21;
4251 }
4252 if let Some(_) = self.vmex_source {
4253 return 20;
4254 }
4255 if let Some(_) = self.abi_revision_policy {
4256 return 19;
4257 }
4258 if let Some(_) = self.enable_introspection {
4259 return 18;
4260 }
4261 if let Some(_) = self.builtin_capabilities {
4262 return 17;
4263 }
4264 if let Some(_) = self.realm_builder_resolver_and_runner {
4265 return 16;
4266 }
4267 if let Some(_) = self.builtin_boot_resolver {
4268 return 14;
4269 }
4270 if let Some(_) = self.log_all_events {
4271 return 13;
4272 }
4273 if let Some(_) = self.log_destination {
4274 return 12;
4275 }
4276 if let Some(_) = self.component_id_index_path {
4277 return 11;
4278 }
4279 if let Some(_) = self.root_component_url {
4280 return 10;
4281 }
4282 if let Some(_) = self.num_threads {
4283 return 7;
4284 }
4285 if let Some(_) = self.maintain_utc_clock {
4286 return 6;
4287 }
4288 if let Some(_) = self.use_builtin_process_launcher {
4289 return 5;
4290 }
4291 if let Some(_) = self.namespace_capabilities {
4292 return 4;
4293 }
4294 if let Some(_) = self.security_policy {
4295 return 3;
4296 }
4297 if let Some(_) = self.list_children_batch_size {
4298 return 2;
4299 }
4300 if let Some(_) = self.debug {
4301 return 1;
4302 }
4303 0
4304 }
4305 }
4306
4307 impl fidl::encoding::ValueTypeMarker for Config {
4308 type Borrowed<'a> = &'a Self;
4309 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4310 value
4311 }
4312 }
4313
4314 unsafe impl fidl::encoding::TypeMarker for Config {
4315 type Owned = Self;
4316
4317 #[inline(always)]
4318 fn inline_align(_context: fidl::encoding::Context) -> usize {
4319 8
4320 }
4321
4322 #[inline(always)]
4323 fn inline_size(_context: fidl::encoding::Context) -> usize {
4324 16
4325 }
4326 }
4327
4328 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
4329 unsafe fn encode(
4330 self,
4331 encoder: &mut fidl::encoding::Encoder<'_, D>,
4332 offset: usize,
4333 mut depth: fidl::encoding::Depth,
4334 ) -> fidl::Result<()> {
4335 encoder.debug_check_bounds::<Config>(offset);
4336 let max_ordinal: u64 = self.max_ordinal_present();
4338 encoder.write_num(max_ordinal, offset);
4339 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4340 if max_ordinal == 0 {
4342 return Ok(());
4343 }
4344 depth.increment()?;
4345 let envelope_size = 8;
4346 let bytes_len = max_ordinal as usize * envelope_size;
4347 #[allow(unused_variables)]
4348 let offset = encoder.out_of_line_offset(bytes_len);
4349 let mut _prev_end_offset: usize = 0;
4350 if 1 > max_ordinal {
4351 return Ok(());
4352 }
4353
4354 let cur_offset: usize = (1 - 1) * envelope_size;
4357
4358 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4360
4361 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4366 self.debug.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4367 encoder,
4368 offset + cur_offset,
4369 depth,
4370 )?;
4371
4372 _prev_end_offset = cur_offset + envelope_size;
4373 if 2 > max_ordinal {
4374 return Ok(());
4375 }
4376
4377 let cur_offset: usize = (2 - 1) * envelope_size;
4380
4381 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4383
4384 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4389 self.list_children_batch_size
4390 .as_ref()
4391 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4392 encoder,
4393 offset + cur_offset,
4394 depth,
4395 )?;
4396
4397 _prev_end_offset = cur_offset + envelope_size;
4398 if 3 > max_ordinal {
4399 return Ok(());
4400 }
4401
4402 let cur_offset: usize = (3 - 1) * envelope_size;
4405
4406 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4408
4409 fidl::encoding::encode_in_envelope_optional::<SecurityPolicy, D>(
4414 self.security_policy
4415 .as_ref()
4416 .map(<SecurityPolicy as fidl::encoding::ValueTypeMarker>::borrow),
4417 encoder,
4418 offset + cur_offset,
4419 depth,
4420 )?;
4421
4422 _prev_end_offset = cur_offset + envelope_size;
4423 if 4 > max_ordinal {
4424 return Ok(());
4425 }
4426
4427 let cur_offset: usize = (4 - 1) * envelope_size;
4430
4431 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4433
4434 fidl::encoding::encode_in_envelope_optional::<
4439 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Capability>,
4440 D,
4441 >(
4442 self.namespace_capabilities.as_ref().map(
4443 <fidl::encoding::UnboundedVector<
4444 fidl_fuchsia_component_decl__common::Capability,
4445 > as fidl::encoding::ValueTypeMarker>::borrow,
4446 ),
4447 encoder,
4448 offset + cur_offset,
4449 depth,
4450 )?;
4451
4452 _prev_end_offset = cur_offset + envelope_size;
4453 if 5 > max_ordinal {
4454 return Ok(());
4455 }
4456
4457 let cur_offset: usize = (5 - 1) * envelope_size;
4460
4461 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4463
4464 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4469 self.use_builtin_process_launcher
4470 .as_ref()
4471 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4472 encoder,
4473 offset + cur_offset,
4474 depth,
4475 )?;
4476
4477 _prev_end_offset = cur_offset + envelope_size;
4478 if 6 > max_ordinal {
4479 return Ok(());
4480 }
4481
4482 let cur_offset: usize = (6 - 1) * envelope_size;
4485
4486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4488
4489 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4494 self.maintain_utc_clock
4495 .as_ref()
4496 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4497 encoder,
4498 offset + cur_offset,
4499 depth,
4500 )?;
4501
4502 _prev_end_offset = cur_offset + envelope_size;
4503 if 7 > max_ordinal {
4504 return Ok(());
4505 }
4506
4507 let cur_offset: usize = (7 - 1) * envelope_size;
4510
4511 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4513
4514 fidl::encoding::encode_in_envelope_optional::<u8, D>(
4519 self.num_threads.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
4520 encoder,
4521 offset + cur_offset,
4522 depth,
4523 )?;
4524
4525 _prev_end_offset = cur_offset + envelope_size;
4526 if 10 > max_ordinal {
4527 return Ok(());
4528 }
4529
4530 let cur_offset: usize = (10 - 1) * envelope_size;
4533
4534 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4536
4537 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
4542 self.root_component_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
4543 encoder, offset + cur_offset, depth
4544 )?;
4545
4546 _prev_end_offset = cur_offset + envelope_size;
4547 if 11 > max_ordinal {
4548 return Ok(());
4549 }
4550
4551 let cur_offset: usize = (11 - 1) * envelope_size;
4554
4555 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4557
4558 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
4563 self.component_id_index_path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
4564 encoder, offset + cur_offset, depth
4565 )?;
4566
4567 _prev_end_offset = cur_offset + envelope_size;
4568 if 12 > max_ordinal {
4569 return Ok(());
4570 }
4571
4572 let cur_offset: usize = (12 - 1) * envelope_size;
4575
4576 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4578
4579 fidl::encoding::encode_in_envelope_optional::<LogDestination, D>(
4584 self.log_destination
4585 .as_ref()
4586 .map(<LogDestination as fidl::encoding::ValueTypeMarker>::borrow),
4587 encoder,
4588 offset + cur_offset,
4589 depth,
4590 )?;
4591
4592 _prev_end_offset = cur_offset + envelope_size;
4593 if 13 > max_ordinal {
4594 return Ok(());
4595 }
4596
4597 let cur_offset: usize = (13 - 1) * envelope_size;
4600
4601 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4603
4604 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4609 self.log_all_events.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4610 encoder,
4611 offset + cur_offset,
4612 depth,
4613 )?;
4614
4615 _prev_end_offset = cur_offset + envelope_size;
4616 if 14 > max_ordinal {
4617 return Ok(());
4618 }
4619
4620 let cur_offset: usize = (14 - 1) * envelope_size;
4623
4624 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4626
4627 fidl::encoding::encode_in_envelope_optional::<BuiltinBootResolver, D>(
4632 self.builtin_boot_resolver
4633 .as_ref()
4634 .map(<BuiltinBootResolver as fidl::encoding::ValueTypeMarker>::borrow),
4635 encoder,
4636 offset + cur_offset,
4637 depth,
4638 )?;
4639
4640 _prev_end_offset = cur_offset + envelope_size;
4641 if 16 > max_ordinal {
4642 return Ok(());
4643 }
4644
4645 let cur_offset: usize = (16 - 1) * envelope_size;
4648
4649 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4651
4652 fidl::encoding::encode_in_envelope_optional::<RealmBuilderResolverAndRunner, D>(
4657 self.realm_builder_resolver_and_runner.as_ref().map(
4658 <RealmBuilderResolverAndRunner as fidl::encoding::ValueTypeMarker>::borrow,
4659 ),
4660 encoder,
4661 offset + cur_offset,
4662 depth,
4663 )?;
4664
4665 _prev_end_offset = cur_offset + envelope_size;
4666 if 17 > max_ordinal {
4667 return Ok(());
4668 }
4669
4670 let cur_offset: usize = (17 - 1) * envelope_size;
4673
4674 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4676
4677 fidl::encoding::encode_in_envelope_optional::<
4682 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Capability>,
4683 D,
4684 >(
4685 self.builtin_capabilities.as_ref().map(
4686 <fidl::encoding::UnboundedVector<
4687 fidl_fuchsia_component_decl__common::Capability,
4688 > as fidl::encoding::ValueTypeMarker>::borrow,
4689 ),
4690 encoder,
4691 offset + cur_offset,
4692 depth,
4693 )?;
4694
4695 _prev_end_offset = cur_offset + envelope_size;
4696 if 18 > max_ordinal {
4697 return Ok(());
4698 }
4699
4700 let cur_offset: usize = (18 - 1) * envelope_size;
4703
4704 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4706
4707 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4712 self.enable_introspection
4713 .as_ref()
4714 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4715 encoder,
4716 offset + cur_offset,
4717 depth,
4718 )?;
4719
4720 _prev_end_offset = cur_offset + envelope_size;
4721 if 19 > max_ordinal {
4722 return Ok(());
4723 }
4724
4725 let cur_offset: usize = (19 - 1) * envelope_size;
4728
4729 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4731
4732 fidl::encoding::encode_in_envelope_optional::<AbiRevisionPolicy, D>(
4737 self.abi_revision_policy
4738 .as_ref()
4739 .map(<AbiRevisionPolicy as fidl::encoding::ValueTypeMarker>::borrow),
4740 encoder,
4741 offset + cur_offset,
4742 depth,
4743 )?;
4744
4745 _prev_end_offset = cur_offset + envelope_size;
4746 if 20 > max_ordinal {
4747 return Ok(());
4748 }
4749
4750 let cur_offset: usize = (20 - 1) * envelope_size;
4753
4754 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4756
4757 fidl::encoding::encode_in_envelope_optional::<VmexSource, D>(
4762 self.vmex_source
4763 .as_ref()
4764 .map(<VmexSource as fidl::encoding::ValueTypeMarker>::borrow),
4765 encoder,
4766 offset + cur_offset,
4767 depth,
4768 )?;
4769
4770 _prev_end_offset = cur_offset + envelope_size;
4771 if 21 > max_ordinal {
4772 return Ok(());
4773 }
4774
4775 let cur_offset: usize = (21 - 1) * envelope_size;
4778
4779 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4781
4782 fidl::encoding::encode_in_envelope_optional::<HealthCheck, D>(
4787 self.health_check
4788 .as_ref()
4789 .map(<HealthCheck as fidl::encoding::ValueTypeMarker>::borrow),
4790 encoder,
4791 offset + cur_offset,
4792 depth,
4793 )?;
4794
4795 _prev_end_offset = cur_offset + envelope_size;
4796 if 22 > max_ordinal {
4797 return Ok(());
4798 }
4799
4800 let cur_offset: usize = (22 - 1) * envelope_size;
4803
4804 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4806
4807 fidl::encoding::encode_in_envelope_optional::<TraceProvider, D>(
4812 self.trace_provider
4813 .as_ref()
4814 .map(<TraceProvider as fidl::encoding::ValueTypeMarker>::borrow),
4815 encoder,
4816 offset + cur_offset,
4817 depth,
4818 )?;
4819
4820 _prev_end_offset = cur_offset + envelope_size;
4821 if 23 > max_ordinal {
4822 return Ok(());
4823 }
4824
4825 let cur_offset: usize = (23 - 1) * envelope_size;
4828
4829 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4831
4832 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<InjectedBundle>, D>(
4837 self.inject.as_ref().map(<fidl::encoding::UnboundedVector<InjectedBundle> as fidl::encoding::ValueTypeMarker>::borrow),
4838 encoder, offset + cur_offset, depth
4839 )?;
4840
4841 _prev_end_offset = cur_offset + envelope_size;
4842
4843 Ok(())
4844 }
4845 }
4846
4847 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
4848 #[inline(always)]
4849 fn new_empty() -> Self {
4850 Self::default()
4851 }
4852
4853 unsafe fn decode(
4854 &mut self,
4855 decoder: &mut fidl::encoding::Decoder<'_, D>,
4856 offset: usize,
4857 mut depth: fidl::encoding::Depth,
4858 ) -> fidl::Result<()> {
4859 decoder.debug_check_bounds::<Self>(offset);
4860 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4861 None => return Err(fidl::Error::NotNullable),
4862 Some(len) => len,
4863 };
4864 if len == 0 {
4866 return Ok(());
4867 };
4868 depth.increment()?;
4869 let envelope_size = 8;
4870 let bytes_len = len * envelope_size;
4871 let offset = decoder.out_of_line_offset(bytes_len)?;
4872 let mut _next_ordinal_to_read = 0;
4874 let mut next_offset = offset;
4875 let end_offset = offset + bytes_len;
4876 _next_ordinal_to_read += 1;
4877 if next_offset >= end_offset {
4878 return Ok(());
4879 }
4880
4881 while _next_ordinal_to_read < 1 {
4883 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4884 _next_ordinal_to_read += 1;
4885 next_offset += envelope_size;
4886 }
4887
4888 let next_out_of_line = decoder.next_out_of_line();
4889 let handles_before = decoder.remaining_handles();
4890 if let Some((inlined, num_bytes, num_handles)) =
4891 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4892 {
4893 let member_inline_size =
4894 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4895 if inlined != (member_inline_size <= 4) {
4896 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4897 }
4898 let inner_offset;
4899 let mut inner_depth = depth.clone();
4900 if inlined {
4901 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4902 inner_offset = next_offset;
4903 } else {
4904 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4905 inner_depth.increment()?;
4906 }
4907 let val_ref = self.debug.get_or_insert_with(|| fidl::new_empty!(bool, D));
4908 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4909 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4910 {
4911 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4912 }
4913 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4914 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4915 }
4916 }
4917
4918 next_offset += envelope_size;
4919 _next_ordinal_to_read += 1;
4920 if next_offset >= end_offset {
4921 return Ok(());
4922 }
4923
4924 while _next_ordinal_to_read < 2 {
4926 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4927 _next_ordinal_to_read += 1;
4928 next_offset += envelope_size;
4929 }
4930
4931 let next_out_of_line = decoder.next_out_of_line();
4932 let handles_before = decoder.remaining_handles();
4933 if let Some((inlined, num_bytes, num_handles)) =
4934 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4935 {
4936 let member_inline_size =
4937 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4938 if inlined != (member_inline_size <= 4) {
4939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4940 }
4941 let inner_offset;
4942 let mut inner_depth = depth.clone();
4943 if inlined {
4944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4945 inner_offset = next_offset;
4946 } else {
4947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4948 inner_depth.increment()?;
4949 }
4950 let val_ref =
4951 self.list_children_batch_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
4952 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4953 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4954 {
4955 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4956 }
4957 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4958 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4959 }
4960 }
4961
4962 next_offset += envelope_size;
4963 _next_ordinal_to_read += 1;
4964 if next_offset >= end_offset {
4965 return Ok(());
4966 }
4967
4968 while _next_ordinal_to_read < 3 {
4970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4971 _next_ordinal_to_read += 1;
4972 next_offset += envelope_size;
4973 }
4974
4975 let next_out_of_line = decoder.next_out_of_line();
4976 let handles_before = decoder.remaining_handles();
4977 if let Some((inlined, num_bytes, num_handles)) =
4978 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4979 {
4980 let member_inline_size =
4981 <SecurityPolicy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4982 if inlined != (member_inline_size <= 4) {
4983 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4984 }
4985 let inner_offset;
4986 let mut inner_depth = depth.clone();
4987 if inlined {
4988 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4989 inner_offset = next_offset;
4990 } else {
4991 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4992 inner_depth.increment()?;
4993 }
4994 let val_ref =
4995 self.security_policy.get_or_insert_with(|| fidl::new_empty!(SecurityPolicy, D));
4996 fidl::decode!(SecurityPolicy, D, val_ref, decoder, inner_offset, inner_depth)?;
4997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4998 {
4999 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5000 }
5001 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5002 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5003 }
5004 }
5005
5006 next_offset += envelope_size;
5007 _next_ordinal_to_read += 1;
5008 if next_offset >= end_offset {
5009 return Ok(());
5010 }
5011
5012 while _next_ordinal_to_read < 4 {
5014 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5015 _next_ordinal_to_read += 1;
5016 next_offset += envelope_size;
5017 }
5018
5019 let next_out_of_line = decoder.next_out_of_line();
5020 let handles_before = decoder.remaining_handles();
5021 if let Some((inlined, num_bytes, num_handles)) =
5022 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5023 {
5024 let member_inline_size = <fidl::encoding::UnboundedVector<
5025 fidl_fuchsia_component_decl__common::Capability,
5026 > as fidl::encoding::TypeMarker>::inline_size(
5027 decoder.context
5028 );
5029 if inlined != (member_inline_size <= 4) {
5030 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5031 }
5032 let inner_offset;
5033 let mut inner_depth = depth.clone();
5034 if inlined {
5035 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5036 inner_offset = next_offset;
5037 } else {
5038 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5039 inner_depth.increment()?;
5040 }
5041 let val_ref = self.namespace_capabilities.get_or_insert_with(|| {
5042 fidl::new_empty!(
5043 fidl::encoding::UnboundedVector<
5044 fidl_fuchsia_component_decl__common::Capability,
5045 >,
5046 D
5047 )
5048 });
5049 fidl::decode!(
5050 fidl::encoding::UnboundedVector<
5051 fidl_fuchsia_component_decl__common::Capability,
5052 >,
5053 D,
5054 val_ref,
5055 decoder,
5056 inner_offset,
5057 inner_depth
5058 )?;
5059 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5060 {
5061 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5062 }
5063 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5064 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5065 }
5066 }
5067
5068 next_offset += envelope_size;
5069 _next_ordinal_to_read += 1;
5070 if next_offset >= end_offset {
5071 return Ok(());
5072 }
5073
5074 while _next_ordinal_to_read < 5 {
5076 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5077 _next_ordinal_to_read += 1;
5078 next_offset += envelope_size;
5079 }
5080
5081 let next_out_of_line = decoder.next_out_of_line();
5082 let handles_before = decoder.remaining_handles();
5083 if let Some((inlined, num_bytes, num_handles)) =
5084 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5085 {
5086 let member_inline_size =
5087 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5088 if inlined != (member_inline_size <= 4) {
5089 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5090 }
5091 let inner_offset;
5092 let mut inner_depth = depth.clone();
5093 if inlined {
5094 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5095 inner_offset = next_offset;
5096 } else {
5097 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5098 inner_depth.increment()?;
5099 }
5100 let val_ref = self
5101 .use_builtin_process_launcher
5102 .get_or_insert_with(|| fidl::new_empty!(bool, D));
5103 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5104 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5105 {
5106 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5107 }
5108 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5109 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5110 }
5111 }
5112
5113 next_offset += envelope_size;
5114 _next_ordinal_to_read += 1;
5115 if next_offset >= end_offset {
5116 return Ok(());
5117 }
5118
5119 while _next_ordinal_to_read < 6 {
5121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5122 _next_ordinal_to_read += 1;
5123 next_offset += envelope_size;
5124 }
5125
5126 let next_out_of_line = decoder.next_out_of_line();
5127 let handles_before = decoder.remaining_handles();
5128 if let Some((inlined, num_bytes, num_handles)) =
5129 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5130 {
5131 let member_inline_size =
5132 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5133 if inlined != (member_inline_size <= 4) {
5134 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5135 }
5136 let inner_offset;
5137 let mut inner_depth = depth.clone();
5138 if inlined {
5139 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5140 inner_offset = next_offset;
5141 } else {
5142 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5143 inner_depth.increment()?;
5144 }
5145 let val_ref =
5146 self.maintain_utc_clock.get_or_insert_with(|| fidl::new_empty!(bool, D));
5147 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5148 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5149 {
5150 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5151 }
5152 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5153 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5154 }
5155 }
5156
5157 next_offset += envelope_size;
5158 _next_ordinal_to_read += 1;
5159 if next_offset >= end_offset {
5160 return Ok(());
5161 }
5162
5163 while _next_ordinal_to_read < 7 {
5165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5166 _next_ordinal_to_read += 1;
5167 next_offset += envelope_size;
5168 }
5169
5170 let next_out_of_line = decoder.next_out_of_line();
5171 let handles_before = decoder.remaining_handles();
5172 if let Some((inlined, num_bytes, num_handles)) =
5173 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5174 {
5175 let member_inline_size =
5176 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5177 if inlined != (member_inline_size <= 4) {
5178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5179 }
5180 let inner_offset;
5181 let mut inner_depth = depth.clone();
5182 if inlined {
5183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5184 inner_offset = next_offset;
5185 } else {
5186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5187 inner_depth.increment()?;
5188 }
5189 let val_ref = self.num_threads.get_or_insert_with(|| fidl::new_empty!(u8, D));
5190 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
5191 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5192 {
5193 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5194 }
5195 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5196 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5197 }
5198 }
5199
5200 next_offset += envelope_size;
5201 _next_ordinal_to_read += 1;
5202 if next_offset >= end_offset {
5203 return Ok(());
5204 }
5205
5206 while _next_ordinal_to_read < 10 {
5208 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5209 _next_ordinal_to_read += 1;
5210 next_offset += envelope_size;
5211 }
5212
5213 let next_out_of_line = decoder.next_out_of_line();
5214 let handles_before = decoder.remaining_handles();
5215 if let Some((inlined, num_bytes, num_handles)) =
5216 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5217 {
5218 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5219 if inlined != (member_inline_size <= 4) {
5220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5221 }
5222 let inner_offset;
5223 let mut inner_depth = depth.clone();
5224 if inlined {
5225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5226 inner_offset = next_offset;
5227 } else {
5228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5229 inner_depth.increment()?;
5230 }
5231 let val_ref = self.root_component_url.get_or_insert_with(|| {
5232 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
5233 });
5234 fidl::decode!(
5235 fidl::encoding::BoundedString<4096>,
5236 D,
5237 val_ref,
5238 decoder,
5239 inner_offset,
5240 inner_depth
5241 )?;
5242 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5243 {
5244 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5245 }
5246 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5247 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5248 }
5249 }
5250
5251 next_offset += envelope_size;
5252 _next_ordinal_to_read += 1;
5253 if next_offset >= end_offset {
5254 return Ok(());
5255 }
5256
5257 while _next_ordinal_to_read < 11 {
5259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5260 _next_ordinal_to_read += 1;
5261 next_offset += envelope_size;
5262 }
5263
5264 let next_out_of_line = decoder.next_out_of_line();
5265 let handles_before = decoder.remaining_handles();
5266 if let Some((inlined, num_bytes, num_handles)) =
5267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5268 {
5269 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5270 if inlined != (member_inline_size <= 4) {
5271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5272 }
5273 let inner_offset;
5274 let mut inner_depth = depth.clone();
5275 if inlined {
5276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5277 inner_offset = next_offset;
5278 } else {
5279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5280 inner_depth.increment()?;
5281 }
5282 let val_ref = self.component_id_index_path.get_or_insert_with(|| {
5283 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
5284 });
5285 fidl::decode!(
5286 fidl::encoding::BoundedString<4095>,
5287 D,
5288 val_ref,
5289 decoder,
5290 inner_offset,
5291 inner_depth
5292 )?;
5293 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5294 {
5295 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5296 }
5297 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5298 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5299 }
5300 }
5301
5302 next_offset += envelope_size;
5303 _next_ordinal_to_read += 1;
5304 if next_offset >= end_offset {
5305 return Ok(());
5306 }
5307
5308 while _next_ordinal_to_read < 12 {
5310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5311 _next_ordinal_to_read += 1;
5312 next_offset += envelope_size;
5313 }
5314
5315 let next_out_of_line = decoder.next_out_of_line();
5316 let handles_before = decoder.remaining_handles();
5317 if let Some((inlined, num_bytes, num_handles)) =
5318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5319 {
5320 let member_inline_size =
5321 <LogDestination as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5322 if inlined != (member_inline_size <= 4) {
5323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5324 }
5325 let inner_offset;
5326 let mut inner_depth = depth.clone();
5327 if inlined {
5328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5329 inner_offset = next_offset;
5330 } else {
5331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5332 inner_depth.increment()?;
5333 }
5334 let val_ref =
5335 self.log_destination.get_or_insert_with(|| fidl::new_empty!(LogDestination, D));
5336 fidl::decode!(LogDestination, D, val_ref, decoder, inner_offset, inner_depth)?;
5337 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5338 {
5339 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5340 }
5341 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5342 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5343 }
5344 }
5345
5346 next_offset += envelope_size;
5347 _next_ordinal_to_read += 1;
5348 if next_offset >= end_offset {
5349 return Ok(());
5350 }
5351
5352 while _next_ordinal_to_read < 13 {
5354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5355 _next_ordinal_to_read += 1;
5356 next_offset += envelope_size;
5357 }
5358
5359 let next_out_of_line = decoder.next_out_of_line();
5360 let handles_before = decoder.remaining_handles();
5361 if let Some((inlined, num_bytes, num_handles)) =
5362 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5363 {
5364 let member_inline_size =
5365 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5366 if inlined != (member_inline_size <= 4) {
5367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5368 }
5369 let inner_offset;
5370 let mut inner_depth = depth.clone();
5371 if inlined {
5372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5373 inner_offset = next_offset;
5374 } else {
5375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5376 inner_depth.increment()?;
5377 }
5378 let val_ref = self.log_all_events.get_or_insert_with(|| fidl::new_empty!(bool, D));
5379 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5381 {
5382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5383 }
5384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5386 }
5387 }
5388
5389 next_offset += envelope_size;
5390 _next_ordinal_to_read += 1;
5391 if next_offset >= end_offset {
5392 return Ok(());
5393 }
5394
5395 while _next_ordinal_to_read < 14 {
5397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5398 _next_ordinal_to_read += 1;
5399 next_offset += envelope_size;
5400 }
5401
5402 let next_out_of_line = decoder.next_out_of_line();
5403 let handles_before = decoder.remaining_handles();
5404 if let Some((inlined, num_bytes, num_handles)) =
5405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5406 {
5407 let member_inline_size =
5408 <BuiltinBootResolver as fidl::encoding::TypeMarker>::inline_size(
5409 decoder.context,
5410 );
5411 if inlined != (member_inline_size <= 4) {
5412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5413 }
5414 let inner_offset;
5415 let mut inner_depth = depth.clone();
5416 if inlined {
5417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5418 inner_offset = next_offset;
5419 } else {
5420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5421 inner_depth.increment()?;
5422 }
5423 let val_ref = self
5424 .builtin_boot_resolver
5425 .get_or_insert_with(|| fidl::new_empty!(BuiltinBootResolver, D));
5426 fidl::decode!(BuiltinBootResolver, D, val_ref, decoder, inner_offset, inner_depth)?;
5427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5428 {
5429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5430 }
5431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5433 }
5434 }
5435
5436 next_offset += envelope_size;
5437 _next_ordinal_to_read += 1;
5438 if next_offset >= end_offset {
5439 return Ok(());
5440 }
5441
5442 while _next_ordinal_to_read < 16 {
5444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5445 _next_ordinal_to_read += 1;
5446 next_offset += envelope_size;
5447 }
5448
5449 let next_out_of_line = decoder.next_out_of_line();
5450 let handles_before = decoder.remaining_handles();
5451 if let Some((inlined, num_bytes, num_handles)) =
5452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5453 {
5454 let member_inline_size =
5455 <RealmBuilderResolverAndRunner as fidl::encoding::TypeMarker>::inline_size(
5456 decoder.context,
5457 );
5458 if inlined != (member_inline_size <= 4) {
5459 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5460 }
5461 let inner_offset;
5462 let mut inner_depth = depth.clone();
5463 if inlined {
5464 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5465 inner_offset = next_offset;
5466 } else {
5467 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5468 inner_depth.increment()?;
5469 }
5470 let val_ref = self
5471 .realm_builder_resolver_and_runner
5472 .get_or_insert_with(|| fidl::new_empty!(RealmBuilderResolverAndRunner, D));
5473 fidl::decode!(
5474 RealmBuilderResolverAndRunner,
5475 D,
5476 val_ref,
5477 decoder,
5478 inner_offset,
5479 inner_depth
5480 )?;
5481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5482 {
5483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5484 }
5485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5487 }
5488 }
5489
5490 next_offset += envelope_size;
5491 _next_ordinal_to_read += 1;
5492 if next_offset >= end_offset {
5493 return Ok(());
5494 }
5495
5496 while _next_ordinal_to_read < 17 {
5498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5499 _next_ordinal_to_read += 1;
5500 next_offset += envelope_size;
5501 }
5502
5503 let next_out_of_line = decoder.next_out_of_line();
5504 let handles_before = decoder.remaining_handles();
5505 if let Some((inlined, num_bytes, num_handles)) =
5506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5507 {
5508 let member_inline_size = <fidl::encoding::UnboundedVector<
5509 fidl_fuchsia_component_decl__common::Capability,
5510 > as fidl::encoding::TypeMarker>::inline_size(
5511 decoder.context
5512 );
5513 if inlined != (member_inline_size <= 4) {
5514 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5515 }
5516 let inner_offset;
5517 let mut inner_depth = depth.clone();
5518 if inlined {
5519 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5520 inner_offset = next_offset;
5521 } else {
5522 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5523 inner_depth.increment()?;
5524 }
5525 let val_ref = self.builtin_capabilities.get_or_insert_with(|| {
5526 fidl::new_empty!(
5527 fidl::encoding::UnboundedVector<
5528 fidl_fuchsia_component_decl__common::Capability,
5529 >,
5530 D
5531 )
5532 });
5533 fidl::decode!(
5534 fidl::encoding::UnboundedVector<
5535 fidl_fuchsia_component_decl__common::Capability,
5536 >,
5537 D,
5538 val_ref,
5539 decoder,
5540 inner_offset,
5541 inner_depth
5542 )?;
5543 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5544 {
5545 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5546 }
5547 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5548 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5549 }
5550 }
5551
5552 next_offset += envelope_size;
5553 _next_ordinal_to_read += 1;
5554 if next_offset >= end_offset {
5555 return Ok(());
5556 }
5557
5558 while _next_ordinal_to_read < 18 {
5560 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5561 _next_ordinal_to_read += 1;
5562 next_offset += envelope_size;
5563 }
5564
5565 let next_out_of_line = decoder.next_out_of_line();
5566 let handles_before = decoder.remaining_handles();
5567 if let Some((inlined, num_bytes, num_handles)) =
5568 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5569 {
5570 let member_inline_size =
5571 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5572 if inlined != (member_inline_size <= 4) {
5573 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5574 }
5575 let inner_offset;
5576 let mut inner_depth = depth.clone();
5577 if inlined {
5578 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5579 inner_offset = next_offset;
5580 } else {
5581 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5582 inner_depth.increment()?;
5583 }
5584 let val_ref =
5585 self.enable_introspection.get_or_insert_with(|| fidl::new_empty!(bool, D));
5586 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5587 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5588 {
5589 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5590 }
5591 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5592 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5593 }
5594 }
5595
5596 next_offset += envelope_size;
5597 _next_ordinal_to_read += 1;
5598 if next_offset >= end_offset {
5599 return Ok(());
5600 }
5601
5602 while _next_ordinal_to_read < 19 {
5604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5605 _next_ordinal_to_read += 1;
5606 next_offset += envelope_size;
5607 }
5608
5609 let next_out_of_line = decoder.next_out_of_line();
5610 let handles_before = decoder.remaining_handles();
5611 if let Some((inlined, num_bytes, num_handles)) =
5612 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5613 {
5614 let member_inline_size =
5615 <AbiRevisionPolicy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5616 if inlined != (member_inline_size <= 4) {
5617 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5618 }
5619 let inner_offset;
5620 let mut inner_depth = depth.clone();
5621 if inlined {
5622 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5623 inner_offset = next_offset;
5624 } else {
5625 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5626 inner_depth.increment()?;
5627 }
5628 let val_ref = self
5629 .abi_revision_policy
5630 .get_or_insert_with(|| fidl::new_empty!(AbiRevisionPolicy, D));
5631 fidl::decode!(AbiRevisionPolicy, D, val_ref, decoder, inner_offset, inner_depth)?;
5632 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5633 {
5634 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5635 }
5636 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5637 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5638 }
5639 }
5640
5641 next_offset += envelope_size;
5642 _next_ordinal_to_read += 1;
5643 if next_offset >= end_offset {
5644 return Ok(());
5645 }
5646
5647 while _next_ordinal_to_read < 20 {
5649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5650 _next_ordinal_to_read += 1;
5651 next_offset += envelope_size;
5652 }
5653
5654 let next_out_of_line = decoder.next_out_of_line();
5655 let handles_before = decoder.remaining_handles();
5656 if let Some((inlined, num_bytes, num_handles)) =
5657 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5658 {
5659 let member_inline_size =
5660 <VmexSource as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5661 if inlined != (member_inline_size <= 4) {
5662 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5663 }
5664 let inner_offset;
5665 let mut inner_depth = depth.clone();
5666 if inlined {
5667 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5668 inner_offset = next_offset;
5669 } else {
5670 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5671 inner_depth.increment()?;
5672 }
5673 let val_ref =
5674 self.vmex_source.get_or_insert_with(|| fidl::new_empty!(VmexSource, D));
5675 fidl::decode!(VmexSource, D, val_ref, decoder, inner_offset, inner_depth)?;
5676 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5677 {
5678 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5679 }
5680 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5681 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5682 }
5683 }
5684
5685 next_offset += envelope_size;
5686 _next_ordinal_to_read += 1;
5687 if next_offset >= end_offset {
5688 return Ok(());
5689 }
5690
5691 while _next_ordinal_to_read < 21 {
5693 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5694 _next_ordinal_to_read += 1;
5695 next_offset += envelope_size;
5696 }
5697
5698 let next_out_of_line = decoder.next_out_of_line();
5699 let handles_before = decoder.remaining_handles();
5700 if let Some((inlined, num_bytes, num_handles)) =
5701 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5702 {
5703 let member_inline_size =
5704 <HealthCheck as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5705 if inlined != (member_inline_size <= 4) {
5706 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5707 }
5708 let inner_offset;
5709 let mut inner_depth = depth.clone();
5710 if inlined {
5711 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5712 inner_offset = next_offset;
5713 } else {
5714 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5715 inner_depth.increment()?;
5716 }
5717 let val_ref =
5718 self.health_check.get_or_insert_with(|| fidl::new_empty!(HealthCheck, D));
5719 fidl::decode!(HealthCheck, D, val_ref, decoder, inner_offset, inner_depth)?;
5720 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5721 {
5722 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5723 }
5724 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5725 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5726 }
5727 }
5728
5729 next_offset += envelope_size;
5730 _next_ordinal_to_read += 1;
5731 if next_offset >= end_offset {
5732 return Ok(());
5733 }
5734
5735 while _next_ordinal_to_read < 22 {
5737 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5738 _next_ordinal_to_read += 1;
5739 next_offset += envelope_size;
5740 }
5741
5742 let next_out_of_line = decoder.next_out_of_line();
5743 let handles_before = decoder.remaining_handles();
5744 if let Some((inlined, num_bytes, num_handles)) =
5745 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5746 {
5747 let member_inline_size =
5748 <TraceProvider as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5749 if inlined != (member_inline_size <= 4) {
5750 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5751 }
5752 let inner_offset;
5753 let mut inner_depth = depth.clone();
5754 if inlined {
5755 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5756 inner_offset = next_offset;
5757 } else {
5758 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5759 inner_depth.increment()?;
5760 }
5761 let val_ref =
5762 self.trace_provider.get_or_insert_with(|| fidl::new_empty!(TraceProvider, D));
5763 fidl::decode!(TraceProvider, D, val_ref, decoder, inner_offset, inner_depth)?;
5764 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5765 {
5766 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5767 }
5768 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5769 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5770 }
5771 }
5772
5773 next_offset += envelope_size;
5774 _next_ordinal_to_read += 1;
5775 if next_offset >= end_offset {
5776 return Ok(());
5777 }
5778
5779 while _next_ordinal_to_read < 23 {
5781 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5782 _next_ordinal_to_read += 1;
5783 next_offset += envelope_size;
5784 }
5785
5786 let next_out_of_line = decoder.next_out_of_line();
5787 let handles_before = decoder.remaining_handles();
5788 if let Some((inlined, num_bytes, num_handles)) =
5789 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5790 {
5791 let member_inline_size = <fidl::encoding::UnboundedVector<InjectedBundle> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5792 if inlined != (member_inline_size <= 4) {
5793 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5794 }
5795 let inner_offset;
5796 let mut inner_depth = depth.clone();
5797 if inlined {
5798 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5799 inner_offset = next_offset;
5800 } else {
5801 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5802 inner_depth.increment()?;
5803 }
5804 let val_ref = self.inject.get_or_insert_with(|| {
5805 fidl::new_empty!(fidl::encoding::UnboundedVector<InjectedBundle>, D)
5806 });
5807 fidl::decode!(
5808 fidl::encoding::UnboundedVector<InjectedBundle>,
5809 D,
5810 val_ref,
5811 decoder,
5812 inner_offset,
5813 inner_depth
5814 )?;
5815 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5816 {
5817 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5818 }
5819 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5820 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5821 }
5822 }
5823
5824 next_offset += envelope_size;
5825
5826 while next_offset < end_offset {
5828 _next_ordinal_to_read += 1;
5829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5830 next_offset += envelope_size;
5831 }
5832
5833 Ok(())
5834 }
5835 }
5836
5837 impl DebugRegistrationAllowlistEntry {
5838 #[inline(always)]
5839 fn max_ordinal_present(&self) -> u64 {
5840 if let Some(_) = self.environment_name {
5841 return 4;
5842 }
5843 if let Some(_) = self.moniker {
5844 return 3;
5845 }
5846 if let Some(_) = self.debug {
5847 return 2;
5848 }
5849 if let Some(_) = self.name {
5850 return 1;
5851 }
5852 0
5853 }
5854 }
5855
5856 impl fidl::encoding::ValueTypeMarker for DebugRegistrationAllowlistEntry {
5857 type Borrowed<'a> = &'a Self;
5858 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5859 value
5860 }
5861 }
5862
5863 unsafe impl fidl::encoding::TypeMarker for DebugRegistrationAllowlistEntry {
5864 type Owned = Self;
5865
5866 #[inline(always)]
5867 fn inline_align(_context: fidl::encoding::Context) -> usize {
5868 8
5869 }
5870
5871 #[inline(always)]
5872 fn inline_size(_context: fidl::encoding::Context) -> usize {
5873 16
5874 }
5875 }
5876
5877 unsafe impl<D: fidl::encoding::ResourceDialect>
5878 fidl::encoding::Encode<DebugRegistrationAllowlistEntry, D>
5879 for &DebugRegistrationAllowlistEntry
5880 {
5881 unsafe fn encode(
5882 self,
5883 encoder: &mut fidl::encoding::Encoder<'_, D>,
5884 offset: usize,
5885 mut depth: fidl::encoding::Depth,
5886 ) -> fidl::Result<()> {
5887 encoder.debug_check_bounds::<DebugRegistrationAllowlistEntry>(offset);
5888 let max_ordinal: u64 = self.max_ordinal_present();
5890 encoder.write_num(max_ordinal, offset);
5891 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5892 if max_ordinal == 0 {
5894 return Ok(());
5895 }
5896 depth.increment()?;
5897 let envelope_size = 8;
5898 let bytes_len = max_ordinal as usize * envelope_size;
5899 #[allow(unused_variables)]
5900 let offset = encoder.out_of_line_offset(bytes_len);
5901 let mut _prev_end_offset: usize = 0;
5902 if 1 > max_ordinal {
5903 return Ok(());
5904 }
5905
5906 let cur_offset: usize = (1 - 1) * envelope_size;
5909
5910 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5912
5913 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5918 self.name.as_ref().map(
5919 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5920 ),
5921 encoder,
5922 offset + cur_offset,
5923 depth,
5924 )?;
5925
5926 _prev_end_offset = cur_offset + envelope_size;
5927 if 2 > max_ordinal {
5928 return Ok(());
5929 }
5930
5931 let cur_offset: usize = (2 - 1) * envelope_size;
5934
5935 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5937
5938 fidl::encoding::encode_in_envelope_optional::<AllowlistedDebugRegistration, D>(
5943 self.debug
5944 .as_ref()
5945 .map(<AllowlistedDebugRegistration as fidl::encoding::ValueTypeMarker>::borrow),
5946 encoder,
5947 offset + cur_offset,
5948 depth,
5949 )?;
5950
5951 _prev_end_offset = cur_offset + envelope_size;
5952 if 3 > max_ordinal {
5953 return Ok(());
5954 }
5955
5956 let cur_offset: usize = (3 - 1) * envelope_size;
5959
5960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5962
5963 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
5968 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
5969 encoder, offset + cur_offset, depth
5970 )?;
5971
5972 _prev_end_offset = cur_offset + envelope_size;
5973 if 4 > max_ordinal {
5974 return Ok(());
5975 }
5976
5977 let cur_offset: usize = (4 - 1) * envelope_size;
5980
5981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5983
5984 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5989 self.environment_name.as_ref().map(
5990 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5991 ),
5992 encoder,
5993 offset + cur_offset,
5994 depth,
5995 )?;
5996
5997 _prev_end_offset = cur_offset + envelope_size;
5998
5999 Ok(())
6000 }
6001 }
6002
6003 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6004 for DebugRegistrationAllowlistEntry
6005 {
6006 #[inline(always)]
6007 fn new_empty() -> Self {
6008 Self::default()
6009 }
6010
6011 unsafe fn decode(
6012 &mut self,
6013 decoder: &mut fidl::encoding::Decoder<'_, D>,
6014 offset: usize,
6015 mut depth: fidl::encoding::Depth,
6016 ) -> fidl::Result<()> {
6017 decoder.debug_check_bounds::<Self>(offset);
6018 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6019 None => return Err(fidl::Error::NotNullable),
6020 Some(len) => len,
6021 };
6022 if len == 0 {
6024 return Ok(());
6025 };
6026 depth.increment()?;
6027 let envelope_size = 8;
6028 let bytes_len = len * envelope_size;
6029 let offset = decoder.out_of_line_offset(bytes_len)?;
6030 let mut _next_ordinal_to_read = 0;
6032 let mut next_offset = offset;
6033 let end_offset = offset + bytes_len;
6034 _next_ordinal_to_read += 1;
6035 if next_offset >= end_offset {
6036 return Ok(());
6037 }
6038
6039 while _next_ordinal_to_read < 1 {
6041 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6042 _next_ordinal_to_read += 1;
6043 next_offset += envelope_size;
6044 }
6045
6046 let next_out_of_line = decoder.next_out_of_line();
6047 let handles_before = decoder.remaining_handles();
6048 if let Some((inlined, num_bytes, num_handles)) =
6049 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6050 {
6051 let member_inline_size =
6052 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6053 decoder.context,
6054 );
6055 if inlined != (member_inline_size <= 4) {
6056 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6057 }
6058 let inner_offset;
6059 let mut inner_depth = depth.clone();
6060 if inlined {
6061 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6062 inner_offset = next_offset;
6063 } else {
6064 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6065 inner_depth.increment()?;
6066 }
6067 let val_ref = self
6068 .name
6069 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6070 fidl::decode!(
6071 fidl::encoding::BoundedString<255>,
6072 D,
6073 val_ref,
6074 decoder,
6075 inner_offset,
6076 inner_depth
6077 )?;
6078 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6079 {
6080 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6081 }
6082 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6083 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6084 }
6085 }
6086
6087 next_offset += envelope_size;
6088 _next_ordinal_to_read += 1;
6089 if next_offset >= end_offset {
6090 return Ok(());
6091 }
6092
6093 while _next_ordinal_to_read < 2 {
6095 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6096 _next_ordinal_to_read += 1;
6097 next_offset += envelope_size;
6098 }
6099
6100 let next_out_of_line = decoder.next_out_of_line();
6101 let handles_before = decoder.remaining_handles();
6102 if let Some((inlined, num_bytes, num_handles)) =
6103 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6104 {
6105 let member_inline_size =
6106 <AllowlistedDebugRegistration as fidl::encoding::TypeMarker>::inline_size(
6107 decoder.context,
6108 );
6109 if inlined != (member_inline_size <= 4) {
6110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6111 }
6112 let inner_offset;
6113 let mut inner_depth = depth.clone();
6114 if inlined {
6115 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6116 inner_offset = next_offset;
6117 } else {
6118 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6119 inner_depth.increment()?;
6120 }
6121 let val_ref = self
6122 .debug
6123 .get_or_insert_with(|| fidl::new_empty!(AllowlistedDebugRegistration, D));
6124 fidl::decode!(
6125 AllowlistedDebugRegistration,
6126 D,
6127 val_ref,
6128 decoder,
6129 inner_offset,
6130 inner_depth
6131 )?;
6132 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6133 {
6134 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6135 }
6136 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6137 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6138 }
6139 }
6140
6141 next_offset += envelope_size;
6142 _next_ordinal_to_read += 1;
6143 if next_offset >= end_offset {
6144 return Ok(());
6145 }
6146
6147 while _next_ordinal_to_read < 3 {
6149 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6150 _next_ordinal_to_read += 1;
6151 next_offset += envelope_size;
6152 }
6153
6154 let next_out_of_line = decoder.next_out_of_line();
6155 let handles_before = decoder.remaining_handles();
6156 if let Some((inlined, num_bytes, num_handles)) =
6157 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6158 {
6159 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6160 if inlined != (member_inline_size <= 4) {
6161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6162 }
6163 let inner_offset;
6164 let mut inner_depth = depth.clone();
6165 if inlined {
6166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6167 inner_offset = next_offset;
6168 } else {
6169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6170 inner_depth.increment()?;
6171 }
6172 let val_ref = self.moniker.get_or_insert_with(|| {
6173 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
6174 });
6175 fidl::decode!(
6176 fidl::encoding::BoundedString<4096>,
6177 D,
6178 val_ref,
6179 decoder,
6180 inner_offset,
6181 inner_depth
6182 )?;
6183 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6184 {
6185 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6186 }
6187 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6188 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6189 }
6190 }
6191
6192 next_offset += envelope_size;
6193 _next_ordinal_to_read += 1;
6194 if next_offset >= end_offset {
6195 return Ok(());
6196 }
6197
6198 while _next_ordinal_to_read < 4 {
6200 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6201 _next_ordinal_to_read += 1;
6202 next_offset += envelope_size;
6203 }
6204
6205 let next_out_of_line = decoder.next_out_of_line();
6206 let handles_before = decoder.remaining_handles();
6207 if let Some((inlined, num_bytes, num_handles)) =
6208 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6209 {
6210 let member_inline_size =
6211 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6212 decoder.context,
6213 );
6214 if inlined != (member_inline_size <= 4) {
6215 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6216 }
6217 let inner_offset;
6218 let mut inner_depth = depth.clone();
6219 if inlined {
6220 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6221 inner_offset = next_offset;
6222 } else {
6223 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6224 inner_depth.increment()?;
6225 }
6226 let val_ref = self
6227 .environment_name
6228 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6229 fidl::decode!(
6230 fidl::encoding::BoundedString<255>,
6231 D,
6232 val_ref,
6233 decoder,
6234 inner_offset,
6235 inner_depth
6236 )?;
6237 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6238 {
6239 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6240 }
6241 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6242 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6243 }
6244 }
6245
6246 next_offset += envelope_size;
6247
6248 while next_offset < end_offset {
6250 _next_ordinal_to_read += 1;
6251 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6252 next_offset += envelope_size;
6253 }
6254
6255 Ok(())
6256 }
6257 }
6258
6259 impl DebugRegistrationPolicyAllowlists {
6260 #[inline(always)]
6261 fn max_ordinal_present(&self) -> u64 {
6262 if let Some(_) = self.allowlist {
6263 return 1;
6264 }
6265 0
6266 }
6267 }
6268
6269 impl fidl::encoding::ValueTypeMarker for DebugRegistrationPolicyAllowlists {
6270 type Borrowed<'a> = &'a Self;
6271 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6272 value
6273 }
6274 }
6275
6276 unsafe impl fidl::encoding::TypeMarker for DebugRegistrationPolicyAllowlists {
6277 type Owned = Self;
6278
6279 #[inline(always)]
6280 fn inline_align(_context: fidl::encoding::Context) -> usize {
6281 8
6282 }
6283
6284 #[inline(always)]
6285 fn inline_size(_context: fidl::encoding::Context) -> usize {
6286 16
6287 }
6288 }
6289
6290 unsafe impl<D: fidl::encoding::ResourceDialect>
6291 fidl::encoding::Encode<DebugRegistrationPolicyAllowlists, D>
6292 for &DebugRegistrationPolicyAllowlists
6293 {
6294 unsafe fn encode(
6295 self,
6296 encoder: &mut fidl::encoding::Encoder<'_, D>,
6297 offset: usize,
6298 mut depth: fidl::encoding::Depth,
6299 ) -> fidl::Result<()> {
6300 encoder.debug_check_bounds::<DebugRegistrationPolicyAllowlists>(offset);
6301 let max_ordinal: u64 = self.max_ordinal_present();
6303 encoder.write_num(max_ordinal, offset);
6304 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6305 if max_ordinal == 0 {
6307 return Ok(());
6308 }
6309 depth.increment()?;
6310 let envelope_size = 8;
6311 let bytes_len = max_ordinal as usize * envelope_size;
6312 #[allow(unused_variables)]
6313 let offset = encoder.out_of_line_offset(bytes_len);
6314 let mut _prev_end_offset: usize = 0;
6315 if 1 > max_ordinal {
6316 return Ok(());
6317 }
6318
6319 let cur_offset: usize = (1 - 1) * envelope_size;
6322
6323 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6325
6326 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D>(
6331 self.allowlist.as_ref().map(<fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128> as fidl::encoding::ValueTypeMarker>::borrow),
6332 encoder, offset + cur_offset, depth
6333 )?;
6334
6335 _prev_end_offset = cur_offset + envelope_size;
6336
6337 Ok(())
6338 }
6339 }
6340
6341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6342 for DebugRegistrationPolicyAllowlists
6343 {
6344 #[inline(always)]
6345 fn new_empty() -> Self {
6346 Self::default()
6347 }
6348
6349 unsafe fn decode(
6350 &mut self,
6351 decoder: &mut fidl::encoding::Decoder<'_, D>,
6352 offset: usize,
6353 mut depth: fidl::encoding::Depth,
6354 ) -> fidl::Result<()> {
6355 decoder.debug_check_bounds::<Self>(offset);
6356 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6357 None => return Err(fidl::Error::NotNullable),
6358 Some(len) => len,
6359 };
6360 if len == 0 {
6362 return Ok(());
6363 };
6364 depth.increment()?;
6365 let envelope_size = 8;
6366 let bytes_len = len * envelope_size;
6367 let offset = decoder.out_of_line_offset(bytes_len)?;
6368 let mut _next_ordinal_to_read = 0;
6370 let mut next_offset = offset;
6371 let end_offset = offset + bytes_len;
6372 _next_ordinal_to_read += 1;
6373 if next_offset >= end_offset {
6374 return Ok(());
6375 }
6376
6377 while _next_ordinal_to_read < 1 {
6379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6380 _next_ordinal_to_read += 1;
6381 next_offset += envelope_size;
6382 }
6383
6384 let next_out_of_line = decoder.next_out_of_line();
6385 let handles_before = decoder.remaining_handles();
6386 if let Some((inlined, num_bytes, num_handles)) =
6387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6388 {
6389 let member_inline_size = <fidl::encoding::Vector<
6390 DebugRegistrationAllowlistEntry,
6391 128,
6392 > as fidl::encoding::TypeMarker>::inline_size(
6393 decoder.context
6394 );
6395 if inlined != (member_inline_size <= 4) {
6396 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6397 }
6398 let inner_offset;
6399 let mut inner_depth = depth.clone();
6400 if inlined {
6401 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6402 inner_offset = next_offset;
6403 } else {
6404 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6405 inner_depth.increment()?;
6406 }
6407 let val_ref =
6408 self.allowlist.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D));
6409 fidl::decode!(fidl::encoding::Vector<DebugRegistrationAllowlistEntry, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
6410 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6411 {
6412 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6413 }
6414 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6415 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6416 }
6417 }
6418
6419 next_offset += envelope_size;
6420
6421 while next_offset < end_offset {
6423 _next_ordinal_to_read += 1;
6424 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6425 next_offset += envelope_size;
6426 }
6427
6428 Ok(())
6429 }
6430 }
6431
6432 impl Environment {
6433 #[inline(always)]
6434 fn max_ordinal_present(&self) -> u64 {
6435 if let Some(_) = self.moniker {
6436 return 2;
6437 }
6438 if let Some(_) = self.capability {
6439 return 1;
6440 }
6441 0
6442 }
6443 }
6444
6445 impl fidl::encoding::ValueTypeMarker for Environment {
6446 type Borrowed<'a> = &'a Self;
6447 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6448 value
6449 }
6450 }
6451
6452 unsafe impl fidl::encoding::TypeMarker for Environment {
6453 type Owned = Self;
6454
6455 #[inline(always)]
6456 fn inline_align(_context: fidl::encoding::Context) -> usize {
6457 8
6458 }
6459
6460 #[inline(always)]
6461 fn inline_size(_context: fidl::encoding::Context) -> usize {
6462 16
6463 }
6464 }
6465
6466 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Environment, D>
6467 for &Environment
6468 {
6469 unsafe fn encode(
6470 self,
6471 encoder: &mut fidl::encoding::Encoder<'_, D>,
6472 offset: usize,
6473 mut depth: fidl::encoding::Depth,
6474 ) -> fidl::Result<()> {
6475 encoder.debug_check_bounds::<Environment>(offset);
6476 let max_ordinal: u64 = self.max_ordinal_present();
6478 encoder.write_num(max_ordinal, offset);
6479 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6480 if max_ordinal == 0 {
6482 return Ok(());
6483 }
6484 depth.increment()?;
6485 let envelope_size = 8;
6486 let bytes_len = max_ordinal as usize * envelope_size;
6487 #[allow(unused_variables)]
6488 let offset = encoder.out_of_line_offset(bytes_len);
6489 let mut _prev_end_offset: usize = 0;
6490 if 1 > max_ordinal {
6491 return Ok(());
6492 }
6493
6494 let cur_offset: usize = (1 - 1) * envelope_size;
6497
6498 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6500
6501 fidl::encoding::encode_in_envelope_optional::<ComponentCapability, D>(
6506 self.capability
6507 .as_ref()
6508 .map(<ComponentCapability as fidl::encoding::ValueTypeMarker>::borrow),
6509 encoder,
6510 offset + cur_offset,
6511 depth,
6512 )?;
6513
6514 _prev_end_offset = cur_offset + envelope_size;
6515 if 2 > max_ordinal {
6516 return Ok(());
6517 }
6518
6519 let cur_offset: usize = (2 - 1) * envelope_size;
6522
6523 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6525
6526 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
6531 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
6532 encoder, offset + cur_offset, depth
6533 )?;
6534
6535 _prev_end_offset = cur_offset + envelope_size;
6536
6537 Ok(())
6538 }
6539 }
6540
6541 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Environment {
6542 #[inline(always)]
6543 fn new_empty() -> Self {
6544 Self::default()
6545 }
6546
6547 unsafe fn decode(
6548 &mut self,
6549 decoder: &mut fidl::encoding::Decoder<'_, D>,
6550 offset: usize,
6551 mut depth: fidl::encoding::Depth,
6552 ) -> fidl::Result<()> {
6553 decoder.debug_check_bounds::<Self>(offset);
6554 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6555 None => return Err(fidl::Error::NotNullable),
6556 Some(len) => len,
6557 };
6558 if len == 0 {
6560 return Ok(());
6561 };
6562 depth.increment()?;
6563 let envelope_size = 8;
6564 let bytes_len = len * envelope_size;
6565 let offset = decoder.out_of_line_offset(bytes_len)?;
6566 let mut _next_ordinal_to_read = 0;
6568 let mut next_offset = offset;
6569 let end_offset = offset + bytes_len;
6570 _next_ordinal_to_read += 1;
6571 if next_offset >= end_offset {
6572 return Ok(());
6573 }
6574
6575 while _next_ordinal_to_read < 1 {
6577 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6578 _next_ordinal_to_read += 1;
6579 next_offset += envelope_size;
6580 }
6581
6582 let next_out_of_line = decoder.next_out_of_line();
6583 let handles_before = decoder.remaining_handles();
6584 if let Some((inlined, num_bytes, num_handles)) =
6585 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6586 {
6587 let member_inline_size =
6588 <ComponentCapability as fidl::encoding::TypeMarker>::inline_size(
6589 decoder.context,
6590 );
6591 if inlined != (member_inline_size <= 4) {
6592 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6593 }
6594 let inner_offset;
6595 let mut inner_depth = depth.clone();
6596 if inlined {
6597 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6598 inner_offset = next_offset;
6599 } else {
6600 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6601 inner_depth.increment()?;
6602 }
6603 let val_ref =
6604 self.capability.get_or_insert_with(|| fidl::new_empty!(ComponentCapability, D));
6605 fidl::decode!(ComponentCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
6606 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6607 {
6608 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6609 }
6610 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6611 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6612 }
6613 }
6614
6615 next_offset += envelope_size;
6616 _next_ordinal_to_read += 1;
6617 if next_offset >= end_offset {
6618 return Ok(());
6619 }
6620
6621 while _next_ordinal_to_read < 2 {
6623 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6624 _next_ordinal_to_read += 1;
6625 next_offset += envelope_size;
6626 }
6627
6628 let next_out_of_line = decoder.next_out_of_line();
6629 let handles_before = decoder.remaining_handles();
6630 if let Some((inlined, num_bytes, num_handles)) =
6631 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6632 {
6633 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6634 if inlined != (member_inline_size <= 4) {
6635 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6636 }
6637 let inner_offset;
6638 let mut inner_depth = depth.clone();
6639 if inlined {
6640 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6641 inner_offset = next_offset;
6642 } else {
6643 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6644 inner_depth.increment()?;
6645 }
6646 let val_ref = self.moniker.get_or_insert_with(|| {
6647 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
6648 });
6649 fidl::decode!(
6650 fidl::encoding::BoundedString<4096>,
6651 D,
6652 val_ref,
6653 decoder,
6654 inner_offset,
6655 inner_depth
6656 )?;
6657 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6658 {
6659 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6660 }
6661 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6662 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6663 }
6664 }
6665
6666 next_offset += envelope_size;
6667
6668 while next_offset < end_offset {
6670 _next_ordinal_to_read += 1;
6671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6672 next_offset += envelope_size;
6673 }
6674
6675 Ok(())
6676 }
6677 }
6678
6679 impl EnvironmentSource {
6680 #[inline(always)]
6681 fn max_ordinal_present(&self) -> u64 {
6682 if let Some(_) = self.source {
6683 return 2;
6684 }
6685 if let Some(_) = self.source_name {
6686 return 1;
6687 }
6688 0
6689 }
6690 }
6691
6692 impl fidl::encoding::ValueTypeMarker for EnvironmentSource {
6693 type Borrowed<'a> = &'a Self;
6694 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6695 value
6696 }
6697 }
6698
6699 unsafe impl fidl::encoding::TypeMarker for EnvironmentSource {
6700 type Owned = Self;
6701
6702 #[inline(always)]
6703 fn inline_align(_context: fidl::encoding::Context) -> usize {
6704 8
6705 }
6706
6707 #[inline(always)]
6708 fn inline_size(_context: fidl::encoding::Context) -> usize {
6709 16
6710 }
6711 }
6712
6713 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnvironmentSource, D>
6714 for &EnvironmentSource
6715 {
6716 unsafe fn encode(
6717 self,
6718 encoder: &mut fidl::encoding::Encoder<'_, D>,
6719 offset: usize,
6720 mut depth: fidl::encoding::Depth,
6721 ) -> fidl::Result<()> {
6722 encoder.debug_check_bounds::<EnvironmentSource>(offset);
6723 let max_ordinal: u64 = self.max_ordinal_present();
6725 encoder.write_num(max_ordinal, offset);
6726 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6727 if max_ordinal == 0 {
6729 return Ok(());
6730 }
6731 depth.increment()?;
6732 let envelope_size = 8;
6733 let bytes_len = max_ordinal as usize * envelope_size;
6734 #[allow(unused_variables)]
6735 let offset = encoder.out_of_line_offset(bytes_len);
6736 let mut _prev_end_offset: usize = 0;
6737 if 1 > max_ordinal {
6738 return Ok(());
6739 }
6740
6741 let cur_offset: usize = (1 - 1) * envelope_size;
6744
6745 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6747
6748 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
6753 self.source_name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
6754 encoder, offset + cur_offset, depth
6755 )?;
6756
6757 _prev_end_offset = cur_offset + envelope_size;
6758 if 2 > max_ordinal {
6759 return Ok(());
6760 }
6761
6762 let cur_offset: usize = (2 - 1) * envelope_size;
6765
6766 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6768
6769 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Ref, D>(
6774 self.source.as_ref().map(<fidl_fuchsia_component_decl__common::Ref as fidl::encoding::ValueTypeMarker>::borrow),
6775 encoder, offset + cur_offset, depth
6776 )?;
6777
6778 _prev_end_offset = cur_offset + envelope_size;
6779
6780 Ok(())
6781 }
6782 }
6783
6784 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnvironmentSource {
6785 #[inline(always)]
6786 fn new_empty() -> Self {
6787 Self::default()
6788 }
6789
6790 unsafe fn decode(
6791 &mut self,
6792 decoder: &mut fidl::encoding::Decoder<'_, D>,
6793 offset: usize,
6794 mut depth: fidl::encoding::Depth,
6795 ) -> fidl::Result<()> {
6796 decoder.debug_check_bounds::<Self>(offset);
6797 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6798 None => return Err(fidl::Error::NotNullable),
6799 Some(len) => len,
6800 };
6801 if len == 0 {
6803 return Ok(());
6804 };
6805 depth.increment()?;
6806 let envelope_size = 8;
6807 let bytes_len = len * envelope_size;
6808 let offset = decoder.out_of_line_offset(bytes_len)?;
6809 let mut _next_ordinal_to_read = 0;
6811 let mut next_offset = offset;
6812 let end_offset = offset + bytes_len;
6813 _next_ordinal_to_read += 1;
6814 if next_offset >= end_offset {
6815 return Ok(());
6816 }
6817
6818 while _next_ordinal_to_read < 1 {
6820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6821 _next_ordinal_to_read += 1;
6822 next_offset += envelope_size;
6823 }
6824
6825 let next_out_of_line = decoder.next_out_of_line();
6826 let handles_before = decoder.remaining_handles();
6827 if let Some((inlined, num_bytes, num_handles)) =
6828 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6829 {
6830 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6831 if inlined != (member_inline_size <= 4) {
6832 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6833 }
6834 let inner_offset;
6835 let mut inner_depth = depth.clone();
6836 if inlined {
6837 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6838 inner_offset = next_offset;
6839 } else {
6840 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6841 inner_depth.increment()?;
6842 }
6843 let val_ref = self.source_name.get_or_insert_with(|| {
6844 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
6845 });
6846 fidl::decode!(
6847 fidl::encoding::BoundedString<1024>,
6848 D,
6849 val_ref,
6850 decoder,
6851 inner_offset,
6852 inner_depth
6853 )?;
6854 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6855 {
6856 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6857 }
6858 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6859 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6860 }
6861 }
6862
6863 next_offset += envelope_size;
6864 _next_ordinal_to_read += 1;
6865 if next_offset >= end_offset {
6866 return Ok(());
6867 }
6868
6869 while _next_ordinal_to_read < 2 {
6871 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6872 _next_ordinal_to_read += 1;
6873 next_offset += envelope_size;
6874 }
6875
6876 let next_out_of_line = decoder.next_out_of_line();
6877 let handles_before = decoder.remaining_handles();
6878 if let Some((inlined, num_bytes, num_handles)) =
6879 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6880 {
6881 let member_inline_size = <fidl_fuchsia_component_decl__common::Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6882 if inlined != (member_inline_size <= 4) {
6883 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6884 }
6885 let inner_offset;
6886 let mut inner_depth = depth.clone();
6887 if inlined {
6888 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6889 inner_offset = next_offset;
6890 } else {
6891 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6892 inner_depth.increment()?;
6893 }
6894 let val_ref = self.source.get_or_insert_with(|| {
6895 fidl::new_empty!(fidl_fuchsia_component_decl__common::Ref, D)
6896 });
6897 fidl::decode!(
6898 fidl_fuchsia_component_decl__common::Ref,
6899 D,
6900 val_ref,
6901 decoder,
6902 inner_offset,
6903 inner_depth
6904 )?;
6905 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6906 {
6907 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6908 }
6909 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6910 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6911 }
6912 }
6913
6914 next_offset += envelope_size;
6915
6916 while next_offset < end_offset {
6918 _next_ordinal_to_read += 1;
6919 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6920 next_offset += envelope_size;
6921 }
6922
6923 Ok(())
6924 }
6925 }
6926
6927 impl EventStreamRouteMetadata {
6928 #[inline(always)]
6929 fn max_ordinal_present(&self) -> u64 {
6930 if let Some(_) = self.scope {
6931 return 2;
6932 }
6933 if let Some(_) = self.scope_moniker {
6934 return 1;
6935 }
6936 0
6937 }
6938 }
6939
6940 impl fidl::encoding::ValueTypeMarker for EventStreamRouteMetadata {
6941 type Borrowed<'a> = &'a Self;
6942 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6943 value
6944 }
6945 }
6946
6947 unsafe impl fidl::encoding::TypeMarker for EventStreamRouteMetadata {
6948 type Owned = Self;
6949
6950 #[inline(always)]
6951 fn inline_align(_context: fidl::encoding::Context) -> usize {
6952 8
6953 }
6954
6955 #[inline(always)]
6956 fn inline_size(_context: fidl::encoding::Context) -> usize {
6957 16
6958 }
6959 }
6960
6961 unsafe impl<D: fidl::encoding::ResourceDialect>
6962 fidl::encoding::Encode<EventStreamRouteMetadata, D> for &EventStreamRouteMetadata
6963 {
6964 unsafe fn encode(
6965 self,
6966 encoder: &mut fidl::encoding::Encoder<'_, D>,
6967 offset: usize,
6968 mut depth: fidl::encoding::Depth,
6969 ) -> fidl::Result<()> {
6970 encoder.debug_check_bounds::<EventStreamRouteMetadata>(offset);
6971 let max_ordinal: u64 = self.max_ordinal_present();
6973 encoder.write_num(max_ordinal, offset);
6974 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6975 if max_ordinal == 0 {
6977 return Ok(());
6978 }
6979 depth.increment()?;
6980 let envelope_size = 8;
6981 let bytes_len = max_ordinal as usize * envelope_size;
6982 #[allow(unused_variables)]
6983 let offset = encoder.out_of_line_offset(bytes_len);
6984 let mut _prev_end_offset: usize = 0;
6985 if 1 > max_ordinal {
6986 return Ok(());
6987 }
6988
6989 let cur_offset: usize = (1 - 1) * envelope_size;
6992
6993 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6995
6996 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
7001 self.scope_moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
7002 encoder, offset + cur_offset, depth
7003 )?;
7004
7005 _prev_end_offset = cur_offset + envelope_size;
7006 if 2 > max_ordinal {
7007 return Ok(());
7008 }
7009
7010 let cur_offset: usize = (2 - 1) * envelope_size;
7013
7014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7016
7017 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>, D>(
7022 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref> as fidl::encoding::ValueTypeMarker>::borrow),
7023 encoder, offset + cur_offset, depth
7024 )?;
7025
7026 _prev_end_offset = cur_offset + envelope_size;
7027
7028 Ok(())
7029 }
7030 }
7031
7032 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7033 for EventStreamRouteMetadata
7034 {
7035 #[inline(always)]
7036 fn new_empty() -> Self {
7037 Self::default()
7038 }
7039
7040 unsafe fn decode(
7041 &mut self,
7042 decoder: &mut fidl::encoding::Decoder<'_, D>,
7043 offset: usize,
7044 mut depth: fidl::encoding::Depth,
7045 ) -> fidl::Result<()> {
7046 decoder.debug_check_bounds::<Self>(offset);
7047 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7048 None => return Err(fidl::Error::NotNullable),
7049 Some(len) => len,
7050 };
7051 if len == 0 {
7053 return Ok(());
7054 };
7055 depth.increment()?;
7056 let envelope_size = 8;
7057 let bytes_len = len * envelope_size;
7058 let offset = decoder.out_of_line_offset(bytes_len)?;
7059 let mut _next_ordinal_to_read = 0;
7061 let mut next_offset = offset;
7062 let end_offset = offset + bytes_len;
7063 _next_ordinal_to_read += 1;
7064 if next_offset >= end_offset {
7065 return Ok(());
7066 }
7067
7068 while _next_ordinal_to_read < 1 {
7070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7071 _next_ordinal_to_read += 1;
7072 next_offset += envelope_size;
7073 }
7074
7075 let next_out_of_line = decoder.next_out_of_line();
7076 let handles_before = decoder.remaining_handles();
7077 if let Some((inlined, num_bytes, num_handles)) =
7078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7079 {
7080 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7081 if inlined != (member_inline_size <= 4) {
7082 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7083 }
7084 let inner_offset;
7085 let mut inner_depth = depth.clone();
7086 if inlined {
7087 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7088 inner_offset = next_offset;
7089 } else {
7090 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7091 inner_depth.increment()?;
7092 }
7093 let val_ref = self.scope_moniker.get_or_insert_with(|| {
7094 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
7095 });
7096 fidl::decode!(
7097 fidl::encoding::BoundedString<4096>,
7098 D,
7099 val_ref,
7100 decoder,
7101 inner_offset,
7102 inner_depth
7103 )?;
7104 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7105 {
7106 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7107 }
7108 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7109 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7110 }
7111 }
7112
7113 next_offset += envelope_size;
7114 _next_ordinal_to_read += 1;
7115 if next_offset >= end_offset {
7116 return Ok(());
7117 }
7118
7119 while _next_ordinal_to_read < 2 {
7121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7122 _next_ordinal_to_read += 1;
7123 next_offset += envelope_size;
7124 }
7125
7126 let next_out_of_line = decoder.next_out_of_line();
7127 let handles_before = decoder.remaining_handles();
7128 if let Some((inlined, num_bytes, num_handles)) =
7129 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7130 {
7131 let member_inline_size = <fidl::encoding::UnboundedVector<
7132 fidl_fuchsia_component_decl__common::Ref,
7133 > as fidl::encoding::TypeMarker>::inline_size(
7134 decoder.context
7135 );
7136 if inlined != (member_inline_size <= 4) {
7137 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7138 }
7139 let inner_offset;
7140 let mut inner_depth = depth.clone();
7141 if inlined {
7142 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7143 inner_offset = next_offset;
7144 } else {
7145 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7146 inner_depth.increment()?;
7147 }
7148 let val_ref = self.scope.get_or_insert_with(|| {
7149 fidl::new_empty!(
7150 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
7151 D
7152 )
7153 });
7154 fidl::decode!(
7155 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
7156 D,
7157 val_ref,
7158 decoder,
7159 inner_offset,
7160 inner_depth
7161 )?;
7162 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7163 {
7164 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7165 }
7166 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7167 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7168 }
7169 }
7170
7171 next_offset += envelope_size;
7172
7173 while next_offset < end_offset {
7175 _next_ordinal_to_read += 1;
7176 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7177 next_offset += envelope_size;
7178 }
7179
7180 Ok(())
7181 }
7182 }
7183
7184 impl FilteredAggregateProvider {
7185 #[inline(always)]
7186 fn max_ordinal_present(&self) -> u64 {
7187 if let Some(_) = self.sources {
7188 return 4;
7189 }
7190 if let Some(_) = self.offer_service_decls {
7191 return 3;
7192 }
7193 if let Some(_) = self.moniker {
7194 return 2;
7195 }
7196 if let Some(_) = self.capability {
7197 return 1;
7198 }
7199 0
7200 }
7201 }
7202
7203 impl fidl::encoding::ValueTypeMarker for FilteredAggregateProvider {
7204 type Borrowed<'a> = &'a Self;
7205 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7206 value
7207 }
7208 }
7209
7210 unsafe impl fidl::encoding::TypeMarker for FilteredAggregateProvider {
7211 type Owned = Self;
7212
7213 #[inline(always)]
7214 fn inline_align(_context: fidl::encoding::Context) -> usize {
7215 8
7216 }
7217
7218 #[inline(always)]
7219 fn inline_size(_context: fidl::encoding::Context) -> usize {
7220 16
7221 }
7222 }
7223
7224 unsafe impl<D: fidl::encoding::ResourceDialect>
7225 fidl::encoding::Encode<FilteredAggregateProvider, D> for &FilteredAggregateProvider
7226 {
7227 unsafe fn encode(
7228 self,
7229 encoder: &mut fidl::encoding::Encoder<'_, D>,
7230 offset: usize,
7231 mut depth: fidl::encoding::Depth,
7232 ) -> fidl::Result<()> {
7233 encoder.debug_check_bounds::<FilteredAggregateProvider>(offset);
7234 let max_ordinal: u64 = self.max_ordinal_present();
7236 encoder.write_num(max_ordinal, offset);
7237 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7238 if max_ordinal == 0 {
7240 return Ok(());
7241 }
7242 depth.increment()?;
7243 let envelope_size = 8;
7244 let bytes_len = max_ordinal as usize * envelope_size;
7245 #[allow(unused_variables)]
7246 let offset = encoder.out_of_line_offset(bytes_len);
7247 let mut _prev_end_offset: usize = 0;
7248 if 1 > max_ordinal {
7249 return Ok(());
7250 }
7251
7252 let cur_offset: usize = (1 - 1) * envelope_size;
7255
7256 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7258
7259 fidl::encoding::encode_in_envelope_optional::<AggregateCapability, D>(
7264 self.capability
7265 .as_ref()
7266 .map(<AggregateCapability as fidl::encoding::ValueTypeMarker>::borrow),
7267 encoder,
7268 offset + cur_offset,
7269 depth,
7270 )?;
7271
7272 _prev_end_offset = cur_offset + envelope_size;
7273 if 2 > max_ordinal {
7274 return Ok(());
7275 }
7276
7277 let cur_offset: usize = (2 - 1) * envelope_size;
7280
7281 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7283
7284 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
7289 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
7290 encoder, offset + cur_offset, depth
7291 )?;
7292
7293 _prev_end_offset = cur_offset + envelope_size;
7294 if 3 > max_ordinal {
7295 return Ok(());
7296 }
7297
7298 let cur_offset: usize = (3 - 1) * envelope_size;
7301
7302 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7304
7305 fidl::encoding::encode_in_envelope_optional::<
7310 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::OfferService>,
7311 D,
7312 >(
7313 self.offer_service_decls.as_ref().map(
7314 <fidl::encoding::UnboundedVector<
7315 fidl_fuchsia_component_decl__common::OfferService,
7316 > as fidl::encoding::ValueTypeMarker>::borrow,
7317 ),
7318 encoder,
7319 offset + cur_offset,
7320 depth,
7321 )?;
7322
7323 _prev_end_offset = cur_offset + envelope_size;
7324 if 4 > max_ordinal {
7325 return Ok(());
7326 }
7327
7328 let cur_offset: usize = (4 - 1) * envelope_size;
7331
7332 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7334
7335 fidl::encoding::encode_in_envelope_optional::<Sources, D>(
7340 self.sources.as_ref().map(<Sources as fidl::encoding::ValueTypeMarker>::borrow),
7341 encoder,
7342 offset + cur_offset,
7343 depth,
7344 )?;
7345
7346 _prev_end_offset = cur_offset + envelope_size;
7347
7348 Ok(())
7349 }
7350 }
7351
7352 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7353 for FilteredAggregateProvider
7354 {
7355 #[inline(always)]
7356 fn new_empty() -> Self {
7357 Self::default()
7358 }
7359
7360 unsafe fn decode(
7361 &mut self,
7362 decoder: &mut fidl::encoding::Decoder<'_, D>,
7363 offset: usize,
7364 mut depth: fidl::encoding::Depth,
7365 ) -> fidl::Result<()> {
7366 decoder.debug_check_bounds::<Self>(offset);
7367 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7368 None => return Err(fidl::Error::NotNullable),
7369 Some(len) => len,
7370 };
7371 if len == 0 {
7373 return Ok(());
7374 };
7375 depth.increment()?;
7376 let envelope_size = 8;
7377 let bytes_len = len * envelope_size;
7378 let offset = decoder.out_of_line_offset(bytes_len)?;
7379 let mut _next_ordinal_to_read = 0;
7381 let mut next_offset = offset;
7382 let end_offset = offset + bytes_len;
7383 _next_ordinal_to_read += 1;
7384 if next_offset >= end_offset {
7385 return Ok(());
7386 }
7387
7388 while _next_ordinal_to_read < 1 {
7390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7391 _next_ordinal_to_read += 1;
7392 next_offset += envelope_size;
7393 }
7394
7395 let next_out_of_line = decoder.next_out_of_line();
7396 let handles_before = decoder.remaining_handles();
7397 if let Some((inlined, num_bytes, num_handles)) =
7398 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7399 {
7400 let member_inline_size =
7401 <AggregateCapability as fidl::encoding::TypeMarker>::inline_size(
7402 decoder.context,
7403 );
7404 if inlined != (member_inline_size <= 4) {
7405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7406 }
7407 let inner_offset;
7408 let mut inner_depth = depth.clone();
7409 if inlined {
7410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7411 inner_offset = next_offset;
7412 } else {
7413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7414 inner_depth.increment()?;
7415 }
7416 let val_ref =
7417 self.capability.get_or_insert_with(|| fidl::new_empty!(AggregateCapability, D));
7418 fidl::decode!(AggregateCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
7419 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7420 {
7421 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7422 }
7423 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7424 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7425 }
7426 }
7427
7428 next_offset += envelope_size;
7429 _next_ordinal_to_read += 1;
7430 if next_offset >= end_offset {
7431 return Ok(());
7432 }
7433
7434 while _next_ordinal_to_read < 2 {
7436 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7437 _next_ordinal_to_read += 1;
7438 next_offset += envelope_size;
7439 }
7440
7441 let next_out_of_line = decoder.next_out_of_line();
7442 let handles_before = decoder.remaining_handles();
7443 if let Some((inlined, num_bytes, num_handles)) =
7444 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7445 {
7446 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7447 if inlined != (member_inline_size <= 4) {
7448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7449 }
7450 let inner_offset;
7451 let mut inner_depth = depth.clone();
7452 if inlined {
7453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7454 inner_offset = next_offset;
7455 } else {
7456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7457 inner_depth.increment()?;
7458 }
7459 let val_ref = self.moniker.get_or_insert_with(|| {
7460 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
7461 });
7462 fidl::decode!(
7463 fidl::encoding::BoundedString<4096>,
7464 D,
7465 val_ref,
7466 decoder,
7467 inner_offset,
7468 inner_depth
7469 )?;
7470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7471 {
7472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7473 }
7474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7476 }
7477 }
7478
7479 next_offset += envelope_size;
7480 _next_ordinal_to_read += 1;
7481 if next_offset >= end_offset {
7482 return Ok(());
7483 }
7484
7485 while _next_ordinal_to_read < 3 {
7487 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7488 _next_ordinal_to_read += 1;
7489 next_offset += envelope_size;
7490 }
7491
7492 let next_out_of_line = decoder.next_out_of_line();
7493 let handles_before = decoder.remaining_handles();
7494 if let Some((inlined, num_bytes, num_handles)) =
7495 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7496 {
7497 let member_inline_size = <fidl::encoding::UnboundedVector<
7498 fidl_fuchsia_component_decl__common::OfferService,
7499 > as fidl::encoding::TypeMarker>::inline_size(
7500 decoder.context
7501 );
7502 if inlined != (member_inline_size <= 4) {
7503 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7504 }
7505 let inner_offset;
7506 let mut inner_depth = depth.clone();
7507 if inlined {
7508 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7509 inner_offset = next_offset;
7510 } else {
7511 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7512 inner_depth.increment()?;
7513 }
7514 let val_ref = self.offer_service_decls.get_or_insert_with(|| {
7515 fidl::new_empty!(
7516 fidl::encoding::UnboundedVector<
7517 fidl_fuchsia_component_decl__common::OfferService,
7518 >,
7519 D
7520 )
7521 });
7522 fidl::decode!(
7523 fidl::encoding::UnboundedVector<
7524 fidl_fuchsia_component_decl__common::OfferService,
7525 >,
7526 D,
7527 val_ref,
7528 decoder,
7529 inner_offset,
7530 inner_depth
7531 )?;
7532 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7533 {
7534 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7535 }
7536 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7537 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7538 }
7539 }
7540
7541 next_offset += envelope_size;
7542 _next_ordinal_to_read += 1;
7543 if next_offset >= end_offset {
7544 return Ok(());
7545 }
7546
7547 while _next_ordinal_to_read < 4 {
7549 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7550 _next_ordinal_to_read += 1;
7551 next_offset += envelope_size;
7552 }
7553
7554 let next_out_of_line = decoder.next_out_of_line();
7555 let handles_before = decoder.remaining_handles();
7556 if let Some((inlined, num_bytes, num_handles)) =
7557 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7558 {
7559 let member_inline_size =
7560 <Sources as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7561 if inlined != (member_inline_size <= 4) {
7562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7563 }
7564 let inner_offset;
7565 let mut inner_depth = depth.clone();
7566 if inlined {
7567 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7568 inner_offset = next_offset;
7569 } else {
7570 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7571 inner_depth.increment()?;
7572 }
7573 let val_ref = self.sources.get_or_insert_with(|| fidl::new_empty!(Sources, D));
7574 fidl::decode!(Sources, D, val_ref, decoder, inner_offset, inner_depth)?;
7575 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7576 {
7577 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7578 }
7579 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7580 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7581 }
7582 }
7583
7584 next_offset += envelope_size;
7585
7586 while next_offset < end_offset {
7588 _next_ordinal_to_read += 1;
7589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7590 next_offset += envelope_size;
7591 }
7592
7593 Ok(())
7594 }
7595 }
7596
7597 impl FilteredProvider {
7598 #[inline(always)]
7599 fn max_ordinal_present(&self) -> u64 {
7600 if let Some(_) = self.offer_service_decl {
7601 return 4;
7602 }
7603 if let Some(_) = self.service_capability {
7604 return 3;
7605 }
7606 if let Some(_) = self.moniker {
7607 return 2;
7608 }
7609 if let Some(_) = self.capability {
7610 return 1;
7611 }
7612 0
7613 }
7614 }
7615
7616 impl fidl::encoding::ValueTypeMarker for FilteredProvider {
7617 type Borrowed<'a> = &'a Self;
7618 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7619 value
7620 }
7621 }
7622
7623 unsafe impl fidl::encoding::TypeMarker for FilteredProvider {
7624 type Owned = Self;
7625
7626 #[inline(always)]
7627 fn inline_align(_context: fidl::encoding::Context) -> usize {
7628 8
7629 }
7630
7631 #[inline(always)]
7632 fn inline_size(_context: fidl::encoding::Context) -> usize {
7633 16
7634 }
7635 }
7636
7637 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FilteredProvider, D>
7638 for &FilteredProvider
7639 {
7640 unsafe fn encode(
7641 self,
7642 encoder: &mut fidl::encoding::Encoder<'_, D>,
7643 offset: usize,
7644 mut depth: fidl::encoding::Depth,
7645 ) -> fidl::Result<()> {
7646 encoder.debug_check_bounds::<FilteredProvider>(offset);
7647 let max_ordinal: u64 = self.max_ordinal_present();
7649 encoder.write_num(max_ordinal, offset);
7650 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7651 if max_ordinal == 0 {
7653 return Ok(());
7654 }
7655 depth.increment()?;
7656 let envelope_size = 8;
7657 let bytes_len = max_ordinal as usize * envelope_size;
7658 #[allow(unused_variables)]
7659 let offset = encoder.out_of_line_offset(bytes_len);
7660 let mut _prev_end_offset: usize = 0;
7661 if 1 > max_ordinal {
7662 return Ok(());
7663 }
7664
7665 let cur_offset: usize = (1 - 1) * envelope_size;
7668
7669 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7671
7672 fidl::encoding::encode_in_envelope_optional::<AggregateCapability, D>(
7677 self.capability
7678 .as_ref()
7679 .map(<AggregateCapability as fidl::encoding::ValueTypeMarker>::borrow),
7680 encoder,
7681 offset + cur_offset,
7682 depth,
7683 )?;
7684
7685 _prev_end_offset = cur_offset + envelope_size;
7686 if 2 > max_ordinal {
7687 return Ok(());
7688 }
7689
7690 let cur_offset: usize = (2 - 1) * envelope_size;
7693
7694 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7696
7697 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
7702 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
7703 encoder, offset + cur_offset, depth
7704 )?;
7705
7706 _prev_end_offset = cur_offset + envelope_size;
7707 if 3 > max_ordinal {
7708 return Ok(());
7709 }
7710
7711 let cur_offset: usize = (3 - 1) * envelope_size;
7714
7715 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7717
7718 fidl::encoding::encode_in_envelope_optional::<ComponentCapability, D>(
7723 self.service_capability
7724 .as_ref()
7725 .map(<ComponentCapability as fidl::encoding::ValueTypeMarker>::borrow),
7726 encoder,
7727 offset + cur_offset,
7728 depth,
7729 )?;
7730
7731 _prev_end_offset = cur_offset + envelope_size;
7732 if 4 > max_ordinal {
7733 return Ok(());
7734 }
7735
7736 let cur_offset: usize = (4 - 1) * envelope_size;
7739
7740 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7742
7743 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::OfferService, D>(
7748 self.offer_service_decl.as_ref().map(<fidl_fuchsia_component_decl__common::OfferService as fidl::encoding::ValueTypeMarker>::borrow),
7749 encoder, offset + cur_offset, depth
7750 )?;
7751
7752 _prev_end_offset = cur_offset + envelope_size;
7753
7754 Ok(())
7755 }
7756 }
7757
7758 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FilteredProvider {
7759 #[inline(always)]
7760 fn new_empty() -> Self {
7761 Self::default()
7762 }
7763
7764 unsafe fn decode(
7765 &mut self,
7766 decoder: &mut fidl::encoding::Decoder<'_, D>,
7767 offset: usize,
7768 mut depth: fidl::encoding::Depth,
7769 ) -> fidl::Result<()> {
7770 decoder.debug_check_bounds::<Self>(offset);
7771 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7772 None => return Err(fidl::Error::NotNullable),
7773 Some(len) => len,
7774 };
7775 if len == 0 {
7777 return Ok(());
7778 };
7779 depth.increment()?;
7780 let envelope_size = 8;
7781 let bytes_len = len * envelope_size;
7782 let offset = decoder.out_of_line_offset(bytes_len)?;
7783 let mut _next_ordinal_to_read = 0;
7785 let mut next_offset = offset;
7786 let end_offset = offset + bytes_len;
7787 _next_ordinal_to_read += 1;
7788 if next_offset >= end_offset {
7789 return Ok(());
7790 }
7791
7792 while _next_ordinal_to_read < 1 {
7794 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7795 _next_ordinal_to_read += 1;
7796 next_offset += envelope_size;
7797 }
7798
7799 let next_out_of_line = decoder.next_out_of_line();
7800 let handles_before = decoder.remaining_handles();
7801 if let Some((inlined, num_bytes, num_handles)) =
7802 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7803 {
7804 let member_inline_size =
7805 <AggregateCapability as fidl::encoding::TypeMarker>::inline_size(
7806 decoder.context,
7807 );
7808 if inlined != (member_inline_size <= 4) {
7809 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7810 }
7811 let inner_offset;
7812 let mut inner_depth = depth.clone();
7813 if inlined {
7814 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7815 inner_offset = next_offset;
7816 } else {
7817 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7818 inner_depth.increment()?;
7819 }
7820 let val_ref =
7821 self.capability.get_or_insert_with(|| fidl::new_empty!(AggregateCapability, D));
7822 fidl::decode!(AggregateCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
7823 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7824 {
7825 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7826 }
7827 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7828 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7829 }
7830 }
7831
7832 next_offset += envelope_size;
7833 _next_ordinal_to_read += 1;
7834 if next_offset >= end_offset {
7835 return Ok(());
7836 }
7837
7838 while _next_ordinal_to_read < 2 {
7840 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7841 _next_ordinal_to_read += 1;
7842 next_offset += envelope_size;
7843 }
7844
7845 let next_out_of_line = decoder.next_out_of_line();
7846 let handles_before = decoder.remaining_handles();
7847 if let Some((inlined, num_bytes, num_handles)) =
7848 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7849 {
7850 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7851 if inlined != (member_inline_size <= 4) {
7852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7853 }
7854 let inner_offset;
7855 let mut inner_depth = depth.clone();
7856 if inlined {
7857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7858 inner_offset = next_offset;
7859 } else {
7860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7861 inner_depth.increment()?;
7862 }
7863 let val_ref = self.moniker.get_or_insert_with(|| {
7864 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
7865 });
7866 fidl::decode!(
7867 fidl::encoding::BoundedString<4096>,
7868 D,
7869 val_ref,
7870 decoder,
7871 inner_offset,
7872 inner_depth
7873 )?;
7874 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7875 {
7876 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7877 }
7878 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7879 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7880 }
7881 }
7882
7883 next_offset += envelope_size;
7884 _next_ordinal_to_read += 1;
7885 if next_offset >= end_offset {
7886 return Ok(());
7887 }
7888
7889 while _next_ordinal_to_read < 3 {
7891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7892 _next_ordinal_to_read += 1;
7893 next_offset += envelope_size;
7894 }
7895
7896 let next_out_of_line = decoder.next_out_of_line();
7897 let handles_before = decoder.remaining_handles();
7898 if let Some((inlined, num_bytes, num_handles)) =
7899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7900 {
7901 let member_inline_size =
7902 <ComponentCapability as fidl::encoding::TypeMarker>::inline_size(
7903 decoder.context,
7904 );
7905 if inlined != (member_inline_size <= 4) {
7906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7907 }
7908 let inner_offset;
7909 let mut inner_depth = depth.clone();
7910 if inlined {
7911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7912 inner_offset = next_offset;
7913 } else {
7914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7915 inner_depth.increment()?;
7916 }
7917 let val_ref = self
7918 .service_capability
7919 .get_or_insert_with(|| fidl::new_empty!(ComponentCapability, D));
7920 fidl::decode!(ComponentCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
7921 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7922 {
7923 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7924 }
7925 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7926 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7927 }
7928 }
7929
7930 next_offset += envelope_size;
7931 _next_ordinal_to_read += 1;
7932 if next_offset >= end_offset {
7933 return Ok(());
7934 }
7935
7936 while _next_ordinal_to_read < 4 {
7938 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7939 _next_ordinal_to_read += 1;
7940 next_offset += envelope_size;
7941 }
7942
7943 let next_out_of_line = decoder.next_out_of_line();
7944 let handles_before = decoder.remaining_handles();
7945 if let Some((inlined, num_bytes, num_handles)) =
7946 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7947 {
7948 let member_inline_size = <fidl_fuchsia_component_decl__common::OfferService as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7949 if inlined != (member_inline_size <= 4) {
7950 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7951 }
7952 let inner_offset;
7953 let mut inner_depth = depth.clone();
7954 if inlined {
7955 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7956 inner_offset = next_offset;
7957 } else {
7958 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7959 inner_depth.increment()?;
7960 }
7961 let val_ref = self.offer_service_decl.get_or_insert_with(|| {
7962 fidl::new_empty!(fidl_fuchsia_component_decl__common::OfferService, D)
7963 });
7964 fidl::decode!(
7965 fidl_fuchsia_component_decl__common::OfferService,
7966 D,
7967 val_ref,
7968 decoder,
7969 inner_offset,
7970 inner_depth
7971 )?;
7972 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7973 {
7974 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7975 }
7976 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7977 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7978 }
7979 }
7980
7981 next_offset += envelope_size;
7982
7983 while next_offset < end_offset {
7985 _next_ordinal_to_read += 1;
7986 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7987 next_offset += envelope_size;
7988 }
7989
7990 Ok(())
7991 }
7992 }
7993
7994 impl Framework {
7995 #[inline(always)]
7996 fn max_ordinal_present(&self) -> u64 {
7997 if let Some(_) = self.moniker {
7998 return 2;
7999 }
8000 if let Some(_) = self.capability {
8001 return 1;
8002 }
8003 0
8004 }
8005 }
8006
8007 impl fidl::encoding::ValueTypeMarker for Framework {
8008 type Borrowed<'a> = &'a Self;
8009 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8010 value
8011 }
8012 }
8013
8014 unsafe impl fidl::encoding::TypeMarker for Framework {
8015 type Owned = Self;
8016
8017 #[inline(always)]
8018 fn inline_align(_context: fidl::encoding::Context) -> usize {
8019 8
8020 }
8021
8022 #[inline(always)]
8023 fn inline_size(_context: fidl::encoding::Context) -> usize {
8024 16
8025 }
8026 }
8027
8028 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Framework, D>
8029 for &Framework
8030 {
8031 unsafe fn encode(
8032 self,
8033 encoder: &mut fidl::encoding::Encoder<'_, D>,
8034 offset: usize,
8035 mut depth: fidl::encoding::Depth,
8036 ) -> fidl::Result<()> {
8037 encoder.debug_check_bounds::<Framework>(offset);
8038 let max_ordinal: u64 = self.max_ordinal_present();
8040 encoder.write_num(max_ordinal, offset);
8041 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8042 if max_ordinal == 0 {
8044 return Ok(());
8045 }
8046 depth.increment()?;
8047 let envelope_size = 8;
8048 let bytes_len = max_ordinal as usize * envelope_size;
8049 #[allow(unused_variables)]
8050 let offset = encoder.out_of_line_offset(bytes_len);
8051 let mut _prev_end_offset: usize = 0;
8052 if 1 > max_ordinal {
8053 return Ok(());
8054 }
8055
8056 let cur_offset: usize = (1 - 1) * envelope_size;
8059
8060 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8062
8063 fidl::encoding::encode_in_envelope_optional::<InternalCapability, D>(
8068 self.capability
8069 .as_ref()
8070 .map(<InternalCapability as fidl::encoding::ValueTypeMarker>::borrow),
8071 encoder,
8072 offset + cur_offset,
8073 depth,
8074 )?;
8075
8076 _prev_end_offset = cur_offset + envelope_size;
8077 if 2 > max_ordinal {
8078 return Ok(());
8079 }
8080
8081 let cur_offset: usize = (2 - 1) * envelope_size;
8084
8085 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8087
8088 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
8093 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
8094 encoder, offset + cur_offset, depth
8095 )?;
8096
8097 _prev_end_offset = cur_offset + envelope_size;
8098
8099 Ok(())
8100 }
8101 }
8102
8103 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Framework {
8104 #[inline(always)]
8105 fn new_empty() -> Self {
8106 Self::default()
8107 }
8108
8109 unsafe fn decode(
8110 &mut self,
8111 decoder: &mut fidl::encoding::Decoder<'_, D>,
8112 offset: usize,
8113 mut depth: fidl::encoding::Depth,
8114 ) -> fidl::Result<()> {
8115 decoder.debug_check_bounds::<Self>(offset);
8116 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8117 None => return Err(fidl::Error::NotNullable),
8118 Some(len) => len,
8119 };
8120 if len == 0 {
8122 return Ok(());
8123 };
8124 depth.increment()?;
8125 let envelope_size = 8;
8126 let bytes_len = len * envelope_size;
8127 let offset = decoder.out_of_line_offset(bytes_len)?;
8128 let mut _next_ordinal_to_read = 0;
8130 let mut next_offset = offset;
8131 let end_offset = offset + bytes_len;
8132 _next_ordinal_to_read += 1;
8133 if next_offset >= end_offset {
8134 return Ok(());
8135 }
8136
8137 while _next_ordinal_to_read < 1 {
8139 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8140 _next_ordinal_to_read += 1;
8141 next_offset += envelope_size;
8142 }
8143
8144 let next_out_of_line = decoder.next_out_of_line();
8145 let handles_before = decoder.remaining_handles();
8146 if let Some((inlined, num_bytes, num_handles)) =
8147 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8148 {
8149 let member_inline_size =
8150 <InternalCapability as fidl::encoding::TypeMarker>::inline_size(
8151 decoder.context,
8152 );
8153 if inlined != (member_inline_size <= 4) {
8154 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8155 }
8156 let inner_offset;
8157 let mut inner_depth = depth.clone();
8158 if inlined {
8159 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8160 inner_offset = next_offset;
8161 } else {
8162 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8163 inner_depth.increment()?;
8164 }
8165 let val_ref =
8166 self.capability.get_or_insert_with(|| fidl::new_empty!(InternalCapability, D));
8167 fidl::decode!(InternalCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
8168 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8169 {
8170 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8171 }
8172 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8173 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8174 }
8175 }
8176
8177 next_offset += envelope_size;
8178 _next_ordinal_to_read += 1;
8179 if next_offset >= end_offset {
8180 return Ok(());
8181 }
8182
8183 while _next_ordinal_to_read < 2 {
8185 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8186 _next_ordinal_to_read += 1;
8187 next_offset += envelope_size;
8188 }
8189
8190 let next_out_of_line = decoder.next_out_of_line();
8191 let handles_before = decoder.remaining_handles();
8192 if let Some((inlined, num_bytes, num_handles)) =
8193 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8194 {
8195 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8196 if inlined != (member_inline_size <= 4) {
8197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8198 }
8199 let inner_offset;
8200 let mut inner_depth = depth.clone();
8201 if inlined {
8202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8203 inner_offset = next_offset;
8204 } else {
8205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8206 inner_depth.increment()?;
8207 }
8208 let val_ref = self.moniker.get_or_insert_with(|| {
8209 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
8210 });
8211 fidl::decode!(
8212 fidl::encoding::BoundedString<4096>,
8213 D,
8214 val_ref,
8215 decoder,
8216 inner_offset,
8217 inner_depth
8218 )?;
8219 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8220 {
8221 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8222 }
8223 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8224 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8225 }
8226 }
8227
8228 next_offset += envelope_size;
8229
8230 while next_offset < end_offset {
8232 _next_ordinal_to_read += 1;
8233 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8234 next_offset += envelope_size;
8235 }
8236
8237 Ok(())
8238 }
8239 }
8240
8241 impl HealthCheck {
8242 #[inline(always)]
8243 fn max_ordinal_present(&self) -> u64 {
8244 if let Some(_) = self.monikers {
8245 return 1;
8246 }
8247 0
8248 }
8249 }
8250
8251 impl fidl::encoding::ValueTypeMarker for HealthCheck {
8252 type Borrowed<'a> = &'a Self;
8253 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8254 value
8255 }
8256 }
8257
8258 unsafe impl fidl::encoding::TypeMarker for HealthCheck {
8259 type Owned = Self;
8260
8261 #[inline(always)]
8262 fn inline_align(_context: fidl::encoding::Context) -> usize {
8263 8
8264 }
8265
8266 #[inline(always)]
8267 fn inline_size(_context: fidl::encoding::Context) -> usize {
8268 16
8269 }
8270 }
8271
8272 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HealthCheck, D>
8273 for &HealthCheck
8274 {
8275 unsafe fn encode(
8276 self,
8277 encoder: &mut fidl::encoding::Encoder<'_, D>,
8278 offset: usize,
8279 mut depth: fidl::encoding::Depth,
8280 ) -> fidl::Result<()> {
8281 encoder.debug_check_bounds::<HealthCheck>(offset);
8282 let max_ordinal: u64 = self.max_ordinal_present();
8284 encoder.write_num(max_ordinal, offset);
8285 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8286 if max_ordinal == 0 {
8288 return Ok(());
8289 }
8290 depth.increment()?;
8291 let envelope_size = 8;
8292 let bytes_len = max_ordinal as usize * envelope_size;
8293 #[allow(unused_variables)]
8294 let offset = encoder.out_of_line_offset(bytes_len);
8295 let mut _prev_end_offset: usize = 0;
8296 if 1 > max_ordinal {
8297 return Ok(());
8298 }
8299
8300 let cur_offset: usize = (1 - 1) * envelope_size;
8303
8304 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8306
8307 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>, D>(
8312 self.monikers.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>> as fidl::encoding::ValueTypeMarker>::borrow),
8313 encoder, offset + cur_offset, depth
8314 )?;
8315
8316 _prev_end_offset = cur_offset + envelope_size;
8317
8318 Ok(())
8319 }
8320 }
8321
8322 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HealthCheck {
8323 #[inline(always)]
8324 fn new_empty() -> Self {
8325 Self::default()
8326 }
8327
8328 unsafe fn decode(
8329 &mut self,
8330 decoder: &mut fidl::encoding::Decoder<'_, D>,
8331 offset: usize,
8332 mut depth: fidl::encoding::Depth,
8333 ) -> fidl::Result<()> {
8334 decoder.debug_check_bounds::<Self>(offset);
8335 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8336 None => return Err(fidl::Error::NotNullable),
8337 Some(len) => len,
8338 };
8339 if len == 0 {
8341 return Ok(());
8342 };
8343 depth.increment()?;
8344 let envelope_size = 8;
8345 let bytes_len = len * envelope_size;
8346 let offset = decoder.out_of_line_offset(bytes_len)?;
8347 let mut _next_ordinal_to_read = 0;
8349 let mut next_offset = offset;
8350 let end_offset = offset + bytes_len;
8351 _next_ordinal_to_read += 1;
8352 if next_offset >= end_offset {
8353 return Ok(());
8354 }
8355
8356 while _next_ordinal_to_read < 1 {
8358 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8359 _next_ordinal_to_read += 1;
8360 next_offset += envelope_size;
8361 }
8362
8363 let next_out_of_line = decoder.next_out_of_line();
8364 let handles_before = decoder.remaining_handles();
8365 if let Some((inlined, num_bytes, num_handles)) =
8366 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8367 {
8368 let member_inline_size = <fidl::encoding::UnboundedVector<
8369 fidl::encoding::BoundedString<255>,
8370 > as fidl::encoding::TypeMarker>::inline_size(
8371 decoder.context
8372 );
8373 if inlined != (member_inline_size <= 4) {
8374 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8375 }
8376 let inner_offset;
8377 let mut inner_depth = depth.clone();
8378 if inlined {
8379 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8380 inner_offset = next_offset;
8381 } else {
8382 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8383 inner_depth.increment()?;
8384 }
8385 let val_ref = self.monikers.get_or_insert_with(|| {
8386 fidl::new_empty!(
8387 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>,
8388 D
8389 )
8390 });
8391 fidl::decode!(
8392 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<255>>,
8393 D,
8394 val_ref,
8395 decoder,
8396 inner_offset,
8397 inner_depth
8398 )?;
8399 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8400 {
8401 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8402 }
8403 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8404 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8405 }
8406 }
8407
8408 next_offset += envelope_size;
8409
8410 while next_offset < end_offset {
8412 _next_ordinal_to_read += 1;
8413 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8414 next_offset += envelope_size;
8415 }
8416
8417 Ok(())
8418 }
8419 }
8420
8421 impl InjectedBundle {
8422 #[inline(always)]
8423 fn max_ordinal_present(&self) -> u64 {
8424 if let Some(_) = self.use_ {
8425 return 2;
8426 }
8427 if let Some(_) = self.components {
8428 return 1;
8429 }
8430 0
8431 }
8432 }
8433
8434 impl fidl::encoding::ValueTypeMarker for InjectedBundle {
8435 type Borrowed<'a> = &'a Self;
8436 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8437 value
8438 }
8439 }
8440
8441 unsafe impl fidl::encoding::TypeMarker for InjectedBundle {
8442 type Owned = Self;
8443
8444 #[inline(always)]
8445 fn inline_align(_context: fidl::encoding::Context) -> usize {
8446 8
8447 }
8448
8449 #[inline(always)]
8450 fn inline_size(_context: fidl::encoding::Context) -> usize {
8451 16
8452 }
8453 }
8454
8455 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedBundle, D>
8456 for &InjectedBundle
8457 {
8458 unsafe fn encode(
8459 self,
8460 encoder: &mut fidl::encoding::Encoder<'_, D>,
8461 offset: usize,
8462 mut depth: fidl::encoding::Depth,
8463 ) -> fidl::Result<()> {
8464 encoder.debug_check_bounds::<InjectedBundle>(offset);
8465 let max_ordinal: u64 = self.max_ordinal_present();
8467 encoder.write_num(max_ordinal, offset);
8468 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8469 if max_ordinal == 0 {
8471 return Ok(());
8472 }
8473 depth.increment()?;
8474 let envelope_size = 8;
8475 let bytes_len = max_ordinal as usize * envelope_size;
8476 #[allow(unused_variables)]
8477 let offset = encoder.out_of_line_offset(bytes_len);
8478 let mut _prev_end_offset: usize = 0;
8479 if 1 > max_ordinal {
8480 return Ok(());
8481 }
8482
8483 let cur_offset: usize = (1 - 1) * envelope_size;
8486
8487 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8489
8490 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
8495 self.components.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
8496 encoder, offset + cur_offset, depth
8497 )?;
8498
8499 _prev_end_offset = cur_offset + envelope_size;
8500 if 2 > max_ordinal {
8501 return Ok(());
8502 }
8503
8504 let cur_offset: usize = (2 - 1) * envelope_size;
8507
8508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8510
8511 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<InjectedUse>, D>(
8516 self.use_.as_ref().map(<fidl::encoding::UnboundedVector<InjectedUse> as fidl::encoding::ValueTypeMarker>::borrow),
8517 encoder, offset + cur_offset, depth
8518 )?;
8519
8520 _prev_end_offset = cur_offset + envelope_size;
8521
8522 Ok(())
8523 }
8524 }
8525
8526 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedBundle {
8527 #[inline(always)]
8528 fn new_empty() -> Self {
8529 Self::default()
8530 }
8531
8532 unsafe fn decode(
8533 &mut self,
8534 decoder: &mut fidl::encoding::Decoder<'_, D>,
8535 offset: usize,
8536 mut depth: fidl::encoding::Depth,
8537 ) -> fidl::Result<()> {
8538 decoder.debug_check_bounds::<Self>(offset);
8539 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8540 None => return Err(fidl::Error::NotNullable),
8541 Some(len) => len,
8542 };
8543 if len == 0 {
8545 return Ok(());
8546 };
8547 depth.increment()?;
8548 let envelope_size = 8;
8549 let bytes_len = len * envelope_size;
8550 let offset = decoder.out_of_line_offset(bytes_len)?;
8551 let mut _next_ordinal_to_read = 0;
8553 let mut next_offset = offset;
8554 let end_offset = offset + bytes_len;
8555 _next_ordinal_to_read += 1;
8556 if next_offset >= end_offset {
8557 return Ok(());
8558 }
8559
8560 while _next_ordinal_to_read < 1 {
8562 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8563 _next_ordinal_to_read += 1;
8564 next_offset += envelope_size;
8565 }
8566
8567 let next_out_of_line = decoder.next_out_of_line();
8568 let handles_before = decoder.remaining_handles();
8569 if let Some((inlined, num_bytes, num_handles)) =
8570 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8571 {
8572 let member_inline_size = <fidl::encoding::Vector<
8573 fidl::encoding::BoundedString<4096>,
8574 128,
8575 > as fidl::encoding::TypeMarker>::inline_size(
8576 decoder.context
8577 );
8578 if inlined != (member_inline_size <= 4) {
8579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8580 }
8581 let inner_offset;
8582 let mut inner_depth = depth.clone();
8583 if inlined {
8584 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8585 inner_offset = next_offset;
8586 } else {
8587 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8588 inner_depth.increment()?;
8589 }
8590 let val_ref = self.components.get_or_insert_with(|| {
8591 fidl::new_empty!(
8592 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
8593 D
8594 )
8595 });
8596 fidl::decode!(
8597 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
8598 D,
8599 val_ref,
8600 decoder,
8601 inner_offset,
8602 inner_depth
8603 )?;
8604 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8605 {
8606 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8607 }
8608 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8609 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8610 }
8611 }
8612
8613 next_offset += envelope_size;
8614 _next_ordinal_to_read += 1;
8615 if next_offset >= end_offset {
8616 return Ok(());
8617 }
8618
8619 while _next_ordinal_to_read < 2 {
8621 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8622 _next_ordinal_to_read += 1;
8623 next_offset += envelope_size;
8624 }
8625
8626 let next_out_of_line = decoder.next_out_of_line();
8627 let handles_before = decoder.remaining_handles();
8628 if let Some((inlined, num_bytes, num_handles)) =
8629 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8630 {
8631 let member_inline_size = <fidl::encoding::UnboundedVector<InjectedUse> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8632 if inlined != (member_inline_size <= 4) {
8633 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8634 }
8635 let inner_offset;
8636 let mut inner_depth = depth.clone();
8637 if inlined {
8638 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8639 inner_offset = next_offset;
8640 } else {
8641 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8642 inner_depth.increment()?;
8643 }
8644 let val_ref = self.use_.get_or_insert_with(|| {
8645 fidl::new_empty!(fidl::encoding::UnboundedVector<InjectedUse>, D)
8646 });
8647 fidl::decode!(
8648 fidl::encoding::UnboundedVector<InjectedUse>,
8649 D,
8650 val_ref,
8651 decoder,
8652 inner_offset,
8653 inner_depth
8654 )?;
8655 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8656 {
8657 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8658 }
8659 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8660 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8661 }
8662 }
8663
8664 next_offset += envelope_size;
8665
8666 while next_offset < end_offset {
8668 _next_ordinal_to_read += 1;
8669 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8670 next_offset += envelope_size;
8671 }
8672
8673 Ok(())
8674 }
8675 }
8676
8677 impl InjectedUseProtocol {
8678 #[inline(always)]
8679 fn max_ordinal_present(&self) -> u64 {
8680 if let Some(_) = self.target_path {
8681 return 2;
8682 }
8683 if let Some(_) = self.source_name {
8684 return 1;
8685 }
8686 0
8687 }
8688 }
8689
8690 impl fidl::encoding::ValueTypeMarker for InjectedUseProtocol {
8691 type Borrowed<'a> = &'a Self;
8692 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8693 value
8694 }
8695 }
8696
8697 unsafe impl fidl::encoding::TypeMarker for InjectedUseProtocol {
8698 type Owned = Self;
8699
8700 #[inline(always)]
8701 fn inline_align(_context: fidl::encoding::Context) -> usize {
8702 8
8703 }
8704
8705 #[inline(always)]
8706 fn inline_size(_context: fidl::encoding::Context) -> usize {
8707 16
8708 }
8709 }
8710
8711 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedUseProtocol, D>
8712 for &InjectedUseProtocol
8713 {
8714 unsafe fn encode(
8715 self,
8716 encoder: &mut fidl::encoding::Encoder<'_, D>,
8717 offset: usize,
8718 mut depth: fidl::encoding::Depth,
8719 ) -> fidl::Result<()> {
8720 encoder.debug_check_bounds::<InjectedUseProtocol>(offset);
8721 let max_ordinal: u64 = self.max_ordinal_present();
8723 encoder.write_num(max_ordinal, offset);
8724 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8725 if max_ordinal == 0 {
8727 return Ok(());
8728 }
8729 depth.increment()?;
8730 let envelope_size = 8;
8731 let bytes_len = max_ordinal as usize * envelope_size;
8732 #[allow(unused_variables)]
8733 let offset = encoder.out_of_line_offset(bytes_len);
8734 let mut _prev_end_offset: usize = 0;
8735 if 1 > max_ordinal {
8736 return Ok(());
8737 }
8738
8739 let cur_offset: usize = (1 - 1) * envelope_size;
8742
8743 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8745
8746 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8751 self.source_name.as_ref().map(
8752 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8753 ),
8754 encoder,
8755 offset + cur_offset,
8756 depth,
8757 )?;
8758
8759 _prev_end_offset = cur_offset + envelope_size;
8760 if 2 > max_ordinal {
8761 return Ok(());
8762 }
8763
8764 let cur_offset: usize = (2 - 1) * envelope_size;
8767
8768 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8770
8771 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
8776 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
8777 encoder, offset + cur_offset, depth
8778 )?;
8779
8780 _prev_end_offset = cur_offset + envelope_size;
8781
8782 Ok(())
8783 }
8784 }
8785
8786 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedUseProtocol {
8787 #[inline(always)]
8788 fn new_empty() -> Self {
8789 Self::default()
8790 }
8791
8792 unsafe fn decode(
8793 &mut self,
8794 decoder: &mut fidl::encoding::Decoder<'_, D>,
8795 offset: usize,
8796 mut depth: fidl::encoding::Depth,
8797 ) -> fidl::Result<()> {
8798 decoder.debug_check_bounds::<Self>(offset);
8799 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8800 None => return Err(fidl::Error::NotNullable),
8801 Some(len) => len,
8802 };
8803 if len == 0 {
8805 return Ok(());
8806 };
8807 depth.increment()?;
8808 let envelope_size = 8;
8809 let bytes_len = len * envelope_size;
8810 let offset = decoder.out_of_line_offset(bytes_len)?;
8811 let mut _next_ordinal_to_read = 0;
8813 let mut next_offset = offset;
8814 let end_offset = offset + bytes_len;
8815 _next_ordinal_to_read += 1;
8816 if next_offset >= end_offset {
8817 return Ok(());
8818 }
8819
8820 while _next_ordinal_to_read < 1 {
8822 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8823 _next_ordinal_to_read += 1;
8824 next_offset += envelope_size;
8825 }
8826
8827 let next_out_of_line = decoder.next_out_of_line();
8828 let handles_before = decoder.remaining_handles();
8829 if let Some((inlined, num_bytes, num_handles)) =
8830 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8831 {
8832 let member_inline_size =
8833 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8834 decoder.context,
8835 );
8836 if inlined != (member_inline_size <= 4) {
8837 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8838 }
8839 let inner_offset;
8840 let mut inner_depth = depth.clone();
8841 if inlined {
8842 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8843 inner_offset = next_offset;
8844 } else {
8845 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8846 inner_depth.increment()?;
8847 }
8848 let val_ref = self
8849 .source_name
8850 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8851 fidl::decode!(
8852 fidl::encoding::BoundedString<100>,
8853 D,
8854 val_ref,
8855 decoder,
8856 inner_offset,
8857 inner_depth
8858 )?;
8859 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8860 {
8861 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8862 }
8863 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8864 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8865 }
8866 }
8867
8868 next_offset += envelope_size;
8869 _next_ordinal_to_read += 1;
8870 if next_offset >= end_offset {
8871 return Ok(());
8872 }
8873
8874 while _next_ordinal_to_read < 2 {
8876 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8877 _next_ordinal_to_read += 1;
8878 next_offset += envelope_size;
8879 }
8880
8881 let next_out_of_line = decoder.next_out_of_line();
8882 let handles_before = decoder.remaining_handles();
8883 if let Some((inlined, num_bytes, num_handles)) =
8884 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8885 {
8886 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8887 if inlined != (member_inline_size <= 4) {
8888 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8889 }
8890 let inner_offset;
8891 let mut inner_depth = depth.clone();
8892 if inlined {
8893 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8894 inner_offset = next_offset;
8895 } else {
8896 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8897 inner_depth.increment()?;
8898 }
8899 let val_ref = self.target_path.get_or_insert_with(|| {
8900 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
8901 });
8902 fidl::decode!(
8903 fidl::encoding::BoundedString<1024>,
8904 D,
8905 val_ref,
8906 decoder,
8907 inner_offset,
8908 inner_depth
8909 )?;
8910 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8911 {
8912 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8913 }
8914 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8915 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8916 }
8917 }
8918
8919 next_offset += envelope_size;
8920
8921 while next_offset < end_offset {
8923 _next_ordinal_to_read += 1;
8924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8925 next_offset += envelope_size;
8926 }
8927
8928 Ok(())
8929 }
8930 }
8931
8932 impl InstanceIdEntry {
8933 #[inline(always)]
8934 fn max_ordinal_present(&self) -> u64 {
8935 if let Some(_) = self.moniker {
8936 return 3;
8937 }
8938 if let Some(_) = self.instance_id {
8939 return 1;
8940 }
8941 0
8942 }
8943 }
8944
8945 impl fidl::encoding::ValueTypeMarker for InstanceIdEntry {
8946 type Borrowed<'a> = &'a Self;
8947 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8948 value
8949 }
8950 }
8951
8952 unsafe impl fidl::encoding::TypeMarker for InstanceIdEntry {
8953 type Owned = Self;
8954
8955 #[inline(always)]
8956 fn inline_align(_context: fidl::encoding::Context) -> usize {
8957 8
8958 }
8959
8960 #[inline(always)]
8961 fn inline_size(_context: fidl::encoding::Context) -> usize {
8962 16
8963 }
8964 }
8965
8966 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InstanceIdEntry, D>
8967 for &InstanceIdEntry
8968 {
8969 unsafe fn encode(
8970 self,
8971 encoder: &mut fidl::encoding::Encoder<'_, D>,
8972 offset: usize,
8973 mut depth: fidl::encoding::Depth,
8974 ) -> fidl::Result<()> {
8975 encoder.debug_check_bounds::<InstanceIdEntry>(offset);
8976 let max_ordinal: u64 = self.max_ordinal_present();
8978 encoder.write_num(max_ordinal, offset);
8979 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8980 if max_ordinal == 0 {
8982 return Ok(());
8983 }
8984 depth.increment()?;
8985 let envelope_size = 8;
8986 let bytes_len = max_ordinal as usize * envelope_size;
8987 #[allow(unused_variables)]
8988 let offset = encoder.out_of_line_offset(bytes_len);
8989 let mut _prev_end_offset: usize = 0;
8990 if 1 > max_ordinal {
8991 return Ok(());
8992 }
8993
8994 let cur_offset: usize = (1 - 1) * envelope_size;
8997
8998 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9000
9001 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
9006 self.instance_id.as_ref().map(
9007 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
9008 ),
9009 encoder,
9010 offset + cur_offset,
9011 depth,
9012 )?;
9013
9014 _prev_end_offset = cur_offset + envelope_size;
9015 if 3 > max_ordinal {
9016 return Ok(());
9017 }
9018
9019 let cur_offset: usize = (3 - 1) * envelope_size;
9022
9023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9025
9026 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
9031 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
9032 encoder, offset + cur_offset, depth
9033 )?;
9034
9035 _prev_end_offset = cur_offset + envelope_size;
9036
9037 Ok(())
9038 }
9039 }
9040
9041 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InstanceIdEntry {
9042 #[inline(always)]
9043 fn new_empty() -> Self {
9044 Self::default()
9045 }
9046
9047 unsafe fn decode(
9048 &mut self,
9049 decoder: &mut fidl::encoding::Decoder<'_, D>,
9050 offset: usize,
9051 mut depth: fidl::encoding::Depth,
9052 ) -> fidl::Result<()> {
9053 decoder.debug_check_bounds::<Self>(offset);
9054 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9055 None => return Err(fidl::Error::NotNullable),
9056 Some(len) => len,
9057 };
9058 if len == 0 {
9060 return Ok(());
9061 };
9062 depth.increment()?;
9063 let envelope_size = 8;
9064 let bytes_len = len * envelope_size;
9065 let offset = decoder.out_of_line_offset(bytes_len)?;
9066 let mut _next_ordinal_to_read = 0;
9068 let mut next_offset = offset;
9069 let end_offset = offset + bytes_len;
9070 _next_ordinal_to_read += 1;
9071 if next_offset >= end_offset {
9072 return Ok(());
9073 }
9074
9075 while _next_ordinal_to_read < 1 {
9077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9078 _next_ordinal_to_read += 1;
9079 next_offset += envelope_size;
9080 }
9081
9082 let next_out_of_line = decoder.next_out_of_line();
9083 let handles_before = decoder.remaining_handles();
9084 if let Some((inlined, num_bytes, num_handles)) =
9085 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9086 {
9087 let member_inline_size =
9088 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
9089 decoder.context,
9090 );
9091 if inlined != (member_inline_size <= 4) {
9092 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9093 }
9094 let inner_offset;
9095 let mut inner_depth = depth.clone();
9096 if inlined {
9097 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9098 inner_offset = next_offset;
9099 } else {
9100 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9101 inner_depth.increment()?;
9102 }
9103 let val_ref = self
9104 .instance_id
9105 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
9106 fidl::decode!(
9107 fidl::encoding::BoundedString<64>,
9108 D,
9109 val_ref,
9110 decoder,
9111 inner_offset,
9112 inner_depth
9113 )?;
9114 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9115 {
9116 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9117 }
9118 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9119 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9120 }
9121 }
9122
9123 next_offset += envelope_size;
9124 _next_ordinal_to_read += 1;
9125 if next_offset >= end_offset {
9126 return Ok(());
9127 }
9128
9129 while _next_ordinal_to_read < 3 {
9131 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9132 _next_ordinal_to_read += 1;
9133 next_offset += envelope_size;
9134 }
9135
9136 let next_out_of_line = decoder.next_out_of_line();
9137 let handles_before = decoder.remaining_handles();
9138 if let Some((inlined, num_bytes, num_handles)) =
9139 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9140 {
9141 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9142 if inlined != (member_inline_size <= 4) {
9143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9144 }
9145 let inner_offset;
9146 let mut inner_depth = depth.clone();
9147 if inlined {
9148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9149 inner_offset = next_offset;
9150 } else {
9151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9152 inner_depth.increment()?;
9153 }
9154 let val_ref = self.moniker.get_or_insert_with(|| {
9155 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
9156 });
9157 fidl::decode!(
9158 fidl::encoding::BoundedString<4096>,
9159 D,
9160 val_ref,
9161 decoder,
9162 inner_offset,
9163 inner_depth
9164 )?;
9165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9166 {
9167 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9168 }
9169 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9170 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9171 }
9172 }
9173
9174 next_offset += envelope_size;
9175
9176 while next_offset < end_offset {
9178 _next_ordinal_to_read += 1;
9179 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9180 next_offset += envelope_size;
9181 }
9182
9183 Ok(())
9184 }
9185 }
9186
9187 impl JobPolicyAllowlists {
9188 #[inline(always)]
9189 fn max_ordinal_present(&self) -> u64 {
9190 if let Some(_) = self.create_raw_processes {
9191 return 3;
9192 }
9193 if let Some(_) = self.main_process_critical {
9194 return 2;
9195 }
9196 if let Some(_) = self.ambient_mark_vmo_exec {
9197 return 1;
9198 }
9199 0
9200 }
9201 }
9202
9203 impl fidl::encoding::ValueTypeMarker for JobPolicyAllowlists {
9204 type Borrowed<'a> = &'a Self;
9205 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9206 value
9207 }
9208 }
9209
9210 unsafe impl fidl::encoding::TypeMarker for JobPolicyAllowlists {
9211 type Owned = Self;
9212
9213 #[inline(always)]
9214 fn inline_align(_context: fidl::encoding::Context) -> usize {
9215 8
9216 }
9217
9218 #[inline(always)]
9219 fn inline_size(_context: fidl::encoding::Context) -> usize {
9220 16
9221 }
9222 }
9223
9224 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<JobPolicyAllowlists, D>
9225 for &JobPolicyAllowlists
9226 {
9227 unsafe fn encode(
9228 self,
9229 encoder: &mut fidl::encoding::Encoder<'_, D>,
9230 offset: usize,
9231 mut depth: fidl::encoding::Depth,
9232 ) -> fidl::Result<()> {
9233 encoder.debug_check_bounds::<JobPolicyAllowlists>(offset);
9234 let max_ordinal: u64 = self.max_ordinal_present();
9236 encoder.write_num(max_ordinal, offset);
9237 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9238 if max_ordinal == 0 {
9240 return Ok(());
9241 }
9242 depth.increment()?;
9243 let envelope_size = 8;
9244 let bytes_len = max_ordinal as usize * envelope_size;
9245 #[allow(unused_variables)]
9246 let offset = encoder.out_of_line_offset(bytes_len);
9247 let mut _prev_end_offset: usize = 0;
9248 if 1 > max_ordinal {
9249 return Ok(());
9250 }
9251
9252 let cur_offset: usize = (1 - 1) * envelope_size;
9255
9256 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9258
9259 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
9264 self.ambient_mark_vmo_exec.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
9265 encoder, offset + cur_offset, depth
9266 )?;
9267
9268 _prev_end_offset = cur_offset + envelope_size;
9269 if 2 > max_ordinal {
9270 return Ok(());
9271 }
9272
9273 let cur_offset: usize = (2 - 1) * envelope_size;
9276
9277 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9279
9280 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
9285 self.main_process_critical.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
9286 encoder, offset + cur_offset, depth
9287 )?;
9288
9289 _prev_end_offset = cur_offset + envelope_size;
9290 if 3 > max_ordinal {
9291 return Ok(());
9292 }
9293
9294 let cur_offset: usize = (3 - 1) * envelope_size;
9297
9298 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9300
9301 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>, D>(
9306 self.create_raw_processes.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128> as fidl::encoding::ValueTypeMarker>::borrow),
9307 encoder, offset + cur_offset, depth
9308 )?;
9309
9310 _prev_end_offset = cur_offset + envelope_size;
9311
9312 Ok(())
9313 }
9314 }
9315
9316 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for JobPolicyAllowlists {
9317 #[inline(always)]
9318 fn new_empty() -> Self {
9319 Self::default()
9320 }
9321
9322 unsafe fn decode(
9323 &mut self,
9324 decoder: &mut fidl::encoding::Decoder<'_, D>,
9325 offset: usize,
9326 mut depth: fidl::encoding::Depth,
9327 ) -> fidl::Result<()> {
9328 decoder.debug_check_bounds::<Self>(offset);
9329 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9330 None => return Err(fidl::Error::NotNullable),
9331 Some(len) => len,
9332 };
9333 if len == 0 {
9335 return Ok(());
9336 };
9337 depth.increment()?;
9338 let envelope_size = 8;
9339 let bytes_len = len * envelope_size;
9340 let offset = decoder.out_of_line_offset(bytes_len)?;
9341 let mut _next_ordinal_to_read = 0;
9343 let mut next_offset = offset;
9344 let end_offset = offset + bytes_len;
9345 _next_ordinal_to_read += 1;
9346 if next_offset >= end_offset {
9347 return Ok(());
9348 }
9349
9350 while _next_ordinal_to_read < 1 {
9352 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9353 _next_ordinal_to_read += 1;
9354 next_offset += envelope_size;
9355 }
9356
9357 let next_out_of_line = decoder.next_out_of_line();
9358 let handles_before = decoder.remaining_handles();
9359 if let Some((inlined, num_bytes, num_handles)) =
9360 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9361 {
9362 let member_inline_size = <fidl::encoding::Vector<
9363 fidl::encoding::BoundedString<4096>,
9364 128,
9365 > as fidl::encoding::TypeMarker>::inline_size(
9366 decoder.context
9367 );
9368 if inlined != (member_inline_size <= 4) {
9369 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9370 }
9371 let inner_offset;
9372 let mut inner_depth = depth.clone();
9373 if inlined {
9374 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9375 inner_offset = next_offset;
9376 } else {
9377 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9378 inner_depth.increment()?;
9379 }
9380 let val_ref = self.ambient_mark_vmo_exec.get_or_insert_with(|| {
9381 fidl::new_empty!(
9382 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
9383 D
9384 )
9385 });
9386 fidl::decode!(
9387 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
9388 D,
9389 val_ref,
9390 decoder,
9391 inner_offset,
9392 inner_depth
9393 )?;
9394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9395 {
9396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9397 }
9398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9400 }
9401 }
9402
9403 next_offset += envelope_size;
9404 _next_ordinal_to_read += 1;
9405 if next_offset >= end_offset {
9406 return Ok(());
9407 }
9408
9409 while _next_ordinal_to_read < 2 {
9411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9412 _next_ordinal_to_read += 1;
9413 next_offset += envelope_size;
9414 }
9415
9416 let next_out_of_line = decoder.next_out_of_line();
9417 let handles_before = decoder.remaining_handles();
9418 if let Some((inlined, num_bytes, num_handles)) =
9419 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9420 {
9421 let member_inline_size = <fidl::encoding::Vector<
9422 fidl::encoding::BoundedString<4096>,
9423 128,
9424 > as fidl::encoding::TypeMarker>::inline_size(
9425 decoder.context
9426 );
9427 if inlined != (member_inline_size <= 4) {
9428 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9429 }
9430 let inner_offset;
9431 let mut inner_depth = depth.clone();
9432 if inlined {
9433 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9434 inner_offset = next_offset;
9435 } else {
9436 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9437 inner_depth.increment()?;
9438 }
9439 let val_ref = self.main_process_critical.get_or_insert_with(|| {
9440 fidl::new_empty!(
9441 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
9442 D
9443 )
9444 });
9445 fidl::decode!(
9446 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
9447 D,
9448 val_ref,
9449 decoder,
9450 inner_offset,
9451 inner_depth
9452 )?;
9453 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9454 {
9455 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9456 }
9457 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9458 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9459 }
9460 }
9461
9462 next_offset += envelope_size;
9463 _next_ordinal_to_read += 1;
9464 if next_offset >= end_offset {
9465 return Ok(());
9466 }
9467
9468 while _next_ordinal_to_read < 3 {
9470 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9471 _next_ordinal_to_read += 1;
9472 next_offset += envelope_size;
9473 }
9474
9475 let next_out_of_line = decoder.next_out_of_line();
9476 let handles_before = decoder.remaining_handles();
9477 if let Some((inlined, num_bytes, num_handles)) =
9478 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9479 {
9480 let member_inline_size = <fidl::encoding::Vector<
9481 fidl::encoding::BoundedString<4096>,
9482 128,
9483 > as fidl::encoding::TypeMarker>::inline_size(
9484 decoder.context
9485 );
9486 if inlined != (member_inline_size <= 4) {
9487 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9488 }
9489 let inner_offset;
9490 let mut inner_depth = depth.clone();
9491 if inlined {
9492 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9493 inner_offset = next_offset;
9494 } else {
9495 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9496 inner_depth.increment()?;
9497 }
9498 let val_ref = self.create_raw_processes.get_or_insert_with(|| {
9499 fidl::new_empty!(
9500 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
9501 D
9502 )
9503 });
9504 fidl::decode!(
9505 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 128>,
9506 D,
9507 val_ref,
9508 decoder,
9509 inner_offset,
9510 inner_depth
9511 )?;
9512 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9513 {
9514 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9515 }
9516 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9517 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9518 }
9519 }
9520
9521 next_offset += envelope_size;
9522
9523 while next_offset < end_offset {
9525 _next_ordinal_to_read += 1;
9526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9527 next_offset += envelope_size;
9528 }
9529
9530 Ok(())
9531 }
9532 }
9533
9534 impl Namespace {
9535 #[inline(always)]
9536 fn max_ordinal_present(&self) -> u64 {
9537 if let Some(_) = self.capability {
9538 return 1;
9539 }
9540 0
9541 }
9542 }
9543
9544 impl fidl::encoding::ValueTypeMarker for Namespace {
9545 type Borrowed<'a> = &'a Self;
9546 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9547 value
9548 }
9549 }
9550
9551 unsafe impl fidl::encoding::TypeMarker for Namespace {
9552 type Owned = Self;
9553
9554 #[inline(always)]
9555 fn inline_align(_context: fidl::encoding::Context) -> usize {
9556 8
9557 }
9558
9559 #[inline(always)]
9560 fn inline_size(_context: fidl::encoding::Context) -> usize {
9561 16
9562 }
9563 }
9564
9565 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Namespace, D>
9566 for &Namespace
9567 {
9568 unsafe fn encode(
9569 self,
9570 encoder: &mut fidl::encoding::Encoder<'_, D>,
9571 offset: usize,
9572 mut depth: fidl::encoding::Depth,
9573 ) -> fidl::Result<()> {
9574 encoder.debug_check_bounds::<Namespace>(offset);
9575 let max_ordinal: u64 = self.max_ordinal_present();
9577 encoder.write_num(max_ordinal, offset);
9578 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9579 if max_ordinal == 0 {
9581 return Ok(());
9582 }
9583 depth.increment()?;
9584 let envelope_size = 8;
9585 let bytes_len = max_ordinal as usize * envelope_size;
9586 #[allow(unused_variables)]
9587 let offset = encoder.out_of_line_offset(bytes_len);
9588 let mut _prev_end_offset: usize = 0;
9589 if 1 > max_ordinal {
9590 return Ok(());
9591 }
9592
9593 let cur_offset: usize = (1 - 1) * envelope_size;
9596
9597 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9599
9600 fidl::encoding::encode_in_envelope_optional::<ComponentCapability, D>(
9605 self.capability
9606 .as_ref()
9607 .map(<ComponentCapability as fidl::encoding::ValueTypeMarker>::borrow),
9608 encoder,
9609 offset + cur_offset,
9610 depth,
9611 )?;
9612
9613 _prev_end_offset = cur_offset + envelope_size;
9614
9615 Ok(())
9616 }
9617 }
9618
9619 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Namespace {
9620 #[inline(always)]
9621 fn new_empty() -> Self {
9622 Self::default()
9623 }
9624
9625 unsafe fn decode(
9626 &mut self,
9627 decoder: &mut fidl::encoding::Decoder<'_, D>,
9628 offset: usize,
9629 mut depth: fidl::encoding::Depth,
9630 ) -> fidl::Result<()> {
9631 decoder.debug_check_bounds::<Self>(offset);
9632 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9633 None => return Err(fidl::Error::NotNullable),
9634 Some(len) => len,
9635 };
9636 if len == 0 {
9638 return Ok(());
9639 };
9640 depth.increment()?;
9641 let envelope_size = 8;
9642 let bytes_len = len * envelope_size;
9643 let offset = decoder.out_of_line_offset(bytes_len)?;
9644 let mut _next_ordinal_to_read = 0;
9646 let mut next_offset = offset;
9647 let end_offset = offset + bytes_len;
9648 _next_ordinal_to_read += 1;
9649 if next_offset >= end_offset {
9650 return Ok(());
9651 }
9652
9653 while _next_ordinal_to_read < 1 {
9655 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9656 _next_ordinal_to_read += 1;
9657 next_offset += envelope_size;
9658 }
9659
9660 let next_out_of_line = decoder.next_out_of_line();
9661 let handles_before = decoder.remaining_handles();
9662 if let Some((inlined, num_bytes, num_handles)) =
9663 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9664 {
9665 let member_inline_size =
9666 <ComponentCapability as fidl::encoding::TypeMarker>::inline_size(
9667 decoder.context,
9668 );
9669 if inlined != (member_inline_size <= 4) {
9670 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9671 }
9672 let inner_offset;
9673 let mut inner_depth = depth.clone();
9674 if inlined {
9675 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9676 inner_offset = next_offset;
9677 } else {
9678 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9679 inner_depth.increment()?;
9680 }
9681 let val_ref =
9682 self.capability.get_or_insert_with(|| fidl::new_empty!(ComponentCapability, D));
9683 fidl::decode!(ComponentCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
9684 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9685 {
9686 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9687 }
9688 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9689 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9690 }
9691 }
9692
9693 next_offset += envelope_size;
9694
9695 while next_offset < end_offset {
9697 _next_ordinal_to_read += 1;
9698 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9699 next_offset += envelope_size;
9700 }
9701
9702 Ok(())
9703 }
9704 }
9705
9706 impl SecurityPolicy {
9707 #[inline(always)]
9708 fn max_ordinal_present(&self) -> u64 {
9709 if let Some(_) = self.child_policy {
9710 return 4;
9711 }
9712 if let Some(_) = self.debug_registration_policy {
9713 return 3;
9714 }
9715 if let Some(_) = self.capability_policy {
9716 return 2;
9717 }
9718 if let Some(_) = self.job_policy {
9719 return 1;
9720 }
9721 0
9722 }
9723 }
9724
9725 impl fidl::encoding::ValueTypeMarker for SecurityPolicy {
9726 type Borrowed<'a> = &'a Self;
9727 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9728 value
9729 }
9730 }
9731
9732 unsafe impl fidl::encoding::TypeMarker for SecurityPolicy {
9733 type Owned = Self;
9734
9735 #[inline(always)]
9736 fn inline_align(_context: fidl::encoding::Context) -> usize {
9737 8
9738 }
9739
9740 #[inline(always)]
9741 fn inline_size(_context: fidl::encoding::Context) -> usize {
9742 16
9743 }
9744 }
9745
9746 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SecurityPolicy, D>
9747 for &SecurityPolicy
9748 {
9749 unsafe fn encode(
9750 self,
9751 encoder: &mut fidl::encoding::Encoder<'_, D>,
9752 offset: usize,
9753 mut depth: fidl::encoding::Depth,
9754 ) -> fidl::Result<()> {
9755 encoder.debug_check_bounds::<SecurityPolicy>(offset);
9756 let max_ordinal: u64 = self.max_ordinal_present();
9758 encoder.write_num(max_ordinal, offset);
9759 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9760 if max_ordinal == 0 {
9762 return Ok(());
9763 }
9764 depth.increment()?;
9765 let envelope_size = 8;
9766 let bytes_len = max_ordinal as usize * envelope_size;
9767 #[allow(unused_variables)]
9768 let offset = encoder.out_of_line_offset(bytes_len);
9769 let mut _prev_end_offset: usize = 0;
9770 if 1 > max_ordinal {
9771 return Ok(());
9772 }
9773
9774 let cur_offset: usize = (1 - 1) * envelope_size;
9777
9778 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9780
9781 fidl::encoding::encode_in_envelope_optional::<JobPolicyAllowlists, D>(
9786 self.job_policy
9787 .as_ref()
9788 .map(<JobPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
9789 encoder,
9790 offset + cur_offset,
9791 depth,
9792 )?;
9793
9794 _prev_end_offset = cur_offset + envelope_size;
9795 if 2 > max_ordinal {
9796 return Ok(());
9797 }
9798
9799 let cur_offset: usize = (2 - 1) * envelope_size;
9802
9803 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9805
9806 fidl::encoding::encode_in_envelope_optional::<CapabilityPolicyAllowlists, D>(
9811 self.capability_policy
9812 .as_ref()
9813 .map(<CapabilityPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
9814 encoder,
9815 offset + cur_offset,
9816 depth,
9817 )?;
9818
9819 _prev_end_offset = cur_offset + envelope_size;
9820 if 3 > max_ordinal {
9821 return Ok(());
9822 }
9823
9824 let cur_offset: usize = (3 - 1) * envelope_size;
9827
9828 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9830
9831 fidl::encoding::encode_in_envelope_optional::<DebugRegistrationPolicyAllowlists, D>(
9836 self.debug_registration_policy.as_ref().map(
9837 <DebugRegistrationPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow,
9838 ),
9839 encoder,
9840 offset + cur_offset,
9841 depth,
9842 )?;
9843
9844 _prev_end_offset = cur_offset + envelope_size;
9845 if 4 > max_ordinal {
9846 return Ok(());
9847 }
9848
9849 let cur_offset: usize = (4 - 1) * envelope_size;
9852
9853 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9855
9856 fidl::encoding::encode_in_envelope_optional::<ChildPolicyAllowlists, D>(
9861 self.child_policy
9862 .as_ref()
9863 .map(<ChildPolicyAllowlists as fidl::encoding::ValueTypeMarker>::borrow),
9864 encoder,
9865 offset + cur_offset,
9866 depth,
9867 )?;
9868
9869 _prev_end_offset = cur_offset + envelope_size;
9870
9871 Ok(())
9872 }
9873 }
9874
9875 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SecurityPolicy {
9876 #[inline(always)]
9877 fn new_empty() -> Self {
9878 Self::default()
9879 }
9880
9881 unsafe fn decode(
9882 &mut self,
9883 decoder: &mut fidl::encoding::Decoder<'_, D>,
9884 offset: usize,
9885 mut depth: fidl::encoding::Depth,
9886 ) -> fidl::Result<()> {
9887 decoder.debug_check_bounds::<Self>(offset);
9888 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9889 None => return Err(fidl::Error::NotNullable),
9890 Some(len) => len,
9891 };
9892 if len == 0 {
9894 return Ok(());
9895 };
9896 depth.increment()?;
9897 let envelope_size = 8;
9898 let bytes_len = len * envelope_size;
9899 let offset = decoder.out_of_line_offset(bytes_len)?;
9900 let mut _next_ordinal_to_read = 0;
9902 let mut next_offset = offset;
9903 let end_offset = offset + bytes_len;
9904 _next_ordinal_to_read += 1;
9905 if next_offset >= end_offset {
9906 return Ok(());
9907 }
9908
9909 while _next_ordinal_to_read < 1 {
9911 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9912 _next_ordinal_to_read += 1;
9913 next_offset += envelope_size;
9914 }
9915
9916 let next_out_of_line = decoder.next_out_of_line();
9917 let handles_before = decoder.remaining_handles();
9918 if let Some((inlined, num_bytes, num_handles)) =
9919 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9920 {
9921 let member_inline_size =
9922 <JobPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
9923 decoder.context,
9924 );
9925 if inlined != (member_inline_size <= 4) {
9926 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9927 }
9928 let inner_offset;
9929 let mut inner_depth = depth.clone();
9930 if inlined {
9931 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9932 inner_offset = next_offset;
9933 } else {
9934 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9935 inner_depth.increment()?;
9936 }
9937 let val_ref =
9938 self.job_policy.get_or_insert_with(|| fidl::new_empty!(JobPolicyAllowlists, D));
9939 fidl::decode!(JobPolicyAllowlists, D, val_ref, decoder, inner_offset, inner_depth)?;
9940 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9941 {
9942 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9943 }
9944 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9945 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9946 }
9947 }
9948
9949 next_offset += envelope_size;
9950 _next_ordinal_to_read += 1;
9951 if next_offset >= end_offset {
9952 return Ok(());
9953 }
9954
9955 while _next_ordinal_to_read < 2 {
9957 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9958 _next_ordinal_to_read += 1;
9959 next_offset += envelope_size;
9960 }
9961
9962 let next_out_of_line = decoder.next_out_of_line();
9963 let handles_before = decoder.remaining_handles();
9964 if let Some((inlined, num_bytes, num_handles)) =
9965 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9966 {
9967 let member_inline_size =
9968 <CapabilityPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
9969 decoder.context,
9970 );
9971 if inlined != (member_inline_size <= 4) {
9972 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9973 }
9974 let inner_offset;
9975 let mut inner_depth = depth.clone();
9976 if inlined {
9977 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9978 inner_offset = next_offset;
9979 } else {
9980 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9981 inner_depth.increment()?;
9982 }
9983 let val_ref = self
9984 .capability_policy
9985 .get_or_insert_with(|| fidl::new_empty!(CapabilityPolicyAllowlists, D));
9986 fidl::decode!(
9987 CapabilityPolicyAllowlists,
9988 D,
9989 val_ref,
9990 decoder,
9991 inner_offset,
9992 inner_depth
9993 )?;
9994 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9995 {
9996 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9997 }
9998 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9999 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10000 }
10001 }
10002
10003 next_offset += envelope_size;
10004 _next_ordinal_to_read += 1;
10005 if next_offset >= end_offset {
10006 return Ok(());
10007 }
10008
10009 while _next_ordinal_to_read < 3 {
10011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10012 _next_ordinal_to_read += 1;
10013 next_offset += envelope_size;
10014 }
10015
10016 let next_out_of_line = decoder.next_out_of_line();
10017 let handles_before = decoder.remaining_handles();
10018 if let Some((inlined, num_bytes, num_handles)) =
10019 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10020 {
10021 let member_inline_size =
10022 <DebugRegistrationPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
10023 decoder.context,
10024 );
10025 if inlined != (member_inline_size <= 4) {
10026 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10027 }
10028 let inner_offset;
10029 let mut inner_depth = depth.clone();
10030 if inlined {
10031 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10032 inner_offset = next_offset;
10033 } else {
10034 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10035 inner_depth.increment()?;
10036 }
10037 let val_ref = self
10038 .debug_registration_policy
10039 .get_or_insert_with(|| fidl::new_empty!(DebugRegistrationPolicyAllowlists, D));
10040 fidl::decode!(
10041 DebugRegistrationPolicyAllowlists,
10042 D,
10043 val_ref,
10044 decoder,
10045 inner_offset,
10046 inner_depth
10047 )?;
10048 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10049 {
10050 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10051 }
10052 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10053 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10054 }
10055 }
10056
10057 next_offset += envelope_size;
10058 _next_ordinal_to_read += 1;
10059 if next_offset >= end_offset {
10060 return Ok(());
10061 }
10062
10063 while _next_ordinal_to_read < 4 {
10065 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10066 _next_ordinal_to_read += 1;
10067 next_offset += envelope_size;
10068 }
10069
10070 let next_out_of_line = decoder.next_out_of_line();
10071 let handles_before = decoder.remaining_handles();
10072 if let Some((inlined, num_bytes, num_handles)) =
10073 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10074 {
10075 let member_inline_size =
10076 <ChildPolicyAllowlists as fidl::encoding::TypeMarker>::inline_size(
10077 decoder.context,
10078 );
10079 if inlined != (member_inline_size <= 4) {
10080 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10081 }
10082 let inner_offset;
10083 let mut inner_depth = depth.clone();
10084 if inlined {
10085 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10086 inner_offset = next_offset;
10087 } else {
10088 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10089 inner_depth.increment()?;
10090 }
10091 let val_ref = self
10092 .child_policy
10093 .get_or_insert_with(|| fidl::new_empty!(ChildPolicyAllowlists, D));
10094 fidl::decode!(
10095 ChildPolicyAllowlists,
10096 D,
10097 val_ref,
10098 decoder,
10099 inner_offset,
10100 inner_depth
10101 )?;
10102 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10103 {
10104 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10105 }
10106 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10107 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10108 }
10109 }
10110
10111 next_offset += envelope_size;
10112
10113 while next_offset < end_offset {
10115 _next_ordinal_to_read += 1;
10116 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10117 next_offset += envelope_size;
10118 }
10119
10120 Ok(())
10121 }
10122 }
10123
10124 impl Sources {
10125 #[inline(always)]
10126 fn max_ordinal_present(&self) -> u64 {
10127 if let Some(_) = self.capability_type {
10128 return 7;
10129 }
10130 if let Some(_) = self.component {
10131 return 6;
10132 }
10133 if let Some(_) = self.namespace {
10134 return 5;
10135 }
10136 if let Some(_) = self.collection {
10137 return 4;
10138 }
10139 if let Some(_) = self.capability {
10140 return 3;
10141 }
10142 if let Some(_) = self.builtin {
10143 return 2;
10144 }
10145 if let Some(_) = self.framework {
10146 return 1;
10147 }
10148 0
10149 }
10150 }
10151
10152 impl fidl::encoding::ValueTypeMarker for Sources {
10153 type Borrowed<'a> = &'a Self;
10154 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10155 value
10156 }
10157 }
10158
10159 unsafe impl fidl::encoding::TypeMarker for Sources {
10160 type Owned = Self;
10161
10162 #[inline(always)]
10163 fn inline_align(_context: fidl::encoding::Context) -> usize {
10164 8
10165 }
10166
10167 #[inline(always)]
10168 fn inline_size(_context: fidl::encoding::Context) -> usize {
10169 16
10170 }
10171 }
10172
10173 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Sources, D> for &Sources {
10174 unsafe fn encode(
10175 self,
10176 encoder: &mut fidl::encoding::Encoder<'_, D>,
10177 offset: usize,
10178 mut depth: fidl::encoding::Depth,
10179 ) -> fidl::Result<()> {
10180 encoder.debug_check_bounds::<Sources>(offset);
10181 let max_ordinal: u64 = self.max_ordinal_present();
10183 encoder.write_num(max_ordinal, offset);
10184 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10185 if max_ordinal == 0 {
10187 return Ok(());
10188 }
10189 depth.increment()?;
10190 let envelope_size = 8;
10191 let bytes_len = max_ordinal as usize * envelope_size;
10192 #[allow(unused_variables)]
10193 let offset = encoder.out_of_line_offset(bytes_len);
10194 let mut _prev_end_offset: usize = 0;
10195 if 1 > max_ordinal {
10196 return Ok(());
10197 }
10198
10199 let cur_offset: usize = (1 - 1) * envelope_size;
10202
10203 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10205
10206 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10211 self.framework.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10212 encoder,
10213 offset + cur_offset,
10214 depth,
10215 )?;
10216
10217 _prev_end_offset = cur_offset + envelope_size;
10218 if 2 > max_ordinal {
10219 return Ok(());
10220 }
10221
10222 let cur_offset: usize = (2 - 1) * envelope_size;
10225
10226 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10228
10229 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10234 self.builtin.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10235 encoder,
10236 offset + cur_offset,
10237 depth,
10238 )?;
10239
10240 _prev_end_offset = cur_offset + envelope_size;
10241 if 3 > max_ordinal {
10242 return Ok(());
10243 }
10244
10245 let cur_offset: usize = (3 - 1) * envelope_size;
10248
10249 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10251
10252 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10257 self.capability.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10258 encoder,
10259 offset + cur_offset,
10260 depth,
10261 )?;
10262
10263 _prev_end_offset = cur_offset + envelope_size;
10264 if 4 > max_ordinal {
10265 return Ok(());
10266 }
10267
10268 let cur_offset: usize = (4 - 1) * envelope_size;
10271
10272 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10274
10275 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10280 self.collection.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10281 encoder,
10282 offset + cur_offset,
10283 depth,
10284 )?;
10285
10286 _prev_end_offset = cur_offset + envelope_size;
10287 if 5 > max_ordinal {
10288 return Ok(());
10289 }
10290
10291 let cur_offset: usize = (5 - 1) * envelope_size;
10294
10295 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10297
10298 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10303 self.namespace.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10304 encoder,
10305 offset + cur_offset,
10306 depth,
10307 )?;
10308
10309 _prev_end_offset = cur_offset + envelope_size;
10310 if 6 > max_ordinal {
10311 return Ok(());
10312 }
10313
10314 let cur_offset: usize = (6 - 1) * envelope_size;
10317
10318 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10320
10321 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10326 self.component.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10327 encoder,
10328 offset + cur_offset,
10329 depth,
10330 )?;
10331
10332 _prev_end_offset = cur_offset + envelope_size;
10333 if 7 > max_ordinal {
10334 return Ok(());
10335 }
10336
10337 let cur_offset: usize = (7 - 1) * envelope_size;
10340
10341 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10343
10344 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10349 self.capability_type.as_ref().map(
10350 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10351 ),
10352 encoder,
10353 offset + cur_offset,
10354 depth,
10355 )?;
10356
10357 _prev_end_offset = cur_offset + envelope_size;
10358
10359 Ok(())
10360 }
10361 }
10362
10363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Sources {
10364 #[inline(always)]
10365 fn new_empty() -> Self {
10366 Self::default()
10367 }
10368
10369 unsafe fn decode(
10370 &mut self,
10371 decoder: &mut fidl::encoding::Decoder<'_, D>,
10372 offset: usize,
10373 mut depth: fidl::encoding::Depth,
10374 ) -> fidl::Result<()> {
10375 decoder.debug_check_bounds::<Self>(offset);
10376 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10377 None => return Err(fidl::Error::NotNullable),
10378 Some(len) => len,
10379 };
10380 if len == 0 {
10382 return Ok(());
10383 };
10384 depth.increment()?;
10385 let envelope_size = 8;
10386 let bytes_len = len * envelope_size;
10387 let offset = decoder.out_of_line_offset(bytes_len)?;
10388 let mut _next_ordinal_to_read = 0;
10390 let mut next_offset = offset;
10391 let end_offset = offset + bytes_len;
10392 _next_ordinal_to_read += 1;
10393 if next_offset >= end_offset {
10394 return Ok(());
10395 }
10396
10397 while _next_ordinal_to_read < 1 {
10399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10400 _next_ordinal_to_read += 1;
10401 next_offset += envelope_size;
10402 }
10403
10404 let next_out_of_line = decoder.next_out_of_line();
10405 let handles_before = decoder.remaining_handles();
10406 if let Some((inlined, num_bytes, num_handles)) =
10407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10408 {
10409 let member_inline_size =
10410 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10411 if inlined != (member_inline_size <= 4) {
10412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10413 }
10414 let inner_offset;
10415 let mut inner_depth = depth.clone();
10416 if inlined {
10417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10418 inner_offset = next_offset;
10419 } else {
10420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10421 inner_depth.increment()?;
10422 }
10423 let val_ref = self.framework.get_or_insert_with(|| fidl::new_empty!(bool, D));
10424 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10425 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10426 {
10427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10428 }
10429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10431 }
10432 }
10433
10434 next_offset += envelope_size;
10435 _next_ordinal_to_read += 1;
10436 if next_offset >= end_offset {
10437 return Ok(());
10438 }
10439
10440 while _next_ordinal_to_read < 2 {
10442 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10443 _next_ordinal_to_read += 1;
10444 next_offset += envelope_size;
10445 }
10446
10447 let next_out_of_line = decoder.next_out_of_line();
10448 let handles_before = decoder.remaining_handles();
10449 if let Some((inlined, num_bytes, num_handles)) =
10450 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10451 {
10452 let member_inline_size =
10453 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10454 if inlined != (member_inline_size <= 4) {
10455 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10456 }
10457 let inner_offset;
10458 let mut inner_depth = depth.clone();
10459 if inlined {
10460 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10461 inner_offset = next_offset;
10462 } else {
10463 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10464 inner_depth.increment()?;
10465 }
10466 let val_ref = self.builtin.get_or_insert_with(|| fidl::new_empty!(bool, D));
10467 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10468 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10469 {
10470 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10471 }
10472 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10473 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10474 }
10475 }
10476
10477 next_offset += envelope_size;
10478 _next_ordinal_to_read += 1;
10479 if next_offset >= end_offset {
10480 return Ok(());
10481 }
10482
10483 while _next_ordinal_to_read < 3 {
10485 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10486 _next_ordinal_to_read += 1;
10487 next_offset += envelope_size;
10488 }
10489
10490 let next_out_of_line = decoder.next_out_of_line();
10491 let handles_before = decoder.remaining_handles();
10492 if let Some((inlined, num_bytes, num_handles)) =
10493 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10494 {
10495 let member_inline_size =
10496 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10497 if inlined != (member_inline_size <= 4) {
10498 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10499 }
10500 let inner_offset;
10501 let mut inner_depth = depth.clone();
10502 if inlined {
10503 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10504 inner_offset = next_offset;
10505 } else {
10506 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10507 inner_depth.increment()?;
10508 }
10509 let val_ref = self.capability.get_or_insert_with(|| fidl::new_empty!(bool, D));
10510 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10511 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10512 {
10513 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10514 }
10515 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10516 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10517 }
10518 }
10519
10520 next_offset += envelope_size;
10521 _next_ordinal_to_read += 1;
10522 if next_offset >= end_offset {
10523 return Ok(());
10524 }
10525
10526 while _next_ordinal_to_read < 4 {
10528 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10529 _next_ordinal_to_read += 1;
10530 next_offset += envelope_size;
10531 }
10532
10533 let next_out_of_line = decoder.next_out_of_line();
10534 let handles_before = decoder.remaining_handles();
10535 if let Some((inlined, num_bytes, num_handles)) =
10536 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10537 {
10538 let member_inline_size =
10539 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10540 if inlined != (member_inline_size <= 4) {
10541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10542 }
10543 let inner_offset;
10544 let mut inner_depth = depth.clone();
10545 if inlined {
10546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10547 inner_offset = next_offset;
10548 } else {
10549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10550 inner_depth.increment()?;
10551 }
10552 let val_ref = self.collection.get_or_insert_with(|| fidl::new_empty!(bool, D));
10553 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10555 {
10556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10557 }
10558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10560 }
10561 }
10562
10563 next_offset += envelope_size;
10564 _next_ordinal_to_read += 1;
10565 if next_offset >= end_offset {
10566 return Ok(());
10567 }
10568
10569 while _next_ordinal_to_read < 5 {
10571 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10572 _next_ordinal_to_read += 1;
10573 next_offset += envelope_size;
10574 }
10575
10576 let next_out_of_line = decoder.next_out_of_line();
10577 let handles_before = decoder.remaining_handles();
10578 if let Some((inlined, num_bytes, num_handles)) =
10579 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10580 {
10581 let member_inline_size =
10582 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10583 if inlined != (member_inline_size <= 4) {
10584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10585 }
10586 let inner_offset;
10587 let mut inner_depth = depth.clone();
10588 if inlined {
10589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10590 inner_offset = next_offset;
10591 } else {
10592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10593 inner_depth.increment()?;
10594 }
10595 let val_ref = self.namespace.get_or_insert_with(|| fidl::new_empty!(bool, D));
10596 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10598 {
10599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10600 }
10601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10603 }
10604 }
10605
10606 next_offset += envelope_size;
10607 _next_ordinal_to_read += 1;
10608 if next_offset >= end_offset {
10609 return Ok(());
10610 }
10611
10612 while _next_ordinal_to_read < 6 {
10614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10615 _next_ordinal_to_read += 1;
10616 next_offset += envelope_size;
10617 }
10618
10619 let next_out_of_line = decoder.next_out_of_line();
10620 let handles_before = decoder.remaining_handles();
10621 if let Some((inlined, num_bytes, num_handles)) =
10622 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10623 {
10624 let member_inline_size =
10625 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10626 if inlined != (member_inline_size <= 4) {
10627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10628 }
10629 let inner_offset;
10630 let mut inner_depth = depth.clone();
10631 if inlined {
10632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10633 inner_offset = next_offset;
10634 } else {
10635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10636 inner_depth.increment()?;
10637 }
10638 let val_ref = self.component.get_or_insert_with(|| fidl::new_empty!(bool, D));
10639 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10641 {
10642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10643 }
10644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10646 }
10647 }
10648
10649 next_offset += envelope_size;
10650 _next_ordinal_to_read += 1;
10651 if next_offset >= end_offset {
10652 return Ok(());
10653 }
10654
10655 while _next_ordinal_to_read < 7 {
10657 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10658 _next_ordinal_to_read += 1;
10659 next_offset += envelope_size;
10660 }
10661
10662 let next_out_of_line = decoder.next_out_of_line();
10663 let handles_before = decoder.remaining_handles();
10664 if let Some((inlined, num_bytes, num_handles)) =
10665 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10666 {
10667 let member_inline_size =
10668 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10669 decoder.context,
10670 );
10671 if inlined != (member_inline_size <= 4) {
10672 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10673 }
10674 let inner_offset;
10675 let mut inner_depth = depth.clone();
10676 if inlined {
10677 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10678 inner_offset = next_offset;
10679 } else {
10680 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10681 inner_depth.increment()?;
10682 }
10683 let val_ref = self
10684 .capability_type
10685 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10686 fidl::decode!(
10687 fidl::encoding::BoundedString<100>,
10688 D,
10689 val_ref,
10690 decoder,
10691 inner_offset,
10692 inner_depth
10693 )?;
10694 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10695 {
10696 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10697 }
10698 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10699 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10700 }
10701 }
10702
10703 next_offset += envelope_size;
10704
10705 while next_offset < end_offset {
10707 _next_ordinal_to_read += 1;
10708 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10709 next_offset += envelope_size;
10710 }
10711
10712 Ok(())
10713 }
10714 }
10715
10716 impl Void {
10717 #[inline(always)]
10718 fn max_ordinal_present(&self) -> u64 {
10719 if let Some(_) = self.moniker {
10720 return 2;
10721 }
10722 if let Some(_) = self.capability {
10723 return 1;
10724 }
10725 0
10726 }
10727 }
10728
10729 impl fidl::encoding::ValueTypeMarker for Void {
10730 type Borrowed<'a> = &'a Self;
10731 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10732 value
10733 }
10734 }
10735
10736 unsafe impl fidl::encoding::TypeMarker for Void {
10737 type Owned = Self;
10738
10739 #[inline(always)]
10740 fn inline_align(_context: fidl::encoding::Context) -> usize {
10741 8
10742 }
10743
10744 #[inline(always)]
10745 fn inline_size(_context: fidl::encoding::Context) -> usize {
10746 16
10747 }
10748 }
10749
10750 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Void, D> for &Void {
10751 unsafe fn encode(
10752 self,
10753 encoder: &mut fidl::encoding::Encoder<'_, D>,
10754 offset: usize,
10755 mut depth: fidl::encoding::Depth,
10756 ) -> fidl::Result<()> {
10757 encoder.debug_check_bounds::<Void>(offset);
10758 let max_ordinal: u64 = self.max_ordinal_present();
10760 encoder.write_num(max_ordinal, offset);
10761 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10762 if max_ordinal == 0 {
10764 return Ok(());
10765 }
10766 depth.increment()?;
10767 let envelope_size = 8;
10768 let bytes_len = max_ordinal as usize * envelope_size;
10769 #[allow(unused_variables)]
10770 let offset = encoder.out_of_line_offset(bytes_len);
10771 let mut _prev_end_offset: usize = 0;
10772 if 1 > max_ordinal {
10773 return Ok(());
10774 }
10775
10776 let cur_offset: usize = (1 - 1) * envelope_size;
10779
10780 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10782
10783 fidl::encoding::encode_in_envelope_optional::<InternalCapability, D>(
10788 self.capability
10789 .as_ref()
10790 .map(<InternalCapability as fidl::encoding::ValueTypeMarker>::borrow),
10791 encoder,
10792 offset + cur_offset,
10793 depth,
10794 )?;
10795
10796 _prev_end_offset = cur_offset + envelope_size;
10797 if 2 > max_ordinal {
10798 return Ok(());
10799 }
10800
10801 let cur_offset: usize = (2 - 1) * envelope_size;
10804
10805 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10807
10808 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
10813 self.moniker.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
10814 encoder, offset + cur_offset, depth
10815 )?;
10816
10817 _prev_end_offset = cur_offset + envelope_size;
10818
10819 Ok(())
10820 }
10821 }
10822
10823 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Void {
10824 #[inline(always)]
10825 fn new_empty() -> Self {
10826 Self::default()
10827 }
10828
10829 unsafe fn decode(
10830 &mut self,
10831 decoder: &mut fidl::encoding::Decoder<'_, D>,
10832 offset: usize,
10833 mut depth: fidl::encoding::Depth,
10834 ) -> fidl::Result<()> {
10835 decoder.debug_check_bounds::<Self>(offset);
10836 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10837 None => return Err(fidl::Error::NotNullable),
10838 Some(len) => len,
10839 };
10840 if len == 0 {
10842 return Ok(());
10843 };
10844 depth.increment()?;
10845 let envelope_size = 8;
10846 let bytes_len = len * envelope_size;
10847 let offset = decoder.out_of_line_offset(bytes_len)?;
10848 let mut _next_ordinal_to_read = 0;
10850 let mut next_offset = offset;
10851 let end_offset = offset + bytes_len;
10852 _next_ordinal_to_read += 1;
10853 if next_offset >= end_offset {
10854 return Ok(());
10855 }
10856
10857 while _next_ordinal_to_read < 1 {
10859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10860 _next_ordinal_to_read += 1;
10861 next_offset += envelope_size;
10862 }
10863
10864 let next_out_of_line = decoder.next_out_of_line();
10865 let handles_before = decoder.remaining_handles();
10866 if let Some((inlined, num_bytes, num_handles)) =
10867 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10868 {
10869 let member_inline_size =
10870 <InternalCapability as fidl::encoding::TypeMarker>::inline_size(
10871 decoder.context,
10872 );
10873 if inlined != (member_inline_size <= 4) {
10874 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10875 }
10876 let inner_offset;
10877 let mut inner_depth = depth.clone();
10878 if inlined {
10879 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10880 inner_offset = next_offset;
10881 } else {
10882 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10883 inner_depth.increment()?;
10884 }
10885 let val_ref =
10886 self.capability.get_or_insert_with(|| fidl::new_empty!(InternalCapability, D));
10887 fidl::decode!(InternalCapability, D, val_ref, decoder, inner_offset, inner_depth)?;
10888 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10889 {
10890 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10891 }
10892 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10893 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10894 }
10895 }
10896
10897 next_offset += envelope_size;
10898 _next_ordinal_to_read += 1;
10899 if next_offset >= end_offset {
10900 return Ok(());
10901 }
10902
10903 while _next_ordinal_to_read < 2 {
10905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10906 _next_ordinal_to_read += 1;
10907 next_offset += envelope_size;
10908 }
10909
10910 let next_out_of_line = decoder.next_out_of_line();
10911 let handles_before = decoder.remaining_handles();
10912 if let Some((inlined, num_bytes, num_handles)) =
10913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10914 {
10915 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10916 if inlined != (member_inline_size <= 4) {
10917 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10918 }
10919 let inner_offset;
10920 let mut inner_depth = depth.clone();
10921 if inlined {
10922 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10923 inner_offset = next_offset;
10924 } else {
10925 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10926 inner_depth.increment()?;
10927 }
10928 let val_ref = self.moniker.get_or_insert_with(|| {
10929 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
10930 });
10931 fidl::decode!(
10932 fidl::encoding::BoundedString<4096>,
10933 D,
10934 val_ref,
10935 decoder,
10936 inner_offset,
10937 inner_depth
10938 )?;
10939 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10940 {
10941 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10942 }
10943 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10944 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10945 }
10946 }
10947
10948 next_offset += envelope_size;
10949
10950 while next_offset < end_offset {
10952 _next_ordinal_to_read += 1;
10953 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10954 next_offset += envelope_size;
10955 }
10956
10957 Ok(())
10958 }
10959 }
10960
10961 impl fidl::encoding::ValueTypeMarker for AggregateCapability {
10962 type Borrowed<'a> = &'a Self;
10963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10964 value
10965 }
10966 }
10967
10968 unsafe impl fidl::encoding::TypeMarker for AggregateCapability {
10969 type Owned = Self;
10970
10971 #[inline(always)]
10972 fn inline_align(_context: fidl::encoding::Context) -> usize {
10973 8
10974 }
10975
10976 #[inline(always)]
10977 fn inline_size(_context: fidl::encoding::Context) -> usize {
10978 16
10979 }
10980 }
10981
10982 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AggregateCapability, D>
10983 for &AggregateCapability
10984 {
10985 #[inline]
10986 unsafe fn encode(
10987 self,
10988 encoder: &mut fidl::encoding::Encoder<'_, D>,
10989 offset: usize,
10990 _depth: fidl::encoding::Depth,
10991 ) -> fidl::Result<()> {
10992 encoder.debug_check_bounds::<AggregateCapability>(offset);
10993 encoder.write_num::<u64>(self.ordinal(), offset);
10994 match self {
10995 AggregateCapability::Service(ref val) => fidl::encoding::encode_in_envelope::<
10996 fidl::encoding::BoundedString<100>,
10997 D,
10998 >(
10999 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
11000 val,
11001 ),
11002 encoder,
11003 offset + 8,
11004 _depth,
11005 ),
11006 }
11007 }
11008 }
11009
11010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AggregateCapability {
11011 #[inline(always)]
11012 fn new_empty() -> Self {
11013 Self::Service(fidl::new_empty!(fidl::encoding::BoundedString<100>, D))
11014 }
11015
11016 #[inline]
11017 unsafe fn decode(
11018 &mut self,
11019 decoder: &mut fidl::encoding::Decoder<'_, D>,
11020 offset: usize,
11021 mut depth: fidl::encoding::Depth,
11022 ) -> fidl::Result<()> {
11023 decoder.debug_check_bounds::<Self>(offset);
11024 #[allow(unused_variables)]
11025 let next_out_of_line = decoder.next_out_of_line();
11026 let handles_before = decoder.remaining_handles();
11027 let (ordinal, inlined, num_bytes, num_handles) =
11028 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
11029
11030 let member_inline_size = match ordinal {
11031 1 => {
11032 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11033 decoder.context,
11034 )
11035 }
11036 _ => return Err(fidl::Error::UnknownUnionTag),
11037 };
11038
11039 if inlined != (member_inline_size <= 4) {
11040 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11041 }
11042 let _inner_offset;
11043 if inlined {
11044 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
11045 _inner_offset = offset + 8;
11046 } else {
11047 depth.increment()?;
11048 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11049 }
11050 match ordinal {
11051 1 => {
11052 #[allow(irrefutable_let_patterns)]
11053 if let AggregateCapability::Service(_) = self {
11054 } else {
11056 *self = AggregateCapability::Service(fidl::new_empty!(
11058 fidl::encoding::BoundedString<100>,
11059 D
11060 ));
11061 }
11062 #[allow(irrefutable_let_patterns)]
11063 if let AggregateCapability::Service(ref mut val) = self {
11064 fidl::decode!(
11065 fidl::encoding::BoundedString<100>,
11066 D,
11067 val,
11068 decoder,
11069 _inner_offset,
11070 depth
11071 )?;
11072 } else {
11073 unreachable!()
11074 }
11075 }
11076 ordinal => panic!("unexpected ordinal {:?}", ordinal),
11077 }
11078 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
11079 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11080 }
11081 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11082 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11083 }
11084 Ok(())
11085 }
11086 }
11087
11088 impl fidl::encoding::ValueTypeMarker for AggregateMember {
11089 type Borrowed<'a> = &'a Self;
11090 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11091 value
11092 }
11093 }
11094
11095 unsafe impl fidl::encoding::TypeMarker for AggregateMember {
11096 type Owned = Self;
11097
11098 #[inline(always)]
11099 fn inline_align(_context: fidl::encoding::Context) -> usize {
11100 8
11101 }
11102
11103 #[inline(always)]
11104 fn inline_size(_context: fidl::encoding::Context) -> usize {
11105 16
11106 }
11107 }
11108
11109 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AggregateMember, D>
11110 for &AggregateMember
11111 {
11112 #[inline]
11113 unsafe fn encode(
11114 self,
11115 encoder: &mut fidl::encoding::Encoder<'_, D>,
11116 offset: usize,
11117 _depth: fidl::encoding::Depth,
11118 ) -> fidl::Result<()> {
11119 encoder.debug_check_bounds::<AggregateMember>(offset);
11120 encoder.write_num::<u64>(self.ordinal(), offset);
11121 match self {
11122 AggregateMember::Child(ref val) => {
11123 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::ChildRef, D>(
11124 <fidl_fuchsia_component_decl__common::ChildRef as fidl::encoding::ValueTypeMarker>::borrow(val),
11125 encoder, offset + 8, _depth
11126 )
11127 }
11128 AggregateMember::Collection(ref val) => {
11129 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<100>, D>(
11130 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(val),
11131 encoder, offset + 8, _depth
11132 )
11133 }
11134 AggregateMember::Parent(ref val) => {
11135 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::ParentRef, D>(
11136 <fidl_fuchsia_component_decl__common::ParentRef as fidl::encoding::ValueTypeMarker>::borrow(val),
11137 encoder, offset + 8, _depth
11138 )
11139 }
11140 AggregateMember::Self_(ref val) => {
11141 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::SelfRef, D>(
11142 <fidl_fuchsia_component_decl__common::SelfRef as fidl::encoding::ValueTypeMarker>::borrow(val),
11143 encoder, offset + 8, _depth
11144 )
11145 }
11146 }
11147 }
11148 }
11149
11150 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AggregateMember {
11151 #[inline(always)]
11152 fn new_empty() -> Self {
11153 Self::Child(fidl::new_empty!(fidl_fuchsia_component_decl__common::ChildRef, D))
11154 }
11155
11156 #[inline]
11157 unsafe fn decode(
11158 &mut self,
11159 decoder: &mut fidl::encoding::Decoder<'_, D>,
11160 offset: usize,
11161 mut depth: fidl::encoding::Depth,
11162 ) -> fidl::Result<()> {
11163 decoder.debug_check_bounds::<Self>(offset);
11164 #[allow(unused_variables)]
11165 let next_out_of_line = decoder.next_out_of_line();
11166 let handles_before = decoder.remaining_handles();
11167 let (ordinal, inlined, num_bytes, num_handles) =
11168 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
11169
11170 let member_inline_size = match ordinal {
11171 1 => <fidl_fuchsia_component_decl__common::ChildRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11172 2 => <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11173 3 => <fidl_fuchsia_component_decl__common::ParentRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11174 4 => <fidl_fuchsia_component_decl__common::SelfRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11175 _ => return Err(fidl::Error::UnknownUnionTag),
11176 };
11177
11178 if inlined != (member_inline_size <= 4) {
11179 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11180 }
11181 let _inner_offset;
11182 if inlined {
11183 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
11184 _inner_offset = offset + 8;
11185 } else {
11186 depth.increment()?;
11187 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11188 }
11189 match ordinal {
11190 1 => {
11191 #[allow(irrefutable_let_patterns)]
11192 if let AggregateMember::Child(_) = self {
11193 } else {
11195 *self = AggregateMember::Child(fidl::new_empty!(
11197 fidl_fuchsia_component_decl__common::ChildRef,
11198 D
11199 ));
11200 }
11201 #[allow(irrefutable_let_patterns)]
11202 if let AggregateMember::Child(ref mut val) = self {
11203 fidl::decode!(
11204 fidl_fuchsia_component_decl__common::ChildRef,
11205 D,
11206 val,
11207 decoder,
11208 _inner_offset,
11209 depth
11210 )?;
11211 } else {
11212 unreachable!()
11213 }
11214 }
11215 2 => {
11216 #[allow(irrefutable_let_patterns)]
11217 if let AggregateMember::Collection(_) = self {
11218 } else {
11220 *self = AggregateMember::Collection(fidl::new_empty!(
11222 fidl::encoding::BoundedString<100>,
11223 D
11224 ));
11225 }
11226 #[allow(irrefutable_let_patterns)]
11227 if let AggregateMember::Collection(ref mut val) = self {
11228 fidl::decode!(
11229 fidl::encoding::BoundedString<100>,
11230 D,
11231 val,
11232 decoder,
11233 _inner_offset,
11234 depth
11235 )?;
11236 } else {
11237 unreachable!()
11238 }
11239 }
11240 3 => {
11241 #[allow(irrefutable_let_patterns)]
11242 if let AggregateMember::Parent(_) = self {
11243 } else {
11245 *self = AggregateMember::Parent(fidl::new_empty!(
11247 fidl_fuchsia_component_decl__common::ParentRef,
11248 D
11249 ));
11250 }
11251 #[allow(irrefutable_let_patterns)]
11252 if let AggregateMember::Parent(ref mut val) = self {
11253 fidl::decode!(
11254 fidl_fuchsia_component_decl__common::ParentRef,
11255 D,
11256 val,
11257 decoder,
11258 _inner_offset,
11259 depth
11260 )?;
11261 } else {
11262 unreachable!()
11263 }
11264 }
11265 4 => {
11266 #[allow(irrefutable_let_patterns)]
11267 if let AggregateMember::Self_(_) = self {
11268 } else {
11270 *self = AggregateMember::Self_(fidl::new_empty!(
11272 fidl_fuchsia_component_decl__common::SelfRef,
11273 D
11274 ));
11275 }
11276 #[allow(irrefutable_let_patterns)]
11277 if let AggregateMember::Self_(ref mut val) = self {
11278 fidl::decode!(
11279 fidl_fuchsia_component_decl__common::SelfRef,
11280 D,
11281 val,
11282 decoder,
11283 _inner_offset,
11284 depth
11285 )?;
11286 } else {
11287 unreachable!()
11288 }
11289 }
11290 ordinal => panic!("unexpected ordinal {:?}", ordinal),
11291 }
11292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
11293 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11294 }
11295 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11296 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11297 }
11298 Ok(())
11299 }
11300 }
11301
11302 impl fidl::encoding::ValueTypeMarker for AllowlistedCapability {
11303 type Borrowed<'a> = &'a Self;
11304 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11305 value
11306 }
11307 }
11308
11309 unsafe impl fidl::encoding::TypeMarker for AllowlistedCapability {
11310 type Owned = Self;
11311
11312 #[inline(always)]
11313 fn inline_align(_context: fidl::encoding::Context) -> usize {
11314 8
11315 }
11316
11317 #[inline(always)]
11318 fn inline_size(_context: fidl::encoding::Context) -> usize {
11319 16
11320 }
11321 }
11322
11323 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AllowlistedCapability, D>
11324 for &AllowlistedCapability
11325 {
11326 #[inline]
11327 unsafe fn encode(
11328 self,
11329 encoder: &mut fidl::encoding::Encoder<'_, D>,
11330 offset: usize,
11331 _depth: fidl::encoding::Depth,
11332 ) -> fidl::Result<()> {
11333 encoder.debug_check_bounds::<AllowlistedCapability>(offset);
11334 encoder.write_num::<u64>(self.ordinal(), offset);
11335 match self {
11336 AllowlistedCapability::Directory(ref val) => {
11337 fidl::encoding::encode_in_envelope::<AllowlistedDirectory, D>(
11338 <AllowlistedDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
11339 encoder,
11340 offset + 8,
11341 _depth,
11342 )
11343 }
11344 AllowlistedCapability::Protocol(ref val) => {
11345 fidl::encoding::encode_in_envelope::<AllowlistedProtocol, D>(
11346 <AllowlistedProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
11347 encoder,
11348 offset + 8,
11349 _depth,
11350 )
11351 }
11352 AllowlistedCapability::Service(ref val) => {
11353 fidl::encoding::encode_in_envelope::<AllowlistedService, D>(
11354 <AllowlistedService as fidl::encoding::ValueTypeMarker>::borrow(val),
11355 encoder,
11356 offset + 8,
11357 _depth,
11358 )
11359 }
11360 AllowlistedCapability::Storage(ref val) => {
11361 fidl::encoding::encode_in_envelope::<AllowlistedStorage, D>(
11362 <AllowlistedStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
11363 encoder,
11364 offset + 8,
11365 _depth,
11366 )
11367 }
11368 AllowlistedCapability::Runner(ref val) => {
11369 fidl::encoding::encode_in_envelope::<AllowlistedRunner, D>(
11370 <AllowlistedRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
11371 encoder,
11372 offset + 8,
11373 _depth,
11374 )
11375 }
11376 AllowlistedCapability::Resolver(ref val) => {
11377 fidl::encoding::encode_in_envelope::<AllowlistedResolver, D>(
11378 <AllowlistedResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
11379 encoder,
11380 offset + 8,
11381 _depth,
11382 )
11383 }
11384 AllowlistedCapability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
11385 }
11386 }
11387 }
11388
11389 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowlistedCapability {
11390 #[inline(always)]
11391 fn new_empty() -> Self {
11392 Self::__SourceBreaking { unknown_ordinal: 0 }
11393 }
11394
11395 #[inline]
11396 unsafe fn decode(
11397 &mut self,
11398 decoder: &mut fidl::encoding::Decoder<'_, D>,
11399 offset: usize,
11400 mut depth: fidl::encoding::Depth,
11401 ) -> fidl::Result<()> {
11402 decoder.debug_check_bounds::<Self>(offset);
11403 #[allow(unused_variables)]
11404 let next_out_of_line = decoder.next_out_of_line();
11405 let handles_before = decoder.remaining_handles();
11406 let (ordinal, inlined, num_bytes, num_handles) =
11407 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
11408
11409 let member_inline_size = match ordinal {
11410 1 => <AllowlistedDirectory as fidl::encoding::TypeMarker>::inline_size(
11411 decoder.context,
11412 ),
11413 3 => <AllowlistedProtocol as fidl::encoding::TypeMarker>::inline_size(
11414 decoder.context,
11415 ),
11416 4 => {
11417 <AllowlistedService as fidl::encoding::TypeMarker>::inline_size(decoder.context)
11418 }
11419 5 => {
11420 <AllowlistedStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context)
11421 }
11422 6 => {
11423 <AllowlistedRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context)
11424 }
11425 7 => <AllowlistedResolver as fidl::encoding::TypeMarker>::inline_size(
11426 decoder.context,
11427 ),
11428 0 => return Err(fidl::Error::UnknownUnionTag),
11429 _ => num_bytes as usize,
11430 };
11431
11432 if inlined != (member_inline_size <= 4) {
11433 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11434 }
11435 let _inner_offset;
11436 if inlined {
11437 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
11438 _inner_offset = offset + 8;
11439 } else {
11440 depth.increment()?;
11441 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11442 }
11443 match ordinal {
11444 1 => {
11445 #[allow(irrefutable_let_patterns)]
11446 if let AllowlistedCapability::Directory(_) = self {
11447 } else {
11449 *self = AllowlistedCapability::Directory(fidl::new_empty!(
11451 AllowlistedDirectory,
11452 D
11453 ));
11454 }
11455 #[allow(irrefutable_let_patterns)]
11456 if let AllowlistedCapability::Directory(ref mut val) = self {
11457 fidl::decode!(AllowlistedDirectory, D, val, decoder, _inner_offset, depth)?;
11458 } else {
11459 unreachable!()
11460 }
11461 }
11462 3 => {
11463 #[allow(irrefutable_let_patterns)]
11464 if let AllowlistedCapability::Protocol(_) = self {
11465 } else {
11467 *self = AllowlistedCapability::Protocol(fidl::new_empty!(
11469 AllowlistedProtocol,
11470 D
11471 ));
11472 }
11473 #[allow(irrefutable_let_patterns)]
11474 if let AllowlistedCapability::Protocol(ref mut val) = self {
11475 fidl::decode!(AllowlistedProtocol, D, val, decoder, _inner_offset, depth)?;
11476 } else {
11477 unreachable!()
11478 }
11479 }
11480 4 => {
11481 #[allow(irrefutable_let_patterns)]
11482 if let AllowlistedCapability::Service(_) = self {
11483 } else {
11485 *self =
11487 AllowlistedCapability::Service(fidl::new_empty!(AllowlistedService, D));
11488 }
11489 #[allow(irrefutable_let_patterns)]
11490 if let AllowlistedCapability::Service(ref mut val) = self {
11491 fidl::decode!(AllowlistedService, D, val, decoder, _inner_offset, depth)?;
11492 } else {
11493 unreachable!()
11494 }
11495 }
11496 5 => {
11497 #[allow(irrefutable_let_patterns)]
11498 if let AllowlistedCapability::Storage(_) = self {
11499 } else {
11501 *self =
11503 AllowlistedCapability::Storage(fidl::new_empty!(AllowlistedStorage, D));
11504 }
11505 #[allow(irrefutable_let_patterns)]
11506 if let AllowlistedCapability::Storage(ref mut val) = self {
11507 fidl::decode!(AllowlistedStorage, D, val, decoder, _inner_offset, depth)?;
11508 } else {
11509 unreachable!()
11510 }
11511 }
11512 6 => {
11513 #[allow(irrefutable_let_patterns)]
11514 if let AllowlistedCapability::Runner(_) = self {
11515 } else {
11517 *self =
11519 AllowlistedCapability::Runner(fidl::new_empty!(AllowlistedRunner, D));
11520 }
11521 #[allow(irrefutable_let_patterns)]
11522 if let AllowlistedCapability::Runner(ref mut val) = self {
11523 fidl::decode!(AllowlistedRunner, D, val, decoder, _inner_offset, depth)?;
11524 } else {
11525 unreachable!()
11526 }
11527 }
11528 7 => {
11529 #[allow(irrefutable_let_patterns)]
11530 if let AllowlistedCapability::Resolver(_) = self {
11531 } else {
11533 *self = AllowlistedCapability::Resolver(fidl::new_empty!(
11535 AllowlistedResolver,
11536 D
11537 ));
11538 }
11539 #[allow(irrefutable_let_patterns)]
11540 if let AllowlistedCapability::Resolver(ref mut val) = self {
11541 fidl::decode!(AllowlistedResolver, D, val, decoder, _inner_offset, depth)?;
11542 } else {
11543 unreachable!()
11544 }
11545 }
11546 #[allow(deprecated)]
11547 ordinal => {
11548 for _ in 0..num_handles {
11549 decoder.drop_next_handle()?;
11550 }
11551 *self = AllowlistedCapability::__SourceBreaking { unknown_ordinal: ordinal };
11552 }
11553 }
11554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
11555 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11556 }
11557 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11558 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11559 }
11560 Ok(())
11561 }
11562 }
11563
11564 impl fidl::encoding::ValueTypeMarker for AllowlistedDebugRegistration {
11565 type Borrowed<'a> = &'a Self;
11566 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11567 value
11568 }
11569 }
11570
11571 unsafe impl fidl::encoding::TypeMarker for AllowlistedDebugRegistration {
11572 type Owned = Self;
11573
11574 #[inline(always)]
11575 fn inline_align(_context: fidl::encoding::Context) -> usize {
11576 8
11577 }
11578
11579 #[inline(always)]
11580 fn inline_size(_context: fidl::encoding::Context) -> usize {
11581 16
11582 }
11583 }
11584
11585 unsafe impl<D: fidl::encoding::ResourceDialect>
11586 fidl::encoding::Encode<AllowlistedDebugRegistration, D> for &AllowlistedDebugRegistration
11587 {
11588 #[inline]
11589 unsafe fn encode(
11590 self,
11591 encoder: &mut fidl::encoding::Encoder<'_, D>,
11592 offset: usize,
11593 _depth: fidl::encoding::Depth,
11594 ) -> fidl::Result<()> {
11595 encoder.debug_check_bounds::<AllowlistedDebugRegistration>(offset);
11596 encoder.write_num::<u64>(self.ordinal(), offset);
11597 match self {
11598 AllowlistedDebugRegistration::Protocol(ref val) => {
11599 fidl::encoding::encode_in_envelope::<AllowlistedProtocol, D>(
11600 <AllowlistedProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
11601 encoder,
11602 offset + 8,
11603 _depth,
11604 )
11605 }
11606 AllowlistedDebugRegistration::__SourceBreaking { .. } => {
11607 Err(fidl::Error::UnknownUnionTag)
11608 }
11609 }
11610 }
11611 }
11612
11613 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11614 for AllowlistedDebugRegistration
11615 {
11616 #[inline(always)]
11617 fn new_empty() -> Self {
11618 Self::__SourceBreaking { unknown_ordinal: 0 }
11619 }
11620
11621 #[inline]
11622 unsafe fn decode(
11623 &mut self,
11624 decoder: &mut fidl::encoding::Decoder<'_, D>,
11625 offset: usize,
11626 mut depth: fidl::encoding::Depth,
11627 ) -> fidl::Result<()> {
11628 decoder.debug_check_bounds::<Self>(offset);
11629 #[allow(unused_variables)]
11630 let next_out_of_line = decoder.next_out_of_line();
11631 let handles_before = decoder.remaining_handles();
11632 let (ordinal, inlined, num_bytes, num_handles) =
11633 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
11634
11635 let member_inline_size = match ordinal {
11636 1 => <AllowlistedProtocol as fidl::encoding::TypeMarker>::inline_size(
11637 decoder.context,
11638 ),
11639 0 => return Err(fidl::Error::UnknownUnionTag),
11640 _ => num_bytes as usize,
11641 };
11642
11643 if inlined != (member_inline_size <= 4) {
11644 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11645 }
11646 let _inner_offset;
11647 if inlined {
11648 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
11649 _inner_offset = offset + 8;
11650 } else {
11651 depth.increment()?;
11652 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11653 }
11654 match ordinal {
11655 1 => {
11656 #[allow(irrefutable_let_patterns)]
11657 if let AllowlistedDebugRegistration::Protocol(_) = self {
11658 } else {
11660 *self = AllowlistedDebugRegistration::Protocol(fidl::new_empty!(
11662 AllowlistedProtocol,
11663 D
11664 ));
11665 }
11666 #[allow(irrefutable_let_patterns)]
11667 if let AllowlistedDebugRegistration::Protocol(ref mut val) = self {
11668 fidl::decode!(AllowlistedProtocol, D, val, decoder, _inner_offset, depth)?;
11669 } else {
11670 unreachable!()
11671 }
11672 }
11673 #[allow(deprecated)]
11674 ordinal => {
11675 for _ in 0..num_handles {
11676 decoder.drop_next_handle()?;
11677 }
11678 *self =
11679 AllowlistedDebugRegistration::__SourceBreaking { unknown_ordinal: ordinal };
11680 }
11681 }
11682 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
11683 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11684 }
11685 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11686 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11687 }
11688 Ok(())
11689 }
11690 }
11691
11692 impl fidl::encoding::ValueTypeMarker for CapabilitySource {
11693 type Borrowed<'a> = &'a Self;
11694 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11695 value
11696 }
11697 }
11698
11699 unsafe impl fidl::encoding::TypeMarker for CapabilitySource {
11700 type Owned = Self;
11701
11702 #[inline(always)]
11703 fn inline_align(_context: fidl::encoding::Context) -> usize {
11704 8
11705 }
11706
11707 #[inline(always)]
11708 fn inline_size(_context: fidl::encoding::Context) -> usize {
11709 16
11710 }
11711 }
11712
11713 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CapabilitySource, D>
11714 for &CapabilitySource
11715 {
11716 #[inline]
11717 unsafe fn encode(
11718 self,
11719 encoder: &mut fidl::encoding::Encoder<'_, D>,
11720 offset: usize,
11721 _depth: fidl::encoding::Depth,
11722 ) -> fidl::Result<()> {
11723 encoder.debug_check_bounds::<CapabilitySource>(offset);
11724 encoder.write_num::<u64>(self.ordinal(), offset);
11725 match self {
11726 CapabilitySource::Component(ref val) => {
11727 fidl::encoding::encode_in_envelope::<Component, D>(
11728 <Component as fidl::encoding::ValueTypeMarker>::borrow(val),
11729 encoder,
11730 offset + 8,
11731 _depth,
11732 )
11733 }
11734 CapabilitySource::Framework(ref val) => {
11735 fidl::encoding::encode_in_envelope::<Framework, D>(
11736 <Framework as fidl::encoding::ValueTypeMarker>::borrow(val),
11737 encoder,
11738 offset + 8,
11739 _depth,
11740 )
11741 }
11742 CapabilitySource::Builtin(ref val) => {
11743 fidl::encoding::encode_in_envelope::<Builtin, D>(
11744 <Builtin as fidl::encoding::ValueTypeMarker>::borrow(val),
11745 encoder,
11746 offset + 8,
11747 _depth,
11748 )
11749 }
11750 CapabilitySource::Namespace(ref val) => {
11751 fidl::encoding::encode_in_envelope::<Namespace, D>(
11752 <Namespace as fidl::encoding::ValueTypeMarker>::borrow(val),
11753 encoder,
11754 offset + 8,
11755 _depth,
11756 )
11757 }
11758 CapabilitySource::Capability(ref val) => {
11759 fidl::encoding::encode_in_envelope::<Capability, D>(
11760 <Capability as fidl::encoding::ValueTypeMarker>::borrow(val),
11761 encoder,
11762 offset + 8,
11763 _depth,
11764 )
11765 }
11766 CapabilitySource::AnonymizedAggregate(ref val) => {
11767 fidl::encoding::encode_in_envelope::<AnonymizedAggregate, D>(
11768 <AnonymizedAggregate as fidl::encoding::ValueTypeMarker>::borrow(val),
11769 encoder,
11770 offset + 8,
11771 _depth,
11772 )
11773 }
11774 CapabilitySource::FilteredProvider(ref val) => {
11775 fidl::encoding::encode_in_envelope::<FilteredProvider, D>(
11776 <FilteredProvider as fidl::encoding::ValueTypeMarker>::borrow(val),
11777 encoder,
11778 offset + 8,
11779 _depth,
11780 )
11781 }
11782 CapabilitySource::FilteredAggregateProvider(ref val) => {
11783 fidl::encoding::encode_in_envelope::<FilteredAggregateProvider, D>(
11784 <FilteredAggregateProvider as fidl::encoding::ValueTypeMarker>::borrow(val),
11785 encoder,
11786 offset + 8,
11787 _depth,
11788 )
11789 }
11790 CapabilitySource::Environment(ref val) => {
11791 fidl::encoding::encode_in_envelope::<Environment, D>(
11792 <Environment as fidl::encoding::ValueTypeMarker>::borrow(val),
11793 encoder,
11794 offset + 8,
11795 _depth,
11796 )
11797 }
11798 CapabilitySource::Void(ref val) => fidl::encoding::encode_in_envelope::<Void, D>(
11799 <Void as fidl::encoding::ValueTypeMarker>::borrow(val),
11800 encoder,
11801 offset + 8,
11802 _depth,
11803 ),
11804 }
11805 }
11806 }
11807
11808 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CapabilitySource {
11809 #[inline(always)]
11810 fn new_empty() -> Self {
11811 Self::Component(fidl::new_empty!(Component, D))
11812 }
11813
11814 #[inline]
11815 unsafe fn decode(
11816 &mut self,
11817 decoder: &mut fidl::encoding::Decoder<'_, D>,
11818 offset: usize,
11819 mut depth: fidl::encoding::Depth,
11820 ) -> fidl::Result<()> {
11821 decoder.debug_check_bounds::<Self>(offset);
11822 #[allow(unused_variables)]
11823 let next_out_of_line = decoder.next_out_of_line();
11824 let handles_before = decoder.remaining_handles();
11825 let (ordinal, inlined, num_bytes, num_handles) =
11826 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
11827
11828 let member_inline_size = match ordinal {
11829 1 => <Component as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11830 2 => <Framework as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11831 3 => <Builtin as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11832 4 => <Namespace as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11833 5 => <Capability as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11834 6 => <AnonymizedAggregate as fidl::encoding::TypeMarker>::inline_size(
11835 decoder.context,
11836 ),
11837 7 => <FilteredProvider as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11838 8 => <FilteredAggregateProvider as fidl::encoding::TypeMarker>::inline_size(
11839 decoder.context,
11840 ),
11841 9 => <Environment as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11842 10 => <Void as fidl::encoding::TypeMarker>::inline_size(decoder.context),
11843 _ => return Err(fidl::Error::UnknownUnionTag),
11844 };
11845
11846 if inlined != (member_inline_size <= 4) {
11847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11848 }
11849 let _inner_offset;
11850 if inlined {
11851 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
11852 _inner_offset = offset + 8;
11853 } else {
11854 depth.increment()?;
11855 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11856 }
11857 match ordinal {
11858 1 => {
11859 #[allow(irrefutable_let_patterns)]
11860 if let CapabilitySource::Component(_) = self {
11861 } else {
11863 *self = CapabilitySource::Component(fidl::new_empty!(Component, D));
11865 }
11866 #[allow(irrefutable_let_patterns)]
11867 if let CapabilitySource::Component(ref mut val) = self {
11868 fidl::decode!(Component, D, val, decoder, _inner_offset, depth)?;
11869 } else {
11870 unreachable!()
11871 }
11872 }
11873 2 => {
11874 #[allow(irrefutable_let_patterns)]
11875 if let CapabilitySource::Framework(_) = self {
11876 } else {
11878 *self = CapabilitySource::Framework(fidl::new_empty!(Framework, D));
11880 }
11881 #[allow(irrefutable_let_patterns)]
11882 if let CapabilitySource::Framework(ref mut val) = self {
11883 fidl::decode!(Framework, D, val, decoder, _inner_offset, depth)?;
11884 } else {
11885 unreachable!()
11886 }
11887 }
11888 3 => {
11889 #[allow(irrefutable_let_patterns)]
11890 if let CapabilitySource::Builtin(_) = self {
11891 } else {
11893 *self = CapabilitySource::Builtin(fidl::new_empty!(Builtin, D));
11895 }
11896 #[allow(irrefutable_let_patterns)]
11897 if let CapabilitySource::Builtin(ref mut val) = self {
11898 fidl::decode!(Builtin, D, val, decoder, _inner_offset, depth)?;
11899 } else {
11900 unreachable!()
11901 }
11902 }
11903 4 => {
11904 #[allow(irrefutable_let_patterns)]
11905 if let CapabilitySource::Namespace(_) = self {
11906 } else {
11908 *self = CapabilitySource::Namespace(fidl::new_empty!(Namespace, D));
11910 }
11911 #[allow(irrefutable_let_patterns)]
11912 if let CapabilitySource::Namespace(ref mut val) = self {
11913 fidl::decode!(Namespace, D, val, decoder, _inner_offset, depth)?;
11914 } else {
11915 unreachable!()
11916 }
11917 }
11918 5 => {
11919 #[allow(irrefutable_let_patterns)]
11920 if let CapabilitySource::Capability(_) = self {
11921 } else {
11923 *self = CapabilitySource::Capability(fidl::new_empty!(Capability, D));
11925 }
11926 #[allow(irrefutable_let_patterns)]
11927 if let CapabilitySource::Capability(ref mut val) = self {
11928 fidl::decode!(Capability, D, val, decoder, _inner_offset, depth)?;
11929 } else {
11930 unreachable!()
11931 }
11932 }
11933 6 => {
11934 #[allow(irrefutable_let_patterns)]
11935 if let CapabilitySource::AnonymizedAggregate(_) = self {
11936 } else {
11938 *self = CapabilitySource::AnonymizedAggregate(fidl::new_empty!(
11940 AnonymizedAggregate,
11941 D
11942 ));
11943 }
11944 #[allow(irrefutable_let_patterns)]
11945 if let CapabilitySource::AnonymizedAggregate(ref mut val) = self {
11946 fidl::decode!(AnonymizedAggregate, D, val, decoder, _inner_offset, depth)?;
11947 } else {
11948 unreachable!()
11949 }
11950 }
11951 7 => {
11952 #[allow(irrefutable_let_patterns)]
11953 if let CapabilitySource::FilteredProvider(_) = self {
11954 } else {
11956 *self = CapabilitySource::FilteredProvider(fidl::new_empty!(
11958 FilteredProvider,
11959 D
11960 ));
11961 }
11962 #[allow(irrefutable_let_patterns)]
11963 if let CapabilitySource::FilteredProvider(ref mut val) = self {
11964 fidl::decode!(FilteredProvider, D, val, decoder, _inner_offset, depth)?;
11965 } else {
11966 unreachable!()
11967 }
11968 }
11969 8 => {
11970 #[allow(irrefutable_let_patterns)]
11971 if let CapabilitySource::FilteredAggregateProvider(_) = self {
11972 } else {
11974 *self = CapabilitySource::FilteredAggregateProvider(fidl::new_empty!(
11976 FilteredAggregateProvider,
11977 D
11978 ));
11979 }
11980 #[allow(irrefutable_let_patterns)]
11981 if let CapabilitySource::FilteredAggregateProvider(ref mut val) = self {
11982 fidl::decode!(
11983 FilteredAggregateProvider,
11984 D,
11985 val,
11986 decoder,
11987 _inner_offset,
11988 depth
11989 )?;
11990 } else {
11991 unreachable!()
11992 }
11993 }
11994 9 => {
11995 #[allow(irrefutable_let_patterns)]
11996 if let CapabilitySource::Environment(_) = self {
11997 } else {
11999 *self = CapabilitySource::Environment(fidl::new_empty!(Environment, D));
12001 }
12002 #[allow(irrefutable_let_patterns)]
12003 if let CapabilitySource::Environment(ref mut val) = self {
12004 fidl::decode!(Environment, D, val, decoder, _inner_offset, depth)?;
12005 } else {
12006 unreachable!()
12007 }
12008 }
12009 10 => {
12010 #[allow(irrefutable_let_patterns)]
12011 if let CapabilitySource::Void(_) = self {
12012 } else {
12014 *self = CapabilitySource::Void(fidl::new_empty!(Void, D));
12016 }
12017 #[allow(irrefutable_let_patterns)]
12018 if let CapabilitySource::Void(ref mut val) = self {
12019 fidl::decode!(Void, D, val, decoder, _inner_offset, depth)?;
12020 } else {
12021 unreachable!()
12022 }
12023 }
12024 ordinal => panic!("unexpected ordinal {:?}", ordinal),
12025 }
12026 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
12027 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12028 }
12029 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12030 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12031 }
12032 Ok(())
12033 }
12034 }
12035
12036 impl fidl::encoding::ValueTypeMarker for ComponentCapability {
12037 type Borrowed<'a> = &'a Self;
12038 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12039 value
12040 }
12041 }
12042
12043 unsafe impl fidl::encoding::TypeMarker for ComponentCapability {
12044 type Owned = Self;
12045
12046 #[inline(always)]
12047 fn inline_align(_context: fidl::encoding::Context) -> usize {
12048 8
12049 }
12050
12051 #[inline(always)]
12052 fn inline_size(_context: fidl::encoding::Context) -> usize {
12053 16
12054 }
12055 }
12056
12057 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ComponentCapability, D>
12058 for &ComponentCapability
12059 {
12060 #[inline]
12061 unsafe fn encode(
12062 self,
12063 encoder: &mut fidl::encoding::Encoder<'_, D>,
12064 offset: usize,
12065 _depth: fidl::encoding::Depth,
12066 ) -> fidl::Result<()> {
12067 encoder.debug_check_bounds::<ComponentCapability>(offset);
12068 encoder.write_num::<u64>(self.ordinal(), offset);
12069 match self {
12070 ComponentCapability::Use_(ref val) => {
12071 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Use, D>(
12072 <fidl_fuchsia_component_decl__common::Use as fidl::encoding::ValueTypeMarker>::borrow(val),
12073 encoder, offset + 8, _depth
12074 )
12075 }
12076 ComponentCapability::Offer(ref val) => {
12077 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Offer, D>(
12078 <fidl_fuchsia_component_decl__common::Offer as fidl::encoding::ValueTypeMarker>::borrow(val),
12079 encoder, offset + 8, _depth
12080 )
12081 }
12082 ComponentCapability::Expose(ref val) => {
12083 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Expose, D>(
12084 <fidl_fuchsia_component_decl__common::Expose as fidl::encoding::ValueTypeMarker>::borrow(val),
12085 encoder, offset + 8, _depth
12086 )
12087 }
12088 ComponentCapability::Config(ref val) => {
12089 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Configuration, D>(
12090 <fidl_fuchsia_component_decl__common::Configuration as fidl::encoding::ValueTypeMarker>::borrow(val),
12091 encoder, offset + 8, _depth
12092 )
12093 }
12094 ComponentCapability::Dictionary(ref val) => {
12095 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Dictionary, D>(
12096 <fidl_fuchsia_component_decl__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
12097 encoder, offset + 8, _depth
12098 )
12099 }
12100 ComponentCapability::Directory(ref val) => {
12101 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Directory, D>(
12102 <fidl_fuchsia_component_decl__common::Directory as fidl::encoding::ValueTypeMarker>::borrow(val),
12103 encoder, offset + 8, _depth
12104 )
12105 }
12106 ComponentCapability::Environment(ref val) => {
12107 fidl::encoding::encode_in_envelope::<EnvironmentCapability, D>(
12108 <EnvironmentCapability as fidl::encoding::ValueTypeMarker>::borrow(val),
12109 encoder, offset + 8, _depth
12110 )
12111 }
12112 ComponentCapability::EventStream(ref val) => {
12113 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::EventStream, D>(
12114 <fidl_fuchsia_component_decl__common::EventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
12115 encoder, offset + 8, _depth
12116 )
12117 }
12118 ComponentCapability::Protocol(ref val) => {
12119 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Protocol, D>(
12120 <fidl_fuchsia_component_decl__common::Protocol as fidl::encoding::ValueTypeMarker>::borrow(val),
12121 encoder, offset + 8, _depth
12122 )
12123 }
12124 ComponentCapability::Resolver(ref val) => {
12125 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Resolver, D>(
12126 <fidl_fuchsia_component_decl__common::Resolver as fidl::encoding::ValueTypeMarker>::borrow(val),
12127 encoder, offset + 8, _depth
12128 )
12129 }
12130 ComponentCapability::Runner(ref val) => {
12131 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Runner, D>(
12132 <fidl_fuchsia_component_decl__common::Runner as fidl::encoding::ValueTypeMarker>::borrow(val),
12133 encoder, offset + 8, _depth
12134 )
12135 }
12136 ComponentCapability::Service(ref val) => {
12137 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Service, D>(
12138 <fidl_fuchsia_component_decl__common::Service as fidl::encoding::ValueTypeMarker>::borrow(val),
12139 encoder, offset + 8, _depth
12140 )
12141 }
12142 ComponentCapability::Storage(ref val) => {
12143 fidl::encoding::encode_in_envelope::<fidl_fuchsia_component_decl__common::Storage, D>(
12144 <fidl_fuchsia_component_decl__common::Storage as fidl::encoding::ValueTypeMarker>::borrow(val),
12145 encoder, offset + 8, _depth
12146 )
12147 }
12148 }
12149 }
12150 }
12151
12152 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ComponentCapability {
12153 #[inline(always)]
12154 fn new_empty() -> Self {
12155 Self::Use_(fidl::new_empty!(fidl_fuchsia_component_decl__common::Use, D))
12156 }
12157
12158 #[inline]
12159 unsafe fn decode(
12160 &mut self,
12161 decoder: &mut fidl::encoding::Decoder<'_, D>,
12162 offset: usize,
12163 mut depth: fidl::encoding::Depth,
12164 ) -> fidl::Result<()> {
12165 decoder.debug_check_bounds::<Self>(offset);
12166 #[allow(unused_variables)]
12167 let next_out_of_line = decoder.next_out_of_line();
12168 let handles_before = decoder.remaining_handles();
12169 let (ordinal, inlined, num_bytes, num_handles) =
12170 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
12171
12172 let member_inline_size = match ordinal {
12173 1 => <fidl_fuchsia_component_decl__common::Use as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12174 2 => <fidl_fuchsia_component_decl__common::Offer as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12175 3 => <fidl_fuchsia_component_decl__common::Expose as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12176 4 => <fidl_fuchsia_component_decl__common::Configuration as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12177 5 => <fidl_fuchsia_component_decl__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12178 6 => <fidl_fuchsia_component_decl__common::Directory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12179 7 => <EnvironmentCapability as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12180 8 => <fidl_fuchsia_component_decl__common::EventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12181 9 => <fidl_fuchsia_component_decl__common::Protocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12182 10 => <fidl_fuchsia_component_decl__common::Resolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12183 11 => <fidl_fuchsia_component_decl__common::Runner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12184 12 => <fidl_fuchsia_component_decl__common::Service as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12185 13 => <fidl_fuchsia_component_decl__common::Storage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
12186 _ => return Err(fidl::Error::UnknownUnionTag),
12187 };
12188
12189 if inlined != (member_inline_size <= 4) {
12190 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12191 }
12192 let _inner_offset;
12193 if inlined {
12194 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
12195 _inner_offset = offset + 8;
12196 } else {
12197 depth.increment()?;
12198 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12199 }
12200 match ordinal {
12201 1 => {
12202 #[allow(irrefutable_let_patterns)]
12203 if let ComponentCapability::Use_(_) = self {
12204 } else {
12206 *self = ComponentCapability::Use_(fidl::new_empty!(
12208 fidl_fuchsia_component_decl__common::Use,
12209 D
12210 ));
12211 }
12212 #[allow(irrefutable_let_patterns)]
12213 if let ComponentCapability::Use_(ref mut val) = self {
12214 fidl::decode!(
12215 fidl_fuchsia_component_decl__common::Use,
12216 D,
12217 val,
12218 decoder,
12219 _inner_offset,
12220 depth
12221 )?;
12222 } else {
12223 unreachable!()
12224 }
12225 }
12226 2 => {
12227 #[allow(irrefutable_let_patterns)]
12228 if let ComponentCapability::Offer(_) = self {
12229 } else {
12231 *self = ComponentCapability::Offer(fidl::new_empty!(
12233 fidl_fuchsia_component_decl__common::Offer,
12234 D
12235 ));
12236 }
12237 #[allow(irrefutable_let_patterns)]
12238 if let ComponentCapability::Offer(ref mut val) = self {
12239 fidl::decode!(
12240 fidl_fuchsia_component_decl__common::Offer,
12241 D,
12242 val,
12243 decoder,
12244 _inner_offset,
12245 depth
12246 )?;
12247 } else {
12248 unreachable!()
12249 }
12250 }
12251 3 => {
12252 #[allow(irrefutable_let_patterns)]
12253 if let ComponentCapability::Expose(_) = self {
12254 } else {
12256 *self = ComponentCapability::Expose(fidl::new_empty!(
12258 fidl_fuchsia_component_decl__common::Expose,
12259 D
12260 ));
12261 }
12262 #[allow(irrefutable_let_patterns)]
12263 if let ComponentCapability::Expose(ref mut val) = self {
12264 fidl::decode!(
12265 fidl_fuchsia_component_decl__common::Expose,
12266 D,
12267 val,
12268 decoder,
12269 _inner_offset,
12270 depth
12271 )?;
12272 } else {
12273 unreachable!()
12274 }
12275 }
12276 4 => {
12277 #[allow(irrefutable_let_patterns)]
12278 if let ComponentCapability::Config(_) = self {
12279 } else {
12281 *self = ComponentCapability::Config(fidl::new_empty!(
12283 fidl_fuchsia_component_decl__common::Configuration,
12284 D
12285 ));
12286 }
12287 #[allow(irrefutable_let_patterns)]
12288 if let ComponentCapability::Config(ref mut val) = self {
12289 fidl::decode!(
12290 fidl_fuchsia_component_decl__common::Configuration,
12291 D,
12292 val,
12293 decoder,
12294 _inner_offset,
12295 depth
12296 )?;
12297 } else {
12298 unreachable!()
12299 }
12300 }
12301 5 => {
12302 #[allow(irrefutable_let_patterns)]
12303 if let ComponentCapability::Dictionary(_) = self {
12304 } else {
12306 *self = ComponentCapability::Dictionary(fidl::new_empty!(
12308 fidl_fuchsia_component_decl__common::Dictionary,
12309 D
12310 ));
12311 }
12312 #[allow(irrefutable_let_patterns)]
12313 if let ComponentCapability::Dictionary(ref mut val) = self {
12314 fidl::decode!(
12315 fidl_fuchsia_component_decl__common::Dictionary,
12316 D,
12317 val,
12318 decoder,
12319 _inner_offset,
12320 depth
12321 )?;
12322 } else {
12323 unreachable!()
12324 }
12325 }
12326 6 => {
12327 #[allow(irrefutable_let_patterns)]
12328 if let ComponentCapability::Directory(_) = self {
12329 } else {
12331 *self = ComponentCapability::Directory(fidl::new_empty!(
12333 fidl_fuchsia_component_decl__common::Directory,
12334 D
12335 ));
12336 }
12337 #[allow(irrefutable_let_patterns)]
12338 if let ComponentCapability::Directory(ref mut val) = self {
12339 fidl::decode!(
12340 fidl_fuchsia_component_decl__common::Directory,
12341 D,
12342 val,
12343 decoder,
12344 _inner_offset,
12345 depth
12346 )?;
12347 } else {
12348 unreachable!()
12349 }
12350 }
12351 7 => {
12352 #[allow(irrefutable_let_patterns)]
12353 if let ComponentCapability::Environment(_) = self {
12354 } else {
12356 *self = ComponentCapability::Environment(fidl::new_empty!(
12358 EnvironmentCapability,
12359 D
12360 ));
12361 }
12362 #[allow(irrefutable_let_patterns)]
12363 if let ComponentCapability::Environment(ref mut val) = self {
12364 fidl::decode!(
12365 EnvironmentCapability,
12366 D,
12367 val,
12368 decoder,
12369 _inner_offset,
12370 depth
12371 )?;
12372 } else {
12373 unreachable!()
12374 }
12375 }
12376 8 => {
12377 #[allow(irrefutable_let_patterns)]
12378 if let ComponentCapability::EventStream(_) = self {
12379 } else {
12381 *self = ComponentCapability::EventStream(fidl::new_empty!(
12383 fidl_fuchsia_component_decl__common::EventStream,
12384 D
12385 ));
12386 }
12387 #[allow(irrefutable_let_patterns)]
12388 if let ComponentCapability::EventStream(ref mut val) = self {
12389 fidl::decode!(
12390 fidl_fuchsia_component_decl__common::EventStream,
12391 D,
12392 val,
12393 decoder,
12394 _inner_offset,
12395 depth
12396 )?;
12397 } else {
12398 unreachable!()
12399 }
12400 }
12401 9 => {
12402 #[allow(irrefutable_let_patterns)]
12403 if let ComponentCapability::Protocol(_) = self {
12404 } else {
12406 *self = ComponentCapability::Protocol(fidl::new_empty!(
12408 fidl_fuchsia_component_decl__common::Protocol,
12409 D
12410 ));
12411 }
12412 #[allow(irrefutable_let_patterns)]
12413 if let ComponentCapability::Protocol(ref mut val) = self {
12414 fidl::decode!(
12415 fidl_fuchsia_component_decl__common::Protocol,
12416 D,
12417 val,
12418 decoder,
12419 _inner_offset,
12420 depth
12421 )?;
12422 } else {
12423 unreachable!()
12424 }
12425 }
12426 10 => {
12427 #[allow(irrefutable_let_patterns)]
12428 if let ComponentCapability::Resolver(_) = self {
12429 } else {
12431 *self = ComponentCapability::Resolver(fidl::new_empty!(
12433 fidl_fuchsia_component_decl__common::Resolver,
12434 D
12435 ));
12436 }
12437 #[allow(irrefutable_let_patterns)]
12438 if let ComponentCapability::Resolver(ref mut val) = self {
12439 fidl::decode!(
12440 fidl_fuchsia_component_decl__common::Resolver,
12441 D,
12442 val,
12443 decoder,
12444 _inner_offset,
12445 depth
12446 )?;
12447 } else {
12448 unreachable!()
12449 }
12450 }
12451 11 => {
12452 #[allow(irrefutable_let_patterns)]
12453 if let ComponentCapability::Runner(_) = self {
12454 } else {
12456 *self = ComponentCapability::Runner(fidl::new_empty!(
12458 fidl_fuchsia_component_decl__common::Runner,
12459 D
12460 ));
12461 }
12462 #[allow(irrefutable_let_patterns)]
12463 if let ComponentCapability::Runner(ref mut val) = self {
12464 fidl::decode!(
12465 fidl_fuchsia_component_decl__common::Runner,
12466 D,
12467 val,
12468 decoder,
12469 _inner_offset,
12470 depth
12471 )?;
12472 } else {
12473 unreachable!()
12474 }
12475 }
12476 12 => {
12477 #[allow(irrefutable_let_patterns)]
12478 if let ComponentCapability::Service(_) = self {
12479 } else {
12481 *self = ComponentCapability::Service(fidl::new_empty!(
12483 fidl_fuchsia_component_decl__common::Service,
12484 D
12485 ));
12486 }
12487 #[allow(irrefutable_let_patterns)]
12488 if let ComponentCapability::Service(ref mut val) = self {
12489 fidl::decode!(
12490 fidl_fuchsia_component_decl__common::Service,
12491 D,
12492 val,
12493 decoder,
12494 _inner_offset,
12495 depth
12496 )?;
12497 } else {
12498 unreachable!()
12499 }
12500 }
12501 13 => {
12502 #[allow(irrefutable_let_patterns)]
12503 if let ComponentCapability::Storage(_) = self {
12504 } else {
12506 *self = ComponentCapability::Storage(fidl::new_empty!(
12508 fidl_fuchsia_component_decl__common::Storage,
12509 D
12510 ));
12511 }
12512 #[allow(irrefutable_let_patterns)]
12513 if let ComponentCapability::Storage(ref mut val) = self {
12514 fidl::decode!(
12515 fidl_fuchsia_component_decl__common::Storage,
12516 D,
12517 val,
12518 decoder,
12519 _inner_offset,
12520 depth
12521 )?;
12522 } else {
12523 unreachable!()
12524 }
12525 }
12526 ordinal => panic!("unexpected ordinal {:?}", ordinal),
12527 }
12528 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
12529 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12530 }
12531 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12532 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12533 }
12534 Ok(())
12535 }
12536 }
12537
12538 impl fidl::encoding::ValueTypeMarker for EnvironmentCapability {
12539 type Borrowed<'a> = &'a Self;
12540 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12541 value
12542 }
12543 }
12544
12545 unsafe impl fidl::encoding::TypeMarker for EnvironmentCapability {
12546 type Owned = Self;
12547
12548 #[inline(always)]
12549 fn inline_align(_context: fidl::encoding::Context) -> usize {
12550 8
12551 }
12552
12553 #[inline(always)]
12554 fn inline_size(_context: fidl::encoding::Context) -> usize {
12555 16
12556 }
12557 }
12558
12559 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnvironmentCapability, D>
12560 for &EnvironmentCapability
12561 {
12562 #[inline]
12563 unsafe fn encode(
12564 self,
12565 encoder: &mut fidl::encoding::Encoder<'_, D>,
12566 offset: usize,
12567 _depth: fidl::encoding::Depth,
12568 ) -> fidl::Result<()> {
12569 encoder.debug_check_bounds::<EnvironmentCapability>(offset);
12570 encoder.write_num::<u64>(self.ordinal(), offset);
12571 match self {
12572 EnvironmentCapability::Runner(ref val) => {
12573 fidl::encoding::encode_in_envelope::<EnvironmentSource, D>(
12574 <EnvironmentSource as fidl::encoding::ValueTypeMarker>::borrow(val),
12575 encoder,
12576 offset + 8,
12577 _depth,
12578 )
12579 }
12580 EnvironmentCapability::Resolver(ref val) => {
12581 fidl::encoding::encode_in_envelope::<EnvironmentSource, D>(
12582 <EnvironmentSource as fidl::encoding::ValueTypeMarker>::borrow(val),
12583 encoder,
12584 offset + 8,
12585 _depth,
12586 )
12587 }
12588 EnvironmentCapability::Debug(ref val) => {
12589 fidl::encoding::encode_in_envelope::<EnvironmentSource, D>(
12590 <EnvironmentSource as fidl::encoding::ValueTypeMarker>::borrow(val),
12591 encoder,
12592 offset + 8,
12593 _depth,
12594 )
12595 }
12596 }
12597 }
12598 }
12599
12600 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnvironmentCapability {
12601 #[inline(always)]
12602 fn new_empty() -> Self {
12603 Self::Runner(fidl::new_empty!(EnvironmentSource, D))
12604 }
12605
12606 #[inline]
12607 unsafe fn decode(
12608 &mut self,
12609 decoder: &mut fidl::encoding::Decoder<'_, D>,
12610 offset: usize,
12611 mut depth: fidl::encoding::Depth,
12612 ) -> fidl::Result<()> {
12613 decoder.debug_check_bounds::<Self>(offset);
12614 #[allow(unused_variables)]
12615 let next_out_of_line = decoder.next_out_of_line();
12616 let handles_before = decoder.remaining_handles();
12617 let (ordinal, inlined, num_bytes, num_handles) =
12618 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
12619
12620 let member_inline_size = match ordinal {
12621 1 => {
12622 <EnvironmentSource as fidl::encoding::TypeMarker>::inline_size(decoder.context)
12623 }
12624 2 => {
12625 <EnvironmentSource as fidl::encoding::TypeMarker>::inline_size(decoder.context)
12626 }
12627 3 => {
12628 <EnvironmentSource as fidl::encoding::TypeMarker>::inline_size(decoder.context)
12629 }
12630 _ => return Err(fidl::Error::UnknownUnionTag),
12631 };
12632
12633 if inlined != (member_inline_size <= 4) {
12634 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12635 }
12636 let _inner_offset;
12637 if inlined {
12638 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
12639 _inner_offset = offset + 8;
12640 } else {
12641 depth.increment()?;
12642 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12643 }
12644 match ordinal {
12645 1 => {
12646 #[allow(irrefutable_let_patterns)]
12647 if let EnvironmentCapability::Runner(_) = self {
12648 } else {
12650 *self =
12652 EnvironmentCapability::Runner(fidl::new_empty!(EnvironmentSource, D));
12653 }
12654 #[allow(irrefutable_let_patterns)]
12655 if let EnvironmentCapability::Runner(ref mut val) = self {
12656 fidl::decode!(EnvironmentSource, D, val, decoder, _inner_offset, depth)?;
12657 } else {
12658 unreachable!()
12659 }
12660 }
12661 2 => {
12662 #[allow(irrefutable_let_patterns)]
12663 if let EnvironmentCapability::Resolver(_) = self {
12664 } else {
12666 *self =
12668 EnvironmentCapability::Resolver(fidl::new_empty!(EnvironmentSource, D));
12669 }
12670 #[allow(irrefutable_let_patterns)]
12671 if let EnvironmentCapability::Resolver(ref mut val) = self {
12672 fidl::decode!(EnvironmentSource, D, val, decoder, _inner_offset, depth)?;
12673 } else {
12674 unreachable!()
12675 }
12676 }
12677 3 => {
12678 #[allow(irrefutable_let_patterns)]
12679 if let EnvironmentCapability::Debug(_) = self {
12680 } else {
12682 *self =
12684 EnvironmentCapability::Debug(fidl::new_empty!(EnvironmentSource, D));
12685 }
12686 #[allow(irrefutable_let_patterns)]
12687 if let EnvironmentCapability::Debug(ref mut val) = self {
12688 fidl::decode!(EnvironmentSource, D, val, decoder, _inner_offset, depth)?;
12689 } else {
12690 unreachable!()
12691 }
12692 }
12693 ordinal => panic!("unexpected ordinal {:?}", ordinal),
12694 }
12695 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
12696 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12697 }
12698 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12699 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12700 }
12701 Ok(())
12702 }
12703 }
12704
12705 impl fidl::encoding::ValueTypeMarker for InjectedUse {
12706 type Borrowed<'a> = &'a Self;
12707 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12708 value
12709 }
12710 }
12711
12712 unsafe impl fidl::encoding::TypeMarker for InjectedUse {
12713 type Owned = Self;
12714
12715 #[inline(always)]
12716 fn inline_align(_context: fidl::encoding::Context) -> usize {
12717 8
12718 }
12719
12720 #[inline(always)]
12721 fn inline_size(_context: fidl::encoding::Context) -> usize {
12722 16
12723 }
12724 }
12725
12726 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InjectedUse, D>
12727 for &InjectedUse
12728 {
12729 #[inline]
12730 unsafe fn encode(
12731 self,
12732 encoder: &mut fidl::encoding::Encoder<'_, D>,
12733 offset: usize,
12734 _depth: fidl::encoding::Depth,
12735 ) -> fidl::Result<()> {
12736 encoder.debug_check_bounds::<InjectedUse>(offset);
12737 encoder.write_num::<u64>(self.ordinal(), offset);
12738 match self {
12739 InjectedUse::Protocol(ref val) => {
12740 fidl::encoding::encode_in_envelope::<InjectedUseProtocol, D>(
12741 <InjectedUseProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
12742 encoder,
12743 offset + 8,
12744 _depth,
12745 )
12746 }
12747 InjectedUse::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
12748 }
12749 }
12750 }
12751
12752 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InjectedUse {
12753 #[inline(always)]
12754 fn new_empty() -> Self {
12755 Self::__SourceBreaking { unknown_ordinal: 0 }
12756 }
12757
12758 #[inline]
12759 unsafe fn decode(
12760 &mut self,
12761 decoder: &mut fidl::encoding::Decoder<'_, D>,
12762 offset: usize,
12763 mut depth: fidl::encoding::Depth,
12764 ) -> fidl::Result<()> {
12765 decoder.debug_check_bounds::<Self>(offset);
12766 #[allow(unused_variables)]
12767 let next_out_of_line = decoder.next_out_of_line();
12768 let handles_before = decoder.remaining_handles();
12769 let (ordinal, inlined, num_bytes, num_handles) =
12770 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
12771
12772 let member_inline_size = match ordinal {
12773 1 => <InjectedUseProtocol as fidl::encoding::TypeMarker>::inline_size(
12774 decoder.context,
12775 ),
12776 0 => return Err(fidl::Error::UnknownUnionTag),
12777 _ => num_bytes as usize,
12778 };
12779
12780 if inlined != (member_inline_size <= 4) {
12781 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12782 }
12783 let _inner_offset;
12784 if inlined {
12785 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
12786 _inner_offset = offset + 8;
12787 } else {
12788 depth.increment()?;
12789 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12790 }
12791 match ordinal {
12792 1 => {
12793 #[allow(irrefutable_let_patterns)]
12794 if let InjectedUse::Protocol(_) = self {
12795 } else {
12797 *self = InjectedUse::Protocol(fidl::new_empty!(InjectedUseProtocol, D));
12799 }
12800 #[allow(irrefutable_let_patterns)]
12801 if let InjectedUse::Protocol(ref mut val) = self {
12802 fidl::decode!(InjectedUseProtocol, D, val, decoder, _inner_offset, depth)?;
12803 } else {
12804 unreachable!()
12805 }
12806 }
12807 #[allow(deprecated)]
12808 ordinal => {
12809 for _ in 0..num_handles {
12810 decoder.drop_next_handle()?;
12811 }
12812 *self = InjectedUse::__SourceBreaking { unknown_ordinal: ordinal };
12813 }
12814 }
12815 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
12816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12817 }
12818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12820 }
12821 Ok(())
12822 }
12823 }
12824
12825 impl fidl::encoding::ValueTypeMarker for InternalCapability {
12826 type Borrowed<'a> = &'a Self;
12827 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12828 value
12829 }
12830 }
12831
12832 unsafe impl fidl::encoding::TypeMarker for InternalCapability {
12833 type Owned = Self;
12834
12835 #[inline(always)]
12836 fn inline_align(_context: fidl::encoding::Context) -> usize {
12837 8
12838 }
12839
12840 #[inline(always)]
12841 fn inline_size(_context: fidl::encoding::Context) -> usize {
12842 16
12843 }
12844 }
12845
12846 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InternalCapability, D>
12847 for &InternalCapability
12848 {
12849 #[inline]
12850 unsafe fn encode(
12851 self,
12852 encoder: &mut fidl::encoding::Encoder<'_, D>,
12853 offset: usize,
12854 _depth: fidl::encoding::Depth,
12855 ) -> fidl::Result<()> {
12856 encoder.debug_check_bounds::<InternalCapability>(offset);
12857 encoder.write_num::<u64>(self.ordinal(), offset);
12858 match self {
12859 InternalCapability::Config(ref val) => fidl::encoding::encode_in_envelope::<
12860 fidl::encoding::BoundedString<100>,
12861 D,
12862 >(
12863 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12864 val,
12865 ),
12866 encoder,
12867 offset + 8,
12868 _depth,
12869 ),
12870 InternalCapability::Dictionary(ref val) => fidl::encoding::encode_in_envelope::<
12871 fidl::encoding::BoundedString<100>,
12872 D,
12873 >(
12874 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12875 val,
12876 ),
12877 encoder,
12878 offset + 8,
12879 _depth,
12880 ),
12881 InternalCapability::Directory(ref val) => fidl::encoding::encode_in_envelope::<
12882 fidl::encoding::BoundedString<100>,
12883 D,
12884 >(
12885 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12886 val,
12887 ),
12888 encoder,
12889 offset + 8,
12890 _depth,
12891 ),
12892 InternalCapability::EventStream(ref val) => fidl::encoding::encode_in_envelope::<
12893 fidl::encoding::BoundedString<100>,
12894 D,
12895 >(
12896 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12897 val,
12898 ),
12899 encoder,
12900 offset + 8,
12901 _depth,
12902 ),
12903 InternalCapability::Protocol(ref val) => fidl::encoding::encode_in_envelope::<
12904 fidl::encoding::BoundedString<100>,
12905 D,
12906 >(
12907 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12908 val,
12909 ),
12910 encoder,
12911 offset + 8,
12912 _depth,
12913 ),
12914 InternalCapability::Resolver(ref val) => fidl::encoding::encode_in_envelope::<
12915 fidl::encoding::BoundedString<100>,
12916 D,
12917 >(
12918 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12919 val,
12920 ),
12921 encoder,
12922 offset + 8,
12923 _depth,
12924 ),
12925 InternalCapability::Runner(ref val) => fidl::encoding::encode_in_envelope::<
12926 fidl::encoding::BoundedString<100>,
12927 D,
12928 >(
12929 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12930 val,
12931 ),
12932 encoder,
12933 offset + 8,
12934 _depth,
12935 ),
12936 InternalCapability::Service(ref val) => fidl::encoding::encode_in_envelope::<
12937 fidl::encoding::BoundedString<100>,
12938 D,
12939 >(
12940 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12941 val,
12942 ),
12943 encoder,
12944 offset + 8,
12945 _depth,
12946 ),
12947 InternalCapability::Storage(ref val) => fidl::encoding::encode_in_envelope::<
12948 fidl::encoding::BoundedString<100>,
12949 D,
12950 >(
12951 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
12952 val,
12953 ),
12954 encoder,
12955 offset + 8,
12956 _depth,
12957 ),
12958 }
12959 }
12960 }
12961
12962 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InternalCapability {
12963 #[inline(always)]
12964 fn new_empty() -> Self {
12965 Self::Config(fidl::new_empty!(fidl::encoding::BoundedString<100>, D))
12966 }
12967
12968 #[inline]
12969 unsafe fn decode(
12970 &mut self,
12971 decoder: &mut fidl::encoding::Decoder<'_, D>,
12972 offset: usize,
12973 mut depth: fidl::encoding::Depth,
12974 ) -> fidl::Result<()> {
12975 decoder.debug_check_bounds::<Self>(offset);
12976 #[allow(unused_variables)]
12977 let next_out_of_line = decoder.next_out_of_line();
12978 let handles_before = decoder.remaining_handles();
12979 let (ordinal, inlined, num_bytes, num_handles) =
12980 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
12981
12982 let member_inline_size = match ordinal {
12983 1 => {
12984 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12985 decoder.context,
12986 )
12987 }
12988 2 => {
12989 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12990 decoder.context,
12991 )
12992 }
12993 3 => {
12994 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12995 decoder.context,
12996 )
12997 }
12998 4 => {
12999 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13000 decoder.context,
13001 )
13002 }
13003 5 => {
13004 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13005 decoder.context,
13006 )
13007 }
13008 6 => {
13009 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13010 decoder.context,
13011 )
13012 }
13013 7 => {
13014 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13015 decoder.context,
13016 )
13017 }
13018 8 => {
13019 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13020 decoder.context,
13021 )
13022 }
13023 9 => {
13024 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13025 decoder.context,
13026 )
13027 }
13028 _ => return Err(fidl::Error::UnknownUnionTag),
13029 };
13030
13031 if inlined != (member_inline_size <= 4) {
13032 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13033 }
13034 let _inner_offset;
13035 if inlined {
13036 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
13037 _inner_offset = offset + 8;
13038 } else {
13039 depth.increment()?;
13040 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13041 }
13042 match ordinal {
13043 1 => {
13044 #[allow(irrefutable_let_patterns)]
13045 if let InternalCapability::Config(_) = self {
13046 } else {
13048 *self = InternalCapability::Config(fidl::new_empty!(
13050 fidl::encoding::BoundedString<100>,
13051 D
13052 ));
13053 }
13054 #[allow(irrefutable_let_patterns)]
13055 if let InternalCapability::Config(ref mut val) = self {
13056 fidl::decode!(
13057 fidl::encoding::BoundedString<100>,
13058 D,
13059 val,
13060 decoder,
13061 _inner_offset,
13062 depth
13063 )?;
13064 } else {
13065 unreachable!()
13066 }
13067 }
13068 2 => {
13069 #[allow(irrefutable_let_patterns)]
13070 if let InternalCapability::Dictionary(_) = self {
13071 } else {
13073 *self = InternalCapability::Dictionary(fidl::new_empty!(
13075 fidl::encoding::BoundedString<100>,
13076 D
13077 ));
13078 }
13079 #[allow(irrefutable_let_patterns)]
13080 if let InternalCapability::Dictionary(ref mut val) = self {
13081 fidl::decode!(
13082 fidl::encoding::BoundedString<100>,
13083 D,
13084 val,
13085 decoder,
13086 _inner_offset,
13087 depth
13088 )?;
13089 } else {
13090 unreachable!()
13091 }
13092 }
13093 3 => {
13094 #[allow(irrefutable_let_patterns)]
13095 if let InternalCapability::Directory(_) = self {
13096 } else {
13098 *self = InternalCapability::Directory(fidl::new_empty!(
13100 fidl::encoding::BoundedString<100>,
13101 D
13102 ));
13103 }
13104 #[allow(irrefutable_let_patterns)]
13105 if let InternalCapability::Directory(ref mut val) = self {
13106 fidl::decode!(
13107 fidl::encoding::BoundedString<100>,
13108 D,
13109 val,
13110 decoder,
13111 _inner_offset,
13112 depth
13113 )?;
13114 } else {
13115 unreachable!()
13116 }
13117 }
13118 4 => {
13119 #[allow(irrefutable_let_patterns)]
13120 if let InternalCapability::EventStream(_) = self {
13121 } else {
13123 *self = InternalCapability::EventStream(fidl::new_empty!(
13125 fidl::encoding::BoundedString<100>,
13126 D
13127 ));
13128 }
13129 #[allow(irrefutable_let_patterns)]
13130 if let InternalCapability::EventStream(ref mut val) = self {
13131 fidl::decode!(
13132 fidl::encoding::BoundedString<100>,
13133 D,
13134 val,
13135 decoder,
13136 _inner_offset,
13137 depth
13138 )?;
13139 } else {
13140 unreachable!()
13141 }
13142 }
13143 5 => {
13144 #[allow(irrefutable_let_patterns)]
13145 if let InternalCapability::Protocol(_) = self {
13146 } else {
13148 *self = InternalCapability::Protocol(fidl::new_empty!(
13150 fidl::encoding::BoundedString<100>,
13151 D
13152 ));
13153 }
13154 #[allow(irrefutable_let_patterns)]
13155 if let InternalCapability::Protocol(ref mut val) = self {
13156 fidl::decode!(
13157 fidl::encoding::BoundedString<100>,
13158 D,
13159 val,
13160 decoder,
13161 _inner_offset,
13162 depth
13163 )?;
13164 } else {
13165 unreachable!()
13166 }
13167 }
13168 6 => {
13169 #[allow(irrefutable_let_patterns)]
13170 if let InternalCapability::Resolver(_) = self {
13171 } else {
13173 *self = InternalCapability::Resolver(fidl::new_empty!(
13175 fidl::encoding::BoundedString<100>,
13176 D
13177 ));
13178 }
13179 #[allow(irrefutable_let_patterns)]
13180 if let InternalCapability::Resolver(ref mut val) = self {
13181 fidl::decode!(
13182 fidl::encoding::BoundedString<100>,
13183 D,
13184 val,
13185 decoder,
13186 _inner_offset,
13187 depth
13188 )?;
13189 } else {
13190 unreachable!()
13191 }
13192 }
13193 7 => {
13194 #[allow(irrefutable_let_patterns)]
13195 if let InternalCapability::Runner(_) = self {
13196 } else {
13198 *self = InternalCapability::Runner(fidl::new_empty!(
13200 fidl::encoding::BoundedString<100>,
13201 D
13202 ));
13203 }
13204 #[allow(irrefutable_let_patterns)]
13205 if let InternalCapability::Runner(ref mut val) = self {
13206 fidl::decode!(
13207 fidl::encoding::BoundedString<100>,
13208 D,
13209 val,
13210 decoder,
13211 _inner_offset,
13212 depth
13213 )?;
13214 } else {
13215 unreachable!()
13216 }
13217 }
13218 8 => {
13219 #[allow(irrefutable_let_patterns)]
13220 if let InternalCapability::Service(_) = self {
13221 } else {
13223 *self = InternalCapability::Service(fidl::new_empty!(
13225 fidl::encoding::BoundedString<100>,
13226 D
13227 ));
13228 }
13229 #[allow(irrefutable_let_patterns)]
13230 if let InternalCapability::Service(ref mut val) = self {
13231 fidl::decode!(
13232 fidl::encoding::BoundedString<100>,
13233 D,
13234 val,
13235 decoder,
13236 _inner_offset,
13237 depth
13238 )?;
13239 } else {
13240 unreachable!()
13241 }
13242 }
13243 9 => {
13244 #[allow(irrefutable_let_patterns)]
13245 if let InternalCapability::Storage(_) = self {
13246 } else {
13248 *self = InternalCapability::Storage(fidl::new_empty!(
13250 fidl::encoding::BoundedString<100>,
13251 D
13252 ));
13253 }
13254 #[allow(irrefutable_let_patterns)]
13255 if let InternalCapability::Storage(ref mut val) = self {
13256 fidl::decode!(
13257 fidl::encoding::BoundedString<100>,
13258 D,
13259 val,
13260 decoder,
13261 _inner_offset,
13262 depth
13263 )?;
13264 } else {
13265 unreachable!()
13266 }
13267 }
13268 ordinal => panic!("unexpected ordinal {:?}", ordinal),
13269 }
13270 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
13271 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13272 }
13273 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13274 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13275 }
13276 Ok(())
13277 }
13278 }
13279}