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