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