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__common::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__common::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__common::Collection,
233}
234
235impl fidl::Persistable for RealmAddCollectionRequest {}
236
237#[derive(Clone, Debug, PartialEq)]
238pub struct RealmAddEnvironmentRequest {
239 pub environment: fidl_fuchsia_component_decl__common::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 RealmAddRouteFromDictionaryRequest {
256 pub capabilities: Vec<Capability>,
258 pub from: fidl_fuchsia_component_decl__common::Ref,
260 pub from_dictionary: String,
264 pub to: Vec<fidl_fuchsia_component_decl__common::Ref>,
266}
267
268impl fidl::Persistable for RealmAddRouteFromDictionaryRequest {}
269
270#[derive(Clone, Debug, PartialEq)]
271pub struct RealmAddRouteRequest {
272 pub capabilities: Vec<Capability>,
274 pub from: fidl_fuchsia_component_decl__common::Ref,
276 pub to: Vec<fidl_fuchsia_component_decl__common::Ref>,
278}
279
280impl fidl::Persistable for RealmAddRouteRequest {}
281
282#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
283pub struct RealmGetComponentDeclRequest {
284 pub name: String,
286}
287
288impl fidl::Persistable for RealmGetComponentDeclRequest {}
289
290#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
291pub struct RealmInitMutableConfigFromPackageRequest {
292 pub name: String,
293}
294
295impl fidl::Persistable for RealmInitMutableConfigFromPackageRequest {}
296
297#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
298pub struct RealmInitMutableConfigToEmptyRequest {
299 pub name: String,
300}
301
302impl fidl::Persistable for RealmInitMutableConfigToEmptyRequest {}
303
304#[derive(Clone, Debug, PartialEq)]
305pub struct RealmReplaceComponentDeclRequest {
306 pub name: String,
308 pub component_decl: fidl_fuchsia_component_decl__common::Component,
310}
311
312impl fidl::Persistable for RealmReplaceComponentDeclRequest {}
313
314#[derive(Clone, Debug, PartialEq)]
315pub struct RealmReplaceRealmDeclRequest {
316 pub component_decl: fidl_fuchsia_component_decl__common::Component,
318}
319
320impl fidl::Persistable for RealmReplaceRealmDeclRequest {}
321
322#[derive(Clone, Debug, PartialEq)]
323pub struct RealmSetConfigValueRequest {
324 pub name: String,
326 pub key: String,
328 pub value: fidl_fuchsia_component_decl__common::ConfigValueSpec,
330}
331
332impl fidl::Persistable for RealmSetConfigValueRequest {}
333
334#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
335pub struct RealmUseNestedComponentManagerRequest {
336 pub component_manager_relative_url: String,
337}
338
339impl fidl::Persistable for RealmUseNestedComponentManagerRequest {}
340
341#[derive(Clone, Debug, PartialEq)]
342pub struct RealmGetComponentDeclResponse {
343 pub component_decl: fidl_fuchsia_component_decl__common::Component,
344}
345
346impl fidl::Persistable for RealmGetComponentDeclResponse {}
347
348#[derive(Clone, Debug, PartialEq)]
349pub struct RealmGetRealmDeclResponse {
350 pub component_decl: fidl_fuchsia_component_decl__common::Component,
351}
352
353impl fidl::Persistable for RealmGetRealmDeclResponse {}
354
355#[derive(Clone, Debug, Default, PartialEq)]
357pub struct ChildOptions {
358 pub startup: Option<fidl_fuchsia_component_decl__common::StartupMode>,
362 pub environment: Option<String>,
364 pub on_terminate: Option<fidl_fuchsia_component_decl__common::OnTerminate>,
368 pub config_overrides: Option<Vec<fidl_fuchsia_component_decl__common::ConfigOverride>>,
373 #[doc(hidden)]
374 pub __source_breaking: fidl::marker::SourceBreaking,
375}
376
377impl fidl::Persistable for ChildOptions {}
378
379#[derive(Clone, Debug, Default, PartialEq)]
381pub struct Config {
382 pub name: Option<String>,
384 pub as_: Option<String>,
387 pub availability: Option<fidl_fuchsia_component_decl__common::Availability>,
390 #[doc(hidden)]
391 pub __source_breaking: fidl::marker::SourceBreaking,
392}
393
394impl fidl::Persistable for Config {}
395
396#[derive(Clone, Debug, Default, PartialEq)]
398pub struct Dictionary {
399 pub name: Option<String>,
401 pub as_: Option<String>,
404 pub type_: Option<fidl_fuchsia_component_decl__common::DependencyType>,
408 pub availability: Option<fidl_fuchsia_component_decl__common::Availability>,
411 pub from_dictionary: Option<String>,
414 #[doc(hidden)]
415 pub __source_breaking: fidl::marker::SourceBreaking,
416}
417
418impl fidl::Persistable for Dictionary {}
419
420#[derive(Clone, Debug, Default, PartialEq)]
422pub struct Directory {
423 pub name: Option<String>,
426 pub as_: Option<String>,
429 pub type_: Option<fidl_fuchsia_component_decl__common::DependencyType>,
433 pub subdir: Option<String>,
437 pub rights: Option<fidl_fuchsia_io__common::Operations>,
441 pub path: Option<String>,
445 pub availability: Option<fidl_fuchsia_component_decl__common::Availability>,
448 pub from_dictionary: Option<String>,
451 #[doc(hidden)]
452 pub __source_breaking: fidl::marker::SourceBreaking,
453}
454
455impl fidl::Persistable for Directory {}
456
457#[derive(Clone, Debug, Default, PartialEq)]
459pub struct Event {
460 pub name: Option<String>,
462 pub as_: Option<String>,
465 pub filter: Option<fidl_fuchsia_data__common::Dictionary>,
467 pub availability: Option<fidl_fuchsia_component_decl__common::Availability>,
470 #[doc(hidden)]
471 pub __source_breaking: fidl::marker::SourceBreaking,
472}
473
474impl fidl::Persistable for Event {}
475
476#[derive(Clone, Debug, Default, PartialEq)]
478pub struct EventStream {
479 pub name: Option<String>,
481 pub as_: Option<String>,
483 pub path: Option<String>,
485 pub filter: Option<fidl_fuchsia_data__common::Dictionary>,
487 pub scope: Option<Vec<fidl_fuchsia_component_decl__common::Ref>>,
490 #[doc(hidden)]
491 pub __source_breaking: fidl::marker::SourceBreaking,
492}
493
494impl fidl::Persistable for EventStream {}
495
496#[derive(Clone, Debug, Default, PartialEq)]
498pub struct Protocol {
499 pub name: Option<String>,
504 pub as_: Option<String>,
507 pub type_: Option<fidl_fuchsia_component_decl__common::DependencyType>,
511 pub path: Option<String>,
516 pub availability: Option<fidl_fuchsia_component_decl__common::Availability>,
519 pub from_dictionary: Option<String>,
522 #[doc(hidden)]
523 pub __source_breaking: fidl::marker::SourceBreaking,
524}
525
526impl fidl::Persistable for Protocol {}
527
528#[derive(Clone, Debug, Default, PartialEq)]
530pub struct Resolver {
531 pub name: Option<String>,
533 pub as_: Option<String>,
536 pub path: Option<String>,
541 pub from_dictionary: Option<String>,
544 #[doc(hidden)]
545 pub __source_breaking: fidl::marker::SourceBreaking,
546}
547
548impl fidl::Persistable for Resolver {}
549
550#[derive(Clone, Debug, Default, PartialEq)]
552pub struct Runner {
553 pub name: Option<String>,
555 pub as_: Option<String>,
558 pub path: Option<String>,
563 pub from_dictionary: Option<String>,
566 #[doc(hidden)]
567 pub __source_breaking: fidl::marker::SourceBreaking,
568}
569
570impl fidl::Persistable for Runner {}
571
572#[derive(Clone, Debug, Default, PartialEq)]
574pub struct Service {
575 pub name: Option<String>,
580 pub as_: Option<String>,
583 pub path: Option<String>,
588 pub availability: Option<fidl_fuchsia_component_decl__common::Availability>,
591 pub from_dictionary: Option<String>,
594 #[doc(hidden)]
595 pub __source_breaking: fidl::marker::SourceBreaking,
596}
597
598impl fidl::Persistable for Service {}
599
600#[derive(Clone, Debug, Default, PartialEq)]
602pub struct Storage {
603 pub name: Option<String>,
606 pub as_: Option<String>,
609 pub path: Option<String>,
613 pub availability: Option<fidl_fuchsia_component_decl__common::Availability>,
616 #[doc(hidden)]
617 pub __source_breaking: fidl::marker::SourceBreaking,
618}
619
620impl fidl::Persistable for Storage {}
621
622#[derive(Clone, Debug)]
627pub enum Capability {
628 Protocol(Protocol),
629 Directory(Directory),
630 Storage(Storage),
631 Service(Service),
632 EventStream(EventStream),
633 Config(Config),
634 Dictionary(Dictionary),
635 Resolver(Resolver),
636 Runner(Runner),
637 #[doc(hidden)]
638 __SourceBreaking {
639 unknown_ordinal: u64,
640 },
641}
642
643#[macro_export]
645macro_rules! CapabilityUnknown {
646 () => {
647 _
648 };
649}
650
651impl PartialEq for Capability {
653 fn eq(&self, other: &Self) -> bool {
654 match (self, other) {
655 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
656 (Self::Directory(x), Self::Directory(y)) => *x == *y,
657 (Self::Storage(x), Self::Storage(y)) => *x == *y,
658 (Self::Service(x), Self::Service(y)) => *x == *y,
659 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
660 (Self::Config(x), Self::Config(y)) => *x == *y,
661 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
662 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
663 (Self::Runner(x), Self::Runner(y)) => *x == *y,
664 _ => false,
665 }
666 }
667}
668
669impl Capability {
670 #[inline]
671 pub fn ordinal(&self) -> u64 {
672 match *self {
673 Self::Protocol(_) => 1,
674 Self::Directory(_) => 2,
675 Self::Storage(_) => 3,
676 Self::Service(_) => 4,
677 Self::EventStream(_) => 6,
678 Self::Config(_) => 7,
679 Self::Dictionary(_) => 8,
680 Self::Resolver(_) => 9,
681 Self::Runner(_) => 10,
682 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
683 }
684 }
685
686 #[inline]
687 pub fn unknown_variant_for_testing() -> Self {
688 Self::__SourceBreaking { unknown_ordinal: 0 }
689 }
690
691 #[inline]
692 pub fn is_unknown(&self) -> bool {
693 match self {
694 Self::__SourceBreaking { .. } => true,
695 _ => false,
696 }
697 }
698}
699
700impl fidl::Persistable for Capability {}
701
702pub mod builder_ordinals {
703 pub const BUILD: u64 = 0x172ba0923ec91575;
704}
705
706pub mod realm_ordinals {
707 pub const ADD_CHILD: u64 = 0x3f6c07627303d801;
708 pub const ADD_CHILD_FROM_DECL: u64 = 0x3950ad500258156d;
709 pub const ADD_LOCAL_CHILD: u64 = 0x3249817bae10abbb;
710 pub const ADD_CHILD_REALM: u64 = 0x3fdf98db373b9458;
711 pub const ADD_CHILD_REALM_FROM_RELATIVE_URL: u64 = 0x44c34c8dcbe06abb;
712 pub const ADD_CHILD_REALM_FROM_DECL: u64 = 0x142e5c326732862e;
713 pub const GET_COMPONENT_DECL: u64 = 0x320832af6a4cbac6;
714 pub const REPLACE_COMPONENT_DECL: u64 = 0x59cecf31b314cd5f;
715 pub const GET_REALM_DECL: u64 = 0x46fa05b17bd64269;
716 pub const REPLACE_REALM_DECL: u64 = 0x48fcba4ac1338da9;
717 pub const USE_NESTED_COMPONENT_MANAGER: u64 = 0x64bd27482f3dcc;
718 pub const ADD_ROUTE: u64 = 0x9d523295be53a0a;
719 pub const ADD_ROUTE_FROM_DICTIONARY: u64 = 0x21fac42c3e1d14d2;
720 pub const READ_ONLY_DIRECTORY: u64 = 0x78a6d150a66e00dc;
721 pub const ADD_STORAGE: u64 = 0x4709da0c9576b7c1;
722 pub const INIT_MUTABLE_CONFIG_FROM_PACKAGE: u64 = 0x36a30c9837c64216;
723 pub const INIT_MUTABLE_CONFIG_TO_EMPTY: u64 = 0x772cb99e2e0dccc5;
724 pub const ADD_CAPABILITY: u64 = 0x23a6499eb6080249;
725 pub const ADD_COLLECTION: u64 = 0x56b75210a03a99b5;
726 pub const ADD_ENVIRONMENT: u64 = 0x1cd7caefa2cce0e9;
727 pub const SET_CONFIG_VALUE: u64 = 0x886450d291217f2;
728}
729
730pub mod realm_builder_factory_ordinals {
731 pub const CREATE: u64 = 0x73528b1135cb01be;
732 pub const CREATE_FROM_RELATIVE_URL: u64 = 0x1cafd9042c54a86b;
733}
734
735mod internal {
736 use super::*;
737 unsafe impl fidl::encoding::TypeMarker for RealmBuilderError {
738 type Owned = Self;
739
740 #[inline(always)]
741 fn inline_align(_context: fidl::encoding::Context) -> usize {
742 std::mem::align_of::<u32>()
743 }
744
745 #[inline(always)]
746 fn inline_size(_context: fidl::encoding::Context) -> usize {
747 std::mem::size_of::<u32>()
748 }
749
750 #[inline(always)]
751 fn encode_is_copy() -> bool {
752 false
753 }
754
755 #[inline(always)]
756 fn decode_is_copy() -> bool {
757 false
758 }
759 }
760
761 impl fidl::encoding::ValueTypeMarker for RealmBuilderError {
762 type Borrowed<'a> = Self;
763 #[inline(always)]
764 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
765 *value
766 }
767 }
768
769 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
770 for RealmBuilderError
771 {
772 #[inline]
773 unsafe fn encode(
774 self,
775 encoder: &mut fidl::encoding::Encoder<'_, D>,
776 offset: usize,
777 _depth: fidl::encoding::Depth,
778 ) -> fidl::Result<()> {
779 encoder.debug_check_bounds::<Self>(offset);
780 encoder.write_num(self.into_primitive(), offset);
781 Ok(())
782 }
783 }
784
785 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmBuilderError {
786 #[inline(always)]
787 fn new_empty() -> Self {
788 Self::unknown()
789 }
790
791 #[inline]
792 unsafe fn decode(
793 &mut self,
794 decoder: &mut fidl::encoding::Decoder<'_, D>,
795 offset: usize,
796 _depth: fidl::encoding::Depth,
797 ) -> fidl::Result<()> {
798 decoder.debug_check_bounds::<Self>(offset);
799 let prim = decoder.read_num::<u32>(offset);
800
801 *self = Self::from_primitive_allow_unknown(prim);
802 Ok(())
803 }
804 }
805
806 impl fidl::encoding::ValueTypeMarker for BuilderBuildResponse {
807 type Borrowed<'a> = &'a Self;
808 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
809 value
810 }
811 }
812
813 unsafe impl fidl::encoding::TypeMarker for BuilderBuildResponse {
814 type Owned = Self;
815
816 #[inline(always)]
817 fn inline_align(_context: fidl::encoding::Context) -> usize {
818 8
819 }
820
821 #[inline(always)]
822 fn inline_size(_context: fidl::encoding::Context) -> usize {
823 16
824 }
825 }
826
827 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BuilderBuildResponse, D>
828 for &BuilderBuildResponse
829 {
830 #[inline]
831 unsafe fn encode(
832 self,
833 encoder: &mut fidl::encoding::Encoder<'_, D>,
834 offset: usize,
835 _depth: fidl::encoding::Depth,
836 ) -> fidl::Result<()> {
837 encoder.debug_check_bounds::<BuilderBuildResponse>(offset);
838 fidl::encoding::Encode::<BuilderBuildResponse, D>::encode(
840 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
841 &self.root_component_url,
842 ),),
843 encoder,
844 offset,
845 _depth,
846 )
847 }
848 }
849 unsafe impl<
850 D: fidl::encoding::ResourceDialect,
851 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
852 > fidl::encoding::Encode<BuilderBuildResponse, D> for (T0,)
853 {
854 #[inline]
855 unsafe fn encode(
856 self,
857 encoder: &mut fidl::encoding::Encoder<'_, D>,
858 offset: usize,
859 depth: fidl::encoding::Depth,
860 ) -> fidl::Result<()> {
861 encoder.debug_check_bounds::<BuilderBuildResponse>(offset);
862 self.0.encode(encoder, offset + 0, depth)?;
866 Ok(())
867 }
868 }
869
870 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BuilderBuildResponse {
871 #[inline(always)]
872 fn new_empty() -> Self {
873 Self { root_component_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
874 }
875
876 #[inline]
877 unsafe fn decode(
878 &mut self,
879 decoder: &mut fidl::encoding::Decoder<'_, D>,
880 offset: usize,
881 _depth: fidl::encoding::Depth,
882 ) -> fidl::Result<()> {
883 decoder.debug_check_bounds::<Self>(offset);
884 fidl::decode!(
886 fidl::encoding::BoundedString<4096>,
887 D,
888 &mut self.root_component_url,
889 decoder,
890 offset + 0,
891 _depth
892 )?;
893 Ok(())
894 }
895 }
896
897 impl fidl::encoding::ValueTypeMarker for RealmAddCapabilityRequest {
898 type Borrowed<'a> = &'a Self;
899 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
900 value
901 }
902 }
903
904 unsafe impl fidl::encoding::TypeMarker for RealmAddCapabilityRequest {
905 type Owned = Self;
906
907 #[inline(always)]
908 fn inline_align(_context: fidl::encoding::Context) -> usize {
909 8
910 }
911
912 #[inline(always)]
913 fn inline_size(_context: fidl::encoding::Context) -> usize {
914 16
915 }
916 }
917
918 unsafe impl<D: fidl::encoding::ResourceDialect>
919 fidl::encoding::Encode<RealmAddCapabilityRequest, D> for &RealmAddCapabilityRequest
920 {
921 #[inline]
922 unsafe fn encode(
923 self,
924 encoder: &mut fidl::encoding::Encoder<'_, D>,
925 offset: usize,
926 _depth: fidl::encoding::Depth,
927 ) -> fidl::Result<()> {
928 encoder.debug_check_bounds::<RealmAddCapabilityRequest>(offset);
929 fidl::encoding::Encode::<RealmAddCapabilityRequest, D>::encode(
931 (
932 <fidl_fuchsia_component_decl__common::Capability as fidl::encoding::ValueTypeMarker>::borrow(&self.capability),
933 ),
934 encoder, offset, _depth
935 )
936 }
937 }
938 unsafe impl<
939 D: fidl::encoding::ResourceDialect,
940 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Capability, D>,
941 > fidl::encoding::Encode<RealmAddCapabilityRequest, D> for (T0,)
942 {
943 #[inline]
944 unsafe fn encode(
945 self,
946 encoder: &mut fidl::encoding::Encoder<'_, D>,
947 offset: usize,
948 depth: fidl::encoding::Depth,
949 ) -> fidl::Result<()> {
950 encoder.debug_check_bounds::<RealmAddCapabilityRequest>(offset);
951 self.0.encode(encoder, offset + 0, depth)?;
955 Ok(())
956 }
957 }
958
959 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
960 for RealmAddCapabilityRequest
961 {
962 #[inline(always)]
963 fn new_empty() -> Self {
964 Self {
965 capability: fidl::new_empty!(fidl_fuchsia_component_decl__common::Capability, D),
966 }
967 }
968
969 #[inline]
970 unsafe fn decode(
971 &mut self,
972 decoder: &mut fidl::encoding::Decoder<'_, D>,
973 offset: usize,
974 _depth: fidl::encoding::Depth,
975 ) -> fidl::Result<()> {
976 decoder.debug_check_bounds::<Self>(offset);
977 fidl::decode!(
979 fidl_fuchsia_component_decl__common::Capability,
980 D,
981 &mut self.capability,
982 decoder,
983 offset + 0,
984 _depth
985 )?;
986 Ok(())
987 }
988 }
989
990 impl fidl::encoding::ValueTypeMarker for RealmAddChildFromDeclRequest {
991 type Borrowed<'a> = &'a Self;
992 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
993 value
994 }
995 }
996
997 unsafe impl fidl::encoding::TypeMarker for RealmAddChildFromDeclRequest {
998 type Owned = Self;
999
1000 #[inline(always)]
1001 fn inline_align(_context: fidl::encoding::Context) -> usize {
1002 8
1003 }
1004
1005 #[inline(always)]
1006 fn inline_size(_context: fidl::encoding::Context) -> usize {
1007 48
1008 }
1009 }
1010
1011 unsafe impl<D: fidl::encoding::ResourceDialect>
1012 fidl::encoding::Encode<RealmAddChildFromDeclRequest, D> for &RealmAddChildFromDeclRequest
1013 {
1014 #[inline]
1015 unsafe fn encode(
1016 self,
1017 encoder: &mut fidl::encoding::Encoder<'_, D>,
1018 offset: usize,
1019 _depth: fidl::encoding::Depth,
1020 ) -> fidl::Result<()> {
1021 encoder.debug_check_bounds::<RealmAddChildFromDeclRequest>(offset);
1022 fidl::encoding::Encode::<RealmAddChildFromDeclRequest, D>::encode(
1024 (
1025 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1026 <fidl_fuchsia_component_decl__common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.decl),
1027 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1028 ),
1029 encoder, offset, _depth
1030 )
1031 }
1032 }
1033 unsafe impl<
1034 D: fidl::encoding::ResourceDialect,
1035 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1036 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Component, D>,
1037 T2: fidl::encoding::Encode<ChildOptions, D>,
1038 > fidl::encoding::Encode<RealmAddChildFromDeclRequest, D> for (T0, T1, T2)
1039 {
1040 #[inline]
1041 unsafe fn encode(
1042 self,
1043 encoder: &mut fidl::encoding::Encoder<'_, D>,
1044 offset: usize,
1045 depth: fidl::encoding::Depth,
1046 ) -> fidl::Result<()> {
1047 encoder.debug_check_bounds::<RealmAddChildFromDeclRequest>(offset);
1048 self.0.encode(encoder, offset + 0, depth)?;
1052 self.1.encode(encoder, offset + 16, depth)?;
1053 self.2.encode(encoder, offset + 32, depth)?;
1054 Ok(())
1055 }
1056 }
1057
1058 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1059 for RealmAddChildFromDeclRequest
1060 {
1061 #[inline(always)]
1062 fn new_empty() -> Self {
1063 Self {
1064 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1065 decl: fidl::new_empty!(fidl_fuchsia_component_decl__common::Component, D),
1066 options: fidl::new_empty!(ChildOptions, D),
1067 }
1068 }
1069
1070 #[inline]
1071 unsafe fn decode(
1072 &mut self,
1073 decoder: &mut fidl::encoding::Decoder<'_, D>,
1074 offset: usize,
1075 _depth: fidl::encoding::Depth,
1076 ) -> fidl::Result<()> {
1077 decoder.debug_check_bounds::<Self>(offset);
1078 fidl::decode!(
1080 fidl::encoding::BoundedString<1024>,
1081 D,
1082 &mut self.name,
1083 decoder,
1084 offset + 0,
1085 _depth
1086 )?;
1087 fidl::decode!(
1088 fidl_fuchsia_component_decl__common::Component,
1089 D,
1090 &mut self.decl,
1091 decoder,
1092 offset + 16,
1093 _depth
1094 )?;
1095 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 32, _depth)?;
1096 Ok(())
1097 }
1098 }
1099
1100 impl fidl::encoding::ValueTypeMarker for RealmAddChildRequest {
1101 type Borrowed<'a> = &'a Self;
1102 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1103 value
1104 }
1105 }
1106
1107 unsafe impl fidl::encoding::TypeMarker for RealmAddChildRequest {
1108 type Owned = Self;
1109
1110 #[inline(always)]
1111 fn inline_align(_context: fidl::encoding::Context) -> usize {
1112 8
1113 }
1114
1115 #[inline(always)]
1116 fn inline_size(_context: fidl::encoding::Context) -> usize {
1117 48
1118 }
1119 }
1120
1121 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RealmAddChildRequest, D>
1122 for &RealmAddChildRequest
1123 {
1124 #[inline]
1125 unsafe fn encode(
1126 self,
1127 encoder: &mut fidl::encoding::Encoder<'_, D>,
1128 offset: usize,
1129 _depth: fidl::encoding::Depth,
1130 ) -> fidl::Result<()> {
1131 encoder.debug_check_bounds::<RealmAddChildRequest>(offset);
1132 fidl::encoding::Encode::<RealmAddChildRequest, D>::encode(
1134 (
1135 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1136 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.url),
1137 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1138 ),
1139 encoder, offset, _depth
1140 )
1141 }
1142 }
1143 unsafe impl<
1144 D: fidl::encoding::ResourceDialect,
1145 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1146 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1147 T2: fidl::encoding::Encode<ChildOptions, D>,
1148 > fidl::encoding::Encode<RealmAddChildRequest, D> for (T0, T1, T2)
1149 {
1150 #[inline]
1151 unsafe fn encode(
1152 self,
1153 encoder: &mut fidl::encoding::Encoder<'_, D>,
1154 offset: usize,
1155 depth: fidl::encoding::Depth,
1156 ) -> fidl::Result<()> {
1157 encoder.debug_check_bounds::<RealmAddChildRequest>(offset);
1158 self.0.encode(encoder, offset + 0, depth)?;
1162 self.1.encode(encoder, offset + 16, depth)?;
1163 self.2.encode(encoder, offset + 32, depth)?;
1164 Ok(())
1165 }
1166 }
1167
1168 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmAddChildRequest {
1169 #[inline(always)]
1170 fn new_empty() -> Self {
1171 Self {
1172 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1173 url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1174 options: fidl::new_empty!(ChildOptions, D),
1175 }
1176 }
1177
1178 #[inline]
1179 unsafe fn decode(
1180 &mut self,
1181 decoder: &mut fidl::encoding::Decoder<'_, D>,
1182 offset: usize,
1183 _depth: fidl::encoding::Depth,
1184 ) -> fidl::Result<()> {
1185 decoder.debug_check_bounds::<Self>(offset);
1186 fidl::decode!(
1188 fidl::encoding::BoundedString<1024>,
1189 D,
1190 &mut self.name,
1191 decoder,
1192 offset + 0,
1193 _depth
1194 )?;
1195 fidl::decode!(
1196 fidl::encoding::BoundedString<4096>,
1197 D,
1198 &mut self.url,
1199 decoder,
1200 offset + 16,
1201 _depth
1202 )?;
1203 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 32, _depth)?;
1204 Ok(())
1205 }
1206 }
1207
1208 impl fidl::encoding::ValueTypeMarker for RealmAddCollectionRequest {
1209 type Borrowed<'a> = &'a Self;
1210 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1211 value
1212 }
1213 }
1214
1215 unsafe impl fidl::encoding::TypeMarker for RealmAddCollectionRequest {
1216 type Owned = Self;
1217
1218 #[inline(always)]
1219 fn inline_align(_context: fidl::encoding::Context) -> usize {
1220 8
1221 }
1222
1223 #[inline(always)]
1224 fn inline_size(_context: fidl::encoding::Context) -> usize {
1225 16
1226 }
1227 }
1228
1229 unsafe impl<D: fidl::encoding::ResourceDialect>
1230 fidl::encoding::Encode<RealmAddCollectionRequest, D> for &RealmAddCollectionRequest
1231 {
1232 #[inline]
1233 unsafe fn encode(
1234 self,
1235 encoder: &mut fidl::encoding::Encoder<'_, D>,
1236 offset: usize,
1237 _depth: fidl::encoding::Depth,
1238 ) -> fidl::Result<()> {
1239 encoder.debug_check_bounds::<RealmAddCollectionRequest>(offset);
1240 fidl::encoding::Encode::<RealmAddCollectionRequest, D>::encode(
1242 (
1243 <fidl_fuchsia_component_decl__common::Collection as fidl::encoding::ValueTypeMarker>::borrow(&self.collection),
1244 ),
1245 encoder, offset, _depth
1246 )
1247 }
1248 }
1249 unsafe impl<
1250 D: fidl::encoding::ResourceDialect,
1251 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Collection, D>,
1252 > fidl::encoding::Encode<RealmAddCollectionRequest, D> for (T0,)
1253 {
1254 #[inline]
1255 unsafe fn encode(
1256 self,
1257 encoder: &mut fidl::encoding::Encoder<'_, D>,
1258 offset: usize,
1259 depth: fidl::encoding::Depth,
1260 ) -> fidl::Result<()> {
1261 encoder.debug_check_bounds::<RealmAddCollectionRequest>(offset);
1262 self.0.encode(encoder, offset + 0, depth)?;
1266 Ok(())
1267 }
1268 }
1269
1270 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1271 for RealmAddCollectionRequest
1272 {
1273 #[inline(always)]
1274 fn new_empty() -> Self {
1275 Self {
1276 collection: fidl::new_empty!(fidl_fuchsia_component_decl__common::Collection, D),
1277 }
1278 }
1279
1280 #[inline]
1281 unsafe fn decode(
1282 &mut self,
1283 decoder: &mut fidl::encoding::Decoder<'_, D>,
1284 offset: usize,
1285 _depth: fidl::encoding::Depth,
1286 ) -> fidl::Result<()> {
1287 decoder.debug_check_bounds::<Self>(offset);
1288 fidl::decode!(
1290 fidl_fuchsia_component_decl__common::Collection,
1291 D,
1292 &mut self.collection,
1293 decoder,
1294 offset + 0,
1295 _depth
1296 )?;
1297 Ok(())
1298 }
1299 }
1300
1301 impl fidl::encoding::ValueTypeMarker for RealmAddEnvironmentRequest {
1302 type Borrowed<'a> = &'a Self;
1303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1304 value
1305 }
1306 }
1307
1308 unsafe impl fidl::encoding::TypeMarker for RealmAddEnvironmentRequest {
1309 type Owned = Self;
1310
1311 #[inline(always)]
1312 fn inline_align(_context: fidl::encoding::Context) -> usize {
1313 8
1314 }
1315
1316 #[inline(always)]
1317 fn inline_size(_context: fidl::encoding::Context) -> usize {
1318 16
1319 }
1320 }
1321
1322 unsafe impl<D: fidl::encoding::ResourceDialect>
1323 fidl::encoding::Encode<RealmAddEnvironmentRequest, D> for &RealmAddEnvironmentRequest
1324 {
1325 #[inline]
1326 unsafe fn encode(
1327 self,
1328 encoder: &mut fidl::encoding::Encoder<'_, D>,
1329 offset: usize,
1330 _depth: fidl::encoding::Depth,
1331 ) -> fidl::Result<()> {
1332 encoder.debug_check_bounds::<RealmAddEnvironmentRequest>(offset);
1333 fidl::encoding::Encode::<RealmAddEnvironmentRequest, D>::encode(
1335 (
1336 <fidl_fuchsia_component_decl__common::Environment as fidl::encoding::ValueTypeMarker>::borrow(&self.environment),
1337 ),
1338 encoder, offset, _depth
1339 )
1340 }
1341 }
1342 unsafe impl<
1343 D: fidl::encoding::ResourceDialect,
1344 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Environment, D>,
1345 > fidl::encoding::Encode<RealmAddEnvironmentRequest, D> for (T0,)
1346 {
1347 #[inline]
1348 unsafe fn encode(
1349 self,
1350 encoder: &mut fidl::encoding::Encoder<'_, D>,
1351 offset: usize,
1352 depth: fidl::encoding::Depth,
1353 ) -> fidl::Result<()> {
1354 encoder.debug_check_bounds::<RealmAddEnvironmentRequest>(offset);
1355 self.0.encode(encoder, offset + 0, depth)?;
1359 Ok(())
1360 }
1361 }
1362
1363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1364 for RealmAddEnvironmentRequest
1365 {
1366 #[inline(always)]
1367 fn new_empty() -> Self {
1368 Self {
1369 environment: fidl::new_empty!(fidl_fuchsia_component_decl__common::Environment, D),
1370 }
1371 }
1372
1373 #[inline]
1374 unsafe fn decode(
1375 &mut self,
1376 decoder: &mut fidl::encoding::Decoder<'_, D>,
1377 offset: usize,
1378 _depth: fidl::encoding::Depth,
1379 ) -> fidl::Result<()> {
1380 decoder.debug_check_bounds::<Self>(offset);
1381 fidl::decode!(
1383 fidl_fuchsia_component_decl__common::Environment,
1384 D,
1385 &mut self.environment,
1386 decoder,
1387 offset + 0,
1388 _depth
1389 )?;
1390 Ok(())
1391 }
1392 }
1393
1394 impl fidl::encoding::ValueTypeMarker for RealmAddLocalChildRequest {
1395 type Borrowed<'a> = &'a Self;
1396 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1397 value
1398 }
1399 }
1400
1401 unsafe impl fidl::encoding::TypeMarker for RealmAddLocalChildRequest {
1402 type Owned = Self;
1403
1404 #[inline(always)]
1405 fn inline_align(_context: fidl::encoding::Context) -> usize {
1406 8
1407 }
1408
1409 #[inline(always)]
1410 fn inline_size(_context: fidl::encoding::Context) -> usize {
1411 32
1412 }
1413 }
1414
1415 unsafe impl<D: fidl::encoding::ResourceDialect>
1416 fidl::encoding::Encode<RealmAddLocalChildRequest, D> for &RealmAddLocalChildRequest
1417 {
1418 #[inline]
1419 unsafe fn encode(
1420 self,
1421 encoder: &mut fidl::encoding::Encoder<'_, D>,
1422 offset: usize,
1423 _depth: fidl::encoding::Depth,
1424 ) -> fidl::Result<()> {
1425 encoder.debug_check_bounds::<RealmAddLocalChildRequest>(offset);
1426 fidl::encoding::Encode::<RealmAddLocalChildRequest, D>::encode(
1428 (
1429 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1430 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1431 ),
1432 encoder, offset, _depth
1433 )
1434 }
1435 }
1436 unsafe impl<
1437 D: fidl::encoding::ResourceDialect,
1438 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1439 T1: fidl::encoding::Encode<ChildOptions, D>,
1440 > fidl::encoding::Encode<RealmAddLocalChildRequest, D> for (T0, T1)
1441 {
1442 #[inline]
1443 unsafe fn encode(
1444 self,
1445 encoder: &mut fidl::encoding::Encoder<'_, D>,
1446 offset: usize,
1447 depth: fidl::encoding::Depth,
1448 ) -> fidl::Result<()> {
1449 encoder.debug_check_bounds::<RealmAddLocalChildRequest>(offset);
1450 self.0.encode(encoder, offset + 0, depth)?;
1454 self.1.encode(encoder, offset + 16, depth)?;
1455 Ok(())
1456 }
1457 }
1458
1459 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1460 for RealmAddLocalChildRequest
1461 {
1462 #[inline(always)]
1463 fn new_empty() -> Self {
1464 Self {
1465 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1466 options: fidl::new_empty!(ChildOptions, D),
1467 }
1468 }
1469
1470 #[inline]
1471 unsafe fn decode(
1472 &mut self,
1473 decoder: &mut fidl::encoding::Decoder<'_, D>,
1474 offset: usize,
1475 _depth: fidl::encoding::Depth,
1476 ) -> fidl::Result<()> {
1477 decoder.debug_check_bounds::<Self>(offset);
1478 fidl::decode!(
1480 fidl::encoding::BoundedString<1024>,
1481 D,
1482 &mut self.name,
1483 decoder,
1484 offset + 0,
1485 _depth
1486 )?;
1487 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 16, _depth)?;
1488 Ok(())
1489 }
1490 }
1491
1492 impl fidl::encoding::ValueTypeMarker for RealmAddRouteFromDictionaryRequest {
1493 type Borrowed<'a> = &'a Self;
1494 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1495 value
1496 }
1497 }
1498
1499 unsafe impl fidl::encoding::TypeMarker for RealmAddRouteFromDictionaryRequest {
1500 type Owned = Self;
1501
1502 #[inline(always)]
1503 fn inline_align(_context: fidl::encoding::Context) -> usize {
1504 8
1505 }
1506
1507 #[inline(always)]
1508 fn inline_size(_context: fidl::encoding::Context) -> usize {
1509 64
1510 }
1511 }
1512
1513 unsafe impl<D: fidl::encoding::ResourceDialect>
1514 fidl::encoding::Encode<RealmAddRouteFromDictionaryRequest, D>
1515 for &RealmAddRouteFromDictionaryRequest
1516 {
1517 #[inline]
1518 unsafe fn encode(
1519 self,
1520 encoder: &mut fidl::encoding::Encoder<'_, D>,
1521 offset: usize,
1522 _depth: fidl::encoding::Depth,
1523 ) -> fidl::Result<()> {
1524 encoder.debug_check_bounds::<RealmAddRouteFromDictionaryRequest>(offset);
1525 fidl::encoding::Encode::<RealmAddRouteFromDictionaryRequest, D>::encode(
1527 (
1528 <fidl::encoding::UnboundedVector<Capability> as fidl::encoding::ValueTypeMarker>::borrow(&self.capabilities),
1529 <fidl_fuchsia_component_decl__common::Ref as fidl::encoding::ValueTypeMarker>::borrow(&self.from),
1530 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.from_dictionary),
1531 <fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref> as fidl::encoding::ValueTypeMarker>::borrow(&self.to),
1532 ),
1533 encoder, offset, _depth
1534 )
1535 }
1536 }
1537 unsafe impl<
1538 D: fidl::encoding::ResourceDialect,
1539 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Capability>, D>,
1540 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Ref, D>,
1541 T2: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1542 T3: fidl::encoding::Encode<
1543 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
1544 D,
1545 >,
1546 > fidl::encoding::Encode<RealmAddRouteFromDictionaryRequest, D> for (T0, T1, T2, T3)
1547 {
1548 #[inline]
1549 unsafe fn encode(
1550 self,
1551 encoder: &mut fidl::encoding::Encoder<'_, D>,
1552 offset: usize,
1553 depth: fidl::encoding::Depth,
1554 ) -> fidl::Result<()> {
1555 encoder.debug_check_bounds::<RealmAddRouteFromDictionaryRequest>(offset);
1556 self.0.encode(encoder, offset + 0, depth)?;
1560 self.1.encode(encoder, offset + 16, depth)?;
1561 self.2.encode(encoder, offset + 32, depth)?;
1562 self.3.encode(encoder, offset + 48, depth)?;
1563 Ok(())
1564 }
1565 }
1566
1567 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1568 for RealmAddRouteFromDictionaryRequest
1569 {
1570 #[inline(always)]
1571 fn new_empty() -> Self {
1572 Self {
1573 capabilities: fidl::new_empty!(fidl::encoding::UnboundedVector<Capability>, D),
1574 from: fidl::new_empty!(fidl_fuchsia_component_decl__common::Ref, D),
1575 from_dictionary: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1576 to: fidl::new_empty!(
1577 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
1578 D
1579 ),
1580 }
1581 }
1582
1583 #[inline]
1584 unsafe fn decode(
1585 &mut self,
1586 decoder: &mut fidl::encoding::Decoder<'_, D>,
1587 offset: usize,
1588 _depth: fidl::encoding::Depth,
1589 ) -> fidl::Result<()> {
1590 decoder.debug_check_bounds::<Self>(offset);
1591 fidl::decode!(
1593 fidl::encoding::UnboundedVector<Capability>,
1594 D,
1595 &mut self.capabilities,
1596 decoder,
1597 offset + 0,
1598 _depth
1599 )?;
1600 fidl::decode!(
1601 fidl_fuchsia_component_decl__common::Ref,
1602 D,
1603 &mut self.from,
1604 decoder,
1605 offset + 16,
1606 _depth
1607 )?;
1608 fidl::decode!(
1609 fidl::encoding::BoundedString<1024>,
1610 D,
1611 &mut self.from_dictionary,
1612 decoder,
1613 offset + 32,
1614 _depth
1615 )?;
1616 fidl::decode!(
1617 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
1618 D,
1619 &mut self.to,
1620 decoder,
1621 offset + 48,
1622 _depth
1623 )?;
1624 Ok(())
1625 }
1626 }
1627
1628 impl fidl::encoding::ValueTypeMarker for RealmAddRouteRequest {
1629 type Borrowed<'a> = &'a Self;
1630 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1631 value
1632 }
1633 }
1634
1635 unsafe impl fidl::encoding::TypeMarker for RealmAddRouteRequest {
1636 type Owned = Self;
1637
1638 #[inline(always)]
1639 fn inline_align(_context: fidl::encoding::Context) -> usize {
1640 8
1641 }
1642
1643 #[inline(always)]
1644 fn inline_size(_context: fidl::encoding::Context) -> usize {
1645 48
1646 }
1647 }
1648
1649 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RealmAddRouteRequest, D>
1650 for &RealmAddRouteRequest
1651 {
1652 #[inline]
1653 unsafe fn encode(
1654 self,
1655 encoder: &mut fidl::encoding::Encoder<'_, D>,
1656 offset: usize,
1657 _depth: fidl::encoding::Depth,
1658 ) -> fidl::Result<()> {
1659 encoder.debug_check_bounds::<RealmAddRouteRequest>(offset);
1660 fidl::encoding::Encode::<RealmAddRouteRequest, D>::encode(
1662 (
1663 <fidl::encoding::UnboundedVector<Capability> as fidl::encoding::ValueTypeMarker>::borrow(&self.capabilities),
1664 <fidl_fuchsia_component_decl__common::Ref as fidl::encoding::ValueTypeMarker>::borrow(&self.from),
1665 <fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref> as fidl::encoding::ValueTypeMarker>::borrow(&self.to),
1666 ),
1667 encoder, offset, _depth
1668 )
1669 }
1670 }
1671 unsafe impl<
1672 D: fidl::encoding::ResourceDialect,
1673 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Capability>, D>,
1674 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Ref, D>,
1675 T2: fidl::encoding::Encode<
1676 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
1677 D,
1678 >,
1679 > fidl::encoding::Encode<RealmAddRouteRequest, D> for (T0, T1, T2)
1680 {
1681 #[inline]
1682 unsafe fn encode(
1683 self,
1684 encoder: &mut fidl::encoding::Encoder<'_, D>,
1685 offset: usize,
1686 depth: fidl::encoding::Depth,
1687 ) -> fidl::Result<()> {
1688 encoder.debug_check_bounds::<RealmAddRouteRequest>(offset);
1689 self.0.encode(encoder, offset + 0, depth)?;
1693 self.1.encode(encoder, offset + 16, depth)?;
1694 self.2.encode(encoder, offset + 32, depth)?;
1695 Ok(())
1696 }
1697 }
1698
1699 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmAddRouteRequest {
1700 #[inline(always)]
1701 fn new_empty() -> Self {
1702 Self {
1703 capabilities: fidl::new_empty!(fidl::encoding::UnboundedVector<Capability>, D),
1704 from: fidl::new_empty!(fidl_fuchsia_component_decl__common::Ref, D),
1705 to: fidl::new_empty!(
1706 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
1707 D
1708 ),
1709 }
1710 }
1711
1712 #[inline]
1713 unsafe fn decode(
1714 &mut self,
1715 decoder: &mut fidl::encoding::Decoder<'_, D>,
1716 offset: usize,
1717 _depth: fidl::encoding::Depth,
1718 ) -> fidl::Result<()> {
1719 decoder.debug_check_bounds::<Self>(offset);
1720 fidl::decode!(
1722 fidl::encoding::UnboundedVector<Capability>,
1723 D,
1724 &mut self.capabilities,
1725 decoder,
1726 offset + 0,
1727 _depth
1728 )?;
1729 fidl::decode!(
1730 fidl_fuchsia_component_decl__common::Ref,
1731 D,
1732 &mut self.from,
1733 decoder,
1734 offset + 16,
1735 _depth
1736 )?;
1737 fidl::decode!(
1738 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
1739 D,
1740 &mut self.to,
1741 decoder,
1742 offset + 32,
1743 _depth
1744 )?;
1745 Ok(())
1746 }
1747 }
1748
1749 impl fidl::encoding::ValueTypeMarker for RealmGetComponentDeclRequest {
1750 type Borrowed<'a> = &'a Self;
1751 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1752 value
1753 }
1754 }
1755
1756 unsafe impl fidl::encoding::TypeMarker for RealmGetComponentDeclRequest {
1757 type Owned = Self;
1758
1759 #[inline(always)]
1760 fn inline_align(_context: fidl::encoding::Context) -> usize {
1761 8
1762 }
1763
1764 #[inline(always)]
1765 fn inline_size(_context: fidl::encoding::Context) -> usize {
1766 16
1767 }
1768 }
1769
1770 unsafe impl<D: fidl::encoding::ResourceDialect>
1771 fidl::encoding::Encode<RealmGetComponentDeclRequest, D> for &RealmGetComponentDeclRequest
1772 {
1773 #[inline]
1774 unsafe fn encode(
1775 self,
1776 encoder: &mut fidl::encoding::Encoder<'_, D>,
1777 offset: usize,
1778 _depth: fidl::encoding::Depth,
1779 ) -> fidl::Result<()> {
1780 encoder.debug_check_bounds::<RealmGetComponentDeclRequest>(offset);
1781 fidl::encoding::Encode::<RealmGetComponentDeclRequest, D>::encode(
1783 (<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(
1784 &self.name,
1785 ),),
1786 encoder,
1787 offset,
1788 _depth,
1789 )
1790 }
1791 }
1792 unsafe impl<
1793 D: fidl::encoding::ResourceDialect,
1794 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1795 > fidl::encoding::Encode<RealmGetComponentDeclRequest, D> for (T0,)
1796 {
1797 #[inline]
1798 unsafe fn encode(
1799 self,
1800 encoder: &mut fidl::encoding::Encoder<'_, D>,
1801 offset: usize,
1802 depth: fidl::encoding::Depth,
1803 ) -> fidl::Result<()> {
1804 encoder.debug_check_bounds::<RealmGetComponentDeclRequest>(offset);
1805 self.0.encode(encoder, offset + 0, depth)?;
1809 Ok(())
1810 }
1811 }
1812
1813 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1814 for RealmGetComponentDeclRequest
1815 {
1816 #[inline(always)]
1817 fn new_empty() -> Self {
1818 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D) }
1819 }
1820
1821 #[inline]
1822 unsafe fn decode(
1823 &mut self,
1824 decoder: &mut fidl::encoding::Decoder<'_, D>,
1825 offset: usize,
1826 _depth: fidl::encoding::Depth,
1827 ) -> fidl::Result<()> {
1828 decoder.debug_check_bounds::<Self>(offset);
1829 fidl::decode!(
1831 fidl::encoding::BoundedString<1024>,
1832 D,
1833 &mut self.name,
1834 decoder,
1835 offset + 0,
1836 _depth
1837 )?;
1838 Ok(())
1839 }
1840 }
1841
1842 impl fidl::encoding::ValueTypeMarker for RealmInitMutableConfigFromPackageRequest {
1843 type Borrowed<'a> = &'a Self;
1844 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1845 value
1846 }
1847 }
1848
1849 unsafe impl fidl::encoding::TypeMarker for RealmInitMutableConfigFromPackageRequest {
1850 type Owned = Self;
1851
1852 #[inline(always)]
1853 fn inline_align(_context: fidl::encoding::Context) -> usize {
1854 8
1855 }
1856
1857 #[inline(always)]
1858 fn inline_size(_context: fidl::encoding::Context) -> usize {
1859 16
1860 }
1861 }
1862
1863 unsafe impl<D: fidl::encoding::ResourceDialect>
1864 fidl::encoding::Encode<RealmInitMutableConfigFromPackageRequest, D>
1865 for &RealmInitMutableConfigFromPackageRequest
1866 {
1867 #[inline]
1868 unsafe fn encode(
1869 self,
1870 encoder: &mut fidl::encoding::Encoder<'_, D>,
1871 offset: usize,
1872 _depth: fidl::encoding::Depth,
1873 ) -> fidl::Result<()> {
1874 encoder.debug_check_bounds::<RealmInitMutableConfigFromPackageRequest>(offset);
1875 fidl::encoding::Encode::<RealmInitMutableConfigFromPackageRequest, D>::encode(
1877 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1878 &self.name,
1879 ),),
1880 encoder,
1881 offset,
1882 _depth,
1883 )
1884 }
1885 }
1886 unsafe impl<
1887 D: fidl::encoding::ResourceDialect,
1888 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1889 > fidl::encoding::Encode<RealmInitMutableConfigFromPackageRequest, D> for (T0,)
1890 {
1891 #[inline]
1892 unsafe fn encode(
1893 self,
1894 encoder: &mut fidl::encoding::Encoder<'_, D>,
1895 offset: usize,
1896 depth: fidl::encoding::Depth,
1897 ) -> fidl::Result<()> {
1898 encoder.debug_check_bounds::<RealmInitMutableConfigFromPackageRequest>(offset);
1899 self.0.encode(encoder, offset + 0, depth)?;
1903 Ok(())
1904 }
1905 }
1906
1907 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1908 for RealmInitMutableConfigFromPackageRequest
1909 {
1910 #[inline(always)]
1911 fn new_empty() -> Self {
1912 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
1913 }
1914
1915 #[inline]
1916 unsafe fn decode(
1917 &mut self,
1918 decoder: &mut fidl::encoding::Decoder<'_, D>,
1919 offset: usize,
1920 _depth: fidl::encoding::Depth,
1921 ) -> fidl::Result<()> {
1922 decoder.debug_check_bounds::<Self>(offset);
1923 fidl::decode!(
1925 fidl::encoding::BoundedString<255>,
1926 D,
1927 &mut self.name,
1928 decoder,
1929 offset + 0,
1930 _depth
1931 )?;
1932 Ok(())
1933 }
1934 }
1935
1936 impl fidl::encoding::ValueTypeMarker for RealmInitMutableConfigToEmptyRequest {
1937 type Borrowed<'a> = &'a Self;
1938 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1939 value
1940 }
1941 }
1942
1943 unsafe impl fidl::encoding::TypeMarker for RealmInitMutableConfigToEmptyRequest {
1944 type Owned = Self;
1945
1946 #[inline(always)]
1947 fn inline_align(_context: fidl::encoding::Context) -> usize {
1948 8
1949 }
1950
1951 #[inline(always)]
1952 fn inline_size(_context: fidl::encoding::Context) -> usize {
1953 16
1954 }
1955 }
1956
1957 unsafe impl<D: fidl::encoding::ResourceDialect>
1958 fidl::encoding::Encode<RealmInitMutableConfigToEmptyRequest, D>
1959 for &RealmInitMutableConfigToEmptyRequest
1960 {
1961 #[inline]
1962 unsafe fn encode(
1963 self,
1964 encoder: &mut fidl::encoding::Encoder<'_, D>,
1965 offset: usize,
1966 _depth: fidl::encoding::Depth,
1967 ) -> fidl::Result<()> {
1968 encoder.debug_check_bounds::<RealmInitMutableConfigToEmptyRequest>(offset);
1969 fidl::encoding::Encode::<RealmInitMutableConfigToEmptyRequest, D>::encode(
1971 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1972 &self.name,
1973 ),),
1974 encoder,
1975 offset,
1976 _depth,
1977 )
1978 }
1979 }
1980 unsafe impl<
1981 D: fidl::encoding::ResourceDialect,
1982 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1983 > fidl::encoding::Encode<RealmInitMutableConfigToEmptyRequest, D> for (T0,)
1984 {
1985 #[inline]
1986 unsafe fn encode(
1987 self,
1988 encoder: &mut fidl::encoding::Encoder<'_, D>,
1989 offset: usize,
1990 depth: fidl::encoding::Depth,
1991 ) -> fidl::Result<()> {
1992 encoder.debug_check_bounds::<RealmInitMutableConfigToEmptyRequest>(offset);
1993 self.0.encode(encoder, offset + 0, depth)?;
1997 Ok(())
1998 }
1999 }
2000
2001 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2002 for RealmInitMutableConfigToEmptyRequest
2003 {
2004 #[inline(always)]
2005 fn new_empty() -> Self {
2006 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
2007 }
2008
2009 #[inline]
2010 unsafe fn decode(
2011 &mut self,
2012 decoder: &mut fidl::encoding::Decoder<'_, D>,
2013 offset: usize,
2014 _depth: fidl::encoding::Depth,
2015 ) -> fidl::Result<()> {
2016 decoder.debug_check_bounds::<Self>(offset);
2017 fidl::decode!(
2019 fidl::encoding::BoundedString<255>,
2020 D,
2021 &mut self.name,
2022 decoder,
2023 offset + 0,
2024 _depth
2025 )?;
2026 Ok(())
2027 }
2028 }
2029
2030 impl fidl::encoding::ValueTypeMarker for RealmReplaceComponentDeclRequest {
2031 type Borrowed<'a> = &'a Self;
2032 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2033 value
2034 }
2035 }
2036
2037 unsafe impl fidl::encoding::TypeMarker for RealmReplaceComponentDeclRequest {
2038 type Owned = Self;
2039
2040 #[inline(always)]
2041 fn inline_align(_context: fidl::encoding::Context) -> usize {
2042 8
2043 }
2044
2045 #[inline(always)]
2046 fn inline_size(_context: fidl::encoding::Context) -> usize {
2047 32
2048 }
2049 }
2050
2051 unsafe impl<D: fidl::encoding::ResourceDialect>
2052 fidl::encoding::Encode<RealmReplaceComponentDeclRequest, D>
2053 for &RealmReplaceComponentDeclRequest
2054 {
2055 #[inline]
2056 unsafe fn encode(
2057 self,
2058 encoder: &mut fidl::encoding::Encoder<'_, D>,
2059 offset: usize,
2060 _depth: fidl::encoding::Depth,
2061 ) -> fidl::Result<()> {
2062 encoder.debug_check_bounds::<RealmReplaceComponentDeclRequest>(offset);
2063 fidl::encoding::Encode::<RealmReplaceComponentDeclRequest, D>::encode(
2065 (
2066 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2067 <fidl_fuchsia_component_decl__common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2068 ),
2069 encoder, offset, _depth
2070 )
2071 }
2072 }
2073 unsafe impl<
2074 D: fidl::encoding::ResourceDialect,
2075 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
2076 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Component, D>,
2077 > fidl::encoding::Encode<RealmReplaceComponentDeclRequest, D> for (T0, T1)
2078 {
2079 #[inline]
2080 unsafe fn encode(
2081 self,
2082 encoder: &mut fidl::encoding::Encoder<'_, D>,
2083 offset: usize,
2084 depth: fidl::encoding::Depth,
2085 ) -> fidl::Result<()> {
2086 encoder.debug_check_bounds::<RealmReplaceComponentDeclRequest>(offset);
2087 self.0.encode(encoder, offset + 0, depth)?;
2091 self.1.encode(encoder, offset + 16, depth)?;
2092 Ok(())
2093 }
2094 }
2095
2096 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2097 for RealmReplaceComponentDeclRequest
2098 {
2099 #[inline(always)]
2100 fn new_empty() -> Self {
2101 Self {
2102 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
2103 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl__common::Component, D),
2104 }
2105 }
2106
2107 #[inline]
2108 unsafe fn decode(
2109 &mut self,
2110 decoder: &mut fidl::encoding::Decoder<'_, D>,
2111 offset: usize,
2112 _depth: fidl::encoding::Depth,
2113 ) -> fidl::Result<()> {
2114 decoder.debug_check_bounds::<Self>(offset);
2115 fidl::decode!(
2117 fidl::encoding::BoundedString<1024>,
2118 D,
2119 &mut self.name,
2120 decoder,
2121 offset + 0,
2122 _depth
2123 )?;
2124 fidl::decode!(
2125 fidl_fuchsia_component_decl__common::Component,
2126 D,
2127 &mut self.component_decl,
2128 decoder,
2129 offset + 16,
2130 _depth
2131 )?;
2132 Ok(())
2133 }
2134 }
2135
2136 impl fidl::encoding::ValueTypeMarker for RealmReplaceRealmDeclRequest {
2137 type Borrowed<'a> = &'a Self;
2138 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2139 value
2140 }
2141 }
2142
2143 unsafe impl fidl::encoding::TypeMarker for RealmReplaceRealmDeclRequest {
2144 type Owned = Self;
2145
2146 #[inline(always)]
2147 fn inline_align(_context: fidl::encoding::Context) -> usize {
2148 8
2149 }
2150
2151 #[inline(always)]
2152 fn inline_size(_context: fidl::encoding::Context) -> usize {
2153 16
2154 }
2155 }
2156
2157 unsafe impl<D: fidl::encoding::ResourceDialect>
2158 fidl::encoding::Encode<RealmReplaceRealmDeclRequest, D> for &RealmReplaceRealmDeclRequest
2159 {
2160 #[inline]
2161 unsafe fn encode(
2162 self,
2163 encoder: &mut fidl::encoding::Encoder<'_, D>,
2164 offset: usize,
2165 _depth: fidl::encoding::Depth,
2166 ) -> fidl::Result<()> {
2167 encoder.debug_check_bounds::<RealmReplaceRealmDeclRequest>(offset);
2168 fidl::encoding::Encode::<RealmReplaceRealmDeclRequest, D>::encode(
2170 (
2171 <fidl_fuchsia_component_decl__common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2172 ),
2173 encoder, offset, _depth
2174 )
2175 }
2176 }
2177 unsafe impl<
2178 D: fidl::encoding::ResourceDialect,
2179 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Component, D>,
2180 > fidl::encoding::Encode<RealmReplaceRealmDeclRequest, D> for (T0,)
2181 {
2182 #[inline]
2183 unsafe fn encode(
2184 self,
2185 encoder: &mut fidl::encoding::Encoder<'_, D>,
2186 offset: usize,
2187 depth: fidl::encoding::Depth,
2188 ) -> fidl::Result<()> {
2189 encoder.debug_check_bounds::<RealmReplaceRealmDeclRequest>(offset);
2190 self.0.encode(encoder, offset + 0, depth)?;
2194 Ok(())
2195 }
2196 }
2197
2198 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2199 for RealmReplaceRealmDeclRequest
2200 {
2201 #[inline(always)]
2202 fn new_empty() -> Self {
2203 Self {
2204 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl__common::Component, D),
2205 }
2206 }
2207
2208 #[inline]
2209 unsafe fn decode(
2210 &mut self,
2211 decoder: &mut fidl::encoding::Decoder<'_, D>,
2212 offset: usize,
2213 _depth: fidl::encoding::Depth,
2214 ) -> fidl::Result<()> {
2215 decoder.debug_check_bounds::<Self>(offset);
2216 fidl::decode!(
2218 fidl_fuchsia_component_decl__common::Component,
2219 D,
2220 &mut self.component_decl,
2221 decoder,
2222 offset + 0,
2223 _depth
2224 )?;
2225 Ok(())
2226 }
2227 }
2228
2229 impl fidl::encoding::ValueTypeMarker for RealmSetConfigValueRequest {
2230 type Borrowed<'a> = &'a Self;
2231 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2232 value
2233 }
2234 }
2235
2236 unsafe impl fidl::encoding::TypeMarker for RealmSetConfigValueRequest {
2237 type Owned = Self;
2238
2239 #[inline(always)]
2240 fn inline_align(_context: fidl::encoding::Context) -> usize {
2241 8
2242 }
2243
2244 #[inline(always)]
2245 fn inline_size(_context: fidl::encoding::Context) -> usize {
2246 48
2247 }
2248 }
2249
2250 unsafe impl<D: fidl::encoding::ResourceDialect>
2251 fidl::encoding::Encode<RealmSetConfigValueRequest, D> for &RealmSetConfigValueRequest
2252 {
2253 #[inline]
2254 unsafe fn encode(
2255 self,
2256 encoder: &mut fidl::encoding::Encoder<'_, D>,
2257 offset: usize,
2258 _depth: fidl::encoding::Depth,
2259 ) -> fidl::Result<()> {
2260 encoder.debug_check_bounds::<RealmSetConfigValueRequest>(offset);
2261 fidl::encoding::Encode::<RealmSetConfigValueRequest, D>::encode(
2263 (
2264 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2265 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(&self.key),
2266 <fidl_fuchsia_component_decl__common::ConfigValueSpec as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
2267 ),
2268 encoder, offset, _depth
2269 )
2270 }
2271 }
2272 unsafe impl<
2273 D: fidl::encoding::ResourceDialect,
2274 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
2275 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
2276 T2: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::ConfigValueSpec, D>,
2277 > fidl::encoding::Encode<RealmSetConfigValueRequest, D> for (T0, T1, T2)
2278 {
2279 #[inline]
2280 unsafe fn encode(
2281 self,
2282 encoder: &mut fidl::encoding::Encoder<'_, D>,
2283 offset: usize,
2284 depth: fidl::encoding::Depth,
2285 ) -> fidl::Result<()> {
2286 encoder.debug_check_bounds::<RealmSetConfigValueRequest>(offset);
2287 self.0.encode(encoder, offset + 0, depth)?;
2291 self.1.encode(encoder, offset + 16, depth)?;
2292 self.2.encode(encoder, offset + 32, depth)?;
2293 Ok(())
2294 }
2295 }
2296
2297 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2298 for RealmSetConfigValueRequest
2299 {
2300 #[inline(always)]
2301 fn new_empty() -> Self {
2302 Self {
2303 name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
2304 key: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
2305 value: fidl::new_empty!(fidl_fuchsia_component_decl__common::ConfigValueSpec, D),
2306 }
2307 }
2308
2309 #[inline]
2310 unsafe fn decode(
2311 &mut self,
2312 decoder: &mut fidl::encoding::Decoder<'_, D>,
2313 offset: usize,
2314 _depth: fidl::encoding::Depth,
2315 ) -> fidl::Result<()> {
2316 decoder.debug_check_bounds::<Self>(offset);
2317 fidl::decode!(
2319 fidl::encoding::BoundedString<255>,
2320 D,
2321 &mut self.name,
2322 decoder,
2323 offset + 0,
2324 _depth
2325 )?;
2326 fidl::decode!(
2327 fidl::encoding::BoundedString<64>,
2328 D,
2329 &mut self.key,
2330 decoder,
2331 offset + 16,
2332 _depth
2333 )?;
2334 fidl::decode!(
2335 fidl_fuchsia_component_decl__common::ConfigValueSpec,
2336 D,
2337 &mut self.value,
2338 decoder,
2339 offset + 32,
2340 _depth
2341 )?;
2342 Ok(())
2343 }
2344 }
2345
2346 impl fidl::encoding::ValueTypeMarker for RealmUseNestedComponentManagerRequest {
2347 type Borrowed<'a> = &'a Self;
2348 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2349 value
2350 }
2351 }
2352
2353 unsafe impl fidl::encoding::TypeMarker for RealmUseNestedComponentManagerRequest {
2354 type Owned = Self;
2355
2356 #[inline(always)]
2357 fn inline_align(_context: fidl::encoding::Context) -> usize {
2358 8
2359 }
2360
2361 #[inline(always)]
2362 fn inline_size(_context: fidl::encoding::Context) -> usize {
2363 16
2364 }
2365 }
2366
2367 unsafe impl<D: fidl::encoding::ResourceDialect>
2368 fidl::encoding::Encode<RealmUseNestedComponentManagerRequest, D>
2369 for &RealmUseNestedComponentManagerRequest
2370 {
2371 #[inline]
2372 unsafe fn encode(
2373 self,
2374 encoder: &mut fidl::encoding::Encoder<'_, D>,
2375 offset: usize,
2376 _depth: fidl::encoding::Depth,
2377 ) -> fidl::Result<()> {
2378 encoder.debug_check_bounds::<RealmUseNestedComponentManagerRequest>(offset);
2379 fidl::encoding::Encode::<RealmUseNestedComponentManagerRequest, D>::encode(
2381 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
2382 &self.component_manager_relative_url,
2383 ),),
2384 encoder,
2385 offset,
2386 _depth,
2387 )
2388 }
2389 }
2390 unsafe impl<
2391 D: fidl::encoding::ResourceDialect,
2392 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
2393 > fidl::encoding::Encode<RealmUseNestedComponentManagerRequest, D> for (T0,)
2394 {
2395 #[inline]
2396 unsafe fn encode(
2397 self,
2398 encoder: &mut fidl::encoding::Encoder<'_, D>,
2399 offset: usize,
2400 depth: fidl::encoding::Depth,
2401 ) -> fidl::Result<()> {
2402 encoder.debug_check_bounds::<RealmUseNestedComponentManagerRequest>(offset);
2403 self.0.encode(encoder, offset + 0, depth)?;
2407 Ok(())
2408 }
2409 }
2410
2411 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2412 for RealmUseNestedComponentManagerRequest
2413 {
2414 #[inline(always)]
2415 fn new_empty() -> Self {
2416 Self {
2417 component_manager_relative_url: fidl::new_empty!(
2418 fidl::encoding::BoundedString<4096>,
2419 D
2420 ),
2421 }
2422 }
2423
2424 #[inline]
2425 unsafe fn decode(
2426 &mut self,
2427 decoder: &mut fidl::encoding::Decoder<'_, D>,
2428 offset: usize,
2429 _depth: fidl::encoding::Depth,
2430 ) -> fidl::Result<()> {
2431 decoder.debug_check_bounds::<Self>(offset);
2432 fidl::decode!(
2434 fidl::encoding::BoundedString<4096>,
2435 D,
2436 &mut self.component_manager_relative_url,
2437 decoder,
2438 offset + 0,
2439 _depth
2440 )?;
2441 Ok(())
2442 }
2443 }
2444
2445 impl fidl::encoding::ValueTypeMarker for RealmGetComponentDeclResponse {
2446 type Borrowed<'a> = &'a Self;
2447 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2448 value
2449 }
2450 }
2451
2452 unsafe impl fidl::encoding::TypeMarker for RealmGetComponentDeclResponse {
2453 type Owned = Self;
2454
2455 #[inline(always)]
2456 fn inline_align(_context: fidl::encoding::Context) -> usize {
2457 8
2458 }
2459
2460 #[inline(always)]
2461 fn inline_size(_context: fidl::encoding::Context) -> usize {
2462 16
2463 }
2464 }
2465
2466 unsafe impl<D: fidl::encoding::ResourceDialect>
2467 fidl::encoding::Encode<RealmGetComponentDeclResponse, D>
2468 for &RealmGetComponentDeclResponse
2469 {
2470 #[inline]
2471 unsafe fn encode(
2472 self,
2473 encoder: &mut fidl::encoding::Encoder<'_, D>,
2474 offset: usize,
2475 _depth: fidl::encoding::Depth,
2476 ) -> fidl::Result<()> {
2477 encoder.debug_check_bounds::<RealmGetComponentDeclResponse>(offset);
2478 fidl::encoding::Encode::<RealmGetComponentDeclResponse, D>::encode(
2480 (
2481 <fidl_fuchsia_component_decl__common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2482 ),
2483 encoder, offset, _depth
2484 )
2485 }
2486 }
2487 unsafe impl<
2488 D: fidl::encoding::ResourceDialect,
2489 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Component, D>,
2490 > fidl::encoding::Encode<RealmGetComponentDeclResponse, D> for (T0,)
2491 {
2492 #[inline]
2493 unsafe fn encode(
2494 self,
2495 encoder: &mut fidl::encoding::Encoder<'_, D>,
2496 offset: usize,
2497 depth: fidl::encoding::Depth,
2498 ) -> fidl::Result<()> {
2499 encoder.debug_check_bounds::<RealmGetComponentDeclResponse>(offset);
2500 self.0.encode(encoder, offset + 0, depth)?;
2504 Ok(())
2505 }
2506 }
2507
2508 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2509 for RealmGetComponentDeclResponse
2510 {
2511 #[inline(always)]
2512 fn new_empty() -> Self {
2513 Self {
2514 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl__common::Component, D),
2515 }
2516 }
2517
2518 #[inline]
2519 unsafe fn decode(
2520 &mut self,
2521 decoder: &mut fidl::encoding::Decoder<'_, D>,
2522 offset: usize,
2523 _depth: fidl::encoding::Depth,
2524 ) -> fidl::Result<()> {
2525 decoder.debug_check_bounds::<Self>(offset);
2526 fidl::decode!(
2528 fidl_fuchsia_component_decl__common::Component,
2529 D,
2530 &mut self.component_decl,
2531 decoder,
2532 offset + 0,
2533 _depth
2534 )?;
2535 Ok(())
2536 }
2537 }
2538
2539 impl fidl::encoding::ValueTypeMarker for RealmGetRealmDeclResponse {
2540 type Borrowed<'a> = &'a Self;
2541 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2542 value
2543 }
2544 }
2545
2546 unsafe impl fidl::encoding::TypeMarker for RealmGetRealmDeclResponse {
2547 type Owned = Self;
2548
2549 #[inline(always)]
2550 fn inline_align(_context: fidl::encoding::Context) -> usize {
2551 8
2552 }
2553
2554 #[inline(always)]
2555 fn inline_size(_context: fidl::encoding::Context) -> usize {
2556 16
2557 }
2558 }
2559
2560 unsafe impl<D: fidl::encoding::ResourceDialect>
2561 fidl::encoding::Encode<RealmGetRealmDeclResponse, D> for &RealmGetRealmDeclResponse
2562 {
2563 #[inline]
2564 unsafe fn encode(
2565 self,
2566 encoder: &mut fidl::encoding::Encoder<'_, D>,
2567 offset: usize,
2568 _depth: fidl::encoding::Depth,
2569 ) -> fidl::Result<()> {
2570 encoder.debug_check_bounds::<RealmGetRealmDeclResponse>(offset);
2571 fidl::encoding::Encode::<RealmGetRealmDeclResponse, D>::encode(
2573 (
2574 <fidl_fuchsia_component_decl__common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2575 ),
2576 encoder, offset, _depth
2577 )
2578 }
2579 }
2580 unsafe impl<
2581 D: fidl::encoding::ResourceDialect,
2582 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl__common::Component, D>,
2583 > fidl::encoding::Encode<RealmGetRealmDeclResponse, D> for (T0,)
2584 {
2585 #[inline]
2586 unsafe fn encode(
2587 self,
2588 encoder: &mut fidl::encoding::Encoder<'_, D>,
2589 offset: usize,
2590 depth: fidl::encoding::Depth,
2591 ) -> fidl::Result<()> {
2592 encoder.debug_check_bounds::<RealmGetRealmDeclResponse>(offset);
2593 self.0.encode(encoder, offset + 0, depth)?;
2597 Ok(())
2598 }
2599 }
2600
2601 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2602 for RealmGetRealmDeclResponse
2603 {
2604 #[inline(always)]
2605 fn new_empty() -> Self {
2606 Self {
2607 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl__common::Component, D),
2608 }
2609 }
2610
2611 #[inline]
2612 unsafe fn decode(
2613 &mut self,
2614 decoder: &mut fidl::encoding::Decoder<'_, D>,
2615 offset: usize,
2616 _depth: fidl::encoding::Depth,
2617 ) -> fidl::Result<()> {
2618 decoder.debug_check_bounds::<Self>(offset);
2619 fidl::decode!(
2621 fidl_fuchsia_component_decl__common::Component,
2622 D,
2623 &mut self.component_decl,
2624 decoder,
2625 offset + 0,
2626 _depth
2627 )?;
2628 Ok(())
2629 }
2630 }
2631
2632 impl ChildOptions {
2633 #[inline(always)]
2634 fn max_ordinal_present(&self) -> u64 {
2635 if let Some(_) = self.config_overrides {
2636 return 4;
2637 }
2638 if let Some(_) = self.on_terminate {
2639 return 3;
2640 }
2641 if let Some(_) = self.environment {
2642 return 2;
2643 }
2644 if let Some(_) = self.startup {
2645 return 1;
2646 }
2647 0
2648 }
2649 }
2650
2651 impl fidl::encoding::ValueTypeMarker for ChildOptions {
2652 type Borrowed<'a> = &'a Self;
2653 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2654 value
2655 }
2656 }
2657
2658 unsafe impl fidl::encoding::TypeMarker for ChildOptions {
2659 type Owned = Self;
2660
2661 #[inline(always)]
2662 fn inline_align(_context: fidl::encoding::Context) -> usize {
2663 8
2664 }
2665
2666 #[inline(always)]
2667 fn inline_size(_context: fidl::encoding::Context) -> usize {
2668 16
2669 }
2670 }
2671
2672 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChildOptions, D>
2673 for &ChildOptions
2674 {
2675 unsafe fn encode(
2676 self,
2677 encoder: &mut fidl::encoding::Encoder<'_, D>,
2678 offset: usize,
2679 mut depth: fidl::encoding::Depth,
2680 ) -> fidl::Result<()> {
2681 encoder.debug_check_bounds::<ChildOptions>(offset);
2682 let max_ordinal: u64 = self.max_ordinal_present();
2684 encoder.write_num(max_ordinal, offset);
2685 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2686 if max_ordinal == 0 {
2688 return Ok(());
2689 }
2690 depth.increment()?;
2691 let envelope_size = 8;
2692 let bytes_len = max_ordinal as usize * envelope_size;
2693 #[allow(unused_variables)]
2694 let offset = encoder.out_of_line_offset(bytes_len);
2695 let mut _prev_end_offset: usize = 0;
2696 if 1 > max_ordinal {
2697 return Ok(());
2698 }
2699
2700 let cur_offset: usize = (1 - 1) * envelope_size;
2703
2704 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2706
2707 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::StartupMode, D>(
2712 self.startup.as_ref().map(<fidl_fuchsia_component_decl__common::StartupMode as fidl::encoding::ValueTypeMarker>::borrow),
2713 encoder, offset + cur_offset, depth
2714 )?;
2715
2716 _prev_end_offset = cur_offset + envelope_size;
2717 if 2 > max_ordinal {
2718 return Ok(());
2719 }
2720
2721 let cur_offset: usize = (2 - 1) * envelope_size;
2724
2725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2727
2728 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
2733 self.environment.as_ref().map(
2734 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
2735 ),
2736 encoder,
2737 offset + cur_offset,
2738 depth,
2739 )?;
2740
2741 _prev_end_offset = cur_offset + envelope_size;
2742 if 3 > max_ordinal {
2743 return Ok(());
2744 }
2745
2746 let cur_offset: usize = (3 - 1) * envelope_size;
2749
2750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2752
2753 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::OnTerminate, D>(
2758 self.on_terminate.as_ref().map(<fidl_fuchsia_component_decl__common::OnTerminate as fidl::encoding::ValueTypeMarker>::borrow),
2759 encoder, offset + cur_offset, depth
2760 )?;
2761
2762 _prev_end_offset = cur_offset + envelope_size;
2763 if 4 > max_ordinal {
2764 return Ok(());
2765 }
2766
2767 let cur_offset: usize = (4 - 1) * envelope_size;
2770
2771 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2773
2774 fidl::encoding::encode_in_envelope_optional::<
2779 fidl::encoding::UnboundedVector<
2780 fidl_fuchsia_component_decl__common::ConfigOverride,
2781 >,
2782 D,
2783 >(
2784 self.config_overrides.as_ref().map(
2785 <fidl::encoding::UnboundedVector<
2786 fidl_fuchsia_component_decl__common::ConfigOverride,
2787 > as fidl::encoding::ValueTypeMarker>::borrow,
2788 ),
2789 encoder,
2790 offset + cur_offset,
2791 depth,
2792 )?;
2793
2794 _prev_end_offset = cur_offset + envelope_size;
2795
2796 Ok(())
2797 }
2798 }
2799
2800 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChildOptions {
2801 #[inline(always)]
2802 fn new_empty() -> Self {
2803 Self::default()
2804 }
2805
2806 unsafe fn decode(
2807 &mut self,
2808 decoder: &mut fidl::encoding::Decoder<'_, D>,
2809 offset: usize,
2810 mut depth: fidl::encoding::Depth,
2811 ) -> fidl::Result<()> {
2812 decoder.debug_check_bounds::<Self>(offset);
2813 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2814 None => return Err(fidl::Error::NotNullable),
2815 Some(len) => len,
2816 };
2817 if len == 0 {
2819 return Ok(());
2820 };
2821 depth.increment()?;
2822 let envelope_size = 8;
2823 let bytes_len = len * envelope_size;
2824 let offset = decoder.out_of_line_offset(bytes_len)?;
2825 let mut _next_ordinal_to_read = 0;
2827 let mut next_offset = offset;
2828 let end_offset = offset + bytes_len;
2829 _next_ordinal_to_read += 1;
2830 if next_offset >= end_offset {
2831 return Ok(());
2832 }
2833
2834 while _next_ordinal_to_read < 1 {
2836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2837 _next_ordinal_to_read += 1;
2838 next_offset += envelope_size;
2839 }
2840
2841 let next_out_of_line = decoder.next_out_of_line();
2842 let handles_before = decoder.remaining_handles();
2843 if let Some((inlined, num_bytes, num_handles)) =
2844 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2845 {
2846 let member_inline_size = <fidl_fuchsia_component_decl__common::StartupMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2847 if inlined != (member_inline_size <= 4) {
2848 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2849 }
2850 let inner_offset;
2851 let mut inner_depth = depth.clone();
2852 if inlined {
2853 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2854 inner_offset = next_offset;
2855 } else {
2856 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2857 inner_depth.increment()?;
2858 }
2859 let val_ref = self.startup.get_or_insert_with(|| {
2860 fidl::new_empty!(fidl_fuchsia_component_decl__common::StartupMode, D)
2861 });
2862 fidl::decode!(
2863 fidl_fuchsia_component_decl__common::StartupMode,
2864 D,
2865 val_ref,
2866 decoder,
2867 inner_offset,
2868 inner_depth
2869 )?;
2870 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2871 {
2872 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2873 }
2874 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2875 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2876 }
2877 }
2878
2879 next_offset += envelope_size;
2880 _next_ordinal_to_read += 1;
2881 if next_offset >= end_offset {
2882 return Ok(());
2883 }
2884
2885 while _next_ordinal_to_read < 2 {
2887 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2888 _next_ordinal_to_read += 1;
2889 next_offset += envelope_size;
2890 }
2891
2892 let next_out_of_line = decoder.next_out_of_line();
2893 let handles_before = decoder.remaining_handles();
2894 if let Some((inlined, num_bytes, num_handles)) =
2895 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2896 {
2897 let member_inline_size =
2898 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
2899 decoder.context,
2900 );
2901 if inlined != (member_inline_size <= 4) {
2902 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2903 }
2904 let inner_offset;
2905 let mut inner_depth = depth.clone();
2906 if inlined {
2907 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2908 inner_offset = next_offset;
2909 } else {
2910 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2911 inner_depth.increment()?;
2912 }
2913 let val_ref = self
2914 .environment
2915 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
2916 fidl::decode!(
2917 fidl::encoding::BoundedString<255>,
2918 D,
2919 val_ref,
2920 decoder,
2921 inner_offset,
2922 inner_depth
2923 )?;
2924 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2925 {
2926 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2927 }
2928 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2929 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2930 }
2931 }
2932
2933 next_offset += envelope_size;
2934 _next_ordinal_to_read += 1;
2935 if next_offset >= end_offset {
2936 return Ok(());
2937 }
2938
2939 while _next_ordinal_to_read < 3 {
2941 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2942 _next_ordinal_to_read += 1;
2943 next_offset += envelope_size;
2944 }
2945
2946 let next_out_of_line = decoder.next_out_of_line();
2947 let handles_before = decoder.remaining_handles();
2948 if let Some((inlined, num_bytes, num_handles)) =
2949 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2950 {
2951 let member_inline_size = <fidl_fuchsia_component_decl__common::OnTerminate as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2952 if inlined != (member_inline_size <= 4) {
2953 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2954 }
2955 let inner_offset;
2956 let mut inner_depth = depth.clone();
2957 if inlined {
2958 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2959 inner_offset = next_offset;
2960 } else {
2961 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2962 inner_depth.increment()?;
2963 }
2964 let val_ref = self.on_terminate.get_or_insert_with(|| {
2965 fidl::new_empty!(fidl_fuchsia_component_decl__common::OnTerminate, D)
2966 });
2967 fidl::decode!(
2968 fidl_fuchsia_component_decl__common::OnTerminate,
2969 D,
2970 val_ref,
2971 decoder,
2972 inner_offset,
2973 inner_depth
2974 )?;
2975 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2976 {
2977 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2978 }
2979 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2980 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2981 }
2982 }
2983
2984 next_offset += envelope_size;
2985 _next_ordinal_to_read += 1;
2986 if next_offset >= end_offset {
2987 return Ok(());
2988 }
2989
2990 while _next_ordinal_to_read < 4 {
2992 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2993 _next_ordinal_to_read += 1;
2994 next_offset += envelope_size;
2995 }
2996
2997 let next_out_of_line = decoder.next_out_of_line();
2998 let handles_before = decoder.remaining_handles();
2999 if let Some((inlined, num_bytes, num_handles)) =
3000 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3001 {
3002 let member_inline_size = <fidl::encoding::UnboundedVector<
3003 fidl_fuchsia_component_decl__common::ConfigOverride,
3004 > as fidl::encoding::TypeMarker>::inline_size(
3005 decoder.context
3006 );
3007 if inlined != (member_inline_size <= 4) {
3008 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3009 }
3010 let inner_offset;
3011 let mut inner_depth = depth.clone();
3012 if inlined {
3013 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3014 inner_offset = next_offset;
3015 } else {
3016 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3017 inner_depth.increment()?;
3018 }
3019 let val_ref = self.config_overrides.get_or_insert_with(|| {
3020 fidl::new_empty!(
3021 fidl::encoding::UnboundedVector<
3022 fidl_fuchsia_component_decl__common::ConfigOverride,
3023 >,
3024 D
3025 )
3026 });
3027 fidl::decode!(
3028 fidl::encoding::UnboundedVector<
3029 fidl_fuchsia_component_decl__common::ConfigOverride,
3030 >,
3031 D,
3032 val_ref,
3033 decoder,
3034 inner_offset,
3035 inner_depth
3036 )?;
3037 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3038 {
3039 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3040 }
3041 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3042 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3043 }
3044 }
3045
3046 next_offset += envelope_size;
3047
3048 while next_offset < end_offset {
3050 _next_ordinal_to_read += 1;
3051 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3052 next_offset += envelope_size;
3053 }
3054
3055 Ok(())
3056 }
3057 }
3058
3059 impl Config {
3060 #[inline(always)]
3061 fn max_ordinal_present(&self) -> u64 {
3062 if let Some(_) = self.availability {
3063 return 3;
3064 }
3065 if let Some(_) = self.as_ {
3066 return 2;
3067 }
3068 if let Some(_) = self.name {
3069 return 1;
3070 }
3071 0
3072 }
3073 }
3074
3075 impl fidl::encoding::ValueTypeMarker for Config {
3076 type Borrowed<'a> = &'a Self;
3077 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3078 value
3079 }
3080 }
3081
3082 unsafe impl fidl::encoding::TypeMarker for Config {
3083 type Owned = Self;
3084
3085 #[inline(always)]
3086 fn inline_align(_context: fidl::encoding::Context) -> usize {
3087 8
3088 }
3089
3090 #[inline(always)]
3091 fn inline_size(_context: fidl::encoding::Context) -> usize {
3092 16
3093 }
3094 }
3095
3096 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
3097 unsafe fn encode(
3098 self,
3099 encoder: &mut fidl::encoding::Encoder<'_, D>,
3100 offset: usize,
3101 mut depth: fidl::encoding::Depth,
3102 ) -> fidl::Result<()> {
3103 encoder.debug_check_bounds::<Config>(offset);
3104 let max_ordinal: u64 = self.max_ordinal_present();
3106 encoder.write_num(max_ordinal, offset);
3107 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3108 if max_ordinal == 0 {
3110 return Ok(());
3111 }
3112 depth.increment()?;
3113 let envelope_size = 8;
3114 let bytes_len = max_ordinal as usize * envelope_size;
3115 #[allow(unused_variables)]
3116 let offset = encoder.out_of_line_offset(bytes_len);
3117 let mut _prev_end_offset: usize = 0;
3118 if 1 > max_ordinal {
3119 return Ok(());
3120 }
3121
3122 let cur_offset: usize = (1 - 1) * envelope_size;
3125
3126 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3128
3129 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3134 self.name.as_ref().map(
3135 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3136 ),
3137 encoder,
3138 offset + cur_offset,
3139 depth,
3140 )?;
3141
3142 _prev_end_offset = cur_offset + envelope_size;
3143 if 2 > max_ordinal {
3144 return Ok(());
3145 }
3146
3147 let cur_offset: usize = (2 - 1) * envelope_size;
3150
3151 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3153
3154 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3159 self.as_.as_ref().map(
3160 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3161 ),
3162 encoder,
3163 offset + cur_offset,
3164 depth,
3165 )?;
3166
3167 _prev_end_offset = cur_offset + envelope_size;
3168 if 3 > max_ordinal {
3169 return Ok(());
3170 }
3171
3172 let cur_offset: usize = (3 - 1) * envelope_size;
3175
3176 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3178
3179 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Availability, D>(
3184 self.availability.as_ref().map(<fidl_fuchsia_component_decl__common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
3185 encoder, offset + cur_offset, depth
3186 )?;
3187
3188 _prev_end_offset = cur_offset + envelope_size;
3189
3190 Ok(())
3191 }
3192 }
3193
3194 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
3195 #[inline(always)]
3196 fn new_empty() -> Self {
3197 Self::default()
3198 }
3199
3200 unsafe fn decode(
3201 &mut self,
3202 decoder: &mut fidl::encoding::Decoder<'_, D>,
3203 offset: usize,
3204 mut depth: fidl::encoding::Depth,
3205 ) -> fidl::Result<()> {
3206 decoder.debug_check_bounds::<Self>(offset);
3207 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3208 None => return Err(fidl::Error::NotNullable),
3209 Some(len) => len,
3210 };
3211 if len == 0 {
3213 return Ok(());
3214 };
3215 depth.increment()?;
3216 let envelope_size = 8;
3217 let bytes_len = len * envelope_size;
3218 let offset = decoder.out_of_line_offset(bytes_len)?;
3219 let mut _next_ordinal_to_read = 0;
3221 let mut next_offset = offset;
3222 let end_offset = offset + bytes_len;
3223 _next_ordinal_to_read += 1;
3224 if next_offset >= end_offset {
3225 return Ok(());
3226 }
3227
3228 while _next_ordinal_to_read < 1 {
3230 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3231 _next_ordinal_to_read += 1;
3232 next_offset += envelope_size;
3233 }
3234
3235 let next_out_of_line = decoder.next_out_of_line();
3236 let handles_before = decoder.remaining_handles();
3237 if let Some((inlined, num_bytes, num_handles)) =
3238 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3239 {
3240 let member_inline_size =
3241 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3242 decoder.context,
3243 );
3244 if inlined != (member_inline_size <= 4) {
3245 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3246 }
3247 let inner_offset;
3248 let mut inner_depth = depth.clone();
3249 if inlined {
3250 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3251 inner_offset = next_offset;
3252 } else {
3253 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3254 inner_depth.increment()?;
3255 }
3256 let val_ref = self
3257 .name
3258 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3259 fidl::decode!(
3260 fidl::encoding::BoundedString<255>,
3261 D,
3262 val_ref,
3263 decoder,
3264 inner_offset,
3265 inner_depth
3266 )?;
3267 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3268 {
3269 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3270 }
3271 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3272 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3273 }
3274 }
3275
3276 next_offset += envelope_size;
3277 _next_ordinal_to_read += 1;
3278 if next_offset >= end_offset {
3279 return Ok(());
3280 }
3281
3282 while _next_ordinal_to_read < 2 {
3284 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3285 _next_ordinal_to_read += 1;
3286 next_offset += envelope_size;
3287 }
3288
3289 let next_out_of_line = decoder.next_out_of_line();
3290 let handles_before = decoder.remaining_handles();
3291 if let Some((inlined, num_bytes, num_handles)) =
3292 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3293 {
3294 let member_inline_size =
3295 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3296 decoder.context,
3297 );
3298 if inlined != (member_inline_size <= 4) {
3299 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3300 }
3301 let inner_offset;
3302 let mut inner_depth = depth.clone();
3303 if inlined {
3304 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3305 inner_offset = next_offset;
3306 } else {
3307 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3308 inner_depth.increment()?;
3309 }
3310 let val_ref = self
3311 .as_
3312 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3313 fidl::decode!(
3314 fidl::encoding::BoundedString<255>,
3315 D,
3316 val_ref,
3317 decoder,
3318 inner_offset,
3319 inner_depth
3320 )?;
3321 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3322 {
3323 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3324 }
3325 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3326 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3327 }
3328 }
3329
3330 next_offset += envelope_size;
3331 _next_ordinal_to_read += 1;
3332 if next_offset >= end_offset {
3333 return Ok(());
3334 }
3335
3336 while _next_ordinal_to_read < 3 {
3338 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3339 _next_ordinal_to_read += 1;
3340 next_offset += envelope_size;
3341 }
3342
3343 let next_out_of_line = decoder.next_out_of_line();
3344 let handles_before = decoder.remaining_handles();
3345 if let Some((inlined, num_bytes, num_handles)) =
3346 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3347 {
3348 let member_inline_size = <fidl_fuchsia_component_decl__common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3349 if inlined != (member_inline_size <= 4) {
3350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3351 }
3352 let inner_offset;
3353 let mut inner_depth = depth.clone();
3354 if inlined {
3355 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3356 inner_offset = next_offset;
3357 } else {
3358 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3359 inner_depth.increment()?;
3360 }
3361 let val_ref = self.availability.get_or_insert_with(|| {
3362 fidl::new_empty!(fidl_fuchsia_component_decl__common::Availability, D)
3363 });
3364 fidl::decode!(
3365 fidl_fuchsia_component_decl__common::Availability,
3366 D,
3367 val_ref,
3368 decoder,
3369 inner_offset,
3370 inner_depth
3371 )?;
3372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3373 {
3374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3375 }
3376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3378 }
3379 }
3380
3381 next_offset += envelope_size;
3382
3383 while next_offset < end_offset {
3385 _next_ordinal_to_read += 1;
3386 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3387 next_offset += envelope_size;
3388 }
3389
3390 Ok(())
3391 }
3392 }
3393
3394 impl Dictionary {
3395 #[inline(always)]
3396 fn max_ordinal_present(&self) -> u64 {
3397 if let Some(_) = self.from_dictionary {
3398 return 5;
3399 }
3400 if let Some(_) = self.availability {
3401 return 4;
3402 }
3403 if let Some(_) = self.type_ {
3404 return 3;
3405 }
3406 if let Some(_) = self.as_ {
3407 return 2;
3408 }
3409 if let Some(_) = self.name {
3410 return 1;
3411 }
3412 0
3413 }
3414 }
3415
3416 impl fidl::encoding::ValueTypeMarker for Dictionary {
3417 type Borrowed<'a> = &'a Self;
3418 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3419 value
3420 }
3421 }
3422
3423 unsafe impl fidl::encoding::TypeMarker for Dictionary {
3424 type Owned = Self;
3425
3426 #[inline(always)]
3427 fn inline_align(_context: fidl::encoding::Context) -> usize {
3428 8
3429 }
3430
3431 #[inline(always)]
3432 fn inline_size(_context: fidl::encoding::Context) -> usize {
3433 16
3434 }
3435 }
3436
3437 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Dictionary, D>
3438 for &Dictionary
3439 {
3440 unsafe fn encode(
3441 self,
3442 encoder: &mut fidl::encoding::Encoder<'_, D>,
3443 offset: usize,
3444 mut depth: fidl::encoding::Depth,
3445 ) -> fidl::Result<()> {
3446 encoder.debug_check_bounds::<Dictionary>(offset);
3447 let max_ordinal: u64 = self.max_ordinal_present();
3449 encoder.write_num(max_ordinal, offset);
3450 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3451 if max_ordinal == 0 {
3453 return Ok(());
3454 }
3455 depth.increment()?;
3456 let envelope_size = 8;
3457 let bytes_len = max_ordinal as usize * envelope_size;
3458 #[allow(unused_variables)]
3459 let offset = encoder.out_of_line_offset(bytes_len);
3460 let mut _prev_end_offset: usize = 0;
3461 if 1 > max_ordinal {
3462 return Ok(());
3463 }
3464
3465 let cur_offset: usize = (1 - 1) * envelope_size;
3468
3469 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3471
3472 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3477 self.name.as_ref().map(
3478 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3479 ),
3480 encoder,
3481 offset + cur_offset,
3482 depth,
3483 )?;
3484
3485 _prev_end_offset = cur_offset + envelope_size;
3486 if 2 > max_ordinal {
3487 return Ok(());
3488 }
3489
3490 let cur_offset: usize = (2 - 1) * envelope_size;
3493
3494 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3496
3497 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3502 self.as_.as_ref().map(
3503 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3504 ),
3505 encoder,
3506 offset + cur_offset,
3507 depth,
3508 )?;
3509
3510 _prev_end_offset = cur_offset + envelope_size;
3511 if 3 > max_ordinal {
3512 return Ok(());
3513 }
3514
3515 let cur_offset: usize = (3 - 1) * envelope_size;
3518
3519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3521
3522 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::DependencyType, D>(
3527 self.type_.as_ref().map(<fidl_fuchsia_component_decl__common::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
3528 encoder, offset + cur_offset, depth
3529 )?;
3530
3531 _prev_end_offset = cur_offset + envelope_size;
3532 if 4 > max_ordinal {
3533 return Ok(());
3534 }
3535
3536 let cur_offset: usize = (4 - 1) * envelope_size;
3539
3540 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3542
3543 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Availability, D>(
3548 self.availability.as_ref().map(<fidl_fuchsia_component_decl__common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
3549 encoder, offset + cur_offset, depth
3550 )?;
3551
3552 _prev_end_offset = cur_offset + envelope_size;
3553 if 5 > max_ordinal {
3554 return Ok(());
3555 }
3556
3557 let cur_offset: usize = (5 - 1) * envelope_size;
3560
3561 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3563
3564 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3569 self.from_dictionary.as_ref().map(
3570 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3571 ),
3572 encoder,
3573 offset + cur_offset,
3574 depth,
3575 )?;
3576
3577 _prev_end_offset = cur_offset + envelope_size;
3578
3579 Ok(())
3580 }
3581 }
3582
3583 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Dictionary {
3584 #[inline(always)]
3585 fn new_empty() -> Self {
3586 Self::default()
3587 }
3588
3589 unsafe fn decode(
3590 &mut self,
3591 decoder: &mut fidl::encoding::Decoder<'_, D>,
3592 offset: usize,
3593 mut depth: fidl::encoding::Depth,
3594 ) -> fidl::Result<()> {
3595 decoder.debug_check_bounds::<Self>(offset);
3596 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3597 None => return Err(fidl::Error::NotNullable),
3598 Some(len) => len,
3599 };
3600 if len == 0 {
3602 return Ok(());
3603 };
3604 depth.increment()?;
3605 let envelope_size = 8;
3606 let bytes_len = len * envelope_size;
3607 let offset = decoder.out_of_line_offset(bytes_len)?;
3608 let mut _next_ordinal_to_read = 0;
3610 let mut next_offset = offset;
3611 let end_offset = offset + bytes_len;
3612 _next_ordinal_to_read += 1;
3613 if next_offset >= end_offset {
3614 return Ok(());
3615 }
3616
3617 while _next_ordinal_to_read < 1 {
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::BoundedString<255> 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 .name
3647 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3648 fidl::decode!(
3649 fidl::encoding::BoundedString<255>,
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 _next_ordinal_to_read += 1;
3667 if next_offset >= end_offset {
3668 return Ok(());
3669 }
3670
3671 while _next_ordinal_to_read < 2 {
3673 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3674 _next_ordinal_to_read += 1;
3675 next_offset += envelope_size;
3676 }
3677
3678 let next_out_of_line = decoder.next_out_of_line();
3679 let handles_before = decoder.remaining_handles();
3680 if let Some((inlined, num_bytes, num_handles)) =
3681 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3682 {
3683 let member_inline_size =
3684 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3685 decoder.context,
3686 );
3687 if inlined != (member_inline_size <= 4) {
3688 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3689 }
3690 let inner_offset;
3691 let mut inner_depth = depth.clone();
3692 if inlined {
3693 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3694 inner_offset = next_offset;
3695 } else {
3696 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3697 inner_depth.increment()?;
3698 }
3699 let val_ref = self
3700 .as_
3701 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3702 fidl::decode!(
3703 fidl::encoding::BoundedString<255>,
3704 D,
3705 val_ref,
3706 decoder,
3707 inner_offset,
3708 inner_depth
3709 )?;
3710 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3711 {
3712 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3713 }
3714 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3715 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3716 }
3717 }
3718
3719 next_offset += envelope_size;
3720 _next_ordinal_to_read += 1;
3721 if next_offset >= end_offset {
3722 return Ok(());
3723 }
3724
3725 while _next_ordinal_to_read < 3 {
3727 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3728 _next_ordinal_to_read += 1;
3729 next_offset += envelope_size;
3730 }
3731
3732 let next_out_of_line = decoder.next_out_of_line();
3733 let handles_before = decoder.remaining_handles();
3734 if let Some((inlined, num_bytes, num_handles)) =
3735 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3736 {
3737 let member_inline_size = <fidl_fuchsia_component_decl__common::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3738 if inlined != (member_inline_size <= 4) {
3739 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3740 }
3741 let inner_offset;
3742 let mut inner_depth = depth.clone();
3743 if inlined {
3744 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3745 inner_offset = next_offset;
3746 } else {
3747 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3748 inner_depth.increment()?;
3749 }
3750 let val_ref = self.type_.get_or_insert_with(|| {
3751 fidl::new_empty!(fidl_fuchsia_component_decl__common::DependencyType, D)
3752 });
3753 fidl::decode!(
3754 fidl_fuchsia_component_decl__common::DependencyType,
3755 D,
3756 val_ref,
3757 decoder,
3758 inner_offset,
3759 inner_depth
3760 )?;
3761 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3762 {
3763 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3764 }
3765 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3766 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3767 }
3768 }
3769
3770 next_offset += envelope_size;
3771 _next_ordinal_to_read += 1;
3772 if next_offset >= end_offset {
3773 return Ok(());
3774 }
3775
3776 while _next_ordinal_to_read < 4 {
3778 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3779 _next_ordinal_to_read += 1;
3780 next_offset += envelope_size;
3781 }
3782
3783 let next_out_of_line = decoder.next_out_of_line();
3784 let handles_before = decoder.remaining_handles();
3785 if let Some((inlined, num_bytes, num_handles)) =
3786 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3787 {
3788 let member_inline_size = <fidl_fuchsia_component_decl__common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3789 if inlined != (member_inline_size <= 4) {
3790 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3791 }
3792 let inner_offset;
3793 let mut inner_depth = depth.clone();
3794 if inlined {
3795 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3796 inner_offset = next_offset;
3797 } else {
3798 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3799 inner_depth.increment()?;
3800 }
3801 let val_ref = self.availability.get_or_insert_with(|| {
3802 fidl::new_empty!(fidl_fuchsia_component_decl__common::Availability, D)
3803 });
3804 fidl::decode!(
3805 fidl_fuchsia_component_decl__common::Availability,
3806 D,
3807 val_ref,
3808 decoder,
3809 inner_offset,
3810 inner_depth
3811 )?;
3812 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3813 {
3814 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3815 }
3816 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3817 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3818 }
3819 }
3820
3821 next_offset += envelope_size;
3822 _next_ordinal_to_read += 1;
3823 if next_offset >= end_offset {
3824 return Ok(());
3825 }
3826
3827 while _next_ordinal_to_read < 5 {
3829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3830 _next_ordinal_to_read += 1;
3831 next_offset += envelope_size;
3832 }
3833
3834 let next_out_of_line = decoder.next_out_of_line();
3835 let handles_before = decoder.remaining_handles();
3836 if let Some((inlined, num_bytes, num_handles)) =
3837 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3838 {
3839 let member_inline_size =
3840 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3841 decoder.context,
3842 );
3843 if inlined != (member_inline_size <= 4) {
3844 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3845 }
3846 let inner_offset;
3847 let mut inner_depth = depth.clone();
3848 if inlined {
3849 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3850 inner_offset = next_offset;
3851 } else {
3852 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3853 inner_depth.increment()?;
3854 }
3855 let val_ref = self
3856 .from_dictionary
3857 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3858 fidl::decode!(
3859 fidl::encoding::UnboundedString,
3860 D,
3861 val_ref,
3862 decoder,
3863 inner_offset,
3864 inner_depth
3865 )?;
3866 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3867 {
3868 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3869 }
3870 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3871 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3872 }
3873 }
3874
3875 next_offset += envelope_size;
3876
3877 while next_offset < end_offset {
3879 _next_ordinal_to_read += 1;
3880 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3881 next_offset += envelope_size;
3882 }
3883
3884 Ok(())
3885 }
3886 }
3887
3888 impl Directory {
3889 #[inline(always)]
3890 fn max_ordinal_present(&self) -> u64 {
3891 if let Some(_) = self.from_dictionary {
3892 return 8;
3893 }
3894 if let Some(_) = self.availability {
3895 return 7;
3896 }
3897 if let Some(_) = self.path {
3898 return 6;
3899 }
3900 if let Some(_) = self.rights {
3901 return 5;
3902 }
3903 if let Some(_) = self.subdir {
3904 return 4;
3905 }
3906 if let Some(_) = self.type_ {
3907 return 3;
3908 }
3909 if let Some(_) = self.as_ {
3910 return 2;
3911 }
3912 if let Some(_) = self.name {
3913 return 1;
3914 }
3915 0
3916 }
3917 }
3918
3919 impl fidl::encoding::ValueTypeMarker for Directory {
3920 type Borrowed<'a> = &'a Self;
3921 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3922 value
3923 }
3924 }
3925
3926 unsafe impl fidl::encoding::TypeMarker for Directory {
3927 type Owned = Self;
3928
3929 #[inline(always)]
3930 fn inline_align(_context: fidl::encoding::Context) -> usize {
3931 8
3932 }
3933
3934 #[inline(always)]
3935 fn inline_size(_context: fidl::encoding::Context) -> usize {
3936 16
3937 }
3938 }
3939
3940 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Directory, D>
3941 for &Directory
3942 {
3943 unsafe fn encode(
3944 self,
3945 encoder: &mut fidl::encoding::Encoder<'_, D>,
3946 offset: usize,
3947 mut depth: fidl::encoding::Depth,
3948 ) -> fidl::Result<()> {
3949 encoder.debug_check_bounds::<Directory>(offset);
3950 let max_ordinal: u64 = self.max_ordinal_present();
3952 encoder.write_num(max_ordinal, offset);
3953 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3954 if max_ordinal == 0 {
3956 return Ok(());
3957 }
3958 depth.increment()?;
3959 let envelope_size = 8;
3960 let bytes_len = max_ordinal as usize * envelope_size;
3961 #[allow(unused_variables)]
3962 let offset = encoder.out_of_line_offset(bytes_len);
3963 let mut _prev_end_offset: usize = 0;
3964 if 1 > max_ordinal {
3965 return Ok(());
3966 }
3967
3968 let cur_offset: usize = (1 - 1) * envelope_size;
3971
3972 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3974
3975 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3980 self.name.as_ref().map(
3981 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3982 ),
3983 encoder,
3984 offset + cur_offset,
3985 depth,
3986 )?;
3987
3988 _prev_end_offset = cur_offset + envelope_size;
3989 if 2 > max_ordinal {
3990 return Ok(());
3991 }
3992
3993 let cur_offset: usize = (2 - 1) * envelope_size;
3996
3997 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3999
4000 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4005 self.as_.as_ref().map(
4006 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4007 ),
4008 encoder,
4009 offset + cur_offset,
4010 depth,
4011 )?;
4012
4013 _prev_end_offset = cur_offset + envelope_size;
4014 if 3 > max_ordinal {
4015 return Ok(());
4016 }
4017
4018 let cur_offset: usize = (3 - 1) * envelope_size;
4021
4022 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4024
4025 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::DependencyType, D>(
4030 self.type_.as_ref().map(<fidl_fuchsia_component_decl__common::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
4031 encoder, offset + cur_offset, depth
4032 )?;
4033
4034 _prev_end_offset = cur_offset + envelope_size;
4035 if 4 > max_ordinal {
4036 return Ok(());
4037 }
4038
4039 let cur_offset: usize = (4 - 1) * envelope_size;
4042
4043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4045
4046 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
4051 self.subdir.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
4052 encoder, offset + cur_offset, depth
4053 )?;
4054
4055 _prev_end_offset = cur_offset + envelope_size;
4056 if 5 > max_ordinal {
4057 return Ok(());
4058 }
4059
4060 let cur_offset: usize = (5 - 1) * envelope_size;
4063
4064 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4066
4067 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
4072 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
4073 encoder, offset + cur_offset, depth
4074 )?;
4075
4076 _prev_end_offset = cur_offset + envelope_size;
4077 if 6 > max_ordinal {
4078 return Ok(());
4079 }
4080
4081 let cur_offset: usize = (6 - 1) * envelope_size;
4084
4085 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4087
4088 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
4093 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
4094 encoder, offset + cur_offset, depth
4095 )?;
4096
4097 _prev_end_offset = cur_offset + envelope_size;
4098 if 7 > max_ordinal {
4099 return Ok(());
4100 }
4101
4102 let cur_offset: usize = (7 - 1) * envelope_size;
4105
4106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4108
4109 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Availability, D>(
4114 self.availability.as_ref().map(<fidl_fuchsia_component_decl__common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
4115 encoder, offset + cur_offset, depth
4116 )?;
4117
4118 _prev_end_offset = cur_offset + envelope_size;
4119 if 8 > max_ordinal {
4120 return Ok(());
4121 }
4122
4123 let cur_offset: usize = (8 - 1) * envelope_size;
4126
4127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4129
4130 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
4135 self.from_dictionary.as_ref().map(
4136 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
4137 ),
4138 encoder,
4139 offset + cur_offset,
4140 depth,
4141 )?;
4142
4143 _prev_end_offset = cur_offset + envelope_size;
4144
4145 Ok(())
4146 }
4147 }
4148
4149 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Directory {
4150 #[inline(always)]
4151 fn new_empty() -> Self {
4152 Self::default()
4153 }
4154
4155 unsafe fn decode(
4156 &mut self,
4157 decoder: &mut fidl::encoding::Decoder<'_, D>,
4158 offset: usize,
4159 mut depth: fidl::encoding::Depth,
4160 ) -> fidl::Result<()> {
4161 decoder.debug_check_bounds::<Self>(offset);
4162 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4163 None => return Err(fidl::Error::NotNullable),
4164 Some(len) => len,
4165 };
4166 if len == 0 {
4168 return Ok(());
4169 };
4170 depth.increment()?;
4171 let envelope_size = 8;
4172 let bytes_len = len * envelope_size;
4173 let offset = decoder.out_of_line_offset(bytes_len)?;
4174 let mut _next_ordinal_to_read = 0;
4176 let mut next_offset = offset;
4177 let end_offset = offset + bytes_len;
4178 _next_ordinal_to_read += 1;
4179 if next_offset >= end_offset {
4180 return Ok(());
4181 }
4182
4183 while _next_ordinal_to_read < 1 {
4185 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4186 _next_ordinal_to_read += 1;
4187 next_offset += envelope_size;
4188 }
4189
4190 let next_out_of_line = decoder.next_out_of_line();
4191 let handles_before = decoder.remaining_handles();
4192 if let Some((inlined, num_bytes, num_handles)) =
4193 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4194 {
4195 let member_inline_size =
4196 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4197 decoder.context,
4198 );
4199 if inlined != (member_inline_size <= 4) {
4200 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4201 }
4202 let inner_offset;
4203 let mut inner_depth = depth.clone();
4204 if inlined {
4205 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4206 inner_offset = next_offset;
4207 } else {
4208 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4209 inner_depth.increment()?;
4210 }
4211 let val_ref = self
4212 .name
4213 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4214 fidl::decode!(
4215 fidl::encoding::BoundedString<255>,
4216 D,
4217 val_ref,
4218 decoder,
4219 inner_offset,
4220 inner_depth
4221 )?;
4222 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4223 {
4224 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4225 }
4226 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4227 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4228 }
4229 }
4230
4231 next_offset += envelope_size;
4232 _next_ordinal_to_read += 1;
4233 if next_offset >= end_offset {
4234 return Ok(());
4235 }
4236
4237 while _next_ordinal_to_read < 2 {
4239 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4240 _next_ordinal_to_read += 1;
4241 next_offset += envelope_size;
4242 }
4243
4244 let next_out_of_line = decoder.next_out_of_line();
4245 let handles_before = decoder.remaining_handles();
4246 if let Some((inlined, num_bytes, num_handles)) =
4247 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4248 {
4249 let member_inline_size =
4250 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4251 decoder.context,
4252 );
4253 if inlined != (member_inline_size <= 4) {
4254 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4255 }
4256 let inner_offset;
4257 let mut inner_depth = depth.clone();
4258 if inlined {
4259 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4260 inner_offset = next_offset;
4261 } else {
4262 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4263 inner_depth.increment()?;
4264 }
4265 let val_ref = self
4266 .as_
4267 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4268 fidl::decode!(
4269 fidl::encoding::BoundedString<255>,
4270 D,
4271 val_ref,
4272 decoder,
4273 inner_offset,
4274 inner_depth
4275 )?;
4276 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4277 {
4278 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4279 }
4280 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4281 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4282 }
4283 }
4284
4285 next_offset += envelope_size;
4286 _next_ordinal_to_read += 1;
4287 if next_offset >= end_offset {
4288 return Ok(());
4289 }
4290
4291 while _next_ordinal_to_read < 3 {
4293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4294 _next_ordinal_to_read += 1;
4295 next_offset += envelope_size;
4296 }
4297
4298 let next_out_of_line = decoder.next_out_of_line();
4299 let handles_before = decoder.remaining_handles();
4300 if let Some((inlined, num_bytes, num_handles)) =
4301 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4302 {
4303 let member_inline_size = <fidl_fuchsia_component_decl__common::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4304 if inlined != (member_inline_size <= 4) {
4305 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4306 }
4307 let inner_offset;
4308 let mut inner_depth = depth.clone();
4309 if inlined {
4310 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4311 inner_offset = next_offset;
4312 } else {
4313 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4314 inner_depth.increment()?;
4315 }
4316 let val_ref = self.type_.get_or_insert_with(|| {
4317 fidl::new_empty!(fidl_fuchsia_component_decl__common::DependencyType, D)
4318 });
4319 fidl::decode!(
4320 fidl_fuchsia_component_decl__common::DependencyType,
4321 D,
4322 val_ref,
4323 decoder,
4324 inner_offset,
4325 inner_depth
4326 )?;
4327 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4328 {
4329 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4330 }
4331 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4332 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4333 }
4334 }
4335
4336 next_offset += envelope_size;
4337 _next_ordinal_to_read += 1;
4338 if next_offset >= end_offset {
4339 return Ok(());
4340 }
4341
4342 while _next_ordinal_to_read < 4 {
4344 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4345 _next_ordinal_to_read += 1;
4346 next_offset += envelope_size;
4347 }
4348
4349 let next_out_of_line = decoder.next_out_of_line();
4350 let handles_before = decoder.remaining_handles();
4351 if let Some((inlined, num_bytes, num_handles)) =
4352 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4353 {
4354 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4355 if inlined != (member_inline_size <= 4) {
4356 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4357 }
4358 let inner_offset;
4359 let mut inner_depth = depth.clone();
4360 if inlined {
4361 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4362 inner_offset = next_offset;
4363 } else {
4364 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4365 inner_depth.increment()?;
4366 }
4367 let val_ref = self.subdir.get_or_insert_with(|| {
4368 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
4369 });
4370 fidl::decode!(
4371 fidl::encoding::BoundedString<4095>,
4372 D,
4373 val_ref,
4374 decoder,
4375 inner_offset,
4376 inner_depth
4377 )?;
4378 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4379 {
4380 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4381 }
4382 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4383 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4384 }
4385 }
4386
4387 next_offset += envelope_size;
4388 _next_ordinal_to_read += 1;
4389 if next_offset >= end_offset {
4390 return Ok(());
4391 }
4392
4393 while _next_ordinal_to_read < 5 {
4395 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4396 _next_ordinal_to_read += 1;
4397 next_offset += envelope_size;
4398 }
4399
4400 let next_out_of_line = decoder.next_out_of_line();
4401 let handles_before = decoder.remaining_handles();
4402 if let Some((inlined, num_bytes, num_handles)) =
4403 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4404 {
4405 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4406 if inlined != (member_inline_size <= 4) {
4407 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4408 }
4409 let inner_offset;
4410 let mut inner_depth = depth.clone();
4411 if inlined {
4412 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4413 inner_offset = next_offset;
4414 } else {
4415 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4416 inner_depth.increment()?;
4417 }
4418 let val_ref = self.rights.get_or_insert_with(|| {
4419 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
4420 });
4421 fidl::decode!(
4422 fidl_fuchsia_io__common::Operations,
4423 D,
4424 val_ref,
4425 decoder,
4426 inner_offset,
4427 inner_depth
4428 )?;
4429 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4430 {
4431 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4432 }
4433 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4434 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4435 }
4436 }
4437
4438 next_offset += envelope_size;
4439 _next_ordinal_to_read += 1;
4440 if next_offset >= end_offset {
4441 return Ok(());
4442 }
4443
4444 while _next_ordinal_to_read < 6 {
4446 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4447 _next_ordinal_to_read += 1;
4448 next_offset += envelope_size;
4449 }
4450
4451 let next_out_of_line = decoder.next_out_of_line();
4452 let handles_before = decoder.remaining_handles();
4453 if let Some((inlined, num_bytes, num_handles)) =
4454 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4455 {
4456 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4457 if inlined != (member_inline_size <= 4) {
4458 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4459 }
4460 let inner_offset;
4461 let mut inner_depth = depth.clone();
4462 if inlined {
4463 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4464 inner_offset = next_offset;
4465 } else {
4466 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4467 inner_depth.increment()?;
4468 }
4469 let val_ref = self.path.get_or_insert_with(|| {
4470 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
4471 });
4472 fidl::decode!(
4473 fidl::encoding::BoundedString<4095>,
4474 D,
4475 val_ref,
4476 decoder,
4477 inner_offset,
4478 inner_depth
4479 )?;
4480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4481 {
4482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4483 }
4484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4486 }
4487 }
4488
4489 next_offset += envelope_size;
4490 _next_ordinal_to_read += 1;
4491 if next_offset >= end_offset {
4492 return Ok(());
4493 }
4494
4495 while _next_ordinal_to_read < 7 {
4497 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4498 _next_ordinal_to_read += 1;
4499 next_offset += envelope_size;
4500 }
4501
4502 let next_out_of_line = decoder.next_out_of_line();
4503 let handles_before = decoder.remaining_handles();
4504 if let Some((inlined, num_bytes, num_handles)) =
4505 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4506 {
4507 let member_inline_size = <fidl_fuchsia_component_decl__common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4508 if inlined != (member_inline_size <= 4) {
4509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4510 }
4511 let inner_offset;
4512 let mut inner_depth = depth.clone();
4513 if inlined {
4514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4515 inner_offset = next_offset;
4516 } else {
4517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4518 inner_depth.increment()?;
4519 }
4520 let val_ref = self.availability.get_or_insert_with(|| {
4521 fidl::new_empty!(fidl_fuchsia_component_decl__common::Availability, D)
4522 });
4523 fidl::decode!(
4524 fidl_fuchsia_component_decl__common::Availability,
4525 D,
4526 val_ref,
4527 decoder,
4528 inner_offset,
4529 inner_depth
4530 )?;
4531 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4532 {
4533 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4534 }
4535 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4536 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4537 }
4538 }
4539
4540 next_offset += envelope_size;
4541 _next_ordinal_to_read += 1;
4542 if next_offset >= end_offset {
4543 return Ok(());
4544 }
4545
4546 while _next_ordinal_to_read < 8 {
4548 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4549 _next_ordinal_to_read += 1;
4550 next_offset += envelope_size;
4551 }
4552
4553 let next_out_of_line = decoder.next_out_of_line();
4554 let handles_before = decoder.remaining_handles();
4555 if let Some((inlined, num_bytes, num_handles)) =
4556 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4557 {
4558 let member_inline_size =
4559 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
4560 decoder.context,
4561 );
4562 if inlined != (member_inline_size <= 4) {
4563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4564 }
4565 let inner_offset;
4566 let mut inner_depth = depth.clone();
4567 if inlined {
4568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4569 inner_offset = next_offset;
4570 } else {
4571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4572 inner_depth.increment()?;
4573 }
4574 let val_ref = self
4575 .from_dictionary
4576 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
4577 fidl::decode!(
4578 fidl::encoding::UnboundedString,
4579 D,
4580 val_ref,
4581 decoder,
4582 inner_offset,
4583 inner_depth
4584 )?;
4585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4586 {
4587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4588 }
4589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4591 }
4592 }
4593
4594 next_offset += envelope_size;
4595
4596 while next_offset < end_offset {
4598 _next_ordinal_to_read += 1;
4599 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4600 next_offset += envelope_size;
4601 }
4602
4603 Ok(())
4604 }
4605 }
4606
4607 impl Event {
4608 #[inline(always)]
4609 fn max_ordinal_present(&self) -> u64 {
4610 if let Some(_) = self.availability {
4611 return 4;
4612 }
4613 if let Some(_) = self.filter {
4614 return 3;
4615 }
4616 if let Some(_) = self.as_ {
4617 return 2;
4618 }
4619 if let Some(_) = self.name {
4620 return 1;
4621 }
4622 0
4623 }
4624 }
4625
4626 impl fidl::encoding::ValueTypeMarker for Event {
4627 type Borrowed<'a> = &'a Self;
4628 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4629 value
4630 }
4631 }
4632
4633 unsafe impl fidl::encoding::TypeMarker for Event {
4634 type Owned = Self;
4635
4636 #[inline(always)]
4637 fn inline_align(_context: fidl::encoding::Context) -> usize {
4638 8
4639 }
4640
4641 #[inline(always)]
4642 fn inline_size(_context: fidl::encoding::Context) -> usize {
4643 16
4644 }
4645 }
4646
4647 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Event, D> for &Event {
4648 unsafe fn encode(
4649 self,
4650 encoder: &mut fidl::encoding::Encoder<'_, D>,
4651 offset: usize,
4652 mut depth: fidl::encoding::Depth,
4653 ) -> fidl::Result<()> {
4654 encoder.debug_check_bounds::<Event>(offset);
4655 let max_ordinal: u64 = self.max_ordinal_present();
4657 encoder.write_num(max_ordinal, offset);
4658 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4659 if max_ordinal == 0 {
4661 return Ok(());
4662 }
4663 depth.increment()?;
4664 let envelope_size = 8;
4665 let bytes_len = max_ordinal as usize * envelope_size;
4666 #[allow(unused_variables)]
4667 let offset = encoder.out_of_line_offset(bytes_len);
4668 let mut _prev_end_offset: usize = 0;
4669 if 1 > max_ordinal {
4670 return Ok(());
4671 }
4672
4673 let cur_offset: usize = (1 - 1) * envelope_size;
4676
4677 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4679
4680 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4685 self.name.as_ref().map(
4686 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4687 ),
4688 encoder,
4689 offset + cur_offset,
4690 depth,
4691 )?;
4692
4693 _prev_end_offset = cur_offset + envelope_size;
4694 if 2 > max_ordinal {
4695 return Ok(());
4696 }
4697
4698 let cur_offset: usize = (2 - 1) * envelope_size;
4701
4702 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4704
4705 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4710 self.as_.as_ref().map(
4711 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4712 ),
4713 encoder,
4714 offset + cur_offset,
4715 depth,
4716 )?;
4717
4718 _prev_end_offset = cur_offset + envelope_size;
4719 if 3 > max_ordinal {
4720 return Ok(());
4721 }
4722
4723 let cur_offset: usize = (3 - 1) * envelope_size;
4726
4727 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4729
4730 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
4735 self.filter.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
4736 encoder, offset + cur_offset, depth
4737 )?;
4738
4739 _prev_end_offset = cur_offset + envelope_size;
4740 if 4 > max_ordinal {
4741 return Ok(());
4742 }
4743
4744 let cur_offset: usize = (4 - 1) * envelope_size;
4747
4748 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4750
4751 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Availability, D>(
4756 self.availability.as_ref().map(<fidl_fuchsia_component_decl__common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
4757 encoder, offset + cur_offset, depth
4758 )?;
4759
4760 _prev_end_offset = cur_offset + envelope_size;
4761
4762 Ok(())
4763 }
4764 }
4765
4766 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Event {
4767 #[inline(always)]
4768 fn new_empty() -> Self {
4769 Self::default()
4770 }
4771
4772 unsafe fn decode(
4773 &mut self,
4774 decoder: &mut fidl::encoding::Decoder<'_, D>,
4775 offset: usize,
4776 mut depth: fidl::encoding::Depth,
4777 ) -> fidl::Result<()> {
4778 decoder.debug_check_bounds::<Self>(offset);
4779 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4780 None => return Err(fidl::Error::NotNullable),
4781 Some(len) => len,
4782 };
4783 if len == 0 {
4785 return Ok(());
4786 };
4787 depth.increment()?;
4788 let envelope_size = 8;
4789 let bytes_len = len * envelope_size;
4790 let offset = decoder.out_of_line_offset(bytes_len)?;
4791 let mut _next_ordinal_to_read = 0;
4793 let mut next_offset = offset;
4794 let end_offset = offset + bytes_len;
4795 _next_ordinal_to_read += 1;
4796 if next_offset >= end_offset {
4797 return Ok(());
4798 }
4799
4800 while _next_ordinal_to_read < 1 {
4802 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4803 _next_ordinal_to_read += 1;
4804 next_offset += envelope_size;
4805 }
4806
4807 let next_out_of_line = decoder.next_out_of_line();
4808 let handles_before = decoder.remaining_handles();
4809 if let Some((inlined, num_bytes, num_handles)) =
4810 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4811 {
4812 let member_inline_size =
4813 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4814 decoder.context,
4815 );
4816 if inlined != (member_inline_size <= 4) {
4817 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4818 }
4819 let inner_offset;
4820 let mut inner_depth = depth.clone();
4821 if inlined {
4822 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4823 inner_offset = next_offset;
4824 } else {
4825 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4826 inner_depth.increment()?;
4827 }
4828 let val_ref = self
4829 .name
4830 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4831 fidl::decode!(
4832 fidl::encoding::BoundedString<255>,
4833 D,
4834 val_ref,
4835 decoder,
4836 inner_offset,
4837 inner_depth
4838 )?;
4839 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4840 {
4841 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4842 }
4843 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4844 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4845 }
4846 }
4847
4848 next_offset += envelope_size;
4849 _next_ordinal_to_read += 1;
4850 if next_offset >= end_offset {
4851 return Ok(());
4852 }
4853
4854 while _next_ordinal_to_read < 2 {
4856 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4857 _next_ordinal_to_read += 1;
4858 next_offset += envelope_size;
4859 }
4860
4861 let next_out_of_line = decoder.next_out_of_line();
4862 let handles_before = decoder.remaining_handles();
4863 if let Some((inlined, num_bytes, num_handles)) =
4864 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4865 {
4866 let member_inline_size =
4867 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4868 decoder.context,
4869 );
4870 if inlined != (member_inline_size <= 4) {
4871 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4872 }
4873 let inner_offset;
4874 let mut inner_depth = depth.clone();
4875 if inlined {
4876 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4877 inner_offset = next_offset;
4878 } else {
4879 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4880 inner_depth.increment()?;
4881 }
4882 let val_ref = self
4883 .as_
4884 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4885 fidl::decode!(
4886 fidl::encoding::BoundedString<255>,
4887 D,
4888 val_ref,
4889 decoder,
4890 inner_offset,
4891 inner_depth
4892 )?;
4893 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4894 {
4895 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4896 }
4897 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4898 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4899 }
4900 }
4901
4902 next_offset += envelope_size;
4903 _next_ordinal_to_read += 1;
4904 if next_offset >= end_offset {
4905 return Ok(());
4906 }
4907
4908 while _next_ordinal_to_read < 3 {
4910 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4911 _next_ordinal_to_read += 1;
4912 next_offset += envelope_size;
4913 }
4914
4915 let next_out_of_line = decoder.next_out_of_line();
4916 let handles_before = decoder.remaining_handles();
4917 if let Some((inlined, num_bytes, num_handles)) =
4918 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4919 {
4920 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4921 if inlined != (member_inline_size <= 4) {
4922 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4923 }
4924 let inner_offset;
4925 let mut inner_depth = depth.clone();
4926 if inlined {
4927 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4928 inner_offset = next_offset;
4929 } else {
4930 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4931 inner_depth.increment()?;
4932 }
4933 let val_ref = self.filter.get_or_insert_with(|| {
4934 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
4935 });
4936 fidl::decode!(
4937 fidl_fuchsia_data__common::Dictionary,
4938 D,
4939 val_ref,
4940 decoder,
4941 inner_offset,
4942 inner_depth
4943 )?;
4944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4945 {
4946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4947 }
4948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4950 }
4951 }
4952
4953 next_offset += envelope_size;
4954 _next_ordinal_to_read += 1;
4955 if next_offset >= end_offset {
4956 return Ok(());
4957 }
4958
4959 while _next_ordinal_to_read < 4 {
4961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4962 _next_ordinal_to_read += 1;
4963 next_offset += envelope_size;
4964 }
4965
4966 let next_out_of_line = decoder.next_out_of_line();
4967 let handles_before = decoder.remaining_handles();
4968 if let Some((inlined, num_bytes, num_handles)) =
4969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4970 {
4971 let member_inline_size = <fidl_fuchsia_component_decl__common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4972 if inlined != (member_inline_size <= 4) {
4973 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4974 }
4975 let inner_offset;
4976 let mut inner_depth = depth.clone();
4977 if inlined {
4978 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4979 inner_offset = next_offset;
4980 } else {
4981 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4982 inner_depth.increment()?;
4983 }
4984 let val_ref = self.availability.get_or_insert_with(|| {
4985 fidl::new_empty!(fidl_fuchsia_component_decl__common::Availability, D)
4986 });
4987 fidl::decode!(
4988 fidl_fuchsia_component_decl__common::Availability,
4989 D,
4990 val_ref,
4991 decoder,
4992 inner_offset,
4993 inner_depth
4994 )?;
4995 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4996 {
4997 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4998 }
4999 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5000 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5001 }
5002 }
5003
5004 next_offset += envelope_size;
5005
5006 while next_offset < end_offset {
5008 _next_ordinal_to_read += 1;
5009 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5010 next_offset += envelope_size;
5011 }
5012
5013 Ok(())
5014 }
5015 }
5016
5017 impl EventStream {
5018 #[inline(always)]
5019 fn max_ordinal_present(&self) -> u64 {
5020 if let Some(_) = self.scope {
5021 return 5;
5022 }
5023 if let Some(_) = self.filter {
5024 return 4;
5025 }
5026 if let Some(_) = self.path {
5027 return 3;
5028 }
5029 if let Some(_) = self.as_ {
5030 return 2;
5031 }
5032 if let Some(_) = self.name {
5033 return 1;
5034 }
5035 0
5036 }
5037 }
5038
5039 impl fidl::encoding::ValueTypeMarker for EventStream {
5040 type Borrowed<'a> = &'a Self;
5041 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5042 value
5043 }
5044 }
5045
5046 unsafe impl fidl::encoding::TypeMarker for EventStream {
5047 type Owned = Self;
5048
5049 #[inline(always)]
5050 fn inline_align(_context: fidl::encoding::Context) -> usize {
5051 8
5052 }
5053
5054 #[inline(always)]
5055 fn inline_size(_context: fidl::encoding::Context) -> usize {
5056 16
5057 }
5058 }
5059
5060 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventStream, D>
5061 for &EventStream
5062 {
5063 unsafe fn encode(
5064 self,
5065 encoder: &mut fidl::encoding::Encoder<'_, D>,
5066 offset: usize,
5067 mut depth: fidl::encoding::Depth,
5068 ) -> fidl::Result<()> {
5069 encoder.debug_check_bounds::<EventStream>(offset);
5070 let max_ordinal: u64 = self.max_ordinal_present();
5072 encoder.write_num(max_ordinal, offset);
5073 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5074 if max_ordinal == 0 {
5076 return Ok(());
5077 }
5078 depth.increment()?;
5079 let envelope_size = 8;
5080 let bytes_len = max_ordinal as usize * envelope_size;
5081 #[allow(unused_variables)]
5082 let offset = encoder.out_of_line_offset(bytes_len);
5083 let mut _prev_end_offset: usize = 0;
5084 if 1 > max_ordinal {
5085 return Ok(());
5086 }
5087
5088 let cur_offset: usize = (1 - 1) * envelope_size;
5091
5092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5094
5095 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5100 self.name.as_ref().map(
5101 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5102 ),
5103 encoder,
5104 offset + cur_offset,
5105 depth,
5106 )?;
5107
5108 _prev_end_offset = cur_offset + envelope_size;
5109 if 2 > max_ordinal {
5110 return Ok(());
5111 }
5112
5113 let cur_offset: usize = (2 - 1) * envelope_size;
5116
5117 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5119
5120 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5125 self.as_.as_ref().map(
5126 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5127 ),
5128 encoder,
5129 offset + cur_offset,
5130 depth,
5131 )?;
5132
5133 _prev_end_offset = cur_offset + envelope_size;
5134 if 3 > max_ordinal {
5135 return Ok(());
5136 }
5137
5138 let cur_offset: usize = (3 - 1) * envelope_size;
5141
5142 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5144
5145 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
5150 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
5151 encoder, offset + cur_offset, depth
5152 )?;
5153
5154 _prev_end_offset = cur_offset + envelope_size;
5155 if 4 > max_ordinal {
5156 return Ok(());
5157 }
5158
5159 let cur_offset: usize = (4 - 1) * envelope_size;
5162
5163 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5165
5166 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
5171 self.filter.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
5172 encoder, offset + cur_offset, depth
5173 )?;
5174
5175 _prev_end_offset = cur_offset + envelope_size;
5176 if 5 > max_ordinal {
5177 return Ok(());
5178 }
5179
5180 let cur_offset: usize = (5 - 1) * envelope_size;
5183
5184 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5186
5187 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>, D>(
5192 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref> as fidl::encoding::ValueTypeMarker>::borrow),
5193 encoder, offset + cur_offset, depth
5194 )?;
5195
5196 _prev_end_offset = cur_offset + envelope_size;
5197
5198 Ok(())
5199 }
5200 }
5201
5202 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventStream {
5203 #[inline(always)]
5204 fn new_empty() -> Self {
5205 Self::default()
5206 }
5207
5208 unsafe fn decode(
5209 &mut self,
5210 decoder: &mut fidl::encoding::Decoder<'_, D>,
5211 offset: usize,
5212 mut depth: fidl::encoding::Depth,
5213 ) -> fidl::Result<()> {
5214 decoder.debug_check_bounds::<Self>(offset);
5215 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5216 None => return Err(fidl::Error::NotNullable),
5217 Some(len) => len,
5218 };
5219 if len == 0 {
5221 return Ok(());
5222 };
5223 depth.increment()?;
5224 let envelope_size = 8;
5225 let bytes_len = len * envelope_size;
5226 let offset = decoder.out_of_line_offset(bytes_len)?;
5227 let mut _next_ordinal_to_read = 0;
5229 let mut next_offset = offset;
5230 let end_offset = offset + bytes_len;
5231 _next_ordinal_to_read += 1;
5232 if next_offset >= end_offset {
5233 return Ok(());
5234 }
5235
5236 while _next_ordinal_to_read < 1 {
5238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5239 _next_ordinal_to_read += 1;
5240 next_offset += envelope_size;
5241 }
5242
5243 let next_out_of_line = decoder.next_out_of_line();
5244 let handles_before = decoder.remaining_handles();
5245 if let Some((inlined, num_bytes, num_handles)) =
5246 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5247 {
5248 let member_inline_size =
5249 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5250 decoder.context,
5251 );
5252 if inlined != (member_inline_size <= 4) {
5253 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5254 }
5255 let inner_offset;
5256 let mut inner_depth = depth.clone();
5257 if inlined {
5258 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5259 inner_offset = next_offset;
5260 } else {
5261 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5262 inner_depth.increment()?;
5263 }
5264 let val_ref = self
5265 .name
5266 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5267 fidl::decode!(
5268 fidl::encoding::BoundedString<255>,
5269 D,
5270 val_ref,
5271 decoder,
5272 inner_offset,
5273 inner_depth
5274 )?;
5275 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5276 {
5277 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5278 }
5279 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5280 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5281 }
5282 }
5283
5284 next_offset += envelope_size;
5285 _next_ordinal_to_read += 1;
5286 if next_offset >= end_offset {
5287 return Ok(());
5288 }
5289
5290 while _next_ordinal_to_read < 2 {
5292 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5293 _next_ordinal_to_read += 1;
5294 next_offset += envelope_size;
5295 }
5296
5297 let next_out_of_line = decoder.next_out_of_line();
5298 let handles_before = decoder.remaining_handles();
5299 if let Some((inlined, num_bytes, num_handles)) =
5300 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5301 {
5302 let member_inline_size =
5303 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5304 decoder.context,
5305 );
5306 if inlined != (member_inline_size <= 4) {
5307 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5308 }
5309 let inner_offset;
5310 let mut inner_depth = depth.clone();
5311 if inlined {
5312 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5313 inner_offset = next_offset;
5314 } else {
5315 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5316 inner_depth.increment()?;
5317 }
5318 let val_ref = self
5319 .as_
5320 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5321 fidl::decode!(
5322 fidl::encoding::BoundedString<255>,
5323 D,
5324 val_ref,
5325 decoder,
5326 inner_offset,
5327 inner_depth
5328 )?;
5329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5330 {
5331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5332 }
5333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5335 }
5336 }
5337
5338 next_offset += envelope_size;
5339 _next_ordinal_to_read += 1;
5340 if next_offset >= end_offset {
5341 return Ok(());
5342 }
5343
5344 while _next_ordinal_to_read < 3 {
5346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5347 _next_ordinal_to_read += 1;
5348 next_offset += envelope_size;
5349 }
5350
5351 let next_out_of_line = decoder.next_out_of_line();
5352 let handles_before = decoder.remaining_handles();
5353 if let Some((inlined, num_bytes, num_handles)) =
5354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5355 {
5356 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5357 if inlined != (member_inline_size <= 4) {
5358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5359 }
5360 let inner_offset;
5361 let mut inner_depth = depth.clone();
5362 if inlined {
5363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5364 inner_offset = next_offset;
5365 } else {
5366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5367 inner_depth.increment()?;
5368 }
5369 let val_ref = self.path.get_or_insert_with(|| {
5370 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
5371 });
5372 fidl::decode!(
5373 fidl::encoding::BoundedString<4095>,
5374 D,
5375 val_ref,
5376 decoder,
5377 inner_offset,
5378 inner_depth
5379 )?;
5380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5381 {
5382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5383 }
5384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5386 }
5387 }
5388
5389 next_offset += envelope_size;
5390 _next_ordinal_to_read += 1;
5391 if next_offset >= end_offset {
5392 return Ok(());
5393 }
5394
5395 while _next_ordinal_to_read < 4 {
5397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5398 _next_ordinal_to_read += 1;
5399 next_offset += envelope_size;
5400 }
5401
5402 let next_out_of_line = decoder.next_out_of_line();
5403 let handles_before = decoder.remaining_handles();
5404 if let Some((inlined, num_bytes, num_handles)) =
5405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5406 {
5407 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5408 if inlined != (member_inline_size <= 4) {
5409 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5410 }
5411 let inner_offset;
5412 let mut inner_depth = depth.clone();
5413 if inlined {
5414 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5415 inner_offset = next_offset;
5416 } else {
5417 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5418 inner_depth.increment()?;
5419 }
5420 let val_ref = self.filter.get_or_insert_with(|| {
5421 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
5422 });
5423 fidl::decode!(
5424 fidl_fuchsia_data__common::Dictionary,
5425 D,
5426 val_ref,
5427 decoder,
5428 inner_offset,
5429 inner_depth
5430 )?;
5431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5432 {
5433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5434 }
5435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5437 }
5438 }
5439
5440 next_offset += envelope_size;
5441 _next_ordinal_to_read += 1;
5442 if next_offset >= end_offset {
5443 return Ok(());
5444 }
5445
5446 while _next_ordinal_to_read < 5 {
5448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5449 _next_ordinal_to_read += 1;
5450 next_offset += envelope_size;
5451 }
5452
5453 let next_out_of_line = decoder.next_out_of_line();
5454 let handles_before = decoder.remaining_handles();
5455 if let Some((inlined, num_bytes, num_handles)) =
5456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5457 {
5458 let member_inline_size = <fidl::encoding::UnboundedVector<
5459 fidl_fuchsia_component_decl__common::Ref,
5460 > as fidl::encoding::TypeMarker>::inline_size(
5461 decoder.context
5462 );
5463 if inlined != (member_inline_size <= 4) {
5464 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5465 }
5466 let inner_offset;
5467 let mut inner_depth = depth.clone();
5468 if inlined {
5469 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5470 inner_offset = next_offset;
5471 } else {
5472 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5473 inner_depth.increment()?;
5474 }
5475 let val_ref = self.scope.get_or_insert_with(|| {
5476 fidl::new_empty!(
5477 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
5478 D
5479 )
5480 });
5481 fidl::decode!(
5482 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl__common::Ref>,
5483 D,
5484 val_ref,
5485 decoder,
5486 inner_offset,
5487 inner_depth
5488 )?;
5489 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5490 {
5491 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5492 }
5493 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5494 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5495 }
5496 }
5497
5498 next_offset += envelope_size;
5499
5500 while next_offset < end_offset {
5502 _next_ordinal_to_read += 1;
5503 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5504 next_offset += envelope_size;
5505 }
5506
5507 Ok(())
5508 }
5509 }
5510
5511 impl Protocol {
5512 #[inline(always)]
5513 fn max_ordinal_present(&self) -> u64 {
5514 if let Some(_) = self.from_dictionary {
5515 return 6;
5516 }
5517 if let Some(_) = self.availability {
5518 return 5;
5519 }
5520 if let Some(_) = self.path {
5521 return 4;
5522 }
5523 if let Some(_) = self.type_ {
5524 return 3;
5525 }
5526 if let Some(_) = self.as_ {
5527 return 2;
5528 }
5529 if let Some(_) = self.name {
5530 return 1;
5531 }
5532 0
5533 }
5534 }
5535
5536 impl fidl::encoding::ValueTypeMarker for Protocol {
5537 type Borrowed<'a> = &'a Self;
5538 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5539 value
5540 }
5541 }
5542
5543 unsafe impl fidl::encoding::TypeMarker for Protocol {
5544 type Owned = Self;
5545
5546 #[inline(always)]
5547 fn inline_align(_context: fidl::encoding::Context) -> usize {
5548 8
5549 }
5550
5551 #[inline(always)]
5552 fn inline_size(_context: fidl::encoding::Context) -> usize {
5553 16
5554 }
5555 }
5556
5557 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Protocol, D> for &Protocol {
5558 unsafe fn encode(
5559 self,
5560 encoder: &mut fidl::encoding::Encoder<'_, D>,
5561 offset: usize,
5562 mut depth: fidl::encoding::Depth,
5563 ) -> fidl::Result<()> {
5564 encoder.debug_check_bounds::<Protocol>(offset);
5565 let max_ordinal: u64 = self.max_ordinal_present();
5567 encoder.write_num(max_ordinal, offset);
5568 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5569 if max_ordinal == 0 {
5571 return Ok(());
5572 }
5573 depth.increment()?;
5574 let envelope_size = 8;
5575 let bytes_len = max_ordinal as usize * envelope_size;
5576 #[allow(unused_variables)]
5577 let offset = encoder.out_of_line_offset(bytes_len);
5578 let mut _prev_end_offset: usize = 0;
5579 if 1 > max_ordinal {
5580 return Ok(());
5581 }
5582
5583 let cur_offset: usize = (1 - 1) * envelope_size;
5586
5587 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5589
5590 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5595 self.name.as_ref().map(
5596 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5597 ),
5598 encoder,
5599 offset + cur_offset,
5600 depth,
5601 )?;
5602
5603 _prev_end_offset = cur_offset + envelope_size;
5604 if 2 > max_ordinal {
5605 return Ok(());
5606 }
5607
5608 let cur_offset: usize = (2 - 1) * envelope_size;
5611
5612 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5614
5615 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5620 self.as_.as_ref().map(
5621 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5622 ),
5623 encoder,
5624 offset + cur_offset,
5625 depth,
5626 )?;
5627
5628 _prev_end_offset = cur_offset + envelope_size;
5629 if 3 > max_ordinal {
5630 return Ok(());
5631 }
5632
5633 let cur_offset: usize = (3 - 1) * envelope_size;
5636
5637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5639
5640 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::DependencyType, D>(
5645 self.type_.as_ref().map(<fidl_fuchsia_component_decl__common::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
5646 encoder, offset + cur_offset, depth
5647 )?;
5648
5649 _prev_end_offset = cur_offset + envelope_size;
5650 if 4 > max_ordinal {
5651 return Ok(());
5652 }
5653
5654 let cur_offset: usize = (4 - 1) * envelope_size;
5657
5658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5660
5661 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
5666 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
5667 encoder, offset + cur_offset, depth
5668 )?;
5669
5670 _prev_end_offset = cur_offset + envelope_size;
5671 if 5 > max_ordinal {
5672 return Ok(());
5673 }
5674
5675 let cur_offset: usize = (5 - 1) * envelope_size;
5678
5679 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5681
5682 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Availability, D>(
5687 self.availability.as_ref().map(<fidl_fuchsia_component_decl__common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
5688 encoder, offset + cur_offset, depth
5689 )?;
5690
5691 _prev_end_offset = cur_offset + envelope_size;
5692 if 6 > max_ordinal {
5693 return Ok(());
5694 }
5695
5696 let cur_offset: usize = (6 - 1) * envelope_size;
5699
5700 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5702
5703 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
5708 self.from_dictionary.as_ref().map(
5709 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
5710 ),
5711 encoder,
5712 offset + cur_offset,
5713 depth,
5714 )?;
5715
5716 _prev_end_offset = cur_offset + envelope_size;
5717
5718 Ok(())
5719 }
5720 }
5721
5722 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Protocol {
5723 #[inline(always)]
5724 fn new_empty() -> Self {
5725 Self::default()
5726 }
5727
5728 unsafe fn decode(
5729 &mut self,
5730 decoder: &mut fidl::encoding::Decoder<'_, D>,
5731 offset: usize,
5732 mut depth: fidl::encoding::Depth,
5733 ) -> fidl::Result<()> {
5734 decoder.debug_check_bounds::<Self>(offset);
5735 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5736 None => return Err(fidl::Error::NotNullable),
5737 Some(len) => len,
5738 };
5739 if len == 0 {
5741 return Ok(());
5742 };
5743 depth.increment()?;
5744 let envelope_size = 8;
5745 let bytes_len = len * envelope_size;
5746 let offset = decoder.out_of_line_offset(bytes_len)?;
5747 let mut _next_ordinal_to_read = 0;
5749 let mut next_offset = offset;
5750 let end_offset = offset + bytes_len;
5751 _next_ordinal_to_read += 1;
5752 if next_offset >= end_offset {
5753 return Ok(());
5754 }
5755
5756 while _next_ordinal_to_read < 1 {
5758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5759 _next_ordinal_to_read += 1;
5760 next_offset += envelope_size;
5761 }
5762
5763 let next_out_of_line = decoder.next_out_of_line();
5764 let handles_before = decoder.remaining_handles();
5765 if let Some((inlined, num_bytes, num_handles)) =
5766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5767 {
5768 let member_inline_size =
5769 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5770 decoder.context,
5771 );
5772 if inlined != (member_inline_size <= 4) {
5773 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5774 }
5775 let inner_offset;
5776 let mut inner_depth = depth.clone();
5777 if inlined {
5778 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5779 inner_offset = next_offset;
5780 } else {
5781 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5782 inner_depth.increment()?;
5783 }
5784 let val_ref = self
5785 .name
5786 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5787 fidl::decode!(
5788 fidl::encoding::BoundedString<255>,
5789 D,
5790 val_ref,
5791 decoder,
5792 inner_offset,
5793 inner_depth
5794 )?;
5795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5796 {
5797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5798 }
5799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5801 }
5802 }
5803
5804 next_offset += envelope_size;
5805 _next_ordinal_to_read += 1;
5806 if next_offset >= end_offset {
5807 return Ok(());
5808 }
5809
5810 while _next_ordinal_to_read < 2 {
5812 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5813 _next_ordinal_to_read += 1;
5814 next_offset += envelope_size;
5815 }
5816
5817 let next_out_of_line = decoder.next_out_of_line();
5818 let handles_before = decoder.remaining_handles();
5819 if let Some((inlined, num_bytes, num_handles)) =
5820 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5821 {
5822 let member_inline_size =
5823 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5824 decoder.context,
5825 );
5826 if inlined != (member_inline_size <= 4) {
5827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5828 }
5829 let inner_offset;
5830 let mut inner_depth = depth.clone();
5831 if inlined {
5832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5833 inner_offset = next_offset;
5834 } else {
5835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5836 inner_depth.increment()?;
5837 }
5838 let val_ref = self
5839 .as_
5840 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5841 fidl::decode!(
5842 fidl::encoding::BoundedString<255>,
5843 D,
5844 val_ref,
5845 decoder,
5846 inner_offset,
5847 inner_depth
5848 )?;
5849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5850 {
5851 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5852 }
5853 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5854 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5855 }
5856 }
5857
5858 next_offset += envelope_size;
5859 _next_ordinal_to_read += 1;
5860 if next_offset >= end_offset {
5861 return Ok(());
5862 }
5863
5864 while _next_ordinal_to_read < 3 {
5866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5867 _next_ordinal_to_read += 1;
5868 next_offset += envelope_size;
5869 }
5870
5871 let next_out_of_line = decoder.next_out_of_line();
5872 let handles_before = decoder.remaining_handles();
5873 if let Some((inlined, num_bytes, num_handles)) =
5874 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5875 {
5876 let member_inline_size = <fidl_fuchsia_component_decl__common::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5877 if inlined != (member_inline_size <= 4) {
5878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5879 }
5880 let inner_offset;
5881 let mut inner_depth = depth.clone();
5882 if inlined {
5883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5884 inner_offset = next_offset;
5885 } else {
5886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5887 inner_depth.increment()?;
5888 }
5889 let val_ref = self.type_.get_or_insert_with(|| {
5890 fidl::new_empty!(fidl_fuchsia_component_decl__common::DependencyType, D)
5891 });
5892 fidl::decode!(
5893 fidl_fuchsia_component_decl__common::DependencyType,
5894 D,
5895 val_ref,
5896 decoder,
5897 inner_offset,
5898 inner_depth
5899 )?;
5900 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5901 {
5902 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5903 }
5904 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5905 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5906 }
5907 }
5908
5909 next_offset += envelope_size;
5910 _next_ordinal_to_read += 1;
5911 if next_offset >= end_offset {
5912 return Ok(());
5913 }
5914
5915 while _next_ordinal_to_read < 4 {
5917 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5918 _next_ordinal_to_read += 1;
5919 next_offset += envelope_size;
5920 }
5921
5922 let next_out_of_line = decoder.next_out_of_line();
5923 let handles_before = decoder.remaining_handles();
5924 if let Some((inlined, num_bytes, num_handles)) =
5925 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5926 {
5927 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5928 if inlined != (member_inline_size <= 4) {
5929 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5930 }
5931 let inner_offset;
5932 let mut inner_depth = depth.clone();
5933 if inlined {
5934 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5935 inner_offset = next_offset;
5936 } else {
5937 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5938 inner_depth.increment()?;
5939 }
5940 let val_ref = self.path.get_or_insert_with(|| {
5941 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
5942 });
5943 fidl::decode!(
5944 fidl::encoding::BoundedString<4095>,
5945 D,
5946 val_ref,
5947 decoder,
5948 inner_offset,
5949 inner_depth
5950 )?;
5951 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5952 {
5953 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5954 }
5955 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5956 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5957 }
5958 }
5959
5960 next_offset += envelope_size;
5961 _next_ordinal_to_read += 1;
5962 if next_offset >= end_offset {
5963 return Ok(());
5964 }
5965
5966 while _next_ordinal_to_read < 5 {
5968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5969 _next_ordinal_to_read += 1;
5970 next_offset += envelope_size;
5971 }
5972
5973 let next_out_of_line = decoder.next_out_of_line();
5974 let handles_before = decoder.remaining_handles();
5975 if let Some((inlined, num_bytes, num_handles)) =
5976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5977 {
5978 let member_inline_size = <fidl_fuchsia_component_decl__common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5979 if inlined != (member_inline_size <= 4) {
5980 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5981 }
5982 let inner_offset;
5983 let mut inner_depth = depth.clone();
5984 if inlined {
5985 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5986 inner_offset = next_offset;
5987 } else {
5988 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5989 inner_depth.increment()?;
5990 }
5991 let val_ref = self.availability.get_or_insert_with(|| {
5992 fidl::new_empty!(fidl_fuchsia_component_decl__common::Availability, D)
5993 });
5994 fidl::decode!(
5995 fidl_fuchsia_component_decl__common::Availability,
5996 D,
5997 val_ref,
5998 decoder,
5999 inner_offset,
6000 inner_depth
6001 )?;
6002 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6003 {
6004 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6005 }
6006 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6007 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6008 }
6009 }
6010
6011 next_offset += envelope_size;
6012 _next_ordinal_to_read += 1;
6013 if next_offset >= end_offset {
6014 return Ok(());
6015 }
6016
6017 while _next_ordinal_to_read < 6 {
6019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6020 _next_ordinal_to_read += 1;
6021 next_offset += envelope_size;
6022 }
6023
6024 let next_out_of_line = decoder.next_out_of_line();
6025 let handles_before = decoder.remaining_handles();
6026 if let Some((inlined, num_bytes, num_handles)) =
6027 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6028 {
6029 let member_inline_size =
6030 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
6031 decoder.context,
6032 );
6033 if inlined != (member_inline_size <= 4) {
6034 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6035 }
6036 let inner_offset;
6037 let mut inner_depth = depth.clone();
6038 if inlined {
6039 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6040 inner_offset = next_offset;
6041 } else {
6042 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6043 inner_depth.increment()?;
6044 }
6045 let val_ref = self
6046 .from_dictionary
6047 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
6048 fidl::decode!(
6049 fidl::encoding::UnboundedString,
6050 D,
6051 val_ref,
6052 decoder,
6053 inner_offset,
6054 inner_depth
6055 )?;
6056 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6057 {
6058 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6059 }
6060 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6061 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6062 }
6063 }
6064
6065 next_offset += envelope_size;
6066
6067 while next_offset < end_offset {
6069 _next_ordinal_to_read += 1;
6070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6071 next_offset += envelope_size;
6072 }
6073
6074 Ok(())
6075 }
6076 }
6077
6078 impl Resolver {
6079 #[inline(always)]
6080 fn max_ordinal_present(&self) -> u64 {
6081 if let Some(_) = self.from_dictionary {
6082 return 4;
6083 }
6084 if let Some(_) = self.path {
6085 return 3;
6086 }
6087 if let Some(_) = self.as_ {
6088 return 2;
6089 }
6090 if let Some(_) = self.name {
6091 return 1;
6092 }
6093 0
6094 }
6095 }
6096
6097 impl fidl::encoding::ValueTypeMarker for Resolver {
6098 type Borrowed<'a> = &'a Self;
6099 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6100 value
6101 }
6102 }
6103
6104 unsafe impl fidl::encoding::TypeMarker for Resolver {
6105 type Owned = Self;
6106
6107 #[inline(always)]
6108 fn inline_align(_context: fidl::encoding::Context) -> usize {
6109 8
6110 }
6111
6112 #[inline(always)]
6113 fn inline_size(_context: fidl::encoding::Context) -> usize {
6114 16
6115 }
6116 }
6117
6118 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Resolver, D> for &Resolver {
6119 unsafe fn encode(
6120 self,
6121 encoder: &mut fidl::encoding::Encoder<'_, D>,
6122 offset: usize,
6123 mut depth: fidl::encoding::Depth,
6124 ) -> fidl::Result<()> {
6125 encoder.debug_check_bounds::<Resolver>(offset);
6126 let max_ordinal: u64 = self.max_ordinal_present();
6128 encoder.write_num(max_ordinal, offset);
6129 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6130 if max_ordinal == 0 {
6132 return Ok(());
6133 }
6134 depth.increment()?;
6135 let envelope_size = 8;
6136 let bytes_len = max_ordinal as usize * envelope_size;
6137 #[allow(unused_variables)]
6138 let offset = encoder.out_of_line_offset(bytes_len);
6139 let mut _prev_end_offset: usize = 0;
6140 if 1 > max_ordinal {
6141 return Ok(());
6142 }
6143
6144 let cur_offset: usize = (1 - 1) * envelope_size;
6147
6148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6150
6151 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6156 self.name.as_ref().map(
6157 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6158 ),
6159 encoder,
6160 offset + cur_offset,
6161 depth,
6162 )?;
6163
6164 _prev_end_offset = cur_offset + envelope_size;
6165 if 2 > max_ordinal {
6166 return Ok(());
6167 }
6168
6169 let cur_offset: usize = (2 - 1) * envelope_size;
6172
6173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6175
6176 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6181 self.as_.as_ref().map(
6182 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6183 ),
6184 encoder,
6185 offset + cur_offset,
6186 depth,
6187 )?;
6188
6189 _prev_end_offset = cur_offset + envelope_size;
6190 if 3 > max_ordinal {
6191 return Ok(());
6192 }
6193
6194 let cur_offset: usize = (3 - 1) * envelope_size;
6197
6198 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6200
6201 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6206 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6207 encoder, offset + cur_offset, depth
6208 )?;
6209
6210 _prev_end_offset = cur_offset + envelope_size;
6211 if 4 > max_ordinal {
6212 return Ok(());
6213 }
6214
6215 let cur_offset: usize = (4 - 1) * envelope_size;
6218
6219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6221
6222 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
6227 self.from_dictionary.as_ref().map(
6228 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
6229 ),
6230 encoder,
6231 offset + cur_offset,
6232 depth,
6233 )?;
6234
6235 _prev_end_offset = cur_offset + envelope_size;
6236
6237 Ok(())
6238 }
6239 }
6240
6241 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Resolver {
6242 #[inline(always)]
6243 fn new_empty() -> Self {
6244 Self::default()
6245 }
6246
6247 unsafe fn decode(
6248 &mut self,
6249 decoder: &mut fidl::encoding::Decoder<'_, D>,
6250 offset: usize,
6251 mut depth: fidl::encoding::Depth,
6252 ) -> fidl::Result<()> {
6253 decoder.debug_check_bounds::<Self>(offset);
6254 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6255 None => return Err(fidl::Error::NotNullable),
6256 Some(len) => len,
6257 };
6258 if len == 0 {
6260 return Ok(());
6261 };
6262 depth.increment()?;
6263 let envelope_size = 8;
6264 let bytes_len = len * envelope_size;
6265 let offset = decoder.out_of_line_offset(bytes_len)?;
6266 let mut _next_ordinal_to_read = 0;
6268 let mut next_offset = offset;
6269 let end_offset = offset + bytes_len;
6270 _next_ordinal_to_read += 1;
6271 if next_offset >= end_offset {
6272 return Ok(());
6273 }
6274
6275 while _next_ordinal_to_read < 1 {
6277 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6278 _next_ordinal_to_read += 1;
6279 next_offset += envelope_size;
6280 }
6281
6282 let next_out_of_line = decoder.next_out_of_line();
6283 let handles_before = decoder.remaining_handles();
6284 if let Some((inlined, num_bytes, num_handles)) =
6285 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6286 {
6287 let member_inline_size =
6288 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6289 decoder.context,
6290 );
6291 if inlined != (member_inline_size <= 4) {
6292 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6293 }
6294 let inner_offset;
6295 let mut inner_depth = depth.clone();
6296 if inlined {
6297 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6298 inner_offset = next_offset;
6299 } else {
6300 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6301 inner_depth.increment()?;
6302 }
6303 let val_ref = self
6304 .name
6305 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6306 fidl::decode!(
6307 fidl::encoding::BoundedString<255>,
6308 D,
6309 val_ref,
6310 decoder,
6311 inner_offset,
6312 inner_depth
6313 )?;
6314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6315 {
6316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6317 }
6318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6320 }
6321 }
6322
6323 next_offset += envelope_size;
6324 _next_ordinal_to_read += 1;
6325 if next_offset >= end_offset {
6326 return Ok(());
6327 }
6328
6329 while _next_ordinal_to_read < 2 {
6331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6332 _next_ordinal_to_read += 1;
6333 next_offset += envelope_size;
6334 }
6335
6336 let next_out_of_line = decoder.next_out_of_line();
6337 let handles_before = decoder.remaining_handles();
6338 if let Some((inlined, num_bytes, num_handles)) =
6339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6340 {
6341 let member_inline_size =
6342 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6343 decoder.context,
6344 );
6345 if inlined != (member_inline_size <= 4) {
6346 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6347 }
6348 let inner_offset;
6349 let mut inner_depth = depth.clone();
6350 if inlined {
6351 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6352 inner_offset = next_offset;
6353 } else {
6354 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6355 inner_depth.increment()?;
6356 }
6357 let val_ref = self
6358 .as_
6359 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6360 fidl::decode!(
6361 fidl::encoding::BoundedString<255>,
6362 D,
6363 val_ref,
6364 decoder,
6365 inner_offset,
6366 inner_depth
6367 )?;
6368 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6369 {
6370 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6371 }
6372 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6373 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6374 }
6375 }
6376
6377 next_offset += envelope_size;
6378 _next_ordinal_to_read += 1;
6379 if next_offset >= end_offset {
6380 return Ok(());
6381 }
6382
6383 while _next_ordinal_to_read < 3 {
6385 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6386 _next_ordinal_to_read += 1;
6387 next_offset += envelope_size;
6388 }
6389
6390 let next_out_of_line = decoder.next_out_of_line();
6391 let handles_before = decoder.remaining_handles();
6392 if let Some((inlined, num_bytes, num_handles)) =
6393 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6394 {
6395 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6396 if inlined != (member_inline_size <= 4) {
6397 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6398 }
6399 let inner_offset;
6400 let mut inner_depth = depth.clone();
6401 if inlined {
6402 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6403 inner_offset = next_offset;
6404 } else {
6405 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6406 inner_depth.increment()?;
6407 }
6408 let val_ref = self.path.get_or_insert_with(|| {
6409 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
6410 });
6411 fidl::decode!(
6412 fidl::encoding::BoundedString<4095>,
6413 D,
6414 val_ref,
6415 decoder,
6416 inner_offset,
6417 inner_depth
6418 )?;
6419 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6420 {
6421 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6422 }
6423 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6424 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6425 }
6426 }
6427
6428 next_offset += envelope_size;
6429 _next_ordinal_to_read += 1;
6430 if next_offset >= end_offset {
6431 return Ok(());
6432 }
6433
6434 while _next_ordinal_to_read < 4 {
6436 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6437 _next_ordinal_to_read += 1;
6438 next_offset += envelope_size;
6439 }
6440
6441 let next_out_of_line = decoder.next_out_of_line();
6442 let handles_before = decoder.remaining_handles();
6443 if let Some((inlined, num_bytes, num_handles)) =
6444 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6445 {
6446 let member_inline_size =
6447 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
6448 decoder.context,
6449 );
6450 if inlined != (member_inline_size <= 4) {
6451 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6452 }
6453 let inner_offset;
6454 let mut inner_depth = depth.clone();
6455 if inlined {
6456 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6457 inner_offset = next_offset;
6458 } else {
6459 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6460 inner_depth.increment()?;
6461 }
6462 let val_ref = self
6463 .from_dictionary
6464 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
6465 fidl::decode!(
6466 fidl::encoding::UnboundedString,
6467 D,
6468 val_ref,
6469 decoder,
6470 inner_offset,
6471 inner_depth
6472 )?;
6473 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6474 {
6475 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6476 }
6477 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6478 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6479 }
6480 }
6481
6482 next_offset += envelope_size;
6483
6484 while next_offset < end_offset {
6486 _next_ordinal_to_read += 1;
6487 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6488 next_offset += envelope_size;
6489 }
6490
6491 Ok(())
6492 }
6493 }
6494
6495 impl Runner {
6496 #[inline(always)]
6497 fn max_ordinal_present(&self) -> u64 {
6498 if let Some(_) = self.from_dictionary {
6499 return 4;
6500 }
6501 if let Some(_) = self.path {
6502 return 3;
6503 }
6504 if let Some(_) = self.as_ {
6505 return 2;
6506 }
6507 if let Some(_) = self.name {
6508 return 1;
6509 }
6510 0
6511 }
6512 }
6513
6514 impl fidl::encoding::ValueTypeMarker for Runner {
6515 type Borrowed<'a> = &'a Self;
6516 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6517 value
6518 }
6519 }
6520
6521 unsafe impl fidl::encoding::TypeMarker for Runner {
6522 type Owned = Self;
6523
6524 #[inline(always)]
6525 fn inline_align(_context: fidl::encoding::Context) -> usize {
6526 8
6527 }
6528
6529 #[inline(always)]
6530 fn inline_size(_context: fidl::encoding::Context) -> usize {
6531 16
6532 }
6533 }
6534
6535 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Runner, D> for &Runner {
6536 unsafe fn encode(
6537 self,
6538 encoder: &mut fidl::encoding::Encoder<'_, D>,
6539 offset: usize,
6540 mut depth: fidl::encoding::Depth,
6541 ) -> fidl::Result<()> {
6542 encoder.debug_check_bounds::<Runner>(offset);
6543 let max_ordinal: u64 = self.max_ordinal_present();
6545 encoder.write_num(max_ordinal, offset);
6546 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6547 if max_ordinal == 0 {
6549 return Ok(());
6550 }
6551 depth.increment()?;
6552 let envelope_size = 8;
6553 let bytes_len = max_ordinal as usize * envelope_size;
6554 #[allow(unused_variables)]
6555 let offset = encoder.out_of_line_offset(bytes_len);
6556 let mut _prev_end_offset: usize = 0;
6557 if 1 > max_ordinal {
6558 return Ok(());
6559 }
6560
6561 let cur_offset: usize = (1 - 1) * envelope_size;
6564
6565 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6567
6568 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6573 self.name.as_ref().map(
6574 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6575 ),
6576 encoder,
6577 offset + cur_offset,
6578 depth,
6579 )?;
6580
6581 _prev_end_offset = cur_offset + envelope_size;
6582 if 2 > max_ordinal {
6583 return Ok(());
6584 }
6585
6586 let cur_offset: usize = (2 - 1) * envelope_size;
6589
6590 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6592
6593 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6598 self.as_.as_ref().map(
6599 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6600 ),
6601 encoder,
6602 offset + cur_offset,
6603 depth,
6604 )?;
6605
6606 _prev_end_offset = cur_offset + envelope_size;
6607 if 3 > max_ordinal {
6608 return Ok(());
6609 }
6610
6611 let cur_offset: usize = (3 - 1) * envelope_size;
6614
6615 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6617
6618 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6623 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6624 encoder, offset + cur_offset, depth
6625 )?;
6626
6627 _prev_end_offset = cur_offset + envelope_size;
6628 if 4 > max_ordinal {
6629 return Ok(());
6630 }
6631
6632 let cur_offset: usize = (4 - 1) * envelope_size;
6635
6636 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6638
6639 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
6644 self.from_dictionary.as_ref().map(
6645 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
6646 ),
6647 encoder,
6648 offset + cur_offset,
6649 depth,
6650 )?;
6651
6652 _prev_end_offset = cur_offset + envelope_size;
6653
6654 Ok(())
6655 }
6656 }
6657
6658 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Runner {
6659 #[inline(always)]
6660 fn new_empty() -> Self {
6661 Self::default()
6662 }
6663
6664 unsafe fn decode(
6665 &mut self,
6666 decoder: &mut fidl::encoding::Decoder<'_, D>,
6667 offset: usize,
6668 mut depth: fidl::encoding::Depth,
6669 ) -> fidl::Result<()> {
6670 decoder.debug_check_bounds::<Self>(offset);
6671 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6672 None => return Err(fidl::Error::NotNullable),
6673 Some(len) => len,
6674 };
6675 if len == 0 {
6677 return Ok(());
6678 };
6679 depth.increment()?;
6680 let envelope_size = 8;
6681 let bytes_len = len * envelope_size;
6682 let offset = decoder.out_of_line_offset(bytes_len)?;
6683 let mut _next_ordinal_to_read = 0;
6685 let mut next_offset = offset;
6686 let end_offset = offset + bytes_len;
6687 _next_ordinal_to_read += 1;
6688 if next_offset >= end_offset {
6689 return Ok(());
6690 }
6691
6692 while _next_ordinal_to_read < 1 {
6694 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6695 _next_ordinal_to_read += 1;
6696 next_offset += envelope_size;
6697 }
6698
6699 let next_out_of_line = decoder.next_out_of_line();
6700 let handles_before = decoder.remaining_handles();
6701 if let Some((inlined, num_bytes, num_handles)) =
6702 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6703 {
6704 let member_inline_size =
6705 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6706 decoder.context,
6707 );
6708 if inlined != (member_inline_size <= 4) {
6709 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6710 }
6711 let inner_offset;
6712 let mut inner_depth = depth.clone();
6713 if inlined {
6714 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6715 inner_offset = next_offset;
6716 } else {
6717 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6718 inner_depth.increment()?;
6719 }
6720 let val_ref = self
6721 .name
6722 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6723 fidl::decode!(
6724 fidl::encoding::BoundedString<255>,
6725 D,
6726 val_ref,
6727 decoder,
6728 inner_offset,
6729 inner_depth
6730 )?;
6731 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6732 {
6733 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6734 }
6735 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6736 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6737 }
6738 }
6739
6740 next_offset += envelope_size;
6741 _next_ordinal_to_read += 1;
6742 if next_offset >= end_offset {
6743 return Ok(());
6744 }
6745
6746 while _next_ordinal_to_read < 2 {
6748 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6749 _next_ordinal_to_read += 1;
6750 next_offset += envelope_size;
6751 }
6752
6753 let next_out_of_line = decoder.next_out_of_line();
6754 let handles_before = decoder.remaining_handles();
6755 if let Some((inlined, num_bytes, num_handles)) =
6756 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6757 {
6758 let member_inline_size =
6759 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6760 decoder.context,
6761 );
6762 if inlined != (member_inline_size <= 4) {
6763 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6764 }
6765 let inner_offset;
6766 let mut inner_depth = depth.clone();
6767 if inlined {
6768 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6769 inner_offset = next_offset;
6770 } else {
6771 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6772 inner_depth.increment()?;
6773 }
6774 let val_ref = self
6775 .as_
6776 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6777 fidl::decode!(
6778 fidl::encoding::BoundedString<255>,
6779 D,
6780 val_ref,
6781 decoder,
6782 inner_offset,
6783 inner_depth
6784 )?;
6785 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6786 {
6787 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6788 }
6789 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6790 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6791 }
6792 }
6793
6794 next_offset += envelope_size;
6795 _next_ordinal_to_read += 1;
6796 if next_offset >= end_offset {
6797 return Ok(());
6798 }
6799
6800 while _next_ordinal_to_read < 3 {
6802 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6803 _next_ordinal_to_read += 1;
6804 next_offset += envelope_size;
6805 }
6806
6807 let next_out_of_line = decoder.next_out_of_line();
6808 let handles_before = decoder.remaining_handles();
6809 if let Some((inlined, num_bytes, num_handles)) =
6810 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6811 {
6812 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6813 if inlined != (member_inline_size <= 4) {
6814 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6815 }
6816 let inner_offset;
6817 let mut inner_depth = depth.clone();
6818 if inlined {
6819 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6820 inner_offset = next_offset;
6821 } else {
6822 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6823 inner_depth.increment()?;
6824 }
6825 let val_ref = self.path.get_or_insert_with(|| {
6826 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
6827 });
6828 fidl::decode!(
6829 fidl::encoding::BoundedString<4095>,
6830 D,
6831 val_ref,
6832 decoder,
6833 inner_offset,
6834 inner_depth
6835 )?;
6836 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6837 {
6838 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6839 }
6840 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6841 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6842 }
6843 }
6844
6845 next_offset += envelope_size;
6846 _next_ordinal_to_read += 1;
6847 if next_offset >= end_offset {
6848 return Ok(());
6849 }
6850
6851 while _next_ordinal_to_read < 4 {
6853 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6854 _next_ordinal_to_read += 1;
6855 next_offset += envelope_size;
6856 }
6857
6858 let next_out_of_line = decoder.next_out_of_line();
6859 let handles_before = decoder.remaining_handles();
6860 if let Some((inlined, num_bytes, num_handles)) =
6861 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6862 {
6863 let member_inline_size =
6864 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
6865 decoder.context,
6866 );
6867 if inlined != (member_inline_size <= 4) {
6868 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6869 }
6870 let inner_offset;
6871 let mut inner_depth = depth.clone();
6872 if inlined {
6873 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6874 inner_offset = next_offset;
6875 } else {
6876 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6877 inner_depth.increment()?;
6878 }
6879 let val_ref = self
6880 .from_dictionary
6881 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
6882 fidl::decode!(
6883 fidl::encoding::UnboundedString,
6884 D,
6885 val_ref,
6886 decoder,
6887 inner_offset,
6888 inner_depth
6889 )?;
6890 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6891 {
6892 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6893 }
6894 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6895 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6896 }
6897 }
6898
6899 next_offset += envelope_size;
6900
6901 while next_offset < end_offset {
6903 _next_ordinal_to_read += 1;
6904 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6905 next_offset += envelope_size;
6906 }
6907
6908 Ok(())
6909 }
6910 }
6911
6912 impl Service {
6913 #[inline(always)]
6914 fn max_ordinal_present(&self) -> u64 {
6915 if let Some(_) = self.from_dictionary {
6916 return 5;
6917 }
6918 if let Some(_) = self.availability {
6919 return 4;
6920 }
6921 if let Some(_) = self.path {
6922 return 3;
6923 }
6924 if let Some(_) = self.as_ {
6925 return 2;
6926 }
6927 if let Some(_) = self.name {
6928 return 1;
6929 }
6930 0
6931 }
6932 }
6933
6934 impl fidl::encoding::ValueTypeMarker for Service {
6935 type Borrowed<'a> = &'a Self;
6936 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6937 value
6938 }
6939 }
6940
6941 unsafe impl fidl::encoding::TypeMarker for Service {
6942 type Owned = Self;
6943
6944 #[inline(always)]
6945 fn inline_align(_context: fidl::encoding::Context) -> usize {
6946 8
6947 }
6948
6949 #[inline(always)]
6950 fn inline_size(_context: fidl::encoding::Context) -> usize {
6951 16
6952 }
6953 }
6954
6955 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Service, D> for &Service {
6956 unsafe fn encode(
6957 self,
6958 encoder: &mut fidl::encoding::Encoder<'_, D>,
6959 offset: usize,
6960 mut depth: fidl::encoding::Depth,
6961 ) -> fidl::Result<()> {
6962 encoder.debug_check_bounds::<Service>(offset);
6963 let max_ordinal: u64 = self.max_ordinal_present();
6965 encoder.write_num(max_ordinal, offset);
6966 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6967 if max_ordinal == 0 {
6969 return Ok(());
6970 }
6971 depth.increment()?;
6972 let envelope_size = 8;
6973 let bytes_len = max_ordinal as usize * envelope_size;
6974 #[allow(unused_variables)]
6975 let offset = encoder.out_of_line_offset(bytes_len);
6976 let mut _prev_end_offset: usize = 0;
6977 if 1 > max_ordinal {
6978 return Ok(());
6979 }
6980
6981 let cur_offset: usize = (1 - 1) * envelope_size;
6984
6985 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6987
6988 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6993 self.name.as_ref().map(
6994 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6995 ),
6996 encoder,
6997 offset + cur_offset,
6998 depth,
6999 )?;
7000
7001 _prev_end_offset = cur_offset + envelope_size;
7002 if 2 > max_ordinal {
7003 return Ok(());
7004 }
7005
7006 let cur_offset: usize = (2 - 1) * envelope_size;
7009
7010 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7012
7013 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7018 self.as_.as_ref().map(
7019 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7020 ),
7021 encoder,
7022 offset + cur_offset,
7023 depth,
7024 )?;
7025
7026 _prev_end_offset = cur_offset + envelope_size;
7027 if 3 > max_ordinal {
7028 return Ok(());
7029 }
7030
7031 let cur_offset: usize = (3 - 1) * envelope_size;
7034
7035 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7037
7038 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
7043 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
7044 encoder, offset + cur_offset, depth
7045 )?;
7046
7047 _prev_end_offset = cur_offset + envelope_size;
7048 if 4 > max_ordinal {
7049 return Ok(());
7050 }
7051
7052 let cur_offset: usize = (4 - 1) * envelope_size;
7055
7056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7058
7059 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Availability, D>(
7064 self.availability.as_ref().map(<fidl_fuchsia_component_decl__common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
7065 encoder, offset + cur_offset, depth
7066 )?;
7067
7068 _prev_end_offset = cur_offset + envelope_size;
7069 if 5 > max_ordinal {
7070 return Ok(());
7071 }
7072
7073 let cur_offset: usize = (5 - 1) * envelope_size;
7076
7077 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7079
7080 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
7085 self.from_dictionary.as_ref().map(
7086 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
7087 ),
7088 encoder,
7089 offset + cur_offset,
7090 depth,
7091 )?;
7092
7093 _prev_end_offset = cur_offset + envelope_size;
7094
7095 Ok(())
7096 }
7097 }
7098
7099 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Service {
7100 #[inline(always)]
7101 fn new_empty() -> Self {
7102 Self::default()
7103 }
7104
7105 unsafe fn decode(
7106 &mut self,
7107 decoder: &mut fidl::encoding::Decoder<'_, D>,
7108 offset: usize,
7109 mut depth: fidl::encoding::Depth,
7110 ) -> fidl::Result<()> {
7111 decoder.debug_check_bounds::<Self>(offset);
7112 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7113 None => return Err(fidl::Error::NotNullable),
7114 Some(len) => len,
7115 };
7116 if len == 0 {
7118 return Ok(());
7119 };
7120 depth.increment()?;
7121 let envelope_size = 8;
7122 let bytes_len = len * envelope_size;
7123 let offset = decoder.out_of_line_offset(bytes_len)?;
7124 let mut _next_ordinal_to_read = 0;
7126 let mut next_offset = offset;
7127 let end_offset = offset + bytes_len;
7128 _next_ordinal_to_read += 1;
7129 if next_offset >= end_offset {
7130 return Ok(());
7131 }
7132
7133 while _next_ordinal_to_read < 1 {
7135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7136 _next_ordinal_to_read += 1;
7137 next_offset += envelope_size;
7138 }
7139
7140 let next_out_of_line = decoder.next_out_of_line();
7141 let handles_before = decoder.remaining_handles();
7142 if let Some((inlined, num_bytes, num_handles)) =
7143 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7144 {
7145 let member_inline_size =
7146 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7147 decoder.context,
7148 );
7149 if inlined != (member_inline_size <= 4) {
7150 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7151 }
7152 let inner_offset;
7153 let mut inner_depth = depth.clone();
7154 if inlined {
7155 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7156 inner_offset = next_offset;
7157 } else {
7158 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7159 inner_depth.increment()?;
7160 }
7161 let val_ref = self
7162 .name
7163 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7164 fidl::decode!(
7165 fidl::encoding::BoundedString<255>,
7166 D,
7167 val_ref,
7168 decoder,
7169 inner_offset,
7170 inner_depth
7171 )?;
7172 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7173 {
7174 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7175 }
7176 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7177 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7178 }
7179 }
7180
7181 next_offset += envelope_size;
7182 _next_ordinal_to_read += 1;
7183 if next_offset >= end_offset {
7184 return Ok(());
7185 }
7186
7187 while _next_ordinal_to_read < 2 {
7189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7190 _next_ordinal_to_read += 1;
7191 next_offset += envelope_size;
7192 }
7193
7194 let next_out_of_line = decoder.next_out_of_line();
7195 let handles_before = decoder.remaining_handles();
7196 if let Some((inlined, num_bytes, num_handles)) =
7197 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7198 {
7199 let member_inline_size =
7200 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7201 decoder.context,
7202 );
7203 if inlined != (member_inline_size <= 4) {
7204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7205 }
7206 let inner_offset;
7207 let mut inner_depth = depth.clone();
7208 if inlined {
7209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7210 inner_offset = next_offset;
7211 } else {
7212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7213 inner_depth.increment()?;
7214 }
7215 let val_ref = self
7216 .as_
7217 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7218 fidl::decode!(
7219 fidl::encoding::BoundedString<255>,
7220 D,
7221 val_ref,
7222 decoder,
7223 inner_offset,
7224 inner_depth
7225 )?;
7226 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7227 {
7228 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7229 }
7230 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7231 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7232 }
7233 }
7234
7235 next_offset += envelope_size;
7236 _next_ordinal_to_read += 1;
7237 if next_offset >= end_offset {
7238 return Ok(());
7239 }
7240
7241 while _next_ordinal_to_read < 3 {
7243 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7244 _next_ordinal_to_read += 1;
7245 next_offset += envelope_size;
7246 }
7247
7248 let next_out_of_line = decoder.next_out_of_line();
7249 let handles_before = decoder.remaining_handles();
7250 if let Some((inlined, num_bytes, num_handles)) =
7251 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7252 {
7253 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7254 if inlined != (member_inline_size <= 4) {
7255 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7256 }
7257 let inner_offset;
7258 let mut inner_depth = depth.clone();
7259 if inlined {
7260 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7261 inner_offset = next_offset;
7262 } else {
7263 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7264 inner_depth.increment()?;
7265 }
7266 let val_ref = self.path.get_or_insert_with(|| {
7267 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
7268 });
7269 fidl::decode!(
7270 fidl::encoding::BoundedString<4095>,
7271 D,
7272 val_ref,
7273 decoder,
7274 inner_offset,
7275 inner_depth
7276 )?;
7277 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7278 {
7279 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7280 }
7281 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7282 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7283 }
7284 }
7285
7286 next_offset += envelope_size;
7287 _next_ordinal_to_read += 1;
7288 if next_offset >= end_offset {
7289 return Ok(());
7290 }
7291
7292 while _next_ordinal_to_read < 4 {
7294 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7295 _next_ordinal_to_read += 1;
7296 next_offset += envelope_size;
7297 }
7298
7299 let next_out_of_line = decoder.next_out_of_line();
7300 let handles_before = decoder.remaining_handles();
7301 if let Some((inlined, num_bytes, num_handles)) =
7302 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7303 {
7304 let member_inline_size = <fidl_fuchsia_component_decl__common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7305 if inlined != (member_inline_size <= 4) {
7306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7307 }
7308 let inner_offset;
7309 let mut inner_depth = depth.clone();
7310 if inlined {
7311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7312 inner_offset = next_offset;
7313 } else {
7314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7315 inner_depth.increment()?;
7316 }
7317 let val_ref = self.availability.get_or_insert_with(|| {
7318 fidl::new_empty!(fidl_fuchsia_component_decl__common::Availability, D)
7319 });
7320 fidl::decode!(
7321 fidl_fuchsia_component_decl__common::Availability,
7322 D,
7323 val_ref,
7324 decoder,
7325 inner_offset,
7326 inner_depth
7327 )?;
7328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7329 {
7330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7331 }
7332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7334 }
7335 }
7336
7337 next_offset += envelope_size;
7338 _next_ordinal_to_read += 1;
7339 if next_offset >= end_offset {
7340 return Ok(());
7341 }
7342
7343 while _next_ordinal_to_read < 5 {
7345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7346 _next_ordinal_to_read += 1;
7347 next_offset += envelope_size;
7348 }
7349
7350 let next_out_of_line = decoder.next_out_of_line();
7351 let handles_before = decoder.remaining_handles();
7352 if let Some((inlined, num_bytes, num_handles)) =
7353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7354 {
7355 let member_inline_size =
7356 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
7357 decoder.context,
7358 );
7359 if inlined != (member_inline_size <= 4) {
7360 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7361 }
7362 let inner_offset;
7363 let mut inner_depth = depth.clone();
7364 if inlined {
7365 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7366 inner_offset = next_offset;
7367 } else {
7368 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7369 inner_depth.increment()?;
7370 }
7371 let val_ref = self
7372 .from_dictionary
7373 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
7374 fidl::decode!(
7375 fidl::encoding::UnboundedString,
7376 D,
7377 val_ref,
7378 decoder,
7379 inner_offset,
7380 inner_depth
7381 )?;
7382 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7383 {
7384 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7385 }
7386 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7387 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7388 }
7389 }
7390
7391 next_offset += envelope_size;
7392
7393 while next_offset < end_offset {
7395 _next_ordinal_to_read += 1;
7396 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7397 next_offset += envelope_size;
7398 }
7399
7400 Ok(())
7401 }
7402 }
7403
7404 impl Storage {
7405 #[inline(always)]
7406 fn max_ordinal_present(&self) -> u64 {
7407 if let Some(_) = self.availability {
7408 return 4;
7409 }
7410 if let Some(_) = self.path {
7411 return 3;
7412 }
7413 if let Some(_) = self.as_ {
7414 return 2;
7415 }
7416 if let Some(_) = self.name {
7417 return 1;
7418 }
7419 0
7420 }
7421 }
7422
7423 impl fidl::encoding::ValueTypeMarker for Storage {
7424 type Borrowed<'a> = &'a Self;
7425 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7426 value
7427 }
7428 }
7429
7430 unsafe impl fidl::encoding::TypeMarker for Storage {
7431 type Owned = Self;
7432
7433 #[inline(always)]
7434 fn inline_align(_context: fidl::encoding::Context) -> usize {
7435 8
7436 }
7437
7438 #[inline(always)]
7439 fn inline_size(_context: fidl::encoding::Context) -> usize {
7440 16
7441 }
7442 }
7443
7444 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Storage, D> for &Storage {
7445 unsafe fn encode(
7446 self,
7447 encoder: &mut fidl::encoding::Encoder<'_, D>,
7448 offset: usize,
7449 mut depth: fidl::encoding::Depth,
7450 ) -> fidl::Result<()> {
7451 encoder.debug_check_bounds::<Storage>(offset);
7452 let max_ordinal: u64 = self.max_ordinal_present();
7454 encoder.write_num(max_ordinal, offset);
7455 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7456 if max_ordinal == 0 {
7458 return Ok(());
7459 }
7460 depth.increment()?;
7461 let envelope_size = 8;
7462 let bytes_len = max_ordinal as usize * envelope_size;
7463 #[allow(unused_variables)]
7464 let offset = encoder.out_of_line_offset(bytes_len);
7465 let mut _prev_end_offset: usize = 0;
7466 if 1 > max_ordinal {
7467 return Ok(());
7468 }
7469
7470 let cur_offset: usize = (1 - 1) * envelope_size;
7473
7474 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7476
7477 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7482 self.name.as_ref().map(
7483 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7484 ),
7485 encoder,
7486 offset + cur_offset,
7487 depth,
7488 )?;
7489
7490 _prev_end_offset = cur_offset + envelope_size;
7491 if 2 > max_ordinal {
7492 return Ok(());
7493 }
7494
7495 let cur_offset: usize = (2 - 1) * envelope_size;
7498
7499 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7501
7502 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7507 self.as_.as_ref().map(
7508 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7509 ),
7510 encoder,
7511 offset + cur_offset,
7512 depth,
7513 )?;
7514
7515 _prev_end_offset = cur_offset + envelope_size;
7516 if 3 > max_ordinal {
7517 return Ok(());
7518 }
7519
7520 let cur_offset: usize = (3 - 1) * envelope_size;
7523
7524 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7526
7527 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7532 self.path.as_ref().map(
7533 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7534 ),
7535 encoder,
7536 offset + cur_offset,
7537 depth,
7538 )?;
7539
7540 _prev_end_offset = cur_offset + envelope_size;
7541 if 4 > max_ordinal {
7542 return Ok(());
7543 }
7544
7545 let cur_offset: usize = (4 - 1) * envelope_size;
7548
7549 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7551
7552 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl__common::Availability, D>(
7557 self.availability.as_ref().map(<fidl_fuchsia_component_decl__common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
7558 encoder, offset + cur_offset, depth
7559 )?;
7560
7561 _prev_end_offset = cur_offset + envelope_size;
7562
7563 Ok(())
7564 }
7565 }
7566
7567 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Storage {
7568 #[inline(always)]
7569 fn new_empty() -> Self {
7570 Self::default()
7571 }
7572
7573 unsafe fn decode(
7574 &mut self,
7575 decoder: &mut fidl::encoding::Decoder<'_, D>,
7576 offset: usize,
7577 mut depth: fidl::encoding::Depth,
7578 ) -> fidl::Result<()> {
7579 decoder.debug_check_bounds::<Self>(offset);
7580 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7581 None => return Err(fidl::Error::NotNullable),
7582 Some(len) => len,
7583 };
7584 if len == 0 {
7586 return Ok(());
7587 };
7588 depth.increment()?;
7589 let envelope_size = 8;
7590 let bytes_len = len * envelope_size;
7591 let offset = decoder.out_of_line_offset(bytes_len)?;
7592 let mut _next_ordinal_to_read = 0;
7594 let mut next_offset = offset;
7595 let end_offset = offset + bytes_len;
7596 _next_ordinal_to_read += 1;
7597 if next_offset >= end_offset {
7598 return Ok(());
7599 }
7600
7601 while _next_ordinal_to_read < 1 {
7603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7604 _next_ordinal_to_read += 1;
7605 next_offset += envelope_size;
7606 }
7607
7608 let next_out_of_line = decoder.next_out_of_line();
7609 let handles_before = decoder.remaining_handles();
7610 if let Some((inlined, num_bytes, num_handles)) =
7611 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7612 {
7613 let member_inline_size =
7614 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7615 decoder.context,
7616 );
7617 if inlined != (member_inline_size <= 4) {
7618 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7619 }
7620 let inner_offset;
7621 let mut inner_depth = depth.clone();
7622 if inlined {
7623 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7624 inner_offset = next_offset;
7625 } else {
7626 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7627 inner_depth.increment()?;
7628 }
7629 let val_ref = self
7630 .name
7631 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7632 fidl::decode!(
7633 fidl::encoding::BoundedString<255>,
7634 D,
7635 val_ref,
7636 decoder,
7637 inner_offset,
7638 inner_depth
7639 )?;
7640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7641 {
7642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7643 }
7644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7646 }
7647 }
7648
7649 next_offset += envelope_size;
7650 _next_ordinal_to_read += 1;
7651 if next_offset >= end_offset {
7652 return Ok(());
7653 }
7654
7655 while _next_ordinal_to_read < 2 {
7657 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7658 _next_ordinal_to_read += 1;
7659 next_offset += envelope_size;
7660 }
7661
7662 let next_out_of_line = decoder.next_out_of_line();
7663 let handles_before = decoder.remaining_handles();
7664 if let Some((inlined, num_bytes, num_handles)) =
7665 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7666 {
7667 let member_inline_size =
7668 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7669 decoder.context,
7670 );
7671 if inlined != (member_inline_size <= 4) {
7672 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7673 }
7674 let inner_offset;
7675 let mut inner_depth = depth.clone();
7676 if inlined {
7677 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7678 inner_offset = next_offset;
7679 } else {
7680 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7681 inner_depth.increment()?;
7682 }
7683 let val_ref = self
7684 .as_
7685 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7686 fidl::decode!(
7687 fidl::encoding::BoundedString<255>,
7688 D,
7689 val_ref,
7690 decoder,
7691 inner_offset,
7692 inner_depth
7693 )?;
7694 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7695 {
7696 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7697 }
7698 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7699 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7700 }
7701 }
7702
7703 next_offset += envelope_size;
7704 _next_ordinal_to_read += 1;
7705 if next_offset >= end_offset {
7706 return Ok(());
7707 }
7708
7709 while _next_ordinal_to_read < 3 {
7711 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7712 _next_ordinal_to_read += 1;
7713 next_offset += envelope_size;
7714 }
7715
7716 let next_out_of_line = decoder.next_out_of_line();
7717 let handles_before = decoder.remaining_handles();
7718 if let Some((inlined, num_bytes, num_handles)) =
7719 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7720 {
7721 let member_inline_size =
7722 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7723 decoder.context,
7724 );
7725 if inlined != (member_inline_size <= 4) {
7726 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7727 }
7728 let inner_offset;
7729 let mut inner_depth = depth.clone();
7730 if inlined {
7731 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7732 inner_offset = next_offset;
7733 } else {
7734 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7735 inner_depth.increment()?;
7736 }
7737 let val_ref = self
7738 .path
7739 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7740 fidl::decode!(
7741 fidl::encoding::BoundedString<255>,
7742 D,
7743 val_ref,
7744 decoder,
7745 inner_offset,
7746 inner_depth
7747 )?;
7748 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7749 {
7750 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7751 }
7752 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7753 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7754 }
7755 }
7756
7757 next_offset += envelope_size;
7758 _next_ordinal_to_read += 1;
7759 if next_offset >= end_offset {
7760 return Ok(());
7761 }
7762
7763 while _next_ordinal_to_read < 4 {
7765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7766 _next_ordinal_to_read += 1;
7767 next_offset += envelope_size;
7768 }
7769
7770 let next_out_of_line = decoder.next_out_of_line();
7771 let handles_before = decoder.remaining_handles();
7772 if let Some((inlined, num_bytes, num_handles)) =
7773 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7774 {
7775 let member_inline_size = <fidl_fuchsia_component_decl__common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7776 if inlined != (member_inline_size <= 4) {
7777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7778 }
7779 let inner_offset;
7780 let mut inner_depth = depth.clone();
7781 if inlined {
7782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7783 inner_offset = next_offset;
7784 } else {
7785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7786 inner_depth.increment()?;
7787 }
7788 let val_ref = self.availability.get_or_insert_with(|| {
7789 fidl::new_empty!(fidl_fuchsia_component_decl__common::Availability, D)
7790 });
7791 fidl::decode!(
7792 fidl_fuchsia_component_decl__common::Availability,
7793 D,
7794 val_ref,
7795 decoder,
7796 inner_offset,
7797 inner_depth
7798 )?;
7799 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7800 {
7801 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7802 }
7803 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7804 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7805 }
7806 }
7807
7808 next_offset += envelope_size;
7809
7810 while next_offset < end_offset {
7812 _next_ordinal_to_read += 1;
7813 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7814 next_offset += envelope_size;
7815 }
7816
7817 Ok(())
7818 }
7819 }
7820
7821 impl fidl::encoding::ValueTypeMarker for Capability {
7822 type Borrowed<'a> = &'a Self;
7823 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7824 value
7825 }
7826 }
7827
7828 unsafe impl fidl::encoding::TypeMarker for Capability {
7829 type Owned = Self;
7830
7831 #[inline(always)]
7832 fn inline_align(_context: fidl::encoding::Context) -> usize {
7833 8
7834 }
7835
7836 #[inline(always)]
7837 fn inline_size(_context: fidl::encoding::Context) -> usize {
7838 16
7839 }
7840 }
7841
7842 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Capability, D>
7843 for &Capability
7844 {
7845 #[inline]
7846 unsafe fn encode(
7847 self,
7848 encoder: &mut fidl::encoding::Encoder<'_, D>,
7849 offset: usize,
7850 _depth: fidl::encoding::Depth,
7851 ) -> fidl::Result<()> {
7852 encoder.debug_check_bounds::<Capability>(offset);
7853 encoder.write_num::<u64>(self.ordinal(), offset);
7854 match self {
7855 Capability::Protocol(ref val) => fidl::encoding::encode_in_envelope::<Protocol, D>(
7856 <Protocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7857 encoder,
7858 offset + 8,
7859 _depth,
7860 ),
7861 Capability::Directory(ref val) => {
7862 fidl::encoding::encode_in_envelope::<Directory, D>(
7863 <Directory as fidl::encoding::ValueTypeMarker>::borrow(val),
7864 encoder,
7865 offset + 8,
7866 _depth,
7867 )
7868 }
7869 Capability::Storage(ref val) => fidl::encoding::encode_in_envelope::<Storage, D>(
7870 <Storage as fidl::encoding::ValueTypeMarker>::borrow(val),
7871 encoder,
7872 offset + 8,
7873 _depth,
7874 ),
7875 Capability::Service(ref val) => fidl::encoding::encode_in_envelope::<Service, D>(
7876 <Service as fidl::encoding::ValueTypeMarker>::borrow(val),
7877 encoder,
7878 offset + 8,
7879 _depth,
7880 ),
7881 Capability::EventStream(ref val) => {
7882 fidl::encoding::encode_in_envelope::<EventStream, D>(
7883 <EventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
7884 encoder,
7885 offset + 8,
7886 _depth,
7887 )
7888 }
7889 Capability::Config(ref val) => fidl::encoding::encode_in_envelope::<Config, D>(
7890 <Config as fidl::encoding::ValueTypeMarker>::borrow(val),
7891 encoder,
7892 offset + 8,
7893 _depth,
7894 ),
7895 Capability::Dictionary(ref val) => {
7896 fidl::encoding::encode_in_envelope::<Dictionary, D>(
7897 <Dictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
7898 encoder,
7899 offset + 8,
7900 _depth,
7901 )
7902 }
7903 Capability::Resolver(ref val) => fidl::encoding::encode_in_envelope::<Resolver, D>(
7904 <Resolver as fidl::encoding::ValueTypeMarker>::borrow(val),
7905 encoder,
7906 offset + 8,
7907 _depth,
7908 ),
7909 Capability::Runner(ref val) => fidl::encoding::encode_in_envelope::<Runner, D>(
7910 <Runner as fidl::encoding::ValueTypeMarker>::borrow(val),
7911 encoder,
7912 offset + 8,
7913 _depth,
7914 ),
7915 Capability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7916 }
7917 }
7918 }
7919
7920 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Capability {
7921 #[inline(always)]
7922 fn new_empty() -> Self {
7923 Self::__SourceBreaking { unknown_ordinal: 0 }
7924 }
7925
7926 #[inline]
7927 unsafe fn decode(
7928 &mut self,
7929 decoder: &mut fidl::encoding::Decoder<'_, D>,
7930 offset: usize,
7931 mut depth: fidl::encoding::Depth,
7932 ) -> fidl::Result<()> {
7933 decoder.debug_check_bounds::<Self>(offset);
7934 #[allow(unused_variables)]
7935 let next_out_of_line = decoder.next_out_of_line();
7936 let handles_before = decoder.remaining_handles();
7937 let (ordinal, inlined, num_bytes, num_handles) =
7938 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7939
7940 let member_inline_size = match ordinal {
7941 1 => <Protocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7942 2 => <Directory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7943 3 => <Storage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7944 4 => <Service as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7945 6 => <EventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7946 7 => <Config as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7947 8 => <Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7948 9 => <Resolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7949 10 => <Runner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7950 0 => return Err(fidl::Error::UnknownUnionTag),
7951 _ => num_bytes as usize,
7952 };
7953
7954 if inlined != (member_inline_size <= 4) {
7955 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7956 }
7957 let _inner_offset;
7958 if inlined {
7959 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7960 _inner_offset = offset + 8;
7961 } else {
7962 depth.increment()?;
7963 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7964 }
7965 match ordinal {
7966 1 => {
7967 #[allow(irrefutable_let_patterns)]
7968 if let Capability::Protocol(_) = self {
7969 } else {
7971 *self = Capability::Protocol(fidl::new_empty!(Protocol, D));
7973 }
7974 #[allow(irrefutable_let_patterns)]
7975 if let Capability::Protocol(ref mut val) = self {
7976 fidl::decode!(Protocol, D, val, decoder, _inner_offset, depth)?;
7977 } else {
7978 unreachable!()
7979 }
7980 }
7981 2 => {
7982 #[allow(irrefutable_let_patterns)]
7983 if let Capability::Directory(_) = self {
7984 } else {
7986 *self = Capability::Directory(fidl::new_empty!(Directory, D));
7988 }
7989 #[allow(irrefutable_let_patterns)]
7990 if let Capability::Directory(ref mut val) = self {
7991 fidl::decode!(Directory, D, val, decoder, _inner_offset, depth)?;
7992 } else {
7993 unreachable!()
7994 }
7995 }
7996 3 => {
7997 #[allow(irrefutable_let_patterns)]
7998 if let Capability::Storage(_) = self {
7999 } else {
8001 *self = Capability::Storage(fidl::new_empty!(Storage, D));
8003 }
8004 #[allow(irrefutable_let_patterns)]
8005 if let Capability::Storage(ref mut val) = self {
8006 fidl::decode!(Storage, D, val, decoder, _inner_offset, depth)?;
8007 } else {
8008 unreachable!()
8009 }
8010 }
8011 4 => {
8012 #[allow(irrefutable_let_patterns)]
8013 if let Capability::Service(_) = self {
8014 } else {
8016 *self = Capability::Service(fidl::new_empty!(Service, D));
8018 }
8019 #[allow(irrefutable_let_patterns)]
8020 if let Capability::Service(ref mut val) = self {
8021 fidl::decode!(Service, D, val, decoder, _inner_offset, depth)?;
8022 } else {
8023 unreachable!()
8024 }
8025 }
8026 6 => {
8027 #[allow(irrefutable_let_patterns)]
8028 if let Capability::EventStream(_) = self {
8029 } else {
8031 *self = Capability::EventStream(fidl::new_empty!(EventStream, D));
8033 }
8034 #[allow(irrefutable_let_patterns)]
8035 if let Capability::EventStream(ref mut val) = self {
8036 fidl::decode!(EventStream, D, val, decoder, _inner_offset, depth)?;
8037 } else {
8038 unreachable!()
8039 }
8040 }
8041 7 => {
8042 #[allow(irrefutable_let_patterns)]
8043 if let Capability::Config(_) = self {
8044 } else {
8046 *self = Capability::Config(fidl::new_empty!(Config, D));
8048 }
8049 #[allow(irrefutable_let_patterns)]
8050 if let Capability::Config(ref mut val) = self {
8051 fidl::decode!(Config, D, val, decoder, _inner_offset, depth)?;
8052 } else {
8053 unreachable!()
8054 }
8055 }
8056 8 => {
8057 #[allow(irrefutable_let_patterns)]
8058 if let Capability::Dictionary(_) = self {
8059 } else {
8061 *self = Capability::Dictionary(fidl::new_empty!(Dictionary, D));
8063 }
8064 #[allow(irrefutable_let_patterns)]
8065 if let Capability::Dictionary(ref mut val) = self {
8066 fidl::decode!(Dictionary, D, val, decoder, _inner_offset, depth)?;
8067 } else {
8068 unreachable!()
8069 }
8070 }
8071 9 => {
8072 #[allow(irrefutable_let_patterns)]
8073 if let Capability::Resolver(_) = self {
8074 } else {
8076 *self = Capability::Resolver(fidl::new_empty!(Resolver, D));
8078 }
8079 #[allow(irrefutable_let_patterns)]
8080 if let Capability::Resolver(ref mut val) = self {
8081 fidl::decode!(Resolver, D, val, decoder, _inner_offset, depth)?;
8082 } else {
8083 unreachable!()
8084 }
8085 }
8086 10 => {
8087 #[allow(irrefutable_let_patterns)]
8088 if let Capability::Runner(_) = self {
8089 } else {
8091 *self = Capability::Runner(fidl::new_empty!(Runner, D));
8093 }
8094 #[allow(irrefutable_let_patterns)]
8095 if let Capability::Runner(ref mut val) = self {
8096 fidl::decode!(Runner, D, val, decoder, _inner_offset, depth)?;
8097 } else {
8098 unreachable!()
8099 }
8100 }
8101 #[allow(deprecated)]
8102 ordinal => {
8103 for _ in 0..num_handles {
8104 decoder.drop_next_handle()?;
8105 }
8106 *self = Capability::__SourceBreaking { unknown_ordinal: ordinal };
8107 }
8108 }
8109 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
8110 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8111 }
8112 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8113 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8114 }
8115 Ok(())
8116 }
8117 }
8118}