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 path: Option<String>,
414 #[doc(hidden)]
415 pub __source_breaking: fidl::marker::SourceBreaking,
416}
417
418impl fidl::Persistable for Dictionary {}
419
420#[derive(Clone, Debug, Default, PartialEq)]
422pub struct Directory {
423 pub name: Option<String>,
426 pub as_: Option<String>,
429 pub type_: Option<fidl_fuchsia_component_decl_common::DependencyType>,
433 pub subdir: Option<String>,
437 pub rights: Option<fidl_fuchsia_io_common::Operations>,
441 pub path: Option<String>,
445 pub availability: Option<fidl_fuchsia_component_decl_common::Availability>,
448 #[doc(hidden)]
449 pub __source_breaking: fidl::marker::SourceBreaking,
450}
451
452impl fidl::Persistable for Directory {}
453
454#[derive(Clone, Debug, Default, PartialEq)]
456pub struct Event {
457 pub name: Option<String>,
459 pub as_: Option<String>,
462 pub filter: Option<fidl_fuchsia_data_common::Dictionary>,
464 pub availability: Option<fidl_fuchsia_component_decl_common::Availability>,
467 #[doc(hidden)]
468 pub __source_breaking: fidl::marker::SourceBreaking,
469}
470
471impl fidl::Persistable for Event {}
472
473#[derive(Clone, Debug, Default, PartialEq)]
475pub struct EventStream {
476 pub name: Option<String>,
478 pub as_: Option<String>,
480 pub path: Option<String>,
482 pub filter: Option<fidl_fuchsia_data_common::Dictionary>,
484 pub scope: Option<Vec<fidl_fuchsia_component_decl_common::Ref>>,
487 #[doc(hidden)]
488 pub __source_breaking: fidl::marker::SourceBreaking,
489}
490
491impl fidl::Persistable for EventStream {}
492
493#[derive(Clone, Debug, Default, PartialEq)]
495pub struct Protocol {
496 pub name: Option<String>,
501 pub as_: Option<String>,
504 pub type_: Option<fidl_fuchsia_component_decl_common::DependencyType>,
508 pub path: Option<String>,
513 pub availability: Option<fidl_fuchsia_component_decl_common::Availability>,
516 #[doc(hidden)]
517 pub __source_breaking: fidl::marker::SourceBreaking,
518}
519
520impl fidl::Persistable for Protocol {}
521
522#[derive(Clone, Debug, Default, PartialEq)]
524pub struct Resolver {
525 pub name: Option<String>,
527 pub as_: Option<String>,
530 pub path: Option<String>,
535 #[doc(hidden)]
536 pub __source_breaking: fidl::marker::SourceBreaking,
537}
538
539impl fidl::Persistable for Resolver {}
540
541#[derive(Clone, Debug, Default, PartialEq)]
543pub struct Runner {
544 pub name: Option<String>,
546 pub as_: Option<String>,
549 pub path: Option<String>,
554 #[doc(hidden)]
555 pub __source_breaking: fidl::marker::SourceBreaking,
556}
557
558impl fidl::Persistable for Runner {}
559
560#[derive(Clone, Debug, Default, PartialEq)]
562pub struct Service {
563 pub name: Option<String>,
568 pub as_: Option<String>,
571 pub path: Option<String>,
576 pub availability: Option<fidl_fuchsia_component_decl_common::Availability>,
579 #[doc(hidden)]
580 pub __source_breaking: fidl::marker::SourceBreaking,
581}
582
583impl fidl::Persistable for Service {}
584
585#[derive(Clone, Debug, Default, PartialEq)]
587pub struct Storage {
588 pub name: Option<String>,
591 pub as_: Option<String>,
594 pub path: Option<String>,
598 pub availability: Option<fidl_fuchsia_component_decl_common::Availability>,
601 #[doc(hidden)]
602 pub __source_breaking: fidl::marker::SourceBreaking,
603}
604
605impl fidl::Persistable for Storage {}
606
607#[derive(Clone, Debug)]
612pub enum Capability {
613 Protocol(Protocol),
614 Directory(Directory),
615 Storage(Storage),
616 Service(Service),
617 EventStream(EventStream),
618 Config(Config),
619 Dictionary(Dictionary),
620 Resolver(Resolver),
621 Runner(Runner),
622 #[doc(hidden)]
623 __SourceBreaking {
624 unknown_ordinal: u64,
625 },
626}
627
628#[macro_export]
630macro_rules! CapabilityUnknown {
631 () => {
632 _
633 };
634}
635
636impl PartialEq for Capability {
638 fn eq(&self, other: &Self) -> bool {
639 match (self, other) {
640 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
641 (Self::Directory(x), Self::Directory(y)) => *x == *y,
642 (Self::Storage(x), Self::Storage(y)) => *x == *y,
643 (Self::Service(x), Self::Service(y)) => *x == *y,
644 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
645 (Self::Config(x), Self::Config(y)) => *x == *y,
646 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
647 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
648 (Self::Runner(x), Self::Runner(y)) => *x == *y,
649 _ => false,
650 }
651 }
652}
653
654impl Capability {
655 #[inline]
656 pub fn ordinal(&self) -> u64 {
657 match *self {
658 Self::Protocol(_) => 1,
659 Self::Directory(_) => 2,
660 Self::Storage(_) => 3,
661 Self::Service(_) => 4,
662 Self::EventStream(_) => 6,
663 Self::Config(_) => 7,
664 Self::Dictionary(_) => 8,
665 Self::Resolver(_) => 9,
666 Self::Runner(_) => 10,
667 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
668 }
669 }
670
671 #[inline]
672 pub fn unknown_variant_for_testing() -> Self {
673 Self::__SourceBreaking { unknown_ordinal: 0 }
674 }
675
676 #[inline]
677 pub fn is_unknown(&self) -> bool {
678 match self {
679 Self::__SourceBreaking { .. } => true,
680 _ => false,
681 }
682 }
683}
684
685impl fidl::Persistable for Capability {}
686
687pub mod builder_ordinals {
688 pub const BUILD: u64 = 0x172ba0923ec91575;
689}
690
691pub mod realm_ordinals {
692 pub const ADD_CHILD: u64 = 0x3f6c07627303d801;
693 pub const ADD_CHILD_FROM_DECL: u64 = 0x3950ad500258156d;
694 pub const ADD_LOCAL_CHILD: u64 = 0x3249817bae10abbb;
695 pub const ADD_CHILD_REALM: u64 = 0x3fdf98db373b9458;
696 pub const ADD_CHILD_REALM_FROM_RELATIVE_URL: u64 = 0x44c34c8dcbe06abb;
697 pub const ADD_CHILD_REALM_FROM_DECL: u64 = 0x142e5c326732862e;
698 pub const GET_COMPONENT_DECL: u64 = 0x320832af6a4cbac6;
699 pub const REPLACE_COMPONENT_DECL: u64 = 0x59cecf31b314cd5f;
700 pub const GET_REALM_DECL: u64 = 0x46fa05b17bd64269;
701 pub const REPLACE_REALM_DECL: u64 = 0x48fcba4ac1338da9;
702 pub const USE_NESTED_COMPONENT_MANAGER: u64 = 0x64bd27482f3dcc;
703 pub const ADD_ROUTE: u64 = 0x9d523295be53a0a;
704 pub const ADD_ROUTE_FROM_DICTIONARY: u64 = 0x21fac42c3e1d14d2;
705 pub const READ_ONLY_DIRECTORY: u64 = 0x78a6d150a66e00dc;
706 pub const ADD_STORAGE: u64 = 0x4709da0c9576b7c1;
707 pub const INIT_MUTABLE_CONFIG_FROM_PACKAGE: u64 = 0x36a30c9837c64216;
708 pub const INIT_MUTABLE_CONFIG_TO_EMPTY: u64 = 0x772cb99e2e0dccc5;
709 pub const ADD_CAPABILITY: u64 = 0x23a6499eb6080249;
710 pub const ADD_COLLECTION: u64 = 0x56b75210a03a99b5;
711 pub const ADD_ENVIRONMENT: u64 = 0x1cd7caefa2cce0e9;
712 pub const SET_CONFIG_VALUE: u64 = 0x886450d291217f2;
713}
714
715pub mod realm_builder_factory_ordinals {
716 pub const CREATE: u64 = 0x73528b1135cb01be;
717 pub const CREATE_FROM_RELATIVE_URL: u64 = 0x1cafd9042c54a86b;
718}
719
720mod internal {
721 use super::*;
722 unsafe impl fidl::encoding::TypeMarker for RealmBuilderError {
723 type Owned = Self;
724
725 #[inline(always)]
726 fn inline_align(_context: fidl::encoding::Context) -> usize {
727 std::mem::align_of::<u32>()
728 }
729
730 #[inline(always)]
731 fn inline_size(_context: fidl::encoding::Context) -> usize {
732 std::mem::size_of::<u32>()
733 }
734
735 #[inline(always)]
736 fn encode_is_copy() -> bool {
737 false
738 }
739
740 #[inline(always)]
741 fn decode_is_copy() -> bool {
742 false
743 }
744 }
745
746 impl fidl::encoding::ValueTypeMarker for RealmBuilderError {
747 type Borrowed<'a> = Self;
748 #[inline(always)]
749 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
750 *value
751 }
752 }
753
754 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
755 for RealmBuilderError
756 {
757 #[inline]
758 unsafe fn encode(
759 self,
760 encoder: &mut fidl::encoding::Encoder<'_, D>,
761 offset: usize,
762 _depth: fidl::encoding::Depth,
763 ) -> fidl::Result<()> {
764 encoder.debug_check_bounds::<Self>(offset);
765 encoder.write_num(self.into_primitive(), offset);
766 Ok(())
767 }
768 }
769
770 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmBuilderError {
771 #[inline(always)]
772 fn new_empty() -> Self {
773 Self::unknown()
774 }
775
776 #[inline]
777 unsafe fn decode(
778 &mut self,
779 decoder: &mut fidl::encoding::Decoder<'_, D>,
780 offset: usize,
781 _depth: fidl::encoding::Depth,
782 ) -> fidl::Result<()> {
783 decoder.debug_check_bounds::<Self>(offset);
784 let prim = decoder.read_num::<u32>(offset);
785
786 *self = Self::from_primitive_allow_unknown(prim);
787 Ok(())
788 }
789 }
790
791 impl fidl::encoding::ValueTypeMarker for BuilderBuildResponse {
792 type Borrowed<'a> = &'a Self;
793 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
794 value
795 }
796 }
797
798 unsafe impl fidl::encoding::TypeMarker for BuilderBuildResponse {
799 type Owned = Self;
800
801 #[inline(always)]
802 fn inline_align(_context: fidl::encoding::Context) -> usize {
803 8
804 }
805
806 #[inline(always)]
807 fn inline_size(_context: fidl::encoding::Context) -> usize {
808 16
809 }
810 }
811
812 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BuilderBuildResponse, D>
813 for &BuilderBuildResponse
814 {
815 #[inline]
816 unsafe fn encode(
817 self,
818 encoder: &mut fidl::encoding::Encoder<'_, D>,
819 offset: usize,
820 _depth: fidl::encoding::Depth,
821 ) -> fidl::Result<()> {
822 encoder.debug_check_bounds::<BuilderBuildResponse>(offset);
823 fidl::encoding::Encode::<BuilderBuildResponse, D>::encode(
825 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
826 &self.root_component_url,
827 ),),
828 encoder,
829 offset,
830 _depth,
831 )
832 }
833 }
834 unsafe impl<
835 D: fidl::encoding::ResourceDialect,
836 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
837 > fidl::encoding::Encode<BuilderBuildResponse, D> for (T0,)
838 {
839 #[inline]
840 unsafe fn encode(
841 self,
842 encoder: &mut fidl::encoding::Encoder<'_, D>,
843 offset: usize,
844 depth: fidl::encoding::Depth,
845 ) -> fidl::Result<()> {
846 encoder.debug_check_bounds::<BuilderBuildResponse>(offset);
847 self.0.encode(encoder, offset + 0, depth)?;
851 Ok(())
852 }
853 }
854
855 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BuilderBuildResponse {
856 #[inline(always)]
857 fn new_empty() -> Self {
858 Self { root_component_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
859 }
860
861 #[inline]
862 unsafe fn decode(
863 &mut self,
864 decoder: &mut fidl::encoding::Decoder<'_, D>,
865 offset: usize,
866 _depth: fidl::encoding::Depth,
867 ) -> fidl::Result<()> {
868 decoder.debug_check_bounds::<Self>(offset);
869 fidl::decode!(
871 fidl::encoding::BoundedString<4096>,
872 D,
873 &mut self.root_component_url,
874 decoder,
875 offset + 0,
876 _depth
877 )?;
878 Ok(())
879 }
880 }
881
882 impl fidl::encoding::ValueTypeMarker for RealmAddCapabilityRequest {
883 type Borrowed<'a> = &'a Self;
884 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
885 value
886 }
887 }
888
889 unsafe impl fidl::encoding::TypeMarker for RealmAddCapabilityRequest {
890 type Owned = Self;
891
892 #[inline(always)]
893 fn inline_align(_context: fidl::encoding::Context) -> usize {
894 8
895 }
896
897 #[inline(always)]
898 fn inline_size(_context: fidl::encoding::Context) -> usize {
899 16
900 }
901 }
902
903 unsafe impl<D: fidl::encoding::ResourceDialect>
904 fidl::encoding::Encode<RealmAddCapabilityRequest, D> for &RealmAddCapabilityRequest
905 {
906 #[inline]
907 unsafe fn encode(
908 self,
909 encoder: &mut fidl::encoding::Encoder<'_, D>,
910 offset: usize,
911 _depth: fidl::encoding::Depth,
912 ) -> fidl::Result<()> {
913 encoder.debug_check_bounds::<RealmAddCapabilityRequest>(offset);
914 fidl::encoding::Encode::<RealmAddCapabilityRequest, D>::encode(
916 (
917 <fidl_fuchsia_component_decl_common::Capability as fidl::encoding::ValueTypeMarker>::borrow(&self.capability),
918 ),
919 encoder, offset, _depth
920 )
921 }
922 }
923 unsafe impl<
924 D: fidl::encoding::ResourceDialect,
925 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Capability, D>,
926 > fidl::encoding::Encode<RealmAddCapabilityRequest, D> for (T0,)
927 {
928 #[inline]
929 unsafe fn encode(
930 self,
931 encoder: &mut fidl::encoding::Encoder<'_, D>,
932 offset: usize,
933 depth: fidl::encoding::Depth,
934 ) -> fidl::Result<()> {
935 encoder.debug_check_bounds::<RealmAddCapabilityRequest>(offset);
936 self.0.encode(encoder, offset + 0, depth)?;
940 Ok(())
941 }
942 }
943
944 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
945 for RealmAddCapabilityRequest
946 {
947 #[inline(always)]
948 fn new_empty() -> Self {
949 Self { capability: fidl::new_empty!(fidl_fuchsia_component_decl_common::Capability, D) }
950 }
951
952 #[inline]
953 unsafe fn decode(
954 &mut self,
955 decoder: &mut fidl::encoding::Decoder<'_, D>,
956 offset: usize,
957 _depth: fidl::encoding::Depth,
958 ) -> fidl::Result<()> {
959 decoder.debug_check_bounds::<Self>(offset);
960 fidl::decode!(
962 fidl_fuchsia_component_decl_common::Capability,
963 D,
964 &mut self.capability,
965 decoder,
966 offset + 0,
967 _depth
968 )?;
969 Ok(())
970 }
971 }
972
973 impl fidl::encoding::ValueTypeMarker for RealmAddChildFromDeclRequest {
974 type Borrowed<'a> = &'a Self;
975 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
976 value
977 }
978 }
979
980 unsafe impl fidl::encoding::TypeMarker for RealmAddChildFromDeclRequest {
981 type Owned = Self;
982
983 #[inline(always)]
984 fn inline_align(_context: fidl::encoding::Context) -> usize {
985 8
986 }
987
988 #[inline(always)]
989 fn inline_size(_context: fidl::encoding::Context) -> usize {
990 48
991 }
992 }
993
994 unsafe impl<D: fidl::encoding::ResourceDialect>
995 fidl::encoding::Encode<RealmAddChildFromDeclRequest, D> for &RealmAddChildFromDeclRequest
996 {
997 #[inline]
998 unsafe fn encode(
999 self,
1000 encoder: &mut fidl::encoding::Encoder<'_, D>,
1001 offset: usize,
1002 _depth: fidl::encoding::Depth,
1003 ) -> fidl::Result<()> {
1004 encoder.debug_check_bounds::<RealmAddChildFromDeclRequest>(offset);
1005 fidl::encoding::Encode::<RealmAddChildFromDeclRequest, D>::encode(
1007 (
1008 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1009 <fidl_fuchsia_component_decl_common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.decl),
1010 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1011 ),
1012 encoder, offset, _depth
1013 )
1014 }
1015 }
1016 unsafe impl<
1017 D: fidl::encoding::ResourceDialect,
1018 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1019 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Component, D>,
1020 T2: fidl::encoding::Encode<ChildOptions, D>,
1021 > fidl::encoding::Encode<RealmAddChildFromDeclRequest, D> for (T0, T1, T2)
1022 {
1023 #[inline]
1024 unsafe fn encode(
1025 self,
1026 encoder: &mut fidl::encoding::Encoder<'_, D>,
1027 offset: usize,
1028 depth: fidl::encoding::Depth,
1029 ) -> fidl::Result<()> {
1030 encoder.debug_check_bounds::<RealmAddChildFromDeclRequest>(offset);
1031 self.0.encode(encoder, offset + 0, depth)?;
1035 self.1.encode(encoder, offset + 16, depth)?;
1036 self.2.encode(encoder, offset + 32, depth)?;
1037 Ok(())
1038 }
1039 }
1040
1041 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1042 for RealmAddChildFromDeclRequest
1043 {
1044 #[inline(always)]
1045 fn new_empty() -> Self {
1046 Self {
1047 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1048 decl: fidl::new_empty!(fidl_fuchsia_component_decl_common::Component, D),
1049 options: fidl::new_empty!(ChildOptions, D),
1050 }
1051 }
1052
1053 #[inline]
1054 unsafe fn decode(
1055 &mut self,
1056 decoder: &mut fidl::encoding::Decoder<'_, D>,
1057 offset: usize,
1058 _depth: fidl::encoding::Depth,
1059 ) -> fidl::Result<()> {
1060 decoder.debug_check_bounds::<Self>(offset);
1061 fidl::decode!(
1063 fidl::encoding::BoundedString<1024>,
1064 D,
1065 &mut self.name,
1066 decoder,
1067 offset + 0,
1068 _depth
1069 )?;
1070 fidl::decode!(
1071 fidl_fuchsia_component_decl_common::Component,
1072 D,
1073 &mut self.decl,
1074 decoder,
1075 offset + 16,
1076 _depth
1077 )?;
1078 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 32, _depth)?;
1079 Ok(())
1080 }
1081 }
1082
1083 impl fidl::encoding::ValueTypeMarker for RealmAddChildRequest {
1084 type Borrowed<'a> = &'a Self;
1085 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1086 value
1087 }
1088 }
1089
1090 unsafe impl fidl::encoding::TypeMarker for RealmAddChildRequest {
1091 type Owned = Self;
1092
1093 #[inline(always)]
1094 fn inline_align(_context: fidl::encoding::Context) -> usize {
1095 8
1096 }
1097
1098 #[inline(always)]
1099 fn inline_size(_context: fidl::encoding::Context) -> usize {
1100 48
1101 }
1102 }
1103
1104 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RealmAddChildRequest, D>
1105 for &RealmAddChildRequest
1106 {
1107 #[inline]
1108 unsafe fn encode(
1109 self,
1110 encoder: &mut fidl::encoding::Encoder<'_, D>,
1111 offset: usize,
1112 _depth: fidl::encoding::Depth,
1113 ) -> fidl::Result<()> {
1114 encoder.debug_check_bounds::<RealmAddChildRequest>(offset);
1115 fidl::encoding::Encode::<RealmAddChildRequest, D>::encode(
1117 (
1118 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1119 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.url),
1120 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1121 ),
1122 encoder, offset, _depth
1123 )
1124 }
1125 }
1126 unsafe impl<
1127 D: fidl::encoding::ResourceDialect,
1128 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1129 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1130 T2: fidl::encoding::Encode<ChildOptions, D>,
1131 > fidl::encoding::Encode<RealmAddChildRequest, D> for (T0, T1, T2)
1132 {
1133 #[inline]
1134 unsafe fn encode(
1135 self,
1136 encoder: &mut fidl::encoding::Encoder<'_, D>,
1137 offset: usize,
1138 depth: fidl::encoding::Depth,
1139 ) -> fidl::Result<()> {
1140 encoder.debug_check_bounds::<RealmAddChildRequest>(offset);
1141 self.0.encode(encoder, offset + 0, depth)?;
1145 self.1.encode(encoder, offset + 16, depth)?;
1146 self.2.encode(encoder, offset + 32, depth)?;
1147 Ok(())
1148 }
1149 }
1150
1151 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmAddChildRequest {
1152 #[inline(always)]
1153 fn new_empty() -> Self {
1154 Self {
1155 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1156 url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1157 options: fidl::new_empty!(ChildOptions, D),
1158 }
1159 }
1160
1161 #[inline]
1162 unsafe fn decode(
1163 &mut self,
1164 decoder: &mut fidl::encoding::Decoder<'_, D>,
1165 offset: usize,
1166 _depth: fidl::encoding::Depth,
1167 ) -> fidl::Result<()> {
1168 decoder.debug_check_bounds::<Self>(offset);
1169 fidl::decode!(
1171 fidl::encoding::BoundedString<1024>,
1172 D,
1173 &mut self.name,
1174 decoder,
1175 offset + 0,
1176 _depth
1177 )?;
1178 fidl::decode!(
1179 fidl::encoding::BoundedString<4096>,
1180 D,
1181 &mut self.url,
1182 decoder,
1183 offset + 16,
1184 _depth
1185 )?;
1186 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 32, _depth)?;
1187 Ok(())
1188 }
1189 }
1190
1191 impl fidl::encoding::ValueTypeMarker for RealmAddCollectionRequest {
1192 type Borrowed<'a> = &'a Self;
1193 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1194 value
1195 }
1196 }
1197
1198 unsafe impl fidl::encoding::TypeMarker for RealmAddCollectionRequest {
1199 type Owned = Self;
1200
1201 #[inline(always)]
1202 fn inline_align(_context: fidl::encoding::Context) -> usize {
1203 8
1204 }
1205
1206 #[inline(always)]
1207 fn inline_size(_context: fidl::encoding::Context) -> usize {
1208 16
1209 }
1210 }
1211
1212 unsafe impl<D: fidl::encoding::ResourceDialect>
1213 fidl::encoding::Encode<RealmAddCollectionRequest, D> for &RealmAddCollectionRequest
1214 {
1215 #[inline]
1216 unsafe fn encode(
1217 self,
1218 encoder: &mut fidl::encoding::Encoder<'_, D>,
1219 offset: usize,
1220 _depth: fidl::encoding::Depth,
1221 ) -> fidl::Result<()> {
1222 encoder.debug_check_bounds::<RealmAddCollectionRequest>(offset);
1223 fidl::encoding::Encode::<RealmAddCollectionRequest, D>::encode(
1225 (
1226 <fidl_fuchsia_component_decl_common::Collection as fidl::encoding::ValueTypeMarker>::borrow(&self.collection),
1227 ),
1228 encoder, offset, _depth
1229 )
1230 }
1231 }
1232 unsafe impl<
1233 D: fidl::encoding::ResourceDialect,
1234 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Collection, D>,
1235 > fidl::encoding::Encode<RealmAddCollectionRequest, D> for (T0,)
1236 {
1237 #[inline]
1238 unsafe fn encode(
1239 self,
1240 encoder: &mut fidl::encoding::Encoder<'_, D>,
1241 offset: usize,
1242 depth: fidl::encoding::Depth,
1243 ) -> fidl::Result<()> {
1244 encoder.debug_check_bounds::<RealmAddCollectionRequest>(offset);
1245 self.0.encode(encoder, offset + 0, depth)?;
1249 Ok(())
1250 }
1251 }
1252
1253 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1254 for RealmAddCollectionRequest
1255 {
1256 #[inline(always)]
1257 fn new_empty() -> Self {
1258 Self { collection: fidl::new_empty!(fidl_fuchsia_component_decl_common::Collection, D) }
1259 }
1260
1261 #[inline]
1262 unsafe fn decode(
1263 &mut self,
1264 decoder: &mut fidl::encoding::Decoder<'_, D>,
1265 offset: usize,
1266 _depth: fidl::encoding::Depth,
1267 ) -> fidl::Result<()> {
1268 decoder.debug_check_bounds::<Self>(offset);
1269 fidl::decode!(
1271 fidl_fuchsia_component_decl_common::Collection,
1272 D,
1273 &mut self.collection,
1274 decoder,
1275 offset + 0,
1276 _depth
1277 )?;
1278 Ok(())
1279 }
1280 }
1281
1282 impl fidl::encoding::ValueTypeMarker for RealmAddEnvironmentRequest {
1283 type Borrowed<'a> = &'a Self;
1284 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1285 value
1286 }
1287 }
1288
1289 unsafe impl fidl::encoding::TypeMarker for RealmAddEnvironmentRequest {
1290 type Owned = Self;
1291
1292 #[inline(always)]
1293 fn inline_align(_context: fidl::encoding::Context) -> usize {
1294 8
1295 }
1296
1297 #[inline(always)]
1298 fn inline_size(_context: fidl::encoding::Context) -> usize {
1299 16
1300 }
1301 }
1302
1303 unsafe impl<D: fidl::encoding::ResourceDialect>
1304 fidl::encoding::Encode<RealmAddEnvironmentRequest, D> for &RealmAddEnvironmentRequest
1305 {
1306 #[inline]
1307 unsafe fn encode(
1308 self,
1309 encoder: &mut fidl::encoding::Encoder<'_, D>,
1310 offset: usize,
1311 _depth: fidl::encoding::Depth,
1312 ) -> fidl::Result<()> {
1313 encoder.debug_check_bounds::<RealmAddEnvironmentRequest>(offset);
1314 fidl::encoding::Encode::<RealmAddEnvironmentRequest, D>::encode(
1316 (
1317 <fidl_fuchsia_component_decl_common::Environment as fidl::encoding::ValueTypeMarker>::borrow(&self.environment),
1318 ),
1319 encoder, offset, _depth
1320 )
1321 }
1322 }
1323 unsafe impl<
1324 D: fidl::encoding::ResourceDialect,
1325 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Environment, D>,
1326 > fidl::encoding::Encode<RealmAddEnvironmentRequest, D> for (T0,)
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 self.0.encode(encoder, offset + 0, depth)?;
1340 Ok(())
1341 }
1342 }
1343
1344 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1345 for RealmAddEnvironmentRequest
1346 {
1347 #[inline(always)]
1348 fn new_empty() -> Self {
1349 Self {
1350 environment: fidl::new_empty!(fidl_fuchsia_component_decl_common::Environment, D),
1351 }
1352 }
1353
1354 #[inline]
1355 unsafe fn decode(
1356 &mut self,
1357 decoder: &mut fidl::encoding::Decoder<'_, D>,
1358 offset: usize,
1359 _depth: fidl::encoding::Depth,
1360 ) -> fidl::Result<()> {
1361 decoder.debug_check_bounds::<Self>(offset);
1362 fidl::decode!(
1364 fidl_fuchsia_component_decl_common::Environment,
1365 D,
1366 &mut self.environment,
1367 decoder,
1368 offset + 0,
1369 _depth
1370 )?;
1371 Ok(())
1372 }
1373 }
1374
1375 impl fidl::encoding::ValueTypeMarker for RealmAddLocalChildRequest {
1376 type Borrowed<'a> = &'a Self;
1377 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1378 value
1379 }
1380 }
1381
1382 unsafe impl fidl::encoding::TypeMarker for RealmAddLocalChildRequest {
1383 type Owned = Self;
1384
1385 #[inline(always)]
1386 fn inline_align(_context: fidl::encoding::Context) -> usize {
1387 8
1388 }
1389
1390 #[inline(always)]
1391 fn inline_size(_context: fidl::encoding::Context) -> usize {
1392 32
1393 }
1394 }
1395
1396 unsafe impl<D: fidl::encoding::ResourceDialect>
1397 fidl::encoding::Encode<RealmAddLocalChildRequest, D> for &RealmAddLocalChildRequest
1398 {
1399 #[inline]
1400 unsafe fn encode(
1401 self,
1402 encoder: &mut fidl::encoding::Encoder<'_, D>,
1403 offset: usize,
1404 _depth: fidl::encoding::Depth,
1405 ) -> fidl::Result<()> {
1406 encoder.debug_check_bounds::<RealmAddLocalChildRequest>(offset);
1407 fidl::encoding::Encode::<RealmAddLocalChildRequest, D>::encode(
1409 (
1410 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1411 <ChildOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1412 ),
1413 encoder, offset, _depth
1414 )
1415 }
1416 }
1417 unsafe impl<
1418 D: fidl::encoding::ResourceDialect,
1419 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1420 T1: fidl::encoding::Encode<ChildOptions, D>,
1421 > fidl::encoding::Encode<RealmAddLocalChildRequest, D> for (T0, T1)
1422 {
1423 #[inline]
1424 unsafe fn encode(
1425 self,
1426 encoder: &mut fidl::encoding::Encoder<'_, D>,
1427 offset: usize,
1428 depth: fidl::encoding::Depth,
1429 ) -> fidl::Result<()> {
1430 encoder.debug_check_bounds::<RealmAddLocalChildRequest>(offset);
1431 self.0.encode(encoder, offset + 0, depth)?;
1435 self.1.encode(encoder, offset + 16, depth)?;
1436 Ok(())
1437 }
1438 }
1439
1440 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1441 for RealmAddLocalChildRequest
1442 {
1443 #[inline(always)]
1444 fn new_empty() -> Self {
1445 Self {
1446 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1447 options: fidl::new_empty!(ChildOptions, D),
1448 }
1449 }
1450
1451 #[inline]
1452 unsafe fn decode(
1453 &mut self,
1454 decoder: &mut fidl::encoding::Decoder<'_, D>,
1455 offset: usize,
1456 _depth: fidl::encoding::Depth,
1457 ) -> fidl::Result<()> {
1458 decoder.debug_check_bounds::<Self>(offset);
1459 fidl::decode!(
1461 fidl::encoding::BoundedString<1024>,
1462 D,
1463 &mut self.name,
1464 decoder,
1465 offset + 0,
1466 _depth
1467 )?;
1468 fidl::decode!(ChildOptions, D, &mut self.options, decoder, offset + 16, _depth)?;
1469 Ok(())
1470 }
1471 }
1472
1473 impl fidl::encoding::ValueTypeMarker for RealmAddRouteFromDictionaryRequest {
1474 type Borrowed<'a> = &'a Self;
1475 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1476 value
1477 }
1478 }
1479
1480 unsafe impl fidl::encoding::TypeMarker for RealmAddRouteFromDictionaryRequest {
1481 type Owned = Self;
1482
1483 #[inline(always)]
1484 fn inline_align(_context: fidl::encoding::Context) -> usize {
1485 8
1486 }
1487
1488 #[inline(always)]
1489 fn inline_size(_context: fidl::encoding::Context) -> usize {
1490 64
1491 }
1492 }
1493
1494 unsafe impl<D: fidl::encoding::ResourceDialect>
1495 fidl::encoding::Encode<RealmAddRouteFromDictionaryRequest, D>
1496 for &RealmAddRouteFromDictionaryRequest
1497 {
1498 #[inline]
1499 unsafe fn encode(
1500 self,
1501 encoder: &mut fidl::encoding::Encoder<'_, D>,
1502 offset: usize,
1503 _depth: fidl::encoding::Depth,
1504 ) -> fidl::Result<()> {
1505 encoder.debug_check_bounds::<RealmAddRouteFromDictionaryRequest>(offset);
1506 fidl::encoding::Encode::<RealmAddRouteFromDictionaryRequest, D>::encode(
1508 (
1509 <fidl::encoding::UnboundedVector<Capability> as fidl::encoding::ValueTypeMarker>::borrow(&self.capabilities),
1510 <fidl_fuchsia_component_decl_common::Ref as fidl::encoding::ValueTypeMarker>::borrow(&self.from),
1511 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.from_dictionary),
1512 <fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref> as fidl::encoding::ValueTypeMarker>::borrow(&self.to),
1513 ),
1514 encoder, offset, _depth
1515 )
1516 }
1517 }
1518 unsafe impl<
1519 D: fidl::encoding::ResourceDialect,
1520 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Capability>, D>,
1521 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Ref, D>,
1522 T2: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1523 T3: fidl::encoding::Encode<
1524 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
1525 D,
1526 >,
1527 > fidl::encoding::Encode<RealmAddRouteFromDictionaryRequest, D> for (T0, T1, T2, T3)
1528 {
1529 #[inline]
1530 unsafe fn encode(
1531 self,
1532 encoder: &mut fidl::encoding::Encoder<'_, D>,
1533 offset: usize,
1534 depth: fidl::encoding::Depth,
1535 ) -> fidl::Result<()> {
1536 encoder.debug_check_bounds::<RealmAddRouteFromDictionaryRequest>(offset);
1537 self.0.encode(encoder, offset + 0, depth)?;
1541 self.1.encode(encoder, offset + 16, depth)?;
1542 self.2.encode(encoder, offset + 32, depth)?;
1543 self.3.encode(encoder, offset + 48, depth)?;
1544 Ok(())
1545 }
1546 }
1547
1548 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1549 for RealmAddRouteFromDictionaryRequest
1550 {
1551 #[inline(always)]
1552 fn new_empty() -> Self {
1553 Self {
1554 capabilities: fidl::new_empty!(fidl::encoding::UnboundedVector<Capability>, D),
1555 from: fidl::new_empty!(fidl_fuchsia_component_decl_common::Ref, D),
1556 from_dictionary: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1557 to: fidl::new_empty!(
1558 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
1559 D
1560 ),
1561 }
1562 }
1563
1564 #[inline]
1565 unsafe fn decode(
1566 &mut self,
1567 decoder: &mut fidl::encoding::Decoder<'_, D>,
1568 offset: usize,
1569 _depth: fidl::encoding::Depth,
1570 ) -> fidl::Result<()> {
1571 decoder.debug_check_bounds::<Self>(offset);
1572 fidl::decode!(
1574 fidl::encoding::UnboundedVector<Capability>,
1575 D,
1576 &mut self.capabilities,
1577 decoder,
1578 offset + 0,
1579 _depth
1580 )?;
1581 fidl::decode!(
1582 fidl_fuchsia_component_decl_common::Ref,
1583 D,
1584 &mut self.from,
1585 decoder,
1586 offset + 16,
1587 _depth
1588 )?;
1589 fidl::decode!(
1590 fidl::encoding::BoundedString<1024>,
1591 D,
1592 &mut self.from_dictionary,
1593 decoder,
1594 offset + 32,
1595 _depth
1596 )?;
1597 fidl::decode!(
1598 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
1599 D,
1600 &mut self.to,
1601 decoder,
1602 offset + 48,
1603 _depth
1604 )?;
1605 Ok(())
1606 }
1607 }
1608
1609 impl fidl::encoding::ValueTypeMarker for RealmAddRouteRequest {
1610 type Borrowed<'a> = &'a Self;
1611 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1612 value
1613 }
1614 }
1615
1616 unsafe impl fidl::encoding::TypeMarker for RealmAddRouteRequest {
1617 type Owned = Self;
1618
1619 #[inline(always)]
1620 fn inline_align(_context: fidl::encoding::Context) -> usize {
1621 8
1622 }
1623
1624 #[inline(always)]
1625 fn inline_size(_context: fidl::encoding::Context) -> usize {
1626 48
1627 }
1628 }
1629
1630 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RealmAddRouteRequest, D>
1631 for &RealmAddRouteRequest
1632 {
1633 #[inline]
1634 unsafe fn encode(
1635 self,
1636 encoder: &mut fidl::encoding::Encoder<'_, D>,
1637 offset: usize,
1638 _depth: fidl::encoding::Depth,
1639 ) -> fidl::Result<()> {
1640 encoder.debug_check_bounds::<RealmAddRouteRequest>(offset);
1641 fidl::encoding::Encode::<RealmAddRouteRequest, D>::encode(
1643 (
1644 <fidl::encoding::UnboundedVector<Capability> as fidl::encoding::ValueTypeMarker>::borrow(&self.capabilities),
1645 <fidl_fuchsia_component_decl_common::Ref as fidl::encoding::ValueTypeMarker>::borrow(&self.from),
1646 <fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref> as fidl::encoding::ValueTypeMarker>::borrow(&self.to),
1647 ),
1648 encoder, offset, _depth
1649 )
1650 }
1651 }
1652 unsafe impl<
1653 D: fidl::encoding::ResourceDialect,
1654 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Capability>, D>,
1655 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Ref, D>,
1656 T2: fidl::encoding::Encode<
1657 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
1658 D,
1659 >,
1660 > fidl::encoding::Encode<RealmAddRouteRequest, D> for (T0, T1, T2)
1661 {
1662 #[inline]
1663 unsafe fn encode(
1664 self,
1665 encoder: &mut fidl::encoding::Encoder<'_, D>,
1666 offset: usize,
1667 depth: fidl::encoding::Depth,
1668 ) -> fidl::Result<()> {
1669 encoder.debug_check_bounds::<RealmAddRouteRequest>(offset);
1670 self.0.encode(encoder, offset + 0, depth)?;
1674 self.1.encode(encoder, offset + 16, depth)?;
1675 self.2.encode(encoder, offset + 32, depth)?;
1676 Ok(())
1677 }
1678 }
1679
1680 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RealmAddRouteRequest {
1681 #[inline(always)]
1682 fn new_empty() -> Self {
1683 Self {
1684 capabilities: fidl::new_empty!(fidl::encoding::UnboundedVector<Capability>, D),
1685 from: fidl::new_empty!(fidl_fuchsia_component_decl_common::Ref, D),
1686 to: fidl::new_empty!(
1687 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
1688 D
1689 ),
1690 }
1691 }
1692
1693 #[inline]
1694 unsafe fn decode(
1695 &mut self,
1696 decoder: &mut fidl::encoding::Decoder<'_, D>,
1697 offset: usize,
1698 _depth: fidl::encoding::Depth,
1699 ) -> fidl::Result<()> {
1700 decoder.debug_check_bounds::<Self>(offset);
1701 fidl::decode!(
1703 fidl::encoding::UnboundedVector<Capability>,
1704 D,
1705 &mut self.capabilities,
1706 decoder,
1707 offset + 0,
1708 _depth
1709 )?;
1710 fidl::decode!(
1711 fidl_fuchsia_component_decl_common::Ref,
1712 D,
1713 &mut self.from,
1714 decoder,
1715 offset + 16,
1716 _depth
1717 )?;
1718 fidl::decode!(
1719 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
1720 D,
1721 &mut self.to,
1722 decoder,
1723 offset + 32,
1724 _depth
1725 )?;
1726 Ok(())
1727 }
1728 }
1729
1730 impl fidl::encoding::ValueTypeMarker for RealmGetComponentDeclRequest {
1731 type Borrowed<'a> = &'a Self;
1732 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1733 value
1734 }
1735 }
1736
1737 unsafe impl fidl::encoding::TypeMarker for RealmGetComponentDeclRequest {
1738 type Owned = Self;
1739
1740 #[inline(always)]
1741 fn inline_align(_context: fidl::encoding::Context) -> usize {
1742 8
1743 }
1744
1745 #[inline(always)]
1746 fn inline_size(_context: fidl::encoding::Context) -> usize {
1747 16
1748 }
1749 }
1750
1751 unsafe impl<D: fidl::encoding::ResourceDialect>
1752 fidl::encoding::Encode<RealmGetComponentDeclRequest, D> for &RealmGetComponentDeclRequest
1753 {
1754 #[inline]
1755 unsafe fn encode(
1756 self,
1757 encoder: &mut fidl::encoding::Encoder<'_, D>,
1758 offset: usize,
1759 _depth: fidl::encoding::Depth,
1760 ) -> fidl::Result<()> {
1761 encoder.debug_check_bounds::<RealmGetComponentDeclRequest>(offset);
1762 fidl::encoding::Encode::<RealmGetComponentDeclRequest, D>::encode(
1764 (<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(
1765 &self.name,
1766 ),),
1767 encoder,
1768 offset,
1769 _depth,
1770 )
1771 }
1772 }
1773 unsafe impl<
1774 D: fidl::encoding::ResourceDialect,
1775 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1776 > fidl::encoding::Encode<RealmGetComponentDeclRequest, D> for (T0,)
1777 {
1778 #[inline]
1779 unsafe fn encode(
1780 self,
1781 encoder: &mut fidl::encoding::Encoder<'_, D>,
1782 offset: usize,
1783 depth: fidl::encoding::Depth,
1784 ) -> fidl::Result<()> {
1785 encoder.debug_check_bounds::<RealmGetComponentDeclRequest>(offset);
1786 self.0.encode(encoder, offset + 0, depth)?;
1790 Ok(())
1791 }
1792 }
1793
1794 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1795 for RealmGetComponentDeclRequest
1796 {
1797 #[inline(always)]
1798 fn new_empty() -> Self {
1799 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D) }
1800 }
1801
1802 #[inline]
1803 unsafe fn decode(
1804 &mut self,
1805 decoder: &mut fidl::encoding::Decoder<'_, D>,
1806 offset: usize,
1807 _depth: fidl::encoding::Depth,
1808 ) -> fidl::Result<()> {
1809 decoder.debug_check_bounds::<Self>(offset);
1810 fidl::decode!(
1812 fidl::encoding::BoundedString<1024>,
1813 D,
1814 &mut self.name,
1815 decoder,
1816 offset + 0,
1817 _depth
1818 )?;
1819 Ok(())
1820 }
1821 }
1822
1823 impl fidl::encoding::ValueTypeMarker for RealmInitMutableConfigFromPackageRequest {
1824 type Borrowed<'a> = &'a Self;
1825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1826 value
1827 }
1828 }
1829
1830 unsafe impl fidl::encoding::TypeMarker for RealmInitMutableConfigFromPackageRequest {
1831 type Owned = Self;
1832
1833 #[inline(always)]
1834 fn inline_align(_context: fidl::encoding::Context) -> usize {
1835 8
1836 }
1837
1838 #[inline(always)]
1839 fn inline_size(_context: fidl::encoding::Context) -> usize {
1840 16
1841 }
1842 }
1843
1844 unsafe impl<D: fidl::encoding::ResourceDialect>
1845 fidl::encoding::Encode<RealmInitMutableConfigFromPackageRequest, D>
1846 for &RealmInitMutableConfigFromPackageRequest
1847 {
1848 #[inline]
1849 unsafe fn encode(
1850 self,
1851 encoder: &mut fidl::encoding::Encoder<'_, D>,
1852 offset: usize,
1853 _depth: fidl::encoding::Depth,
1854 ) -> fidl::Result<()> {
1855 encoder.debug_check_bounds::<RealmInitMutableConfigFromPackageRequest>(offset);
1856 fidl::encoding::Encode::<RealmInitMutableConfigFromPackageRequest, D>::encode(
1858 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1859 &self.name,
1860 ),),
1861 encoder,
1862 offset,
1863 _depth,
1864 )
1865 }
1866 }
1867 unsafe impl<
1868 D: fidl::encoding::ResourceDialect,
1869 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1870 > fidl::encoding::Encode<RealmInitMutableConfigFromPackageRequest, D> for (T0,)
1871 {
1872 #[inline]
1873 unsafe fn encode(
1874 self,
1875 encoder: &mut fidl::encoding::Encoder<'_, D>,
1876 offset: usize,
1877 depth: fidl::encoding::Depth,
1878 ) -> fidl::Result<()> {
1879 encoder.debug_check_bounds::<RealmInitMutableConfigFromPackageRequest>(offset);
1880 self.0.encode(encoder, offset + 0, depth)?;
1884 Ok(())
1885 }
1886 }
1887
1888 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1889 for RealmInitMutableConfigFromPackageRequest
1890 {
1891 #[inline(always)]
1892 fn new_empty() -> Self {
1893 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
1894 }
1895
1896 #[inline]
1897 unsafe fn decode(
1898 &mut self,
1899 decoder: &mut fidl::encoding::Decoder<'_, D>,
1900 offset: usize,
1901 _depth: fidl::encoding::Depth,
1902 ) -> fidl::Result<()> {
1903 decoder.debug_check_bounds::<Self>(offset);
1904 fidl::decode!(
1906 fidl::encoding::BoundedString<255>,
1907 D,
1908 &mut self.name,
1909 decoder,
1910 offset + 0,
1911 _depth
1912 )?;
1913 Ok(())
1914 }
1915 }
1916
1917 impl fidl::encoding::ValueTypeMarker for RealmInitMutableConfigToEmptyRequest {
1918 type Borrowed<'a> = &'a Self;
1919 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1920 value
1921 }
1922 }
1923
1924 unsafe impl fidl::encoding::TypeMarker for RealmInitMutableConfigToEmptyRequest {
1925 type Owned = Self;
1926
1927 #[inline(always)]
1928 fn inline_align(_context: fidl::encoding::Context) -> usize {
1929 8
1930 }
1931
1932 #[inline(always)]
1933 fn inline_size(_context: fidl::encoding::Context) -> usize {
1934 16
1935 }
1936 }
1937
1938 unsafe impl<D: fidl::encoding::ResourceDialect>
1939 fidl::encoding::Encode<RealmInitMutableConfigToEmptyRequest, D>
1940 for &RealmInitMutableConfigToEmptyRequest
1941 {
1942 #[inline]
1943 unsafe fn encode(
1944 self,
1945 encoder: &mut fidl::encoding::Encoder<'_, D>,
1946 offset: usize,
1947 _depth: fidl::encoding::Depth,
1948 ) -> fidl::Result<()> {
1949 encoder.debug_check_bounds::<RealmInitMutableConfigToEmptyRequest>(offset);
1950 fidl::encoding::Encode::<RealmInitMutableConfigToEmptyRequest, D>::encode(
1952 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1953 &self.name,
1954 ),),
1955 encoder,
1956 offset,
1957 _depth,
1958 )
1959 }
1960 }
1961 unsafe impl<
1962 D: fidl::encoding::ResourceDialect,
1963 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1964 > fidl::encoding::Encode<RealmInitMutableConfigToEmptyRequest, D> for (T0,)
1965 {
1966 #[inline]
1967 unsafe fn encode(
1968 self,
1969 encoder: &mut fidl::encoding::Encoder<'_, D>,
1970 offset: usize,
1971 depth: fidl::encoding::Depth,
1972 ) -> fidl::Result<()> {
1973 encoder.debug_check_bounds::<RealmInitMutableConfigToEmptyRequest>(offset);
1974 self.0.encode(encoder, offset + 0, depth)?;
1978 Ok(())
1979 }
1980 }
1981
1982 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1983 for RealmInitMutableConfigToEmptyRequest
1984 {
1985 #[inline(always)]
1986 fn new_empty() -> Self {
1987 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
1988 }
1989
1990 #[inline]
1991 unsafe fn decode(
1992 &mut self,
1993 decoder: &mut fidl::encoding::Decoder<'_, D>,
1994 offset: usize,
1995 _depth: fidl::encoding::Depth,
1996 ) -> fidl::Result<()> {
1997 decoder.debug_check_bounds::<Self>(offset);
1998 fidl::decode!(
2000 fidl::encoding::BoundedString<255>,
2001 D,
2002 &mut self.name,
2003 decoder,
2004 offset + 0,
2005 _depth
2006 )?;
2007 Ok(())
2008 }
2009 }
2010
2011 impl fidl::encoding::ValueTypeMarker for RealmReplaceComponentDeclRequest {
2012 type Borrowed<'a> = &'a Self;
2013 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2014 value
2015 }
2016 }
2017
2018 unsafe impl fidl::encoding::TypeMarker for RealmReplaceComponentDeclRequest {
2019 type Owned = Self;
2020
2021 #[inline(always)]
2022 fn inline_align(_context: fidl::encoding::Context) -> usize {
2023 8
2024 }
2025
2026 #[inline(always)]
2027 fn inline_size(_context: fidl::encoding::Context) -> usize {
2028 32
2029 }
2030 }
2031
2032 unsafe impl<D: fidl::encoding::ResourceDialect>
2033 fidl::encoding::Encode<RealmReplaceComponentDeclRequest, D>
2034 for &RealmReplaceComponentDeclRequest
2035 {
2036 #[inline]
2037 unsafe fn encode(
2038 self,
2039 encoder: &mut fidl::encoding::Encoder<'_, D>,
2040 offset: usize,
2041 _depth: fidl::encoding::Depth,
2042 ) -> fidl::Result<()> {
2043 encoder.debug_check_bounds::<RealmReplaceComponentDeclRequest>(offset);
2044 fidl::encoding::Encode::<RealmReplaceComponentDeclRequest, D>::encode(
2046 (
2047 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2048 <fidl_fuchsia_component_decl_common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2049 ),
2050 encoder, offset, _depth
2051 )
2052 }
2053 }
2054 unsafe impl<
2055 D: fidl::encoding::ResourceDialect,
2056 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
2057 T1: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Component, D>,
2058 > fidl::encoding::Encode<RealmReplaceComponentDeclRequest, D> for (T0, T1)
2059 {
2060 #[inline]
2061 unsafe fn encode(
2062 self,
2063 encoder: &mut fidl::encoding::Encoder<'_, D>,
2064 offset: usize,
2065 depth: fidl::encoding::Depth,
2066 ) -> fidl::Result<()> {
2067 encoder.debug_check_bounds::<RealmReplaceComponentDeclRequest>(offset);
2068 self.0.encode(encoder, offset + 0, depth)?;
2072 self.1.encode(encoder, offset + 16, depth)?;
2073 Ok(())
2074 }
2075 }
2076
2077 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2078 for RealmReplaceComponentDeclRequest
2079 {
2080 #[inline(always)]
2081 fn new_empty() -> Self {
2082 Self {
2083 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
2084 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl_common::Component, D),
2085 }
2086 }
2087
2088 #[inline]
2089 unsafe fn decode(
2090 &mut self,
2091 decoder: &mut fidl::encoding::Decoder<'_, D>,
2092 offset: usize,
2093 _depth: fidl::encoding::Depth,
2094 ) -> fidl::Result<()> {
2095 decoder.debug_check_bounds::<Self>(offset);
2096 fidl::decode!(
2098 fidl::encoding::BoundedString<1024>,
2099 D,
2100 &mut self.name,
2101 decoder,
2102 offset + 0,
2103 _depth
2104 )?;
2105 fidl::decode!(
2106 fidl_fuchsia_component_decl_common::Component,
2107 D,
2108 &mut self.component_decl,
2109 decoder,
2110 offset + 16,
2111 _depth
2112 )?;
2113 Ok(())
2114 }
2115 }
2116
2117 impl fidl::encoding::ValueTypeMarker for RealmReplaceRealmDeclRequest {
2118 type Borrowed<'a> = &'a Self;
2119 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2120 value
2121 }
2122 }
2123
2124 unsafe impl fidl::encoding::TypeMarker for RealmReplaceRealmDeclRequest {
2125 type Owned = Self;
2126
2127 #[inline(always)]
2128 fn inline_align(_context: fidl::encoding::Context) -> usize {
2129 8
2130 }
2131
2132 #[inline(always)]
2133 fn inline_size(_context: fidl::encoding::Context) -> usize {
2134 16
2135 }
2136 }
2137
2138 unsafe impl<D: fidl::encoding::ResourceDialect>
2139 fidl::encoding::Encode<RealmReplaceRealmDeclRequest, D> for &RealmReplaceRealmDeclRequest
2140 {
2141 #[inline]
2142 unsafe fn encode(
2143 self,
2144 encoder: &mut fidl::encoding::Encoder<'_, D>,
2145 offset: usize,
2146 _depth: fidl::encoding::Depth,
2147 ) -> fidl::Result<()> {
2148 encoder.debug_check_bounds::<RealmReplaceRealmDeclRequest>(offset);
2149 fidl::encoding::Encode::<RealmReplaceRealmDeclRequest, D>::encode(
2151 (
2152 <fidl_fuchsia_component_decl_common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2153 ),
2154 encoder, offset, _depth
2155 )
2156 }
2157 }
2158 unsafe impl<
2159 D: fidl::encoding::ResourceDialect,
2160 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Component, D>,
2161 > fidl::encoding::Encode<RealmReplaceRealmDeclRequest, D> for (T0,)
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 self.0.encode(encoder, offset + 0, depth)?;
2175 Ok(())
2176 }
2177 }
2178
2179 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2180 for RealmReplaceRealmDeclRequest
2181 {
2182 #[inline(always)]
2183 fn new_empty() -> Self {
2184 Self {
2185 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl_common::Component, D),
2186 }
2187 }
2188
2189 #[inline]
2190 unsafe fn decode(
2191 &mut self,
2192 decoder: &mut fidl::encoding::Decoder<'_, D>,
2193 offset: usize,
2194 _depth: fidl::encoding::Depth,
2195 ) -> fidl::Result<()> {
2196 decoder.debug_check_bounds::<Self>(offset);
2197 fidl::decode!(
2199 fidl_fuchsia_component_decl_common::Component,
2200 D,
2201 &mut self.component_decl,
2202 decoder,
2203 offset + 0,
2204 _depth
2205 )?;
2206 Ok(())
2207 }
2208 }
2209
2210 impl fidl::encoding::ValueTypeMarker for RealmSetConfigValueRequest {
2211 type Borrowed<'a> = &'a Self;
2212 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2213 value
2214 }
2215 }
2216
2217 unsafe impl fidl::encoding::TypeMarker for RealmSetConfigValueRequest {
2218 type Owned = Self;
2219
2220 #[inline(always)]
2221 fn inline_align(_context: fidl::encoding::Context) -> usize {
2222 8
2223 }
2224
2225 #[inline(always)]
2226 fn inline_size(_context: fidl::encoding::Context) -> usize {
2227 48
2228 }
2229 }
2230
2231 unsafe impl<D: fidl::encoding::ResourceDialect>
2232 fidl::encoding::Encode<RealmSetConfigValueRequest, D> for &RealmSetConfigValueRequest
2233 {
2234 #[inline]
2235 unsafe fn encode(
2236 self,
2237 encoder: &mut fidl::encoding::Encoder<'_, D>,
2238 offset: usize,
2239 _depth: fidl::encoding::Depth,
2240 ) -> fidl::Result<()> {
2241 encoder.debug_check_bounds::<RealmSetConfigValueRequest>(offset);
2242 fidl::encoding::Encode::<RealmSetConfigValueRequest, D>::encode(
2244 (
2245 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2246 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(&self.key),
2247 <fidl_fuchsia_component_decl_common::ConfigValueSpec as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
2248 ),
2249 encoder, offset, _depth
2250 )
2251 }
2252 }
2253 unsafe impl<
2254 D: fidl::encoding::ResourceDialect,
2255 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
2256 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
2257 T2: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::ConfigValueSpec, D>,
2258 > fidl::encoding::Encode<RealmSetConfigValueRequest, D> for (T0, T1, T2)
2259 {
2260 #[inline]
2261 unsafe fn encode(
2262 self,
2263 encoder: &mut fidl::encoding::Encoder<'_, D>,
2264 offset: usize,
2265 depth: fidl::encoding::Depth,
2266 ) -> fidl::Result<()> {
2267 encoder.debug_check_bounds::<RealmSetConfigValueRequest>(offset);
2268 self.0.encode(encoder, offset + 0, depth)?;
2272 self.1.encode(encoder, offset + 16, depth)?;
2273 self.2.encode(encoder, offset + 32, depth)?;
2274 Ok(())
2275 }
2276 }
2277
2278 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2279 for RealmSetConfigValueRequest
2280 {
2281 #[inline(always)]
2282 fn new_empty() -> Self {
2283 Self {
2284 name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
2285 key: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
2286 value: fidl::new_empty!(fidl_fuchsia_component_decl_common::ConfigValueSpec, D),
2287 }
2288 }
2289
2290 #[inline]
2291 unsafe fn decode(
2292 &mut self,
2293 decoder: &mut fidl::encoding::Decoder<'_, D>,
2294 offset: usize,
2295 _depth: fidl::encoding::Depth,
2296 ) -> fidl::Result<()> {
2297 decoder.debug_check_bounds::<Self>(offset);
2298 fidl::decode!(
2300 fidl::encoding::BoundedString<255>,
2301 D,
2302 &mut self.name,
2303 decoder,
2304 offset + 0,
2305 _depth
2306 )?;
2307 fidl::decode!(
2308 fidl::encoding::BoundedString<64>,
2309 D,
2310 &mut self.key,
2311 decoder,
2312 offset + 16,
2313 _depth
2314 )?;
2315 fidl::decode!(
2316 fidl_fuchsia_component_decl_common::ConfigValueSpec,
2317 D,
2318 &mut self.value,
2319 decoder,
2320 offset + 32,
2321 _depth
2322 )?;
2323 Ok(())
2324 }
2325 }
2326
2327 impl fidl::encoding::ValueTypeMarker for RealmUseNestedComponentManagerRequest {
2328 type Borrowed<'a> = &'a Self;
2329 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2330 value
2331 }
2332 }
2333
2334 unsafe impl fidl::encoding::TypeMarker for RealmUseNestedComponentManagerRequest {
2335 type Owned = Self;
2336
2337 #[inline(always)]
2338 fn inline_align(_context: fidl::encoding::Context) -> usize {
2339 8
2340 }
2341
2342 #[inline(always)]
2343 fn inline_size(_context: fidl::encoding::Context) -> usize {
2344 16
2345 }
2346 }
2347
2348 unsafe impl<D: fidl::encoding::ResourceDialect>
2349 fidl::encoding::Encode<RealmUseNestedComponentManagerRequest, D>
2350 for &RealmUseNestedComponentManagerRequest
2351 {
2352 #[inline]
2353 unsafe fn encode(
2354 self,
2355 encoder: &mut fidl::encoding::Encoder<'_, D>,
2356 offset: usize,
2357 _depth: fidl::encoding::Depth,
2358 ) -> fidl::Result<()> {
2359 encoder.debug_check_bounds::<RealmUseNestedComponentManagerRequest>(offset);
2360 fidl::encoding::Encode::<RealmUseNestedComponentManagerRequest, D>::encode(
2362 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
2363 &self.component_manager_relative_url,
2364 ),),
2365 encoder,
2366 offset,
2367 _depth,
2368 )
2369 }
2370 }
2371 unsafe impl<
2372 D: fidl::encoding::ResourceDialect,
2373 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
2374 > fidl::encoding::Encode<RealmUseNestedComponentManagerRequest, D> for (T0,)
2375 {
2376 #[inline]
2377 unsafe fn encode(
2378 self,
2379 encoder: &mut fidl::encoding::Encoder<'_, D>,
2380 offset: usize,
2381 depth: fidl::encoding::Depth,
2382 ) -> fidl::Result<()> {
2383 encoder.debug_check_bounds::<RealmUseNestedComponentManagerRequest>(offset);
2384 self.0.encode(encoder, offset + 0, depth)?;
2388 Ok(())
2389 }
2390 }
2391
2392 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2393 for RealmUseNestedComponentManagerRequest
2394 {
2395 #[inline(always)]
2396 fn new_empty() -> Self {
2397 Self {
2398 component_manager_relative_url: fidl::new_empty!(
2399 fidl::encoding::BoundedString<4096>,
2400 D
2401 ),
2402 }
2403 }
2404
2405 #[inline]
2406 unsafe fn decode(
2407 &mut self,
2408 decoder: &mut fidl::encoding::Decoder<'_, D>,
2409 offset: usize,
2410 _depth: fidl::encoding::Depth,
2411 ) -> fidl::Result<()> {
2412 decoder.debug_check_bounds::<Self>(offset);
2413 fidl::decode!(
2415 fidl::encoding::BoundedString<4096>,
2416 D,
2417 &mut self.component_manager_relative_url,
2418 decoder,
2419 offset + 0,
2420 _depth
2421 )?;
2422 Ok(())
2423 }
2424 }
2425
2426 impl fidl::encoding::ValueTypeMarker for RealmGetComponentDeclResponse {
2427 type Borrowed<'a> = &'a Self;
2428 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2429 value
2430 }
2431 }
2432
2433 unsafe impl fidl::encoding::TypeMarker for RealmGetComponentDeclResponse {
2434 type Owned = Self;
2435
2436 #[inline(always)]
2437 fn inline_align(_context: fidl::encoding::Context) -> usize {
2438 8
2439 }
2440
2441 #[inline(always)]
2442 fn inline_size(_context: fidl::encoding::Context) -> usize {
2443 16
2444 }
2445 }
2446
2447 unsafe impl<D: fidl::encoding::ResourceDialect>
2448 fidl::encoding::Encode<RealmGetComponentDeclResponse, D>
2449 for &RealmGetComponentDeclResponse
2450 {
2451 #[inline]
2452 unsafe fn encode(
2453 self,
2454 encoder: &mut fidl::encoding::Encoder<'_, D>,
2455 offset: usize,
2456 _depth: fidl::encoding::Depth,
2457 ) -> fidl::Result<()> {
2458 encoder.debug_check_bounds::<RealmGetComponentDeclResponse>(offset);
2459 fidl::encoding::Encode::<RealmGetComponentDeclResponse, D>::encode(
2461 (
2462 <fidl_fuchsia_component_decl_common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2463 ),
2464 encoder, offset, _depth
2465 )
2466 }
2467 }
2468 unsafe impl<
2469 D: fidl::encoding::ResourceDialect,
2470 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Component, D>,
2471 > fidl::encoding::Encode<RealmGetComponentDeclResponse, D> for (T0,)
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 self.0.encode(encoder, offset + 0, depth)?;
2485 Ok(())
2486 }
2487 }
2488
2489 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2490 for RealmGetComponentDeclResponse
2491 {
2492 #[inline(always)]
2493 fn new_empty() -> Self {
2494 Self {
2495 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl_common::Component, D),
2496 }
2497 }
2498
2499 #[inline]
2500 unsafe fn decode(
2501 &mut self,
2502 decoder: &mut fidl::encoding::Decoder<'_, D>,
2503 offset: usize,
2504 _depth: fidl::encoding::Depth,
2505 ) -> fidl::Result<()> {
2506 decoder.debug_check_bounds::<Self>(offset);
2507 fidl::decode!(
2509 fidl_fuchsia_component_decl_common::Component,
2510 D,
2511 &mut self.component_decl,
2512 decoder,
2513 offset + 0,
2514 _depth
2515 )?;
2516 Ok(())
2517 }
2518 }
2519
2520 impl fidl::encoding::ValueTypeMarker for RealmGetRealmDeclResponse {
2521 type Borrowed<'a> = &'a Self;
2522 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2523 value
2524 }
2525 }
2526
2527 unsafe impl fidl::encoding::TypeMarker for RealmGetRealmDeclResponse {
2528 type Owned = Self;
2529
2530 #[inline(always)]
2531 fn inline_align(_context: fidl::encoding::Context) -> usize {
2532 8
2533 }
2534
2535 #[inline(always)]
2536 fn inline_size(_context: fidl::encoding::Context) -> usize {
2537 16
2538 }
2539 }
2540
2541 unsafe impl<D: fidl::encoding::ResourceDialect>
2542 fidl::encoding::Encode<RealmGetRealmDeclResponse, D> for &RealmGetRealmDeclResponse
2543 {
2544 #[inline]
2545 unsafe fn encode(
2546 self,
2547 encoder: &mut fidl::encoding::Encoder<'_, D>,
2548 offset: usize,
2549 _depth: fidl::encoding::Depth,
2550 ) -> fidl::Result<()> {
2551 encoder.debug_check_bounds::<RealmGetRealmDeclResponse>(offset);
2552 fidl::encoding::Encode::<RealmGetRealmDeclResponse, D>::encode(
2554 (
2555 <fidl_fuchsia_component_decl_common::Component as fidl::encoding::ValueTypeMarker>::borrow(&self.component_decl),
2556 ),
2557 encoder, offset, _depth
2558 )
2559 }
2560 }
2561 unsafe impl<
2562 D: fidl::encoding::ResourceDialect,
2563 T0: fidl::encoding::Encode<fidl_fuchsia_component_decl_common::Component, D>,
2564 > fidl::encoding::Encode<RealmGetRealmDeclResponse, D> for (T0,)
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 self.0.encode(encoder, offset + 0, depth)?;
2578 Ok(())
2579 }
2580 }
2581
2582 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2583 for RealmGetRealmDeclResponse
2584 {
2585 #[inline(always)]
2586 fn new_empty() -> Self {
2587 Self {
2588 component_decl: fidl::new_empty!(fidl_fuchsia_component_decl_common::Component, D),
2589 }
2590 }
2591
2592 #[inline]
2593 unsafe fn decode(
2594 &mut self,
2595 decoder: &mut fidl::encoding::Decoder<'_, D>,
2596 offset: usize,
2597 _depth: fidl::encoding::Depth,
2598 ) -> fidl::Result<()> {
2599 decoder.debug_check_bounds::<Self>(offset);
2600 fidl::decode!(
2602 fidl_fuchsia_component_decl_common::Component,
2603 D,
2604 &mut self.component_decl,
2605 decoder,
2606 offset + 0,
2607 _depth
2608 )?;
2609 Ok(())
2610 }
2611 }
2612
2613 impl ChildOptions {
2614 #[inline(always)]
2615 fn max_ordinal_present(&self) -> u64 {
2616 if let Some(_) = self.config_overrides {
2617 return 4;
2618 }
2619 if let Some(_) = self.on_terminate {
2620 return 3;
2621 }
2622 if let Some(_) = self.environment {
2623 return 2;
2624 }
2625 if let Some(_) = self.startup {
2626 return 1;
2627 }
2628 0
2629 }
2630 }
2631
2632 impl fidl::encoding::ValueTypeMarker for ChildOptions {
2633 type Borrowed<'a> = &'a Self;
2634 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2635 value
2636 }
2637 }
2638
2639 unsafe impl fidl::encoding::TypeMarker for ChildOptions {
2640 type Owned = Self;
2641
2642 #[inline(always)]
2643 fn inline_align(_context: fidl::encoding::Context) -> usize {
2644 8
2645 }
2646
2647 #[inline(always)]
2648 fn inline_size(_context: fidl::encoding::Context) -> usize {
2649 16
2650 }
2651 }
2652
2653 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChildOptions, D>
2654 for &ChildOptions
2655 {
2656 unsafe fn encode(
2657 self,
2658 encoder: &mut fidl::encoding::Encoder<'_, D>,
2659 offset: usize,
2660 mut depth: fidl::encoding::Depth,
2661 ) -> fidl::Result<()> {
2662 encoder.debug_check_bounds::<ChildOptions>(offset);
2663 let max_ordinal: u64 = self.max_ordinal_present();
2665 encoder.write_num(max_ordinal, offset);
2666 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2667 if max_ordinal == 0 {
2669 return Ok(());
2670 }
2671 depth.increment()?;
2672 let envelope_size = 8;
2673 let bytes_len = max_ordinal as usize * envelope_size;
2674 #[allow(unused_variables)]
2675 let offset = encoder.out_of_line_offset(bytes_len);
2676 let mut _prev_end_offset: usize = 0;
2677 if 1 > max_ordinal {
2678 return Ok(());
2679 }
2680
2681 let cur_offset: usize = (1 - 1) * envelope_size;
2684
2685 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2687
2688 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::StartupMode, D>(
2693 self.startup.as_ref().map(<fidl_fuchsia_component_decl_common::StartupMode as fidl::encoding::ValueTypeMarker>::borrow),
2694 encoder, offset + cur_offset, depth
2695 )?;
2696
2697 _prev_end_offset = cur_offset + envelope_size;
2698 if 2 > max_ordinal {
2699 return Ok(());
2700 }
2701
2702 let cur_offset: usize = (2 - 1) * envelope_size;
2705
2706 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2708
2709 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
2714 self.environment.as_ref().map(
2715 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
2716 ),
2717 encoder,
2718 offset + cur_offset,
2719 depth,
2720 )?;
2721
2722 _prev_end_offset = cur_offset + envelope_size;
2723 if 3 > max_ordinal {
2724 return Ok(());
2725 }
2726
2727 let cur_offset: usize = (3 - 1) * envelope_size;
2730
2731 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2733
2734 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::OnTerminate, D>(
2739 self.on_terminate.as_ref().map(<fidl_fuchsia_component_decl_common::OnTerminate as fidl::encoding::ValueTypeMarker>::borrow),
2740 encoder, offset + cur_offset, depth
2741 )?;
2742
2743 _prev_end_offset = cur_offset + envelope_size;
2744 if 4 > max_ordinal {
2745 return Ok(());
2746 }
2747
2748 let cur_offset: usize = (4 - 1) * envelope_size;
2751
2752 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2754
2755 fidl::encoding::encode_in_envelope_optional::<
2760 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::ConfigOverride>,
2761 D,
2762 >(
2763 self.config_overrides.as_ref().map(
2764 <fidl::encoding::UnboundedVector<
2765 fidl_fuchsia_component_decl_common::ConfigOverride,
2766 > as fidl::encoding::ValueTypeMarker>::borrow,
2767 ),
2768 encoder,
2769 offset + cur_offset,
2770 depth,
2771 )?;
2772
2773 _prev_end_offset = cur_offset + envelope_size;
2774
2775 Ok(())
2776 }
2777 }
2778
2779 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChildOptions {
2780 #[inline(always)]
2781 fn new_empty() -> Self {
2782 Self::default()
2783 }
2784
2785 unsafe fn decode(
2786 &mut self,
2787 decoder: &mut fidl::encoding::Decoder<'_, D>,
2788 offset: usize,
2789 mut depth: fidl::encoding::Depth,
2790 ) -> fidl::Result<()> {
2791 decoder.debug_check_bounds::<Self>(offset);
2792 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2793 None => return Err(fidl::Error::NotNullable),
2794 Some(len) => len,
2795 };
2796 if len == 0 {
2798 return Ok(());
2799 };
2800 depth.increment()?;
2801 let envelope_size = 8;
2802 let bytes_len = len * envelope_size;
2803 let offset = decoder.out_of_line_offset(bytes_len)?;
2804 let mut _next_ordinal_to_read = 0;
2806 let mut next_offset = offset;
2807 let end_offset = offset + bytes_len;
2808 _next_ordinal_to_read += 1;
2809 if next_offset >= end_offset {
2810 return Ok(());
2811 }
2812
2813 while _next_ordinal_to_read < 1 {
2815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2816 _next_ordinal_to_read += 1;
2817 next_offset += envelope_size;
2818 }
2819
2820 let next_out_of_line = decoder.next_out_of_line();
2821 let handles_before = decoder.remaining_handles();
2822 if let Some((inlined, num_bytes, num_handles)) =
2823 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2824 {
2825 let member_inline_size = <fidl_fuchsia_component_decl_common::StartupMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2826 if inlined != (member_inline_size <= 4) {
2827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2828 }
2829 let inner_offset;
2830 let mut inner_depth = depth.clone();
2831 if inlined {
2832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2833 inner_offset = next_offset;
2834 } else {
2835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2836 inner_depth.increment()?;
2837 }
2838 let val_ref = self.startup.get_or_insert_with(|| {
2839 fidl::new_empty!(fidl_fuchsia_component_decl_common::StartupMode, D)
2840 });
2841 fidl::decode!(
2842 fidl_fuchsia_component_decl_common::StartupMode,
2843 D,
2844 val_ref,
2845 decoder,
2846 inner_offset,
2847 inner_depth
2848 )?;
2849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2850 {
2851 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2852 }
2853 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2854 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2855 }
2856 }
2857
2858 next_offset += envelope_size;
2859 _next_ordinal_to_read += 1;
2860 if next_offset >= end_offset {
2861 return Ok(());
2862 }
2863
2864 while _next_ordinal_to_read < 2 {
2866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2867 _next_ordinal_to_read += 1;
2868 next_offset += envelope_size;
2869 }
2870
2871 let next_out_of_line = decoder.next_out_of_line();
2872 let handles_before = decoder.remaining_handles();
2873 if let Some((inlined, num_bytes, num_handles)) =
2874 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2875 {
2876 let member_inline_size =
2877 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
2878 decoder.context,
2879 );
2880 if inlined != (member_inline_size <= 4) {
2881 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2882 }
2883 let inner_offset;
2884 let mut inner_depth = depth.clone();
2885 if inlined {
2886 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2887 inner_offset = next_offset;
2888 } else {
2889 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2890 inner_depth.increment()?;
2891 }
2892 let val_ref = self
2893 .environment
2894 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
2895 fidl::decode!(
2896 fidl::encoding::BoundedString<255>,
2897 D,
2898 val_ref,
2899 decoder,
2900 inner_offset,
2901 inner_depth
2902 )?;
2903 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2904 {
2905 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2906 }
2907 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2908 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2909 }
2910 }
2911
2912 next_offset += envelope_size;
2913 _next_ordinal_to_read += 1;
2914 if next_offset >= end_offset {
2915 return Ok(());
2916 }
2917
2918 while _next_ordinal_to_read < 3 {
2920 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2921 _next_ordinal_to_read += 1;
2922 next_offset += envelope_size;
2923 }
2924
2925 let next_out_of_line = decoder.next_out_of_line();
2926 let handles_before = decoder.remaining_handles();
2927 if let Some((inlined, num_bytes, num_handles)) =
2928 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2929 {
2930 let member_inline_size = <fidl_fuchsia_component_decl_common::OnTerminate as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2931 if inlined != (member_inline_size <= 4) {
2932 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2933 }
2934 let inner_offset;
2935 let mut inner_depth = depth.clone();
2936 if inlined {
2937 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2938 inner_offset = next_offset;
2939 } else {
2940 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2941 inner_depth.increment()?;
2942 }
2943 let val_ref = self.on_terminate.get_or_insert_with(|| {
2944 fidl::new_empty!(fidl_fuchsia_component_decl_common::OnTerminate, D)
2945 });
2946 fidl::decode!(
2947 fidl_fuchsia_component_decl_common::OnTerminate,
2948 D,
2949 val_ref,
2950 decoder,
2951 inner_offset,
2952 inner_depth
2953 )?;
2954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2955 {
2956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2957 }
2958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2960 }
2961 }
2962
2963 next_offset += envelope_size;
2964 _next_ordinal_to_read += 1;
2965 if next_offset >= end_offset {
2966 return Ok(());
2967 }
2968
2969 while _next_ordinal_to_read < 4 {
2971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2972 _next_ordinal_to_read += 1;
2973 next_offset += envelope_size;
2974 }
2975
2976 let next_out_of_line = decoder.next_out_of_line();
2977 let handles_before = decoder.remaining_handles();
2978 if let Some((inlined, num_bytes, num_handles)) =
2979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2980 {
2981 let member_inline_size = <fidl::encoding::UnboundedVector<
2982 fidl_fuchsia_component_decl_common::ConfigOverride,
2983 > as fidl::encoding::TypeMarker>::inline_size(
2984 decoder.context
2985 );
2986 if inlined != (member_inline_size <= 4) {
2987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2988 }
2989 let inner_offset;
2990 let mut inner_depth = depth.clone();
2991 if inlined {
2992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2993 inner_offset = next_offset;
2994 } else {
2995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2996 inner_depth.increment()?;
2997 }
2998 let val_ref = self.config_overrides.get_or_insert_with(|| {
2999 fidl::new_empty!(
3000 fidl::encoding::UnboundedVector<
3001 fidl_fuchsia_component_decl_common::ConfigOverride,
3002 >,
3003 D
3004 )
3005 });
3006 fidl::decode!(
3007 fidl::encoding::UnboundedVector<
3008 fidl_fuchsia_component_decl_common::ConfigOverride,
3009 >,
3010 D,
3011 val_ref,
3012 decoder,
3013 inner_offset,
3014 inner_depth
3015 )?;
3016 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3017 {
3018 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3019 }
3020 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3021 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3022 }
3023 }
3024
3025 next_offset += envelope_size;
3026
3027 while next_offset < end_offset {
3029 _next_ordinal_to_read += 1;
3030 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3031 next_offset += envelope_size;
3032 }
3033
3034 Ok(())
3035 }
3036 }
3037
3038 impl Config {
3039 #[inline(always)]
3040 fn max_ordinal_present(&self) -> u64 {
3041 if let Some(_) = self.availability {
3042 return 3;
3043 }
3044 if let Some(_) = self.as_ {
3045 return 2;
3046 }
3047 if let Some(_) = self.name {
3048 return 1;
3049 }
3050 0
3051 }
3052 }
3053
3054 impl fidl::encoding::ValueTypeMarker for Config {
3055 type Borrowed<'a> = &'a Self;
3056 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3057 value
3058 }
3059 }
3060
3061 unsafe impl fidl::encoding::TypeMarker for Config {
3062 type Owned = Self;
3063
3064 #[inline(always)]
3065 fn inline_align(_context: fidl::encoding::Context) -> usize {
3066 8
3067 }
3068
3069 #[inline(always)]
3070 fn inline_size(_context: fidl::encoding::Context) -> usize {
3071 16
3072 }
3073 }
3074
3075 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
3076 unsafe fn encode(
3077 self,
3078 encoder: &mut fidl::encoding::Encoder<'_, D>,
3079 offset: usize,
3080 mut depth: fidl::encoding::Depth,
3081 ) -> fidl::Result<()> {
3082 encoder.debug_check_bounds::<Config>(offset);
3083 let max_ordinal: u64 = self.max_ordinal_present();
3085 encoder.write_num(max_ordinal, offset);
3086 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3087 if max_ordinal == 0 {
3089 return Ok(());
3090 }
3091 depth.increment()?;
3092 let envelope_size = 8;
3093 let bytes_len = max_ordinal as usize * envelope_size;
3094 #[allow(unused_variables)]
3095 let offset = encoder.out_of_line_offset(bytes_len);
3096 let mut _prev_end_offset: usize = 0;
3097 if 1 > max_ordinal {
3098 return Ok(());
3099 }
3100
3101 let cur_offset: usize = (1 - 1) * envelope_size;
3104
3105 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3107
3108 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3113 self.name.as_ref().map(
3114 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3115 ),
3116 encoder,
3117 offset + cur_offset,
3118 depth,
3119 )?;
3120
3121 _prev_end_offset = cur_offset + envelope_size;
3122 if 2 > max_ordinal {
3123 return Ok(());
3124 }
3125
3126 let cur_offset: usize = (2 - 1) * envelope_size;
3129
3130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3132
3133 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3138 self.as_.as_ref().map(
3139 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3140 ),
3141 encoder,
3142 offset + cur_offset,
3143 depth,
3144 )?;
3145
3146 _prev_end_offset = cur_offset + envelope_size;
3147 if 3 > max_ordinal {
3148 return Ok(());
3149 }
3150
3151 let cur_offset: usize = (3 - 1) * envelope_size;
3154
3155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3157
3158 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::Availability, D>(
3163 self.availability.as_ref().map(<fidl_fuchsia_component_decl_common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
3164 encoder, offset + cur_offset, depth
3165 )?;
3166
3167 _prev_end_offset = cur_offset + envelope_size;
3168
3169 Ok(())
3170 }
3171 }
3172
3173 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
3174 #[inline(always)]
3175 fn new_empty() -> Self {
3176 Self::default()
3177 }
3178
3179 unsafe fn decode(
3180 &mut self,
3181 decoder: &mut fidl::encoding::Decoder<'_, D>,
3182 offset: usize,
3183 mut depth: fidl::encoding::Depth,
3184 ) -> fidl::Result<()> {
3185 decoder.debug_check_bounds::<Self>(offset);
3186 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3187 None => return Err(fidl::Error::NotNullable),
3188 Some(len) => len,
3189 };
3190 if len == 0 {
3192 return Ok(());
3193 };
3194 depth.increment()?;
3195 let envelope_size = 8;
3196 let bytes_len = len * envelope_size;
3197 let offset = decoder.out_of_line_offset(bytes_len)?;
3198 let mut _next_ordinal_to_read = 0;
3200 let mut next_offset = offset;
3201 let end_offset = offset + bytes_len;
3202 _next_ordinal_to_read += 1;
3203 if next_offset >= end_offset {
3204 return Ok(());
3205 }
3206
3207 while _next_ordinal_to_read < 1 {
3209 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3210 _next_ordinal_to_read += 1;
3211 next_offset += envelope_size;
3212 }
3213
3214 let next_out_of_line = decoder.next_out_of_line();
3215 let handles_before = decoder.remaining_handles();
3216 if let Some((inlined, num_bytes, num_handles)) =
3217 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3218 {
3219 let member_inline_size =
3220 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3221 decoder.context,
3222 );
3223 if inlined != (member_inline_size <= 4) {
3224 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3225 }
3226 let inner_offset;
3227 let mut inner_depth = depth.clone();
3228 if inlined {
3229 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3230 inner_offset = next_offset;
3231 } else {
3232 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3233 inner_depth.increment()?;
3234 }
3235 let val_ref = self
3236 .name
3237 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3238 fidl::decode!(
3239 fidl::encoding::BoundedString<255>,
3240 D,
3241 val_ref,
3242 decoder,
3243 inner_offset,
3244 inner_depth
3245 )?;
3246 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3247 {
3248 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3249 }
3250 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3251 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3252 }
3253 }
3254
3255 next_offset += envelope_size;
3256 _next_ordinal_to_read += 1;
3257 if next_offset >= end_offset {
3258 return Ok(());
3259 }
3260
3261 while _next_ordinal_to_read < 2 {
3263 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3264 _next_ordinal_to_read += 1;
3265 next_offset += envelope_size;
3266 }
3267
3268 let next_out_of_line = decoder.next_out_of_line();
3269 let handles_before = decoder.remaining_handles();
3270 if let Some((inlined, num_bytes, num_handles)) =
3271 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3272 {
3273 let member_inline_size =
3274 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3275 decoder.context,
3276 );
3277 if inlined != (member_inline_size <= 4) {
3278 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3279 }
3280 let inner_offset;
3281 let mut inner_depth = depth.clone();
3282 if inlined {
3283 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3284 inner_offset = next_offset;
3285 } else {
3286 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3287 inner_depth.increment()?;
3288 }
3289 let val_ref = self
3290 .as_
3291 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3292 fidl::decode!(
3293 fidl::encoding::BoundedString<255>,
3294 D,
3295 val_ref,
3296 decoder,
3297 inner_offset,
3298 inner_depth
3299 )?;
3300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3301 {
3302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3303 }
3304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3306 }
3307 }
3308
3309 next_offset += envelope_size;
3310 _next_ordinal_to_read += 1;
3311 if next_offset >= end_offset {
3312 return Ok(());
3313 }
3314
3315 while _next_ordinal_to_read < 3 {
3317 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3318 _next_ordinal_to_read += 1;
3319 next_offset += envelope_size;
3320 }
3321
3322 let next_out_of_line = decoder.next_out_of_line();
3323 let handles_before = decoder.remaining_handles();
3324 if let Some((inlined, num_bytes, num_handles)) =
3325 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3326 {
3327 let member_inline_size = <fidl_fuchsia_component_decl_common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3328 if inlined != (member_inline_size <= 4) {
3329 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3330 }
3331 let inner_offset;
3332 let mut inner_depth = depth.clone();
3333 if inlined {
3334 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3335 inner_offset = next_offset;
3336 } else {
3337 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3338 inner_depth.increment()?;
3339 }
3340 let val_ref = self.availability.get_or_insert_with(|| {
3341 fidl::new_empty!(fidl_fuchsia_component_decl_common::Availability, D)
3342 });
3343 fidl::decode!(
3344 fidl_fuchsia_component_decl_common::Availability,
3345 D,
3346 val_ref,
3347 decoder,
3348 inner_offset,
3349 inner_depth
3350 )?;
3351 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3352 {
3353 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3354 }
3355 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3356 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3357 }
3358 }
3359
3360 next_offset += envelope_size;
3361
3362 while next_offset < end_offset {
3364 _next_ordinal_to_read += 1;
3365 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3366 next_offset += envelope_size;
3367 }
3368
3369 Ok(())
3370 }
3371 }
3372
3373 impl Dictionary {
3374 #[inline(always)]
3375 fn max_ordinal_present(&self) -> u64 {
3376 if let Some(_) = self.path {
3377 return 6;
3378 }
3379 if let Some(_) = self.availability {
3380 return 4;
3381 }
3382 if let Some(_) = self.type_ {
3383 return 3;
3384 }
3385 if let Some(_) = self.as_ {
3386 return 2;
3387 }
3388 if let Some(_) = self.name {
3389 return 1;
3390 }
3391 0
3392 }
3393 }
3394
3395 impl fidl::encoding::ValueTypeMarker for Dictionary {
3396 type Borrowed<'a> = &'a Self;
3397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3398 value
3399 }
3400 }
3401
3402 unsafe impl fidl::encoding::TypeMarker for Dictionary {
3403 type Owned = Self;
3404
3405 #[inline(always)]
3406 fn inline_align(_context: fidl::encoding::Context) -> usize {
3407 8
3408 }
3409
3410 #[inline(always)]
3411 fn inline_size(_context: fidl::encoding::Context) -> usize {
3412 16
3413 }
3414 }
3415
3416 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Dictionary, D>
3417 for &Dictionary
3418 {
3419 unsafe fn encode(
3420 self,
3421 encoder: &mut fidl::encoding::Encoder<'_, D>,
3422 offset: usize,
3423 mut depth: fidl::encoding::Depth,
3424 ) -> fidl::Result<()> {
3425 encoder.debug_check_bounds::<Dictionary>(offset);
3426 let max_ordinal: u64 = self.max_ordinal_present();
3428 encoder.write_num(max_ordinal, offset);
3429 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3430 if max_ordinal == 0 {
3432 return Ok(());
3433 }
3434 depth.increment()?;
3435 let envelope_size = 8;
3436 let bytes_len = max_ordinal as usize * envelope_size;
3437 #[allow(unused_variables)]
3438 let offset = encoder.out_of_line_offset(bytes_len);
3439 let mut _prev_end_offset: usize = 0;
3440 if 1 > max_ordinal {
3441 return Ok(());
3442 }
3443
3444 let cur_offset: usize = (1 - 1) * envelope_size;
3447
3448 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3450
3451 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3456 self.name.as_ref().map(
3457 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3458 ),
3459 encoder,
3460 offset + cur_offset,
3461 depth,
3462 )?;
3463
3464 _prev_end_offset = cur_offset + envelope_size;
3465 if 2 > max_ordinal {
3466 return Ok(());
3467 }
3468
3469 let cur_offset: usize = (2 - 1) * envelope_size;
3472
3473 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3475
3476 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3481 self.as_.as_ref().map(
3482 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3483 ),
3484 encoder,
3485 offset + cur_offset,
3486 depth,
3487 )?;
3488
3489 _prev_end_offset = cur_offset + envelope_size;
3490 if 3 > max_ordinal {
3491 return Ok(());
3492 }
3493
3494 let cur_offset: usize = (3 - 1) * envelope_size;
3497
3498 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3500
3501 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::DependencyType, D>(
3506 self.type_.as_ref().map(<fidl_fuchsia_component_decl_common::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
3507 encoder, offset + cur_offset, depth
3508 )?;
3509
3510 _prev_end_offset = cur_offset + envelope_size;
3511 if 4 > max_ordinal {
3512 return Ok(());
3513 }
3514
3515 let cur_offset: usize = (4 - 1) * envelope_size;
3518
3519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3521
3522 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::Availability, D>(
3527 self.availability.as_ref().map(<fidl_fuchsia_component_decl_common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
3528 encoder, offset + cur_offset, depth
3529 )?;
3530
3531 _prev_end_offset = cur_offset + envelope_size;
3532 if 6 > max_ordinal {
3533 return Ok(());
3534 }
3535
3536 let cur_offset: usize = (6 - 1) * envelope_size;
3539
3540 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3542
3543 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
3548 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
3549 encoder, offset + cur_offset, depth
3550 )?;
3551
3552 _prev_end_offset = cur_offset + envelope_size;
3553
3554 Ok(())
3555 }
3556 }
3557
3558 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Dictionary {
3559 #[inline(always)]
3560 fn new_empty() -> Self {
3561 Self::default()
3562 }
3563
3564 unsafe fn decode(
3565 &mut self,
3566 decoder: &mut fidl::encoding::Decoder<'_, D>,
3567 offset: usize,
3568 mut depth: fidl::encoding::Depth,
3569 ) -> fidl::Result<()> {
3570 decoder.debug_check_bounds::<Self>(offset);
3571 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3572 None => return Err(fidl::Error::NotNullable),
3573 Some(len) => len,
3574 };
3575 if len == 0 {
3577 return Ok(());
3578 };
3579 depth.increment()?;
3580 let envelope_size = 8;
3581 let bytes_len = len * envelope_size;
3582 let offset = decoder.out_of_line_offset(bytes_len)?;
3583 let mut _next_ordinal_to_read = 0;
3585 let mut next_offset = offset;
3586 let end_offset = offset + bytes_len;
3587 _next_ordinal_to_read += 1;
3588 if next_offset >= end_offset {
3589 return Ok(());
3590 }
3591
3592 while _next_ordinal_to_read < 1 {
3594 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3595 _next_ordinal_to_read += 1;
3596 next_offset += envelope_size;
3597 }
3598
3599 let next_out_of_line = decoder.next_out_of_line();
3600 let handles_before = decoder.remaining_handles();
3601 if let Some((inlined, num_bytes, num_handles)) =
3602 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3603 {
3604 let member_inline_size =
3605 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3606 decoder.context,
3607 );
3608 if inlined != (member_inline_size <= 4) {
3609 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3610 }
3611 let inner_offset;
3612 let mut inner_depth = depth.clone();
3613 if inlined {
3614 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3615 inner_offset = next_offset;
3616 } else {
3617 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3618 inner_depth.increment()?;
3619 }
3620 let val_ref = self
3621 .name
3622 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3623 fidl::decode!(
3624 fidl::encoding::BoundedString<255>,
3625 D,
3626 val_ref,
3627 decoder,
3628 inner_offset,
3629 inner_depth
3630 )?;
3631 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3632 {
3633 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3634 }
3635 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3636 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3637 }
3638 }
3639
3640 next_offset += envelope_size;
3641 _next_ordinal_to_read += 1;
3642 if next_offset >= end_offset {
3643 return Ok(());
3644 }
3645
3646 while _next_ordinal_to_read < 2 {
3648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3649 _next_ordinal_to_read += 1;
3650 next_offset += envelope_size;
3651 }
3652
3653 let next_out_of_line = decoder.next_out_of_line();
3654 let handles_before = decoder.remaining_handles();
3655 if let Some((inlined, num_bytes, num_handles)) =
3656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3657 {
3658 let member_inline_size =
3659 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
3660 decoder.context,
3661 );
3662 if inlined != (member_inline_size <= 4) {
3663 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3664 }
3665 let inner_offset;
3666 let mut inner_depth = depth.clone();
3667 if inlined {
3668 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3669 inner_offset = next_offset;
3670 } else {
3671 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3672 inner_depth.increment()?;
3673 }
3674 let val_ref = self
3675 .as_
3676 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
3677 fidl::decode!(
3678 fidl::encoding::BoundedString<255>,
3679 D,
3680 val_ref,
3681 decoder,
3682 inner_offset,
3683 inner_depth
3684 )?;
3685 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3686 {
3687 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3688 }
3689 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3690 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3691 }
3692 }
3693
3694 next_offset += envelope_size;
3695 _next_ordinal_to_read += 1;
3696 if next_offset >= end_offset {
3697 return Ok(());
3698 }
3699
3700 while _next_ordinal_to_read < 3 {
3702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3703 _next_ordinal_to_read += 1;
3704 next_offset += envelope_size;
3705 }
3706
3707 let next_out_of_line = decoder.next_out_of_line();
3708 let handles_before = decoder.remaining_handles();
3709 if let Some((inlined, num_bytes, num_handles)) =
3710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3711 {
3712 let member_inline_size = <fidl_fuchsia_component_decl_common::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3713 if inlined != (member_inline_size <= 4) {
3714 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3715 }
3716 let inner_offset;
3717 let mut inner_depth = depth.clone();
3718 if inlined {
3719 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3720 inner_offset = next_offset;
3721 } else {
3722 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3723 inner_depth.increment()?;
3724 }
3725 let val_ref = self.type_.get_or_insert_with(|| {
3726 fidl::new_empty!(fidl_fuchsia_component_decl_common::DependencyType, D)
3727 });
3728 fidl::decode!(
3729 fidl_fuchsia_component_decl_common::DependencyType,
3730 D,
3731 val_ref,
3732 decoder,
3733 inner_offset,
3734 inner_depth
3735 )?;
3736 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3737 {
3738 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3739 }
3740 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3741 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3742 }
3743 }
3744
3745 next_offset += envelope_size;
3746 _next_ordinal_to_read += 1;
3747 if next_offset >= end_offset {
3748 return Ok(());
3749 }
3750
3751 while _next_ordinal_to_read < 4 {
3753 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3754 _next_ordinal_to_read += 1;
3755 next_offset += envelope_size;
3756 }
3757
3758 let next_out_of_line = decoder.next_out_of_line();
3759 let handles_before = decoder.remaining_handles();
3760 if let Some((inlined, num_bytes, num_handles)) =
3761 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3762 {
3763 let member_inline_size = <fidl_fuchsia_component_decl_common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3764 if inlined != (member_inline_size <= 4) {
3765 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3766 }
3767 let inner_offset;
3768 let mut inner_depth = depth.clone();
3769 if inlined {
3770 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3771 inner_offset = next_offset;
3772 } else {
3773 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3774 inner_depth.increment()?;
3775 }
3776 let val_ref = self.availability.get_or_insert_with(|| {
3777 fidl::new_empty!(fidl_fuchsia_component_decl_common::Availability, D)
3778 });
3779 fidl::decode!(
3780 fidl_fuchsia_component_decl_common::Availability,
3781 D,
3782 val_ref,
3783 decoder,
3784 inner_offset,
3785 inner_depth
3786 )?;
3787 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3788 {
3789 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3790 }
3791 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3792 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3793 }
3794 }
3795
3796 next_offset += envelope_size;
3797 _next_ordinal_to_read += 1;
3798 if next_offset >= end_offset {
3799 return Ok(());
3800 }
3801
3802 while _next_ordinal_to_read < 6 {
3804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3805 _next_ordinal_to_read += 1;
3806 next_offset += envelope_size;
3807 }
3808
3809 let next_out_of_line = decoder.next_out_of_line();
3810 let handles_before = decoder.remaining_handles();
3811 if let Some((inlined, num_bytes, num_handles)) =
3812 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3813 {
3814 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3815 if inlined != (member_inline_size <= 4) {
3816 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3817 }
3818 let inner_offset;
3819 let mut inner_depth = depth.clone();
3820 if inlined {
3821 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3822 inner_offset = next_offset;
3823 } else {
3824 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3825 inner_depth.increment()?;
3826 }
3827 let val_ref = self.path.get_or_insert_with(|| {
3828 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
3829 });
3830 fidl::decode!(
3831 fidl::encoding::BoundedString<4095>,
3832 D,
3833 val_ref,
3834 decoder,
3835 inner_offset,
3836 inner_depth
3837 )?;
3838 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3839 {
3840 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3841 }
3842 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3843 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3844 }
3845 }
3846
3847 next_offset += envelope_size;
3848
3849 while next_offset < end_offset {
3851 _next_ordinal_to_read += 1;
3852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3853 next_offset += envelope_size;
3854 }
3855
3856 Ok(())
3857 }
3858 }
3859
3860 impl Directory {
3861 #[inline(always)]
3862 fn max_ordinal_present(&self) -> u64 {
3863 if let Some(_) = self.availability {
3864 return 7;
3865 }
3866 if let Some(_) = self.path {
3867 return 6;
3868 }
3869 if let Some(_) = self.rights {
3870 return 5;
3871 }
3872 if let Some(_) = self.subdir {
3873 return 4;
3874 }
3875 if let Some(_) = self.type_ {
3876 return 3;
3877 }
3878 if let Some(_) = self.as_ {
3879 return 2;
3880 }
3881 if let Some(_) = self.name {
3882 return 1;
3883 }
3884 0
3885 }
3886 }
3887
3888 impl fidl::encoding::ValueTypeMarker for Directory {
3889 type Borrowed<'a> = &'a Self;
3890 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3891 value
3892 }
3893 }
3894
3895 unsafe impl fidl::encoding::TypeMarker for Directory {
3896 type Owned = Self;
3897
3898 #[inline(always)]
3899 fn inline_align(_context: fidl::encoding::Context) -> usize {
3900 8
3901 }
3902
3903 #[inline(always)]
3904 fn inline_size(_context: fidl::encoding::Context) -> usize {
3905 16
3906 }
3907 }
3908
3909 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Directory, D>
3910 for &Directory
3911 {
3912 unsafe fn encode(
3913 self,
3914 encoder: &mut fidl::encoding::Encoder<'_, D>,
3915 offset: usize,
3916 mut depth: fidl::encoding::Depth,
3917 ) -> fidl::Result<()> {
3918 encoder.debug_check_bounds::<Directory>(offset);
3919 let max_ordinal: u64 = self.max_ordinal_present();
3921 encoder.write_num(max_ordinal, offset);
3922 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3923 if max_ordinal == 0 {
3925 return Ok(());
3926 }
3927 depth.increment()?;
3928 let envelope_size = 8;
3929 let bytes_len = max_ordinal as usize * envelope_size;
3930 #[allow(unused_variables)]
3931 let offset = encoder.out_of_line_offset(bytes_len);
3932 let mut _prev_end_offset: usize = 0;
3933 if 1 > max_ordinal {
3934 return Ok(());
3935 }
3936
3937 let cur_offset: usize = (1 - 1) * envelope_size;
3940
3941 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3943
3944 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3949 self.name.as_ref().map(
3950 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3951 ),
3952 encoder,
3953 offset + cur_offset,
3954 depth,
3955 )?;
3956
3957 _prev_end_offset = cur_offset + envelope_size;
3958 if 2 > max_ordinal {
3959 return Ok(());
3960 }
3961
3962 let cur_offset: usize = (2 - 1) * envelope_size;
3965
3966 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3968
3969 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
3974 self.as_.as_ref().map(
3975 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
3976 ),
3977 encoder,
3978 offset + cur_offset,
3979 depth,
3980 )?;
3981
3982 _prev_end_offset = cur_offset + envelope_size;
3983 if 3 > max_ordinal {
3984 return Ok(());
3985 }
3986
3987 let cur_offset: usize = (3 - 1) * envelope_size;
3990
3991 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3993
3994 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::DependencyType, D>(
3999 self.type_.as_ref().map(<fidl_fuchsia_component_decl_common::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
4000 encoder, offset + cur_offset, depth
4001 )?;
4002
4003 _prev_end_offset = cur_offset + envelope_size;
4004 if 4 > max_ordinal {
4005 return Ok(());
4006 }
4007
4008 let cur_offset: usize = (4 - 1) * envelope_size;
4011
4012 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4014
4015 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
4020 self.subdir.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
4021 encoder, offset + cur_offset, depth
4022 )?;
4023
4024 _prev_end_offset = cur_offset + envelope_size;
4025 if 5 > max_ordinal {
4026 return Ok(());
4027 }
4028
4029 let cur_offset: usize = (5 - 1) * envelope_size;
4032
4033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4035
4036 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io_common::Operations, D>(
4041 self.rights.as_ref().map(
4042 <fidl_fuchsia_io_common::Operations as fidl::encoding::ValueTypeMarker>::borrow,
4043 ),
4044 encoder,
4045 offset + cur_offset,
4046 depth,
4047 )?;
4048
4049 _prev_end_offset = cur_offset + envelope_size;
4050 if 6 > max_ordinal {
4051 return Ok(());
4052 }
4053
4054 let cur_offset: usize = (6 - 1) * envelope_size;
4057
4058 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4060
4061 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
4066 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
4067 encoder, offset + cur_offset, depth
4068 )?;
4069
4070 _prev_end_offset = cur_offset + envelope_size;
4071 if 7 > max_ordinal {
4072 return Ok(());
4073 }
4074
4075 let cur_offset: usize = (7 - 1) * envelope_size;
4078
4079 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4081
4082 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::Availability, D>(
4087 self.availability.as_ref().map(<fidl_fuchsia_component_decl_common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
4088 encoder, offset + cur_offset, depth
4089 )?;
4090
4091 _prev_end_offset = cur_offset + envelope_size;
4092
4093 Ok(())
4094 }
4095 }
4096
4097 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Directory {
4098 #[inline(always)]
4099 fn new_empty() -> Self {
4100 Self::default()
4101 }
4102
4103 unsafe fn decode(
4104 &mut self,
4105 decoder: &mut fidl::encoding::Decoder<'_, D>,
4106 offset: usize,
4107 mut depth: fidl::encoding::Depth,
4108 ) -> fidl::Result<()> {
4109 decoder.debug_check_bounds::<Self>(offset);
4110 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4111 None => return Err(fidl::Error::NotNullable),
4112 Some(len) => len,
4113 };
4114 if len == 0 {
4116 return Ok(());
4117 };
4118 depth.increment()?;
4119 let envelope_size = 8;
4120 let bytes_len = len * envelope_size;
4121 let offset = decoder.out_of_line_offset(bytes_len)?;
4122 let mut _next_ordinal_to_read = 0;
4124 let mut next_offset = offset;
4125 let end_offset = offset + bytes_len;
4126 _next_ordinal_to_read += 1;
4127 if next_offset >= end_offset {
4128 return Ok(());
4129 }
4130
4131 while _next_ordinal_to_read < 1 {
4133 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4134 _next_ordinal_to_read += 1;
4135 next_offset += envelope_size;
4136 }
4137
4138 let next_out_of_line = decoder.next_out_of_line();
4139 let handles_before = decoder.remaining_handles();
4140 if let Some((inlined, num_bytes, num_handles)) =
4141 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4142 {
4143 let member_inline_size =
4144 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4145 decoder.context,
4146 );
4147 if inlined != (member_inline_size <= 4) {
4148 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4149 }
4150 let inner_offset;
4151 let mut inner_depth = depth.clone();
4152 if inlined {
4153 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4154 inner_offset = next_offset;
4155 } else {
4156 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4157 inner_depth.increment()?;
4158 }
4159 let val_ref = self
4160 .name
4161 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4162 fidl::decode!(
4163 fidl::encoding::BoundedString<255>,
4164 D,
4165 val_ref,
4166 decoder,
4167 inner_offset,
4168 inner_depth
4169 )?;
4170 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4171 {
4172 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4173 }
4174 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4175 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4176 }
4177 }
4178
4179 next_offset += envelope_size;
4180 _next_ordinal_to_read += 1;
4181 if next_offset >= end_offset {
4182 return Ok(());
4183 }
4184
4185 while _next_ordinal_to_read < 2 {
4187 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4188 _next_ordinal_to_read += 1;
4189 next_offset += envelope_size;
4190 }
4191
4192 let next_out_of_line = decoder.next_out_of_line();
4193 let handles_before = decoder.remaining_handles();
4194 if let Some((inlined, num_bytes, num_handles)) =
4195 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4196 {
4197 let member_inline_size =
4198 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4199 decoder.context,
4200 );
4201 if inlined != (member_inline_size <= 4) {
4202 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4203 }
4204 let inner_offset;
4205 let mut inner_depth = depth.clone();
4206 if inlined {
4207 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4208 inner_offset = next_offset;
4209 } else {
4210 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4211 inner_depth.increment()?;
4212 }
4213 let val_ref = self
4214 .as_
4215 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4216 fidl::decode!(
4217 fidl::encoding::BoundedString<255>,
4218 D,
4219 val_ref,
4220 decoder,
4221 inner_offset,
4222 inner_depth
4223 )?;
4224 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4225 {
4226 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4227 }
4228 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4229 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4230 }
4231 }
4232
4233 next_offset += envelope_size;
4234 _next_ordinal_to_read += 1;
4235 if next_offset >= end_offset {
4236 return Ok(());
4237 }
4238
4239 while _next_ordinal_to_read < 3 {
4241 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4242 _next_ordinal_to_read += 1;
4243 next_offset += envelope_size;
4244 }
4245
4246 let next_out_of_line = decoder.next_out_of_line();
4247 let handles_before = decoder.remaining_handles();
4248 if let Some((inlined, num_bytes, num_handles)) =
4249 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4250 {
4251 let member_inline_size = <fidl_fuchsia_component_decl_common::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4252 if inlined != (member_inline_size <= 4) {
4253 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4254 }
4255 let inner_offset;
4256 let mut inner_depth = depth.clone();
4257 if inlined {
4258 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4259 inner_offset = next_offset;
4260 } else {
4261 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4262 inner_depth.increment()?;
4263 }
4264 let val_ref = self.type_.get_or_insert_with(|| {
4265 fidl::new_empty!(fidl_fuchsia_component_decl_common::DependencyType, D)
4266 });
4267 fidl::decode!(
4268 fidl_fuchsia_component_decl_common::DependencyType,
4269 D,
4270 val_ref,
4271 decoder,
4272 inner_offset,
4273 inner_depth
4274 )?;
4275 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4276 {
4277 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4278 }
4279 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4280 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4281 }
4282 }
4283
4284 next_offset += envelope_size;
4285 _next_ordinal_to_read += 1;
4286 if next_offset >= end_offset {
4287 return Ok(());
4288 }
4289
4290 while _next_ordinal_to_read < 4 {
4292 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4293 _next_ordinal_to_read += 1;
4294 next_offset += envelope_size;
4295 }
4296
4297 let next_out_of_line = decoder.next_out_of_line();
4298 let handles_before = decoder.remaining_handles();
4299 if let Some((inlined, num_bytes, num_handles)) =
4300 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4301 {
4302 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4303 if inlined != (member_inline_size <= 4) {
4304 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4305 }
4306 let inner_offset;
4307 let mut inner_depth = depth.clone();
4308 if inlined {
4309 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4310 inner_offset = next_offset;
4311 } else {
4312 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4313 inner_depth.increment()?;
4314 }
4315 let val_ref = self.subdir.get_or_insert_with(|| {
4316 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
4317 });
4318 fidl::decode!(
4319 fidl::encoding::BoundedString<4095>,
4320 D,
4321 val_ref,
4322 decoder,
4323 inner_offset,
4324 inner_depth
4325 )?;
4326 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4327 {
4328 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4329 }
4330 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4331 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4332 }
4333 }
4334
4335 next_offset += envelope_size;
4336 _next_ordinal_to_read += 1;
4337 if next_offset >= end_offset {
4338 return Ok(());
4339 }
4340
4341 while _next_ordinal_to_read < 5 {
4343 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4344 _next_ordinal_to_read += 1;
4345 next_offset += envelope_size;
4346 }
4347
4348 let next_out_of_line = decoder.next_out_of_line();
4349 let handles_before = decoder.remaining_handles();
4350 if let Some((inlined, num_bytes, num_handles)) =
4351 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4352 {
4353 let member_inline_size =
4354 <fidl_fuchsia_io_common::Operations as fidl::encoding::TypeMarker>::inline_size(
4355 decoder.context,
4356 );
4357 if inlined != (member_inline_size <= 4) {
4358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4359 }
4360 let inner_offset;
4361 let mut inner_depth = depth.clone();
4362 if inlined {
4363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4364 inner_offset = next_offset;
4365 } else {
4366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4367 inner_depth.increment()?;
4368 }
4369 let val_ref = self
4370 .rights
4371 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_io_common::Operations, D));
4372 fidl::decode!(
4373 fidl_fuchsia_io_common::Operations,
4374 D,
4375 val_ref,
4376 decoder,
4377 inner_offset,
4378 inner_depth
4379 )?;
4380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4381 {
4382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4383 }
4384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4386 }
4387 }
4388
4389 next_offset += envelope_size;
4390 _next_ordinal_to_read += 1;
4391 if next_offset >= end_offset {
4392 return Ok(());
4393 }
4394
4395 while _next_ordinal_to_read < 6 {
4397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4398 _next_ordinal_to_read += 1;
4399 next_offset += envelope_size;
4400 }
4401
4402 let next_out_of_line = decoder.next_out_of_line();
4403 let handles_before = decoder.remaining_handles();
4404 if let Some((inlined, num_bytes, num_handles)) =
4405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4406 {
4407 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4408 if inlined != (member_inline_size <= 4) {
4409 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4410 }
4411 let inner_offset;
4412 let mut inner_depth = depth.clone();
4413 if inlined {
4414 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4415 inner_offset = next_offset;
4416 } else {
4417 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4418 inner_depth.increment()?;
4419 }
4420 let val_ref = self.path.get_or_insert_with(|| {
4421 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
4422 });
4423 fidl::decode!(
4424 fidl::encoding::BoundedString<4095>,
4425 D,
4426 val_ref,
4427 decoder,
4428 inner_offset,
4429 inner_depth
4430 )?;
4431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4432 {
4433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4434 }
4435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4437 }
4438 }
4439
4440 next_offset += envelope_size;
4441 _next_ordinal_to_read += 1;
4442 if next_offset >= end_offset {
4443 return Ok(());
4444 }
4445
4446 while _next_ordinal_to_read < 7 {
4448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4449 _next_ordinal_to_read += 1;
4450 next_offset += envelope_size;
4451 }
4452
4453 let next_out_of_line = decoder.next_out_of_line();
4454 let handles_before = decoder.remaining_handles();
4455 if let Some((inlined, num_bytes, num_handles)) =
4456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4457 {
4458 let member_inline_size = <fidl_fuchsia_component_decl_common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4459 if inlined != (member_inline_size <= 4) {
4460 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4461 }
4462 let inner_offset;
4463 let mut inner_depth = depth.clone();
4464 if inlined {
4465 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4466 inner_offset = next_offset;
4467 } else {
4468 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4469 inner_depth.increment()?;
4470 }
4471 let val_ref = self.availability.get_or_insert_with(|| {
4472 fidl::new_empty!(fidl_fuchsia_component_decl_common::Availability, D)
4473 });
4474 fidl::decode!(
4475 fidl_fuchsia_component_decl_common::Availability,
4476 D,
4477 val_ref,
4478 decoder,
4479 inner_offset,
4480 inner_depth
4481 )?;
4482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4483 {
4484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4485 }
4486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4488 }
4489 }
4490
4491 next_offset += envelope_size;
4492
4493 while next_offset < end_offset {
4495 _next_ordinal_to_read += 1;
4496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4497 next_offset += envelope_size;
4498 }
4499
4500 Ok(())
4501 }
4502 }
4503
4504 impl Event {
4505 #[inline(always)]
4506 fn max_ordinal_present(&self) -> u64 {
4507 if let Some(_) = self.availability {
4508 return 4;
4509 }
4510 if let Some(_) = self.filter {
4511 return 3;
4512 }
4513 if let Some(_) = self.as_ {
4514 return 2;
4515 }
4516 if let Some(_) = self.name {
4517 return 1;
4518 }
4519 0
4520 }
4521 }
4522
4523 impl fidl::encoding::ValueTypeMarker for Event {
4524 type Borrowed<'a> = &'a Self;
4525 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4526 value
4527 }
4528 }
4529
4530 unsafe impl fidl::encoding::TypeMarker for Event {
4531 type Owned = Self;
4532
4533 #[inline(always)]
4534 fn inline_align(_context: fidl::encoding::Context) -> usize {
4535 8
4536 }
4537
4538 #[inline(always)]
4539 fn inline_size(_context: fidl::encoding::Context) -> usize {
4540 16
4541 }
4542 }
4543
4544 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Event, D> for &Event {
4545 unsafe fn encode(
4546 self,
4547 encoder: &mut fidl::encoding::Encoder<'_, D>,
4548 offset: usize,
4549 mut depth: fidl::encoding::Depth,
4550 ) -> fidl::Result<()> {
4551 encoder.debug_check_bounds::<Event>(offset);
4552 let max_ordinal: u64 = self.max_ordinal_present();
4554 encoder.write_num(max_ordinal, offset);
4555 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4556 if max_ordinal == 0 {
4558 return Ok(());
4559 }
4560 depth.increment()?;
4561 let envelope_size = 8;
4562 let bytes_len = max_ordinal as usize * envelope_size;
4563 #[allow(unused_variables)]
4564 let offset = encoder.out_of_line_offset(bytes_len);
4565 let mut _prev_end_offset: usize = 0;
4566 if 1 > max_ordinal {
4567 return Ok(());
4568 }
4569
4570 let cur_offset: usize = (1 - 1) * envelope_size;
4573
4574 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4576
4577 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4582 self.name.as_ref().map(
4583 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4584 ),
4585 encoder,
4586 offset + cur_offset,
4587 depth,
4588 )?;
4589
4590 _prev_end_offset = cur_offset + envelope_size;
4591 if 2 > max_ordinal {
4592 return Ok(());
4593 }
4594
4595 let cur_offset: usize = (2 - 1) * envelope_size;
4598
4599 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4601
4602 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4607 self.as_.as_ref().map(
4608 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4609 ),
4610 encoder,
4611 offset + cur_offset,
4612 depth,
4613 )?;
4614
4615 _prev_end_offset = cur_offset + envelope_size;
4616 if 3 > max_ordinal {
4617 return Ok(());
4618 }
4619
4620 let cur_offset: usize = (3 - 1) * envelope_size;
4623
4624 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4626
4627 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data_common::Dictionary, D>(
4632 self.filter.as_ref().map(<fidl_fuchsia_data_common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
4633 encoder, offset + cur_offset, depth
4634 )?;
4635
4636 _prev_end_offset = cur_offset + envelope_size;
4637 if 4 > max_ordinal {
4638 return Ok(());
4639 }
4640
4641 let cur_offset: usize = (4 - 1) * envelope_size;
4644
4645 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4647
4648 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::Availability, D>(
4653 self.availability.as_ref().map(<fidl_fuchsia_component_decl_common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
4654 encoder, offset + cur_offset, depth
4655 )?;
4656
4657 _prev_end_offset = cur_offset + envelope_size;
4658
4659 Ok(())
4660 }
4661 }
4662
4663 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Event {
4664 #[inline(always)]
4665 fn new_empty() -> Self {
4666 Self::default()
4667 }
4668
4669 unsafe fn decode(
4670 &mut self,
4671 decoder: &mut fidl::encoding::Decoder<'_, D>,
4672 offset: usize,
4673 mut depth: fidl::encoding::Depth,
4674 ) -> fidl::Result<()> {
4675 decoder.debug_check_bounds::<Self>(offset);
4676 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4677 None => return Err(fidl::Error::NotNullable),
4678 Some(len) => len,
4679 };
4680 if len == 0 {
4682 return Ok(());
4683 };
4684 depth.increment()?;
4685 let envelope_size = 8;
4686 let bytes_len = len * envelope_size;
4687 let offset = decoder.out_of_line_offset(bytes_len)?;
4688 let mut _next_ordinal_to_read = 0;
4690 let mut next_offset = offset;
4691 let end_offset = offset + bytes_len;
4692 _next_ordinal_to_read += 1;
4693 if next_offset >= end_offset {
4694 return Ok(());
4695 }
4696
4697 while _next_ordinal_to_read < 1 {
4699 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4700 _next_ordinal_to_read += 1;
4701 next_offset += envelope_size;
4702 }
4703
4704 let next_out_of_line = decoder.next_out_of_line();
4705 let handles_before = decoder.remaining_handles();
4706 if let Some((inlined, num_bytes, num_handles)) =
4707 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4708 {
4709 let member_inline_size =
4710 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4711 decoder.context,
4712 );
4713 if inlined != (member_inline_size <= 4) {
4714 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4715 }
4716 let inner_offset;
4717 let mut inner_depth = depth.clone();
4718 if inlined {
4719 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4720 inner_offset = next_offset;
4721 } else {
4722 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4723 inner_depth.increment()?;
4724 }
4725 let val_ref = self
4726 .name
4727 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4728 fidl::decode!(
4729 fidl::encoding::BoundedString<255>,
4730 D,
4731 val_ref,
4732 decoder,
4733 inner_offset,
4734 inner_depth
4735 )?;
4736 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4737 {
4738 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4739 }
4740 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4741 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4742 }
4743 }
4744
4745 next_offset += envelope_size;
4746 _next_ordinal_to_read += 1;
4747 if next_offset >= end_offset {
4748 return Ok(());
4749 }
4750
4751 while _next_ordinal_to_read < 2 {
4753 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4754 _next_ordinal_to_read += 1;
4755 next_offset += envelope_size;
4756 }
4757
4758 let next_out_of_line = decoder.next_out_of_line();
4759 let handles_before = decoder.remaining_handles();
4760 if let Some((inlined, num_bytes, num_handles)) =
4761 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4762 {
4763 let member_inline_size =
4764 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
4765 decoder.context,
4766 );
4767 if inlined != (member_inline_size <= 4) {
4768 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4769 }
4770 let inner_offset;
4771 let mut inner_depth = depth.clone();
4772 if inlined {
4773 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4774 inner_offset = next_offset;
4775 } else {
4776 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4777 inner_depth.increment()?;
4778 }
4779 let val_ref = self
4780 .as_
4781 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
4782 fidl::decode!(
4783 fidl::encoding::BoundedString<255>,
4784 D,
4785 val_ref,
4786 decoder,
4787 inner_offset,
4788 inner_depth
4789 )?;
4790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4791 {
4792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4793 }
4794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4796 }
4797 }
4798
4799 next_offset += envelope_size;
4800 _next_ordinal_to_read += 1;
4801 if next_offset >= end_offset {
4802 return Ok(());
4803 }
4804
4805 while _next_ordinal_to_read < 3 {
4807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4808 _next_ordinal_to_read += 1;
4809 next_offset += envelope_size;
4810 }
4811
4812 let next_out_of_line = decoder.next_out_of_line();
4813 let handles_before = decoder.remaining_handles();
4814 if let Some((inlined, num_bytes, num_handles)) =
4815 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4816 {
4817 let member_inline_size = <fidl_fuchsia_data_common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4818 if inlined != (member_inline_size <= 4) {
4819 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4820 }
4821 let inner_offset;
4822 let mut inner_depth = depth.clone();
4823 if inlined {
4824 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4825 inner_offset = next_offset;
4826 } else {
4827 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4828 inner_depth.increment()?;
4829 }
4830 let val_ref = self.filter.get_or_insert_with(|| {
4831 fidl::new_empty!(fidl_fuchsia_data_common::Dictionary, D)
4832 });
4833 fidl::decode!(
4834 fidl_fuchsia_data_common::Dictionary,
4835 D,
4836 val_ref,
4837 decoder,
4838 inner_offset,
4839 inner_depth
4840 )?;
4841 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4842 {
4843 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4844 }
4845 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4846 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4847 }
4848 }
4849
4850 next_offset += envelope_size;
4851 _next_ordinal_to_read += 1;
4852 if next_offset >= end_offset {
4853 return Ok(());
4854 }
4855
4856 while _next_ordinal_to_read < 4 {
4858 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4859 _next_ordinal_to_read += 1;
4860 next_offset += envelope_size;
4861 }
4862
4863 let next_out_of_line = decoder.next_out_of_line();
4864 let handles_before = decoder.remaining_handles();
4865 if let Some((inlined, num_bytes, num_handles)) =
4866 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4867 {
4868 let member_inline_size = <fidl_fuchsia_component_decl_common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4869 if inlined != (member_inline_size <= 4) {
4870 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4871 }
4872 let inner_offset;
4873 let mut inner_depth = depth.clone();
4874 if inlined {
4875 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4876 inner_offset = next_offset;
4877 } else {
4878 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4879 inner_depth.increment()?;
4880 }
4881 let val_ref = self.availability.get_or_insert_with(|| {
4882 fidl::new_empty!(fidl_fuchsia_component_decl_common::Availability, D)
4883 });
4884 fidl::decode!(
4885 fidl_fuchsia_component_decl_common::Availability,
4886 D,
4887 val_ref,
4888 decoder,
4889 inner_offset,
4890 inner_depth
4891 )?;
4892 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4893 {
4894 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4895 }
4896 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4897 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4898 }
4899 }
4900
4901 next_offset += envelope_size;
4902
4903 while next_offset < end_offset {
4905 _next_ordinal_to_read += 1;
4906 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4907 next_offset += envelope_size;
4908 }
4909
4910 Ok(())
4911 }
4912 }
4913
4914 impl EventStream {
4915 #[inline(always)]
4916 fn max_ordinal_present(&self) -> u64 {
4917 if let Some(_) = self.scope {
4918 return 5;
4919 }
4920 if let Some(_) = self.filter {
4921 return 4;
4922 }
4923 if let Some(_) = self.path {
4924 return 3;
4925 }
4926 if let Some(_) = self.as_ {
4927 return 2;
4928 }
4929 if let Some(_) = self.name {
4930 return 1;
4931 }
4932 0
4933 }
4934 }
4935
4936 impl fidl::encoding::ValueTypeMarker for EventStream {
4937 type Borrowed<'a> = &'a Self;
4938 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4939 value
4940 }
4941 }
4942
4943 unsafe impl fidl::encoding::TypeMarker for EventStream {
4944 type Owned = Self;
4945
4946 #[inline(always)]
4947 fn inline_align(_context: fidl::encoding::Context) -> usize {
4948 8
4949 }
4950
4951 #[inline(always)]
4952 fn inline_size(_context: fidl::encoding::Context) -> usize {
4953 16
4954 }
4955 }
4956
4957 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventStream, D>
4958 for &EventStream
4959 {
4960 unsafe fn encode(
4961 self,
4962 encoder: &mut fidl::encoding::Encoder<'_, D>,
4963 offset: usize,
4964 mut depth: fidl::encoding::Depth,
4965 ) -> fidl::Result<()> {
4966 encoder.debug_check_bounds::<EventStream>(offset);
4967 let max_ordinal: u64 = self.max_ordinal_present();
4969 encoder.write_num(max_ordinal, offset);
4970 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4971 if max_ordinal == 0 {
4973 return Ok(());
4974 }
4975 depth.increment()?;
4976 let envelope_size = 8;
4977 let bytes_len = max_ordinal as usize * envelope_size;
4978 #[allow(unused_variables)]
4979 let offset = encoder.out_of_line_offset(bytes_len);
4980 let mut _prev_end_offset: usize = 0;
4981 if 1 > max_ordinal {
4982 return Ok(());
4983 }
4984
4985 let cur_offset: usize = (1 - 1) * envelope_size;
4988
4989 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4991
4992 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
4997 self.name.as_ref().map(
4998 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
4999 ),
5000 encoder,
5001 offset + cur_offset,
5002 depth,
5003 )?;
5004
5005 _prev_end_offset = cur_offset + envelope_size;
5006 if 2 > max_ordinal {
5007 return Ok(());
5008 }
5009
5010 let cur_offset: usize = (2 - 1) * envelope_size;
5013
5014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5016
5017 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5022 self.as_.as_ref().map(
5023 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5024 ),
5025 encoder,
5026 offset + cur_offset,
5027 depth,
5028 )?;
5029
5030 _prev_end_offset = cur_offset + envelope_size;
5031 if 3 > max_ordinal {
5032 return Ok(());
5033 }
5034
5035 let cur_offset: usize = (3 - 1) * envelope_size;
5038
5039 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5041
5042 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
5047 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
5048 encoder, offset + cur_offset, depth
5049 )?;
5050
5051 _prev_end_offset = cur_offset + envelope_size;
5052 if 4 > max_ordinal {
5053 return Ok(());
5054 }
5055
5056 let cur_offset: usize = (4 - 1) * envelope_size;
5059
5060 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5062
5063 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data_common::Dictionary, D>(
5068 self.filter.as_ref().map(<fidl_fuchsia_data_common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
5069 encoder, offset + cur_offset, depth
5070 )?;
5071
5072 _prev_end_offset = cur_offset + envelope_size;
5073 if 5 > max_ordinal {
5074 return Ok(());
5075 }
5076
5077 let cur_offset: usize = (5 - 1) * envelope_size;
5080
5081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5083
5084 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>, D>(
5089 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref> as fidl::encoding::ValueTypeMarker>::borrow),
5090 encoder, offset + cur_offset, depth
5091 )?;
5092
5093 _prev_end_offset = cur_offset + envelope_size;
5094
5095 Ok(())
5096 }
5097 }
5098
5099 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventStream {
5100 #[inline(always)]
5101 fn new_empty() -> Self {
5102 Self::default()
5103 }
5104
5105 unsafe fn decode(
5106 &mut self,
5107 decoder: &mut fidl::encoding::Decoder<'_, D>,
5108 offset: usize,
5109 mut depth: fidl::encoding::Depth,
5110 ) -> fidl::Result<()> {
5111 decoder.debug_check_bounds::<Self>(offset);
5112 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5113 None => return Err(fidl::Error::NotNullable),
5114 Some(len) => len,
5115 };
5116 if len == 0 {
5118 return Ok(());
5119 };
5120 depth.increment()?;
5121 let envelope_size = 8;
5122 let bytes_len = len * envelope_size;
5123 let offset = decoder.out_of_line_offset(bytes_len)?;
5124 let mut _next_ordinal_to_read = 0;
5126 let mut next_offset = offset;
5127 let end_offset = offset + bytes_len;
5128 _next_ordinal_to_read += 1;
5129 if next_offset >= end_offset {
5130 return Ok(());
5131 }
5132
5133 while _next_ordinal_to_read < 1 {
5135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5136 _next_ordinal_to_read += 1;
5137 next_offset += envelope_size;
5138 }
5139
5140 let next_out_of_line = decoder.next_out_of_line();
5141 let handles_before = decoder.remaining_handles();
5142 if let Some((inlined, num_bytes, num_handles)) =
5143 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5144 {
5145 let member_inline_size =
5146 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5147 decoder.context,
5148 );
5149 if inlined != (member_inline_size <= 4) {
5150 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5151 }
5152 let inner_offset;
5153 let mut inner_depth = depth.clone();
5154 if inlined {
5155 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5156 inner_offset = next_offset;
5157 } else {
5158 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5159 inner_depth.increment()?;
5160 }
5161 let val_ref = self
5162 .name
5163 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5164 fidl::decode!(
5165 fidl::encoding::BoundedString<255>,
5166 D,
5167 val_ref,
5168 decoder,
5169 inner_offset,
5170 inner_depth
5171 )?;
5172 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5173 {
5174 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5175 }
5176 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5177 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5178 }
5179 }
5180
5181 next_offset += envelope_size;
5182 _next_ordinal_to_read += 1;
5183 if next_offset >= end_offset {
5184 return Ok(());
5185 }
5186
5187 while _next_ordinal_to_read < 2 {
5189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5190 _next_ordinal_to_read += 1;
5191 next_offset += envelope_size;
5192 }
5193
5194 let next_out_of_line = decoder.next_out_of_line();
5195 let handles_before = decoder.remaining_handles();
5196 if let Some((inlined, num_bytes, num_handles)) =
5197 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5198 {
5199 let member_inline_size =
5200 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5201 decoder.context,
5202 );
5203 if inlined != (member_inline_size <= 4) {
5204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5205 }
5206 let inner_offset;
5207 let mut inner_depth = depth.clone();
5208 if inlined {
5209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5210 inner_offset = next_offset;
5211 } else {
5212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5213 inner_depth.increment()?;
5214 }
5215 let val_ref = self
5216 .as_
5217 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5218 fidl::decode!(
5219 fidl::encoding::BoundedString<255>,
5220 D,
5221 val_ref,
5222 decoder,
5223 inner_offset,
5224 inner_depth
5225 )?;
5226 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5227 {
5228 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5229 }
5230 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5231 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5232 }
5233 }
5234
5235 next_offset += envelope_size;
5236 _next_ordinal_to_read += 1;
5237 if next_offset >= end_offset {
5238 return Ok(());
5239 }
5240
5241 while _next_ordinal_to_read < 3 {
5243 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5244 _next_ordinal_to_read += 1;
5245 next_offset += envelope_size;
5246 }
5247
5248 let next_out_of_line = decoder.next_out_of_line();
5249 let handles_before = decoder.remaining_handles();
5250 if let Some((inlined, num_bytes, num_handles)) =
5251 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5252 {
5253 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5254 if inlined != (member_inline_size <= 4) {
5255 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5256 }
5257 let inner_offset;
5258 let mut inner_depth = depth.clone();
5259 if inlined {
5260 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5261 inner_offset = next_offset;
5262 } else {
5263 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5264 inner_depth.increment()?;
5265 }
5266 let val_ref = self.path.get_or_insert_with(|| {
5267 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
5268 });
5269 fidl::decode!(
5270 fidl::encoding::BoundedString<4095>,
5271 D,
5272 val_ref,
5273 decoder,
5274 inner_offset,
5275 inner_depth
5276 )?;
5277 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5278 {
5279 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5280 }
5281 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5282 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5283 }
5284 }
5285
5286 next_offset += envelope_size;
5287 _next_ordinal_to_read += 1;
5288 if next_offset >= end_offset {
5289 return Ok(());
5290 }
5291
5292 while _next_ordinal_to_read < 4 {
5294 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5295 _next_ordinal_to_read += 1;
5296 next_offset += envelope_size;
5297 }
5298
5299 let next_out_of_line = decoder.next_out_of_line();
5300 let handles_before = decoder.remaining_handles();
5301 if let Some((inlined, num_bytes, num_handles)) =
5302 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5303 {
5304 let member_inline_size = <fidl_fuchsia_data_common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5305 if inlined != (member_inline_size <= 4) {
5306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5307 }
5308 let inner_offset;
5309 let mut inner_depth = depth.clone();
5310 if inlined {
5311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5312 inner_offset = next_offset;
5313 } else {
5314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5315 inner_depth.increment()?;
5316 }
5317 let val_ref = self.filter.get_or_insert_with(|| {
5318 fidl::new_empty!(fidl_fuchsia_data_common::Dictionary, D)
5319 });
5320 fidl::decode!(
5321 fidl_fuchsia_data_common::Dictionary,
5322 D,
5323 val_ref,
5324 decoder,
5325 inner_offset,
5326 inner_depth
5327 )?;
5328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5329 {
5330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5331 }
5332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5334 }
5335 }
5336
5337 next_offset += envelope_size;
5338 _next_ordinal_to_read += 1;
5339 if next_offset >= end_offset {
5340 return Ok(());
5341 }
5342
5343 while _next_ordinal_to_read < 5 {
5345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5346 _next_ordinal_to_read += 1;
5347 next_offset += envelope_size;
5348 }
5349
5350 let next_out_of_line = decoder.next_out_of_line();
5351 let handles_before = decoder.remaining_handles();
5352 if let Some((inlined, num_bytes, num_handles)) =
5353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5354 {
5355 let member_inline_size = <fidl::encoding::UnboundedVector<
5356 fidl_fuchsia_component_decl_common::Ref,
5357 > as fidl::encoding::TypeMarker>::inline_size(
5358 decoder.context
5359 );
5360 if inlined != (member_inline_size <= 4) {
5361 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5362 }
5363 let inner_offset;
5364 let mut inner_depth = depth.clone();
5365 if inlined {
5366 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5367 inner_offset = next_offset;
5368 } else {
5369 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5370 inner_depth.increment()?;
5371 }
5372 let val_ref = self.scope.get_or_insert_with(|| {
5373 fidl::new_empty!(
5374 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
5375 D
5376 )
5377 });
5378 fidl::decode!(
5379 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Ref>,
5380 D,
5381 val_ref,
5382 decoder,
5383 inner_offset,
5384 inner_depth
5385 )?;
5386 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5387 {
5388 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5389 }
5390 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5391 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5392 }
5393 }
5394
5395 next_offset += envelope_size;
5396
5397 while next_offset < end_offset {
5399 _next_ordinal_to_read += 1;
5400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5401 next_offset += envelope_size;
5402 }
5403
5404 Ok(())
5405 }
5406 }
5407
5408 impl Protocol {
5409 #[inline(always)]
5410 fn max_ordinal_present(&self) -> u64 {
5411 if let Some(_) = self.availability {
5412 return 5;
5413 }
5414 if let Some(_) = self.path {
5415 return 4;
5416 }
5417 if let Some(_) = self.type_ {
5418 return 3;
5419 }
5420 if let Some(_) = self.as_ {
5421 return 2;
5422 }
5423 if let Some(_) = self.name {
5424 return 1;
5425 }
5426 0
5427 }
5428 }
5429
5430 impl fidl::encoding::ValueTypeMarker for Protocol {
5431 type Borrowed<'a> = &'a Self;
5432 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5433 value
5434 }
5435 }
5436
5437 unsafe impl fidl::encoding::TypeMarker for Protocol {
5438 type Owned = Self;
5439
5440 #[inline(always)]
5441 fn inline_align(_context: fidl::encoding::Context) -> usize {
5442 8
5443 }
5444
5445 #[inline(always)]
5446 fn inline_size(_context: fidl::encoding::Context) -> usize {
5447 16
5448 }
5449 }
5450
5451 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Protocol, D> for &Protocol {
5452 unsafe fn encode(
5453 self,
5454 encoder: &mut fidl::encoding::Encoder<'_, D>,
5455 offset: usize,
5456 mut depth: fidl::encoding::Depth,
5457 ) -> fidl::Result<()> {
5458 encoder.debug_check_bounds::<Protocol>(offset);
5459 let max_ordinal: u64 = self.max_ordinal_present();
5461 encoder.write_num(max_ordinal, offset);
5462 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5463 if max_ordinal == 0 {
5465 return Ok(());
5466 }
5467 depth.increment()?;
5468 let envelope_size = 8;
5469 let bytes_len = max_ordinal as usize * envelope_size;
5470 #[allow(unused_variables)]
5471 let offset = encoder.out_of_line_offset(bytes_len);
5472 let mut _prev_end_offset: usize = 0;
5473 if 1 > max_ordinal {
5474 return Ok(());
5475 }
5476
5477 let cur_offset: usize = (1 - 1) * envelope_size;
5480
5481 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5483
5484 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5489 self.name.as_ref().map(
5490 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5491 ),
5492 encoder,
5493 offset + cur_offset,
5494 depth,
5495 )?;
5496
5497 _prev_end_offset = cur_offset + envelope_size;
5498 if 2 > max_ordinal {
5499 return Ok(());
5500 }
5501
5502 let cur_offset: usize = (2 - 1) * envelope_size;
5505
5506 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5508
5509 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5514 self.as_.as_ref().map(
5515 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5516 ),
5517 encoder,
5518 offset + cur_offset,
5519 depth,
5520 )?;
5521
5522 _prev_end_offset = cur_offset + envelope_size;
5523 if 3 > max_ordinal {
5524 return Ok(());
5525 }
5526
5527 let cur_offset: usize = (3 - 1) * envelope_size;
5530
5531 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5533
5534 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::DependencyType, D>(
5539 self.type_.as_ref().map(<fidl_fuchsia_component_decl_common::DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
5540 encoder, offset + cur_offset, depth
5541 )?;
5542
5543 _prev_end_offset = cur_offset + envelope_size;
5544 if 4 > max_ordinal {
5545 return Ok(());
5546 }
5547
5548 let cur_offset: usize = (4 - 1) * envelope_size;
5551
5552 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5554
5555 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
5560 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
5561 encoder, offset + cur_offset, depth
5562 )?;
5563
5564 _prev_end_offset = cur_offset + envelope_size;
5565 if 5 > max_ordinal {
5566 return Ok(());
5567 }
5568
5569 let cur_offset: usize = (5 - 1) * envelope_size;
5572
5573 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5575
5576 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::Availability, D>(
5581 self.availability.as_ref().map(<fidl_fuchsia_component_decl_common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
5582 encoder, offset + cur_offset, depth
5583 )?;
5584
5585 _prev_end_offset = cur_offset + envelope_size;
5586
5587 Ok(())
5588 }
5589 }
5590
5591 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Protocol {
5592 #[inline(always)]
5593 fn new_empty() -> Self {
5594 Self::default()
5595 }
5596
5597 unsafe fn decode(
5598 &mut self,
5599 decoder: &mut fidl::encoding::Decoder<'_, D>,
5600 offset: usize,
5601 mut depth: fidl::encoding::Depth,
5602 ) -> fidl::Result<()> {
5603 decoder.debug_check_bounds::<Self>(offset);
5604 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5605 None => return Err(fidl::Error::NotNullable),
5606 Some(len) => len,
5607 };
5608 if len == 0 {
5610 return Ok(());
5611 };
5612 depth.increment()?;
5613 let envelope_size = 8;
5614 let bytes_len = len * envelope_size;
5615 let offset = decoder.out_of_line_offset(bytes_len)?;
5616 let mut _next_ordinal_to_read = 0;
5618 let mut next_offset = offset;
5619 let end_offset = offset + bytes_len;
5620 _next_ordinal_to_read += 1;
5621 if next_offset >= end_offset {
5622 return Ok(());
5623 }
5624
5625 while _next_ordinal_to_read < 1 {
5627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5628 _next_ordinal_to_read += 1;
5629 next_offset += envelope_size;
5630 }
5631
5632 let next_out_of_line = decoder.next_out_of_line();
5633 let handles_before = decoder.remaining_handles();
5634 if let Some((inlined, num_bytes, num_handles)) =
5635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5636 {
5637 let member_inline_size =
5638 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5639 decoder.context,
5640 );
5641 if inlined != (member_inline_size <= 4) {
5642 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5643 }
5644 let inner_offset;
5645 let mut inner_depth = depth.clone();
5646 if inlined {
5647 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5648 inner_offset = next_offset;
5649 } else {
5650 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5651 inner_depth.increment()?;
5652 }
5653 let val_ref = self
5654 .name
5655 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5656 fidl::decode!(
5657 fidl::encoding::BoundedString<255>,
5658 D,
5659 val_ref,
5660 decoder,
5661 inner_offset,
5662 inner_depth
5663 )?;
5664 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5665 {
5666 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5667 }
5668 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5669 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5670 }
5671 }
5672
5673 next_offset += envelope_size;
5674 _next_ordinal_to_read += 1;
5675 if next_offset >= end_offset {
5676 return Ok(());
5677 }
5678
5679 while _next_ordinal_to_read < 2 {
5681 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5682 _next_ordinal_to_read += 1;
5683 next_offset += envelope_size;
5684 }
5685
5686 let next_out_of_line = decoder.next_out_of_line();
5687 let handles_before = decoder.remaining_handles();
5688 if let Some((inlined, num_bytes, num_handles)) =
5689 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5690 {
5691 let member_inline_size =
5692 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5693 decoder.context,
5694 );
5695 if inlined != (member_inline_size <= 4) {
5696 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5697 }
5698 let inner_offset;
5699 let mut inner_depth = depth.clone();
5700 if inlined {
5701 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5702 inner_offset = next_offset;
5703 } else {
5704 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5705 inner_depth.increment()?;
5706 }
5707 let val_ref = self
5708 .as_
5709 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5710 fidl::decode!(
5711 fidl::encoding::BoundedString<255>,
5712 D,
5713 val_ref,
5714 decoder,
5715 inner_offset,
5716 inner_depth
5717 )?;
5718 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5719 {
5720 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5721 }
5722 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5723 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5724 }
5725 }
5726
5727 next_offset += envelope_size;
5728 _next_ordinal_to_read += 1;
5729 if next_offset >= end_offset {
5730 return Ok(());
5731 }
5732
5733 while _next_ordinal_to_read < 3 {
5735 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5736 _next_ordinal_to_read += 1;
5737 next_offset += envelope_size;
5738 }
5739
5740 let next_out_of_line = decoder.next_out_of_line();
5741 let handles_before = decoder.remaining_handles();
5742 if let Some((inlined, num_bytes, num_handles)) =
5743 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5744 {
5745 let member_inline_size = <fidl_fuchsia_component_decl_common::DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5746 if inlined != (member_inline_size <= 4) {
5747 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5748 }
5749 let inner_offset;
5750 let mut inner_depth = depth.clone();
5751 if inlined {
5752 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5753 inner_offset = next_offset;
5754 } else {
5755 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5756 inner_depth.increment()?;
5757 }
5758 let val_ref = self.type_.get_or_insert_with(|| {
5759 fidl::new_empty!(fidl_fuchsia_component_decl_common::DependencyType, D)
5760 });
5761 fidl::decode!(
5762 fidl_fuchsia_component_decl_common::DependencyType,
5763 D,
5764 val_ref,
5765 decoder,
5766 inner_offset,
5767 inner_depth
5768 )?;
5769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5770 {
5771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5772 }
5773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5775 }
5776 }
5777
5778 next_offset += envelope_size;
5779 _next_ordinal_to_read += 1;
5780 if next_offset >= end_offset {
5781 return Ok(());
5782 }
5783
5784 while _next_ordinal_to_read < 4 {
5786 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5787 _next_ordinal_to_read += 1;
5788 next_offset += envelope_size;
5789 }
5790
5791 let next_out_of_line = decoder.next_out_of_line();
5792 let handles_before = decoder.remaining_handles();
5793 if let Some((inlined, num_bytes, num_handles)) =
5794 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5795 {
5796 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5797 if inlined != (member_inline_size <= 4) {
5798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5799 }
5800 let inner_offset;
5801 let mut inner_depth = depth.clone();
5802 if inlined {
5803 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5804 inner_offset = next_offset;
5805 } else {
5806 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5807 inner_depth.increment()?;
5808 }
5809 let val_ref = self.path.get_or_insert_with(|| {
5810 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
5811 });
5812 fidl::decode!(
5813 fidl::encoding::BoundedString<4095>,
5814 D,
5815 val_ref,
5816 decoder,
5817 inner_offset,
5818 inner_depth
5819 )?;
5820 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5821 {
5822 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5823 }
5824 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5825 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5826 }
5827 }
5828
5829 next_offset += envelope_size;
5830 _next_ordinal_to_read += 1;
5831 if next_offset >= end_offset {
5832 return Ok(());
5833 }
5834
5835 while _next_ordinal_to_read < 5 {
5837 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5838 _next_ordinal_to_read += 1;
5839 next_offset += envelope_size;
5840 }
5841
5842 let next_out_of_line = decoder.next_out_of_line();
5843 let handles_before = decoder.remaining_handles();
5844 if let Some((inlined, num_bytes, num_handles)) =
5845 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5846 {
5847 let member_inline_size = <fidl_fuchsia_component_decl_common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5848 if inlined != (member_inline_size <= 4) {
5849 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5850 }
5851 let inner_offset;
5852 let mut inner_depth = depth.clone();
5853 if inlined {
5854 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5855 inner_offset = next_offset;
5856 } else {
5857 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5858 inner_depth.increment()?;
5859 }
5860 let val_ref = self.availability.get_or_insert_with(|| {
5861 fidl::new_empty!(fidl_fuchsia_component_decl_common::Availability, D)
5862 });
5863 fidl::decode!(
5864 fidl_fuchsia_component_decl_common::Availability,
5865 D,
5866 val_ref,
5867 decoder,
5868 inner_offset,
5869 inner_depth
5870 )?;
5871 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5872 {
5873 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5874 }
5875 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5876 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5877 }
5878 }
5879
5880 next_offset += envelope_size;
5881
5882 while next_offset < end_offset {
5884 _next_ordinal_to_read += 1;
5885 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5886 next_offset += envelope_size;
5887 }
5888
5889 Ok(())
5890 }
5891 }
5892
5893 impl Resolver {
5894 #[inline(always)]
5895 fn max_ordinal_present(&self) -> u64 {
5896 if let Some(_) = self.path {
5897 return 3;
5898 }
5899 if let Some(_) = self.as_ {
5900 return 2;
5901 }
5902 if let Some(_) = self.name {
5903 return 1;
5904 }
5905 0
5906 }
5907 }
5908
5909 impl fidl::encoding::ValueTypeMarker for Resolver {
5910 type Borrowed<'a> = &'a Self;
5911 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5912 value
5913 }
5914 }
5915
5916 unsafe impl fidl::encoding::TypeMarker for Resolver {
5917 type Owned = Self;
5918
5919 #[inline(always)]
5920 fn inline_align(_context: fidl::encoding::Context) -> usize {
5921 8
5922 }
5923
5924 #[inline(always)]
5925 fn inline_size(_context: fidl::encoding::Context) -> usize {
5926 16
5927 }
5928 }
5929
5930 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Resolver, D> for &Resolver {
5931 unsafe fn encode(
5932 self,
5933 encoder: &mut fidl::encoding::Encoder<'_, D>,
5934 offset: usize,
5935 mut depth: fidl::encoding::Depth,
5936 ) -> fidl::Result<()> {
5937 encoder.debug_check_bounds::<Resolver>(offset);
5938 let max_ordinal: u64 = self.max_ordinal_present();
5940 encoder.write_num(max_ordinal, offset);
5941 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5942 if max_ordinal == 0 {
5944 return Ok(());
5945 }
5946 depth.increment()?;
5947 let envelope_size = 8;
5948 let bytes_len = max_ordinal as usize * envelope_size;
5949 #[allow(unused_variables)]
5950 let offset = encoder.out_of_line_offset(bytes_len);
5951 let mut _prev_end_offset: usize = 0;
5952 if 1 > max_ordinal {
5953 return Ok(());
5954 }
5955
5956 let cur_offset: usize = (1 - 1) * envelope_size;
5959
5960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5962
5963 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5968 self.name.as_ref().map(
5969 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5970 ),
5971 encoder,
5972 offset + cur_offset,
5973 depth,
5974 )?;
5975
5976 _prev_end_offset = cur_offset + envelope_size;
5977 if 2 > max_ordinal {
5978 return Ok(());
5979 }
5980
5981 let cur_offset: usize = (2 - 1) * envelope_size;
5984
5985 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5987
5988 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5993 self.as_.as_ref().map(
5994 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5995 ),
5996 encoder,
5997 offset + cur_offset,
5998 depth,
5999 )?;
6000
6001 _prev_end_offset = cur_offset + envelope_size;
6002 if 3 > max_ordinal {
6003 return Ok(());
6004 }
6005
6006 let cur_offset: usize = (3 - 1) * envelope_size;
6009
6010 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6012
6013 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6018 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6019 encoder, offset + cur_offset, depth
6020 )?;
6021
6022 _prev_end_offset = cur_offset + envelope_size;
6023
6024 Ok(())
6025 }
6026 }
6027
6028 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Resolver {
6029 #[inline(always)]
6030 fn new_empty() -> Self {
6031 Self::default()
6032 }
6033
6034 unsafe fn decode(
6035 &mut self,
6036 decoder: &mut fidl::encoding::Decoder<'_, D>,
6037 offset: usize,
6038 mut depth: fidl::encoding::Depth,
6039 ) -> fidl::Result<()> {
6040 decoder.debug_check_bounds::<Self>(offset);
6041 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6042 None => return Err(fidl::Error::NotNullable),
6043 Some(len) => len,
6044 };
6045 if len == 0 {
6047 return Ok(());
6048 };
6049 depth.increment()?;
6050 let envelope_size = 8;
6051 let bytes_len = len * envelope_size;
6052 let offset = decoder.out_of_line_offset(bytes_len)?;
6053 let mut _next_ordinal_to_read = 0;
6055 let mut next_offset = offset;
6056 let end_offset = offset + bytes_len;
6057 _next_ordinal_to_read += 1;
6058 if next_offset >= end_offset {
6059 return Ok(());
6060 }
6061
6062 while _next_ordinal_to_read < 1 {
6064 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6065 _next_ordinal_to_read += 1;
6066 next_offset += envelope_size;
6067 }
6068
6069 let next_out_of_line = decoder.next_out_of_line();
6070 let handles_before = decoder.remaining_handles();
6071 if let Some((inlined, num_bytes, num_handles)) =
6072 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6073 {
6074 let member_inline_size =
6075 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6076 decoder.context,
6077 );
6078 if inlined != (member_inline_size <= 4) {
6079 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6080 }
6081 let inner_offset;
6082 let mut inner_depth = depth.clone();
6083 if inlined {
6084 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6085 inner_offset = next_offset;
6086 } else {
6087 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6088 inner_depth.increment()?;
6089 }
6090 let val_ref = self
6091 .name
6092 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6093 fidl::decode!(
6094 fidl::encoding::BoundedString<255>,
6095 D,
6096 val_ref,
6097 decoder,
6098 inner_offset,
6099 inner_depth
6100 )?;
6101 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6102 {
6103 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6104 }
6105 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6106 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6107 }
6108 }
6109
6110 next_offset += envelope_size;
6111 _next_ordinal_to_read += 1;
6112 if next_offset >= end_offset {
6113 return Ok(());
6114 }
6115
6116 while _next_ordinal_to_read < 2 {
6118 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6119 _next_ordinal_to_read += 1;
6120 next_offset += envelope_size;
6121 }
6122
6123 let next_out_of_line = decoder.next_out_of_line();
6124 let handles_before = decoder.remaining_handles();
6125 if let Some((inlined, num_bytes, num_handles)) =
6126 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6127 {
6128 let member_inline_size =
6129 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6130 decoder.context,
6131 );
6132 if inlined != (member_inline_size <= 4) {
6133 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6134 }
6135 let inner_offset;
6136 let mut inner_depth = depth.clone();
6137 if inlined {
6138 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6139 inner_offset = next_offset;
6140 } else {
6141 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6142 inner_depth.increment()?;
6143 }
6144 let val_ref = self
6145 .as_
6146 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6147 fidl::decode!(
6148 fidl::encoding::BoundedString<255>,
6149 D,
6150 val_ref,
6151 decoder,
6152 inner_offset,
6153 inner_depth
6154 )?;
6155 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6156 {
6157 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6158 }
6159 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6160 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6161 }
6162 }
6163
6164 next_offset += envelope_size;
6165 _next_ordinal_to_read += 1;
6166 if next_offset >= end_offset {
6167 return Ok(());
6168 }
6169
6170 while _next_ordinal_to_read < 3 {
6172 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6173 _next_ordinal_to_read += 1;
6174 next_offset += envelope_size;
6175 }
6176
6177 let next_out_of_line = decoder.next_out_of_line();
6178 let handles_before = decoder.remaining_handles();
6179 if let Some((inlined, num_bytes, num_handles)) =
6180 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6181 {
6182 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6183 if inlined != (member_inline_size <= 4) {
6184 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6185 }
6186 let inner_offset;
6187 let mut inner_depth = depth.clone();
6188 if inlined {
6189 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6190 inner_offset = next_offset;
6191 } else {
6192 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6193 inner_depth.increment()?;
6194 }
6195 let val_ref = self.path.get_or_insert_with(|| {
6196 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
6197 });
6198 fidl::decode!(
6199 fidl::encoding::BoundedString<4095>,
6200 D,
6201 val_ref,
6202 decoder,
6203 inner_offset,
6204 inner_depth
6205 )?;
6206 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6207 {
6208 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6209 }
6210 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6211 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6212 }
6213 }
6214
6215 next_offset += envelope_size;
6216
6217 while next_offset < end_offset {
6219 _next_ordinal_to_read += 1;
6220 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6221 next_offset += envelope_size;
6222 }
6223
6224 Ok(())
6225 }
6226 }
6227
6228 impl Runner {
6229 #[inline(always)]
6230 fn max_ordinal_present(&self) -> u64 {
6231 if let Some(_) = self.path {
6232 return 3;
6233 }
6234 if let Some(_) = self.as_ {
6235 return 2;
6236 }
6237 if let Some(_) = self.name {
6238 return 1;
6239 }
6240 0
6241 }
6242 }
6243
6244 impl fidl::encoding::ValueTypeMarker for Runner {
6245 type Borrowed<'a> = &'a Self;
6246 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6247 value
6248 }
6249 }
6250
6251 unsafe impl fidl::encoding::TypeMarker for Runner {
6252 type Owned = Self;
6253
6254 #[inline(always)]
6255 fn inline_align(_context: fidl::encoding::Context) -> usize {
6256 8
6257 }
6258
6259 #[inline(always)]
6260 fn inline_size(_context: fidl::encoding::Context) -> usize {
6261 16
6262 }
6263 }
6264
6265 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Runner, D> for &Runner {
6266 unsafe fn encode(
6267 self,
6268 encoder: &mut fidl::encoding::Encoder<'_, D>,
6269 offset: usize,
6270 mut depth: fidl::encoding::Depth,
6271 ) -> fidl::Result<()> {
6272 encoder.debug_check_bounds::<Runner>(offset);
6273 let max_ordinal: u64 = self.max_ordinal_present();
6275 encoder.write_num(max_ordinal, offset);
6276 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6277 if max_ordinal == 0 {
6279 return Ok(());
6280 }
6281 depth.increment()?;
6282 let envelope_size = 8;
6283 let bytes_len = max_ordinal as usize * envelope_size;
6284 #[allow(unused_variables)]
6285 let offset = encoder.out_of_line_offset(bytes_len);
6286 let mut _prev_end_offset: usize = 0;
6287 if 1 > max_ordinal {
6288 return Ok(());
6289 }
6290
6291 let cur_offset: usize = (1 - 1) * envelope_size;
6294
6295 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6297
6298 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6303 self.name.as_ref().map(
6304 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6305 ),
6306 encoder,
6307 offset + cur_offset,
6308 depth,
6309 )?;
6310
6311 _prev_end_offset = cur_offset + envelope_size;
6312 if 2 > max_ordinal {
6313 return Ok(());
6314 }
6315
6316 let cur_offset: usize = (2 - 1) * envelope_size;
6319
6320 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6322
6323 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6328 self.as_.as_ref().map(
6329 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6330 ),
6331 encoder,
6332 offset + cur_offset,
6333 depth,
6334 )?;
6335
6336 _prev_end_offset = cur_offset + envelope_size;
6337 if 3 > max_ordinal {
6338 return Ok(());
6339 }
6340
6341 let cur_offset: usize = (3 - 1) * envelope_size;
6344
6345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6347
6348 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6353 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6354 encoder, offset + cur_offset, depth
6355 )?;
6356
6357 _prev_end_offset = cur_offset + envelope_size;
6358
6359 Ok(())
6360 }
6361 }
6362
6363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Runner {
6364 #[inline(always)]
6365 fn new_empty() -> Self {
6366 Self::default()
6367 }
6368
6369 unsafe fn decode(
6370 &mut self,
6371 decoder: &mut fidl::encoding::Decoder<'_, D>,
6372 offset: usize,
6373 mut depth: fidl::encoding::Depth,
6374 ) -> fidl::Result<()> {
6375 decoder.debug_check_bounds::<Self>(offset);
6376 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6377 None => return Err(fidl::Error::NotNullable),
6378 Some(len) => len,
6379 };
6380 if len == 0 {
6382 return Ok(());
6383 };
6384 depth.increment()?;
6385 let envelope_size = 8;
6386 let bytes_len = len * envelope_size;
6387 let offset = decoder.out_of_line_offset(bytes_len)?;
6388 let mut _next_ordinal_to_read = 0;
6390 let mut next_offset = offset;
6391 let end_offset = offset + bytes_len;
6392 _next_ordinal_to_read += 1;
6393 if next_offset >= end_offset {
6394 return Ok(());
6395 }
6396
6397 while _next_ordinal_to_read < 1 {
6399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6400 _next_ordinal_to_read += 1;
6401 next_offset += envelope_size;
6402 }
6403
6404 let next_out_of_line = decoder.next_out_of_line();
6405 let handles_before = decoder.remaining_handles();
6406 if let Some((inlined, num_bytes, num_handles)) =
6407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6408 {
6409 let member_inline_size =
6410 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6411 decoder.context,
6412 );
6413 if inlined != (member_inline_size <= 4) {
6414 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6415 }
6416 let inner_offset;
6417 let mut inner_depth = depth.clone();
6418 if inlined {
6419 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6420 inner_offset = next_offset;
6421 } else {
6422 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6423 inner_depth.increment()?;
6424 }
6425 let val_ref = self
6426 .name
6427 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6428 fidl::decode!(
6429 fidl::encoding::BoundedString<255>,
6430 D,
6431 val_ref,
6432 decoder,
6433 inner_offset,
6434 inner_depth
6435 )?;
6436 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6437 {
6438 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6439 }
6440 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6441 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6442 }
6443 }
6444
6445 next_offset += envelope_size;
6446 _next_ordinal_to_read += 1;
6447 if next_offset >= end_offset {
6448 return Ok(());
6449 }
6450
6451 while _next_ordinal_to_read < 2 {
6453 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6454 _next_ordinal_to_read += 1;
6455 next_offset += envelope_size;
6456 }
6457
6458 let next_out_of_line = decoder.next_out_of_line();
6459 let handles_before = decoder.remaining_handles();
6460 if let Some((inlined, num_bytes, num_handles)) =
6461 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6462 {
6463 let member_inline_size =
6464 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6465 decoder.context,
6466 );
6467 if inlined != (member_inline_size <= 4) {
6468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6469 }
6470 let inner_offset;
6471 let mut inner_depth = depth.clone();
6472 if inlined {
6473 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6474 inner_offset = next_offset;
6475 } else {
6476 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6477 inner_depth.increment()?;
6478 }
6479 let val_ref = self
6480 .as_
6481 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6482 fidl::decode!(
6483 fidl::encoding::BoundedString<255>,
6484 D,
6485 val_ref,
6486 decoder,
6487 inner_offset,
6488 inner_depth
6489 )?;
6490 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6491 {
6492 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6493 }
6494 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6495 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6496 }
6497 }
6498
6499 next_offset += envelope_size;
6500 _next_ordinal_to_read += 1;
6501 if next_offset >= end_offset {
6502 return Ok(());
6503 }
6504
6505 while _next_ordinal_to_read < 3 {
6507 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6508 _next_ordinal_to_read += 1;
6509 next_offset += envelope_size;
6510 }
6511
6512 let next_out_of_line = decoder.next_out_of_line();
6513 let handles_before = decoder.remaining_handles();
6514 if let Some((inlined, num_bytes, num_handles)) =
6515 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6516 {
6517 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6518 if inlined != (member_inline_size <= 4) {
6519 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6520 }
6521 let inner_offset;
6522 let mut inner_depth = depth.clone();
6523 if inlined {
6524 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6525 inner_offset = next_offset;
6526 } else {
6527 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6528 inner_depth.increment()?;
6529 }
6530 let val_ref = self.path.get_or_insert_with(|| {
6531 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
6532 });
6533 fidl::decode!(
6534 fidl::encoding::BoundedString<4095>,
6535 D,
6536 val_ref,
6537 decoder,
6538 inner_offset,
6539 inner_depth
6540 )?;
6541 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6542 {
6543 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6544 }
6545 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6546 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6547 }
6548 }
6549
6550 next_offset += envelope_size;
6551
6552 while next_offset < end_offset {
6554 _next_ordinal_to_read += 1;
6555 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6556 next_offset += envelope_size;
6557 }
6558
6559 Ok(())
6560 }
6561 }
6562
6563 impl Service {
6564 #[inline(always)]
6565 fn max_ordinal_present(&self) -> u64 {
6566 if let Some(_) = self.availability {
6567 return 4;
6568 }
6569 if let Some(_) = self.path {
6570 return 3;
6571 }
6572 if let Some(_) = self.as_ {
6573 return 2;
6574 }
6575 if let Some(_) = self.name {
6576 return 1;
6577 }
6578 0
6579 }
6580 }
6581
6582 impl fidl::encoding::ValueTypeMarker for Service {
6583 type Borrowed<'a> = &'a Self;
6584 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6585 value
6586 }
6587 }
6588
6589 unsafe impl fidl::encoding::TypeMarker for Service {
6590 type Owned = Self;
6591
6592 #[inline(always)]
6593 fn inline_align(_context: fidl::encoding::Context) -> usize {
6594 8
6595 }
6596
6597 #[inline(always)]
6598 fn inline_size(_context: fidl::encoding::Context) -> usize {
6599 16
6600 }
6601 }
6602
6603 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Service, D> for &Service {
6604 unsafe fn encode(
6605 self,
6606 encoder: &mut fidl::encoding::Encoder<'_, D>,
6607 offset: usize,
6608 mut depth: fidl::encoding::Depth,
6609 ) -> fidl::Result<()> {
6610 encoder.debug_check_bounds::<Service>(offset);
6611 let max_ordinal: u64 = self.max_ordinal_present();
6613 encoder.write_num(max_ordinal, offset);
6614 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6615 if max_ordinal == 0 {
6617 return Ok(());
6618 }
6619 depth.increment()?;
6620 let envelope_size = 8;
6621 let bytes_len = max_ordinal as usize * envelope_size;
6622 #[allow(unused_variables)]
6623 let offset = encoder.out_of_line_offset(bytes_len);
6624 let mut _prev_end_offset: usize = 0;
6625 if 1 > max_ordinal {
6626 return Ok(());
6627 }
6628
6629 let cur_offset: usize = (1 - 1) * envelope_size;
6632
6633 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6635
6636 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6641 self.name.as_ref().map(
6642 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6643 ),
6644 encoder,
6645 offset + cur_offset,
6646 depth,
6647 )?;
6648
6649 _prev_end_offset = cur_offset + envelope_size;
6650 if 2 > max_ordinal {
6651 return Ok(());
6652 }
6653
6654 let cur_offset: usize = (2 - 1) * envelope_size;
6657
6658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6660
6661 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
6666 self.as_.as_ref().map(
6667 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
6668 ),
6669 encoder,
6670 offset + cur_offset,
6671 depth,
6672 )?;
6673
6674 _prev_end_offset = cur_offset + envelope_size;
6675 if 3 > max_ordinal {
6676 return Ok(());
6677 }
6678
6679 let cur_offset: usize = (3 - 1) * envelope_size;
6682
6683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6685
6686 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4095>, D>(
6691 self.path.as_ref().map(<fidl::encoding::BoundedString<4095> as fidl::encoding::ValueTypeMarker>::borrow),
6692 encoder, offset + cur_offset, depth
6693 )?;
6694
6695 _prev_end_offset = cur_offset + envelope_size;
6696 if 4 > max_ordinal {
6697 return Ok(());
6698 }
6699
6700 let cur_offset: usize = (4 - 1) * envelope_size;
6703
6704 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6706
6707 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::Availability, D>(
6712 self.availability.as_ref().map(<fidl_fuchsia_component_decl_common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
6713 encoder, offset + cur_offset, depth
6714 )?;
6715
6716 _prev_end_offset = cur_offset + envelope_size;
6717
6718 Ok(())
6719 }
6720 }
6721
6722 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Service {
6723 #[inline(always)]
6724 fn new_empty() -> Self {
6725 Self::default()
6726 }
6727
6728 unsafe fn decode(
6729 &mut self,
6730 decoder: &mut fidl::encoding::Decoder<'_, D>,
6731 offset: usize,
6732 mut depth: fidl::encoding::Depth,
6733 ) -> fidl::Result<()> {
6734 decoder.debug_check_bounds::<Self>(offset);
6735 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6736 None => return Err(fidl::Error::NotNullable),
6737 Some(len) => len,
6738 };
6739 if len == 0 {
6741 return Ok(());
6742 };
6743 depth.increment()?;
6744 let envelope_size = 8;
6745 let bytes_len = len * envelope_size;
6746 let offset = decoder.out_of_line_offset(bytes_len)?;
6747 let mut _next_ordinal_to_read = 0;
6749 let mut next_offset = offset;
6750 let end_offset = offset + bytes_len;
6751 _next_ordinal_to_read += 1;
6752 if next_offset >= end_offset {
6753 return Ok(());
6754 }
6755
6756 while _next_ordinal_to_read < 1 {
6758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6759 _next_ordinal_to_read += 1;
6760 next_offset += envelope_size;
6761 }
6762
6763 let next_out_of_line = decoder.next_out_of_line();
6764 let handles_before = decoder.remaining_handles();
6765 if let Some((inlined, num_bytes, num_handles)) =
6766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6767 {
6768 let member_inline_size =
6769 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6770 decoder.context,
6771 );
6772 if inlined != (member_inline_size <= 4) {
6773 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6774 }
6775 let inner_offset;
6776 let mut inner_depth = depth.clone();
6777 if inlined {
6778 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6779 inner_offset = next_offset;
6780 } else {
6781 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6782 inner_depth.increment()?;
6783 }
6784 let val_ref = self
6785 .name
6786 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6787 fidl::decode!(
6788 fidl::encoding::BoundedString<255>,
6789 D,
6790 val_ref,
6791 decoder,
6792 inner_offset,
6793 inner_depth
6794 )?;
6795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6796 {
6797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6798 }
6799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6801 }
6802 }
6803
6804 next_offset += envelope_size;
6805 _next_ordinal_to_read += 1;
6806 if next_offset >= end_offset {
6807 return Ok(());
6808 }
6809
6810 while _next_ordinal_to_read < 2 {
6812 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6813 _next_ordinal_to_read += 1;
6814 next_offset += envelope_size;
6815 }
6816
6817 let next_out_of_line = decoder.next_out_of_line();
6818 let handles_before = decoder.remaining_handles();
6819 if let Some((inlined, num_bytes, num_handles)) =
6820 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6821 {
6822 let member_inline_size =
6823 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
6824 decoder.context,
6825 );
6826 if inlined != (member_inline_size <= 4) {
6827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6828 }
6829 let inner_offset;
6830 let mut inner_depth = depth.clone();
6831 if inlined {
6832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6833 inner_offset = next_offset;
6834 } else {
6835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6836 inner_depth.increment()?;
6837 }
6838 let val_ref = self
6839 .as_
6840 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
6841 fidl::decode!(
6842 fidl::encoding::BoundedString<255>,
6843 D,
6844 val_ref,
6845 decoder,
6846 inner_offset,
6847 inner_depth
6848 )?;
6849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6850 {
6851 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6852 }
6853 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6854 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6855 }
6856 }
6857
6858 next_offset += envelope_size;
6859 _next_ordinal_to_read += 1;
6860 if next_offset >= end_offset {
6861 return Ok(());
6862 }
6863
6864 while _next_ordinal_to_read < 3 {
6866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6867 _next_ordinal_to_read += 1;
6868 next_offset += envelope_size;
6869 }
6870
6871 let next_out_of_line = decoder.next_out_of_line();
6872 let handles_before = decoder.remaining_handles();
6873 if let Some((inlined, num_bytes, num_handles)) =
6874 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6875 {
6876 let member_inline_size = <fidl::encoding::BoundedString<4095> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6877 if inlined != (member_inline_size <= 4) {
6878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6879 }
6880 let inner_offset;
6881 let mut inner_depth = depth.clone();
6882 if inlined {
6883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6884 inner_offset = next_offset;
6885 } else {
6886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6887 inner_depth.increment()?;
6888 }
6889 let val_ref = self.path.get_or_insert_with(|| {
6890 fidl::new_empty!(fidl::encoding::BoundedString<4095>, D)
6891 });
6892 fidl::decode!(
6893 fidl::encoding::BoundedString<4095>,
6894 D,
6895 val_ref,
6896 decoder,
6897 inner_offset,
6898 inner_depth
6899 )?;
6900 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6901 {
6902 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6903 }
6904 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6905 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6906 }
6907 }
6908
6909 next_offset += envelope_size;
6910 _next_ordinal_to_read += 1;
6911 if next_offset >= end_offset {
6912 return Ok(());
6913 }
6914
6915 while _next_ordinal_to_read < 4 {
6917 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6918 _next_ordinal_to_read += 1;
6919 next_offset += envelope_size;
6920 }
6921
6922 let next_out_of_line = decoder.next_out_of_line();
6923 let handles_before = decoder.remaining_handles();
6924 if let Some((inlined, num_bytes, num_handles)) =
6925 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6926 {
6927 let member_inline_size = <fidl_fuchsia_component_decl_common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6928 if inlined != (member_inline_size <= 4) {
6929 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6930 }
6931 let inner_offset;
6932 let mut inner_depth = depth.clone();
6933 if inlined {
6934 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6935 inner_offset = next_offset;
6936 } else {
6937 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6938 inner_depth.increment()?;
6939 }
6940 let val_ref = self.availability.get_or_insert_with(|| {
6941 fidl::new_empty!(fidl_fuchsia_component_decl_common::Availability, D)
6942 });
6943 fidl::decode!(
6944 fidl_fuchsia_component_decl_common::Availability,
6945 D,
6946 val_ref,
6947 decoder,
6948 inner_offset,
6949 inner_depth
6950 )?;
6951 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6952 {
6953 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6954 }
6955 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6956 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6957 }
6958 }
6959
6960 next_offset += envelope_size;
6961
6962 while next_offset < end_offset {
6964 _next_ordinal_to_read += 1;
6965 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6966 next_offset += envelope_size;
6967 }
6968
6969 Ok(())
6970 }
6971 }
6972
6973 impl Storage {
6974 #[inline(always)]
6975 fn max_ordinal_present(&self) -> u64 {
6976 if let Some(_) = self.availability {
6977 return 4;
6978 }
6979 if let Some(_) = self.path {
6980 return 3;
6981 }
6982 if let Some(_) = self.as_ {
6983 return 2;
6984 }
6985 if let Some(_) = self.name {
6986 return 1;
6987 }
6988 0
6989 }
6990 }
6991
6992 impl fidl::encoding::ValueTypeMarker for Storage {
6993 type Borrowed<'a> = &'a Self;
6994 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6995 value
6996 }
6997 }
6998
6999 unsafe impl fidl::encoding::TypeMarker for Storage {
7000 type Owned = Self;
7001
7002 #[inline(always)]
7003 fn inline_align(_context: fidl::encoding::Context) -> usize {
7004 8
7005 }
7006
7007 #[inline(always)]
7008 fn inline_size(_context: fidl::encoding::Context) -> usize {
7009 16
7010 }
7011 }
7012
7013 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Storage, D> for &Storage {
7014 unsafe fn encode(
7015 self,
7016 encoder: &mut fidl::encoding::Encoder<'_, D>,
7017 offset: usize,
7018 mut depth: fidl::encoding::Depth,
7019 ) -> fidl::Result<()> {
7020 encoder.debug_check_bounds::<Storage>(offset);
7021 let max_ordinal: u64 = self.max_ordinal_present();
7023 encoder.write_num(max_ordinal, offset);
7024 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7025 if max_ordinal == 0 {
7027 return Ok(());
7028 }
7029 depth.increment()?;
7030 let envelope_size = 8;
7031 let bytes_len = max_ordinal as usize * envelope_size;
7032 #[allow(unused_variables)]
7033 let offset = encoder.out_of_line_offset(bytes_len);
7034 let mut _prev_end_offset: usize = 0;
7035 if 1 > max_ordinal {
7036 return Ok(());
7037 }
7038
7039 let cur_offset: usize = (1 - 1) * envelope_size;
7042
7043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7045
7046 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7051 self.name.as_ref().map(
7052 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7053 ),
7054 encoder,
7055 offset + cur_offset,
7056 depth,
7057 )?;
7058
7059 _prev_end_offset = cur_offset + envelope_size;
7060 if 2 > max_ordinal {
7061 return Ok(());
7062 }
7063
7064 let cur_offset: usize = (2 - 1) * envelope_size;
7067
7068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7070
7071 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7076 self.as_.as_ref().map(
7077 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7078 ),
7079 encoder,
7080 offset + cur_offset,
7081 depth,
7082 )?;
7083
7084 _prev_end_offset = cur_offset + envelope_size;
7085 if 3 > max_ordinal {
7086 return Ok(());
7087 }
7088
7089 let cur_offset: usize = (3 - 1) * envelope_size;
7092
7093 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7095
7096 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
7101 self.path.as_ref().map(
7102 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
7103 ),
7104 encoder,
7105 offset + cur_offset,
7106 depth,
7107 )?;
7108
7109 _prev_end_offset = cur_offset + envelope_size;
7110 if 4 > max_ordinal {
7111 return Ok(());
7112 }
7113
7114 let cur_offset: usize = (4 - 1) * envelope_size;
7117
7118 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7120
7121 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_component_decl_common::Availability, D>(
7126 self.availability.as_ref().map(<fidl_fuchsia_component_decl_common::Availability as fidl::encoding::ValueTypeMarker>::borrow),
7127 encoder, offset + cur_offset, depth
7128 )?;
7129
7130 _prev_end_offset = cur_offset + envelope_size;
7131
7132 Ok(())
7133 }
7134 }
7135
7136 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Storage {
7137 #[inline(always)]
7138 fn new_empty() -> Self {
7139 Self::default()
7140 }
7141
7142 unsafe fn decode(
7143 &mut self,
7144 decoder: &mut fidl::encoding::Decoder<'_, D>,
7145 offset: usize,
7146 mut depth: fidl::encoding::Depth,
7147 ) -> fidl::Result<()> {
7148 decoder.debug_check_bounds::<Self>(offset);
7149 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7150 None => return Err(fidl::Error::NotNullable),
7151 Some(len) => len,
7152 };
7153 if len == 0 {
7155 return Ok(());
7156 };
7157 depth.increment()?;
7158 let envelope_size = 8;
7159 let bytes_len = len * envelope_size;
7160 let offset = decoder.out_of_line_offset(bytes_len)?;
7161 let mut _next_ordinal_to_read = 0;
7163 let mut next_offset = offset;
7164 let end_offset = offset + bytes_len;
7165 _next_ordinal_to_read += 1;
7166 if next_offset >= end_offset {
7167 return Ok(());
7168 }
7169
7170 while _next_ordinal_to_read < 1 {
7172 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7173 _next_ordinal_to_read += 1;
7174 next_offset += envelope_size;
7175 }
7176
7177 let next_out_of_line = decoder.next_out_of_line();
7178 let handles_before = decoder.remaining_handles();
7179 if let Some((inlined, num_bytes, num_handles)) =
7180 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7181 {
7182 let member_inline_size =
7183 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7184 decoder.context,
7185 );
7186 if inlined != (member_inline_size <= 4) {
7187 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7188 }
7189 let inner_offset;
7190 let mut inner_depth = depth.clone();
7191 if inlined {
7192 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7193 inner_offset = next_offset;
7194 } else {
7195 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7196 inner_depth.increment()?;
7197 }
7198 let val_ref = self
7199 .name
7200 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7201 fidl::decode!(
7202 fidl::encoding::BoundedString<255>,
7203 D,
7204 val_ref,
7205 decoder,
7206 inner_offset,
7207 inner_depth
7208 )?;
7209 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7210 {
7211 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7212 }
7213 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7214 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7215 }
7216 }
7217
7218 next_offset += envelope_size;
7219 _next_ordinal_to_read += 1;
7220 if next_offset >= end_offset {
7221 return Ok(());
7222 }
7223
7224 while _next_ordinal_to_read < 2 {
7226 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7227 _next_ordinal_to_read += 1;
7228 next_offset += envelope_size;
7229 }
7230
7231 let next_out_of_line = decoder.next_out_of_line();
7232 let handles_before = decoder.remaining_handles();
7233 if let Some((inlined, num_bytes, num_handles)) =
7234 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7235 {
7236 let member_inline_size =
7237 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7238 decoder.context,
7239 );
7240 if inlined != (member_inline_size <= 4) {
7241 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7242 }
7243 let inner_offset;
7244 let mut inner_depth = depth.clone();
7245 if inlined {
7246 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7247 inner_offset = next_offset;
7248 } else {
7249 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7250 inner_depth.increment()?;
7251 }
7252 let val_ref = self
7253 .as_
7254 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7255 fidl::decode!(
7256 fidl::encoding::BoundedString<255>,
7257 D,
7258 val_ref,
7259 decoder,
7260 inner_offset,
7261 inner_depth
7262 )?;
7263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7264 {
7265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7266 }
7267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7269 }
7270 }
7271
7272 next_offset += envelope_size;
7273 _next_ordinal_to_read += 1;
7274 if next_offset >= end_offset {
7275 return Ok(());
7276 }
7277
7278 while _next_ordinal_to_read < 3 {
7280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7281 _next_ordinal_to_read += 1;
7282 next_offset += envelope_size;
7283 }
7284
7285 let next_out_of_line = decoder.next_out_of_line();
7286 let handles_before = decoder.remaining_handles();
7287 if let Some((inlined, num_bytes, num_handles)) =
7288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7289 {
7290 let member_inline_size =
7291 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
7292 decoder.context,
7293 );
7294 if inlined != (member_inline_size <= 4) {
7295 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7296 }
7297 let inner_offset;
7298 let mut inner_depth = depth.clone();
7299 if inlined {
7300 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7301 inner_offset = next_offset;
7302 } else {
7303 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7304 inner_depth.increment()?;
7305 }
7306 let val_ref = self
7307 .path
7308 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
7309 fidl::decode!(
7310 fidl::encoding::BoundedString<255>,
7311 D,
7312 val_ref,
7313 decoder,
7314 inner_offset,
7315 inner_depth
7316 )?;
7317 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7318 {
7319 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7320 }
7321 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7322 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7323 }
7324 }
7325
7326 next_offset += envelope_size;
7327 _next_ordinal_to_read += 1;
7328 if next_offset >= end_offset {
7329 return Ok(());
7330 }
7331
7332 while _next_ordinal_to_read < 4 {
7334 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7335 _next_ordinal_to_read += 1;
7336 next_offset += envelope_size;
7337 }
7338
7339 let next_out_of_line = decoder.next_out_of_line();
7340 let handles_before = decoder.remaining_handles();
7341 if let Some((inlined, num_bytes, num_handles)) =
7342 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7343 {
7344 let member_inline_size = <fidl_fuchsia_component_decl_common::Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7345 if inlined != (member_inline_size <= 4) {
7346 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7347 }
7348 let inner_offset;
7349 let mut inner_depth = depth.clone();
7350 if inlined {
7351 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7352 inner_offset = next_offset;
7353 } else {
7354 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7355 inner_depth.increment()?;
7356 }
7357 let val_ref = self.availability.get_or_insert_with(|| {
7358 fidl::new_empty!(fidl_fuchsia_component_decl_common::Availability, D)
7359 });
7360 fidl::decode!(
7361 fidl_fuchsia_component_decl_common::Availability,
7362 D,
7363 val_ref,
7364 decoder,
7365 inner_offset,
7366 inner_depth
7367 )?;
7368 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7369 {
7370 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7371 }
7372 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7373 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7374 }
7375 }
7376
7377 next_offset += envelope_size;
7378
7379 while next_offset < end_offset {
7381 _next_ordinal_to_read += 1;
7382 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7383 next_offset += envelope_size;
7384 }
7385
7386 Ok(())
7387 }
7388 }
7389
7390 impl fidl::encoding::ValueTypeMarker for Capability {
7391 type Borrowed<'a> = &'a Self;
7392 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7393 value
7394 }
7395 }
7396
7397 unsafe impl fidl::encoding::TypeMarker for Capability {
7398 type Owned = Self;
7399
7400 #[inline(always)]
7401 fn inline_align(_context: fidl::encoding::Context) -> usize {
7402 8
7403 }
7404
7405 #[inline(always)]
7406 fn inline_size(_context: fidl::encoding::Context) -> usize {
7407 16
7408 }
7409 }
7410
7411 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Capability, D>
7412 for &Capability
7413 {
7414 #[inline]
7415 unsafe fn encode(
7416 self,
7417 encoder: &mut fidl::encoding::Encoder<'_, D>,
7418 offset: usize,
7419 _depth: fidl::encoding::Depth,
7420 ) -> fidl::Result<()> {
7421 encoder.debug_check_bounds::<Capability>(offset);
7422 encoder.write_num::<u64>(self.ordinal(), offset);
7423 match self {
7424 Capability::Protocol(ref val) => fidl::encoding::encode_in_envelope::<Protocol, D>(
7425 <Protocol as fidl::encoding::ValueTypeMarker>::borrow(val),
7426 encoder,
7427 offset + 8,
7428 _depth,
7429 ),
7430 Capability::Directory(ref val) => {
7431 fidl::encoding::encode_in_envelope::<Directory, D>(
7432 <Directory as fidl::encoding::ValueTypeMarker>::borrow(val),
7433 encoder,
7434 offset + 8,
7435 _depth,
7436 )
7437 }
7438 Capability::Storage(ref val) => fidl::encoding::encode_in_envelope::<Storage, D>(
7439 <Storage as fidl::encoding::ValueTypeMarker>::borrow(val),
7440 encoder,
7441 offset + 8,
7442 _depth,
7443 ),
7444 Capability::Service(ref val) => fidl::encoding::encode_in_envelope::<Service, D>(
7445 <Service as fidl::encoding::ValueTypeMarker>::borrow(val),
7446 encoder,
7447 offset + 8,
7448 _depth,
7449 ),
7450 Capability::EventStream(ref val) => {
7451 fidl::encoding::encode_in_envelope::<EventStream, D>(
7452 <EventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
7453 encoder,
7454 offset + 8,
7455 _depth,
7456 )
7457 }
7458 Capability::Config(ref val) => fidl::encoding::encode_in_envelope::<Config, D>(
7459 <Config as fidl::encoding::ValueTypeMarker>::borrow(val),
7460 encoder,
7461 offset + 8,
7462 _depth,
7463 ),
7464 Capability::Dictionary(ref val) => {
7465 fidl::encoding::encode_in_envelope::<Dictionary, D>(
7466 <Dictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
7467 encoder,
7468 offset + 8,
7469 _depth,
7470 )
7471 }
7472 Capability::Resolver(ref val) => fidl::encoding::encode_in_envelope::<Resolver, D>(
7473 <Resolver as fidl::encoding::ValueTypeMarker>::borrow(val),
7474 encoder,
7475 offset + 8,
7476 _depth,
7477 ),
7478 Capability::Runner(ref val) => fidl::encoding::encode_in_envelope::<Runner, D>(
7479 <Runner as fidl::encoding::ValueTypeMarker>::borrow(val),
7480 encoder,
7481 offset + 8,
7482 _depth,
7483 ),
7484 Capability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7485 }
7486 }
7487 }
7488
7489 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Capability {
7490 #[inline(always)]
7491 fn new_empty() -> Self {
7492 Self::__SourceBreaking { unknown_ordinal: 0 }
7493 }
7494
7495 #[inline]
7496 unsafe fn decode(
7497 &mut self,
7498 decoder: &mut fidl::encoding::Decoder<'_, D>,
7499 offset: usize,
7500 mut depth: fidl::encoding::Depth,
7501 ) -> fidl::Result<()> {
7502 decoder.debug_check_bounds::<Self>(offset);
7503 #[allow(unused_variables)]
7504 let next_out_of_line = decoder.next_out_of_line();
7505 let handles_before = decoder.remaining_handles();
7506 let (ordinal, inlined, num_bytes, num_handles) =
7507 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7508
7509 let member_inline_size = match ordinal {
7510 1 => <Protocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7511 2 => <Directory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7512 3 => <Storage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7513 4 => <Service as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7514 6 => <EventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7515 7 => <Config as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7516 8 => <Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7517 9 => <Resolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7518 10 => <Runner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7519 0 => return Err(fidl::Error::UnknownUnionTag),
7520 _ => num_bytes as usize,
7521 };
7522
7523 if inlined != (member_inline_size <= 4) {
7524 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7525 }
7526 let _inner_offset;
7527 if inlined {
7528 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7529 _inner_offset = offset + 8;
7530 } else {
7531 depth.increment()?;
7532 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7533 }
7534 match ordinal {
7535 1 => {
7536 #[allow(irrefutable_let_patterns)]
7537 if let Capability::Protocol(_) = self {
7538 } else {
7540 *self = Capability::Protocol(fidl::new_empty!(Protocol, D));
7542 }
7543 #[allow(irrefutable_let_patterns)]
7544 if let Capability::Protocol(ref mut val) = self {
7545 fidl::decode!(Protocol, D, val, decoder, _inner_offset, depth)?;
7546 } else {
7547 unreachable!()
7548 }
7549 }
7550 2 => {
7551 #[allow(irrefutable_let_patterns)]
7552 if let Capability::Directory(_) = self {
7553 } else {
7555 *self = Capability::Directory(fidl::new_empty!(Directory, D));
7557 }
7558 #[allow(irrefutable_let_patterns)]
7559 if let Capability::Directory(ref mut val) = self {
7560 fidl::decode!(Directory, D, val, decoder, _inner_offset, depth)?;
7561 } else {
7562 unreachable!()
7563 }
7564 }
7565 3 => {
7566 #[allow(irrefutable_let_patterns)]
7567 if let Capability::Storage(_) = self {
7568 } else {
7570 *self = Capability::Storage(fidl::new_empty!(Storage, D));
7572 }
7573 #[allow(irrefutable_let_patterns)]
7574 if let Capability::Storage(ref mut val) = self {
7575 fidl::decode!(Storage, D, val, decoder, _inner_offset, depth)?;
7576 } else {
7577 unreachable!()
7578 }
7579 }
7580 4 => {
7581 #[allow(irrefutable_let_patterns)]
7582 if let Capability::Service(_) = self {
7583 } else {
7585 *self = Capability::Service(fidl::new_empty!(Service, D));
7587 }
7588 #[allow(irrefutable_let_patterns)]
7589 if let Capability::Service(ref mut val) = self {
7590 fidl::decode!(Service, D, val, decoder, _inner_offset, depth)?;
7591 } else {
7592 unreachable!()
7593 }
7594 }
7595 6 => {
7596 #[allow(irrefutable_let_patterns)]
7597 if let Capability::EventStream(_) = self {
7598 } else {
7600 *self = Capability::EventStream(fidl::new_empty!(EventStream, D));
7602 }
7603 #[allow(irrefutable_let_patterns)]
7604 if let Capability::EventStream(ref mut val) = self {
7605 fidl::decode!(EventStream, D, val, decoder, _inner_offset, depth)?;
7606 } else {
7607 unreachable!()
7608 }
7609 }
7610 7 => {
7611 #[allow(irrefutable_let_patterns)]
7612 if let Capability::Config(_) = self {
7613 } else {
7615 *self = Capability::Config(fidl::new_empty!(Config, D));
7617 }
7618 #[allow(irrefutable_let_patterns)]
7619 if let Capability::Config(ref mut val) = self {
7620 fidl::decode!(Config, D, val, decoder, _inner_offset, depth)?;
7621 } else {
7622 unreachable!()
7623 }
7624 }
7625 8 => {
7626 #[allow(irrefutable_let_patterns)]
7627 if let Capability::Dictionary(_) = self {
7628 } else {
7630 *self = Capability::Dictionary(fidl::new_empty!(Dictionary, D));
7632 }
7633 #[allow(irrefutable_let_patterns)]
7634 if let Capability::Dictionary(ref mut val) = self {
7635 fidl::decode!(Dictionary, D, val, decoder, _inner_offset, depth)?;
7636 } else {
7637 unreachable!()
7638 }
7639 }
7640 9 => {
7641 #[allow(irrefutable_let_patterns)]
7642 if let Capability::Resolver(_) = self {
7643 } else {
7645 *self = Capability::Resolver(fidl::new_empty!(Resolver, D));
7647 }
7648 #[allow(irrefutable_let_patterns)]
7649 if let Capability::Resolver(ref mut val) = self {
7650 fidl::decode!(Resolver, D, val, decoder, _inner_offset, depth)?;
7651 } else {
7652 unreachable!()
7653 }
7654 }
7655 10 => {
7656 #[allow(irrefutable_let_patterns)]
7657 if let Capability::Runner(_) = self {
7658 } else {
7660 *self = Capability::Runner(fidl::new_empty!(Runner, D));
7662 }
7663 #[allow(irrefutable_let_patterns)]
7664 if let Capability::Runner(ref mut val) = self {
7665 fidl::decode!(Runner, D, val, decoder, _inner_offset, depth)?;
7666 } else {
7667 unreachable!()
7668 }
7669 }
7670 #[allow(deprecated)]
7671 ordinal => {
7672 for _ in 0..num_handles {
7673 decoder.drop_next_handle()?;
7674 }
7675 *self = Capability::__SourceBreaking { unknown_ordinal: ordinal };
7676 }
7677 }
7678 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7679 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7680 }
7681 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7682 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7683 }
7684 Ok(())
7685 }
7686 }
7687}