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