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