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