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