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 const LOCAL_COMPONENT_NAME_KEY: &str = "LOCAL_COMPONENT_NAME";
12
13pub const MAX_DIRECTORY_ENTRIES: u32 = 1024;
15
16#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
18pub enum RealmBuilderError {
19 ChildAlreadyExists,
22 InvalidManifestExtension,
25 InvalidComponentDecl,
27 NoSuchChild,
29 ChildDeclNotVisible,
33 NoSuchSource,
35 NoSuchTarget,
37 CapabilitiesEmpty,
39 TargetsEmpty,
41 SourceAndTargetMatch,
43 DeclNotFound,
46 DeclReadError,
49 BuildAlreadyCalled,
51 CapabilityInvalid,
54 InvalidChildRealmHandle,
56 ImmutableProgram,
61 UrlIsNotRelative,
64 InvalidPkgDirHandle,
67 NoConfigSchema,
70 NoSuchConfigField,
72 ConfigValueInvalid,
75 ConfigOverrideUnsupported,
78 #[doc(hidden)]
79 __SourceBreaking { unknown_ordinal: u32 },
80}
81
82#[macro_export]
84macro_rules! RealmBuilderErrorUnknown {
85 () => {
86 _
87 };
88}
89
90impl RealmBuilderError {
91 #[inline]
92 pub fn from_primitive(prim: u32) -> Option<Self> {
93 match prim {
94 0 => Some(Self::ChildAlreadyExists),
95 1 => Some(Self::InvalidManifestExtension),
96 2 => Some(Self::InvalidComponentDecl),
97 3 => Some(Self::NoSuchChild),
98 4 => Some(Self::ChildDeclNotVisible),
99 5 => Some(Self::NoSuchSource),
100 6 => Some(Self::NoSuchTarget),
101 7 => Some(Self::CapabilitiesEmpty),
102 8 => Some(Self::TargetsEmpty),
103 9 => Some(Self::SourceAndTargetMatch),
104 10 => Some(Self::DeclNotFound),
105 11 => Some(Self::DeclReadError),
106 12 => Some(Self::BuildAlreadyCalled),
107 13 => Some(Self::CapabilityInvalid),
108 14 => Some(Self::InvalidChildRealmHandle),
109 15 => Some(Self::ImmutableProgram),
110 16 => Some(Self::UrlIsNotRelative),
111 17 => Some(Self::InvalidPkgDirHandle),
112 18 => Some(Self::NoConfigSchema),
113 19 => Some(Self::NoSuchConfigField),
114 20 => Some(Self::ConfigValueInvalid),
115 21 => Some(Self::ConfigOverrideUnsupported),
116 _ => None,
117 }
118 }
119
120 #[inline]
121 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
122 match prim {
123 0 => Self::ChildAlreadyExists,
124 1 => Self::InvalidManifestExtension,
125 2 => Self::InvalidComponentDecl,
126 3 => Self::NoSuchChild,
127 4 => Self::ChildDeclNotVisible,
128 5 => Self::NoSuchSource,
129 6 => Self::NoSuchTarget,
130 7 => Self::CapabilitiesEmpty,
131 8 => Self::TargetsEmpty,
132 9 => Self::SourceAndTargetMatch,
133 10 => Self::DeclNotFound,
134 11 => Self::DeclReadError,
135 12 => Self::BuildAlreadyCalled,
136 13 => Self::CapabilityInvalid,
137 14 => Self::InvalidChildRealmHandle,
138 15 => Self::ImmutableProgram,
139 16 => Self::UrlIsNotRelative,
140 17 => Self::InvalidPkgDirHandle,
141 18 => Self::NoConfigSchema,
142 19 => Self::NoSuchConfigField,
143 20 => Self::ConfigValueInvalid,
144 21 => Self::ConfigOverrideUnsupported,
145 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
146 }
147 }
148
149 #[inline]
150 pub fn unknown() -> Self {
151 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
152 }
153
154 #[inline]
155 pub const fn into_primitive(self) -> u32 {
156 match self {
157 Self::ChildAlreadyExists => 0,
158 Self::InvalidManifestExtension => 1,
159 Self::InvalidComponentDecl => 2,
160 Self::NoSuchChild => 3,
161 Self::ChildDeclNotVisible => 4,
162 Self::NoSuchSource => 5,
163 Self::NoSuchTarget => 6,
164 Self::CapabilitiesEmpty => 7,
165 Self::TargetsEmpty => 8,
166 Self::SourceAndTargetMatch => 9,
167 Self::DeclNotFound => 10,
168 Self::DeclReadError => 11,
169 Self::BuildAlreadyCalled => 12,
170 Self::CapabilityInvalid => 13,
171 Self::InvalidChildRealmHandle => 14,
172 Self::ImmutableProgram => 15,
173 Self::UrlIsNotRelative => 16,
174 Self::InvalidPkgDirHandle => 17,
175 Self::NoConfigSchema => 18,
176 Self::NoSuchConfigField => 19,
177 Self::ConfigValueInvalid => 20,
178 Self::ConfigOverrideUnsupported => 21,
179 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
180 }
181 }
182
183 #[inline]
184 pub fn is_unknown(&self) -> bool {
185 match self {
186 Self::__SourceBreaking { unknown_ordinal: _ } => true,
187 _ => false,
188 }
189 }
190}
191
192#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
193pub struct BuilderBuildResponse {
194 pub root_component_url: String,
195}
196
197impl fidl::Persistable for BuilderBuildResponse {}
198
199#[derive(Clone, Debug, PartialEq)]
200pub struct RealmAddCapabilityRequest {
201 pub capability: fidl_fuchsia_component_decl::Capability,
202}
203
204impl fidl::Persistable for RealmAddCapabilityRequest {}
205
206#[derive(Clone, Debug, PartialEq)]
207pub struct RealmAddChildFromDeclRequest {
208 pub name: String,
210 pub decl: fidl_fuchsia_component_decl::Component,
212 pub options: ChildOptions,
214}
215
216impl fidl::Persistable for RealmAddChildFromDeclRequest {}
217
218#[derive(Clone, Debug, PartialEq)]
219pub struct RealmAddChildRequest {
220 pub name: String,
222 pub url: String,
224 pub options: ChildOptions,
226}
227
228impl fidl::Persistable for RealmAddChildRequest {}
229
230#[derive(Clone, Debug, PartialEq)]
231pub struct RealmAddCollectionRequest {
232 pub collection: fidl_fuchsia_component_decl::Collection,
233}
234
235impl fidl::Persistable for RealmAddCollectionRequest {}
236
237#[derive(Clone, Debug, PartialEq)]
238pub struct RealmAddEnvironmentRequest {
239 pub environment: fidl_fuchsia_component_decl::Environment,
240}
241
242impl fidl::Persistable for RealmAddEnvironmentRequest {}
243
244#[derive(Clone, Debug, PartialEq)]
245pub struct RealmAddLocalChildRequest {
246 pub name: String,
248 pub options: ChildOptions,
250}
251
252impl fidl::Persistable for RealmAddLocalChildRequest {}
253
254#[derive(Clone, Debug, PartialEq)]
255pub struct RealmAddRouteRequest {
256 pub capabilities: Vec<Capability>,
258 pub from: fidl_fuchsia_component_decl::Ref,
260 pub to: Vec<fidl_fuchsia_component_decl::Ref>,
262}
263
264impl fidl::Persistable for RealmAddRouteRequest {}
265
266#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
267pub struct RealmGetComponentDeclRequest {
268 pub name: String,
270}
271
272impl fidl::Persistable for RealmGetComponentDeclRequest {}
273
274#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
275pub struct RealmInitMutableConfigFromPackageRequest {
276 pub name: String,
277}
278
279impl fidl::Persistable for RealmInitMutableConfigFromPackageRequest {}
280
281#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
282pub struct RealmInitMutableConfigToEmptyRequest {
283 pub name: String,
284}
285
286impl fidl::Persistable for RealmInitMutableConfigToEmptyRequest {}
287
288#[derive(Clone, Debug, PartialEq)]
289pub struct RealmReplaceComponentDeclRequest {
290 pub name: String,
292 pub component_decl: fidl_fuchsia_component_decl::Component,
294}
295
296impl fidl::Persistable for RealmReplaceComponentDeclRequest {}
297
298#[derive(Clone, Debug, PartialEq)]
299pub struct RealmReplaceRealmDeclRequest {
300 pub component_decl: fidl_fuchsia_component_decl::Component,
302}
303
304impl fidl::Persistable for RealmReplaceRealmDeclRequest {}
305
306#[derive(Clone, Debug, PartialEq)]
307pub struct RealmSetConfigValueRequest {
308 pub name: String,
310 pub key: String,
312 pub value: fidl_fuchsia_component_decl::ConfigValueSpec,
314}
315
316impl fidl::Persistable for RealmSetConfigValueRequest {}
317
318#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
319pub struct RealmUseNestedComponentManagerRequest {
320 pub component_manager_relative_url: String,
321}
322
323impl fidl::Persistable for RealmUseNestedComponentManagerRequest {}
324
325#[derive(Clone, Debug, PartialEq)]
326pub struct RealmGetComponentDeclResponse {
327 pub component_decl: fidl_fuchsia_component_decl::Component,
328}
329
330impl fidl::Persistable for RealmGetComponentDeclResponse {}
331
332#[derive(Clone, Debug, PartialEq)]
333pub struct RealmGetRealmDeclResponse {
334 pub component_decl: fidl_fuchsia_component_decl::Component,
335}
336
337impl fidl::Persistable for RealmGetRealmDeclResponse {}
338
339#[derive(Clone, Debug, Default, PartialEq)]
341pub struct ChildOptions {
342 pub startup: Option<fidl_fuchsia_component_decl::StartupMode>,
346 pub environment: Option<String>,
348 pub on_terminate: Option<fidl_fuchsia_component_decl::OnTerminate>,
352 pub config_overrides: Option<Vec<fidl_fuchsia_component_decl::ConfigOverride>>,
357 #[doc(hidden)]
358 pub __source_breaking: fidl::marker::SourceBreaking,
359}
360
361impl fidl::Persistable for ChildOptions {}
362
363#[derive(Clone, Debug, Default, PartialEq)]
365pub struct Config {
366 pub name: Option<String>,
368 pub as_: Option<String>,
371 pub availability: Option<fidl_fuchsia_component_decl::Availability>,
374 #[doc(hidden)]
375 pub __source_breaking: fidl::marker::SourceBreaking,
376}
377
378impl fidl::Persistable for Config {}
379
380#[derive(Clone, Debug, Default, PartialEq)]
382pub struct Dictionary {
383 pub name: Option<String>,
385 pub as_: Option<String>,
388 pub type_: Option<fidl_fuchsia_component_decl::DependencyType>,
392 pub availability: Option<fidl_fuchsia_component_decl::Availability>,
395 pub from_dictionary: Option<String>,
398 #[doc(hidden)]
399 pub __source_breaking: fidl::marker::SourceBreaking,
400}
401
402impl fidl::Persistable for Dictionary {}
403
404#[derive(Clone, Debug, Default, PartialEq)]
406pub struct Directory {
407 pub name: Option<String>,
410 pub as_: Option<String>,
413 pub type_: Option<fidl_fuchsia_component_decl::DependencyType>,
417 pub subdir: Option<String>,
421 pub rights: Option<fidl_fuchsia_io::Operations>,
425 pub path: Option<String>,
429 pub availability: Option<fidl_fuchsia_component_decl::Availability>,
432 pub from_dictionary: Option<String>,
435 #[doc(hidden)]
436 pub __source_breaking: fidl::marker::SourceBreaking,
437}
438
439impl fidl::Persistable for Directory {}
440
441#[derive(Clone, Debug, Default, PartialEq)]
443pub struct Event {
444 pub name: Option<String>,
446 pub as_: Option<String>,
449 pub filter: Option<fidl_fuchsia_data::Dictionary>,
451 pub availability: Option<fidl_fuchsia_component_decl::Availability>,
454 #[doc(hidden)]
455 pub __source_breaking: fidl::marker::SourceBreaking,
456}
457
458impl fidl::Persistable for Event {}
459
460#[derive(Clone, Debug, Default, PartialEq)]
462pub struct EventStream {
463 pub name: Option<String>,
465 pub as_: Option<String>,
467 pub path: Option<String>,
469 pub filter: Option<fidl_fuchsia_data::Dictionary>,
471 pub scope: Option<Vec<fidl_fuchsia_component_decl::Ref>>,
474 #[doc(hidden)]
475 pub __source_breaking: fidl::marker::SourceBreaking,
476}
477
478impl fidl::Persistable for EventStream {}
479
480#[derive(Clone, Debug, Default, PartialEq)]
482pub struct Protocol {
483 pub name: Option<String>,
488 pub as_: Option<String>,
491 pub type_: Option<fidl_fuchsia_component_decl::DependencyType>,
495 pub path: Option<String>,
500 pub availability: Option<fidl_fuchsia_component_decl::Availability>,
503 pub from_dictionary: Option<String>,
506 #[doc(hidden)]
507 pub __source_breaking: fidl::marker::SourceBreaking,
508}
509
510impl fidl::Persistable for Protocol {}
511
512#[derive(Clone, Debug, Default, PartialEq)]
514pub struct Resolver {
515 pub name: Option<String>,
517 pub as_: Option<String>,
520 pub path: Option<String>,
525 pub from_dictionary: Option<String>,
528 #[doc(hidden)]
529 pub __source_breaking: fidl::marker::SourceBreaking,
530}
531
532impl fidl::Persistable for Resolver {}
533
534#[derive(Clone, Debug, Default, PartialEq)]
536pub struct Runner {
537 pub name: Option<String>,
539 pub as_: Option<String>,
542 pub path: Option<String>,
547 pub from_dictionary: Option<String>,
550 #[doc(hidden)]
551 pub __source_breaking: fidl::marker::SourceBreaking,
552}
553
554impl fidl::Persistable for Runner {}
555
556#[derive(Clone, Debug, Default, PartialEq)]
558pub struct Service {
559 pub name: Option<String>,
564 pub as_: Option<String>,
567 pub path: Option<String>,
572 pub availability: Option<fidl_fuchsia_component_decl::Availability>,
575 pub from_dictionary: Option<String>,
578 #[doc(hidden)]
579 pub __source_breaking: fidl::marker::SourceBreaking,
580}
581
582impl fidl::Persistable for Service {}
583
584#[derive(Clone, Debug, Default, PartialEq)]
586pub struct Storage {
587 pub name: Option<String>,
590 pub as_: Option<String>,
593 pub path: Option<String>,
597 pub availability: Option<fidl_fuchsia_component_decl::Availability>,
600 #[doc(hidden)]
601 pub __source_breaking: fidl::marker::SourceBreaking,
602}
603
604impl fidl::Persistable for Storage {}
605
606#[derive(Clone, Debug)]
611pub enum Capability {
612 Protocol(Protocol),
613 Directory(Directory),
614 Storage(Storage),
615 Service(Service),
616 EventStream(EventStream),
617 Config(Config),
618 Dictionary(Dictionary),
619 Resolver(Resolver),
620 Runner(Runner),
621 #[doc(hidden)]
622 __SourceBreaking {
623 unknown_ordinal: u64,
624 },
625}
626
627#[macro_export]
629macro_rules! CapabilityUnknown {
630 () => {
631 _
632 };
633}
634
635impl PartialEq for Capability {
637 fn eq(&self, other: &Self) -> bool {
638 match (self, other) {
639 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
640 (Self::Directory(x), Self::Directory(y)) => *x == *y,
641 (Self::Storage(x), Self::Storage(y)) => *x == *y,
642 (Self::Service(x), Self::Service(y)) => *x == *y,
643 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
644 (Self::Config(x), Self::Config(y)) => *x == *y,
645 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
646 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
647 (Self::Runner(x), Self::Runner(y)) => *x == *y,
648 _ => false,
649 }
650 }
651}
652
653impl Capability {
654 #[inline]
655 pub fn ordinal(&self) -> u64 {
656 match *self {
657 Self::Protocol(_) => 1,
658 Self::Directory(_) => 2,
659 Self::Storage(_) => 3,
660 Self::Service(_) => 4,
661 Self::EventStream(_) => 6,
662 Self::Config(_) => 7,
663 Self::Dictionary(_) => 8,
664 Self::Resolver(_) => 9,
665 Self::Runner(_) => 10,
666 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
667 }
668 }
669
670 #[inline]
671 pub fn unknown_variant_for_testing() -> Self {
672 Self::__SourceBreaking { unknown_ordinal: 0 }
673 }
674
675 #[inline]
676 pub fn is_unknown(&self) -> bool {
677 match self {
678 Self::__SourceBreaking { .. } => true,
679 _ => false,
680 }
681 }
682}
683
684impl fidl::Persistable for Capability {}
685
686mod internal {
687 use super::*;
688 unsafe impl fidl::encoding::TypeMarker for RealmBuilderError {
689 type Owned = Self;
690
691 #[inline(always)]
692 fn inline_align(_context: fidl::encoding::Context) -> usize {
693 std::mem::align_of::<u32>()
694 }
695
696 #[inline(always)]
697 fn inline_size(_context: fidl::encoding::Context) -> usize {
698 std::mem::size_of::<u32>()
699 }
700
701 #[inline(always)]
702 fn encode_is_copy() -> bool {
703 false
704 }
705
706 #[inline(always)]
707 fn decode_is_copy() -> bool {
708 false
709 }
710 }
711
712 impl fidl::encoding::ValueTypeMarker for RealmBuilderError {
713 type Borrowed<'a> = Self;
714 #[inline(always)]
715 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
716 *value
717 }
718 }
719
720 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
721 for RealmBuilderError
722 {
723 #[inline]
724 unsafe fn encode(
725 self,
726 encoder: &mut fidl::encoding::Encoder<'_, D>,
727 offset: usize,
728 _depth: fidl::encoding::Depth,
729 ) -> fidl::Result<()> {
730 encoder.debug_check_bounds::<Self>(offset);
731 encoder.write_num(self.into_primitive(), offset);
732 Ok(())
733 }
734 }
735
736 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmBuilderError {
737 #[inline(always)]
738 fn new_empty() -> Self {
739 Self::unknown()
740 }
741
742 #[inline]
743 unsafe fn decode(
744 &mut self,
745 decoder: &mut fidl::encoding::Decoder<'_, D>,
746 offset: usize,
747 _depth: fidl::encoding::Depth,
748 ) -> fidl::Result<()> {
749 decoder.debug_check_bounds::<Self>(offset);
750 let prim = decoder.read_num::<u32>(offset);
751
752 *self = Self::from_primitive_allow_unknown(prim);
753 Ok(())
754 }
755 }
756
757 impl fidl::encoding::ValueTypeMarker for BuilderBuildResponse {
758 type Borrowed<'a> = &'a Self;
759 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
760 value
761 }
762 }
763
764 unsafe impl fidl::encoding::TypeMarker for BuilderBuildResponse {
765 type Owned = Self;
766
767 #[inline(always)]
768 fn inline_align(_context: fidl::encoding::Context) -> usize {
769 8
770 }
771
772 #[inline(always)]
773 fn inline_size(_context: fidl::encoding::Context) -> usize {
774 16
775 }
776 }
777
778 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BuilderBuildResponse, D>
779 for &BuilderBuildResponse
780 {
781 #[inline]
782 unsafe fn encode(
783 self,
784 encoder: &mut fidl::encoding::Encoder<'_, D>,
785 offset: usize,
786 _depth: fidl::encoding::Depth,
787 ) -> fidl::Result<()> {
788 encoder.debug_check_bounds::<BuilderBuildResponse>(offset);
789 fidl::encoding::Encode::<BuilderBuildResponse, D>::encode(
791 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
792 &self.root_component_url,
793 ),),
794 encoder,
795 offset,
796 _depth,
797 )
798 }
799 }
800 unsafe impl<
801 D: fidl::encoding::ResourceDialect,
802 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
803 > fidl::encoding::Encode<BuilderBuildResponse, D> for (T0,)
804 {
805 #[inline]
806 unsafe fn encode(
807 self,
808 encoder: &mut fidl::encoding::Encoder<'_, D>,
809 offset: usize,
810 depth: fidl::encoding::Depth,
811 ) -> fidl::Result<()> {
812 encoder.debug_check_bounds::<BuilderBuildResponse>(offset);
813 self.0.encode(encoder, offset + 0, depth)?;
817 Ok(())
818 }
819 }
820
821 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BuilderBuildResponse {
822 #[inline(always)]
823 fn new_empty() -> Self {
824 Self { root_component_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
825 }
826
827 #[inline]
828 unsafe fn decode(
829 &mut self,
830 decoder: &mut fidl::encoding::Decoder<'_, D>,
831 offset: usize,
832 _depth: fidl::encoding::Depth,
833 ) -> fidl::Result<()> {
834 decoder.debug_check_bounds::<Self>(offset);
835 fidl::decode!(
837 fidl::encoding::BoundedString<4096>,
838 D,
839 &mut self.root_component_url,
840 decoder,
841 offset + 0,
842 _depth
843 )?;
844 Ok(())
845 }
846 }
847
848 impl fidl::encoding::ValueTypeMarker for RealmAddCapabilityRequest {
849 type Borrowed<'a> = &'a Self;
850 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
851 value
852 }
853 }
854
855 unsafe impl fidl::encoding::TypeMarker for RealmAddCapabilityRequest {
856 type Owned = Self;
857
858 #[inline(always)]
859 fn inline_align(_context: fidl::encoding::Context) -> usize {
860 8
861 }
862
863 #[inline(always)]
864 fn inline_size(_context: fidl::encoding::Context) -> usize {
865 16
866 }
867 }
868
869 unsafe impl<D: fidl::encoding::ResourceDialect>
870 fidl::encoding::Encode<RealmAddCapabilityRequest, D> for &RealmAddCapabilityRequest
871 {
872 #[inline]
873 unsafe fn encode(
874 self,
875 encoder: &mut fidl::encoding::Encoder<'_, D>,
876 offset: usize,
877 _depth: fidl::encoding::Depth,
878 ) -> fidl::Result<()> {
879 encoder.debug_check_bounds::<RealmAddCapabilityRequest>(offset);
880 fidl::encoding::Encode::<RealmAddCapabilityRequest, D>::encode(
882 (
883 <fidl_fuchsia_component_decl::Capability as fidl::encoding::ValueTypeMarker>::borrow(&self.capability),
884 ),
885 encoder, offset, _depth
886 )
887 }
888 }
889 unsafe impl<
890 D: fidl::encoding::ResourceDialect,
891 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl::Capability, D>,
892 > fidl::encoding::Encode<RealmAddCapabilityRequest, D> for (T0,)
893 {
894 #[inline]
895 unsafe fn encode(
896 self,
897 encoder: &mut fidl::encoding::Encoder<'_, D>,
898 offset: usize,
899 depth: fidl::encoding::Depth,
900 ) -> fidl::Result<()> {
901 encoder.debug_check_bounds::<RealmAddCapabilityRequest>(offset);
902 self.0.encode(encoder, offset + 0, depth)?;
906 Ok(())
907 }
908 }
909
910 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
911 for RealmAddCapabilityRequest
912 {
913 #[inline(always)]
914 fn new_empty() -> Self {
915 Self { capability: fidl::new_empty!(fidl_fuchsia_component_decl::Capability, D) }
916 }
917
918 #[inline]
919 unsafe fn decode(
920 &mut self,
921 decoder: &mut fidl::encoding::Decoder<'_, D>,
922 offset: usize,
923 _depth: fidl::encoding::Depth,
924 ) -> fidl::Result<()> {
925 decoder.debug_check_bounds::<Self>(offset);
926 fidl::decode!(
928 fidl_fuchsia_component_decl::Capability,
929 D,
930 &mut self.capability,
931 decoder,
932 offset + 0,
933 _depth
934 )?;
935 Ok(())
936 }
937 }
938
939 impl fidl::encoding::ValueTypeMarker for RealmAddChildFromDeclRequest {
940 type Borrowed<'a> = &'a Self;
941 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
942 value
943 }
944 }
945
946 unsafe impl fidl::encoding::TypeMarker for RealmAddChildFromDeclRequest {
947 type Owned = Self;
948
949 #[inline(always)]
950 fn inline_align(_context: fidl::encoding::Context) -> usize {
951 8
952 }
953
954 #[inline(always)]
955 fn inline_size(_context: fidl::encoding::Context) -> usize {
956 48
957 }
958 }
959
960 unsafe impl<D: fidl::encoding::ResourceDialect>
961 fidl::encoding::Encode<RealmAddChildFromDeclRequest, D> for &RealmAddChildFromDeclRequest
962 {
963 #[inline]
964 unsafe fn encode(
965 self,
966 encoder: &mut fidl::encoding::Encoder<'_, D>,
967 offset: usize,
968 _depth: fidl::encoding::Depth,
969 ) -> fidl::Result<()> {
970 encoder.debug_check_bounds::<RealmAddChildFromDeclRequest>(offset);
971 fidl::encoding::Encode::<RealmAddChildFromDeclRequest, D>::encode(
973 (
974 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
975 <fidl_fuchsia_component_decl::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.decl),
976 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
977 ),
978 encoder, offset, _depth
979 )
980 }
981 }
982 unsafe impl<
983 D: fidl::encoding::ResourceDialect,
984 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
985 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl::Component, D>,
986 T2: fidl::encoding::Encode<ChildOptions, D>,
987 > fidl::encoding::Encode<RealmAddChildFromDeclRequest, D> for (T0, T1, T2)
988 {
989 #[inline]
990 unsafe fn encode(
991 self,
992 encoder: &mut fidl::encoding::Encoder<'_, D>,
993 offset: usize,
994 depth: fidl::encoding::Depth,
995 ) -> fidl::Result<()> {
996 encoder.debug_check_bounds::<RealmAddChildFromDeclRequest>(offset);
997 self.0.encode(encoder, offset + 0, depth)?;
1001 self.1.encode(encoder, offset + 16, depth)?;
1002 self.2.encode(encoder, offset + 32, depth)?;
1003 Ok(())
1004 }
1005 }
1006
1007 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1008 for RealmAddChildFromDeclRequest
1009 {
1010 #[inline(always)]
1011 fn new_empty() -> Self {
1012 Self {
1013 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1014 decl: fidl::new_empty!(fidl_fuchsia_component_decl::Component, D),
1015 options: fidl::new_empty!(ChildOptions, D),
1016 }
1017 }
1018
1019 #[inline]
1020 unsafe fn decode(
1021 &mut self,
1022 decoder: &mut fidl::encoding::Decoder<'_, D>,
1023 offset: usize,
1024 _depth: fidl::encoding::Depth,
1025 ) -> fidl::Result<()> {
1026 decoder.debug_check_bounds::<Self>(offset);
1027 fidl::decode!(
1029 fidl::encoding::BoundedString<1024>,
1030 D,
1031 &mut self.name,
1032 decoder,
1033 offset + 0,
1034 _depth
1035 )?;
1036 fidl::decode!(
1037 fidl_fuchsia_component_decl::Component,
1038 D,
1039 &mut self.decl,
1040 decoder,
1041 offset + 16,
1042 _depth
1043 )?;
1044 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 32, _depth)?;
1045 Ok(())
1046 }
1047 }
1048
1049 impl fidl::encoding::ValueTypeMarker for RealmAddChildRequest {
1050 type Borrowed<'a> = &'a Self;
1051 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1052 value
1053 }
1054 }
1055
1056 unsafe impl fidl::encoding::TypeMarker for RealmAddChildRequest {
1057 type Owned = Self;
1058
1059 #[inline(always)]
1060 fn inline_align(_context: fidl::encoding::Context) -> usize {
1061 8
1062 }
1063
1064 #[inline(always)]
1065 fn inline_size(_context: fidl::encoding::Context) -> usize {
1066 48
1067 }
1068 }
1069
1070 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RealmAddChildRequest, D>
1071 for &RealmAddChildRequest
1072 {
1073 #[inline]
1074 unsafe fn encode(
1075 self,
1076 encoder: &mut fidl::encoding::Encoder<'_, D>,
1077 offset: usize,
1078 _depth: fidl::encoding::Depth,
1079 ) -> fidl::Result<()> {
1080 encoder.debug_check_bounds::<RealmAddChildRequest>(offset);
1081 fidl::encoding::Encode::<RealmAddChildRequest, D>::encode(
1083 (
1084 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1085 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.url),
1086 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1087 ),
1088 encoder, offset, _depth
1089 )
1090 }
1091 }
1092 unsafe impl<
1093 D: fidl::encoding::ResourceDialect,
1094 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1095 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1096 T2: fidl::encoding::Encode<ChildOptions, D>,
1097 > fidl::encoding::Encode<RealmAddChildRequest, D> for (T0, T1, T2)
1098 {
1099 #[inline]
1100 unsafe fn encode(
1101 self,
1102 encoder: &mut fidl::encoding::Encoder<'_, D>,
1103 offset: usize,
1104 depth: fidl::encoding::Depth,
1105 ) -> fidl::Result<()> {
1106 encoder.debug_check_bounds::<RealmAddChildRequest>(offset);
1107 self.0.encode(encoder, offset + 0, depth)?;
1111 self.1.encode(encoder, offset + 16, depth)?;
1112 self.2.encode(encoder, offset + 32, depth)?;
1113 Ok(())
1114 }
1115 }
1116
1117 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmAddChildRequest {
1118 #[inline(always)]
1119 fn new_empty() -> Self {
1120 Self {
1121 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1122 url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1123 options: fidl::new_empty!(ChildOptions, D),
1124 }
1125 }
1126
1127 #[inline]
1128 unsafe fn decode(
1129 &mut self,
1130 decoder: &mut fidl::encoding::Decoder<'_, D>,
1131 offset: usize,
1132 _depth: fidl::encoding::Depth,
1133 ) -> fidl::Result<()> {
1134 decoder.debug_check_bounds::<Self>(offset);
1135 fidl::decode!(
1137 fidl::encoding::BoundedString<1024>,
1138 D,
1139 &mut self.name,
1140 decoder,
1141 offset + 0,
1142 _depth
1143 )?;
1144 fidl::decode!(
1145 fidl::encoding::BoundedString<4096>,
1146 D,
1147 &mut self.url,
1148 decoder,
1149 offset + 16,
1150 _depth
1151 )?;
1152 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 32, _depth)?;
1153 Ok(())
1154 }
1155 }
1156
1157 impl fidl::encoding::ValueTypeMarker for RealmAddCollectionRequest {
1158 type Borrowed<'a> = &'a Self;
1159 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1160 value
1161 }
1162 }
1163
1164 unsafe impl fidl::encoding::TypeMarker for RealmAddCollectionRequest {
1165 type Owned = Self;
1166
1167 #[inline(always)]
1168 fn inline_align(_context: fidl::encoding::Context) -> usize {
1169 8
1170 }
1171
1172 #[inline(always)]
1173 fn inline_size(_context: fidl::encoding::Context) -> usize {
1174 16
1175 }
1176 }
1177
1178 unsafe impl<D: fidl::encoding::ResourceDialect>
1179 fidl::encoding::Encode<RealmAddCollectionRequest, D> for &RealmAddCollectionRequest
1180 {
1181 #[inline]
1182 unsafe fn encode(
1183 self,
1184 encoder: &mut fidl::encoding::Encoder<'_, D>,
1185 offset: usize,
1186 _depth: fidl::encoding::Depth,
1187 ) -> fidl::Result<()> {
1188 encoder.debug_check_bounds::<RealmAddCollectionRequest>(offset);
1189 fidl::encoding::Encode::<RealmAddCollectionRequest, D>::encode(
1191 (
1192 <fidl_fuchsia_component_decl::Collection as fidl::encoding::ValueTypeMarker>::borrow(&self.collection),
1193 ),
1194 encoder, offset, _depth
1195 )
1196 }
1197 }
1198 unsafe impl<
1199 D: fidl::encoding::ResourceDialect,
1200 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl::Collection, D>,
1201 > fidl::encoding::Encode<RealmAddCollectionRequest, D> for (T0,)
1202 {
1203 #[inline]
1204 unsafe fn encode(
1205 self,
1206 encoder: &mut fidl::encoding::Encoder<'_, D>,
1207 offset: usize,
1208 depth: fidl::encoding::Depth,
1209 ) -> fidl::Result<()> {
1210 encoder.debug_check_bounds::<RealmAddCollectionRequest>(offset);
1211 self.0.encode(encoder, offset + 0, depth)?;
1215 Ok(())
1216 }
1217 }
1218
1219 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1220 for RealmAddCollectionRequest
1221 {
1222 #[inline(always)]
1223 fn new_empty() -> Self {
1224 Self { collection: fidl::new_empty!(fidl_fuchsia_component_decl::Collection, D) }
1225 }
1226
1227 #[inline]
1228 unsafe fn decode(
1229 &mut self,
1230 decoder: &mut fidl::encoding::Decoder<'_, D>,
1231 offset: usize,
1232 _depth: fidl::encoding::Depth,
1233 ) -> fidl::Result<()> {
1234 decoder.debug_check_bounds::<Self>(offset);
1235 fidl::decode!(
1237 fidl_fuchsia_component_decl::Collection,
1238 D,
1239 &mut self.collection,
1240 decoder,
1241 offset + 0,
1242 _depth
1243 )?;
1244 Ok(())
1245 }
1246 }
1247
1248 impl fidl::encoding::ValueTypeMarker for RealmAddEnvironmentRequest {
1249 type Borrowed<'a> = &'a Self;
1250 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1251 value
1252 }
1253 }
1254
1255 unsafe impl fidl::encoding::TypeMarker for RealmAddEnvironmentRequest {
1256 type Owned = Self;
1257
1258 #[inline(always)]
1259 fn inline_align(_context: fidl::encoding::Context) -> usize {
1260 8
1261 }
1262
1263 #[inline(always)]
1264 fn inline_size(_context: fidl::encoding::Context) -> usize {
1265 16
1266 }
1267 }
1268
1269 unsafe impl<D: fidl::encoding::ResourceDialect>
1270 fidl::encoding::Encode<RealmAddEnvironmentRequest, D> for &RealmAddEnvironmentRequest
1271 {
1272 #[inline]
1273 unsafe fn encode(
1274 self,
1275 encoder: &mut fidl::encoding::Encoder<'_, D>,
1276 offset: usize,
1277 _depth: fidl::encoding::Depth,
1278 ) -> fidl::Result<()> {
1279 encoder.debug_check_bounds::<RealmAddEnvironmentRequest>(offset);
1280 fidl::encoding::Encode::<RealmAddEnvironmentRequest, D>::encode(
1282 (
1283 <fidl_fuchsia_component_decl::Environment as fidl::encoding::ValueTypeMarker>::borrow(&self.environment),
1284 ),
1285 encoder, offset, _depth
1286 )
1287 }
1288 }
1289 unsafe impl<
1290 D: fidl::encoding::ResourceDialect,
1291 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl::Environment, D>,
1292 > fidl::encoding::Encode<RealmAddEnvironmentRequest, D> for (T0,)
1293 {
1294 #[inline]
1295 unsafe fn encode(
1296 self,
1297 encoder: &mut fidl::encoding::Encoder<'_, D>,
1298 offset: usize,
1299 depth: fidl::encoding::Depth,
1300 ) -> fidl::Result<()> {
1301 encoder.debug_check_bounds::<RealmAddEnvironmentRequest>(offset);
1302 self.0.encode(encoder, offset + 0, depth)?;
1306 Ok(())
1307 }
1308 }
1309
1310 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1311 for RealmAddEnvironmentRequest
1312 {
1313 #[inline(always)]
1314 fn new_empty() -> Self {
1315 Self { environment: fidl::new_empty!(fidl_fuchsia_component_decl::Environment, D) }
1316 }
1317
1318 #[inline]
1319 unsafe fn decode(
1320 &mut self,
1321 decoder: &mut fidl::encoding::Decoder<'_, D>,
1322 offset: usize,
1323 _depth: fidl::encoding::Depth,
1324 ) -> fidl::Result<()> {
1325 decoder.debug_check_bounds::<Self>(offset);
1326 fidl::decode!(
1328 fidl_fuchsia_component_decl::Environment,
1329 D,
1330 &mut self.environment,
1331 decoder,
1332 offset + 0,
1333 _depth
1334 )?;
1335 Ok(())
1336 }
1337 }
1338
1339 impl fidl::encoding::ValueTypeMarker for RealmAddLocalChildRequest {
1340 type Borrowed<'a> = &'a Self;
1341 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1342 value
1343 }
1344 }
1345
1346 unsafe impl fidl::encoding::TypeMarker for RealmAddLocalChildRequest {
1347 type Owned = Self;
1348
1349 #[inline(always)]
1350 fn inline_align(_context: fidl::encoding::Context) -> usize {
1351 8
1352 }
1353
1354 #[inline(always)]
1355 fn inline_size(_context: fidl::encoding::Context) -> usize {
1356 32
1357 }
1358 }
1359
1360 unsafe impl<D: fidl::encoding::ResourceDialect>
1361 fidl::encoding::Encode<RealmAddLocalChildRequest, D> for &RealmAddLocalChildRequest
1362 {
1363 #[inline]
1364 unsafe fn encode(
1365 self,
1366 encoder: &mut fidl::encoding::Encoder<'_, D>,
1367 offset: usize,
1368 _depth: fidl::encoding::Depth,
1369 ) -> fidl::Result<()> {
1370 encoder.debug_check_bounds::<RealmAddLocalChildRequest>(offset);
1371 fidl::encoding::Encode::<RealmAddLocalChildRequest, D>::encode(
1373 (
1374 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1375 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1376 ),
1377 encoder, offset, _depth
1378 )
1379 }
1380 }
1381 unsafe impl<
1382 D: fidl::encoding::ResourceDialect,
1383 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1384 T1: fidl::encoding::Encode<ChildOptions, D>,
1385 > fidl::encoding::Encode<RealmAddLocalChildRequest, D> for (T0, T1)
1386 {
1387 #[inline]
1388 unsafe fn encode(
1389 self,
1390 encoder: &mut fidl::encoding::Encoder<'_, D>,
1391 offset: usize,
1392 depth: fidl::encoding::Depth,
1393 ) -> fidl::Result<()> {
1394 encoder.debug_check_bounds::<RealmAddLocalChildRequest>(offset);
1395 self.0.encode(encoder, offset + 0, depth)?;
1399 self.1.encode(encoder, offset + 16, depth)?;
1400 Ok(())
1401 }
1402 }
1403
1404 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1405 for RealmAddLocalChildRequest
1406 {
1407 #[inline(always)]
1408 fn new_empty() -> Self {
1409 Self {
1410 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1411 options: fidl::new_empty!(ChildOptions, D),
1412 }
1413 }
1414
1415 #[inline]
1416 unsafe fn decode(
1417 &mut self,
1418 decoder: &mut fidl::encoding::Decoder<'_, D>,
1419 offset: usize,
1420 _depth: fidl::encoding::Depth,
1421 ) -> fidl::Result<()> {
1422 decoder.debug_check_bounds::<Self>(offset);
1423 fidl::decode!(
1425 fidl::encoding::BoundedString<1024>,
1426 D,
1427 &mut self.name,
1428 decoder,
1429 offset + 0,
1430 _depth
1431 )?;
1432 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 16, _depth)?;
1433 Ok(())
1434 }
1435 }
1436
1437 impl fidl::encoding::ValueTypeMarker for RealmAddRouteRequest {
1438 type Borrowed<'a> = &'a Self;
1439 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1440 value
1441 }
1442 }
1443
1444 unsafe impl fidl::encoding::TypeMarker for RealmAddRouteRequest {
1445 type Owned = Self;
1446
1447 #[inline(always)]
1448 fn inline_align(_context: fidl::encoding::Context) -> usize {
1449 8
1450 }
1451
1452 #[inline(always)]
1453 fn inline_size(_context: fidl::encoding::Context) -> usize {
1454 48
1455 }
1456 }
1457
1458 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RealmAddRouteRequest, D>
1459 for &RealmAddRouteRequest
1460 {
1461 #[inline]
1462 unsafe fn encode(
1463 self,
1464 encoder: &mut fidl::encoding::Encoder<'_, D>,
1465 offset: usize,
1466 _depth: fidl::encoding::Depth,
1467 ) -> fidl::Result<()> {
1468 encoder.debug_check_bounds::<RealmAddRouteRequest>(offset);
1469 fidl::encoding::Encode::<RealmAddRouteRequest, D>::encode(
1471 (
1472 <fidl::encoding::UnboundedVector<Capability> as fidl::encoding::ValueTypeMarker>::borrow(&self.capabilities),
1473 <fidl_fuchsia_component_decl::Ref as fidl::encoding::ValueTypeMarker>::borrow(&self.from),
1474 <fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref> as fidl::encoding::ValueTypeMarker>::borrow(&self.to),
1475 ),
1476 encoder, offset, _depth
1477 )
1478 }
1479 }
1480 unsafe impl<
1481 D: fidl::encoding::ResourceDialect,
1482 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Capability>, D>,
1483 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl::Ref, D>,
1484 T2: fidl::encoding::Encode<
1485 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref>,
1486 D,
1487 >,
1488 > fidl::encoding::Encode<RealmAddRouteRequest, D> for (T0, T1, T2)
1489 {
1490 #[inline]
1491 unsafe fn encode(
1492 self,
1493 encoder: &mut fidl::encoding::Encoder<'_, D>,
1494 offset: usize,
1495 depth: fidl::encoding::Depth,
1496 ) -> fidl::Result<()> {
1497 encoder.debug_check_bounds::<RealmAddRouteRequest>(offset);
1498 self.0.encode(encoder, offset + 0, depth)?;
1502 self.1.encode(encoder, offset + 16, depth)?;
1503 self.2.encode(encoder, offset + 32, depth)?;
1504 Ok(())
1505 }
1506 }
1507
1508 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmAddRouteRequest {
1509 #[inline(always)]
1510 fn new_empty() -> Self {
1511 Self {
1512 capabilities: fidl::new_empty!(fidl::encoding::UnboundedVector<Capability>, D),
1513 from: fidl::new_empty!(fidl_fuchsia_component_decl::Ref, D),
1514 to: fidl::new_empty!(
1515 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref>,
1516 D
1517 ),
1518 }
1519 }
1520
1521 #[inline]
1522 unsafe fn decode(
1523 &mut self,
1524 decoder: &mut fidl::encoding::Decoder<'_, D>,
1525 offset: usize,
1526 _depth: fidl::encoding::Depth,
1527 ) -> fidl::Result<()> {
1528 decoder.debug_check_bounds::<Self>(offset);
1529 fidl::decode!(
1531 fidl::encoding::UnboundedVector<Capability>,
1532 D,
1533 &mut self.capabilities,
1534 decoder,
1535 offset + 0,
1536 _depth
1537 )?;
1538 fidl::decode!(
1539 fidl_fuchsia_component_decl::Ref,
1540 D,
1541 &mut self.from,
1542 decoder,
1543 offset + 16,
1544 _depth
1545 )?;
1546 fidl::decode!(
1547 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref>,
1548 D,
1549 &mut self.to,
1550 decoder,
1551 offset + 32,
1552 _depth
1553 )?;
1554 Ok(())
1555 }
1556 }
1557
1558 impl fidl::encoding::ValueTypeMarker for RealmGetComponentDeclRequest {
1559 type Borrowed<'a> = &'a Self;
1560 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1561 value
1562 }
1563 }
1564
1565 unsafe impl fidl::encoding::TypeMarker for RealmGetComponentDeclRequest {
1566 type Owned = Self;
1567
1568 #[inline(always)]
1569 fn inline_align(_context: fidl::encoding::Context) -> usize {
1570 8
1571 }
1572
1573 #[inline(always)]
1574 fn inline_size(_context: fidl::encoding::Context) -> usize {
1575 16
1576 }
1577 }
1578
1579 unsafe impl<D: fidl::encoding::ResourceDialect>
1580 fidl::encoding::Encode<RealmGetComponentDeclRequest, D> for &RealmGetComponentDeclRequest
1581 {
1582 #[inline]
1583 unsafe fn encode(
1584 self,
1585 encoder: &mut fidl::encoding::Encoder<'_, D>,
1586 offset: usize,
1587 _depth: fidl::encoding::Depth,
1588 ) -> fidl::Result<()> {
1589 encoder.debug_check_bounds::<RealmGetComponentDeclRequest>(offset);
1590 fidl::encoding::Encode::<RealmGetComponentDeclRequest, D>::encode(
1592 (<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(
1593 &self.name,
1594 ),),
1595 encoder,
1596 offset,
1597 _depth,
1598 )
1599 }
1600 }
1601 unsafe impl<
1602 D: fidl::encoding::ResourceDialect,
1603 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1604 > fidl::encoding::Encode<RealmGetComponentDeclRequest, D> for (T0,)
1605 {
1606 #[inline]
1607 unsafe fn encode(
1608 self,
1609 encoder: &mut fidl::encoding::Encoder<'_, D>,
1610 offset: usize,
1611 depth: fidl::encoding::Depth,
1612 ) -> fidl::Result<()> {
1613 encoder.debug_check_bounds::<RealmGetComponentDeclRequest>(offset);
1614 self.0.encode(encoder, offset + 0, depth)?;
1618 Ok(())
1619 }
1620 }
1621
1622 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1623 for RealmGetComponentDeclRequest
1624 {
1625 #[inline(always)]
1626 fn new_empty() -> Self {
1627 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D) }
1628 }
1629
1630 #[inline]
1631 unsafe fn decode(
1632 &mut self,
1633 decoder: &mut fidl::encoding::Decoder<'_, D>,
1634 offset: usize,
1635 _depth: fidl::encoding::Depth,
1636 ) -> fidl::Result<()> {
1637 decoder.debug_check_bounds::<Self>(offset);
1638 fidl::decode!(
1640 fidl::encoding::BoundedString<1024>,
1641 D,
1642 &mut self.name,
1643 decoder,
1644 offset + 0,
1645 _depth
1646 )?;
1647 Ok(())
1648 }
1649 }
1650
1651 impl fidl::encoding::ValueTypeMarker for RealmInitMutableConfigFromPackageRequest {
1652 type Borrowed<'a> = &'a Self;
1653 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1654 value
1655 }
1656 }
1657
1658 unsafe impl fidl::encoding::TypeMarker for RealmInitMutableConfigFromPackageRequest {
1659 type Owned = Self;
1660
1661 #[inline(always)]
1662 fn inline_align(_context: fidl::encoding::Context) -> usize {
1663 8
1664 }
1665
1666 #[inline(always)]
1667 fn inline_size(_context: fidl::encoding::Context) -> usize {
1668 16
1669 }
1670 }
1671
1672 unsafe impl<D: fidl::encoding::ResourceDialect>
1673 fidl::encoding::Encode<RealmInitMutableConfigFromPackageRequest, D>
1674 for &RealmInitMutableConfigFromPackageRequest
1675 {
1676 #[inline]
1677 unsafe fn encode(
1678 self,
1679 encoder: &mut fidl::encoding::Encoder<'_, D>,
1680 offset: usize,
1681 _depth: fidl::encoding::Depth,
1682 ) -> fidl::Result<()> {
1683 encoder.debug_check_bounds::<RealmInitMutableConfigFromPackageRequest>(offset);
1684 fidl::encoding::Encode::<RealmInitMutableConfigFromPackageRequest, D>::encode(
1686 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1687 &self.name,
1688 ),),
1689 encoder,
1690 offset,
1691 _depth,
1692 )
1693 }
1694 }
1695 unsafe impl<
1696 D: fidl::encoding::ResourceDialect,
1697 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1698 > fidl::encoding::Encode<RealmInitMutableConfigFromPackageRequest, D> for (T0,)
1699 {
1700 #[inline]
1701 unsafe fn encode(
1702 self,
1703 encoder: &mut fidl::encoding::Encoder<'_, D>,
1704 offset: usize,
1705 depth: fidl::encoding::Depth,
1706 ) -> fidl::Result<()> {
1707 encoder.debug_check_bounds::<RealmInitMutableConfigFromPackageRequest>(offset);
1708 self.0.encode(encoder, offset + 0, depth)?;
1712 Ok(())
1713 }
1714 }
1715
1716 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1717 for RealmInitMutableConfigFromPackageRequest
1718 {
1719 #[inline(always)]
1720 fn new_empty() -> Self {
1721 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
1722 }
1723
1724 #[inline]
1725 unsafe fn decode(
1726 &mut self,
1727 decoder: &mut fidl::encoding::Decoder<'_, D>,
1728 offset: usize,
1729 _depth: fidl::encoding::Depth,
1730 ) -> fidl::Result<()> {
1731 decoder.debug_check_bounds::<Self>(offset);
1732 fidl::decode!(
1734 fidl::encoding::BoundedString<255>,
1735 D,
1736 &mut self.name,
1737 decoder,
1738 offset + 0,
1739 _depth
1740 )?;
1741 Ok(())
1742 }
1743 }
1744
1745 impl fidl::encoding::ValueTypeMarker for RealmInitMutableConfigToEmptyRequest {
1746 type Borrowed<'a> = &'a Self;
1747 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1748 value
1749 }
1750 }
1751
1752 unsafe impl fidl::encoding::TypeMarker for RealmInitMutableConfigToEmptyRequest {
1753 type Owned = Self;
1754
1755 #[inline(always)]
1756 fn inline_align(_context: fidl::encoding::Context) -> usize {
1757 8
1758 }
1759
1760 #[inline(always)]
1761 fn inline_size(_context: fidl::encoding::Context) -> usize {
1762 16
1763 }
1764 }
1765
1766 unsafe impl<D: fidl::encoding::ResourceDialect>
1767 fidl::encoding::Encode<RealmInitMutableConfigToEmptyRequest, D>
1768 for &RealmInitMutableConfigToEmptyRequest
1769 {
1770 #[inline]
1771 unsafe fn encode(
1772 self,
1773 encoder: &mut fidl::encoding::Encoder<'_, D>,
1774 offset: usize,
1775 _depth: fidl::encoding::Depth,
1776 ) -> fidl::Result<()> {
1777 encoder.debug_check_bounds::<RealmInitMutableConfigToEmptyRequest>(offset);
1778 fidl::encoding::Encode::<RealmInitMutableConfigToEmptyRequest, D>::encode(
1780 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1781 &self.name,
1782 ),),
1783 encoder,
1784 offset,
1785 _depth,
1786 )
1787 }
1788 }
1789 unsafe impl<
1790 D: fidl::encoding::ResourceDialect,
1791 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1792 > fidl::encoding::Encode<RealmInitMutableConfigToEmptyRequest, D> for (T0,)
1793 {
1794 #[inline]
1795 unsafe fn encode(
1796 self,
1797 encoder: &mut fidl::encoding::Encoder<'_, D>,
1798 offset: usize,
1799 depth: fidl::encoding::Depth,
1800 ) -> fidl::Result<()> {
1801 encoder.debug_check_bounds::<RealmInitMutableConfigToEmptyRequest>(offset);
1802 self.0.encode(encoder, offset + 0, depth)?;
1806 Ok(())
1807 }
1808 }
1809
1810 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1811 for RealmInitMutableConfigToEmptyRequest
1812 {
1813 #[inline(always)]
1814 fn new_empty() -> Self {
1815 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
1816 }
1817
1818 #[inline]
1819 unsafe fn decode(
1820 &mut self,
1821 decoder: &mut fidl::encoding::Decoder<'_, D>,
1822 offset: usize,
1823 _depth: fidl::encoding::Depth,
1824 ) -> fidl::Result<()> {
1825 decoder.debug_check_bounds::<Self>(offset);
1826 fidl::decode!(
1828 fidl::encoding::BoundedString<255>,
1829 D,
1830 &mut self.name,
1831 decoder,
1832 offset + 0,
1833 _depth
1834 )?;
1835 Ok(())
1836 }
1837 }
1838
1839 impl fidl::encoding::ValueTypeMarker for RealmReplaceComponentDeclRequest {
1840 type Borrowed<'a> = &'a Self;
1841 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1842 value
1843 }
1844 }
1845
1846 unsafe impl fidl::encoding::TypeMarker for RealmReplaceComponentDeclRequest {
1847 type Owned = Self;
1848
1849 #[inline(always)]
1850 fn inline_align(_context: fidl::encoding::Context) -> usize {
1851 8
1852 }
1853
1854 #[inline(always)]
1855 fn inline_size(_context: fidl::encoding::Context) -> usize {
1856 32
1857 }
1858 }
1859
1860 unsafe impl<D: fidl::encoding::ResourceDialect>
1861 fidl::encoding::Encode<RealmReplaceComponentDeclRequest, D>
1862 for &RealmReplaceComponentDeclRequest
1863 {
1864 #[inline]
1865 unsafe fn encode(
1866 self,
1867 encoder: &mut fidl::encoding::Encoder<'_, D>,
1868 offset: usize,
1869 _depth: fidl::encoding::Depth,
1870 ) -> fidl::Result<()> {
1871 encoder.debug_check_bounds::<RealmReplaceComponentDeclRequest>(offset);
1872 fidl::encoding::Encode::<RealmReplaceComponentDeclRequest, D>::encode(
1874 (
1875 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1876 <fidl_fuchsia_component_decl::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
1877 ),
1878 encoder, offset, _depth
1879 )
1880 }
1881 }
1882 unsafe impl<
1883 D: fidl::encoding::ResourceDialect,
1884 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1885 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl::Component, D>,
1886 > fidl::encoding::Encode<RealmReplaceComponentDeclRequest, D> for (T0, T1)
1887 {
1888 #[inline]
1889 unsafe fn encode(
1890 self,
1891 encoder: &mut fidl::encoding::Encoder<'_, D>,
1892 offset: usize,
1893 depth: fidl::encoding::Depth,
1894 ) -> fidl::Result<()> {
1895 encoder.debug_check_bounds::<RealmReplaceComponentDeclRequest>(offset);
1896 self.0.encode(encoder, offset + 0, depth)?;
1900 self.1.encode(encoder, offset + 16, depth)?;
1901 Ok(())
1902 }
1903 }
1904
1905 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1906 for RealmReplaceComponentDeclRequest
1907 {
1908 #[inline(always)]
1909 fn new_empty() -> Self {
1910 Self {
1911 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1912 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl::Component, D),
1913 }
1914 }
1915
1916 #[inline]
1917 unsafe fn decode(
1918 &mut self,
1919 decoder: &mut fidl::encoding::Decoder<'_, D>,
1920 offset: usize,
1921 _depth: fidl::encoding::Depth,
1922 ) -> fidl::Result<()> {
1923 decoder.debug_check_bounds::<Self>(offset);
1924 fidl::decode!(
1926 fidl::encoding::BoundedString<1024>,
1927 D,
1928 &mut self.name,
1929 decoder,
1930 offset + 0,
1931 _depth
1932 )?;
1933 fidl::decode!(
1934 fidl_fuchsia_component_decl::Component,
1935 D,
1936 &mut self.component_decl,
1937 decoder,
1938 offset + 16,
1939 _depth
1940 )?;
1941 Ok(())
1942 }
1943 }
1944
1945 impl fidl::encoding::ValueTypeMarker for RealmReplaceRealmDeclRequest {
1946 type Borrowed<'a> = &'a Self;
1947 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1948 value
1949 }
1950 }
1951
1952 unsafe impl fidl::encoding::TypeMarker for RealmReplaceRealmDeclRequest {
1953 type Owned = Self;
1954
1955 #[inline(always)]
1956 fn inline_align(_context: fidl::encoding::Context) -> usize {
1957 8
1958 }
1959
1960 #[inline(always)]
1961 fn inline_size(_context: fidl::encoding::Context) -> usize {
1962 16
1963 }
1964 }
1965
1966 unsafe impl<D: fidl::encoding::ResourceDialect>
1967 fidl::encoding::Encode<RealmReplaceRealmDeclRequest, D> for &RealmReplaceRealmDeclRequest
1968 {
1969 #[inline]
1970 unsafe fn encode(
1971 self,
1972 encoder: &mut fidl::encoding::Encoder<'_, D>,
1973 offset: usize,
1974 _depth: fidl::encoding::Depth,
1975 ) -> fidl::Result<()> {
1976 encoder.debug_check_bounds::<RealmReplaceRealmDeclRequest>(offset);
1977 fidl::encoding::Encode::<RealmReplaceRealmDeclRequest, D>::encode(
1979 (
1980 <fidl_fuchsia_component_decl::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
1981 ),
1982 encoder, offset, _depth
1983 )
1984 }
1985 }
1986 unsafe impl<
1987 D: fidl::encoding::ResourceDialect,
1988 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl::Component, D>,
1989 > fidl::encoding::Encode<RealmReplaceRealmDeclRequest, D> for (T0,)
1990 {
1991 #[inline]
1992 unsafe fn encode(
1993 self,
1994 encoder: &mut fidl::encoding::Encoder<'_, D>,
1995 offset: usize,
1996 depth: fidl::encoding::Depth,
1997 ) -> fidl::Result<()> {
1998 encoder.debug_check_bounds::<RealmReplaceRealmDeclRequest>(offset);
1999 self.0.encode(encoder, offset + 0, depth)?;
2003 Ok(())
2004 }
2005 }
2006
2007 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2008 for RealmReplaceRealmDeclRequest
2009 {
2010 #[inline(always)]
2011 fn new_empty() -> Self {
2012 Self { component_decl: fidl::new_empty!(fidl_fuchsia_component_decl::Component, D) }
2013 }
2014
2015 #[inline]
2016 unsafe fn decode(
2017 &mut self,
2018 decoder: &mut fidl::encoding::Decoder<'_, D>,
2019 offset: usize,
2020 _depth: fidl::encoding::Depth,
2021 ) -> fidl::Result<()> {
2022 decoder.debug_check_bounds::<Self>(offset);
2023 fidl::decode!(
2025 fidl_fuchsia_component_decl::Component,
2026 D,
2027 &mut self.component_decl,
2028 decoder,
2029 offset + 0,
2030 _depth
2031 )?;
2032 Ok(())
2033 }
2034 }
2035
2036 impl fidl::encoding::ValueTypeMarker for RealmSetConfigValueRequest {
2037 type Borrowed<'a> = &'a Self;
2038 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2039 value
2040 }
2041 }
2042
2043 unsafe impl fidl::encoding::TypeMarker for RealmSetConfigValueRequest {
2044 type Owned = Self;
2045
2046 #[inline(always)]
2047 fn inline_align(_context: fidl::encoding::Context) -> usize {
2048 8
2049 }
2050
2051 #[inline(always)]
2052 fn inline_size(_context: fidl::encoding::Context) -> usize {
2053 48
2054 }
2055 }
2056
2057 unsafe impl<D: fidl::encoding::ResourceDialect>
2058 fidl::encoding::Encode<RealmSetConfigValueRequest, D> for &RealmSetConfigValueRequest
2059 {
2060 #[inline]
2061 unsafe fn encode(
2062 self,
2063 encoder: &mut fidl::encoding::Encoder<'_, D>,
2064 offset: usize,
2065 _depth: fidl::encoding::Depth,
2066 ) -> fidl::Result<()> {
2067 encoder.debug_check_bounds::<RealmSetConfigValueRequest>(offset);
2068 fidl::encoding::Encode::<RealmSetConfigValueRequest, D>::encode(
2070 (
2071 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2072 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(&self.key),
2073 <fidl_fuchsia_component_decl::ConfigValueSpec as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
2074 ),
2075 encoder, offset, _depth
2076 )
2077 }
2078 }
2079 unsafe impl<
2080 D: fidl::encoding::ResourceDialect,
2081 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
2082 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
2083 T2: fidl::encoding::Encode<fidl_fuchsia_component_decl::ConfigValueSpec, D>,
2084 > fidl::encoding::Encode<RealmSetConfigValueRequest, D> for (T0, T1, T2)
2085 {
2086 #[inline]
2087 unsafe fn encode(
2088 self,
2089 encoder: &mut fidl::encoding::Encoder<'_, D>,
2090 offset: usize,
2091 depth: fidl::encoding::Depth,
2092 ) -> fidl::Result<()> {
2093 encoder.debug_check_bounds::<RealmSetConfigValueRequest>(offset);
2094 self.0.encode(encoder, offset + 0, depth)?;
2098 self.1.encode(encoder, offset + 16, depth)?;
2099 self.2.encode(encoder, offset + 32, depth)?;
2100 Ok(())
2101 }
2102 }
2103
2104 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2105 for RealmSetConfigValueRequest
2106 {
2107 #[inline(always)]
2108 fn new_empty() -> Self {
2109 Self {
2110 name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
2111 key: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
2112 value: fidl::new_empty!(fidl_fuchsia_component_decl::ConfigValueSpec, D),
2113 }
2114 }
2115
2116 #[inline]
2117 unsafe fn decode(
2118 &mut self,
2119 decoder: &mut fidl::encoding::Decoder<'_, D>,
2120 offset: usize,
2121 _depth: fidl::encoding::Depth,
2122 ) -> fidl::Result<()> {
2123 decoder.debug_check_bounds::<Self>(offset);
2124 fidl::decode!(
2126 fidl::encoding::BoundedString<255>,
2127 D,
2128 &mut self.name,
2129 decoder,
2130 offset + 0,
2131 _depth
2132 )?;
2133 fidl::decode!(
2134 fidl::encoding::BoundedString<64>,
2135 D,
2136 &mut self.key,
2137 decoder,
2138 offset + 16,
2139 _depth
2140 )?;
2141 fidl::decode!(
2142 fidl_fuchsia_component_decl::ConfigValueSpec,
2143 D,
2144 &mut self.value,
2145 decoder,
2146 offset + 32,
2147 _depth
2148 )?;
2149 Ok(())
2150 }
2151 }
2152
2153 impl fidl::encoding::ValueTypeMarker for RealmUseNestedComponentManagerRequest {
2154 type Borrowed<'a> = &'a Self;
2155 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2156 value
2157 }
2158 }
2159
2160 unsafe impl fidl::encoding::TypeMarker for RealmUseNestedComponentManagerRequest {
2161 type Owned = Self;
2162
2163 #[inline(always)]
2164 fn inline_align(_context: fidl::encoding::Context) -> usize {
2165 8
2166 }
2167
2168 #[inline(always)]
2169 fn inline_size(_context: fidl::encoding::Context) -> usize {
2170 16
2171 }
2172 }
2173
2174 unsafe impl<D: fidl::encoding::ResourceDialect>
2175 fidl::encoding::Encode<RealmUseNestedComponentManagerRequest, D>
2176 for &RealmUseNestedComponentManagerRequest
2177 {
2178 #[inline]
2179 unsafe fn encode(
2180 self,
2181 encoder: &mut fidl::encoding::Encoder<'_, D>,
2182 offset: usize,
2183 _depth: fidl::encoding::Depth,
2184 ) -> fidl::Result<()> {
2185 encoder.debug_check_bounds::<RealmUseNestedComponentManagerRequest>(offset);
2186 fidl::encoding::Encode::<RealmUseNestedComponentManagerRequest, D>::encode(
2188 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
2189 &self.component_manager_relative_url,
2190 ),),
2191 encoder,
2192 offset,
2193 _depth,
2194 )
2195 }
2196 }
2197 unsafe impl<
2198 D: fidl::encoding::ResourceDialect,
2199 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
2200 > fidl::encoding::Encode<RealmUseNestedComponentManagerRequest, D> for (T0,)
2201 {
2202 #[inline]
2203 unsafe fn encode(
2204 self,
2205 encoder: &mut fidl::encoding::Encoder<'_, D>,
2206 offset: usize,
2207 depth: fidl::encoding::Depth,
2208 ) -> fidl::Result<()> {
2209 encoder.debug_check_bounds::<RealmUseNestedComponentManagerRequest>(offset);
2210 self.0.encode(encoder, offset + 0, depth)?;
2214 Ok(())
2215 }
2216 }
2217
2218 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2219 for RealmUseNestedComponentManagerRequest
2220 {
2221 #[inline(always)]
2222 fn new_empty() -> Self {
2223 Self {
2224 component_manager_relative_url: fidl::new_empty!(
2225 fidl::encoding::BoundedString<4096>,
2226 D
2227 ),
2228 }
2229 }
2230
2231 #[inline]
2232 unsafe fn decode(
2233 &mut self,
2234 decoder: &mut fidl::encoding::Decoder<'_, D>,
2235 offset: usize,
2236 _depth: fidl::encoding::Depth,
2237 ) -> fidl::Result<()> {
2238 decoder.debug_check_bounds::<Self>(offset);
2239 fidl::decode!(
2241 fidl::encoding::BoundedString<4096>,
2242 D,
2243 &mut self.component_manager_relative_url,
2244 decoder,
2245 offset + 0,
2246 _depth
2247 )?;
2248 Ok(())
2249 }
2250 }
2251
2252 impl fidl::encoding::ValueTypeMarker for RealmGetComponentDeclResponse {
2253 type Borrowed<'a> = &'a Self;
2254 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2255 value
2256 }
2257 }
2258
2259 unsafe impl fidl::encoding::TypeMarker for RealmGetComponentDeclResponse {
2260 type Owned = Self;
2261
2262 #[inline(always)]
2263 fn inline_align(_context: fidl::encoding::Context) -> usize {
2264 8
2265 }
2266
2267 #[inline(always)]
2268 fn inline_size(_context: fidl::encoding::Context) -> usize {
2269 16
2270 }
2271 }
2272
2273 unsafe impl<D: fidl::encoding::ResourceDialect>
2274 fidl::encoding::Encode<RealmGetComponentDeclResponse, D>
2275 for &RealmGetComponentDeclResponse
2276 {
2277 #[inline]
2278 unsafe fn encode(
2279 self,
2280 encoder: &mut fidl::encoding::Encoder<'_, D>,
2281 offset: usize,
2282 _depth: fidl::encoding::Depth,
2283 ) -> fidl::Result<()> {
2284 encoder.debug_check_bounds::<RealmGetComponentDeclResponse>(offset);
2285 fidl::encoding::Encode::<RealmGetComponentDeclResponse, D>::encode(
2287 (
2288 <fidl_fuchsia_component_decl::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2289 ),
2290 encoder, offset, _depth
2291 )
2292 }
2293 }
2294 unsafe impl<
2295 D: fidl::encoding::ResourceDialect,
2296 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl::Component, D>,
2297 > fidl::encoding::Encode<RealmGetComponentDeclResponse, D> for (T0,)
2298 {
2299 #[inline]
2300 unsafe fn encode(
2301 self,
2302 encoder: &mut fidl::encoding::Encoder<'_, D>,
2303 offset: usize,
2304 depth: fidl::encoding::Depth,
2305 ) -> fidl::Result<()> {
2306 encoder.debug_check_bounds::<RealmGetComponentDeclResponse>(offset);
2307 self.0.encode(encoder, offset + 0, depth)?;
2311 Ok(())
2312 }
2313 }
2314
2315 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2316 for RealmGetComponentDeclResponse
2317 {
2318 #[inline(always)]
2319 fn new_empty() -> Self {
2320 Self { component_decl: fidl::new_empty!(fidl_fuchsia_component_decl::Component, D) }
2321 }
2322
2323 #[inline]
2324 unsafe fn decode(
2325 &mut self,
2326 decoder: &mut fidl::encoding::Decoder<'_, D>,
2327 offset: usize,
2328 _depth: fidl::encoding::Depth,
2329 ) -> fidl::Result<()> {
2330 decoder.debug_check_bounds::<Self>(offset);
2331 fidl::decode!(
2333 fidl_fuchsia_component_decl::Component,
2334 D,
2335 &mut self.component_decl,
2336 decoder,
2337 offset + 0,
2338 _depth
2339 )?;
2340 Ok(())
2341 }
2342 }
2343
2344 impl fidl::encoding::ValueTypeMarker for RealmGetRealmDeclResponse {
2345 type Borrowed<'a> = &'a Self;
2346 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2347 value
2348 }
2349 }
2350
2351 unsafe impl fidl::encoding::TypeMarker for RealmGetRealmDeclResponse {
2352 type Owned = Self;
2353
2354 #[inline(always)]
2355 fn inline_align(_context: fidl::encoding::Context) -> usize {
2356 8
2357 }
2358
2359 #[inline(always)]
2360 fn inline_size(_context: fidl::encoding::Context) -> usize {
2361 16
2362 }
2363 }
2364
2365 unsafe impl<D: fidl::encoding::ResourceDialect>
2366 fidl::encoding::Encode<RealmGetRealmDeclResponse, D> for &RealmGetRealmDeclResponse
2367 {
2368 #[inline]
2369 unsafe fn encode(
2370 self,
2371 encoder: &mut fidl::encoding::Encoder<'_, D>,
2372 offset: usize,
2373 _depth: fidl::encoding::Depth,
2374 ) -> fidl::Result<()> {
2375 encoder.debug_check_bounds::<RealmGetRealmDeclResponse>(offset);
2376 fidl::encoding::Encode::<RealmGetRealmDeclResponse, D>::encode(
2378 (
2379 <fidl_fuchsia_component_decl::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2380 ),
2381 encoder, offset, _depth
2382 )
2383 }
2384 }
2385 unsafe impl<
2386 D: fidl::encoding::ResourceDialect,
2387 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl::Component, D>,
2388 > fidl::encoding::Encode<RealmGetRealmDeclResponse, D> for (T0,)
2389 {
2390 #[inline]
2391 unsafe fn encode(
2392 self,
2393 encoder: &mut fidl::encoding::Encoder<'_, D>,
2394 offset: usize,
2395 depth: fidl::encoding::Depth,
2396 ) -> fidl::Result<()> {
2397 encoder.debug_check_bounds::<RealmGetRealmDeclResponse>(offset);
2398 self.0.encode(encoder, offset + 0, depth)?;
2402 Ok(())
2403 }
2404 }
2405
2406 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2407 for RealmGetRealmDeclResponse
2408 {
2409 #[inline(always)]
2410 fn new_empty() -> Self {
2411 Self { component_decl: fidl::new_empty!(fidl_fuchsia_component_decl::Component, D) }
2412 }
2413
2414 #[inline]
2415 unsafe fn decode(
2416 &mut self,
2417 decoder: &mut fidl::encoding::Decoder<'_, D>,
2418 offset: usize,
2419 _depth: fidl::encoding::Depth,
2420 ) -> fidl::Result<()> {
2421 decoder.debug_check_bounds::<Self>(offset);
2422 fidl::decode!(
2424 fidl_fuchsia_component_decl::Component,
2425 D,
2426 &mut self.component_decl,
2427 decoder,
2428 offset + 0,
2429 _depth
2430 )?;
2431 Ok(())
2432 }
2433 }
2434
2435 impl ChildOptions {
2436 #[inline(always)]
2437 fn max_ordinal_present(&self) -> u64 {
2438 if let Some(_) = self.config_overrides {
2439 return 4;
2440 }
2441 if let Some(_) = self.on_terminate {
2442 return 3;
2443 }
2444 if let Some(_) = self.environment {
2445 return 2;
2446 }
2447 if let Some(_) = self.startup {
2448 return 1;
2449 }
2450 0
2451 }
2452 }
2453
2454 impl fidl::encoding::ValueTypeMarker for ChildOptions {
2455 type Borrowed<'a> = &'a Self;
2456 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2457 value
2458 }
2459 }
2460
2461 unsafe impl fidl::encoding::TypeMarker for ChildOptions {
2462 type Owned = Self;
2463
2464 #[inline(always)]
2465 fn inline_align(_context: fidl::encoding::Context) -> usize {
2466 8
2467 }
2468
2469 #[inline(always)]
2470 fn inline_size(_context: fidl::encoding::Context) -> usize {
2471 16
2472 }
2473 }
2474
2475 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChildOptions, D>
2476 for &ChildOptions
2477 {
2478 unsafe fn encode(
2479 self,
2480 encoder: &mut fidl::encoding::Encoder<'_, D>,
2481 offset: usize,
2482 mut depth: fidl::encoding::Depth,
2483 ) -> fidl::Result<()> {
2484 encoder.debug_check_bounds::<ChildOptions>(offset);
2485 let max_ordinal: u64 = self.max_ordinal_present();
2487 encoder.write_num(max_ordinal, offset);
2488 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2489 if max_ordinal == 0 {
2491 return Ok(());
2492 }
2493 depth.increment()?;
2494 let envelope_size = 8;
2495 let bytes_len = max_ordinal as usize * envelope_size;
2496 #[allow(unused_variables)]
2497 let offset = encoder.out_of_line_offset(bytes_len);
2498 let mut _prev_end_offset: usize = 0;
2499 if 1 > max_ordinal {
2500 return Ok(());
2501 }
2502
2503 let cur_offset: usize = (1 - 1) * envelope_size;
2506
2507 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2509
2510 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::StartupMode, D>(
2515 self.startup.as_ref().map(<fidl_fuchsia_component_decl::StartupMode as fidl::encoding::ValueTypeMarker>::borrow),
2516 encoder, offset + cur_offset, depth
2517 )?;
2518
2519 _prev_end_offset = cur_offset + envelope_size;
2520 if 2 > max_ordinal {
2521 return Ok(());
2522 }
2523
2524 let cur_offset: usize = (2 - 1) * envelope_size;
2527
2528 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2530
2531 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
2536 self.environment.as_ref().map(
2537 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
2538 ),
2539 encoder,
2540 offset + cur_offset,
2541 depth,
2542 )?;
2543
2544 _prev_end_offset = cur_offset + envelope_size;
2545 if 3 > max_ordinal {
2546 return Ok(());
2547 }
2548
2549 let cur_offset: usize = (3 - 1) * envelope_size;
2552
2553 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2555
2556 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::OnTerminate, D>(
2561 self.on_terminate.as_ref().map(<fidl_fuchsia_component_decl::OnTerminate as fidl::encoding::ValueTypeMarker>::borrow),
2562 encoder, offset + cur_offset, depth
2563 )?;
2564
2565 _prev_end_offset = cur_offset + envelope_size;
2566 if 4 > max_ordinal {
2567 return Ok(());
2568 }
2569
2570 let cur_offset: usize = (4 - 1) * envelope_size;
2573
2574 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2576
2577 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::ConfigOverride>, D>(
2582 self.config_overrides.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::ConfigOverride> as fidl::encoding::ValueTypeMarker>::borrow),
2583 encoder, offset + cur_offset, depth
2584 )?;
2585
2586 _prev_end_offset = cur_offset + envelope_size;
2587
2588 Ok(())
2589 }
2590 }
2591
2592 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChildOptions {
2593 #[inline(always)]
2594 fn new_empty() -> Self {
2595 Self::default()
2596 }
2597
2598 unsafe fn decode(
2599 &mut self,
2600 decoder: &mut fidl::encoding::Decoder<'_, D>,
2601 offset: usize,
2602 mut depth: fidl::encoding::Depth,
2603 ) -> fidl::Result<()> {
2604 decoder.debug_check_bounds::<Self>(offset);
2605 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2606 None => return Err(fidl::Error::NotNullable),
2607 Some(len) => len,
2608 };
2609 if len == 0 {
2611 return Ok(());
2612 };
2613 depth.increment()?;
2614 let envelope_size = 8;
2615 let bytes_len = len * envelope_size;
2616 let offset = decoder.out_of_line_offset(bytes_len)?;
2617 let mut _next_ordinal_to_read = 0;
2619 let mut next_offset = offset;
2620 let end_offset = offset + bytes_len;
2621 _next_ordinal_to_read += 1;
2622 if next_offset >= end_offset {
2623 return Ok(());
2624 }
2625
2626 while _next_ordinal_to_read < 1 {
2628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2629 _next_ordinal_to_read += 1;
2630 next_offset += envelope_size;
2631 }
2632
2633 let next_out_of_line = decoder.next_out_of_line();
2634 let handles_before = decoder.remaining_handles();
2635 if let Some((inlined, num_bytes, num_handles)) =
2636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2637 {
2638 let member_inline_size = <fidl_fuchsia_component_decl::StartupMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2639 if inlined != (member_inline_size <= 4) {
2640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2641 }
2642 let inner_offset;
2643 let mut inner_depth = depth.clone();
2644 if inlined {
2645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2646 inner_offset = next_offset;
2647 } else {
2648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2649 inner_depth.increment()?;
2650 }
2651 let val_ref = self.startup.get_or_insert_with(|| {
2652 fidl::new_empty!(fidl_fuchsia_component_decl::StartupMode, D)
2653 });
2654 fidl::decode!(
2655 fidl_fuchsia_component_decl::StartupMode,
2656 D,
2657 val_ref,
2658 decoder,
2659 inner_offset,
2660 inner_depth
2661 )?;
2662 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2663 {
2664 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2665 }
2666 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2667 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2668 }
2669 }
2670
2671 next_offset += envelope_size;
2672 _next_ordinal_to_read += 1;
2673 if next_offset >= end_offset {
2674 return Ok(());
2675 }
2676
2677 while _next_ordinal_to_read < 2 {
2679 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2680 _next_ordinal_to_read += 1;
2681 next_offset += envelope_size;
2682 }
2683
2684 let next_out_of_line = decoder.next_out_of_line();
2685 let handles_before = decoder.remaining_handles();
2686 if let Some((inlined, num_bytes, num_handles)) =
2687 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2688 {
2689 let member_inline_size =
2690 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
2691 decoder.context,
2692 );
2693 if inlined != (member_inline_size <= 4) {
2694 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2695 }
2696 let inner_offset;
2697 let mut inner_depth = depth.clone();
2698 if inlined {
2699 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2700 inner_offset = next_offset;
2701 } else {
2702 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2703 inner_depth.increment()?;
2704 }
2705 let val_ref = self
2706 .environment
2707 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
2708 fidl::decode!(
2709 fidl::encoding::BoundedString<255>,
2710 D,
2711 val_ref,
2712 decoder,
2713 inner_offset,
2714 inner_depth
2715 )?;
2716 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2717 {
2718 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2719 }
2720 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2721 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2722 }
2723 }
2724
2725 next_offset += envelope_size;
2726 _next_ordinal_to_read += 1;
2727 if next_offset >= end_offset {
2728 return Ok(());
2729 }
2730
2731 while _next_ordinal_to_read < 3 {
2733 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2734 _next_ordinal_to_read += 1;
2735 next_offset += envelope_size;
2736 }
2737
2738 let next_out_of_line = decoder.next_out_of_line();
2739 let handles_before = decoder.remaining_handles();
2740 if let Some((inlined, num_bytes, num_handles)) =
2741 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2742 {
2743 let member_inline_size = <fidl_fuchsia_component_decl::OnTerminate as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2744 if inlined != (member_inline_size <= 4) {
2745 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2746 }
2747 let inner_offset;
2748 let mut inner_depth = depth.clone();
2749 if inlined {
2750 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2751 inner_offset = next_offset;
2752 } else {
2753 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2754 inner_depth.increment()?;
2755 }
2756 let val_ref = self.on_terminate.get_or_insert_with(|| {
2757 fidl::new_empty!(fidl_fuchsia_component_decl::OnTerminate, D)
2758 });
2759 fidl::decode!(
2760 fidl_fuchsia_component_decl::OnTerminate,
2761 D,
2762 val_ref,
2763 decoder,
2764 inner_offset,
2765 inner_depth
2766 )?;
2767 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2768 {
2769 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2770 }
2771 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2772 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2773 }
2774 }
2775
2776 next_offset += envelope_size;
2777 _next_ordinal_to_read += 1;
2778 if next_offset >= end_offset {
2779 return Ok(());
2780 }
2781
2782 while _next_ordinal_to_read < 4 {
2784 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2785 _next_ordinal_to_read += 1;
2786 next_offset += envelope_size;
2787 }
2788
2789 let next_out_of_line = decoder.next_out_of_line();
2790 let handles_before = decoder.remaining_handles();
2791 if let Some((inlined, num_bytes, num_handles)) =
2792 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2793 {
2794 let member_inline_size = <fidl::encoding::UnboundedVector<
2795 fidl_fuchsia_component_decl::ConfigOverride,
2796 > as fidl::encoding::TypeMarker>::inline_size(
2797 decoder.context
2798 );
2799 if inlined != (member_inline_size <= 4) {
2800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2801 }
2802 let inner_offset;
2803 let mut inner_depth = depth.clone();
2804 if inlined {
2805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2806 inner_offset = next_offset;
2807 } else {
2808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2809 inner_depth.increment()?;
2810 }
2811 let val_ref = self.config_overrides.get_or_insert_with(|| {
2812 fidl::new_empty!(
2813 fidl::encoding::UnboundedVector<
2814 fidl_fuchsia_component_decl::ConfigOverride,
2815 >,
2816 D
2817 )
2818 });
2819 fidl::decode!(
2820 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::ConfigOverride>,
2821 D,
2822 val_ref,
2823 decoder,
2824 inner_offset,
2825 inner_depth
2826 )?;
2827 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2828 {
2829 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2830 }
2831 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2832 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2833 }
2834 }
2835
2836 next_offset += envelope_size;
2837
2838 while next_offset < end_offset {
2840 _next_ordinal_to_read += 1;
2841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2842 next_offset += envelope_size;
2843 }
2844
2845 Ok(())
2846 }
2847 }
2848
2849 impl Config {
2850 #[inline(always)]
2851 fn max_ordinal_present(&self) -> u64 {
2852 if let Some(_) = self.availability {
2853 return 3;
2854 }
2855 if let Some(_) = self.as_ {
2856 return 2;
2857 }
2858 if let Some(_) = self.name {
2859 return 1;
2860 }
2861 0
2862 }
2863 }
2864
2865 impl fidl::encoding::ValueTypeMarker for Config {
2866 type Borrowed<'a> = &'a Self;
2867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2868 value
2869 }
2870 }
2871
2872 unsafe impl fidl::encoding::TypeMarker for Config {
2873 type Owned = Self;
2874
2875 #[inline(always)]
2876 fn inline_align(_context: fidl::encoding::Context) -> usize {
2877 8
2878 }
2879
2880 #[inline(always)]
2881 fn inline_size(_context: fidl::encoding::Context) -> usize {
2882 16
2883 }
2884 }
2885
2886 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
2887 unsafe fn encode(
2888 self,
2889 encoder: &mut fidl::encoding::Encoder<'_, D>,
2890 offset: usize,
2891 mut depth: fidl::encoding::Depth,
2892 ) -> fidl::Result<()> {
2893 encoder.debug_check_bounds::<Config>(offset);
2894 let max_ordinal: u64 = self.max_ordinal_present();
2896 encoder.write_num(max_ordinal, offset);
2897 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2898 if max_ordinal == 0 {
2900 return Ok(());
2901 }
2902 depth.increment()?;
2903 let envelope_size = 8;
2904 let bytes_len = max_ordinal as usize * envelope_size;
2905 #[allow(unused_variables)]
2906 let offset = encoder.out_of_line_offset(bytes_len);
2907 let mut _prev_end_offset: usize = 0;
2908 if 1 > max_ordinal {
2909 return Ok(());
2910 }
2911
2912 let cur_offset: usize = (1 - 1) * envelope_size;
2915
2916 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2918
2919 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
2924 self.name.as_ref().map(
2925 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
2926 ),
2927 encoder,
2928 offset + cur_offset,
2929 depth,
2930 )?;
2931
2932 _prev_end_offset = cur_offset + envelope_size;
2933 if 2 > max_ordinal {
2934 return Ok(());
2935 }
2936
2937 let cur_offset: usize = (2 - 1) * envelope_size;
2940
2941 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2943
2944 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
2949 self.as_.as_ref().map(
2950 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
2951 ),
2952 encoder,
2953 offset + cur_offset,
2954 depth,
2955 )?;
2956
2957 _prev_end_offset = cur_offset + envelope_size;
2958 if 3 > max_ordinal {
2959 return Ok(());
2960 }
2961
2962 let cur_offset: usize = (3 - 1) * envelope_size;
2965
2966 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2968
2969 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::Availability, D>(
2974 self.availability.as_ref().map(<fidl_fuchsia_component_decl::Availability as fidl::encoding::ValueTypeMarker>::borrow),
2975 encoder, offset + cur_offset, depth
2976 )?;
2977
2978 _prev_end_offset = cur_offset + envelope_size;
2979
2980 Ok(())
2981 }
2982 }
2983
2984 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
2985 #[inline(always)]
2986 fn new_empty() -> Self {
2987 Self::default()
2988 }
2989
2990 unsafe fn decode(
2991 &mut self,
2992 decoder: &mut fidl::encoding::Decoder<'_, D>,
2993 offset: usize,
2994 mut depth: fidl::encoding::Depth,
2995 ) -> fidl::Result<()> {
2996 decoder.debug_check_bounds::<Self>(offset);
2997 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2998 None => return Err(fidl::Error::NotNullable),
2999 Some(len) => len,
3000 };
3001 if len == 0 {
3003 return Ok(());
3004 };
3005 depth.increment()?;
3006 let envelope_size = 8;
3007 let bytes_len = len * envelope_size;
3008 let offset = decoder.out_of_line_offset(bytes_len)?;
3009 let mut _next_ordinal_to_read = 0;
3011 let mut next_offset = offset;
3012 let end_offset = offset + bytes_len;
3013 _next_ordinal_to_read += 1;
3014 if next_offset >= end_offset {
3015 return Ok(());
3016 }
3017
3018 while _next_ordinal_to_read < 1 {
3020 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3021 _next_ordinal_to_read += 1;
3022 next_offset += envelope_size;
3023 }
3024
3025 let next_out_of_line = decoder.next_out_of_line();
3026 let handles_before = decoder.remaining_handles();
3027 if let Some((inlined, num_bytes, num_handles)) =
3028 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3029 {
3030 let member_inline_size =
3031 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3032 decoder.context,
3033 );
3034 if inlined != (member_inline_size <= 4) {
3035 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3036 }
3037 let inner_offset;
3038 let mut inner_depth = depth.clone();
3039 if inlined {
3040 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3041 inner_offset = next_offset;
3042 } else {
3043 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3044 inner_depth.increment()?;
3045 }
3046 let val_ref = self
3047 .name
3048 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3049 fidl::decode!(
3050 fidl::encoding::BoundedString<255>,
3051 D,
3052 val_ref,
3053 decoder,
3054 inner_offset,
3055 inner_depth
3056 )?;
3057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3058 {
3059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3060 }
3061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3063 }
3064 }
3065
3066 next_offset += envelope_size;
3067 _next_ordinal_to_read += 1;
3068 if next_offset >= end_offset {
3069 return Ok(());
3070 }
3071
3072 while _next_ordinal_to_read < 2 {
3074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3075 _next_ordinal_to_read += 1;
3076 next_offset += envelope_size;
3077 }
3078
3079 let next_out_of_line = decoder.next_out_of_line();
3080 let handles_before = decoder.remaining_handles();
3081 if let Some((inlined, num_bytes, num_handles)) =
3082 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3083 {
3084 let member_inline_size =
3085 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3086 decoder.context,
3087 );
3088 if inlined != (member_inline_size <= 4) {
3089 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3090 }
3091 let inner_offset;
3092 let mut inner_depth = depth.clone();
3093 if inlined {
3094 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3095 inner_offset = next_offset;
3096 } else {
3097 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3098 inner_depth.increment()?;
3099 }
3100 let val_ref = self
3101 .as_
3102 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3103 fidl::decode!(
3104 fidl::encoding::BoundedString<255>,
3105 D,
3106 val_ref,
3107 decoder,
3108 inner_offset,
3109 inner_depth
3110 )?;
3111 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3112 {
3113 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3114 }
3115 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3116 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3117 }
3118 }
3119
3120 next_offset += envelope_size;
3121 _next_ordinal_to_read += 1;
3122 if next_offset >= end_offset {
3123 return Ok(());
3124 }
3125
3126 while _next_ordinal_to_read < 3 {
3128 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3129 _next_ordinal_to_read += 1;
3130 next_offset += envelope_size;
3131 }
3132
3133 let next_out_of_line = decoder.next_out_of_line();
3134 let handles_before = decoder.remaining_handles();
3135 if let Some((inlined, num_bytes, num_handles)) =
3136 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3137 {
3138 let member_inline_size = <fidl_fuchsia_component_decl::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3139 if inlined != (member_inline_size <= 4) {
3140 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3141 }
3142 let inner_offset;
3143 let mut inner_depth = depth.clone();
3144 if inlined {
3145 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3146 inner_offset = next_offset;
3147 } else {
3148 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3149 inner_depth.increment()?;
3150 }
3151 let val_ref = self.availability.get_or_insert_with(|| {
3152 fidl::new_empty!(fidl_fuchsia_component_decl::Availability, D)
3153 });
3154 fidl::decode!(
3155 fidl_fuchsia_component_decl::Availability,
3156 D,
3157 val_ref,
3158 decoder,
3159 inner_offset,
3160 inner_depth
3161 )?;
3162 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3163 {
3164 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3165 }
3166 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3167 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3168 }
3169 }
3170
3171 next_offset += envelope_size;
3172
3173 while next_offset < end_offset {
3175 _next_ordinal_to_read += 1;
3176 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3177 next_offset += envelope_size;
3178 }
3179
3180 Ok(())
3181 }
3182 }
3183
3184 impl Dictionary {
3185 #[inline(always)]
3186 fn max_ordinal_present(&self) -> u64 {
3187 if let Some(_) = self.from_dictionary {
3188 return 5;
3189 }
3190 if let Some(_) = self.availability {
3191 return 4;
3192 }
3193 if let Some(_) = self.type_ {
3194 return 3;
3195 }
3196 if let Some(_) = self.as_ {
3197 return 2;
3198 }
3199 if let Some(_) = self.name {
3200 return 1;
3201 }
3202 0
3203 }
3204 }
3205
3206 impl fidl::encoding::ValueTypeMarker for Dictionary {
3207 type Borrowed<'a> = &'a Self;
3208 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3209 value
3210 }
3211 }
3212
3213 unsafe impl fidl::encoding::TypeMarker for Dictionary {
3214 type Owned = Self;
3215
3216 #[inline(always)]
3217 fn inline_align(_context: fidl::encoding::Context) -> usize {
3218 8
3219 }
3220
3221 #[inline(always)]
3222 fn inline_size(_context: fidl::encoding::Context) -> usize {
3223 16
3224 }
3225 }
3226
3227 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Dictionary, D>
3228 for &Dictionary
3229 {
3230 unsafe fn encode(
3231 self,
3232 encoder: &mut fidl::encoding::Encoder<'_, D>,
3233 offset: usize,
3234 mut depth: fidl::encoding::Depth,
3235 ) -> fidl::Result<()> {
3236 encoder.debug_check_bounds::<Dictionary>(offset);
3237 let max_ordinal: u64 = self.max_ordinal_present();
3239 encoder.write_num(max_ordinal, offset);
3240 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3241 if max_ordinal == 0 {
3243 return Ok(());
3244 }
3245 depth.increment()?;
3246 let envelope_size = 8;
3247 let bytes_len = max_ordinal as usize * envelope_size;
3248 #[allow(unused_variables)]
3249 let offset = encoder.out_of_line_offset(bytes_len);
3250 let mut _prev_end_offset: usize = 0;
3251 if 1 > max_ordinal {
3252 return Ok(());
3253 }
3254
3255 let cur_offset: usize = (1 - 1) * envelope_size;
3258
3259 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3261
3262 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3267 self.name.as_ref().map(
3268 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3269 ),
3270 encoder,
3271 offset + cur_offset,
3272 depth,
3273 )?;
3274
3275 _prev_end_offset = cur_offset + envelope_size;
3276 if 2 > max_ordinal {
3277 return Ok(());
3278 }
3279
3280 let cur_offset: usize = (2 - 1) * envelope_size;
3283
3284 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3286
3287 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3292 self.as_.as_ref().map(
3293 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3294 ),
3295 encoder,
3296 offset + cur_offset,
3297 depth,
3298 )?;
3299
3300 _prev_end_offset = cur_offset + envelope_size;
3301 if 3 > max_ordinal {
3302 return Ok(());
3303 }
3304
3305 let cur_offset: usize = (3 - 1) * envelope_size;
3308
3309 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3311
3312 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::DependencyType, D>(
3317 self.type_.as_ref().map(<fidl_fuchsia_component_decl::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
3318 encoder, offset + cur_offset, depth
3319 )?;
3320
3321 _prev_end_offset = cur_offset + envelope_size;
3322 if 4 > max_ordinal {
3323 return Ok(());
3324 }
3325
3326 let cur_offset: usize = (4 - 1) * envelope_size;
3329
3330 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3332
3333 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::Availability, D>(
3338 self.availability.as_ref().map(<fidl_fuchsia_component_decl::Availability as fidl::encoding::ValueTypeMarker>::borrow),
3339 encoder, offset + cur_offset, depth
3340 )?;
3341
3342 _prev_end_offset = cur_offset + envelope_size;
3343 if 5 > max_ordinal {
3344 return Ok(());
3345 }
3346
3347 let cur_offset: usize = (5 - 1) * envelope_size;
3350
3351 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3353
3354 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3359 self.from_dictionary.as_ref().map(
3360 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3361 ),
3362 encoder,
3363 offset + cur_offset,
3364 depth,
3365 )?;
3366
3367 _prev_end_offset = cur_offset + envelope_size;
3368
3369 Ok(())
3370 }
3371 }
3372
3373 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Dictionary {
3374 #[inline(always)]
3375 fn new_empty() -> Self {
3376 Self::default()
3377 }
3378
3379 unsafe fn decode(
3380 &mut self,
3381 decoder: &mut fidl::encoding::Decoder<'_, D>,
3382 offset: usize,
3383 mut depth: fidl::encoding::Depth,
3384 ) -> fidl::Result<()> {
3385 decoder.debug_check_bounds::<Self>(offset);
3386 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3387 None => return Err(fidl::Error::NotNullable),
3388 Some(len) => len,
3389 };
3390 if len == 0 {
3392 return Ok(());
3393 };
3394 depth.increment()?;
3395 let envelope_size = 8;
3396 let bytes_len = len * envelope_size;
3397 let offset = decoder.out_of_line_offset(bytes_len)?;
3398 let mut _next_ordinal_to_read = 0;
3400 let mut next_offset = offset;
3401 let end_offset = offset + bytes_len;
3402 _next_ordinal_to_read += 1;
3403 if next_offset >= end_offset {
3404 return Ok(());
3405 }
3406
3407 while _next_ordinal_to_read < 1 {
3409 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3410 _next_ordinal_to_read += 1;
3411 next_offset += envelope_size;
3412 }
3413
3414 let next_out_of_line = decoder.next_out_of_line();
3415 let handles_before = decoder.remaining_handles();
3416 if let Some((inlined, num_bytes, num_handles)) =
3417 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3418 {
3419 let member_inline_size =
3420 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3421 decoder.context,
3422 );
3423 if inlined != (member_inline_size <= 4) {
3424 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3425 }
3426 let inner_offset;
3427 let mut inner_depth = depth.clone();
3428 if inlined {
3429 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3430 inner_offset = next_offset;
3431 } else {
3432 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3433 inner_depth.increment()?;
3434 }
3435 let val_ref = self
3436 .name
3437 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3438 fidl::decode!(
3439 fidl::encoding::BoundedString<255>,
3440 D,
3441 val_ref,
3442 decoder,
3443 inner_offset,
3444 inner_depth
3445 )?;
3446 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3447 {
3448 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3449 }
3450 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3451 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3452 }
3453 }
3454
3455 next_offset += envelope_size;
3456 _next_ordinal_to_read += 1;
3457 if next_offset >= end_offset {
3458 return Ok(());
3459 }
3460
3461 while _next_ordinal_to_read < 2 {
3463 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3464 _next_ordinal_to_read += 1;
3465 next_offset += envelope_size;
3466 }
3467
3468 let next_out_of_line = decoder.next_out_of_line();
3469 let handles_before = decoder.remaining_handles();
3470 if let Some((inlined, num_bytes, num_handles)) =
3471 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3472 {
3473 let member_inline_size =
3474 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3475 decoder.context,
3476 );
3477 if inlined != (member_inline_size <= 4) {
3478 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3479 }
3480 let inner_offset;
3481 let mut inner_depth = depth.clone();
3482 if inlined {
3483 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3484 inner_offset = next_offset;
3485 } else {
3486 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3487 inner_depth.increment()?;
3488 }
3489 let val_ref = self
3490 .as_
3491 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3492 fidl::decode!(
3493 fidl::encoding::BoundedString<255>,
3494 D,
3495 val_ref,
3496 decoder,
3497 inner_offset,
3498 inner_depth
3499 )?;
3500 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3501 {
3502 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3503 }
3504 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3505 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3506 }
3507 }
3508
3509 next_offset += envelope_size;
3510 _next_ordinal_to_read += 1;
3511 if next_offset >= end_offset {
3512 return Ok(());
3513 }
3514
3515 while _next_ordinal_to_read < 3 {
3517 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3518 _next_ordinal_to_read += 1;
3519 next_offset += envelope_size;
3520 }
3521
3522 let next_out_of_line = decoder.next_out_of_line();
3523 let handles_before = decoder.remaining_handles();
3524 if let Some((inlined, num_bytes, num_handles)) =
3525 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3526 {
3527 let member_inline_size = <fidl_fuchsia_component_decl::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3528 if inlined != (member_inline_size <= 4) {
3529 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3530 }
3531 let inner_offset;
3532 let mut inner_depth = depth.clone();
3533 if inlined {
3534 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3535 inner_offset = next_offset;
3536 } else {
3537 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3538 inner_depth.increment()?;
3539 }
3540 let val_ref = self.type_.get_or_insert_with(|| {
3541 fidl::new_empty!(fidl_fuchsia_component_decl::DependencyType, D)
3542 });
3543 fidl::decode!(
3544 fidl_fuchsia_component_decl::DependencyType,
3545 D,
3546 val_ref,
3547 decoder,
3548 inner_offset,
3549 inner_depth
3550 )?;
3551 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3552 {
3553 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3554 }
3555 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3556 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3557 }
3558 }
3559
3560 next_offset += envelope_size;
3561 _next_ordinal_to_read += 1;
3562 if next_offset >= end_offset {
3563 return Ok(());
3564 }
3565
3566 while _next_ordinal_to_read < 4 {
3568 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3569 _next_ordinal_to_read += 1;
3570 next_offset += envelope_size;
3571 }
3572
3573 let next_out_of_line = decoder.next_out_of_line();
3574 let handles_before = decoder.remaining_handles();
3575 if let Some((inlined, num_bytes, num_handles)) =
3576 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3577 {
3578 let member_inline_size = <fidl_fuchsia_component_decl::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3579 if inlined != (member_inline_size <= 4) {
3580 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3581 }
3582 let inner_offset;
3583 let mut inner_depth = depth.clone();
3584 if inlined {
3585 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3586 inner_offset = next_offset;
3587 } else {
3588 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3589 inner_depth.increment()?;
3590 }
3591 let val_ref = self.availability.get_or_insert_with(|| {
3592 fidl::new_empty!(fidl_fuchsia_component_decl::Availability, D)
3593 });
3594 fidl::decode!(
3595 fidl_fuchsia_component_decl::Availability,
3596 D,
3597 val_ref,
3598 decoder,
3599 inner_offset,
3600 inner_depth
3601 )?;
3602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3603 {
3604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3605 }
3606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3608 }
3609 }
3610
3611 next_offset += envelope_size;
3612 _next_ordinal_to_read += 1;
3613 if next_offset >= end_offset {
3614 return Ok(());
3615 }
3616
3617 while _next_ordinal_to_read < 5 {
3619 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3620 _next_ordinal_to_read += 1;
3621 next_offset += envelope_size;
3622 }
3623
3624 let next_out_of_line = decoder.next_out_of_line();
3625 let handles_before = decoder.remaining_handles();
3626 if let Some((inlined, num_bytes, num_handles)) =
3627 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3628 {
3629 let member_inline_size =
3630 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3631 decoder.context,
3632 );
3633 if inlined != (member_inline_size <= 4) {
3634 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3635 }
3636 let inner_offset;
3637 let mut inner_depth = depth.clone();
3638 if inlined {
3639 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3640 inner_offset = next_offset;
3641 } else {
3642 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3643 inner_depth.increment()?;
3644 }
3645 let val_ref = self
3646 .from_dictionary
3647 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3648 fidl::decode!(
3649 fidl::encoding::UnboundedString,
3650 D,
3651 val_ref,
3652 decoder,
3653 inner_offset,
3654 inner_depth
3655 )?;
3656 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3657 {
3658 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3659 }
3660 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3661 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3662 }
3663 }
3664
3665 next_offset += envelope_size;
3666
3667 while next_offset < end_offset {
3669 _next_ordinal_to_read += 1;
3670 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3671 next_offset += envelope_size;
3672 }
3673
3674 Ok(())
3675 }
3676 }
3677
3678 impl Directory {
3679 #[inline(always)]
3680 fn max_ordinal_present(&self) -> u64 {
3681 if let Some(_) = self.from_dictionary {
3682 return 8;
3683 }
3684 if let Some(_) = self.availability {
3685 return 7;
3686 }
3687 if let Some(_) = self.path {
3688 return 6;
3689 }
3690 if let Some(_) = self.rights {
3691 return 5;
3692 }
3693 if let Some(_) = self.subdir {
3694 return 4;
3695 }
3696 if let Some(_) = self.type_ {
3697 return 3;
3698 }
3699 if let Some(_) = self.as_ {
3700 return 2;
3701 }
3702 if let Some(_) = self.name {
3703 return 1;
3704 }
3705 0
3706 }
3707 }
3708
3709 impl fidl::encoding::ValueTypeMarker for Directory {
3710 type Borrowed<'a> = &'a Self;
3711 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3712 value
3713 }
3714 }
3715
3716 unsafe impl fidl::encoding::TypeMarker for Directory {
3717 type Owned = Self;
3718
3719 #[inline(always)]
3720 fn inline_align(_context: fidl::encoding::Context) -> usize {
3721 8
3722 }
3723
3724 #[inline(always)]
3725 fn inline_size(_context: fidl::encoding::Context) -> usize {
3726 16
3727 }
3728 }
3729
3730 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Directory, D>
3731 for &Directory
3732 {
3733 unsafe fn encode(
3734 self,
3735 encoder: &mut fidl::encoding::Encoder<'_, D>,
3736 offset: usize,
3737 mut depth: fidl::encoding::Depth,
3738 ) -> fidl::Result<()> {
3739 encoder.debug_check_bounds::<Directory>(offset);
3740 let max_ordinal: u64 = self.max_ordinal_present();
3742 encoder.write_num(max_ordinal, offset);
3743 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3744 if max_ordinal == 0 {
3746 return Ok(());
3747 }
3748 depth.increment()?;
3749 let envelope_size = 8;
3750 let bytes_len = max_ordinal as usize * envelope_size;
3751 #[allow(unused_variables)]
3752 let offset = encoder.out_of_line_offset(bytes_len);
3753 let mut _prev_end_offset: usize = 0;
3754 if 1 > max_ordinal {
3755 return Ok(());
3756 }
3757
3758 let cur_offset: usize = (1 - 1) * envelope_size;
3761
3762 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3764
3765 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3770 self.name.as_ref().map(
3771 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3772 ),
3773 encoder,
3774 offset + cur_offset,
3775 depth,
3776 )?;
3777
3778 _prev_end_offset = cur_offset + envelope_size;
3779 if 2 > max_ordinal {
3780 return Ok(());
3781 }
3782
3783 let cur_offset: usize = (2 - 1) * envelope_size;
3786
3787 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3789
3790 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3795 self.as_.as_ref().map(
3796 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3797 ),
3798 encoder,
3799 offset + cur_offset,
3800 depth,
3801 )?;
3802
3803 _prev_end_offset = cur_offset + envelope_size;
3804 if 3 > max_ordinal {
3805 return Ok(());
3806 }
3807
3808 let cur_offset: usize = (3 - 1) * envelope_size;
3811
3812 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3814
3815 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::DependencyType, D>(
3820 self.type_.as_ref().map(<fidl_fuchsia_component_decl::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
3821 encoder, offset + cur_offset, depth
3822 )?;
3823
3824 _prev_end_offset = cur_offset + envelope_size;
3825 if 4 > max_ordinal {
3826 return Ok(());
3827 }
3828
3829 let cur_offset: usize = (4 - 1) * envelope_size;
3832
3833 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3835
3836 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
3841 self.subdir.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
3842 encoder, offset + cur_offset, depth
3843 )?;
3844
3845 _prev_end_offset = cur_offset + envelope_size;
3846 if 5 > max_ordinal {
3847 return Ok(());
3848 }
3849
3850 let cur_offset: usize = (5 - 1) * envelope_size;
3853
3854 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3856
3857 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io::Operations, D>(
3862 self.rights
3863 .as_ref()
3864 .map(<fidl_fuchsia_io::Operations as fidl::encoding::ValueTypeMarker>::borrow),
3865 encoder,
3866 offset + cur_offset,
3867 depth,
3868 )?;
3869
3870 _prev_end_offset = cur_offset + envelope_size;
3871 if 6 > max_ordinal {
3872 return Ok(());
3873 }
3874
3875 let cur_offset: usize = (6 - 1) * envelope_size;
3878
3879 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3881
3882 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
3887 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
3888 encoder, offset + cur_offset, depth
3889 )?;
3890
3891 _prev_end_offset = cur_offset + envelope_size;
3892 if 7 > max_ordinal {
3893 return Ok(());
3894 }
3895
3896 let cur_offset: usize = (7 - 1) * envelope_size;
3899
3900 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3902
3903 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::Availability, D>(
3908 self.availability.as_ref().map(<fidl_fuchsia_component_decl::Availability as fidl::encoding::ValueTypeMarker>::borrow),
3909 encoder, offset + cur_offset, depth
3910 )?;
3911
3912 _prev_end_offset = cur_offset + envelope_size;
3913 if 8 > max_ordinal {
3914 return Ok(());
3915 }
3916
3917 let cur_offset: usize = (8 - 1) * envelope_size;
3920
3921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3923
3924 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3929 self.from_dictionary.as_ref().map(
3930 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3931 ),
3932 encoder,
3933 offset + cur_offset,
3934 depth,
3935 )?;
3936
3937 _prev_end_offset = cur_offset + envelope_size;
3938
3939 Ok(())
3940 }
3941 }
3942
3943 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Directory {
3944 #[inline(always)]
3945 fn new_empty() -> Self {
3946 Self::default()
3947 }
3948
3949 unsafe fn decode(
3950 &mut self,
3951 decoder: &mut fidl::encoding::Decoder<'_, D>,
3952 offset: usize,
3953 mut depth: fidl::encoding::Depth,
3954 ) -> fidl::Result<()> {
3955 decoder.debug_check_bounds::<Self>(offset);
3956 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3957 None => return Err(fidl::Error::NotNullable),
3958 Some(len) => len,
3959 };
3960 if len == 0 {
3962 return Ok(());
3963 };
3964 depth.increment()?;
3965 let envelope_size = 8;
3966 let bytes_len = len * envelope_size;
3967 let offset = decoder.out_of_line_offset(bytes_len)?;
3968 let mut _next_ordinal_to_read = 0;
3970 let mut next_offset = offset;
3971 let end_offset = offset + bytes_len;
3972 _next_ordinal_to_read += 1;
3973 if next_offset >= end_offset {
3974 return Ok(());
3975 }
3976
3977 while _next_ordinal_to_read < 1 {
3979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3980 _next_ordinal_to_read += 1;
3981 next_offset += envelope_size;
3982 }
3983
3984 let next_out_of_line = decoder.next_out_of_line();
3985 let handles_before = decoder.remaining_handles();
3986 if let Some((inlined, num_bytes, num_handles)) =
3987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3988 {
3989 let member_inline_size =
3990 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3991 decoder.context,
3992 );
3993 if inlined != (member_inline_size <= 4) {
3994 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3995 }
3996 let inner_offset;
3997 let mut inner_depth = depth.clone();
3998 if inlined {
3999 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4000 inner_offset = next_offset;
4001 } else {
4002 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4003 inner_depth.increment()?;
4004 }
4005 let val_ref = self
4006 .name
4007 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4008 fidl::decode!(
4009 fidl::encoding::BoundedString<255>,
4010 D,
4011 val_ref,
4012 decoder,
4013 inner_offset,
4014 inner_depth
4015 )?;
4016 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4017 {
4018 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4019 }
4020 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4021 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4022 }
4023 }
4024
4025 next_offset += envelope_size;
4026 _next_ordinal_to_read += 1;
4027 if next_offset >= end_offset {
4028 return Ok(());
4029 }
4030
4031 while _next_ordinal_to_read < 2 {
4033 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4034 _next_ordinal_to_read += 1;
4035 next_offset += envelope_size;
4036 }
4037
4038 let next_out_of_line = decoder.next_out_of_line();
4039 let handles_before = decoder.remaining_handles();
4040 if let Some((inlined, num_bytes, num_handles)) =
4041 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4042 {
4043 let member_inline_size =
4044 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4045 decoder.context,
4046 );
4047 if inlined != (member_inline_size <= 4) {
4048 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4049 }
4050 let inner_offset;
4051 let mut inner_depth = depth.clone();
4052 if inlined {
4053 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4054 inner_offset = next_offset;
4055 } else {
4056 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4057 inner_depth.increment()?;
4058 }
4059 let val_ref = self
4060 .as_
4061 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4062 fidl::decode!(
4063 fidl::encoding::BoundedString<255>,
4064 D,
4065 val_ref,
4066 decoder,
4067 inner_offset,
4068 inner_depth
4069 )?;
4070 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4071 {
4072 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4073 }
4074 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4075 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4076 }
4077 }
4078
4079 next_offset += envelope_size;
4080 _next_ordinal_to_read += 1;
4081 if next_offset >= end_offset {
4082 return Ok(());
4083 }
4084
4085 while _next_ordinal_to_read < 3 {
4087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4088 _next_ordinal_to_read += 1;
4089 next_offset += envelope_size;
4090 }
4091
4092 let next_out_of_line = decoder.next_out_of_line();
4093 let handles_before = decoder.remaining_handles();
4094 if let Some((inlined, num_bytes, num_handles)) =
4095 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4096 {
4097 let member_inline_size = <fidl_fuchsia_component_decl::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4098 if inlined != (member_inline_size <= 4) {
4099 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4100 }
4101 let inner_offset;
4102 let mut inner_depth = depth.clone();
4103 if inlined {
4104 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4105 inner_offset = next_offset;
4106 } else {
4107 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4108 inner_depth.increment()?;
4109 }
4110 let val_ref = self.type_.get_or_insert_with(|| {
4111 fidl::new_empty!(fidl_fuchsia_component_decl::DependencyType, D)
4112 });
4113 fidl::decode!(
4114 fidl_fuchsia_component_decl::DependencyType,
4115 D,
4116 val_ref,
4117 decoder,
4118 inner_offset,
4119 inner_depth
4120 )?;
4121 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4122 {
4123 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4124 }
4125 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4126 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4127 }
4128 }
4129
4130 next_offset += envelope_size;
4131 _next_ordinal_to_read += 1;
4132 if next_offset >= end_offset {
4133 return Ok(());
4134 }
4135
4136 while _next_ordinal_to_read < 4 {
4138 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4139 _next_ordinal_to_read += 1;
4140 next_offset += envelope_size;
4141 }
4142
4143 let next_out_of_line = decoder.next_out_of_line();
4144 let handles_before = decoder.remaining_handles();
4145 if let Some((inlined, num_bytes, num_handles)) =
4146 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4147 {
4148 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4149 if inlined != (member_inline_size <= 4) {
4150 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4151 }
4152 let inner_offset;
4153 let mut inner_depth = depth.clone();
4154 if inlined {
4155 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4156 inner_offset = next_offset;
4157 } else {
4158 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4159 inner_depth.increment()?;
4160 }
4161 let val_ref = self.subdir.get_or_insert_with(|| {
4162 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
4163 });
4164 fidl::decode!(
4165 fidl::encoding::BoundedString<4095>,
4166 D,
4167 val_ref,
4168 decoder,
4169 inner_offset,
4170 inner_depth
4171 )?;
4172 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4173 {
4174 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4175 }
4176 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4177 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4178 }
4179 }
4180
4181 next_offset += envelope_size;
4182 _next_ordinal_to_read += 1;
4183 if next_offset >= end_offset {
4184 return Ok(());
4185 }
4186
4187 while _next_ordinal_to_read < 5 {
4189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4190 _next_ordinal_to_read += 1;
4191 next_offset += envelope_size;
4192 }
4193
4194 let next_out_of_line = decoder.next_out_of_line();
4195 let handles_before = decoder.remaining_handles();
4196 if let Some((inlined, num_bytes, num_handles)) =
4197 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4198 {
4199 let member_inline_size =
4200 <fidl_fuchsia_io::Operations as fidl::encoding::TypeMarker>::inline_size(
4201 decoder.context,
4202 );
4203 if inlined != (member_inline_size <= 4) {
4204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4205 }
4206 let inner_offset;
4207 let mut inner_depth = depth.clone();
4208 if inlined {
4209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4210 inner_offset = next_offset;
4211 } else {
4212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4213 inner_depth.increment()?;
4214 }
4215 let val_ref = self
4216 .rights
4217 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_io::Operations, D));
4218 fidl::decode!(
4219 fidl_fuchsia_io::Operations,
4220 D,
4221 val_ref,
4222 decoder,
4223 inner_offset,
4224 inner_depth
4225 )?;
4226 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4227 {
4228 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4229 }
4230 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4231 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4232 }
4233 }
4234
4235 next_offset += envelope_size;
4236 _next_ordinal_to_read += 1;
4237 if next_offset >= end_offset {
4238 return Ok(());
4239 }
4240
4241 while _next_ordinal_to_read < 6 {
4243 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4244 _next_ordinal_to_read += 1;
4245 next_offset += envelope_size;
4246 }
4247
4248 let next_out_of_line = decoder.next_out_of_line();
4249 let handles_before = decoder.remaining_handles();
4250 if let Some((inlined, num_bytes, num_handles)) =
4251 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4252 {
4253 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4254 if inlined != (member_inline_size <= 4) {
4255 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4256 }
4257 let inner_offset;
4258 let mut inner_depth = depth.clone();
4259 if inlined {
4260 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4261 inner_offset = next_offset;
4262 } else {
4263 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4264 inner_depth.increment()?;
4265 }
4266 let val_ref = self.path.get_or_insert_with(|| {
4267 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
4268 });
4269 fidl::decode!(
4270 fidl::encoding::BoundedString<4095>,
4271 D,
4272 val_ref,
4273 decoder,
4274 inner_offset,
4275 inner_depth
4276 )?;
4277 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4278 {
4279 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4280 }
4281 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4282 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4283 }
4284 }
4285
4286 next_offset += envelope_size;
4287 _next_ordinal_to_read += 1;
4288 if next_offset >= end_offset {
4289 return Ok(());
4290 }
4291
4292 while _next_ordinal_to_read < 7 {
4294 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4295 _next_ordinal_to_read += 1;
4296 next_offset += envelope_size;
4297 }
4298
4299 let next_out_of_line = decoder.next_out_of_line();
4300 let handles_before = decoder.remaining_handles();
4301 if let Some((inlined, num_bytes, num_handles)) =
4302 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4303 {
4304 let member_inline_size = <fidl_fuchsia_component_decl::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4305 if inlined != (member_inline_size <= 4) {
4306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4307 }
4308 let inner_offset;
4309 let mut inner_depth = depth.clone();
4310 if inlined {
4311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4312 inner_offset = next_offset;
4313 } else {
4314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4315 inner_depth.increment()?;
4316 }
4317 let val_ref = self.availability.get_or_insert_with(|| {
4318 fidl::new_empty!(fidl_fuchsia_component_decl::Availability, D)
4319 });
4320 fidl::decode!(
4321 fidl_fuchsia_component_decl::Availability,
4322 D,
4323 val_ref,
4324 decoder,
4325 inner_offset,
4326 inner_depth
4327 )?;
4328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4329 {
4330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4331 }
4332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4334 }
4335 }
4336
4337 next_offset += envelope_size;
4338 _next_ordinal_to_read += 1;
4339 if next_offset >= end_offset {
4340 return Ok(());
4341 }
4342
4343 while _next_ordinal_to_read < 8 {
4345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4346 _next_ordinal_to_read += 1;
4347 next_offset += envelope_size;
4348 }
4349
4350 let next_out_of_line = decoder.next_out_of_line();
4351 let handles_before = decoder.remaining_handles();
4352 if let Some((inlined, num_bytes, num_handles)) =
4353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4354 {
4355 let member_inline_size =
4356 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
4357 decoder.context,
4358 );
4359 if inlined != (member_inline_size <= 4) {
4360 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4361 }
4362 let inner_offset;
4363 let mut inner_depth = depth.clone();
4364 if inlined {
4365 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4366 inner_offset = next_offset;
4367 } else {
4368 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4369 inner_depth.increment()?;
4370 }
4371 let val_ref = self
4372 .from_dictionary
4373 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
4374 fidl::decode!(
4375 fidl::encoding::UnboundedString,
4376 D,
4377 val_ref,
4378 decoder,
4379 inner_offset,
4380 inner_depth
4381 )?;
4382 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4383 {
4384 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4385 }
4386 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4387 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4388 }
4389 }
4390
4391 next_offset += envelope_size;
4392
4393 while next_offset < end_offset {
4395 _next_ordinal_to_read += 1;
4396 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4397 next_offset += envelope_size;
4398 }
4399
4400 Ok(())
4401 }
4402 }
4403
4404 impl Event {
4405 #[inline(always)]
4406 fn max_ordinal_present(&self) -> u64 {
4407 if let Some(_) = self.availability {
4408 return 4;
4409 }
4410 if let Some(_) = self.filter {
4411 return 3;
4412 }
4413 if let Some(_) = self.as_ {
4414 return 2;
4415 }
4416 if let Some(_) = self.name {
4417 return 1;
4418 }
4419 0
4420 }
4421 }
4422
4423 impl fidl::encoding::ValueTypeMarker for Event {
4424 type Borrowed<'a> = &'a Self;
4425 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4426 value
4427 }
4428 }
4429
4430 unsafe impl fidl::encoding::TypeMarker for Event {
4431 type Owned = Self;
4432
4433 #[inline(always)]
4434 fn inline_align(_context: fidl::encoding::Context) -> usize {
4435 8
4436 }
4437
4438 #[inline(always)]
4439 fn inline_size(_context: fidl::encoding::Context) -> usize {
4440 16
4441 }
4442 }
4443
4444 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Event, D> for &Event {
4445 unsafe fn encode(
4446 self,
4447 encoder: &mut fidl::encoding::Encoder<'_, D>,
4448 offset: usize,
4449 mut depth: fidl::encoding::Depth,
4450 ) -> fidl::Result<()> {
4451 encoder.debug_check_bounds::<Event>(offset);
4452 let max_ordinal: u64 = self.max_ordinal_present();
4454 encoder.write_num(max_ordinal, offset);
4455 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4456 if max_ordinal == 0 {
4458 return Ok(());
4459 }
4460 depth.increment()?;
4461 let envelope_size = 8;
4462 let bytes_len = max_ordinal as usize * envelope_size;
4463 #[allow(unused_variables)]
4464 let offset = encoder.out_of_line_offset(bytes_len);
4465 let mut _prev_end_offset: usize = 0;
4466 if 1 > max_ordinal {
4467 return Ok(());
4468 }
4469
4470 let cur_offset: usize = (1 - 1) * envelope_size;
4473
4474 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4476
4477 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4482 self.name.as_ref().map(
4483 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4484 ),
4485 encoder,
4486 offset + cur_offset,
4487 depth,
4488 )?;
4489
4490 _prev_end_offset = cur_offset + envelope_size;
4491 if 2 > max_ordinal {
4492 return Ok(());
4493 }
4494
4495 let cur_offset: usize = (2 - 1) * envelope_size;
4498
4499 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4501
4502 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4507 self.as_.as_ref().map(
4508 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4509 ),
4510 encoder,
4511 offset + cur_offset,
4512 depth,
4513 )?;
4514
4515 _prev_end_offset = cur_offset + envelope_size;
4516 if 3 > max_ordinal {
4517 return Ok(());
4518 }
4519
4520 let cur_offset: usize = (3 - 1) * envelope_size;
4523
4524 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4526
4527 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data::Dictionary, D>(
4532 self.filter.as_ref().map(
4533 <fidl_fuchsia_data::Dictionary as fidl::encoding::ValueTypeMarker>::borrow,
4534 ),
4535 encoder,
4536 offset + cur_offset,
4537 depth,
4538 )?;
4539
4540 _prev_end_offset = cur_offset + envelope_size;
4541 if 4 > max_ordinal {
4542 return Ok(());
4543 }
4544
4545 let cur_offset: usize = (4 - 1) * envelope_size;
4548
4549 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4551
4552 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::Availability, D>(
4557 self.availability.as_ref().map(<fidl_fuchsia_component_decl::Availability as fidl::encoding::ValueTypeMarker>::borrow),
4558 encoder, offset + cur_offset, depth
4559 )?;
4560
4561 _prev_end_offset = cur_offset + envelope_size;
4562
4563 Ok(())
4564 }
4565 }
4566
4567 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Event {
4568 #[inline(always)]
4569 fn new_empty() -> Self {
4570 Self::default()
4571 }
4572
4573 unsafe fn decode(
4574 &mut self,
4575 decoder: &mut fidl::encoding::Decoder<'_, D>,
4576 offset: usize,
4577 mut depth: fidl::encoding::Depth,
4578 ) -> fidl::Result<()> {
4579 decoder.debug_check_bounds::<Self>(offset);
4580 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4581 None => return Err(fidl::Error::NotNullable),
4582 Some(len) => len,
4583 };
4584 if len == 0 {
4586 return Ok(());
4587 };
4588 depth.increment()?;
4589 let envelope_size = 8;
4590 let bytes_len = len * envelope_size;
4591 let offset = decoder.out_of_line_offset(bytes_len)?;
4592 let mut _next_ordinal_to_read = 0;
4594 let mut next_offset = offset;
4595 let end_offset = offset + bytes_len;
4596 _next_ordinal_to_read += 1;
4597 if next_offset >= end_offset {
4598 return Ok(());
4599 }
4600
4601 while _next_ordinal_to_read < 1 {
4603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4604 _next_ordinal_to_read += 1;
4605 next_offset += envelope_size;
4606 }
4607
4608 let next_out_of_line = decoder.next_out_of_line();
4609 let handles_before = decoder.remaining_handles();
4610 if let Some((inlined, num_bytes, num_handles)) =
4611 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4612 {
4613 let member_inline_size =
4614 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4615 decoder.context,
4616 );
4617 if inlined != (member_inline_size <= 4) {
4618 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4619 }
4620 let inner_offset;
4621 let mut inner_depth = depth.clone();
4622 if inlined {
4623 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4624 inner_offset = next_offset;
4625 } else {
4626 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4627 inner_depth.increment()?;
4628 }
4629 let val_ref = self
4630 .name
4631 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4632 fidl::decode!(
4633 fidl::encoding::BoundedString<255>,
4634 D,
4635 val_ref,
4636 decoder,
4637 inner_offset,
4638 inner_depth
4639 )?;
4640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4641 {
4642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4643 }
4644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4646 }
4647 }
4648
4649 next_offset += envelope_size;
4650 _next_ordinal_to_read += 1;
4651 if next_offset >= end_offset {
4652 return Ok(());
4653 }
4654
4655 while _next_ordinal_to_read < 2 {
4657 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4658 _next_ordinal_to_read += 1;
4659 next_offset += envelope_size;
4660 }
4661
4662 let next_out_of_line = decoder.next_out_of_line();
4663 let handles_before = decoder.remaining_handles();
4664 if let Some((inlined, num_bytes, num_handles)) =
4665 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4666 {
4667 let member_inline_size =
4668 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4669 decoder.context,
4670 );
4671 if inlined != (member_inline_size <= 4) {
4672 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4673 }
4674 let inner_offset;
4675 let mut inner_depth = depth.clone();
4676 if inlined {
4677 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4678 inner_offset = next_offset;
4679 } else {
4680 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4681 inner_depth.increment()?;
4682 }
4683 let val_ref = self
4684 .as_
4685 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4686 fidl::decode!(
4687 fidl::encoding::BoundedString<255>,
4688 D,
4689 val_ref,
4690 decoder,
4691 inner_offset,
4692 inner_depth
4693 )?;
4694 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4695 {
4696 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4697 }
4698 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4699 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4700 }
4701 }
4702
4703 next_offset += envelope_size;
4704 _next_ordinal_to_read += 1;
4705 if next_offset >= end_offset {
4706 return Ok(());
4707 }
4708
4709 while _next_ordinal_to_read < 3 {
4711 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4712 _next_ordinal_to_read += 1;
4713 next_offset += envelope_size;
4714 }
4715
4716 let next_out_of_line = decoder.next_out_of_line();
4717 let handles_before = decoder.remaining_handles();
4718 if let Some((inlined, num_bytes, num_handles)) =
4719 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4720 {
4721 let member_inline_size =
4722 <fidl_fuchsia_data::Dictionary as fidl::encoding::TypeMarker>::inline_size(
4723 decoder.context,
4724 );
4725 if inlined != (member_inline_size <= 4) {
4726 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4727 }
4728 let inner_offset;
4729 let mut inner_depth = depth.clone();
4730 if inlined {
4731 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4732 inner_offset = next_offset;
4733 } else {
4734 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4735 inner_depth.increment()?;
4736 }
4737 let val_ref = self
4738 .filter
4739 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_data::Dictionary, D));
4740 fidl::decode!(
4741 fidl_fuchsia_data::Dictionary,
4742 D,
4743 val_ref,
4744 decoder,
4745 inner_offset,
4746 inner_depth
4747 )?;
4748 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4749 {
4750 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4751 }
4752 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4753 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4754 }
4755 }
4756
4757 next_offset += envelope_size;
4758 _next_ordinal_to_read += 1;
4759 if next_offset >= end_offset {
4760 return Ok(());
4761 }
4762
4763 while _next_ordinal_to_read < 4 {
4765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4766 _next_ordinal_to_read += 1;
4767 next_offset += envelope_size;
4768 }
4769
4770 let next_out_of_line = decoder.next_out_of_line();
4771 let handles_before = decoder.remaining_handles();
4772 if let Some((inlined, num_bytes, num_handles)) =
4773 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4774 {
4775 let member_inline_size = <fidl_fuchsia_component_decl::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4776 if inlined != (member_inline_size <= 4) {
4777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4778 }
4779 let inner_offset;
4780 let mut inner_depth = depth.clone();
4781 if inlined {
4782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4783 inner_offset = next_offset;
4784 } else {
4785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4786 inner_depth.increment()?;
4787 }
4788 let val_ref = self.availability.get_or_insert_with(|| {
4789 fidl::new_empty!(fidl_fuchsia_component_decl::Availability, D)
4790 });
4791 fidl::decode!(
4792 fidl_fuchsia_component_decl::Availability,
4793 D,
4794 val_ref,
4795 decoder,
4796 inner_offset,
4797 inner_depth
4798 )?;
4799 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4800 {
4801 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4802 }
4803 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4804 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4805 }
4806 }
4807
4808 next_offset += envelope_size;
4809
4810 while next_offset < end_offset {
4812 _next_ordinal_to_read += 1;
4813 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4814 next_offset += envelope_size;
4815 }
4816
4817 Ok(())
4818 }
4819 }
4820
4821 impl EventStream {
4822 #[inline(always)]
4823 fn max_ordinal_present(&self) -> u64 {
4824 if let Some(_) = self.scope {
4825 return 5;
4826 }
4827 if let Some(_) = self.filter {
4828 return 4;
4829 }
4830 if let Some(_) = self.path {
4831 return 3;
4832 }
4833 if let Some(_) = self.as_ {
4834 return 2;
4835 }
4836 if let Some(_) = self.name {
4837 return 1;
4838 }
4839 0
4840 }
4841 }
4842
4843 impl fidl::encoding::ValueTypeMarker for EventStream {
4844 type Borrowed<'a> = &'a Self;
4845 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4846 value
4847 }
4848 }
4849
4850 unsafe impl fidl::encoding::TypeMarker for EventStream {
4851 type Owned = Self;
4852
4853 #[inline(always)]
4854 fn inline_align(_context: fidl::encoding::Context) -> usize {
4855 8
4856 }
4857
4858 #[inline(always)]
4859 fn inline_size(_context: fidl::encoding::Context) -> usize {
4860 16
4861 }
4862 }
4863
4864 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventStream, D>
4865 for &EventStream
4866 {
4867 unsafe fn encode(
4868 self,
4869 encoder: &mut fidl::encoding::Encoder<'_, D>,
4870 offset: usize,
4871 mut depth: fidl::encoding::Depth,
4872 ) -> fidl::Result<()> {
4873 encoder.debug_check_bounds::<EventStream>(offset);
4874 let max_ordinal: u64 = self.max_ordinal_present();
4876 encoder.write_num(max_ordinal, offset);
4877 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4878 if max_ordinal == 0 {
4880 return Ok(());
4881 }
4882 depth.increment()?;
4883 let envelope_size = 8;
4884 let bytes_len = max_ordinal as usize * envelope_size;
4885 #[allow(unused_variables)]
4886 let offset = encoder.out_of_line_offset(bytes_len);
4887 let mut _prev_end_offset: usize = 0;
4888 if 1 > max_ordinal {
4889 return Ok(());
4890 }
4891
4892 let cur_offset: usize = (1 - 1) * envelope_size;
4895
4896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4898
4899 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4904 self.name.as_ref().map(
4905 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4906 ),
4907 encoder,
4908 offset + cur_offset,
4909 depth,
4910 )?;
4911
4912 _prev_end_offset = cur_offset + envelope_size;
4913 if 2 > max_ordinal {
4914 return Ok(());
4915 }
4916
4917 let cur_offset: usize = (2 - 1) * envelope_size;
4920
4921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4923
4924 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4929 self.as_.as_ref().map(
4930 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4931 ),
4932 encoder,
4933 offset + cur_offset,
4934 depth,
4935 )?;
4936
4937 _prev_end_offset = cur_offset + envelope_size;
4938 if 3 > max_ordinal {
4939 return Ok(());
4940 }
4941
4942 let cur_offset: usize = (3 - 1) * envelope_size;
4945
4946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4948
4949 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
4954 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
4955 encoder, offset + cur_offset, depth
4956 )?;
4957
4958 _prev_end_offset = cur_offset + envelope_size;
4959 if 4 > max_ordinal {
4960 return Ok(());
4961 }
4962
4963 let cur_offset: usize = (4 - 1) * envelope_size;
4966
4967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4969
4970 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data::Dictionary, D>(
4975 self.filter.as_ref().map(
4976 <fidl_fuchsia_data::Dictionary as fidl::encoding::ValueTypeMarker>::borrow,
4977 ),
4978 encoder,
4979 offset + cur_offset,
4980 depth,
4981 )?;
4982
4983 _prev_end_offset = cur_offset + envelope_size;
4984 if 5 > max_ordinal {
4985 return Ok(());
4986 }
4987
4988 let cur_offset: usize = (5 - 1) * envelope_size;
4991
4992 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4994
4995 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref>, D>(
5000 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref> as fidl::encoding::ValueTypeMarker>::borrow),
5001 encoder, offset + cur_offset, depth
5002 )?;
5003
5004 _prev_end_offset = cur_offset + envelope_size;
5005
5006 Ok(())
5007 }
5008 }
5009
5010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventStream {
5011 #[inline(always)]
5012 fn new_empty() -> Self {
5013 Self::default()
5014 }
5015
5016 unsafe fn decode(
5017 &mut self,
5018 decoder: &mut fidl::encoding::Decoder<'_, D>,
5019 offset: usize,
5020 mut depth: fidl::encoding::Depth,
5021 ) -> fidl::Result<()> {
5022 decoder.debug_check_bounds::<Self>(offset);
5023 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5024 None => return Err(fidl::Error::NotNullable),
5025 Some(len) => len,
5026 };
5027 if len == 0 {
5029 return Ok(());
5030 };
5031 depth.increment()?;
5032 let envelope_size = 8;
5033 let bytes_len = len * envelope_size;
5034 let offset = decoder.out_of_line_offset(bytes_len)?;
5035 let mut _next_ordinal_to_read = 0;
5037 let mut next_offset = offset;
5038 let end_offset = offset + bytes_len;
5039 _next_ordinal_to_read += 1;
5040 if next_offset >= end_offset {
5041 return Ok(());
5042 }
5043
5044 while _next_ordinal_to_read < 1 {
5046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5047 _next_ordinal_to_read += 1;
5048 next_offset += envelope_size;
5049 }
5050
5051 let next_out_of_line = decoder.next_out_of_line();
5052 let handles_before = decoder.remaining_handles();
5053 if let Some((inlined, num_bytes, num_handles)) =
5054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5055 {
5056 let member_inline_size =
5057 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5058 decoder.context,
5059 );
5060 if inlined != (member_inline_size <= 4) {
5061 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5062 }
5063 let inner_offset;
5064 let mut inner_depth = depth.clone();
5065 if inlined {
5066 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5067 inner_offset = next_offset;
5068 } else {
5069 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5070 inner_depth.increment()?;
5071 }
5072 let val_ref = self
5073 .name
5074 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5075 fidl::decode!(
5076 fidl::encoding::BoundedString<255>,
5077 D,
5078 val_ref,
5079 decoder,
5080 inner_offset,
5081 inner_depth
5082 )?;
5083 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5084 {
5085 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5086 }
5087 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5088 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5089 }
5090 }
5091
5092 next_offset += envelope_size;
5093 _next_ordinal_to_read += 1;
5094 if next_offset >= end_offset {
5095 return Ok(());
5096 }
5097
5098 while _next_ordinal_to_read < 2 {
5100 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5101 _next_ordinal_to_read += 1;
5102 next_offset += envelope_size;
5103 }
5104
5105 let next_out_of_line = decoder.next_out_of_line();
5106 let handles_before = decoder.remaining_handles();
5107 if let Some((inlined, num_bytes, num_handles)) =
5108 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5109 {
5110 let member_inline_size =
5111 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5112 decoder.context,
5113 );
5114 if inlined != (member_inline_size <= 4) {
5115 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5116 }
5117 let inner_offset;
5118 let mut inner_depth = depth.clone();
5119 if inlined {
5120 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5121 inner_offset = next_offset;
5122 } else {
5123 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5124 inner_depth.increment()?;
5125 }
5126 let val_ref = self
5127 .as_
5128 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5129 fidl::decode!(
5130 fidl::encoding::BoundedString<255>,
5131 D,
5132 val_ref,
5133 decoder,
5134 inner_offset,
5135 inner_depth
5136 )?;
5137 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5138 {
5139 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5140 }
5141 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5142 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5143 }
5144 }
5145
5146 next_offset += envelope_size;
5147 _next_ordinal_to_read += 1;
5148 if next_offset >= end_offset {
5149 return Ok(());
5150 }
5151
5152 while _next_ordinal_to_read < 3 {
5154 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5155 _next_ordinal_to_read += 1;
5156 next_offset += envelope_size;
5157 }
5158
5159 let next_out_of_line = decoder.next_out_of_line();
5160 let handles_before = decoder.remaining_handles();
5161 if let Some((inlined, num_bytes, num_handles)) =
5162 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5163 {
5164 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5165 if inlined != (member_inline_size <= 4) {
5166 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5167 }
5168 let inner_offset;
5169 let mut inner_depth = depth.clone();
5170 if inlined {
5171 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5172 inner_offset = next_offset;
5173 } else {
5174 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5175 inner_depth.increment()?;
5176 }
5177 let val_ref = self.path.get_or_insert_with(|| {
5178 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
5179 });
5180 fidl::decode!(
5181 fidl::encoding::BoundedString<4095>,
5182 D,
5183 val_ref,
5184 decoder,
5185 inner_offset,
5186 inner_depth
5187 )?;
5188 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5189 {
5190 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5191 }
5192 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5193 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5194 }
5195 }
5196
5197 next_offset += envelope_size;
5198 _next_ordinal_to_read += 1;
5199 if next_offset >= end_offset {
5200 return Ok(());
5201 }
5202
5203 while _next_ordinal_to_read < 4 {
5205 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5206 _next_ordinal_to_read += 1;
5207 next_offset += envelope_size;
5208 }
5209
5210 let next_out_of_line = decoder.next_out_of_line();
5211 let handles_before = decoder.remaining_handles();
5212 if let Some((inlined, num_bytes, num_handles)) =
5213 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5214 {
5215 let member_inline_size =
5216 <fidl_fuchsia_data::Dictionary as fidl::encoding::TypeMarker>::inline_size(
5217 decoder.context,
5218 );
5219 if inlined != (member_inline_size <= 4) {
5220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5221 }
5222 let inner_offset;
5223 let mut inner_depth = depth.clone();
5224 if inlined {
5225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5226 inner_offset = next_offset;
5227 } else {
5228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5229 inner_depth.increment()?;
5230 }
5231 let val_ref = self
5232 .filter
5233 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_data::Dictionary, D));
5234 fidl::decode!(
5235 fidl_fuchsia_data::Dictionary,
5236 D,
5237 val_ref,
5238 decoder,
5239 inner_offset,
5240 inner_depth
5241 )?;
5242 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5243 {
5244 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5245 }
5246 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5247 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5248 }
5249 }
5250
5251 next_offset += envelope_size;
5252 _next_ordinal_to_read += 1;
5253 if next_offset >= end_offset {
5254 return Ok(());
5255 }
5256
5257 while _next_ordinal_to_read < 5 {
5259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5260 _next_ordinal_to_read += 1;
5261 next_offset += envelope_size;
5262 }
5263
5264 let next_out_of_line = decoder.next_out_of_line();
5265 let handles_before = decoder.remaining_handles();
5266 if let Some((inlined, num_bytes, num_handles)) =
5267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5268 {
5269 let member_inline_size = <fidl::encoding::UnboundedVector<
5270 fidl_fuchsia_component_decl::Ref,
5271 > as fidl::encoding::TypeMarker>::inline_size(
5272 decoder.context
5273 );
5274 if inlined != (member_inline_size <= 4) {
5275 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5276 }
5277 let inner_offset;
5278 let mut inner_depth = depth.clone();
5279 if inlined {
5280 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5281 inner_offset = next_offset;
5282 } else {
5283 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5284 inner_depth.increment()?;
5285 }
5286 let val_ref = self.scope.get_or_insert_with(|| {
5287 fidl::new_empty!(
5288 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref>,
5289 D
5290 )
5291 });
5292 fidl::decode!(
5293 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl::Ref>,
5294 D,
5295 val_ref,
5296 decoder,
5297 inner_offset,
5298 inner_depth
5299 )?;
5300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5301 {
5302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5303 }
5304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5306 }
5307 }
5308
5309 next_offset += envelope_size;
5310
5311 while next_offset < end_offset {
5313 _next_ordinal_to_read += 1;
5314 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5315 next_offset += envelope_size;
5316 }
5317
5318 Ok(())
5319 }
5320 }
5321
5322 impl Protocol {
5323 #[inline(always)]
5324 fn max_ordinal_present(&self) -> u64 {
5325 if let Some(_) = self.from_dictionary {
5326 return 6;
5327 }
5328 if let Some(_) = self.availability {
5329 return 5;
5330 }
5331 if let Some(_) = self.path {
5332 return 4;
5333 }
5334 if let Some(_) = self.type_ {
5335 return 3;
5336 }
5337 if let Some(_) = self.as_ {
5338 return 2;
5339 }
5340 if let Some(_) = self.name {
5341 return 1;
5342 }
5343 0
5344 }
5345 }
5346
5347 impl fidl::encoding::ValueTypeMarker for Protocol {
5348 type Borrowed<'a> = &'a Self;
5349 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5350 value
5351 }
5352 }
5353
5354 unsafe impl fidl::encoding::TypeMarker for Protocol {
5355 type Owned = Self;
5356
5357 #[inline(always)]
5358 fn inline_align(_context: fidl::encoding::Context) -> usize {
5359 8
5360 }
5361
5362 #[inline(always)]
5363 fn inline_size(_context: fidl::encoding::Context) -> usize {
5364 16
5365 }
5366 }
5367
5368 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Protocol, D> for &Protocol {
5369 unsafe fn encode(
5370 self,
5371 encoder: &mut fidl::encoding::Encoder<'_, D>,
5372 offset: usize,
5373 mut depth: fidl::encoding::Depth,
5374 ) -> fidl::Result<()> {
5375 encoder.debug_check_bounds::<Protocol>(offset);
5376 let max_ordinal: u64 = self.max_ordinal_present();
5378 encoder.write_num(max_ordinal, offset);
5379 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5380 if max_ordinal == 0 {
5382 return Ok(());
5383 }
5384 depth.increment()?;
5385 let envelope_size = 8;
5386 let bytes_len = max_ordinal as usize * envelope_size;
5387 #[allow(unused_variables)]
5388 let offset = encoder.out_of_line_offset(bytes_len);
5389 let mut _prev_end_offset: usize = 0;
5390 if 1 > max_ordinal {
5391 return Ok(());
5392 }
5393
5394 let cur_offset: usize = (1 - 1) * envelope_size;
5397
5398 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5400
5401 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5406 self.name.as_ref().map(
5407 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5408 ),
5409 encoder,
5410 offset + cur_offset,
5411 depth,
5412 )?;
5413
5414 _prev_end_offset = cur_offset + envelope_size;
5415 if 2 > max_ordinal {
5416 return Ok(());
5417 }
5418
5419 let cur_offset: usize = (2 - 1) * envelope_size;
5422
5423 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5425
5426 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5431 self.as_.as_ref().map(
5432 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5433 ),
5434 encoder,
5435 offset + cur_offset,
5436 depth,
5437 )?;
5438
5439 _prev_end_offset = cur_offset + envelope_size;
5440 if 3 > max_ordinal {
5441 return Ok(());
5442 }
5443
5444 let cur_offset: usize = (3 - 1) * envelope_size;
5447
5448 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5450
5451 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::DependencyType, D>(
5456 self.type_.as_ref().map(<fidl_fuchsia_component_decl::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
5457 encoder, offset + cur_offset, depth
5458 )?;
5459
5460 _prev_end_offset = cur_offset + envelope_size;
5461 if 4 > max_ordinal {
5462 return Ok(());
5463 }
5464
5465 let cur_offset: usize = (4 - 1) * envelope_size;
5468
5469 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5471
5472 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
5477 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
5478 encoder, offset + cur_offset, depth
5479 )?;
5480
5481 _prev_end_offset = cur_offset + envelope_size;
5482 if 5 > max_ordinal {
5483 return Ok(());
5484 }
5485
5486 let cur_offset: usize = (5 - 1) * envelope_size;
5489
5490 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5492
5493 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::Availability, D>(
5498 self.availability.as_ref().map(<fidl_fuchsia_component_decl::Availability as fidl::encoding::ValueTypeMarker>::borrow),
5499 encoder, offset + cur_offset, depth
5500 )?;
5501
5502 _prev_end_offset = cur_offset + envelope_size;
5503 if 6 > max_ordinal {
5504 return Ok(());
5505 }
5506
5507 let cur_offset: usize = (6 - 1) * envelope_size;
5510
5511 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5513
5514 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
5519 self.from_dictionary.as_ref().map(
5520 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
5521 ),
5522 encoder,
5523 offset + cur_offset,
5524 depth,
5525 )?;
5526
5527 _prev_end_offset = cur_offset + envelope_size;
5528
5529 Ok(())
5530 }
5531 }
5532
5533 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Protocol {
5534 #[inline(always)]
5535 fn new_empty() -> Self {
5536 Self::default()
5537 }
5538
5539 unsafe fn decode(
5540 &mut self,
5541 decoder: &mut fidl::encoding::Decoder<'_, D>,
5542 offset: usize,
5543 mut depth: fidl::encoding::Depth,
5544 ) -> fidl::Result<()> {
5545 decoder.debug_check_bounds::<Self>(offset);
5546 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5547 None => return Err(fidl::Error::NotNullable),
5548 Some(len) => len,
5549 };
5550 if len == 0 {
5552 return Ok(());
5553 };
5554 depth.increment()?;
5555 let envelope_size = 8;
5556 let bytes_len = len * envelope_size;
5557 let offset = decoder.out_of_line_offset(bytes_len)?;
5558 let mut _next_ordinal_to_read = 0;
5560 let mut next_offset = offset;
5561 let end_offset = offset + bytes_len;
5562 _next_ordinal_to_read += 1;
5563 if next_offset >= end_offset {
5564 return Ok(());
5565 }
5566
5567 while _next_ordinal_to_read < 1 {
5569 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5570 _next_ordinal_to_read += 1;
5571 next_offset += envelope_size;
5572 }
5573
5574 let next_out_of_line = decoder.next_out_of_line();
5575 let handles_before = decoder.remaining_handles();
5576 if let Some((inlined, num_bytes, num_handles)) =
5577 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5578 {
5579 let member_inline_size =
5580 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5581 decoder.context,
5582 );
5583 if inlined != (member_inline_size <= 4) {
5584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5585 }
5586 let inner_offset;
5587 let mut inner_depth = depth.clone();
5588 if inlined {
5589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5590 inner_offset = next_offset;
5591 } else {
5592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5593 inner_depth.increment()?;
5594 }
5595 let val_ref = self
5596 .name
5597 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5598 fidl::decode!(
5599 fidl::encoding::BoundedString<255>,
5600 D,
5601 val_ref,
5602 decoder,
5603 inner_offset,
5604 inner_depth
5605 )?;
5606 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5607 {
5608 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5609 }
5610 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5611 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5612 }
5613 }
5614
5615 next_offset += envelope_size;
5616 _next_ordinal_to_read += 1;
5617 if next_offset >= end_offset {
5618 return Ok(());
5619 }
5620
5621 while _next_ordinal_to_read < 2 {
5623 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5624 _next_ordinal_to_read += 1;
5625 next_offset += envelope_size;
5626 }
5627
5628 let next_out_of_line = decoder.next_out_of_line();
5629 let handles_before = decoder.remaining_handles();
5630 if let Some((inlined, num_bytes, num_handles)) =
5631 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5632 {
5633 let member_inline_size =
5634 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5635 decoder.context,
5636 );
5637 if inlined != (member_inline_size <= 4) {
5638 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5639 }
5640 let inner_offset;
5641 let mut inner_depth = depth.clone();
5642 if inlined {
5643 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5644 inner_offset = next_offset;
5645 } else {
5646 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5647 inner_depth.increment()?;
5648 }
5649 let val_ref = self
5650 .as_
5651 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5652 fidl::decode!(
5653 fidl::encoding::BoundedString<255>,
5654 D,
5655 val_ref,
5656 decoder,
5657 inner_offset,
5658 inner_depth
5659 )?;
5660 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5661 {
5662 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5663 }
5664 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5665 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5666 }
5667 }
5668
5669 next_offset += envelope_size;
5670 _next_ordinal_to_read += 1;
5671 if next_offset >= end_offset {
5672 return Ok(());
5673 }
5674
5675 while _next_ordinal_to_read < 3 {
5677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5678 _next_ordinal_to_read += 1;
5679 next_offset += envelope_size;
5680 }
5681
5682 let next_out_of_line = decoder.next_out_of_line();
5683 let handles_before = decoder.remaining_handles();
5684 if let Some((inlined, num_bytes, num_handles)) =
5685 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5686 {
5687 let member_inline_size = <fidl_fuchsia_component_decl::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5688 if inlined != (member_inline_size <= 4) {
5689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5690 }
5691 let inner_offset;
5692 let mut inner_depth = depth.clone();
5693 if inlined {
5694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5695 inner_offset = next_offset;
5696 } else {
5697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5698 inner_depth.increment()?;
5699 }
5700 let val_ref = self.type_.get_or_insert_with(|| {
5701 fidl::new_empty!(fidl_fuchsia_component_decl::DependencyType, D)
5702 });
5703 fidl::decode!(
5704 fidl_fuchsia_component_decl::DependencyType,
5705 D,
5706 val_ref,
5707 decoder,
5708 inner_offset,
5709 inner_depth
5710 )?;
5711 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5712 {
5713 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5714 }
5715 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5716 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5717 }
5718 }
5719
5720 next_offset += envelope_size;
5721 _next_ordinal_to_read += 1;
5722 if next_offset >= end_offset {
5723 return Ok(());
5724 }
5725
5726 while _next_ordinal_to_read < 4 {
5728 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5729 _next_ordinal_to_read += 1;
5730 next_offset += envelope_size;
5731 }
5732
5733 let next_out_of_line = decoder.next_out_of_line();
5734 let handles_before = decoder.remaining_handles();
5735 if let Some((inlined, num_bytes, num_handles)) =
5736 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5737 {
5738 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5739 if inlined != (member_inline_size <= 4) {
5740 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5741 }
5742 let inner_offset;
5743 let mut inner_depth = depth.clone();
5744 if inlined {
5745 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5746 inner_offset = next_offset;
5747 } else {
5748 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5749 inner_depth.increment()?;
5750 }
5751 let val_ref = self.path.get_or_insert_with(|| {
5752 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
5753 });
5754 fidl::decode!(
5755 fidl::encoding::BoundedString<4095>,
5756 D,
5757 val_ref,
5758 decoder,
5759 inner_offset,
5760 inner_depth
5761 )?;
5762 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5763 {
5764 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5765 }
5766 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5767 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5768 }
5769 }
5770
5771 next_offset += envelope_size;
5772 _next_ordinal_to_read += 1;
5773 if next_offset >= end_offset {
5774 return Ok(());
5775 }
5776
5777 while _next_ordinal_to_read < 5 {
5779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5780 _next_ordinal_to_read += 1;
5781 next_offset += envelope_size;
5782 }
5783
5784 let next_out_of_line = decoder.next_out_of_line();
5785 let handles_before = decoder.remaining_handles();
5786 if let Some((inlined, num_bytes, num_handles)) =
5787 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5788 {
5789 let member_inline_size = <fidl_fuchsia_component_decl::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5790 if inlined != (member_inline_size <= 4) {
5791 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5792 }
5793 let inner_offset;
5794 let mut inner_depth = depth.clone();
5795 if inlined {
5796 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5797 inner_offset = next_offset;
5798 } else {
5799 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5800 inner_depth.increment()?;
5801 }
5802 let val_ref = self.availability.get_or_insert_with(|| {
5803 fidl::new_empty!(fidl_fuchsia_component_decl::Availability, D)
5804 });
5805 fidl::decode!(
5806 fidl_fuchsia_component_decl::Availability,
5807 D,
5808 val_ref,
5809 decoder,
5810 inner_offset,
5811 inner_depth
5812 )?;
5813 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5814 {
5815 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5816 }
5817 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5818 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5819 }
5820 }
5821
5822 next_offset += envelope_size;
5823 _next_ordinal_to_read += 1;
5824 if next_offset >= end_offset {
5825 return Ok(());
5826 }
5827
5828 while _next_ordinal_to_read < 6 {
5830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5831 _next_ordinal_to_read += 1;
5832 next_offset += envelope_size;
5833 }
5834
5835 let next_out_of_line = decoder.next_out_of_line();
5836 let handles_before = decoder.remaining_handles();
5837 if let Some((inlined, num_bytes, num_handles)) =
5838 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5839 {
5840 let member_inline_size =
5841 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
5842 decoder.context,
5843 );
5844 if inlined != (member_inline_size <= 4) {
5845 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5846 }
5847 let inner_offset;
5848 let mut inner_depth = depth.clone();
5849 if inlined {
5850 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5851 inner_offset = next_offset;
5852 } else {
5853 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5854 inner_depth.increment()?;
5855 }
5856 let val_ref = self
5857 .from_dictionary
5858 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
5859 fidl::decode!(
5860 fidl::encoding::UnboundedString,
5861 D,
5862 val_ref,
5863 decoder,
5864 inner_offset,
5865 inner_depth
5866 )?;
5867 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5868 {
5869 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5870 }
5871 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5872 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5873 }
5874 }
5875
5876 next_offset += envelope_size;
5877
5878 while next_offset < end_offset {
5880 _next_ordinal_to_read += 1;
5881 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5882 next_offset += envelope_size;
5883 }
5884
5885 Ok(())
5886 }
5887 }
5888
5889 impl Resolver {
5890 #[inline(always)]
5891 fn max_ordinal_present(&self) -> u64 {
5892 if let Some(_) = self.from_dictionary {
5893 return 4;
5894 }
5895 if let Some(_) = self.path {
5896 return 3;
5897 }
5898 if let Some(_) = self.as_ {
5899 return 2;
5900 }
5901 if let Some(_) = self.name {
5902 return 1;
5903 }
5904 0
5905 }
5906 }
5907
5908 impl fidl::encoding::ValueTypeMarker for Resolver {
5909 type Borrowed<'a> = &'a Self;
5910 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5911 value
5912 }
5913 }
5914
5915 unsafe impl fidl::encoding::TypeMarker for Resolver {
5916 type Owned = Self;
5917
5918 #[inline(always)]
5919 fn inline_align(_context: fidl::encoding::Context) -> usize {
5920 8
5921 }
5922
5923 #[inline(always)]
5924 fn inline_size(_context: fidl::encoding::Context) -> usize {
5925 16
5926 }
5927 }
5928
5929 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Resolver, D> for &Resolver {
5930 unsafe fn encode(
5931 self,
5932 encoder: &mut fidl::encoding::Encoder<'_, D>,
5933 offset: usize,
5934 mut depth: fidl::encoding::Depth,
5935 ) -> fidl::Result<()> {
5936 encoder.debug_check_bounds::<Resolver>(offset);
5937 let max_ordinal: u64 = self.max_ordinal_present();
5939 encoder.write_num(max_ordinal, offset);
5940 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5941 if max_ordinal == 0 {
5943 return Ok(());
5944 }
5945 depth.increment()?;
5946 let envelope_size = 8;
5947 let bytes_len = max_ordinal as usize * envelope_size;
5948 #[allow(unused_variables)]
5949 let offset = encoder.out_of_line_offset(bytes_len);
5950 let mut _prev_end_offset: usize = 0;
5951 if 1 > max_ordinal {
5952 return Ok(());
5953 }
5954
5955 let cur_offset: usize = (1 - 1) * envelope_size;
5958
5959 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5961
5962 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5967 self.name.as_ref().map(
5968 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5969 ),
5970 encoder,
5971 offset + cur_offset,
5972 depth,
5973 )?;
5974
5975 _prev_end_offset = cur_offset + envelope_size;
5976 if 2 > max_ordinal {
5977 return Ok(());
5978 }
5979
5980 let cur_offset: usize = (2 - 1) * envelope_size;
5983
5984 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5986
5987 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5992 self.as_.as_ref().map(
5993 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5994 ),
5995 encoder,
5996 offset + cur_offset,
5997 depth,
5998 )?;
5999
6000 _prev_end_offset = cur_offset + envelope_size;
6001 if 3 > max_ordinal {
6002 return Ok(());
6003 }
6004
6005 let cur_offset: usize = (3 - 1) * envelope_size;
6008
6009 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6011
6012 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6017 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6018 encoder, offset + cur_offset, depth
6019 )?;
6020
6021 _prev_end_offset = cur_offset + envelope_size;
6022 if 4 > max_ordinal {
6023 return Ok(());
6024 }
6025
6026 let cur_offset: usize = (4 - 1) * envelope_size;
6029
6030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6032
6033 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
6038 self.from_dictionary.as_ref().map(
6039 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
6040 ),
6041 encoder,
6042 offset + cur_offset,
6043 depth,
6044 )?;
6045
6046 _prev_end_offset = cur_offset + envelope_size;
6047
6048 Ok(())
6049 }
6050 }
6051
6052 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Resolver {
6053 #[inline(always)]
6054 fn new_empty() -> Self {
6055 Self::default()
6056 }
6057
6058 unsafe fn decode(
6059 &mut self,
6060 decoder: &mut fidl::encoding::Decoder<'_, D>,
6061 offset: usize,
6062 mut depth: fidl::encoding::Depth,
6063 ) -> fidl::Result<()> {
6064 decoder.debug_check_bounds::<Self>(offset);
6065 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6066 None => return Err(fidl::Error::NotNullable),
6067 Some(len) => len,
6068 };
6069 if len == 0 {
6071 return Ok(());
6072 };
6073 depth.increment()?;
6074 let envelope_size = 8;
6075 let bytes_len = len * envelope_size;
6076 let offset = decoder.out_of_line_offset(bytes_len)?;
6077 let mut _next_ordinal_to_read = 0;
6079 let mut next_offset = offset;
6080 let end_offset = offset + bytes_len;
6081 _next_ordinal_to_read += 1;
6082 if next_offset >= end_offset {
6083 return Ok(());
6084 }
6085
6086 while _next_ordinal_to_read < 1 {
6088 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6089 _next_ordinal_to_read += 1;
6090 next_offset += envelope_size;
6091 }
6092
6093 let next_out_of_line = decoder.next_out_of_line();
6094 let handles_before = decoder.remaining_handles();
6095 if let Some((inlined, num_bytes, num_handles)) =
6096 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6097 {
6098 let member_inline_size =
6099 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6100 decoder.context,
6101 );
6102 if inlined != (member_inline_size <= 4) {
6103 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6104 }
6105 let inner_offset;
6106 let mut inner_depth = depth.clone();
6107 if inlined {
6108 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6109 inner_offset = next_offset;
6110 } else {
6111 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6112 inner_depth.increment()?;
6113 }
6114 let val_ref = self
6115 .name
6116 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6117 fidl::decode!(
6118 fidl::encoding::BoundedString<255>,
6119 D,
6120 val_ref,
6121 decoder,
6122 inner_offset,
6123 inner_depth
6124 )?;
6125 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6126 {
6127 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6128 }
6129 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6130 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6131 }
6132 }
6133
6134 next_offset += envelope_size;
6135 _next_ordinal_to_read += 1;
6136 if next_offset >= end_offset {
6137 return Ok(());
6138 }
6139
6140 while _next_ordinal_to_read < 2 {
6142 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6143 _next_ordinal_to_read += 1;
6144 next_offset += envelope_size;
6145 }
6146
6147 let next_out_of_line = decoder.next_out_of_line();
6148 let handles_before = decoder.remaining_handles();
6149 if let Some((inlined, num_bytes, num_handles)) =
6150 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6151 {
6152 let member_inline_size =
6153 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6154 decoder.context,
6155 );
6156 if inlined != (member_inline_size <= 4) {
6157 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6158 }
6159 let inner_offset;
6160 let mut inner_depth = depth.clone();
6161 if inlined {
6162 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6163 inner_offset = next_offset;
6164 } else {
6165 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6166 inner_depth.increment()?;
6167 }
6168 let val_ref = self
6169 .as_
6170 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6171 fidl::decode!(
6172 fidl::encoding::BoundedString<255>,
6173 D,
6174 val_ref,
6175 decoder,
6176 inner_offset,
6177 inner_depth
6178 )?;
6179 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6180 {
6181 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6182 }
6183 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6184 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6185 }
6186 }
6187
6188 next_offset += envelope_size;
6189 _next_ordinal_to_read += 1;
6190 if next_offset >= end_offset {
6191 return Ok(());
6192 }
6193
6194 while _next_ordinal_to_read < 3 {
6196 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6197 _next_ordinal_to_read += 1;
6198 next_offset += envelope_size;
6199 }
6200
6201 let next_out_of_line = decoder.next_out_of_line();
6202 let handles_before = decoder.remaining_handles();
6203 if let Some((inlined, num_bytes, num_handles)) =
6204 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6205 {
6206 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6207 if inlined != (member_inline_size <= 4) {
6208 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6209 }
6210 let inner_offset;
6211 let mut inner_depth = depth.clone();
6212 if inlined {
6213 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6214 inner_offset = next_offset;
6215 } else {
6216 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6217 inner_depth.increment()?;
6218 }
6219 let val_ref = self.path.get_or_insert_with(|| {
6220 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
6221 });
6222 fidl::decode!(
6223 fidl::encoding::BoundedString<4095>,
6224 D,
6225 val_ref,
6226 decoder,
6227 inner_offset,
6228 inner_depth
6229 )?;
6230 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6231 {
6232 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6233 }
6234 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6235 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6236 }
6237 }
6238
6239 next_offset += envelope_size;
6240 _next_ordinal_to_read += 1;
6241 if next_offset >= end_offset {
6242 return Ok(());
6243 }
6244
6245 while _next_ordinal_to_read < 4 {
6247 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6248 _next_ordinal_to_read += 1;
6249 next_offset += envelope_size;
6250 }
6251
6252 let next_out_of_line = decoder.next_out_of_line();
6253 let handles_before = decoder.remaining_handles();
6254 if let Some((inlined, num_bytes, num_handles)) =
6255 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6256 {
6257 let member_inline_size =
6258 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
6259 decoder.context,
6260 );
6261 if inlined != (member_inline_size <= 4) {
6262 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6263 }
6264 let inner_offset;
6265 let mut inner_depth = depth.clone();
6266 if inlined {
6267 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6268 inner_offset = next_offset;
6269 } else {
6270 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6271 inner_depth.increment()?;
6272 }
6273 let val_ref = self
6274 .from_dictionary
6275 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
6276 fidl::decode!(
6277 fidl::encoding::UnboundedString,
6278 D,
6279 val_ref,
6280 decoder,
6281 inner_offset,
6282 inner_depth
6283 )?;
6284 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6285 {
6286 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6287 }
6288 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6289 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6290 }
6291 }
6292
6293 next_offset += envelope_size;
6294
6295 while next_offset < end_offset {
6297 _next_ordinal_to_read += 1;
6298 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6299 next_offset += envelope_size;
6300 }
6301
6302 Ok(())
6303 }
6304 }
6305
6306 impl Runner {
6307 #[inline(always)]
6308 fn max_ordinal_present(&self) -> u64 {
6309 if let Some(_) = self.from_dictionary {
6310 return 4;
6311 }
6312 if let Some(_) = self.path {
6313 return 3;
6314 }
6315 if let Some(_) = self.as_ {
6316 return 2;
6317 }
6318 if let Some(_) = self.name {
6319 return 1;
6320 }
6321 0
6322 }
6323 }
6324
6325 impl fidl::encoding::ValueTypeMarker for Runner {
6326 type Borrowed<'a> = &'a Self;
6327 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6328 value
6329 }
6330 }
6331
6332 unsafe impl fidl::encoding::TypeMarker for Runner {
6333 type Owned = Self;
6334
6335 #[inline(always)]
6336 fn inline_align(_context: fidl::encoding::Context) -> usize {
6337 8
6338 }
6339
6340 #[inline(always)]
6341 fn inline_size(_context: fidl::encoding::Context) -> usize {
6342 16
6343 }
6344 }
6345
6346 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Runner, D> for &Runner {
6347 unsafe fn encode(
6348 self,
6349 encoder: &mut fidl::encoding::Encoder<'_, D>,
6350 offset: usize,
6351 mut depth: fidl::encoding::Depth,
6352 ) -> fidl::Result<()> {
6353 encoder.debug_check_bounds::<Runner>(offset);
6354 let max_ordinal: u64 = self.max_ordinal_present();
6356 encoder.write_num(max_ordinal, offset);
6357 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6358 if max_ordinal == 0 {
6360 return Ok(());
6361 }
6362 depth.increment()?;
6363 let envelope_size = 8;
6364 let bytes_len = max_ordinal as usize * envelope_size;
6365 #[allow(unused_variables)]
6366 let offset = encoder.out_of_line_offset(bytes_len);
6367 let mut _prev_end_offset: usize = 0;
6368 if 1 > max_ordinal {
6369 return Ok(());
6370 }
6371
6372 let cur_offset: usize = (1 - 1) * envelope_size;
6375
6376 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6378
6379 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6384 self.name.as_ref().map(
6385 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6386 ),
6387 encoder,
6388 offset + cur_offset,
6389 depth,
6390 )?;
6391
6392 _prev_end_offset = cur_offset + envelope_size;
6393 if 2 > max_ordinal {
6394 return Ok(());
6395 }
6396
6397 let cur_offset: usize = (2 - 1) * envelope_size;
6400
6401 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6403
6404 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6409 self.as_.as_ref().map(
6410 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6411 ),
6412 encoder,
6413 offset + cur_offset,
6414 depth,
6415 )?;
6416
6417 _prev_end_offset = cur_offset + envelope_size;
6418 if 3 > max_ordinal {
6419 return Ok(());
6420 }
6421
6422 let cur_offset: usize = (3 - 1) * envelope_size;
6425
6426 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6428
6429 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6434 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6435 encoder, offset + cur_offset, depth
6436 )?;
6437
6438 _prev_end_offset = cur_offset + envelope_size;
6439 if 4 > max_ordinal {
6440 return Ok(());
6441 }
6442
6443 let cur_offset: usize = (4 - 1) * envelope_size;
6446
6447 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6449
6450 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
6455 self.from_dictionary.as_ref().map(
6456 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
6457 ),
6458 encoder,
6459 offset + cur_offset,
6460 depth,
6461 )?;
6462
6463 _prev_end_offset = cur_offset + envelope_size;
6464
6465 Ok(())
6466 }
6467 }
6468
6469 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Runner {
6470 #[inline(always)]
6471 fn new_empty() -> Self {
6472 Self::default()
6473 }
6474
6475 unsafe fn decode(
6476 &mut self,
6477 decoder: &mut fidl::encoding::Decoder<'_, D>,
6478 offset: usize,
6479 mut depth: fidl::encoding::Depth,
6480 ) -> fidl::Result<()> {
6481 decoder.debug_check_bounds::<Self>(offset);
6482 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6483 None => return Err(fidl::Error::NotNullable),
6484 Some(len) => len,
6485 };
6486 if len == 0 {
6488 return Ok(());
6489 };
6490 depth.increment()?;
6491 let envelope_size = 8;
6492 let bytes_len = len * envelope_size;
6493 let offset = decoder.out_of_line_offset(bytes_len)?;
6494 let mut _next_ordinal_to_read = 0;
6496 let mut next_offset = offset;
6497 let end_offset = offset + bytes_len;
6498 _next_ordinal_to_read += 1;
6499 if next_offset >= end_offset {
6500 return Ok(());
6501 }
6502
6503 while _next_ordinal_to_read < 1 {
6505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6506 _next_ordinal_to_read += 1;
6507 next_offset += envelope_size;
6508 }
6509
6510 let next_out_of_line = decoder.next_out_of_line();
6511 let handles_before = decoder.remaining_handles();
6512 if let Some((inlined, num_bytes, num_handles)) =
6513 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6514 {
6515 let member_inline_size =
6516 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6517 decoder.context,
6518 );
6519 if inlined != (member_inline_size <= 4) {
6520 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6521 }
6522 let inner_offset;
6523 let mut inner_depth = depth.clone();
6524 if inlined {
6525 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6526 inner_offset = next_offset;
6527 } else {
6528 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6529 inner_depth.increment()?;
6530 }
6531 let val_ref = self
6532 .name
6533 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6534 fidl::decode!(
6535 fidl::encoding::BoundedString<255>,
6536 D,
6537 val_ref,
6538 decoder,
6539 inner_offset,
6540 inner_depth
6541 )?;
6542 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6543 {
6544 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6545 }
6546 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6547 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6548 }
6549 }
6550
6551 next_offset += envelope_size;
6552 _next_ordinal_to_read += 1;
6553 if next_offset >= end_offset {
6554 return Ok(());
6555 }
6556
6557 while _next_ordinal_to_read < 2 {
6559 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6560 _next_ordinal_to_read += 1;
6561 next_offset += envelope_size;
6562 }
6563
6564 let next_out_of_line = decoder.next_out_of_line();
6565 let handles_before = decoder.remaining_handles();
6566 if let Some((inlined, num_bytes, num_handles)) =
6567 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6568 {
6569 let member_inline_size =
6570 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6571 decoder.context,
6572 );
6573 if inlined != (member_inline_size <= 4) {
6574 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6575 }
6576 let inner_offset;
6577 let mut inner_depth = depth.clone();
6578 if inlined {
6579 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6580 inner_offset = next_offset;
6581 } else {
6582 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6583 inner_depth.increment()?;
6584 }
6585 let val_ref = self
6586 .as_
6587 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6588 fidl::decode!(
6589 fidl::encoding::BoundedString<255>,
6590 D,
6591 val_ref,
6592 decoder,
6593 inner_offset,
6594 inner_depth
6595 )?;
6596 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6597 {
6598 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6599 }
6600 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6601 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6602 }
6603 }
6604
6605 next_offset += envelope_size;
6606 _next_ordinal_to_read += 1;
6607 if next_offset >= end_offset {
6608 return Ok(());
6609 }
6610
6611 while _next_ordinal_to_read < 3 {
6613 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6614 _next_ordinal_to_read += 1;
6615 next_offset += envelope_size;
6616 }
6617
6618 let next_out_of_line = decoder.next_out_of_line();
6619 let handles_before = decoder.remaining_handles();
6620 if let Some((inlined, num_bytes, num_handles)) =
6621 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6622 {
6623 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6624 if inlined != (member_inline_size <= 4) {
6625 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6626 }
6627 let inner_offset;
6628 let mut inner_depth = depth.clone();
6629 if inlined {
6630 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6631 inner_offset = next_offset;
6632 } else {
6633 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6634 inner_depth.increment()?;
6635 }
6636 let val_ref = self.path.get_or_insert_with(|| {
6637 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
6638 });
6639 fidl::decode!(
6640 fidl::encoding::BoundedString<4095>,
6641 D,
6642 val_ref,
6643 decoder,
6644 inner_offset,
6645 inner_depth
6646 )?;
6647 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6648 {
6649 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6650 }
6651 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6652 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6653 }
6654 }
6655
6656 next_offset += envelope_size;
6657 _next_ordinal_to_read += 1;
6658 if next_offset >= end_offset {
6659 return Ok(());
6660 }
6661
6662 while _next_ordinal_to_read < 4 {
6664 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6665 _next_ordinal_to_read += 1;
6666 next_offset += envelope_size;
6667 }
6668
6669 let next_out_of_line = decoder.next_out_of_line();
6670 let handles_before = decoder.remaining_handles();
6671 if let Some((inlined, num_bytes, num_handles)) =
6672 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6673 {
6674 let member_inline_size =
6675 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
6676 decoder.context,
6677 );
6678 if inlined != (member_inline_size <= 4) {
6679 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6680 }
6681 let inner_offset;
6682 let mut inner_depth = depth.clone();
6683 if inlined {
6684 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6685 inner_offset = next_offset;
6686 } else {
6687 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6688 inner_depth.increment()?;
6689 }
6690 let val_ref = self
6691 .from_dictionary
6692 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
6693 fidl::decode!(
6694 fidl::encoding::UnboundedString,
6695 D,
6696 val_ref,
6697 decoder,
6698 inner_offset,
6699 inner_depth
6700 )?;
6701 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6702 {
6703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6704 }
6705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6707 }
6708 }
6709
6710 next_offset += envelope_size;
6711
6712 while next_offset < end_offset {
6714 _next_ordinal_to_read += 1;
6715 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6716 next_offset += envelope_size;
6717 }
6718
6719 Ok(())
6720 }
6721 }
6722
6723 impl Service {
6724 #[inline(always)]
6725 fn max_ordinal_present(&self) -> u64 {
6726 if let Some(_) = self.from_dictionary {
6727 return 5;
6728 }
6729 if let Some(_) = self.availability {
6730 return 4;
6731 }
6732 if let Some(_) = self.path {
6733 return 3;
6734 }
6735 if let Some(_) = self.as_ {
6736 return 2;
6737 }
6738 if let Some(_) = self.name {
6739 return 1;
6740 }
6741 0
6742 }
6743 }
6744
6745 impl fidl::encoding::ValueTypeMarker for Service {
6746 type Borrowed<'a> = &'a Self;
6747 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6748 value
6749 }
6750 }
6751
6752 unsafe impl fidl::encoding::TypeMarker for Service {
6753 type Owned = Self;
6754
6755 #[inline(always)]
6756 fn inline_align(_context: fidl::encoding::Context) -> usize {
6757 8
6758 }
6759
6760 #[inline(always)]
6761 fn inline_size(_context: fidl::encoding::Context) -> usize {
6762 16
6763 }
6764 }
6765
6766 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Service, D> for &Service {
6767 unsafe fn encode(
6768 self,
6769 encoder: &mut fidl::encoding::Encoder<'_, D>,
6770 offset: usize,
6771 mut depth: fidl::encoding::Depth,
6772 ) -> fidl::Result<()> {
6773 encoder.debug_check_bounds::<Service>(offset);
6774 let max_ordinal: u64 = self.max_ordinal_present();
6776 encoder.write_num(max_ordinal, offset);
6777 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6778 if max_ordinal == 0 {
6780 return Ok(());
6781 }
6782 depth.increment()?;
6783 let envelope_size = 8;
6784 let bytes_len = max_ordinal as usize * envelope_size;
6785 #[allow(unused_variables)]
6786 let offset = encoder.out_of_line_offset(bytes_len);
6787 let mut _prev_end_offset: usize = 0;
6788 if 1 > max_ordinal {
6789 return Ok(());
6790 }
6791
6792 let cur_offset: usize = (1 - 1) * envelope_size;
6795
6796 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6798
6799 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6804 self.name.as_ref().map(
6805 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6806 ),
6807 encoder,
6808 offset + cur_offset,
6809 depth,
6810 )?;
6811
6812 _prev_end_offset = cur_offset + envelope_size;
6813 if 2 > max_ordinal {
6814 return Ok(());
6815 }
6816
6817 let cur_offset: usize = (2 - 1) * envelope_size;
6820
6821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6823
6824 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6829 self.as_.as_ref().map(
6830 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6831 ),
6832 encoder,
6833 offset + cur_offset,
6834 depth,
6835 )?;
6836
6837 _prev_end_offset = cur_offset + envelope_size;
6838 if 3 > max_ordinal {
6839 return Ok(());
6840 }
6841
6842 let cur_offset: usize = (3 - 1) * envelope_size;
6845
6846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6848
6849 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6854 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6855 encoder, offset + cur_offset, depth
6856 )?;
6857
6858 _prev_end_offset = cur_offset + envelope_size;
6859 if 4 > max_ordinal {
6860 return Ok(());
6861 }
6862
6863 let cur_offset: usize = (4 - 1) * envelope_size;
6866
6867 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6869
6870 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::Availability, D>(
6875 self.availability.as_ref().map(<fidl_fuchsia_component_decl::Availability as fidl::encoding::ValueTypeMarker>::borrow),
6876 encoder, offset + cur_offset, depth
6877 )?;
6878
6879 _prev_end_offset = cur_offset + envelope_size;
6880 if 5 > max_ordinal {
6881 return Ok(());
6882 }
6883
6884 let cur_offset: usize = (5 - 1) * envelope_size;
6887
6888 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6890
6891 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
6896 self.from_dictionary.as_ref().map(
6897 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
6898 ),
6899 encoder,
6900 offset + cur_offset,
6901 depth,
6902 )?;
6903
6904 _prev_end_offset = cur_offset + envelope_size;
6905
6906 Ok(())
6907 }
6908 }
6909
6910 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Service {
6911 #[inline(always)]
6912 fn new_empty() -> Self {
6913 Self::default()
6914 }
6915
6916 unsafe fn decode(
6917 &mut self,
6918 decoder: &mut fidl::encoding::Decoder<'_, D>,
6919 offset: usize,
6920 mut depth: fidl::encoding::Depth,
6921 ) -> fidl::Result<()> {
6922 decoder.debug_check_bounds::<Self>(offset);
6923 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6924 None => return Err(fidl::Error::NotNullable),
6925 Some(len) => len,
6926 };
6927 if len == 0 {
6929 return Ok(());
6930 };
6931 depth.increment()?;
6932 let envelope_size = 8;
6933 let bytes_len = len * envelope_size;
6934 let offset = decoder.out_of_line_offset(bytes_len)?;
6935 let mut _next_ordinal_to_read = 0;
6937 let mut next_offset = offset;
6938 let end_offset = offset + bytes_len;
6939 _next_ordinal_to_read += 1;
6940 if next_offset >= end_offset {
6941 return Ok(());
6942 }
6943
6944 while _next_ordinal_to_read < 1 {
6946 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6947 _next_ordinal_to_read += 1;
6948 next_offset += envelope_size;
6949 }
6950
6951 let next_out_of_line = decoder.next_out_of_line();
6952 let handles_before = decoder.remaining_handles();
6953 if let Some((inlined, num_bytes, num_handles)) =
6954 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6955 {
6956 let member_inline_size =
6957 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6958 decoder.context,
6959 );
6960 if inlined != (member_inline_size <= 4) {
6961 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6962 }
6963 let inner_offset;
6964 let mut inner_depth = depth.clone();
6965 if inlined {
6966 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6967 inner_offset = next_offset;
6968 } else {
6969 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6970 inner_depth.increment()?;
6971 }
6972 let val_ref = self
6973 .name
6974 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6975 fidl::decode!(
6976 fidl::encoding::BoundedString<255>,
6977 D,
6978 val_ref,
6979 decoder,
6980 inner_offset,
6981 inner_depth
6982 )?;
6983 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6984 {
6985 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6986 }
6987 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6988 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6989 }
6990 }
6991
6992 next_offset += envelope_size;
6993 _next_ordinal_to_read += 1;
6994 if next_offset >= end_offset {
6995 return Ok(());
6996 }
6997
6998 while _next_ordinal_to_read < 2 {
7000 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7001 _next_ordinal_to_read += 1;
7002 next_offset += envelope_size;
7003 }
7004
7005 let next_out_of_line = decoder.next_out_of_line();
7006 let handles_before = decoder.remaining_handles();
7007 if let Some((inlined, num_bytes, num_handles)) =
7008 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7009 {
7010 let member_inline_size =
7011 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7012 decoder.context,
7013 );
7014 if inlined != (member_inline_size <= 4) {
7015 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7016 }
7017 let inner_offset;
7018 let mut inner_depth = depth.clone();
7019 if inlined {
7020 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7021 inner_offset = next_offset;
7022 } else {
7023 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7024 inner_depth.increment()?;
7025 }
7026 let val_ref = self
7027 .as_
7028 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7029 fidl::decode!(
7030 fidl::encoding::BoundedString<255>,
7031 D,
7032 val_ref,
7033 decoder,
7034 inner_offset,
7035 inner_depth
7036 )?;
7037 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7038 {
7039 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7040 }
7041 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7042 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7043 }
7044 }
7045
7046 next_offset += envelope_size;
7047 _next_ordinal_to_read += 1;
7048 if next_offset >= end_offset {
7049 return Ok(());
7050 }
7051
7052 while _next_ordinal_to_read < 3 {
7054 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7055 _next_ordinal_to_read += 1;
7056 next_offset += envelope_size;
7057 }
7058
7059 let next_out_of_line = decoder.next_out_of_line();
7060 let handles_before = decoder.remaining_handles();
7061 if let Some((inlined, num_bytes, num_handles)) =
7062 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7063 {
7064 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7065 if inlined != (member_inline_size <= 4) {
7066 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7067 }
7068 let inner_offset;
7069 let mut inner_depth = depth.clone();
7070 if inlined {
7071 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7072 inner_offset = next_offset;
7073 } else {
7074 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7075 inner_depth.increment()?;
7076 }
7077 let val_ref = self.path.get_or_insert_with(|| {
7078 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
7079 });
7080 fidl::decode!(
7081 fidl::encoding::BoundedString<4095>,
7082 D,
7083 val_ref,
7084 decoder,
7085 inner_offset,
7086 inner_depth
7087 )?;
7088 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7089 {
7090 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7091 }
7092 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7093 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7094 }
7095 }
7096
7097 next_offset += envelope_size;
7098 _next_ordinal_to_read += 1;
7099 if next_offset >= end_offset {
7100 return Ok(());
7101 }
7102
7103 while _next_ordinal_to_read < 4 {
7105 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7106 _next_ordinal_to_read += 1;
7107 next_offset += envelope_size;
7108 }
7109
7110 let next_out_of_line = decoder.next_out_of_line();
7111 let handles_before = decoder.remaining_handles();
7112 if let Some((inlined, num_bytes, num_handles)) =
7113 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7114 {
7115 let member_inline_size = <fidl_fuchsia_component_decl::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7116 if inlined != (member_inline_size <= 4) {
7117 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7118 }
7119 let inner_offset;
7120 let mut inner_depth = depth.clone();
7121 if inlined {
7122 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7123 inner_offset = next_offset;
7124 } else {
7125 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7126 inner_depth.increment()?;
7127 }
7128 let val_ref = self.availability.get_or_insert_with(|| {
7129 fidl::new_empty!(fidl_fuchsia_component_decl::Availability, D)
7130 });
7131 fidl::decode!(
7132 fidl_fuchsia_component_decl::Availability,
7133 D,
7134 val_ref,
7135 decoder,
7136 inner_offset,
7137 inner_depth
7138 )?;
7139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7140 {
7141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7142 }
7143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7145 }
7146 }
7147
7148 next_offset += envelope_size;
7149 _next_ordinal_to_read += 1;
7150 if next_offset >= end_offset {
7151 return Ok(());
7152 }
7153
7154 while _next_ordinal_to_read < 5 {
7156 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7157 _next_ordinal_to_read += 1;
7158 next_offset += envelope_size;
7159 }
7160
7161 let next_out_of_line = decoder.next_out_of_line();
7162 let handles_before = decoder.remaining_handles();
7163 if let Some((inlined, num_bytes, num_handles)) =
7164 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7165 {
7166 let member_inline_size =
7167 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
7168 decoder.context,
7169 );
7170 if inlined != (member_inline_size <= 4) {
7171 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7172 }
7173 let inner_offset;
7174 let mut inner_depth = depth.clone();
7175 if inlined {
7176 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7177 inner_offset = next_offset;
7178 } else {
7179 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7180 inner_depth.increment()?;
7181 }
7182 let val_ref = self
7183 .from_dictionary
7184 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
7185 fidl::decode!(
7186 fidl::encoding::UnboundedString,
7187 D,
7188 val_ref,
7189 decoder,
7190 inner_offset,
7191 inner_depth
7192 )?;
7193 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7194 {
7195 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7196 }
7197 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7198 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7199 }
7200 }
7201
7202 next_offset += envelope_size;
7203
7204 while next_offset < end_offset {
7206 _next_ordinal_to_read += 1;
7207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7208 next_offset += envelope_size;
7209 }
7210
7211 Ok(())
7212 }
7213 }
7214
7215 impl Storage {
7216 #[inline(always)]
7217 fn max_ordinal_present(&self) -> u64 {
7218 if let Some(_) = self.availability {
7219 return 4;
7220 }
7221 if let Some(_) = self.path {
7222 return 3;
7223 }
7224 if let Some(_) = self.as_ {
7225 return 2;
7226 }
7227 if let Some(_) = self.name {
7228 return 1;
7229 }
7230 0
7231 }
7232 }
7233
7234 impl fidl::encoding::ValueTypeMarker for Storage {
7235 type Borrowed<'a> = &'a Self;
7236 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7237 value
7238 }
7239 }
7240
7241 unsafe impl fidl::encoding::TypeMarker for Storage {
7242 type Owned = Self;
7243
7244 #[inline(always)]
7245 fn inline_align(_context: fidl::encoding::Context) -> usize {
7246 8
7247 }
7248
7249 #[inline(always)]
7250 fn inline_size(_context: fidl::encoding::Context) -> usize {
7251 16
7252 }
7253 }
7254
7255 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Storage, D> for &Storage {
7256 unsafe fn encode(
7257 self,
7258 encoder: &mut fidl::encoding::Encoder<'_, D>,
7259 offset: usize,
7260 mut depth: fidl::encoding::Depth,
7261 ) -> fidl::Result<()> {
7262 encoder.debug_check_bounds::<Storage>(offset);
7263 let max_ordinal: u64 = self.max_ordinal_present();
7265 encoder.write_num(max_ordinal, offset);
7266 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7267 if max_ordinal == 0 {
7269 return Ok(());
7270 }
7271 depth.increment()?;
7272 let envelope_size = 8;
7273 let bytes_len = max_ordinal as usize * envelope_size;
7274 #[allow(unused_variables)]
7275 let offset = encoder.out_of_line_offset(bytes_len);
7276 let mut _prev_end_offset: usize = 0;
7277 if 1 > max_ordinal {
7278 return Ok(());
7279 }
7280
7281 let cur_offset: usize = (1 - 1) * envelope_size;
7284
7285 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7287
7288 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7293 self.name.as_ref().map(
7294 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7295 ),
7296 encoder,
7297 offset + cur_offset,
7298 depth,
7299 )?;
7300
7301 _prev_end_offset = cur_offset + envelope_size;
7302 if 2 > max_ordinal {
7303 return Ok(());
7304 }
7305
7306 let cur_offset: usize = (2 - 1) * envelope_size;
7309
7310 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7312
7313 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7318 self.as_.as_ref().map(
7319 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7320 ),
7321 encoder,
7322 offset + cur_offset,
7323 depth,
7324 )?;
7325
7326 _prev_end_offset = cur_offset + envelope_size;
7327 if 3 > max_ordinal {
7328 return Ok(());
7329 }
7330
7331 let cur_offset: usize = (3 - 1) * envelope_size;
7334
7335 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7337
7338 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7343 self.path.as_ref().map(
7344 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7345 ),
7346 encoder,
7347 offset + cur_offset,
7348 depth,
7349 )?;
7350
7351 _prev_end_offset = cur_offset + envelope_size;
7352 if 4 > max_ordinal {
7353 return Ok(());
7354 }
7355
7356 let cur_offset: usize = (4 - 1) * envelope_size;
7359
7360 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7362
7363 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl::Availability, D>(
7368 self.availability.as_ref().map(<fidl_fuchsia_component_decl::Availability as fidl::encoding::ValueTypeMarker>::borrow),
7369 encoder, offset + cur_offset, depth
7370 )?;
7371
7372 _prev_end_offset = cur_offset + envelope_size;
7373
7374 Ok(())
7375 }
7376 }
7377
7378 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Storage {
7379 #[inline(always)]
7380 fn new_empty() -> Self {
7381 Self::default()
7382 }
7383
7384 unsafe fn decode(
7385 &mut self,
7386 decoder: &mut fidl::encoding::Decoder<'_, D>,
7387 offset: usize,
7388 mut depth: fidl::encoding::Depth,
7389 ) -> fidl::Result<()> {
7390 decoder.debug_check_bounds::<Self>(offset);
7391 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7392 None => return Err(fidl::Error::NotNullable),
7393 Some(len) => len,
7394 };
7395 if len == 0 {
7397 return Ok(());
7398 };
7399 depth.increment()?;
7400 let envelope_size = 8;
7401 let bytes_len = len * envelope_size;
7402 let offset = decoder.out_of_line_offset(bytes_len)?;
7403 let mut _next_ordinal_to_read = 0;
7405 let mut next_offset = offset;
7406 let end_offset = offset + bytes_len;
7407 _next_ordinal_to_read += 1;
7408 if next_offset >= end_offset {
7409 return Ok(());
7410 }
7411
7412 while _next_ordinal_to_read < 1 {
7414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7415 _next_ordinal_to_read += 1;
7416 next_offset += envelope_size;
7417 }
7418
7419 let next_out_of_line = decoder.next_out_of_line();
7420 let handles_before = decoder.remaining_handles();
7421 if let Some((inlined, num_bytes, num_handles)) =
7422 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7423 {
7424 let member_inline_size =
7425 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7426 decoder.context,
7427 );
7428 if inlined != (member_inline_size <= 4) {
7429 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7430 }
7431 let inner_offset;
7432 let mut inner_depth = depth.clone();
7433 if inlined {
7434 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7435 inner_offset = next_offset;
7436 } else {
7437 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7438 inner_depth.increment()?;
7439 }
7440 let val_ref = self
7441 .name
7442 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7443 fidl::decode!(
7444 fidl::encoding::BoundedString<255>,
7445 D,
7446 val_ref,
7447 decoder,
7448 inner_offset,
7449 inner_depth
7450 )?;
7451 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7452 {
7453 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7454 }
7455 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7456 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7457 }
7458 }
7459
7460 next_offset += envelope_size;
7461 _next_ordinal_to_read += 1;
7462 if next_offset >= end_offset {
7463 return Ok(());
7464 }
7465
7466 while _next_ordinal_to_read < 2 {
7468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7469 _next_ordinal_to_read += 1;
7470 next_offset += envelope_size;
7471 }
7472
7473 let next_out_of_line = decoder.next_out_of_line();
7474 let handles_before = decoder.remaining_handles();
7475 if let Some((inlined, num_bytes, num_handles)) =
7476 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7477 {
7478 let member_inline_size =
7479 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7480 decoder.context,
7481 );
7482 if inlined != (member_inline_size <= 4) {
7483 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7484 }
7485 let inner_offset;
7486 let mut inner_depth = depth.clone();
7487 if inlined {
7488 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7489 inner_offset = next_offset;
7490 } else {
7491 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7492 inner_depth.increment()?;
7493 }
7494 let val_ref = self
7495 .as_
7496 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7497 fidl::decode!(
7498 fidl::encoding::BoundedString<255>,
7499 D,
7500 val_ref,
7501 decoder,
7502 inner_offset,
7503 inner_depth
7504 )?;
7505 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7506 {
7507 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7508 }
7509 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7510 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7511 }
7512 }
7513
7514 next_offset += envelope_size;
7515 _next_ordinal_to_read += 1;
7516 if next_offset >= end_offset {
7517 return Ok(());
7518 }
7519
7520 while _next_ordinal_to_read < 3 {
7522 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7523 _next_ordinal_to_read += 1;
7524 next_offset += envelope_size;
7525 }
7526
7527 let next_out_of_line = decoder.next_out_of_line();
7528 let handles_before = decoder.remaining_handles();
7529 if let Some((inlined, num_bytes, num_handles)) =
7530 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7531 {
7532 let member_inline_size =
7533 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7534 decoder.context,
7535 );
7536 if inlined != (member_inline_size <= 4) {
7537 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7538 }
7539 let inner_offset;
7540 let mut inner_depth = depth.clone();
7541 if inlined {
7542 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7543 inner_offset = next_offset;
7544 } else {
7545 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7546 inner_depth.increment()?;
7547 }
7548 let val_ref = self
7549 .path
7550 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7551 fidl::decode!(
7552 fidl::encoding::BoundedString<255>,
7553 D,
7554 val_ref,
7555 decoder,
7556 inner_offset,
7557 inner_depth
7558 )?;
7559 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7560 {
7561 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7562 }
7563 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7564 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7565 }
7566 }
7567
7568 next_offset += envelope_size;
7569 _next_ordinal_to_read += 1;
7570 if next_offset >= end_offset {
7571 return Ok(());
7572 }
7573
7574 while _next_ordinal_to_read < 4 {
7576 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7577 _next_ordinal_to_read += 1;
7578 next_offset += envelope_size;
7579 }
7580
7581 let next_out_of_line = decoder.next_out_of_line();
7582 let handles_before = decoder.remaining_handles();
7583 if let Some((inlined, num_bytes, num_handles)) =
7584 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7585 {
7586 let member_inline_size = <fidl_fuchsia_component_decl::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7587 if inlined != (member_inline_size <= 4) {
7588 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7589 }
7590 let inner_offset;
7591 let mut inner_depth = depth.clone();
7592 if inlined {
7593 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7594 inner_offset = next_offset;
7595 } else {
7596 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7597 inner_depth.increment()?;
7598 }
7599 let val_ref = self.availability.get_or_insert_with(|| {
7600 fidl::new_empty!(fidl_fuchsia_component_decl::Availability, D)
7601 });
7602 fidl::decode!(
7603 fidl_fuchsia_component_decl::Availability,
7604 D,
7605 val_ref,
7606 decoder,
7607 inner_offset,
7608 inner_depth
7609 )?;
7610 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7611 {
7612 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7613 }
7614 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7615 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7616 }
7617 }
7618
7619 next_offset += envelope_size;
7620
7621 while next_offset < end_offset {
7623 _next_ordinal_to_read += 1;
7624 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7625 next_offset += envelope_size;
7626 }
7627
7628 Ok(())
7629 }
7630 }
7631
7632 impl fidl::encoding::ValueTypeMarker for Capability {
7633 type Borrowed<'a> = &'a Self;
7634 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7635 value
7636 }
7637 }
7638
7639 unsafe impl fidl::encoding::TypeMarker for Capability {
7640 type Owned = Self;
7641
7642 #[inline(always)]
7643 fn inline_align(_context: fidl::encoding::Context) -> usize {
7644 8
7645 }
7646
7647 #[inline(always)]
7648 fn inline_size(_context: fidl::encoding::Context) -> usize {
7649 16
7650 }
7651 }
7652
7653 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Capability, D>
7654 for &Capability
7655 {
7656 #[inline]
7657 unsafe fn encode(
7658 self,
7659 encoder: &mut fidl::encoding::Encoder<'_, D>,
7660 offset: usize,
7661 _depth: fidl::encoding::Depth,
7662 ) -> fidl::Result<()> {
7663 encoder.debug_check_bounds::<Capability>(offset);
7664 encoder.write_num::<u64>(self.ordinal(), offset);
7665 match self {
7666 Capability::Protocol(ref val) => fidl::encoding::encode_in_envelope::<Protocol, D>(
7667 <Protocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7668 encoder,
7669 offset + 8,
7670 _depth,
7671 ),
7672 Capability::Directory(ref val) => {
7673 fidl::encoding::encode_in_envelope::<Directory, D>(
7674 <Directory as fidl::encoding::ValueTypeMarker>::borrow(val),
7675 encoder,
7676 offset + 8,
7677 _depth,
7678 )
7679 }
7680 Capability::Storage(ref val) => fidl::encoding::encode_in_envelope::<Storage, D>(
7681 <Storage as fidl::encoding::ValueTypeMarker>::borrow(val),
7682 encoder,
7683 offset + 8,
7684 _depth,
7685 ),
7686 Capability::Service(ref val) => fidl::encoding::encode_in_envelope::<Service, D>(
7687 <Service as fidl::encoding::ValueTypeMarker>::borrow(val),
7688 encoder,
7689 offset + 8,
7690 _depth,
7691 ),
7692 Capability::EventStream(ref val) => {
7693 fidl::encoding::encode_in_envelope::<EventStream, D>(
7694 <EventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
7695 encoder,
7696 offset + 8,
7697 _depth,
7698 )
7699 }
7700 Capability::Config(ref val) => fidl::encoding::encode_in_envelope::<Config, D>(
7701 <Config as fidl::encoding::ValueTypeMarker>::borrow(val),
7702 encoder,
7703 offset + 8,
7704 _depth,
7705 ),
7706 Capability::Dictionary(ref val) => {
7707 fidl::encoding::encode_in_envelope::<Dictionary, D>(
7708 <Dictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
7709 encoder,
7710 offset + 8,
7711 _depth,
7712 )
7713 }
7714 Capability::Resolver(ref val) => fidl::encoding::encode_in_envelope::<Resolver, D>(
7715 <Resolver as fidl::encoding::ValueTypeMarker>::borrow(val),
7716 encoder,
7717 offset + 8,
7718 _depth,
7719 ),
7720 Capability::Runner(ref val) => fidl::encoding::encode_in_envelope::<Runner, D>(
7721 <Runner as fidl::encoding::ValueTypeMarker>::borrow(val),
7722 encoder,
7723 offset + 8,
7724 _depth,
7725 ),
7726 Capability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7727 }
7728 }
7729 }
7730
7731 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Capability {
7732 #[inline(always)]
7733 fn new_empty() -> Self {
7734 Self::__SourceBreaking { unknown_ordinal: 0 }
7735 }
7736
7737 #[inline]
7738 unsafe fn decode(
7739 &mut self,
7740 decoder: &mut fidl::encoding::Decoder<'_, D>,
7741 offset: usize,
7742 mut depth: fidl::encoding::Depth,
7743 ) -> fidl::Result<()> {
7744 decoder.debug_check_bounds::<Self>(offset);
7745 #[allow(unused_variables)]
7746 let next_out_of_line = decoder.next_out_of_line();
7747 let handles_before = decoder.remaining_handles();
7748 let (ordinal, inlined, num_bytes, num_handles) =
7749 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7750
7751 let member_inline_size = match ordinal {
7752 1 => <Protocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7753 2 => <Directory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7754 3 => <Storage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7755 4 => <Service as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7756 6 => <EventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7757 7 => <Config as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7758 8 => <Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7759 9 => <Resolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7760 10 => <Runner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7761 0 => return Err(fidl::Error::UnknownUnionTag),
7762 _ => num_bytes as usize,
7763 };
7764
7765 if inlined != (member_inline_size <= 4) {
7766 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7767 }
7768 let _inner_offset;
7769 if inlined {
7770 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7771 _inner_offset = offset + 8;
7772 } else {
7773 depth.increment()?;
7774 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7775 }
7776 match ordinal {
7777 1 => {
7778 #[allow(irrefutable_let_patterns)]
7779 if let Capability::Protocol(_) = self {
7780 } else {
7782 *self = Capability::Protocol(fidl::new_empty!(Protocol, D));
7784 }
7785 #[allow(irrefutable_let_patterns)]
7786 if let Capability::Protocol(ref mut val) = self {
7787 fidl::decode!(Protocol, D, val, decoder, _inner_offset, depth)?;
7788 } else {
7789 unreachable!()
7790 }
7791 }
7792 2 => {
7793 #[allow(irrefutable_let_patterns)]
7794 if let Capability::Directory(_) = self {
7795 } else {
7797 *self = Capability::Directory(fidl::new_empty!(Directory, D));
7799 }
7800 #[allow(irrefutable_let_patterns)]
7801 if let Capability::Directory(ref mut val) = self {
7802 fidl::decode!(Directory, D, val, decoder, _inner_offset, depth)?;
7803 } else {
7804 unreachable!()
7805 }
7806 }
7807 3 => {
7808 #[allow(irrefutable_let_patterns)]
7809 if let Capability::Storage(_) = self {
7810 } else {
7812 *self = Capability::Storage(fidl::new_empty!(Storage, D));
7814 }
7815 #[allow(irrefutable_let_patterns)]
7816 if let Capability::Storage(ref mut val) = self {
7817 fidl::decode!(Storage, D, val, decoder, _inner_offset, depth)?;
7818 } else {
7819 unreachable!()
7820 }
7821 }
7822 4 => {
7823 #[allow(irrefutable_let_patterns)]
7824 if let Capability::Service(_) = self {
7825 } else {
7827 *self = Capability::Service(fidl::new_empty!(Service, D));
7829 }
7830 #[allow(irrefutable_let_patterns)]
7831 if let Capability::Service(ref mut val) = self {
7832 fidl::decode!(Service, D, val, decoder, _inner_offset, depth)?;
7833 } else {
7834 unreachable!()
7835 }
7836 }
7837 6 => {
7838 #[allow(irrefutable_let_patterns)]
7839 if let Capability::EventStream(_) = self {
7840 } else {
7842 *self = Capability::EventStream(fidl::new_empty!(EventStream, D));
7844 }
7845 #[allow(irrefutable_let_patterns)]
7846 if let Capability::EventStream(ref mut val) = self {
7847 fidl::decode!(EventStream, D, val, decoder, _inner_offset, depth)?;
7848 } else {
7849 unreachable!()
7850 }
7851 }
7852 7 => {
7853 #[allow(irrefutable_let_patterns)]
7854 if let Capability::Config(_) = self {
7855 } else {
7857 *self = Capability::Config(fidl::new_empty!(Config, D));
7859 }
7860 #[allow(irrefutable_let_patterns)]
7861 if let Capability::Config(ref mut val) = self {
7862 fidl::decode!(Config, D, val, decoder, _inner_offset, depth)?;
7863 } else {
7864 unreachable!()
7865 }
7866 }
7867 8 => {
7868 #[allow(irrefutable_let_patterns)]
7869 if let Capability::Dictionary(_) = self {
7870 } else {
7872 *self = Capability::Dictionary(fidl::new_empty!(Dictionary, D));
7874 }
7875 #[allow(irrefutable_let_patterns)]
7876 if let Capability::Dictionary(ref mut val) = self {
7877 fidl::decode!(Dictionary, D, val, decoder, _inner_offset, depth)?;
7878 } else {
7879 unreachable!()
7880 }
7881 }
7882 9 => {
7883 #[allow(irrefutable_let_patterns)]
7884 if let Capability::Resolver(_) = self {
7885 } else {
7887 *self = Capability::Resolver(fidl::new_empty!(Resolver, D));
7889 }
7890 #[allow(irrefutable_let_patterns)]
7891 if let Capability::Resolver(ref mut val) = self {
7892 fidl::decode!(Resolver, D, val, decoder, _inner_offset, depth)?;
7893 } else {
7894 unreachable!()
7895 }
7896 }
7897 10 => {
7898 #[allow(irrefutable_let_patterns)]
7899 if let Capability::Runner(_) = self {
7900 } else {
7902 *self = Capability::Runner(fidl::new_empty!(Runner, D));
7904 }
7905 #[allow(irrefutable_let_patterns)]
7906 if let Capability::Runner(ref mut val) = self {
7907 fidl::decode!(Runner, D, val, decoder, _inner_offset, depth)?;
7908 } else {
7909 unreachable!()
7910 }
7911 }
7912 #[allow(deprecated)]
7913 ordinal => {
7914 for _ in 0..num_handles {
7915 decoder.drop_next_handle()?;
7916 }
7917 *self = Capability::__SourceBreaking { unknown_ordinal: ordinal };
7918 }
7919 }
7920 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7922 }
7923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7925 }
7926 Ok(())
7927 }
7928 }
7929}