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