fidl_next_common_fuchsia_component_decl/
fidl_next_common_fuchsia_component_decl.rs

1// DO NOT EDIT: This file is machine-generated by fidlgen
2#![warn(clippy::all)]
3#![allow(unused_parens, unused_variables, unused_mut, unused_imports, unreachable_code)]
4
5pub mod natural {
6
7    #[doc = " The kinds of offers that can target the children in a collection.\n"]
8    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9    #[repr(u32)]
10    pub enum AllowedOffers {
11        StaticOnly = 1,
12        StaticAndDynamic = 2,
13    }
14    impl ::core::convert::TryFrom<u32> for AllowedOffers {
15        type Error = ::fidl_next::UnknownStrictEnumMemberError;
16        fn try_from(
17            value: u32,
18        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
19            match value {
20                1 => Ok(Self::StaticOnly),
21                2 => Ok(Self::StaticAndDynamic),
22
23                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
24            }
25        }
26    }
27
28    unsafe impl<___E> ::fidl_next::Encode<crate::wire::AllowedOffers, ___E> for AllowedOffers
29    where
30        ___E: ?Sized,
31    {
32        #[inline]
33        fn encode(
34            self,
35            encoder: &mut ___E,
36            out: &mut ::core::mem::MaybeUninit<crate::wire::AllowedOffers>,
37            _: (),
38        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
39            ::fidl_next::Encode::encode(&self, encoder, out, ())
40        }
41    }
42
43    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AllowedOffers, ___E> for &'a AllowedOffers
44    where
45        ___E: ?Sized,
46    {
47        #[inline]
48        fn encode(
49            self,
50            encoder: &mut ___E,
51            out: &mut ::core::mem::MaybeUninit<crate::wire::AllowedOffers>,
52            _: (),
53        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
54            ::fidl_next::munge!(let crate::wire::AllowedOffers { value } = out);
55            let _ = value.write(::fidl_next::WireU32::from(match *self {
56                AllowedOffers::StaticOnly => 1,
57
58                AllowedOffers::StaticAndDynamic => 2,
59            }));
60
61            Ok(())
62        }
63    }
64
65    impl ::core::convert::From<crate::wire::AllowedOffers> for AllowedOffers {
66        fn from(wire: crate::wire::AllowedOffers) -> Self {
67            match u32::from(wire.value) {
68                1 => Self::StaticOnly,
69
70                2 => Self::StaticAndDynamic,
71
72                _ => unsafe { ::core::hint::unreachable_unchecked() },
73            }
74        }
75    }
76
77    impl ::fidl_next::FromWire<crate::wire::AllowedOffers> for AllowedOffers {
78        #[inline]
79        fn from_wire(wire: crate::wire::AllowedOffers) -> Self {
80            Self::from(wire)
81        }
82    }
83
84    impl ::fidl_next::FromWireRef<crate::wire::AllowedOffers> for AllowedOffers {
85        #[inline]
86        fn from_wire_ref(wire: &crate::wire::AllowedOffers) -> Self {
87            Self::from(*wire)
88        }
89    }
90
91    #[doc = " Describes the expected availability of the capability.\n\n Some capabilities may not be present on all system configurations. In those\n cases, the availability will be declared as `OPTIONAL` along the chains of\n exposes/offers/uses, and the capability would be routed from `void` on\n system configurations where it does not make sense to route or provide a\n particular capability (e.g. graphical capabilities on a headless system).\n"]
92    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
93    #[repr(u32)]
94    pub enum Availability {
95        Required = 1,
96        Optional = 2,
97        SameAsTarget = 3,
98        Transitional = 4,
99    }
100    impl ::core::convert::TryFrom<u32> for Availability {
101        type Error = ::fidl_next::UnknownStrictEnumMemberError;
102        fn try_from(
103            value: u32,
104        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
105            match value {
106                1 => Ok(Self::Required),
107                2 => Ok(Self::Optional),
108                3 => Ok(Self::SameAsTarget),
109                4 => Ok(Self::Transitional),
110
111                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
112            }
113        }
114    }
115
116    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Availability, ___E> for Availability
117    where
118        ___E: ?Sized,
119    {
120        #[inline]
121        fn encode(
122            self,
123            encoder: &mut ___E,
124            out: &mut ::core::mem::MaybeUninit<crate::wire::Availability>,
125            _: (),
126        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
127            ::fidl_next::Encode::encode(&self, encoder, out, ())
128        }
129    }
130
131    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Availability, ___E> for &'a Availability
132    where
133        ___E: ?Sized,
134    {
135        #[inline]
136        fn encode(
137            self,
138            encoder: &mut ___E,
139            out: &mut ::core::mem::MaybeUninit<crate::wire::Availability>,
140            _: (),
141        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
142            ::fidl_next::munge!(let crate::wire::Availability { value } = out);
143            let _ = value.write(::fidl_next::WireU32::from(match *self {
144                Availability::Required => 1,
145
146                Availability::Optional => 2,
147
148                Availability::SameAsTarget => 3,
149
150                Availability::Transitional => 4,
151            }));
152
153            Ok(())
154        }
155    }
156
157    impl ::core::convert::From<crate::wire::Availability> for Availability {
158        fn from(wire: crate::wire::Availability) -> Self {
159            match u32::from(wire.value) {
160                1 => Self::Required,
161
162                2 => Self::Optional,
163
164                3 => Self::SameAsTarget,
165
166                4 => Self::Transitional,
167
168                _ => unsafe { ::core::hint::unreachable_unchecked() },
169            }
170        }
171    }
172
173    impl ::fidl_next::FromWire<crate::wire::Availability> for Availability {
174        #[inline]
175        fn from_wire(wire: crate::wire::Availability) -> Self {
176            Self::from(wire)
177        }
178    }
179
180    impl ::fidl_next::FromWireRef<crate::wire::Availability> for Availability {
181        #[inline]
182        fn from_wire_ref(wire: &crate::wire::Availability) -> Self {
183            Self::from(*wire)
184        }
185    }
186
187    pub type Name = ::std::string::String;
188
189    #[doc = " Declares a service capability backed by this component.\n\n To learn more about services, see:\n https://fuchsia.dev/fuchsia-src/glossary#service\n"]
190    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
191    pub struct Service {
192        pub name: ::core::option::Option<::std::string::String>,
193
194        pub source_path: ::core::option::Option<::std::string::String>,
195    }
196
197    impl Service {
198        fn __max_ordinal(&self) -> usize {
199            if self.source_path.is_some() {
200                return 2;
201            }
202
203            if self.name.is_some() {
204                return 1;
205            }
206
207            0
208        }
209    }
210
211    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Service<'static>, ___E> for Service
212    where
213        ___E: ::fidl_next::Encoder + ?Sized,
214    {
215        #[inline]
216        fn encode(
217            mut self,
218            encoder: &mut ___E,
219            out: &mut ::core::mem::MaybeUninit<crate::wire::Service<'static>>,
220            _: (),
221        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
222            ::fidl_next::munge!(let crate::wire::Service { table } = out);
223
224            let max_ord = self.__max_ordinal();
225
226            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
227            ::fidl_next::Wire::zero_padding(&mut out);
228
229            let mut preallocated =
230                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
231
232            for i in 1..=max_ord {
233                match i {
234                    2 => {
235                        if let Some(value) = self.source_path.take() {
236                            ::fidl_next::WireEnvelope::encode_value::<
237                                ::fidl_next::WireString<'static>,
238                                ___E,
239                            >(
240                                value, preallocated.encoder, &mut out, 1024
241                            )?;
242                        } else {
243                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
244                        }
245                    }
246
247                    1 => {
248                        if let Some(value) = self.name.take() {
249                            ::fidl_next::WireEnvelope::encode_value::<
250                                ::fidl_next::WireString<'static>,
251                                ___E,
252                            >(
253                                value, preallocated.encoder, &mut out, 100
254                            )?;
255                        } else {
256                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
257                        }
258                    }
259
260                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
261                }
262                unsafe {
263                    preallocated.write_next(out.assume_init_ref());
264                }
265            }
266
267            ::fidl_next::WireTable::encode_len(table, max_ord);
268
269            Ok(())
270        }
271    }
272
273    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Service<'static>, ___E> for &'a Service
274    where
275        ___E: ::fidl_next::Encoder + ?Sized,
276    {
277        #[inline]
278        fn encode(
279            self,
280            encoder: &mut ___E,
281            out: &mut ::core::mem::MaybeUninit<crate::wire::Service<'static>>,
282            _: (),
283        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
284            ::fidl_next::munge!(let crate::wire::Service { table } = out);
285
286            let max_ord = self.__max_ordinal();
287
288            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
289            ::fidl_next::Wire::zero_padding(&mut out);
290
291            let mut preallocated =
292                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
293
294            for i in 1..=max_ord {
295                match i {
296                    2 => {
297                        if let Some(value) = &self.source_path {
298                            ::fidl_next::WireEnvelope::encode_value::<
299                                ::fidl_next::WireString<'static>,
300                                ___E,
301                            >(
302                                value, preallocated.encoder, &mut out, 1024
303                            )?;
304                        } else {
305                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
306                        }
307                    }
308
309                    1 => {
310                        if let Some(value) = &self.name {
311                            ::fidl_next::WireEnvelope::encode_value::<
312                                ::fidl_next::WireString<'static>,
313                                ___E,
314                            >(
315                                value, preallocated.encoder, &mut out, 100
316                            )?;
317                        } else {
318                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
319                        }
320                    }
321
322                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
323                }
324                unsafe {
325                    preallocated.write_next(out.assume_init_ref());
326                }
327            }
328
329            ::fidl_next::WireTable::encode_len(table, max_ord);
330
331            Ok(())
332        }
333    }
334
335    impl<'de> ::fidl_next::FromWire<crate::wire::Service<'de>> for Service {
336        #[inline]
337        fn from_wire(wire_: crate::wire::Service<'de>) -> Self {
338            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
339
340            let name = wire_.table.get(1);
341
342            let source_path = wire_.table.get(2);
343
344            Self {
345                name: name.map(|envelope| {
346                    ::fidl_next::FromWire::from_wire(unsafe {
347                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
348                    })
349                }),
350
351                source_path: source_path.map(|envelope| {
352                    ::fidl_next::FromWire::from_wire(unsafe {
353                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
354                    })
355                }),
356            }
357        }
358    }
359
360    impl<'de> ::fidl_next::FromWireRef<crate::wire::Service<'de>> for Service {
361        #[inline]
362        fn from_wire_ref(wire: &crate::wire::Service<'de>) -> Self {
363            Self {
364                name: wire.table.get(1).map(|envelope| {
365                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
366                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
367                    })
368                }),
369
370                source_path: wire.table.get(2).map(|envelope| {
371                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
372                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
373                    })
374                }),
375            }
376        }
377    }
378
379    #[doc = " Declares a directory capability backed by this component.\n\n To learn more about directories, see:\n https://fuchsia.dev/fuchsia-src/glossary#directory\n"]
380    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
381    pub struct Directory {
382        pub name: ::core::option::Option<::std::string::String>,
383
384        pub source_path: ::core::option::Option<::std::string::String>,
385
386        pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
387    }
388
389    impl Directory {
390        fn __max_ordinal(&self) -> usize {
391            if self.rights.is_some() {
392                return 3;
393            }
394
395            if self.source_path.is_some() {
396                return 2;
397            }
398
399            if self.name.is_some() {
400                return 1;
401            }
402
403            0
404        }
405    }
406
407    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Directory<'static>, ___E> for Directory
408    where
409        ___E: ::fidl_next::Encoder + ?Sized,
410    {
411        #[inline]
412        fn encode(
413            mut self,
414            encoder: &mut ___E,
415            out: &mut ::core::mem::MaybeUninit<crate::wire::Directory<'static>>,
416            _: (),
417        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
418            ::fidl_next::munge!(let crate::wire::Directory { table } = out);
419
420            let max_ord = self.__max_ordinal();
421
422            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
423            ::fidl_next::Wire::zero_padding(&mut out);
424
425            let mut preallocated =
426                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
427
428            for i in 1..=max_ord {
429                match i {
430                    3 => {
431                        if let Some(value) = self.rights.take() {
432                            ::fidl_next::WireEnvelope::encode_value::<
433                                ::fidl_next_common_fuchsia_io::wire::Operations,
434                                ___E,
435                            >(
436                                value, preallocated.encoder, &mut out, ()
437                            )?;
438                        } else {
439                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
440                        }
441                    }
442
443                    2 => {
444                        if let Some(value) = self.source_path.take() {
445                            ::fidl_next::WireEnvelope::encode_value::<
446                                ::fidl_next::WireString<'static>,
447                                ___E,
448                            >(
449                                value, preallocated.encoder, &mut out, 1024
450                            )?;
451                        } else {
452                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
453                        }
454                    }
455
456                    1 => {
457                        if let Some(value) = self.name.take() {
458                            ::fidl_next::WireEnvelope::encode_value::<
459                                ::fidl_next::WireString<'static>,
460                                ___E,
461                            >(
462                                value, preallocated.encoder, &mut out, 100
463                            )?;
464                        } else {
465                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
466                        }
467                    }
468
469                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
470                }
471                unsafe {
472                    preallocated.write_next(out.assume_init_ref());
473                }
474            }
475
476            ::fidl_next::WireTable::encode_len(table, max_ord);
477
478            Ok(())
479        }
480    }
481
482    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Directory<'static>, ___E> for &'a Directory
483    where
484        ___E: ::fidl_next::Encoder + ?Sized,
485    {
486        #[inline]
487        fn encode(
488            self,
489            encoder: &mut ___E,
490            out: &mut ::core::mem::MaybeUninit<crate::wire::Directory<'static>>,
491            _: (),
492        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
493            ::fidl_next::munge!(let crate::wire::Directory { table } = out);
494
495            let max_ord = self.__max_ordinal();
496
497            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
498            ::fidl_next::Wire::zero_padding(&mut out);
499
500            let mut preallocated =
501                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
502
503            for i in 1..=max_ord {
504                match i {
505                    3 => {
506                        if let Some(value) = &self.rights {
507                            ::fidl_next::WireEnvelope::encode_value::<
508                                ::fidl_next_common_fuchsia_io::wire::Operations,
509                                ___E,
510                            >(
511                                value, preallocated.encoder, &mut out, ()
512                            )?;
513                        } else {
514                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
515                        }
516                    }
517
518                    2 => {
519                        if let Some(value) = &self.source_path {
520                            ::fidl_next::WireEnvelope::encode_value::<
521                                ::fidl_next::WireString<'static>,
522                                ___E,
523                            >(
524                                value, preallocated.encoder, &mut out, 1024
525                            )?;
526                        } else {
527                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
528                        }
529                    }
530
531                    1 => {
532                        if let Some(value) = &self.name {
533                            ::fidl_next::WireEnvelope::encode_value::<
534                                ::fidl_next::WireString<'static>,
535                                ___E,
536                            >(
537                                value, preallocated.encoder, &mut out, 100
538                            )?;
539                        } else {
540                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
541                        }
542                    }
543
544                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
545                }
546                unsafe {
547                    preallocated.write_next(out.assume_init_ref());
548                }
549            }
550
551            ::fidl_next::WireTable::encode_len(table, max_ord);
552
553            Ok(())
554        }
555    }
556
557    impl<'de> ::fidl_next::FromWire<crate::wire::Directory<'de>> for Directory {
558        #[inline]
559        fn from_wire(wire_: crate::wire::Directory<'de>) -> Self {
560            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
561
562            let name = wire_.table.get(1);
563
564            let source_path = wire_.table.get(2);
565
566            let rights = wire_.table.get(3);
567
568            Self {
569                name: name.map(|envelope| {
570                    ::fidl_next::FromWire::from_wire(unsafe {
571                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
572                    })
573                }),
574
575                source_path: source_path.map(|envelope| {
576                    ::fidl_next::FromWire::from_wire(unsafe {
577                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
578                    })
579                }),
580
581                rights: rights.map(|envelope| {
582                    ::fidl_next::FromWire::from_wire(unsafe {
583                        envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
584                    })
585                }),
586            }
587        }
588    }
589
590    impl<'de> ::fidl_next::FromWireRef<crate::wire::Directory<'de>> for Directory {
591        #[inline]
592        fn from_wire_ref(wire: &crate::wire::Directory<'de>) -> Self {
593            Self {
594                name: wire.table.get(1).map(|envelope| {
595                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
596                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
597                    })
598                }),
599
600                source_path: wire.table.get(2).map(|envelope| {
601                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
602                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
603                    })
604                }),
605
606                rights: wire.table.get(3).map(|envelope| {
607                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
608                        envelope
609                            .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
610                    })
611                }),
612            }
613        }
614    }
615
616    #[doc = " A reference to a component\'s parent instance.\n"]
617    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
618    #[repr(C)]
619    pub struct ParentRef {}
620
621    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ParentRef, ___E> for ParentRef
622    where
623        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
624    {
625        #[inline]
626        fn encode(
627            self,
628            encoder_: &mut ___E,
629            out_: &mut ::core::mem::MaybeUninit<crate::wire::ParentRef>,
630            _: (),
631        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
632            *out_ = ::core::mem::MaybeUninit::zeroed();
633
634            Ok(())
635        }
636    }
637
638    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ParentRef, ___E> for &'a ParentRef
639    where
640        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
641    {
642        #[inline]
643        fn encode(
644            self,
645            encoder_: &mut ___E,
646            out_: &mut ::core::mem::MaybeUninit<crate::wire::ParentRef>,
647            _: (),
648        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
649            ::fidl_next::munge! {
650                let crate::wire::ParentRef {
651
652                        _empty,
653
654
655                } = out_;
656            }
657
658            Ok(())
659        }
660    }
661
662    unsafe impl<___E>
663        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::ParentRef>, ___E>
664        for ParentRef
665    where
666        ___E: ::fidl_next::Encoder + ?Sized,
667        ParentRef: ::fidl_next::Encode<crate::wire::ParentRef, ___E>,
668    {
669        #[inline]
670        fn encode_option(
671            this: ::core::option::Option<Self>,
672            encoder: &mut ___E,
673            out: &mut ::core::mem::MaybeUninit<
674                ::fidl_next::WireBox<'static, crate::wire::ParentRef>,
675            >,
676            _: (),
677        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
678            if let Some(inner) = this {
679                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
680                ::fidl_next::WireBox::encode_present(out);
681            } else {
682                ::fidl_next::WireBox::encode_absent(out);
683            }
684
685            Ok(())
686        }
687    }
688
689    unsafe impl<'a, ___E>
690        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::ParentRef>, ___E>
691        for &'a ParentRef
692    where
693        ___E: ::fidl_next::Encoder + ?Sized,
694        &'a ParentRef: ::fidl_next::Encode<crate::wire::ParentRef, ___E>,
695    {
696        #[inline]
697        fn encode_option(
698            this: ::core::option::Option<Self>,
699            encoder: &mut ___E,
700            out: &mut ::core::mem::MaybeUninit<
701                ::fidl_next::WireBox<'static, crate::wire::ParentRef>,
702            >,
703            _: (),
704        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
705            if let Some(inner) = this {
706                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
707                ::fidl_next::WireBox::encode_present(out);
708            } else {
709                ::fidl_next::WireBox::encode_absent(out);
710            }
711
712            Ok(())
713        }
714    }
715
716    impl ::fidl_next::FromWire<crate::wire::ParentRef> for ParentRef {
717        const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::ParentRef, Self> =
718            unsafe { ::fidl_next::CopyOptimization::enable_if(true) };
719
720        #[inline]
721        fn from_wire(wire: crate::wire::ParentRef) -> Self {
722            Self {}
723        }
724    }
725
726    impl ::fidl_next::FromWireRef<crate::wire::ParentRef> for ParentRef {
727        #[inline]
728        fn from_wire_ref(wire: &crate::wire::ParentRef) -> Self {
729            Self {}
730        }
731    }
732
733    #[doc = " A reference to the component itself.\n"]
734    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
735    #[repr(C)]
736    pub struct SelfRef {}
737
738    unsafe impl<___E> ::fidl_next::Encode<crate::wire::SelfRef, ___E> for SelfRef
739    where
740        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
741    {
742        #[inline]
743        fn encode(
744            self,
745            encoder_: &mut ___E,
746            out_: &mut ::core::mem::MaybeUninit<crate::wire::SelfRef>,
747            _: (),
748        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
749            *out_ = ::core::mem::MaybeUninit::zeroed();
750
751            Ok(())
752        }
753    }
754
755    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::SelfRef, ___E> for &'a SelfRef
756    where
757        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
758    {
759        #[inline]
760        fn encode(
761            self,
762            encoder_: &mut ___E,
763            out_: &mut ::core::mem::MaybeUninit<crate::wire::SelfRef>,
764            _: (),
765        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
766            ::fidl_next::munge! {
767                let crate::wire::SelfRef {
768
769                        _empty,
770
771
772                } = out_;
773            }
774
775            Ok(())
776        }
777    }
778
779    unsafe impl<___E>
780        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::SelfRef>, ___E>
781        for SelfRef
782    where
783        ___E: ::fidl_next::Encoder + ?Sized,
784        SelfRef: ::fidl_next::Encode<crate::wire::SelfRef, ___E>,
785    {
786        #[inline]
787        fn encode_option(
788            this: ::core::option::Option<Self>,
789            encoder: &mut ___E,
790            out: &mut ::core::mem::MaybeUninit<::fidl_next::WireBox<'static, crate::wire::SelfRef>>,
791            _: (),
792        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
793            if let Some(inner) = this {
794                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
795                ::fidl_next::WireBox::encode_present(out);
796            } else {
797                ::fidl_next::WireBox::encode_absent(out);
798            }
799
800            Ok(())
801        }
802    }
803
804    unsafe impl<'a, ___E>
805        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::SelfRef>, ___E>
806        for &'a SelfRef
807    where
808        ___E: ::fidl_next::Encoder + ?Sized,
809        &'a SelfRef: ::fidl_next::Encode<crate::wire::SelfRef, ___E>,
810    {
811        #[inline]
812        fn encode_option(
813            this: ::core::option::Option<Self>,
814            encoder: &mut ___E,
815            out: &mut ::core::mem::MaybeUninit<::fidl_next::WireBox<'static, crate::wire::SelfRef>>,
816            _: (),
817        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
818            if let Some(inner) = this {
819                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
820                ::fidl_next::WireBox::encode_present(out);
821            } else {
822                ::fidl_next::WireBox::encode_absent(out);
823            }
824
825            Ok(())
826        }
827    }
828
829    impl ::fidl_next::FromWire<crate::wire::SelfRef> for SelfRef {
830        const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::SelfRef, Self> =
831            unsafe { ::fidl_next::CopyOptimization::enable_if(true) };
832
833        #[inline]
834        fn from_wire(wire: crate::wire::SelfRef) -> Self {
835            Self {}
836        }
837    }
838
839    impl ::fidl_next::FromWireRef<crate::wire::SelfRef> for SelfRef {
840        #[inline]
841        fn from_wire_ref(wire: &crate::wire::SelfRef) -> Self {
842            Self {}
843        }
844    }
845
846    pub type ChildName = ::std::string::String;
847
848    #[doc = " A reference to one of the component\'s child instances.\n"]
849    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
850    pub struct ChildRef {
851        pub name: ::std::string::String,
852
853        pub collection: ::core::option::Option<::std::string::String>,
854    }
855
856    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E> for ChildRef
857    where
858        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
859        ___E: ::fidl_next::Encoder,
860    {
861        #[inline]
862        fn encode(
863            self,
864            encoder_: &mut ___E,
865            out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
866            _: (),
867        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
868            ::fidl_next::munge! {
869                let crate::wire::ChildRef {
870                    name,
871                    collection,
872
873                } = out_;
874            }
875
876            ::fidl_next::Encode::encode(self.name, encoder_, name, 1024)?;
877
878            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
879            ::fidl_next::Constrained::validate(_field, 1024)?;
880
881            ::fidl_next::Encode::encode(self.collection, encoder_, collection, 100)?;
882
883            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(collection.as_mut_ptr()) };
884            ::fidl_next::Constrained::validate(_field, 100)?;
885
886            Ok(())
887        }
888    }
889
890    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E> for &'a ChildRef
891    where
892        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
893        ___E: ::fidl_next::Encoder,
894    {
895        #[inline]
896        fn encode(
897            self,
898            encoder_: &mut ___E,
899            out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
900            _: (),
901        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
902            ::fidl_next::munge! {
903                let crate::wire::ChildRef {
904
905                    name,
906                    collection,
907
908                } = out_;
909            }
910
911            ::fidl_next::Encode::encode(&self.name, encoder_, name, 1024)?;
912
913            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
914            ::fidl_next::Constrained::validate(_field, 1024)?;
915
916            ::fidl_next::Encode::encode(&self.collection, encoder_, collection, 100)?;
917
918            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(collection.as_mut_ptr()) };
919            ::fidl_next::Constrained::validate(_field, 100)?;
920
921            Ok(())
922        }
923    }
924
925    unsafe impl<___E>
926        ::fidl_next::EncodeOption<
927            ::fidl_next::WireBox<'static, crate::wire::ChildRef<'static>>,
928            ___E,
929        > for ChildRef
930    where
931        ___E: ::fidl_next::Encoder + ?Sized,
932        ChildRef: ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>,
933    {
934        #[inline]
935        fn encode_option(
936            this: ::core::option::Option<Self>,
937            encoder: &mut ___E,
938            out: &mut ::core::mem::MaybeUninit<
939                ::fidl_next::WireBox<'static, crate::wire::ChildRef<'static>>,
940            >,
941            _: (),
942        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
943            if let Some(inner) = this {
944                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
945                ::fidl_next::WireBox::encode_present(out);
946            } else {
947                ::fidl_next::WireBox::encode_absent(out);
948            }
949
950            Ok(())
951        }
952    }
953
954    unsafe impl<'a, ___E>
955        ::fidl_next::EncodeOption<
956            ::fidl_next::WireBox<'static, crate::wire::ChildRef<'static>>,
957            ___E,
958        > for &'a ChildRef
959    where
960        ___E: ::fidl_next::Encoder + ?Sized,
961        &'a ChildRef: ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>,
962    {
963        #[inline]
964        fn encode_option(
965            this: ::core::option::Option<Self>,
966            encoder: &mut ___E,
967            out: &mut ::core::mem::MaybeUninit<
968                ::fidl_next::WireBox<'static, crate::wire::ChildRef<'static>>,
969            >,
970            _: (),
971        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
972            if let Some(inner) = this {
973                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
974                ::fidl_next::WireBox::encode_present(out);
975            } else {
976                ::fidl_next::WireBox::encode_absent(out);
977            }
978
979            Ok(())
980        }
981    }
982
983    impl<'de> ::fidl_next::FromWire<crate::wire::ChildRef<'de>> for ChildRef {
984        #[inline]
985        fn from_wire(wire: crate::wire::ChildRef<'de>) -> Self {
986            Self {
987                name: ::fidl_next::FromWire::from_wire(wire.name),
988
989                collection: ::fidl_next::FromWire::from_wire(wire.collection),
990            }
991        }
992    }
993
994    impl<'de> ::fidl_next::FromWireRef<crate::wire::ChildRef<'de>> for ChildRef {
995        #[inline]
996        fn from_wire_ref(wire: &crate::wire::ChildRef<'de>) -> Self {
997            Self {
998                name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name),
999
1000                collection: ::fidl_next::FromWireRef::from_wire_ref(&wire.collection),
1001            }
1002        }
1003    }
1004
1005    #[doc = " A reference to one of the component\'s collections.\n"]
1006    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1007    pub struct CollectionRef {
1008        pub name: ::std::string::String,
1009    }
1010
1011    unsafe impl<___E> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E> for CollectionRef
1012    where
1013        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1014        ___E: ::fidl_next::Encoder,
1015    {
1016        #[inline]
1017        fn encode(
1018            self,
1019            encoder_: &mut ___E,
1020            out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
1021            _: (),
1022        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1023            ::fidl_next::munge! {
1024                let crate::wire::CollectionRef {
1025                    name,
1026
1027                } = out_;
1028            }
1029
1030            ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
1031
1032            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
1033            ::fidl_next::Constrained::validate(_field, 100)?;
1034
1035            Ok(())
1036        }
1037    }
1038
1039    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>
1040        for &'a CollectionRef
1041    where
1042        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1043        ___E: ::fidl_next::Encoder,
1044    {
1045        #[inline]
1046        fn encode(
1047            self,
1048            encoder_: &mut ___E,
1049            out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
1050            _: (),
1051        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1052            ::fidl_next::munge! {
1053                let crate::wire::CollectionRef {
1054
1055                    name,
1056
1057                } = out_;
1058            }
1059
1060            ::fidl_next::Encode::encode(&self.name, encoder_, name, 100)?;
1061
1062            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
1063            ::fidl_next::Constrained::validate(_field, 100)?;
1064
1065            Ok(())
1066        }
1067    }
1068
1069    unsafe impl<___E>
1070        ::fidl_next::EncodeOption<
1071            ::fidl_next::WireBox<'static, crate::wire::CollectionRef<'static>>,
1072            ___E,
1073        > for CollectionRef
1074    where
1075        ___E: ::fidl_next::Encoder + ?Sized,
1076        CollectionRef: ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>,
1077    {
1078        #[inline]
1079        fn encode_option(
1080            this: ::core::option::Option<Self>,
1081            encoder: &mut ___E,
1082            out: &mut ::core::mem::MaybeUninit<
1083                ::fidl_next::WireBox<'static, crate::wire::CollectionRef<'static>>,
1084            >,
1085            _: (),
1086        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1087            if let Some(inner) = this {
1088                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1089                ::fidl_next::WireBox::encode_present(out);
1090            } else {
1091                ::fidl_next::WireBox::encode_absent(out);
1092            }
1093
1094            Ok(())
1095        }
1096    }
1097
1098    unsafe impl<'a, ___E>
1099        ::fidl_next::EncodeOption<
1100            ::fidl_next::WireBox<'static, crate::wire::CollectionRef<'static>>,
1101            ___E,
1102        > for &'a CollectionRef
1103    where
1104        ___E: ::fidl_next::Encoder + ?Sized,
1105        &'a CollectionRef: ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>,
1106    {
1107        #[inline]
1108        fn encode_option(
1109            this: ::core::option::Option<Self>,
1110            encoder: &mut ___E,
1111            out: &mut ::core::mem::MaybeUninit<
1112                ::fidl_next::WireBox<'static, crate::wire::CollectionRef<'static>>,
1113            >,
1114            _: (),
1115        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1116            if let Some(inner) = this {
1117                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1118                ::fidl_next::WireBox::encode_present(out);
1119            } else {
1120                ::fidl_next::WireBox::encode_absent(out);
1121            }
1122
1123            Ok(())
1124        }
1125    }
1126
1127    impl<'de> ::fidl_next::FromWire<crate::wire::CollectionRef<'de>> for CollectionRef {
1128        #[inline]
1129        fn from_wire(wire: crate::wire::CollectionRef<'de>) -> Self {
1130            Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
1131        }
1132    }
1133
1134    impl<'de> ::fidl_next::FromWireRef<crate::wire::CollectionRef<'de>> for CollectionRef {
1135        #[inline]
1136        fn from_wire_ref(wire: &crate::wire::CollectionRef<'de>) -> Self {
1137            Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
1138        }
1139    }
1140
1141    #[doc = " A reference to the component framework itself.\n"]
1142    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1143    #[repr(C)]
1144    pub struct FrameworkRef {}
1145
1146    unsafe impl<___E> ::fidl_next::Encode<crate::wire::FrameworkRef, ___E> for FrameworkRef
1147    where
1148        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1149    {
1150        #[inline]
1151        fn encode(
1152            self,
1153            encoder_: &mut ___E,
1154            out_: &mut ::core::mem::MaybeUninit<crate::wire::FrameworkRef>,
1155            _: (),
1156        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1157            *out_ = ::core::mem::MaybeUninit::zeroed();
1158
1159            Ok(())
1160        }
1161    }
1162
1163    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::FrameworkRef, ___E> for &'a FrameworkRef
1164    where
1165        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1166    {
1167        #[inline]
1168        fn encode(
1169            self,
1170            encoder_: &mut ___E,
1171            out_: &mut ::core::mem::MaybeUninit<crate::wire::FrameworkRef>,
1172            _: (),
1173        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1174            ::fidl_next::munge! {
1175                let crate::wire::FrameworkRef {
1176
1177                        _empty,
1178
1179
1180                } = out_;
1181            }
1182
1183            Ok(())
1184        }
1185    }
1186
1187    unsafe impl<___E>
1188        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::FrameworkRef>, ___E>
1189        for FrameworkRef
1190    where
1191        ___E: ::fidl_next::Encoder + ?Sized,
1192        FrameworkRef: ::fidl_next::Encode<crate::wire::FrameworkRef, ___E>,
1193    {
1194        #[inline]
1195        fn encode_option(
1196            this: ::core::option::Option<Self>,
1197            encoder: &mut ___E,
1198            out: &mut ::core::mem::MaybeUninit<
1199                ::fidl_next::WireBox<'static, crate::wire::FrameworkRef>,
1200            >,
1201            _: (),
1202        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1203            if let Some(inner) = this {
1204                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1205                ::fidl_next::WireBox::encode_present(out);
1206            } else {
1207                ::fidl_next::WireBox::encode_absent(out);
1208            }
1209
1210            Ok(())
1211        }
1212    }
1213
1214    unsafe impl<'a, ___E>
1215        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::FrameworkRef>, ___E>
1216        for &'a FrameworkRef
1217    where
1218        ___E: ::fidl_next::Encoder + ?Sized,
1219        &'a FrameworkRef: ::fidl_next::Encode<crate::wire::FrameworkRef, ___E>,
1220    {
1221        #[inline]
1222        fn encode_option(
1223            this: ::core::option::Option<Self>,
1224            encoder: &mut ___E,
1225            out: &mut ::core::mem::MaybeUninit<
1226                ::fidl_next::WireBox<'static, crate::wire::FrameworkRef>,
1227            >,
1228            _: (),
1229        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1230            if let Some(inner) = this {
1231                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1232                ::fidl_next::WireBox::encode_present(out);
1233            } else {
1234                ::fidl_next::WireBox::encode_absent(out);
1235            }
1236
1237            Ok(())
1238        }
1239    }
1240
1241    impl ::fidl_next::FromWire<crate::wire::FrameworkRef> for FrameworkRef {
1242        const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::FrameworkRef, Self> =
1243            unsafe { ::fidl_next::CopyOptimization::enable_if(true) };
1244
1245        #[inline]
1246        fn from_wire(wire: crate::wire::FrameworkRef) -> Self {
1247            Self {}
1248        }
1249    }
1250
1251    impl ::fidl_next::FromWireRef<crate::wire::FrameworkRef> for FrameworkRef {
1252        #[inline]
1253        fn from_wire_ref(wire: &crate::wire::FrameworkRef) -> Self {
1254            Self {}
1255        }
1256    }
1257
1258    #[doc = " A reference to a capability declared in this component.\n"]
1259    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1260    pub struct CapabilityRef {
1261        pub name: ::std::string::String,
1262    }
1263
1264    unsafe impl<___E> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E> for CapabilityRef
1265    where
1266        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1267        ___E: ::fidl_next::Encoder,
1268    {
1269        #[inline]
1270        fn encode(
1271            self,
1272            encoder_: &mut ___E,
1273            out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
1274            _: (),
1275        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1276            ::fidl_next::munge! {
1277                let crate::wire::CapabilityRef {
1278                    name,
1279
1280                } = out_;
1281            }
1282
1283            ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
1284
1285            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
1286            ::fidl_next::Constrained::validate(_field, 100)?;
1287
1288            Ok(())
1289        }
1290    }
1291
1292    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>
1293        for &'a CapabilityRef
1294    where
1295        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1296        ___E: ::fidl_next::Encoder,
1297    {
1298        #[inline]
1299        fn encode(
1300            self,
1301            encoder_: &mut ___E,
1302            out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
1303            _: (),
1304        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1305            ::fidl_next::munge! {
1306                let crate::wire::CapabilityRef {
1307
1308                    name,
1309
1310                } = out_;
1311            }
1312
1313            ::fidl_next::Encode::encode(&self.name, encoder_, name, 100)?;
1314
1315            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
1316            ::fidl_next::Constrained::validate(_field, 100)?;
1317
1318            Ok(())
1319        }
1320    }
1321
1322    unsafe impl<___E>
1323        ::fidl_next::EncodeOption<
1324            ::fidl_next::WireBox<'static, crate::wire::CapabilityRef<'static>>,
1325            ___E,
1326        > for CapabilityRef
1327    where
1328        ___E: ::fidl_next::Encoder + ?Sized,
1329        CapabilityRef: ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>,
1330    {
1331        #[inline]
1332        fn encode_option(
1333            this: ::core::option::Option<Self>,
1334            encoder: &mut ___E,
1335            out: &mut ::core::mem::MaybeUninit<
1336                ::fidl_next::WireBox<'static, crate::wire::CapabilityRef<'static>>,
1337            >,
1338            _: (),
1339        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1340            if let Some(inner) = this {
1341                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1342                ::fidl_next::WireBox::encode_present(out);
1343            } else {
1344                ::fidl_next::WireBox::encode_absent(out);
1345            }
1346
1347            Ok(())
1348        }
1349    }
1350
1351    unsafe impl<'a, ___E>
1352        ::fidl_next::EncodeOption<
1353            ::fidl_next::WireBox<'static, crate::wire::CapabilityRef<'static>>,
1354            ___E,
1355        > for &'a CapabilityRef
1356    where
1357        ___E: ::fidl_next::Encoder + ?Sized,
1358        &'a CapabilityRef: ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>,
1359    {
1360        #[inline]
1361        fn encode_option(
1362            this: ::core::option::Option<Self>,
1363            encoder: &mut ___E,
1364            out: &mut ::core::mem::MaybeUninit<
1365                ::fidl_next::WireBox<'static, crate::wire::CapabilityRef<'static>>,
1366            >,
1367            _: (),
1368        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1369            if let Some(inner) = this {
1370                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1371                ::fidl_next::WireBox::encode_present(out);
1372            } else {
1373                ::fidl_next::WireBox::encode_absent(out);
1374            }
1375
1376            Ok(())
1377        }
1378    }
1379
1380    impl<'de> ::fidl_next::FromWire<crate::wire::CapabilityRef<'de>> for CapabilityRef {
1381        #[inline]
1382        fn from_wire(wire: crate::wire::CapabilityRef<'de>) -> Self {
1383            Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
1384        }
1385    }
1386
1387    impl<'de> ::fidl_next::FromWireRef<crate::wire::CapabilityRef<'de>> for CapabilityRef {
1388        #[inline]
1389        fn from_wire_ref(wire: &crate::wire::CapabilityRef<'de>) -> Self {
1390            Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
1391        }
1392    }
1393
1394    #[doc = " A reference to the environment\'s debug capabilities.\n"]
1395    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1396    #[repr(C)]
1397    pub struct DebugRef {}
1398
1399    unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugRef, ___E> for DebugRef
1400    where
1401        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1402    {
1403        #[inline]
1404        fn encode(
1405            self,
1406            encoder_: &mut ___E,
1407            out_: &mut ::core::mem::MaybeUninit<crate::wire::DebugRef>,
1408            _: (),
1409        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1410            *out_ = ::core::mem::MaybeUninit::zeroed();
1411
1412            Ok(())
1413        }
1414    }
1415
1416    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugRef, ___E> for &'a DebugRef
1417    where
1418        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1419    {
1420        #[inline]
1421        fn encode(
1422            self,
1423            encoder_: &mut ___E,
1424            out_: &mut ::core::mem::MaybeUninit<crate::wire::DebugRef>,
1425            _: (),
1426        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1427            ::fidl_next::munge! {
1428                let crate::wire::DebugRef {
1429
1430                        _empty,
1431
1432
1433                } = out_;
1434            }
1435
1436            Ok(())
1437        }
1438    }
1439
1440    unsafe impl<___E>
1441        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::DebugRef>, ___E>
1442        for DebugRef
1443    where
1444        ___E: ::fidl_next::Encoder + ?Sized,
1445        DebugRef: ::fidl_next::Encode<crate::wire::DebugRef, ___E>,
1446    {
1447        #[inline]
1448        fn encode_option(
1449            this: ::core::option::Option<Self>,
1450            encoder: &mut ___E,
1451            out: &mut ::core::mem::MaybeUninit<
1452                ::fidl_next::WireBox<'static, crate::wire::DebugRef>,
1453            >,
1454            _: (),
1455        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1456            if let Some(inner) = this {
1457                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1458                ::fidl_next::WireBox::encode_present(out);
1459            } else {
1460                ::fidl_next::WireBox::encode_absent(out);
1461            }
1462
1463            Ok(())
1464        }
1465    }
1466
1467    unsafe impl<'a, ___E>
1468        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::DebugRef>, ___E>
1469        for &'a DebugRef
1470    where
1471        ___E: ::fidl_next::Encoder + ?Sized,
1472        &'a DebugRef: ::fidl_next::Encode<crate::wire::DebugRef, ___E>,
1473    {
1474        #[inline]
1475        fn encode_option(
1476            this: ::core::option::Option<Self>,
1477            encoder: &mut ___E,
1478            out: &mut ::core::mem::MaybeUninit<
1479                ::fidl_next::WireBox<'static, crate::wire::DebugRef>,
1480            >,
1481            _: (),
1482        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1483            if let Some(inner) = this {
1484                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1485                ::fidl_next::WireBox::encode_present(out);
1486            } else {
1487                ::fidl_next::WireBox::encode_absent(out);
1488            }
1489
1490            Ok(())
1491        }
1492    }
1493
1494    impl ::fidl_next::FromWire<crate::wire::DebugRef> for DebugRef {
1495        const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::DebugRef, Self> =
1496            unsafe { ::fidl_next::CopyOptimization::enable_if(true) };
1497
1498        #[inline]
1499        fn from_wire(wire: crate::wire::DebugRef) -> Self {
1500            Self {}
1501        }
1502    }
1503
1504    impl ::fidl_next::FromWireRef<crate::wire::DebugRef> for DebugRef {
1505        #[inline]
1506        fn from_wire_ref(wire: &crate::wire::DebugRef) -> Self {
1507            Self {}
1508        }
1509    }
1510
1511    #[doc = " A reference to an intentionally missing offer source.\n"]
1512    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1513    #[repr(C)]
1514    pub struct VoidRef {}
1515
1516    unsafe impl<___E> ::fidl_next::Encode<crate::wire::VoidRef, ___E> for VoidRef
1517    where
1518        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1519    {
1520        #[inline]
1521        fn encode(
1522            self,
1523            encoder_: &mut ___E,
1524            out_: &mut ::core::mem::MaybeUninit<crate::wire::VoidRef>,
1525            _: (),
1526        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1527            *out_ = ::core::mem::MaybeUninit::zeroed();
1528
1529            Ok(())
1530        }
1531    }
1532
1533    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::VoidRef, ___E> for &'a VoidRef
1534    where
1535        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1536    {
1537        #[inline]
1538        fn encode(
1539            self,
1540            encoder_: &mut ___E,
1541            out_: &mut ::core::mem::MaybeUninit<crate::wire::VoidRef>,
1542            _: (),
1543        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1544            ::fidl_next::munge! {
1545                let crate::wire::VoidRef {
1546
1547                        _empty,
1548
1549
1550                } = out_;
1551            }
1552
1553            Ok(())
1554        }
1555    }
1556
1557    unsafe impl<___E>
1558        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::VoidRef>, ___E>
1559        for VoidRef
1560    where
1561        ___E: ::fidl_next::Encoder + ?Sized,
1562        VoidRef: ::fidl_next::Encode<crate::wire::VoidRef, ___E>,
1563    {
1564        #[inline]
1565        fn encode_option(
1566            this: ::core::option::Option<Self>,
1567            encoder: &mut ___E,
1568            out: &mut ::core::mem::MaybeUninit<::fidl_next::WireBox<'static, crate::wire::VoidRef>>,
1569            _: (),
1570        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1571            if let Some(inner) = this {
1572                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1573                ::fidl_next::WireBox::encode_present(out);
1574            } else {
1575                ::fidl_next::WireBox::encode_absent(out);
1576            }
1577
1578            Ok(())
1579        }
1580    }
1581
1582    unsafe impl<'a, ___E>
1583        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::VoidRef>, ___E>
1584        for &'a VoidRef
1585    where
1586        ___E: ::fidl_next::Encoder + ?Sized,
1587        &'a VoidRef: ::fidl_next::Encode<crate::wire::VoidRef, ___E>,
1588    {
1589        #[inline]
1590        fn encode_option(
1591            this: ::core::option::Option<Self>,
1592            encoder: &mut ___E,
1593            out: &mut ::core::mem::MaybeUninit<::fidl_next::WireBox<'static, crate::wire::VoidRef>>,
1594            _: (),
1595        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1596            if let Some(inner) = this {
1597                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
1598                ::fidl_next::WireBox::encode_present(out);
1599            } else {
1600                ::fidl_next::WireBox::encode_absent(out);
1601            }
1602
1603            Ok(())
1604        }
1605    }
1606
1607    impl ::fidl_next::FromWire<crate::wire::VoidRef> for VoidRef {
1608        const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::VoidRef, Self> =
1609            unsafe { ::fidl_next::CopyOptimization::enable_if(true) };
1610
1611        #[inline]
1612        fn from_wire(wire: crate::wire::VoidRef) -> Self {
1613            Self {}
1614        }
1615    }
1616
1617    impl ::fidl_next::FromWireRef<crate::wire::VoidRef> for VoidRef {
1618        #[inline]
1619        fn from_wire_ref(wire: &crate::wire::VoidRef) -> Self {
1620            Self {}
1621        }
1622    }
1623
1624    #[doc = " Declares which identifier to use to key a component\'s isolated storage\n directory.\n"]
1625    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1626    #[repr(u32)]
1627    pub enum StorageId {
1628        StaticInstanceId = 1,
1629        StaticInstanceIdOrMoniker = 2,
1630    }
1631    impl ::core::convert::TryFrom<u32> for StorageId {
1632        type Error = ::fidl_next::UnknownStrictEnumMemberError;
1633        fn try_from(
1634            value: u32,
1635        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
1636            match value {
1637                1 => Ok(Self::StaticInstanceId),
1638                2 => Ok(Self::StaticInstanceIdOrMoniker),
1639
1640                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
1641            }
1642        }
1643    }
1644
1645    unsafe impl<___E> ::fidl_next::Encode<crate::wire::StorageId, ___E> for StorageId
1646    where
1647        ___E: ?Sized,
1648    {
1649        #[inline]
1650        fn encode(
1651            self,
1652            encoder: &mut ___E,
1653            out: &mut ::core::mem::MaybeUninit<crate::wire::StorageId>,
1654            _: (),
1655        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1656            ::fidl_next::Encode::encode(&self, encoder, out, ())
1657        }
1658    }
1659
1660    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::StorageId, ___E> for &'a StorageId
1661    where
1662        ___E: ?Sized,
1663    {
1664        #[inline]
1665        fn encode(
1666            self,
1667            encoder: &mut ___E,
1668            out: &mut ::core::mem::MaybeUninit<crate::wire::StorageId>,
1669            _: (),
1670        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1671            ::fidl_next::munge!(let crate::wire::StorageId { value } = out);
1672            let _ = value.write(::fidl_next::WireU32::from(match *self {
1673                StorageId::StaticInstanceId => 1,
1674
1675                StorageId::StaticInstanceIdOrMoniker => 2,
1676            }));
1677
1678            Ok(())
1679        }
1680    }
1681
1682    impl ::core::convert::From<crate::wire::StorageId> for StorageId {
1683        fn from(wire: crate::wire::StorageId) -> Self {
1684            match u32::from(wire.value) {
1685                1 => Self::StaticInstanceId,
1686
1687                2 => Self::StaticInstanceIdOrMoniker,
1688
1689                _ => unsafe { ::core::hint::unreachable_unchecked() },
1690            }
1691        }
1692    }
1693
1694    impl ::fidl_next::FromWire<crate::wire::StorageId> for StorageId {
1695        #[inline]
1696        fn from_wire(wire: crate::wire::StorageId) -> Self {
1697            Self::from(wire)
1698        }
1699    }
1700
1701    impl ::fidl_next::FromWireRef<crate::wire::StorageId> for StorageId {
1702        #[inline]
1703        fn from_wire_ref(wire: &crate::wire::StorageId) -> Self {
1704            Self::from(*wire)
1705        }
1706    }
1707
1708    #[doc = " Declares a runner capability backed by a service.\n"]
1709    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1710    pub struct Runner {
1711        pub name: ::core::option::Option<::std::string::String>,
1712
1713        pub source_path: ::core::option::Option<::std::string::String>,
1714    }
1715
1716    impl Runner {
1717        fn __max_ordinal(&self) -> usize {
1718            if self.source_path.is_some() {
1719                return 2;
1720            }
1721
1722            if self.name.is_some() {
1723                return 1;
1724            }
1725
1726            0
1727        }
1728    }
1729
1730    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Runner<'static>, ___E> for Runner
1731    where
1732        ___E: ::fidl_next::Encoder + ?Sized,
1733    {
1734        #[inline]
1735        fn encode(
1736            mut self,
1737            encoder: &mut ___E,
1738            out: &mut ::core::mem::MaybeUninit<crate::wire::Runner<'static>>,
1739            _: (),
1740        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1741            ::fidl_next::munge!(let crate::wire::Runner { table } = out);
1742
1743            let max_ord = self.__max_ordinal();
1744
1745            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
1746            ::fidl_next::Wire::zero_padding(&mut out);
1747
1748            let mut preallocated =
1749                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
1750
1751            for i in 1..=max_ord {
1752                match i {
1753                    2 => {
1754                        if let Some(value) = self.source_path.take() {
1755                            ::fidl_next::WireEnvelope::encode_value::<
1756                                ::fidl_next::WireString<'static>,
1757                                ___E,
1758                            >(
1759                                value, preallocated.encoder, &mut out, 1024
1760                            )?;
1761                        } else {
1762                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
1763                        }
1764                    }
1765
1766                    1 => {
1767                        if let Some(value) = self.name.take() {
1768                            ::fidl_next::WireEnvelope::encode_value::<
1769                                ::fidl_next::WireString<'static>,
1770                                ___E,
1771                            >(
1772                                value, preallocated.encoder, &mut out, 100
1773                            )?;
1774                        } else {
1775                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
1776                        }
1777                    }
1778
1779                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
1780                }
1781                unsafe {
1782                    preallocated.write_next(out.assume_init_ref());
1783                }
1784            }
1785
1786            ::fidl_next::WireTable::encode_len(table, max_ord);
1787
1788            Ok(())
1789        }
1790    }
1791
1792    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Runner<'static>, ___E> for &'a Runner
1793    where
1794        ___E: ::fidl_next::Encoder + ?Sized,
1795    {
1796        #[inline]
1797        fn encode(
1798            self,
1799            encoder: &mut ___E,
1800            out: &mut ::core::mem::MaybeUninit<crate::wire::Runner<'static>>,
1801            _: (),
1802        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1803            ::fidl_next::munge!(let crate::wire::Runner { table } = out);
1804
1805            let max_ord = self.__max_ordinal();
1806
1807            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
1808            ::fidl_next::Wire::zero_padding(&mut out);
1809
1810            let mut preallocated =
1811                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
1812
1813            for i in 1..=max_ord {
1814                match i {
1815                    2 => {
1816                        if let Some(value) = &self.source_path {
1817                            ::fidl_next::WireEnvelope::encode_value::<
1818                                ::fidl_next::WireString<'static>,
1819                                ___E,
1820                            >(
1821                                value, preallocated.encoder, &mut out, 1024
1822                            )?;
1823                        } else {
1824                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
1825                        }
1826                    }
1827
1828                    1 => {
1829                        if let Some(value) = &self.name {
1830                            ::fidl_next::WireEnvelope::encode_value::<
1831                                ::fidl_next::WireString<'static>,
1832                                ___E,
1833                            >(
1834                                value, preallocated.encoder, &mut out, 100
1835                            )?;
1836                        } else {
1837                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
1838                        }
1839                    }
1840
1841                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
1842                }
1843                unsafe {
1844                    preallocated.write_next(out.assume_init_ref());
1845                }
1846            }
1847
1848            ::fidl_next::WireTable::encode_len(table, max_ord);
1849
1850            Ok(())
1851        }
1852    }
1853
1854    impl<'de> ::fidl_next::FromWire<crate::wire::Runner<'de>> for Runner {
1855        #[inline]
1856        fn from_wire(wire_: crate::wire::Runner<'de>) -> Self {
1857            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
1858
1859            let name = wire_.table.get(1);
1860
1861            let source_path = wire_.table.get(2);
1862
1863            Self {
1864                name: name.map(|envelope| {
1865                    ::fidl_next::FromWire::from_wire(unsafe {
1866                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
1867                    })
1868                }),
1869
1870                source_path: source_path.map(|envelope| {
1871                    ::fidl_next::FromWire::from_wire(unsafe {
1872                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
1873                    })
1874                }),
1875            }
1876        }
1877    }
1878
1879    impl<'de> ::fidl_next::FromWireRef<crate::wire::Runner<'de>> for Runner {
1880        #[inline]
1881        fn from_wire_ref(wire: &crate::wire::Runner<'de>) -> Self {
1882            Self {
1883                name: wire.table.get(1).map(|envelope| {
1884                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1885                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
1886                    })
1887                }),
1888
1889                source_path: wire.table.get(2).map(|envelope| {
1890                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1891                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
1892                    })
1893                }),
1894            }
1895        }
1896    }
1897
1898    #[doc = " Declares a resolver which is responsible for resolving component URLs to\n actual components. See `fuchsia.component.resolution.Resolver` for the\n protocol resolvers are expected to implement.\n"]
1899    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1900    pub struct Resolver {
1901        pub name: ::core::option::Option<::std::string::String>,
1902
1903        pub source_path: ::core::option::Option<::std::string::String>,
1904    }
1905
1906    impl Resolver {
1907        fn __max_ordinal(&self) -> usize {
1908            if self.source_path.is_some() {
1909                return 2;
1910            }
1911
1912            if self.name.is_some() {
1913                return 1;
1914            }
1915
1916            0
1917        }
1918    }
1919
1920    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Resolver<'static>, ___E> for Resolver
1921    where
1922        ___E: ::fidl_next::Encoder + ?Sized,
1923    {
1924        #[inline]
1925        fn encode(
1926            mut self,
1927            encoder: &mut ___E,
1928            out: &mut ::core::mem::MaybeUninit<crate::wire::Resolver<'static>>,
1929            _: (),
1930        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1931            ::fidl_next::munge!(let crate::wire::Resolver { table } = out);
1932
1933            let max_ord = self.__max_ordinal();
1934
1935            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
1936            ::fidl_next::Wire::zero_padding(&mut out);
1937
1938            let mut preallocated =
1939                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
1940
1941            for i in 1..=max_ord {
1942                match i {
1943                    2 => {
1944                        if let Some(value) = self.source_path.take() {
1945                            ::fidl_next::WireEnvelope::encode_value::<
1946                                ::fidl_next::WireString<'static>,
1947                                ___E,
1948                            >(
1949                                value, preallocated.encoder, &mut out, 1024
1950                            )?;
1951                        } else {
1952                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
1953                        }
1954                    }
1955
1956                    1 => {
1957                        if let Some(value) = self.name.take() {
1958                            ::fidl_next::WireEnvelope::encode_value::<
1959                                ::fidl_next::WireString<'static>,
1960                                ___E,
1961                            >(
1962                                value, preallocated.encoder, &mut out, 100
1963                            )?;
1964                        } else {
1965                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
1966                        }
1967                    }
1968
1969                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
1970                }
1971                unsafe {
1972                    preallocated.write_next(out.assume_init_ref());
1973                }
1974            }
1975
1976            ::fidl_next::WireTable::encode_len(table, max_ord);
1977
1978            Ok(())
1979        }
1980    }
1981
1982    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Resolver<'static>, ___E> for &'a Resolver
1983    where
1984        ___E: ::fidl_next::Encoder + ?Sized,
1985    {
1986        #[inline]
1987        fn encode(
1988            self,
1989            encoder: &mut ___E,
1990            out: &mut ::core::mem::MaybeUninit<crate::wire::Resolver<'static>>,
1991            _: (),
1992        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1993            ::fidl_next::munge!(let crate::wire::Resolver { table } = out);
1994
1995            let max_ord = self.__max_ordinal();
1996
1997            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
1998            ::fidl_next::Wire::zero_padding(&mut out);
1999
2000            let mut preallocated =
2001                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
2002
2003            for i in 1..=max_ord {
2004                match i {
2005                    2 => {
2006                        if let Some(value) = &self.source_path {
2007                            ::fidl_next::WireEnvelope::encode_value::<
2008                                ::fidl_next::WireString<'static>,
2009                                ___E,
2010                            >(
2011                                value, preallocated.encoder, &mut out, 1024
2012                            )?;
2013                        } else {
2014                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
2015                        }
2016                    }
2017
2018                    1 => {
2019                        if let Some(value) = &self.name {
2020                            ::fidl_next::WireEnvelope::encode_value::<
2021                                ::fidl_next::WireString<'static>,
2022                                ___E,
2023                            >(
2024                                value, preallocated.encoder, &mut out, 100
2025                            )?;
2026                        } else {
2027                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
2028                        }
2029                    }
2030
2031                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
2032                }
2033                unsafe {
2034                    preallocated.write_next(out.assume_init_ref());
2035                }
2036            }
2037
2038            ::fidl_next::WireTable::encode_len(table, max_ord);
2039
2040            Ok(())
2041        }
2042    }
2043
2044    impl<'de> ::fidl_next::FromWire<crate::wire::Resolver<'de>> for Resolver {
2045        #[inline]
2046        fn from_wire(wire_: crate::wire::Resolver<'de>) -> Self {
2047            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
2048
2049            let name = wire_.table.get(1);
2050
2051            let source_path = wire_.table.get(2);
2052
2053            Self {
2054                name: name.map(|envelope| {
2055                    ::fidl_next::FromWire::from_wire(unsafe {
2056                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
2057                    })
2058                }),
2059
2060                source_path: source_path.map(|envelope| {
2061                    ::fidl_next::FromWire::from_wire(unsafe {
2062                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
2063                    })
2064                }),
2065            }
2066        }
2067    }
2068
2069    impl<'de> ::fidl_next::FromWireRef<crate::wire::Resolver<'de>> for Resolver {
2070        #[inline]
2071        fn from_wire_ref(wire: &crate::wire::Resolver<'de>) -> Self {
2072            Self {
2073                name: wire.table.get(1).map(|envelope| {
2074                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2075                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
2076                    })
2077                }),
2078
2079                source_path: wire.table.get(2).map(|envelope| {
2080                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2081                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
2082                    })
2083                }),
2084            }
2085        }
2086    }
2087
2088    #[doc = " Declares an event_stream capability\n\n This type cannot be used in `fuchsia.component.decl.Component`. It is only\n used for the framework\'s built-in capabilities declared in\n `internal.Config`.\n"]
2089    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2090    pub struct EventStream {
2091        pub name: ::core::option::Option<::std::string::String>,
2092    }
2093
2094    impl EventStream {
2095        fn __max_ordinal(&self) -> usize {
2096            if self.name.is_some() {
2097                return 1;
2098            }
2099
2100            0
2101        }
2102    }
2103
2104    unsafe impl<___E> ::fidl_next::Encode<crate::wire::EventStream<'static>, ___E> for EventStream
2105    where
2106        ___E: ::fidl_next::Encoder + ?Sized,
2107    {
2108        #[inline]
2109        fn encode(
2110            mut self,
2111            encoder: &mut ___E,
2112            out: &mut ::core::mem::MaybeUninit<crate::wire::EventStream<'static>>,
2113            _: (),
2114        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2115            ::fidl_next::munge!(let crate::wire::EventStream { table } = out);
2116
2117            let max_ord = self.__max_ordinal();
2118
2119            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
2120            ::fidl_next::Wire::zero_padding(&mut out);
2121
2122            let mut preallocated =
2123                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
2124
2125            for i in 1..=max_ord {
2126                match i {
2127                    1 => {
2128                        if let Some(value) = self.name.take() {
2129                            ::fidl_next::WireEnvelope::encode_value::<
2130                                ::fidl_next::WireString<'static>,
2131                                ___E,
2132                            >(
2133                                value, preallocated.encoder, &mut out, 100
2134                            )?;
2135                        } else {
2136                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
2137                        }
2138                    }
2139
2140                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
2141                }
2142                unsafe {
2143                    preallocated.write_next(out.assume_init_ref());
2144                }
2145            }
2146
2147            ::fidl_next::WireTable::encode_len(table, max_ord);
2148
2149            Ok(())
2150        }
2151    }
2152
2153    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EventStream<'static>, ___E>
2154        for &'a EventStream
2155    where
2156        ___E: ::fidl_next::Encoder + ?Sized,
2157    {
2158        #[inline]
2159        fn encode(
2160            self,
2161            encoder: &mut ___E,
2162            out: &mut ::core::mem::MaybeUninit<crate::wire::EventStream<'static>>,
2163            _: (),
2164        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2165            ::fidl_next::munge!(let crate::wire::EventStream { table } = out);
2166
2167            let max_ord = self.__max_ordinal();
2168
2169            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
2170            ::fidl_next::Wire::zero_padding(&mut out);
2171
2172            let mut preallocated =
2173                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
2174
2175            for i in 1..=max_ord {
2176                match i {
2177                    1 => {
2178                        if let Some(value) = &self.name {
2179                            ::fidl_next::WireEnvelope::encode_value::<
2180                                ::fidl_next::WireString<'static>,
2181                                ___E,
2182                            >(
2183                                value, preallocated.encoder, &mut out, 100
2184                            )?;
2185                        } else {
2186                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
2187                        }
2188                    }
2189
2190                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
2191                }
2192                unsafe {
2193                    preallocated.write_next(out.assume_init_ref());
2194                }
2195            }
2196
2197            ::fidl_next::WireTable::encode_len(table, max_ord);
2198
2199            Ok(())
2200        }
2201    }
2202
2203    impl<'de> ::fidl_next::FromWire<crate::wire::EventStream<'de>> for EventStream {
2204        #[inline]
2205        fn from_wire(wire_: crate::wire::EventStream<'de>) -> Self {
2206            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
2207
2208            let name = wire_.table.get(1);
2209
2210            Self {
2211                name: name.map(|envelope| {
2212                    ::fidl_next::FromWire::from_wire(unsafe {
2213                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
2214                    })
2215                }),
2216            }
2217        }
2218    }
2219
2220    impl<'de> ::fidl_next::FromWireRef<crate::wire::EventStream<'de>> for EventStream {
2221        #[inline]
2222        fn from_wire_ref(wire: &crate::wire::EventStream<'de>) -> Self {
2223            Self {
2224                name: wire.table.get(1).map(|envelope| {
2225                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2226                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
2227                    })
2228                }),
2229            }
2230        }
2231    }
2232
2233    #[doc = " A single configuration value.\n"]
2234    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2235    pub enum ConfigSingleValue {
2236        Bool(bool),
2237
2238        Uint8(u8),
2239
2240        Uint16(u16),
2241
2242        Uint32(u32),
2243
2244        Uint64(u64),
2245
2246        Int8(i8),
2247
2248        Int16(i16),
2249
2250        Int32(i32),
2251
2252        Int64(i64),
2253
2254        String(::std::string::String),
2255
2256        UnknownOrdinal_(u64),
2257    }
2258
2259    impl ConfigSingleValue {
2260        pub fn is_unknown(&self) -> bool {
2261            #[allow(unreachable_patterns)]
2262            match self {
2263                Self::UnknownOrdinal_(_) => true,
2264                _ => false,
2265            }
2266        }
2267    }
2268
2269    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>
2270        for ConfigSingleValue
2271    where
2272        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2273        ___E: ::fidl_next::Encoder,
2274    {
2275        #[inline]
2276        fn encode(
2277            self,
2278            encoder: &mut ___E,
2279            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSingleValue<'static>>,
2280            _: (),
2281        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2282            ::fidl_next::munge!(let crate::wire::ConfigSingleValue { raw, _phantom: _ } = out);
2283
2284            match self {
2285                Self::Bool(value) => {
2286                    ::fidl_next::RawWireUnion::encode_as::<___E, bool>(value, 1, encoder, raw, ())?
2287                }
2288
2289                Self::Uint8(value) => {
2290                    ::fidl_next::RawWireUnion::encode_as::<___E, u8>(value, 2, encoder, raw, ())?
2291                }
2292
2293                Self::Uint16(value) => ::fidl_next::RawWireUnion::encode_as::<
2294                    ___E,
2295                    ::fidl_next::WireU16,
2296                >(value, 3, encoder, raw, ())?,
2297
2298                Self::Uint32(value) => ::fidl_next::RawWireUnion::encode_as::<
2299                    ___E,
2300                    ::fidl_next::WireU32,
2301                >(value, 4, encoder, raw, ())?,
2302
2303                Self::Uint64(value) => ::fidl_next::RawWireUnion::encode_as::<
2304                    ___E,
2305                    ::fidl_next::WireU64,
2306                >(value, 5, encoder, raw, ())?,
2307
2308                Self::Int8(value) => {
2309                    ::fidl_next::RawWireUnion::encode_as::<___E, i8>(value, 6, encoder, raw, ())?
2310                }
2311
2312                Self::Int16(value) => ::fidl_next::RawWireUnion::encode_as::<
2313                    ___E,
2314                    ::fidl_next::WireI16,
2315                >(value, 7, encoder, raw, ())?,
2316
2317                Self::Int32(value) => ::fidl_next::RawWireUnion::encode_as::<
2318                    ___E,
2319                    ::fidl_next::WireI32,
2320                >(value, 8, encoder, raw, ())?,
2321
2322                Self::Int64(value) => ::fidl_next::RawWireUnion::encode_as::<
2323                    ___E,
2324                    ::fidl_next::WireI64,
2325                >(value, 9, encoder, raw, ())?,
2326
2327                Self::String(value) => ::fidl_next::RawWireUnion::encode_as::<
2328                    ___E,
2329                    ::fidl_next::WireString<'static>,
2330                >(value, 10, encoder, raw, 4294967295)?,
2331
2332                Self::UnknownOrdinal_(ordinal) => {
2333                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
2334                }
2335            }
2336
2337            Ok(())
2338        }
2339    }
2340
2341    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>
2342        for &'a ConfigSingleValue
2343    where
2344        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2345        ___E: ::fidl_next::Encoder,
2346    {
2347        #[inline]
2348        fn encode(
2349            self,
2350            encoder: &mut ___E,
2351            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSingleValue<'static>>,
2352            _: (),
2353        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2354            ::fidl_next::munge!(let crate::wire::ConfigSingleValue { raw, _phantom: _ } = out);
2355
2356            match self {
2357                ConfigSingleValue::Bool(value) => {
2358                    ::fidl_next::RawWireUnion::encode_as::<___E, bool>(value, 1, encoder, raw, ())?
2359                }
2360
2361                ConfigSingleValue::Uint8(value) => {
2362                    ::fidl_next::RawWireUnion::encode_as::<___E, u8>(value, 2, encoder, raw, ())?
2363                }
2364
2365                ConfigSingleValue::Uint16(value) => ::fidl_next::RawWireUnion::encode_as::<
2366                    ___E,
2367                    ::fidl_next::WireU16,
2368                >(value, 3, encoder, raw, ())?,
2369
2370                ConfigSingleValue::Uint32(value) => ::fidl_next::RawWireUnion::encode_as::<
2371                    ___E,
2372                    ::fidl_next::WireU32,
2373                >(value, 4, encoder, raw, ())?,
2374
2375                ConfigSingleValue::Uint64(value) => ::fidl_next::RawWireUnion::encode_as::<
2376                    ___E,
2377                    ::fidl_next::WireU64,
2378                >(value, 5, encoder, raw, ())?,
2379
2380                ConfigSingleValue::Int8(value) => {
2381                    ::fidl_next::RawWireUnion::encode_as::<___E, i8>(value, 6, encoder, raw, ())?
2382                }
2383
2384                ConfigSingleValue::Int16(value) => ::fidl_next::RawWireUnion::encode_as::<
2385                    ___E,
2386                    ::fidl_next::WireI16,
2387                >(value, 7, encoder, raw, ())?,
2388
2389                ConfigSingleValue::Int32(value) => ::fidl_next::RawWireUnion::encode_as::<
2390                    ___E,
2391                    ::fidl_next::WireI32,
2392                >(value, 8, encoder, raw, ())?,
2393
2394                ConfigSingleValue::Int64(value) => ::fidl_next::RawWireUnion::encode_as::<
2395                    ___E,
2396                    ::fidl_next::WireI64,
2397                >(value, 9, encoder, raw, ())?,
2398
2399                ConfigSingleValue::String(value) => {
2400                    ::fidl_next::RawWireUnion::encode_as::<___E, ::fidl_next::WireString<'static>>(
2401                        value, 10, encoder, raw, 4294967295,
2402                    )?
2403                }
2404
2405                ConfigSingleValue::UnknownOrdinal_(ordinal) => {
2406                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
2407                }
2408            }
2409
2410            Ok(())
2411        }
2412    }
2413
2414    unsafe impl<___E>
2415        ::fidl_next::EncodeOption<crate::wire_optional::ConfigSingleValue<'static>, ___E>
2416        for ConfigSingleValue
2417    where
2418        ___E: ?Sized,
2419        ConfigSingleValue: ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>,
2420    {
2421        #[inline]
2422        fn encode_option(
2423            this: ::core::option::Option<Self>,
2424            encoder: &mut ___E,
2425            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigSingleValue<'static>>,
2426            _: (),
2427        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2428            ::fidl_next::munge!(let crate::wire_optional::ConfigSingleValue { raw, _phantom: _ } = &mut *out);
2429
2430            if let Some(inner) = this {
2431                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2432                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2433            } else {
2434                ::fidl_next::RawWireUnion::encode_absent(raw);
2435            }
2436
2437            Ok(())
2438        }
2439    }
2440
2441    unsafe impl<'a, ___E>
2442        ::fidl_next::EncodeOption<crate::wire_optional::ConfigSingleValue<'static>, ___E>
2443        for &'a ConfigSingleValue
2444    where
2445        ___E: ?Sized,
2446        &'a ConfigSingleValue: ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>,
2447    {
2448        #[inline]
2449        fn encode_option(
2450            this: ::core::option::Option<Self>,
2451            encoder: &mut ___E,
2452            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigSingleValue<'static>>,
2453            _: (),
2454        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2455            ::fidl_next::munge!(let crate::wire_optional::ConfigSingleValue { raw, _phantom: _ } = &mut *out);
2456
2457            if let Some(inner) = this {
2458                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2459                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2460            } else {
2461                ::fidl_next::RawWireUnion::encode_absent(raw);
2462            }
2463
2464            Ok(())
2465        }
2466    }
2467
2468    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSingleValue<'de>> for ConfigSingleValue {
2469        #[inline]
2470        fn from_wire(wire: crate::wire::ConfigSingleValue<'de>) -> Self {
2471            let wire = ::core::mem::ManuallyDrop::new(wire);
2472            match wire.raw.ordinal() {
2473                1 => Self::Bool(::fidl_next::FromWire::from_wire(unsafe {
2474                    wire.raw.get().read_unchecked::<bool>()
2475                })),
2476
2477                2 => Self::Uint8(::fidl_next::FromWire::from_wire(unsafe {
2478                    wire.raw.get().read_unchecked::<u8>()
2479                })),
2480
2481                3 => Self::Uint16(::fidl_next::FromWire::from_wire(unsafe {
2482                    wire.raw.get().read_unchecked::<::fidl_next::WireU16>()
2483                })),
2484
2485                4 => Self::Uint32(::fidl_next::FromWire::from_wire(unsafe {
2486                    wire.raw.get().read_unchecked::<::fidl_next::WireU32>()
2487                })),
2488
2489                5 => Self::Uint64(::fidl_next::FromWire::from_wire(unsafe {
2490                    wire.raw.get().read_unchecked::<::fidl_next::WireU64>()
2491                })),
2492
2493                6 => Self::Int8(::fidl_next::FromWire::from_wire(unsafe {
2494                    wire.raw.get().read_unchecked::<i8>()
2495                })),
2496
2497                7 => Self::Int16(::fidl_next::FromWire::from_wire(unsafe {
2498                    wire.raw.get().read_unchecked::<::fidl_next::WireI16>()
2499                })),
2500
2501                8 => Self::Int32(::fidl_next::FromWire::from_wire(unsafe {
2502                    wire.raw.get().read_unchecked::<::fidl_next::WireI32>()
2503                })),
2504
2505                9 => Self::Int64(::fidl_next::FromWire::from_wire(unsafe {
2506                    wire.raw.get().read_unchecked::<::fidl_next::WireI64>()
2507                })),
2508
2509                10 => Self::String(::fidl_next::FromWire::from_wire(unsafe {
2510                    wire.raw.get().read_unchecked::<::fidl_next::WireString<'de>>()
2511                })),
2512
2513                ord => return Self::UnknownOrdinal_(ord as u64),
2514            }
2515        }
2516    }
2517
2518    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSingleValue<'de>> for ConfigSingleValue {
2519        #[inline]
2520        fn from_wire_ref(wire: &crate::wire::ConfigSingleValue<'de>) -> Self {
2521            match wire.raw.ordinal() {
2522                1 => Self::Bool(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2523                    wire.raw.get().deref_unchecked::<bool>()
2524                })),
2525
2526                2 => Self::Uint8(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2527                    wire.raw.get().deref_unchecked::<u8>()
2528                })),
2529
2530                3 => Self::Uint16(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2531                    wire.raw.get().deref_unchecked::<::fidl_next::WireU16>()
2532                })),
2533
2534                4 => Self::Uint32(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2535                    wire.raw.get().deref_unchecked::<::fidl_next::WireU32>()
2536                })),
2537
2538                5 => Self::Uint64(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2539                    wire.raw.get().deref_unchecked::<::fidl_next::WireU64>()
2540                })),
2541
2542                6 => Self::Int8(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2543                    wire.raw.get().deref_unchecked::<i8>()
2544                })),
2545
2546                7 => Self::Int16(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2547                    wire.raw.get().deref_unchecked::<::fidl_next::WireI16>()
2548                })),
2549
2550                8 => Self::Int32(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2551                    wire.raw.get().deref_unchecked::<::fidl_next::WireI32>()
2552                })),
2553
2554                9 => Self::Int64(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2555                    wire.raw.get().deref_unchecked::<::fidl_next::WireI64>()
2556                })),
2557
2558                10 => Self::String(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2559                    wire.raw.get().deref_unchecked::<::fidl_next::WireString<'de>>()
2560                })),
2561
2562                ord => return Self::UnknownOrdinal_(ord as u64),
2563            }
2564        }
2565    }
2566
2567    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigSingleValue<'de>>
2568        for ConfigSingleValue
2569    {
2570        #[inline]
2571        fn from_wire_option(
2572            wire: crate::wire_optional::ConfigSingleValue<'de>,
2573        ) -> ::core::option::Option<Self> {
2574            if let Some(inner) = wire.into_option() {
2575                Some(::fidl_next::FromWire::from_wire(inner))
2576            } else {
2577                None
2578            }
2579        }
2580    }
2581
2582    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigSingleValue<'de>>
2583        for Box<ConfigSingleValue>
2584    {
2585        #[inline]
2586        fn from_wire_option(
2587            wire: crate::wire_optional::ConfigSingleValue<'de>,
2588        ) -> ::core::option::Option<Self> {
2589            <ConfigSingleValue as ::fidl_next::FromWireOption<
2590                crate::wire_optional::ConfigSingleValue<'de>,
2591            >>::from_wire_option(wire)
2592            .map(Box::new)
2593        }
2594    }
2595
2596    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigSingleValue<'de>>
2597        for Box<ConfigSingleValue>
2598    {
2599        #[inline]
2600        fn from_wire_option_ref(
2601            wire: &crate::wire_optional::ConfigSingleValue<'de>,
2602        ) -> ::core::option::Option<Self> {
2603            if let Some(inner) = wire.as_ref() {
2604                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
2605            } else {
2606                None
2607            }
2608        }
2609    }
2610
2611    #[doc = " A vector configuration value.\n"]
2612    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2613    pub enum ConfigVectorValue {
2614        BoolVector(::std::vec::Vec<bool>),
2615
2616        Uint8Vector(::std::vec::Vec<u8>),
2617
2618        Uint16Vector(::std::vec::Vec<u16>),
2619
2620        Uint32Vector(::std::vec::Vec<u32>),
2621
2622        Uint64Vector(::std::vec::Vec<u64>),
2623
2624        Int8Vector(::std::vec::Vec<i8>),
2625
2626        Int16Vector(::std::vec::Vec<i16>),
2627
2628        Int32Vector(::std::vec::Vec<i32>),
2629
2630        Int64Vector(::std::vec::Vec<i64>),
2631
2632        StringVector(::std::vec::Vec<::std::string::String>),
2633
2634        UnknownOrdinal_(u64),
2635    }
2636
2637    impl ConfigVectorValue {
2638        pub fn is_unknown(&self) -> bool {
2639            #[allow(unreachable_patterns)]
2640            match self {
2641                Self::UnknownOrdinal_(_) => true,
2642                _ => false,
2643            }
2644        }
2645    }
2646
2647    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>
2648        for ConfigVectorValue
2649    where
2650        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2651        ___E: ::fidl_next::Encoder,
2652    {
2653        #[inline]
2654        fn encode(
2655            self,
2656            encoder: &mut ___E,
2657            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigVectorValue<'static>>,
2658            _: (),
2659        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2660            ::fidl_next::munge!(let crate::wire::ConfigVectorValue { raw, _phantom: _ } = out);
2661
2662            match self {
2663                Self::BoolVector(value) => {
2664                    ::fidl_next::RawWireUnion::encode_as::<
2665                        ___E,
2666                        ::fidl_next::WireVector<'static, bool>,
2667                    >(value, 1, encoder, raw, (4294967295, ()))?
2668                }
2669
2670                Self::Uint8Vector(value) => {
2671                    ::fidl_next::RawWireUnion::encode_as::<
2672                        ___E,
2673                        ::fidl_next::WireVector<'static, u8>,
2674                    >(value, 2, encoder, raw, (4294967295, ()))?
2675                }
2676
2677                Self::Uint16Vector(value) => {
2678                    ::fidl_next::RawWireUnion::encode_as::<
2679                        ___E,
2680                        ::fidl_next::WireVector<'static, ::fidl_next::WireU16>,
2681                    >(value, 3, encoder, raw, (4294967295, ()))?
2682                }
2683
2684                Self::Uint32Vector(value) => {
2685                    ::fidl_next::RawWireUnion::encode_as::<
2686                        ___E,
2687                        ::fidl_next::WireVector<'static, ::fidl_next::WireU32>,
2688                    >(value, 4, encoder, raw, (4294967295, ()))?
2689                }
2690
2691                Self::Uint64Vector(value) => {
2692                    ::fidl_next::RawWireUnion::encode_as::<
2693                        ___E,
2694                        ::fidl_next::WireVector<'static, ::fidl_next::WireU64>,
2695                    >(value, 5, encoder, raw, (4294967295, ()))?
2696                }
2697
2698                Self::Int8Vector(value) => {
2699                    ::fidl_next::RawWireUnion::encode_as::<
2700                        ___E,
2701                        ::fidl_next::WireVector<'static, i8>,
2702                    >(value, 6, encoder, raw, (4294967295, ()))?
2703                }
2704
2705                Self::Int16Vector(value) => {
2706                    ::fidl_next::RawWireUnion::encode_as::<
2707                        ___E,
2708                        ::fidl_next::WireVector<'static, ::fidl_next::WireI16>,
2709                    >(value, 7, encoder, raw, (4294967295, ()))?
2710                }
2711
2712                Self::Int32Vector(value) => {
2713                    ::fidl_next::RawWireUnion::encode_as::<
2714                        ___E,
2715                        ::fidl_next::WireVector<'static, ::fidl_next::WireI32>,
2716                    >(value, 8, encoder, raw, (4294967295, ()))?
2717                }
2718
2719                Self::Int64Vector(value) => {
2720                    ::fidl_next::RawWireUnion::encode_as::<
2721                        ___E,
2722                        ::fidl_next::WireVector<'static, ::fidl_next::WireI64>,
2723                    >(value, 9, encoder, raw, (4294967295, ()))?
2724                }
2725
2726                Self::StringVector(value) => {
2727                    ::fidl_next::RawWireUnion::encode_as::<
2728                        ___E,
2729                        ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
2730                    >(value, 10, encoder, raw, (4294967295, 4294967295))?
2731                }
2732
2733                Self::UnknownOrdinal_(ordinal) => {
2734                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
2735                }
2736            }
2737
2738            Ok(())
2739        }
2740    }
2741
2742    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>
2743        for &'a ConfigVectorValue
2744    where
2745        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2746        ___E: ::fidl_next::Encoder,
2747    {
2748        #[inline]
2749        fn encode(
2750            self,
2751            encoder: &mut ___E,
2752            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigVectorValue<'static>>,
2753            _: (),
2754        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2755            ::fidl_next::munge!(let crate::wire::ConfigVectorValue { raw, _phantom: _ } = out);
2756
2757            match self {
2758                ConfigVectorValue::BoolVector(value) => {
2759                    ::fidl_next::RawWireUnion::encode_as::<
2760                        ___E,
2761                        ::fidl_next::WireVector<'static, bool>,
2762                    >(value, 1, encoder, raw, (4294967295, ()))?
2763                }
2764
2765                ConfigVectorValue::Uint8Vector(value) => {
2766                    ::fidl_next::RawWireUnion::encode_as::<
2767                        ___E,
2768                        ::fidl_next::WireVector<'static, u8>,
2769                    >(value, 2, encoder, raw, (4294967295, ()))?
2770                }
2771
2772                ConfigVectorValue::Uint16Vector(value) => {
2773                    ::fidl_next::RawWireUnion::encode_as::<
2774                        ___E,
2775                        ::fidl_next::WireVector<'static, ::fidl_next::WireU16>,
2776                    >(value, 3, encoder, raw, (4294967295, ()))?
2777                }
2778
2779                ConfigVectorValue::Uint32Vector(value) => {
2780                    ::fidl_next::RawWireUnion::encode_as::<
2781                        ___E,
2782                        ::fidl_next::WireVector<'static, ::fidl_next::WireU32>,
2783                    >(value, 4, encoder, raw, (4294967295, ()))?
2784                }
2785
2786                ConfigVectorValue::Uint64Vector(value) => {
2787                    ::fidl_next::RawWireUnion::encode_as::<
2788                        ___E,
2789                        ::fidl_next::WireVector<'static, ::fidl_next::WireU64>,
2790                    >(value, 5, encoder, raw, (4294967295, ()))?
2791                }
2792
2793                ConfigVectorValue::Int8Vector(value) => {
2794                    ::fidl_next::RawWireUnion::encode_as::<
2795                        ___E,
2796                        ::fidl_next::WireVector<'static, i8>,
2797                    >(value, 6, encoder, raw, (4294967295, ()))?
2798                }
2799
2800                ConfigVectorValue::Int16Vector(value) => {
2801                    ::fidl_next::RawWireUnion::encode_as::<
2802                        ___E,
2803                        ::fidl_next::WireVector<'static, ::fidl_next::WireI16>,
2804                    >(value, 7, encoder, raw, (4294967295, ()))?
2805                }
2806
2807                ConfigVectorValue::Int32Vector(value) => {
2808                    ::fidl_next::RawWireUnion::encode_as::<
2809                        ___E,
2810                        ::fidl_next::WireVector<'static, ::fidl_next::WireI32>,
2811                    >(value, 8, encoder, raw, (4294967295, ()))?
2812                }
2813
2814                ConfigVectorValue::Int64Vector(value) => {
2815                    ::fidl_next::RawWireUnion::encode_as::<
2816                        ___E,
2817                        ::fidl_next::WireVector<'static, ::fidl_next::WireI64>,
2818                    >(value, 9, encoder, raw, (4294967295, ()))?
2819                }
2820
2821                ConfigVectorValue::StringVector(value) => {
2822                    ::fidl_next::RawWireUnion::encode_as::<
2823                        ___E,
2824                        ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
2825                    >(value, 10, encoder, raw, (4294967295, 4294967295))?
2826                }
2827
2828                ConfigVectorValue::UnknownOrdinal_(ordinal) => {
2829                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
2830                }
2831            }
2832
2833            Ok(())
2834        }
2835    }
2836
2837    unsafe impl<___E>
2838        ::fidl_next::EncodeOption<crate::wire_optional::ConfigVectorValue<'static>, ___E>
2839        for ConfigVectorValue
2840    where
2841        ___E: ?Sized,
2842        ConfigVectorValue: ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>,
2843    {
2844        #[inline]
2845        fn encode_option(
2846            this: ::core::option::Option<Self>,
2847            encoder: &mut ___E,
2848            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigVectorValue<'static>>,
2849            _: (),
2850        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2851            ::fidl_next::munge!(let crate::wire_optional::ConfigVectorValue { raw, _phantom: _ } = &mut *out);
2852
2853            if let Some(inner) = this {
2854                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2855                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2856            } else {
2857                ::fidl_next::RawWireUnion::encode_absent(raw);
2858            }
2859
2860            Ok(())
2861        }
2862    }
2863
2864    unsafe impl<'a, ___E>
2865        ::fidl_next::EncodeOption<crate::wire_optional::ConfigVectorValue<'static>, ___E>
2866        for &'a ConfigVectorValue
2867    where
2868        ___E: ?Sized,
2869        &'a ConfigVectorValue: ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>,
2870    {
2871        #[inline]
2872        fn encode_option(
2873            this: ::core::option::Option<Self>,
2874            encoder: &mut ___E,
2875            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigVectorValue<'static>>,
2876            _: (),
2877        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2878            ::fidl_next::munge!(let crate::wire_optional::ConfigVectorValue { raw, _phantom: _ } = &mut *out);
2879
2880            if let Some(inner) = this {
2881                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2882                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2883            } else {
2884                ::fidl_next::RawWireUnion::encode_absent(raw);
2885            }
2886
2887            Ok(())
2888        }
2889    }
2890
2891    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigVectorValue<'de>> for ConfigVectorValue {
2892        #[inline]
2893        fn from_wire(wire: crate::wire::ConfigVectorValue<'de>) -> Self {
2894            let wire = ::core::mem::ManuallyDrop::new(wire);
2895            match wire.raw.ordinal() {
2896                1 => Self::BoolVector(::fidl_next::FromWire::from_wire(unsafe {
2897                    wire.raw.get().read_unchecked::<::fidl_next::WireVector<'de, bool>>()
2898                })),
2899
2900                2 => Self::Uint8Vector(::fidl_next::FromWire::from_wire(unsafe {
2901                    wire.raw.get().read_unchecked::<::fidl_next::WireVector<'de, u8>>()
2902                })),
2903
2904                3 => Self::Uint16Vector(::fidl_next::FromWire::from_wire(unsafe {
2905                    wire.raw
2906                        .get()
2907                        .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU16>>()
2908                })),
2909
2910                4 => Self::Uint32Vector(::fidl_next::FromWire::from_wire(unsafe {
2911                    wire.raw
2912                        .get()
2913                        .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU32>>()
2914                })),
2915
2916                5 => Self::Uint64Vector(::fidl_next::FromWire::from_wire(unsafe {
2917                    wire.raw
2918                        .get()
2919                        .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU64>>()
2920                })),
2921
2922                6 => Self::Int8Vector(::fidl_next::FromWire::from_wire(unsafe {
2923                    wire.raw.get().read_unchecked::<::fidl_next::WireVector<'de, i8>>()
2924                })),
2925
2926                7 => Self::Int16Vector(::fidl_next::FromWire::from_wire(unsafe {
2927                    wire.raw
2928                        .get()
2929                        .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI16>>()
2930                })),
2931
2932                8 => Self::Int32Vector(::fidl_next::FromWire::from_wire(unsafe {
2933                    wire.raw
2934                        .get()
2935                        .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI32>>()
2936                })),
2937
2938                9 => Self::Int64Vector(::fidl_next::FromWire::from_wire(unsafe {
2939                    wire.raw
2940                        .get()
2941                        .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI64>>()
2942                })),
2943
2944                10 => Self::StringVector(::fidl_next::FromWire::from_wire(unsafe {
2945                    wire.raw.get().read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>()
2946                })),
2947
2948                ord => return Self::UnknownOrdinal_(ord as u64),
2949            }
2950        }
2951    }
2952
2953    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigVectorValue<'de>> for ConfigVectorValue {
2954        #[inline]
2955        fn from_wire_ref(wire: &crate::wire::ConfigVectorValue<'de>) -> Self {
2956            match wire.raw.ordinal() {
2957                1 => Self::BoolVector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2958                    wire.raw.get().deref_unchecked::<::fidl_next::WireVector<'de, bool>>()
2959                })),
2960
2961                2 => Self::Uint8Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2962                    wire.raw.get().deref_unchecked::<::fidl_next::WireVector<'de, u8>>()
2963                })),
2964
2965                3 => Self::Uint16Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2966                    wire.raw
2967                        .get()
2968                        .deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU16>>()
2969                })),
2970
2971                4 => Self::Uint32Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2972                    wire.raw
2973                        .get()
2974                        .deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU32>>()
2975                })),
2976
2977                5 => Self::Uint64Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2978                    wire.raw
2979                        .get()
2980                        .deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU64>>()
2981                })),
2982
2983                6 => Self::Int8Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2984                    wire.raw.get().deref_unchecked::<::fidl_next::WireVector<'de, i8>>()
2985                })),
2986
2987                7 => Self::Int16Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2988                    wire.raw
2989                        .get()
2990                        .deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI16>>()
2991                })),
2992
2993                8 => Self::Int32Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2994                    wire.raw
2995                        .get()
2996                        .deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI32>>()
2997                })),
2998
2999                9 => Self::Int64Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3000                    wire.raw
3001                        .get()
3002                        .deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI64>>()
3003                })),
3004
3005                10 => Self::StringVector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3006                    wire.raw.get().deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>()
3007                })),
3008
3009                ord => return Self::UnknownOrdinal_(ord as u64),
3010            }
3011        }
3012    }
3013
3014    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigVectorValue<'de>>
3015        for ConfigVectorValue
3016    {
3017        #[inline]
3018        fn from_wire_option(
3019            wire: crate::wire_optional::ConfigVectorValue<'de>,
3020        ) -> ::core::option::Option<Self> {
3021            if let Some(inner) = wire.into_option() {
3022                Some(::fidl_next::FromWire::from_wire(inner))
3023            } else {
3024                None
3025            }
3026        }
3027    }
3028
3029    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigVectorValue<'de>>
3030        for Box<ConfigVectorValue>
3031    {
3032        #[inline]
3033        fn from_wire_option(
3034            wire: crate::wire_optional::ConfigVectorValue<'de>,
3035        ) -> ::core::option::Option<Self> {
3036            <ConfigVectorValue as ::fidl_next::FromWireOption<
3037                crate::wire_optional::ConfigVectorValue<'de>,
3038            >>::from_wire_option(wire)
3039            .map(Box::new)
3040        }
3041    }
3042
3043    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigVectorValue<'de>>
3044        for Box<ConfigVectorValue>
3045    {
3046        #[inline]
3047        fn from_wire_option_ref(
3048            wire: &crate::wire_optional::ConfigVectorValue<'de>,
3049        ) -> ::core::option::Option<Self> {
3050            if let Some(inner) = wire.as_ref() {
3051                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
3052            } else {
3053                None
3054            }
3055        }
3056    }
3057
3058    #[doc = " A configuration value which can be provided to a component.\n\n Used both for storing configuration at-rest and in runtime configuration APIs.\n"]
3059    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3060    pub enum ConfigValue {
3061        Single(crate::natural::ConfigSingleValue),
3062
3063        Vector(crate::natural::ConfigVectorValue),
3064
3065        UnknownOrdinal_(u64),
3066    }
3067
3068    impl ConfigValue {
3069        pub fn is_unknown(&self) -> bool {
3070            #[allow(unreachable_patterns)]
3071            match self {
3072                Self::UnknownOrdinal_(_) => true,
3073                _ => false,
3074            }
3075        }
3076    }
3077
3078    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E> for ConfigValue
3079    where
3080        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3081        ___E: ::fidl_next::Encoder,
3082    {
3083        #[inline]
3084        fn encode(
3085            self,
3086            encoder: &mut ___E,
3087            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValue<'static>>,
3088            _: (),
3089        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3090            ::fidl_next::munge!(let crate::wire::ConfigValue { raw, _phantom: _ } = out);
3091
3092            match self {
3093                Self::Single(value) => ::fidl_next::RawWireUnion::encode_as::<
3094                    ___E,
3095                    crate::wire::ConfigSingleValue<'static>,
3096                >(value, 1, encoder, raw, ())?,
3097
3098                Self::Vector(value) => ::fidl_next::RawWireUnion::encode_as::<
3099                    ___E,
3100                    crate::wire::ConfigVectorValue<'static>,
3101                >(value, 2, encoder, raw, ())?,
3102
3103                Self::UnknownOrdinal_(ordinal) => {
3104                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
3105                }
3106            }
3107
3108            Ok(())
3109        }
3110    }
3111
3112    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>
3113        for &'a ConfigValue
3114    where
3115        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3116        ___E: ::fidl_next::Encoder,
3117    {
3118        #[inline]
3119        fn encode(
3120            self,
3121            encoder: &mut ___E,
3122            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValue<'static>>,
3123            _: (),
3124        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3125            ::fidl_next::munge!(let crate::wire::ConfigValue { raw, _phantom: _ } = out);
3126
3127            match self {
3128                ConfigValue::Single(value) => ::fidl_next::RawWireUnion::encode_as::<
3129                    ___E,
3130                    crate::wire::ConfigSingleValue<'static>,
3131                >(value, 1, encoder, raw, ())?,
3132
3133                ConfigValue::Vector(value) => ::fidl_next::RawWireUnion::encode_as::<
3134                    ___E,
3135                    crate::wire::ConfigVectorValue<'static>,
3136                >(value, 2, encoder, raw, ())?,
3137
3138                ConfigValue::UnknownOrdinal_(ordinal) => {
3139                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
3140                }
3141            }
3142
3143            Ok(())
3144        }
3145    }
3146
3147    unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::ConfigValue<'static>, ___E>
3148        for ConfigValue
3149    where
3150        ___E: ?Sized,
3151        ConfigValue: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
3152    {
3153        #[inline]
3154        fn encode_option(
3155            this: ::core::option::Option<Self>,
3156            encoder: &mut ___E,
3157            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValue<'static>>,
3158            _: (),
3159        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3160            ::fidl_next::munge!(let crate::wire_optional::ConfigValue { raw, _phantom: _ } = &mut *out);
3161
3162            if let Some(inner) = this {
3163                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
3164                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
3165            } else {
3166                ::fidl_next::RawWireUnion::encode_absent(raw);
3167            }
3168
3169            Ok(())
3170        }
3171    }
3172
3173    unsafe impl<'a, ___E>
3174        ::fidl_next::EncodeOption<crate::wire_optional::ConfigValue<'static>, ___E>
3175        for &'a ConfigValue
3176    where
3177        ___E: ?Sized,
3178        &'a ConfigValue: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
3179    {
3180        #[inline]
3181        fn encode_option(
3182            this: ::core::option::Option<Self>,
3183            encoder: &mut ___E,
3184            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValue<'static>>,
3185            _: (),
3186        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3187            ::fidl_next::munge!(let crate::wire_optional::ConfigValue { raw, _phantom: _ } = &mut *out);
3188
3189            if let Some(inner) = this {
3190                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
3191                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
3192            } else {
3193                ::fidl_next::RawWireUnion::encode_absent(raw);
3194            }
3195
3196            Ok(())
3197        }
3198    }
3199
3200    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValue<'de>> for ConfigValue {
3201        #[inline]
3202        fn from_wire(wire: crate::wire::ConfigValue<'de>) -> Self {
3203            let wire = ::core::mem::ManuallyDrop::new(wire);
3204            match wire.raw.ordinal() {
3205                1 => Self::Single(::fidl_next::FromWire::from_wire(unsafe {
3206                    wire.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
3207                })),
3208
3209                2 => Self::Vector(::fidl_next::FromWire::from_wire(unsafe {
3210                    wire.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
3211                })),
3212
3213                ord => return Self::UnknownOrdinal_(ord as u64),
3214            }
3215        }
3216    }
3217
3218    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValue<'de>> for ConfigValue {
3219        #[inline]
3220        fn from_wire_ref(wire: &crate::wire::ConfigValue<'de>) -> Self {
3221            match wire.raw.ordinal() {
3222                1 => Self::Single(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3223                    wire.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'de>>()
3224                })),
3225
3226                2 => Self::Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3227                    wire.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'de>>()
3228                })),
3229
3230                ord => return Self::UnknownOrdinal_(ord as u64),
3231            }
3232        }
3233    }
3234
3235    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>> for ConfigValue {
3236        #[inline]
3237        fn from_wire_option(
3238            wire: crate::wire_optional::ConfigValue<'de>,
3239        ) -> ::core::option::Option<Self> {
3240            if let Some(inner) = wire.into_option() {
3241                Some(::fidl_next::FromWire::from_wire(inner))
3242            } else {
3243                None
3244            }
3245        }
3246    }
3247
3248    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>> for Box<ConfigValue> {
3249        #[inline]
3250        fn from_wire_option(
3251            wire: crate::wire_optional::ConfigValue<'de>,
3252        ) -> ::core::option::Option<Self> {
3253            <
3254            ConfigValue as ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>>
3255        >::from_wire_option(wire).map(Box::new)
3256        }
3257    }
3258
3259    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigValue<'de>>
3260        for Box<ConfigValue>
3261    {
3262        #[inline]
3263        fn from_wire_option_ref(
3264            wire: &crate::wire_optional::ConfigValue<'de>,
3265        ) -> ::core::option::Option<Self> {
3266            if let Some(inner) = wire.as_ref() {
3267                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
3268            } else {
3269                None
3270            }
3271        }
3272    }
3273
3274    #[doc = " Declares a configuration capability.\n\n To learn more about configuration capabilities, see:\n https://fuchsia.dev/fuchsia-src/glossary#configuration-capability\n or:\n https://fuchsia.dev/fuchsia-src/docs/concepts/components/v2/capabilities/configuration\n"]
3275    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3276    pub struct Configuration {
3277        pub name: ::core::option::Option<::std::string::String>,
3278
3279        pub value: ::core::option::Option<crate::natural::ConfigValue>,
3280    }
3281
3282    impl Configuration {
3283        fn __max_ordinal(&self) -> usize {
3284            if self.value.is_some() {
3285                return 2;
3286            }
3287
3288            if self.name.is_some() {
3289                return 1;
3290            }
3291
3292            0
3293        }
3294    }
3295
3296    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Configuration<'static>, ___E> for Configuration
3297    where
3298        ___E: ::fidl_next::Encoder + ?Sized,
3299    {
3300        #[inline]
3301        fn encode(
3302            mut self,
3303            encoder: &mut ___E,
3304            out: &mut ::core::mem::MaybeUninit<crate::wire::Configuration<'static>>,
3305            _: (),
3306        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3307            ::fidl_next::munge!(let crate::wire::Configuration { table } = out);
3308
3309            let max_ord = self.__max_ordinal();
3310
3311            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
3312            ::fidl_next::Wire::zero_padding(&mut out);
3313
3314            let mut preallocated =
3315                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
3316
3317            for i in 1..=max_ord {
3318                match i {
3319                    2 => {
3320                        if let Some(value) = self.value.take() {
3321                            ::fidl_next::WireEnvelope::encode_value::<
3322                                crate::wire::ConfigValue<'static>,
3323                                ___E,
3324                            >(
3325                                value, preallocated.encoder, &mut out, ()
3326                            )?;
3327                        } else {
3328                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3329                        }
3330                    }
3331
3332                    1 => {
3333                        if let Some(value) = self.name.take() {
3334                            ::fidl_next::WireEnvelope::encode_value::<
3335                                ::fidl_next::WireString<'static>,
3336                                ___E,
3337                            >(
3338                                value, preallocated.encoder, &mut out, 100
3339                            )?;
3340                        } else {
3341                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3342                        }
3343                    }
3344
3345                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
3346                }
3347                unsafe {
3348                    preallocated.write_next(out.assume_init_ref());
3349                }
3350            }
3351
3352            ::fidl_next::WireTable::encode_len(table, max_ord);
3353
3354            Ok(())
3355        }
3356    }
3357
3358    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Configuration<'static>, ___E>
3359        for &'a Configuration
3360    where
3361        ___E: ::fidl_next::Encoder + ?Sized,
3362    {
3363        #[inline]
3364        fn encode(
3365            self,
3366            encoder: &mut ___E,
3367            out: &mut ::core::mem::MaybeUninit<crate::wire::Configuration<'static>>,
3368            _: (),
3369        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3370            ::fidl_next::munge!(let crate::wire::Configuration { table } = out);
3371
3372            let max_ord = self.__max_ordinal();
3373
3374            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
3375            ::fidl_next::Wire::zero_padding(&mut out);
3376
3377            let mut preallocated =
3378                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
3379
3380            for i in 1..=max_ord {
3381                match i {
3382                    2 => {
3383                        if let Some(value) = &self.value {
3384                            ::fidl_next::WireEnvelope::encode_value::<
3385                                crate::wire::ConfigValue<'static>,
3386                                ___E,
3387                            >(
3388                                value, preallocated.encoder, &mut out, ()
3389                            )?;
3390                        } else {
3391                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3392                        }
3393                    }
3394
3395                    1 => {
3396                        if let Some(value) = &self.name {
3397                            ::fidl_next::WireEnvelope::encode_value::<
3398                                ::fidl_next::WireString<'static>,
3399                                ___E,
3400                            >(
3401                                value, preallocated.encoder, &mut out, 100
3402                            )?;
3403                        } else {
3404                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3405                        }
3406                    }
3407
3408                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
3409                }
3410                unsafe {
3411                    preallocated.write_next(out.assume_init_ref());
3412                }
3413            }
3414
3415            ::fidl_next::WireTable::encode_len(table, max_ord);
3416
3417            Ok(())
3418        }
3419    }
3420
3421    impl<'de> ::fidl_next::FromWire<crate::wire::Configuration<'de>> for Configuration {
3422        #[inline]
3423        fn from_wire(wire_: crate::wire::Configuration<'de>) -> Self {
3424            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
3425
3426            let name = wire_.table.get(1);
3427
3428            let value = wire_.table.get(2);
3429
3430            Self {
3431                name: name.map(|envelope| {
3432                    ::fidl_next::FromWire::from_wire(unsafe {
3433                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
3434                    })
3435                }),
3436
3437                value: value.map(|envelope| {
3438                    ::fidl_next::FromWire::from_wire(unsafe {
3439                        envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
3440                    })
3441                }),
3442            }
3443        }
3444    }
3445
3446    impl<'de> ::fidl_next::FromWireRef<crate::wire::Configuration<'de>> for Configuration {
3447        #[inline]
3448        fn from_wire_ref(wire: &crate::wire::Configuration<'de>) -> Self {
3449            Self {
3450                name: wire.table.get(1).map(|envelope| {
3451                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3452                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
3453                    })
3454                }),
3455
3456                value: wire.table.get(2).map(|envelope| {
3457                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3458                        envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
3459                    })
3460                }),
3461            }
3462        }
3463    }
3464
3465    #[doc = " Path in a dictionary. The format is similar to a directory path, except no `.` or `..`.\n is allowed and each path segment must conform to the format of the `name` type.\n\n The \"dirname\" (first to the penultimate segment, or empty if there is one\n segment) represents a sequence of nested dictionaries.\n The \"basename\" (last segment) identifies a capability in the last nested\n dictionary.\n"]
3466    pub type DictionaryPath = ::std::string::String;
3467
3468    #[doc = " `DeliveryType` may be used when declaring a capability, and specifies under\n what conditions the framework will open the capability from the provider\n component\'s outgoing directory when there is a request for this capability.\n"]
3469    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3470    #[repr(u32)]
3471    pub enum DeliveryType {
3472        Immediate = 0,
3473        OnReadable = 1,
3474        UnknownOrdinal_(u32) = 2,
3475    }
3476    impl ::std::convert::From<u32> for DeliveryType {
3477        fn from(value: u32) -> Self {
3478            match value {
3479                0 => Self::Immediate,
3480                1 => Self::OnReadable,
3481
3482                _ => Self::UnknownOrdinal_(value),
3483            }
3484        }
3485    }
3486
3487    unsafe impl<___E> ::fidl_next::Encode<crate::wire::DeliveryType, ___E> for DeliveryType
3488    where
3489        ___E: ?Sized,
3490    {
3491        #[inline]
3492        fn encode(
3493            self,
3494            encoder: &mut ___E,
3495            out: &mut ::core::mem::MaybeUninit<crate::wire::DeliveryType>,
3496            _: (),
3497        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3498            ::fidl_next::Encode::encode(&self, encoder, out, ())
3499        }
3500    }
3501
3502    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DeliveryType, ___E> for &'a DeliveryType
3503    where
3504        ___E: ?Sized,
3505    {
3506        #[inline]
3507        fn encode(
3508            self,
3509            encoder: &mut ___E,
3510            out: &mut ::core::mem::MaybeUninit<crate::wire::DeliveryType>,
3511            _: (),
3512        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3513            ::fidl_next::munge!(let crate::wire::DeliveryType { value } = out);
3514            let _ = value.write(::fidl_next::WireU32::from(match *self {
3515                DeliveryType::Immediate => 0,
3516
3517                DeliveryType::OnReadable => 1,
3518
3519                DeliveryType::UnknownOrdinal_(value) => value,
3520            }));
3521
3522            Ok(())
3523        }
3524    }
3525
3526    impl ::core::convert::From<crate::wire::DeliveryType> for DeliveryType {
3527        fn from(wire: crate::wire::DeliveryType) -> Self {
3528            match u32::from(wire.value) {
3529                0 => Self::Immediate,
3530
3531                1 => Self::OnReadable,
3532
3533                value => Self::UnknownOrdinal_(value),
3534            }
3535        }
3536    }
3537
3538    impl ::fidl_next::FromWire<crate::wire::DeliveryType> for DeliveryType {
3539        #[inline]
3540        fn from_wire(wire: crate::wire::DeliveryType) -> Self {
3541            Self::from(wire)
3542        }
3543    }
3544
3545    impl ::fidl_next::FromWireRef<crate::wire::DeliveryType> for DeliveryType {
3546        #[inline]
3547        fn from_wire_ref(wire: &crate::wire::DeliveryType) -> Self {
3548            Self::from(*wire)
3549        }
3550    }
3551
3552    #[doc = " Declares a protocol capability backed by this component.\n\n To learn more about protocols, see:\n https://fuchsia.dev/fuchsia-src/glossary#protocol\n"]
3553    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3554    pub struct Protocol {
3555        pub name: ::core::option::Option<::std::string::String>,
3556
3557        pub source_path: ::core::option::Option<::std::string::String>,
3558
3559        pub delivery: ::core::option::Option<crate::natural::DeliveryType>,
3560    }
3561
3562    impl Protocol {
3563        fn __max_ordinal(&self) -> usize {
3564            if self.delivery.is_some() {
3565                return 3;
3566            }
3567
3568            if self.source_path.is_some() {
3569                return 2;
3570            }
3571
3572            if self.name.is_some() {
3573                return 1;
3574            }
3575
3576            0
3577        }
3578    }
3579
3580    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Protocol<'static>, ___E> for Protocol
3581    where
3582        ___E: ::fidl_next::Encoder + ?Sized,
3583    {
3584        #[inline]
3585        fn encode(
3586            mut self,
3587            encoder: &mut ___E,
3588            out: &mut ::core::mem::MaybeUninit<crate::wire::Protocol<'static>>,
3589            _: (),
3590        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3591            ::fidl_next::munge!(let crate::wire::Protocol { table } = out);
3592
3593            let max_ord = self.__max_ordinal();
3594
3595            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
3596            ::fidl_next::Wire::zero_padding(&mut out);
3597
3598            let mut preallocated =
3599                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
3600
3601            for i in 1..=max_ord {
3602                match i {
3603                    3 => {
3604                        if let Some(value) = self.delivery.take() {
3605                            ::fidl_next::WireEnvelope::encode_value::<
3606                                crate::wire::DeliveryType,
3607                                ___E,
3608                            >(
3609                                value, preallocated.encoder, &mut out, ()
3610                            )?;
3611                        } else {
3612                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3613                        }
3614                    }
3615
3616                    2 => {
3617                        if let Some(value) = self.source_path.take() {
3618                            ::fidl_next::WireEnvelope::encode_value::<
3619                                ::fidl_next::WireString<'static>,
3620                                ___E,
3621                            >(
3622                                value, preallocated.encoder, &mut out, 1024
3623                            )?;
3624                        } else {
3625                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3626                        }
3627                    }
3628
3629                    1 => {
3630                        if let Some(value) = self.name.take() {
3631                            ::fidl_next::WireEnvelope::encode_value::<
3632                                ::fidl_next::WireString<'static>,
3633                                ___E,
3634                            >(
3635                                value, preallocated.encoder, &mut out, 100
3636                            )?;
3637                        } else {
3638                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3639                        }
3640                    }
3641
3642                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
3643                }
3644                unsafe {
3645                    preallocated.write_next(out.assume_init_ref());
3646                }
3647            }
3648
3649            ::fidl_next::WireTable::encode_len(table, max_ord);
3650
3651            Ok(())
3652        }
3653    }
3654
3655    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Protocol<'static>, ___E> for &'a Protocol
3656    where
3657        ___E: ::fidl_next::Encoder + ?Sized,
3658    {
3659        #[inline]
3660        fn encode(
3661            self,
3662            encoder: &mut ___E,
3663            out: &mut ::core::mem::MaybeUninit<crate::wire::Protocol<'static>>,
3664            _: (),
3665        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3666            ::fidl_next::munge!(let crate::wire::Protocol { table } = out);
3667
3668            let max_ord = self.__max_ordinal();
3669
3670            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
3671            ::fidl_next::Wire::zero_padding(&mut out);
3672
3673            let mut preallocated =
3674                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
3675
3676            for i in 1..=max_ord {
3677                match i {
3678                    3 => {
3679                        if let Some(value) = &self.delivery {
3680                            ::fidl_next::WireEnvelope::encode_value::<
3681                                crate::wire::DeliveryType,
3682                                ___E,
3683                            >(
3684                                value, preallocated.encoder, &mut out, ()
3685                            )?;
3686                        } else {
3687                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3688                        }
3689                    }
3690
3691                    2 => {
3692                        if let Some(value) = &self.source_path {
3693                            ::fidl_next::WireEnvelope::encode_value::<
3694                                ::fidl_next::WireString<'static>,
3695                                ___E,
3696                            >(
3697                                value, preallocated.encoder, &mut out, 1024
3698                            )?;
3699                        } else {
3700                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3701                        }
3702                    }
3703
3704                    1 => {
3705                        if let Some(value) = &self.name {
3706                            ::fidl_next::WireEnvelope::encode_value::<
3707                                ::fidl_next::WireString<'static>,
3708                                ___E,
3709                            >(
3710                                value, preallocated.encoder, &mut out, 100
3711                            )?;
3712                        } else {
3713                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
3714                        }
3715                    }
3716
3717                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
3718                }
3719                unsafe {
3720                    preallocated.write_next(out.assume_init_ref());
3721                }
3722            }
3723
3724            ::fidl_next::WireTable::encode_len(table, max_ord);
3725
3726            Ok(())
3727        }
3728    }
3729
3730    impl<'de> ::fidl_next::FromWire<crate::wire::Protocol<'de>> for Protocol {
3731        #[inline]
3732        fn from_wire(wire_: crate::wire::Protocol<'de>) -> Self {
3733            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
3734
3735            let name = wire_.table.get(1);
3736
3737            let source_path = wire_.table.get(2);
3738
3739            let delivery = wire_.table.get(3);
3740
3741            Self {
3742                name: name.map(|envelope| {
3743                    ::fidl_next::FromWire::from_wire(unsafe {
3744                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
3745                    })
3746                }),
3747
3748                source_path: source_path.map(|envelope| {
3749                    ::fidl_next::FromWire::from_wire(unsafe {
3750                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
3751                    })
3752                }),
3753
3754                delivery: delivery.map(|envelope| {
3755                    ::fidl_next::FromWire::from_wire(unsafe {
3756                        envelope.read_unchecked::<crate::wire::DeliveryType>()
3757                    })
3758                }),
3759            }
3760        }
3761    }
3762
3763    impl<'de> ::fidl_next::FromWireRef<crate::wire::Protocol<'de>> for Protocol {
3764        #[inline]
3765        fn from_wire_ref(wire: &crate::wire::Protocol<'de>) -> Self {
3766            Self {
3767                name: wire.table.get(1).map(|envelope| {
3768                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3769                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
3770                    })
3771                }),
3772
3773                source_path: wire.table.get(2).map(|envelope| {
3774                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3775                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
3776                    })
3777                }),
3778
3779                delivery: wire.table.get(3).map(|envelope| {
3780                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3781                        envelope.deref_unchecked::<crate::wire::DeliveryType>()
3782                    })
3783                }),
3784            }
3785        }
3786    }
3787
3788    #[doc = " A reference to the environment.\n"]
3789    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3790    #[repr(C)]
3791    pub struct EnvironmentRef {}
3792
3793    unsafe impl<___E> ::fidl_next::Encode<crate::wire::EnvironmentRef, ___E> for EnvironmentRef
3794    where
3795        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3796    {
3797        #[inline]
3798        fn encode(
3799            self,
3800            encoder_: &mut ___E,
3801            out_: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentRef>,
3802            _: (),
3803        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3804            *out_ = ::core::mem::MaybeUninit::zeroed();
3805
3806            Ok(())
3807        }
3808    }
3809
3810    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EnvironmentRef, ___E> for &'a EnvironmentRef
3811    where
3812        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3813    {
3814        #[inline]
3815        fn encode(
3816            self,
3817            encoder_: &mut ___E,
3818            out_: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentRef>,
3819            _: (),
3820        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3821            ::fidl_next::munge! {
3822                let crate::wire::EnvironmentRef {
3823
3824                        _empty,
3825
3826
3827                } = out_;
3828            }
3829
3830            Ok(())
3831        }
3832    }
3833
3834    unsafe impl<___E>
3835        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::EnvironmentRef>, ___E>
3836        for EnvironmentRef
3837    where
3838        ___E: ::fidl_next::Encoder + ?Sized,
3839        EnvironmentRef: ::fidl_next::Encode<crate::wire::EnvironmentRef, ___E>,
3840    {
3841        #[inline]
3842        fn encode_option(
3843            this: ::core::option::Option<Self>,
3844            encoder: &mut ___E,
3845            out: &mut ::core::mem::MaybeUninit<
3846                ::fidl_next::WireBox<'static, crate::wire::EnvironmentRef>,
3847            >,
3848            _: (),
3849        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3850            if let Some(inner) = this {
3851                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
3852                ::fidl_next::WireBox::encode_present(out);
3853            } else {
3854                ::fidl_next::WireBox::encode_absent(out);
3855            }
3856
3857            Ok(())
3858        }
3859    }
3860
3861    unsafe impl<'a, ___E>
3862        ::fidl_next::EncodeOption<::fidl_next::WireBox<'static, crate::wire::EnvironmentRef>, ___E>
3863        for &'a EnvironmentRef
3864    where
3865        ___E: ::fidl_next::Encoder + ?Sized,
3866        &'a EnvironmentRef: ::fidl_next::Encode<crate::wire::EnvironmentRef, ___E>,
3867    {
3868        #[inline]
3869        fn encode_option(
3870            this: ::core::option::Option<Self>,
3871            encoder: &mut ___E,
3872            out: &mut ::core::mem::MaybeUninit<
3873                ::fidl_next::WireBox<'static, crate::wire::EnvironmentRef>,
3874            >,
3875            _: (),
3876        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3877            if let Some(inner) = this {
3878                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
3879                ::fidl_next::WireBox::encode_present(out);
3880            } else {
3881                ::fidl_next::WireBox::encode_absent(out);
3882            }
3883
3884            Ok(())
3885        }
3886    }
3887
3888    impl ::fidl_next::FromWire<crate::wire::EnvironmentRef> for EnvironmentRef {
3889        const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<crate::wire::EnvironmentRef, Self> =
3890            unsafe { ::fidl_next::CopyOptimization::enable_if(true) };
3891
3892        #[inline]
3893        fn from_wire(wire: crate::wire::EnvironmentRef) -> Self {
3894            Self {}
3895        }
3896    }
3897
3898    impl ::fidl_next::FromWireRef<crate::wire::EnvironmentRef> for EnvironmentRef {
3899        #[inline]
3900        fn from_wire_ref(wire: &crate::wire::EnvironmentRef) -> Self {
3901            Self {}
3902        }
3903    }
3904
3905    #[doc = " A reference to a capability source or destination relative to this\n component.\n"]
3906    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3907    pub enum Ref {
3908        Parent(crate::natural::ParentRef),
3909
3910        Self_(crate::natural::SelfRef),
3911
3912        Child(crate::natural::ChildRef),
3913
3914        Collection(crate::natural::CollectionRef),
3915
3916        Framework(crate::natural::FrameworkRef),
3917
3918        Capability(crate::natural::CapabilityRef),
3919
3920        Debug(crate::natural::DebugRef),
3921
3922        VoidType(crate::natural::VoidRef),
3923
3924        Environment(crate::natural::EnvironmentRef),
3925
3926        UnknownOrdinal_(u64),
3927    }
3928
3929    impl Ref {
3930        pub fn is_unknown(&self) -> bool {
3931            #[allow(unreachable_patterns)]
3932            match self {
3933                Self::UnknownOrdinal_(_) => true,
3934                _ => false,
3935            }
3936        }
3937    }
3938
3939    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Ref<'static>, ___E> for Ref
3940    where
3941        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3942        ___E: ::fidl_next::Encoder,
3943    {
3944        #[inline]
3945        fn encode(
3946            self,
3947            encoder: &mut ___E,
3948            out: &mut ::core::mem::MaybeUninit<crate::wire::Ref<'static>>,
3949            _: (),
3950        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3951            ::fidl_next::munge!(let crate::wire::Ref { raw, _phantom: _ } = out);
3952
3953            match self {
3954                Self::Parent(value) => ::fidl_next::RawWireUnion::encode_as::<
3955                    ___E,
3956                    crate::wire::ParentRef,
3957                >(value, 1, encoder, raw, ())?,
3958
3959                Self::Self_(value) => ::fidl_next::RawWireUnion::encode_as::<
3960                    ___E,
3961                    crate::wire::SelfRef,
3962                >(value, 2, encoder, raw, ())?,
3963
3964                Self::Child(value) => ::fidl_next::RawWireUnion::encode_as::<
3965                    ___E,
3966                    crate::wire::ChildRef<'static>,
3967                >(value, 3, encoder, raw, ())?,
3968
3969                Self::Collection(value) => ::fidl_next::RawWireUnion::encode_as::<
3970                    ___E,
3971                    crate::wire::CollectionRef<'static>,
3972                >(value, 4, encoder, raw, ())?,
3973
3974                Self::Framework(value) => ::fidl_next::RawWireUnion::encode_as::<
3975                    ___E,
3976                    crate::wire::FrameworkRef,
3977                >(value, 5, encoder, raw, ())?,
3978
3979                Self::Capability(value) => ::fidl_next::RawWireUnion::encode_as::<
3980                    ___E,
3981                    crate::wire::CapabilityRef<'static>,
3982                >(value, 6, encoder, raw, ())?,
3983
3984                Self::Debug(value) => ::fidl_next::RawWireUnion::encode_as::<
3985                    ___E,
3986                    crate::wire::DebugRef,
3987                >(value, 7, encoder, raw, ())?,
3988
3989                Self::VoidType(value) => ::fidl_next::RawWireUnion::encode_as::<
3990                    ___E,
3991                    crate::wire::VoidRef,
3992                >(value, 8, encoder, raw, ())?,
3993
3994                Self::Environment(value) => ::fidl_next::RawWireUnion::encode_as::<
3995                    ___E,
3996                    crate::wire::EnvironmentRef,
3997                >(value, 9, encoder, raw, ())?,
3998
3999                Self::UnknownOrdinal_(ordinal) => {
4000                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
4001                }
4002            }
4003
4004            Ok(())
4005        }
4006    }
4007
4008    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Ref<'static>, ___E> for &'a Ref
4009    where
4010        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4011        ___E: ::fidl_next::Encoder,
4012    {
4013        #[inline]
4014        fn encode(
4015            self,
4016            encoder: &mut ___E,
4017            out: &mut ::core::mem::MaybeUninit<crate::wire::Ref<'static>>,
4018            _: (),
4019        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4020            ::fidl_next::munge!(let crate::wire::Ref { raw, _phantom: _ } = out);
4021
4022            match self {
4023                Ref::Parent(value) => ::fidl_next::RawWireUnion::encode_as::<
4024                    ___E,
4025                    crate::wire::ParentRef,
4026                >(value, 1, encoder, raw, ())?,
4027
4028                Ref::Self_(value) => ::fidl_next::RawWireUnion::encode_as::<
4029                    ___E,
4030                    crate::wire::SelfRef,
4031                >(value, 2, encoder, raw, ())?,
4032
4033                Ref::Child(value) => ::fidl_next::RawWireUnion::encode_as::<
4034                    ___E,
4035                    crate::wire::ChildRef<'static>,
4036                >(value, 3, encoder, raw, ())?,
4037
4038                Ref::Collection(value) => ::fidl_next::RawWireUnion::encode_as::<
4039                    ___E,
4040                    crate::wire::CollectionRef<'static>,
4041                >(value, 4, encoder, raw, ())?,
4042
4043                Ref::Framework(value) => ::fidl_next::RawWireUnion::encode_as::<
4044                    ___E,
4045                    crate::wire::FrameworkRef,
4046                >(value, 5, encoder, raw, ())?,
4047
4048                Ref::Capability(value) => ::fidl_next::RawWireUnion::encode_as::<
4049                    ___E,
4050                    crate::wire::CapabilityRef<'static>,
4051                >(value, 6, encoder, raw, ())?,
4052
4053                Ref::Debug(value) => ::fidl_next::RawWireUnion::encode_as::<
4054                    ___E,
4055                    crate::wire::DebugRef,
4056                >(value, 7, encoder, raw, ())?,
4057
4058                Ref::VoidType(value) => ::fidl_next::RawWireUnion::encode_as::<
4059                    ___E,
4060                    crate::wire::VoidRef,
4061                >(value, 8, encoder, raw, ())?,
4062
4063                Ref::Environment(value) => ::fidl_next::RawWireUnion::encode_as::<
4064                    ___E,
4065                    crate::wire::EnvironmentRef,
4066                >(value, 9, encoder, raw, ())?,
4067
4068                Ref::UnknownOrdinal_(ordinal) => {
4069                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
4070                }
4071            }
4072
4073            Ok(())
4074        }
4075    }
4076
4077    unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Ref<'static>, ___E> for Ref
4078    where
4079        ___E: ?Sized,
4080        Ref: ::fidl_next::Encode<crate::wire::Ref<'static>, ___E>,
4081    {
4082        #[inline]
4083        fn encode_option(
4084            this: ::core::option::Option<Self>,
4085            encoder: &mut ___E,
4086            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Ref<'static>>,
4087            _: (),
4088        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4089            ::fidl_next::munge!(let crate::wire_optional::Ref { raw, _phantom: _ } = &mut *out);
4090
4091            if let Some(inner) = this {
4092                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4093                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4094            } else {
4095                ::fidl_next::RawWireUnion::encode_absent(raw);
4096            }
4097
4098            Ok(())
4099        }
4100    }
4101
4102    unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Ref<'static>, ___E>
4103        for &'a Ref
4104    where
4105        ___E: ?Sized,
4106        &'a Ref: ::fidl_next::Encode<crate::wire::Ref<'static>, ___E>,
4107    {
4108        #[inline]
4109        fn encode_option(
4110            this: ::core::option::Option<Self>,
4111            encoder: &mut ___E,
4112            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Ref<'static>>,
4113            _: (),
4114        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4115            ::fidl_next::munge!(let crate::wire_optional::Ref { raw, _phantom: _ } = &mut *out);
4116
4117            if let Some(inner) = this {
4118                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4119                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4120            } else {
4121                ::fidl_next::RawWireUnion::encode_absent(raw);
4122            }
4123
4124            Ok(())
4125        }
4126    }
4127
4128    impl<'de> ::fidl_next::FromWire<crate::wire::Ref<'de>> for Ref {
4129        #[inline]
4130        fn from_wire(wire: crate::wire::Ref<'de>) -> Self {
4131            let wire = ::core::mem::ManuallyDrop::new(wire);
4132            match wire.raw.ordinal() {
4133                1 => Self::Parent(::fidl_next::FromWire::from_wire(unsafe {
4134                    wire.raw.get().read_unchecked::<crate::wire::ParentRef>()
4135                })),
4136
4137                2 => Self::Self_(::fidl_next::FromWire::from_wire(unsafe {
4138                    wire.raw.get().read_unchecked::<crate::wire::SelfRef>()
4139                })),
4140
4141                3 => Self::Child(::fidl_next::FromWire::from_wire(unsafe {
4142                    wire.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>()
4143                })),
4144
4145                4 => Self::Collection(::fidl_next::FromWire::from_wire(unsafe {
4146                    wire.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
4147                })),
4148
4149                5 => Self::Framework(::fidl_next::FromWire::from_wire(unsafe {
4150                    wire.raw.get().read_unchecked::<crate::wire::FrameworkRef>()
4151                })),
4152
4153                6 => Self::Capability(::fidl_next::FromWire::from_wire(unsafe {
4154                    wire.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
4155                })),
4156
4157                7 => Self::Debug(::fidl_next::FromWire::from_wire(unsafe {
4158                    wire.raw.get().read_unchecked::<crate::wire::DebugRef>()
4159                })),
4160
4161                8 => Self::VoidType(::fidl_next::FromWire::from_wire(unsafe {
4162                    wire.raw.get().read_unchecked::<crate::wire::VoidRef>()
4163                })),
4164
4165                9 => Self::Environment(::fidl_next::FromWire::from_wire(unsafe {
4166                    wire.raw.get().read_unchecked::<crate::wire::EnvironmentRef>()
4167                })),
4168
4169                ord => return Self::UnknownOrdinal_(ord as u64),
4170            }
4171        }
4172    }
4173
4174    impl<'de> ::fidl_next::FromWireRef<crate::wire::Ref<'de>> for Ref {
4175        #[inline]
4176        fn from_wire_ref(wire: &crate::wire::Ref<'de>) -> Self {
4177            match wire.raw.ordinal() {
4178                1 => Self::Parent(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4179                    wire.raw.get().deref_unchecked::<crate::wire::ParentRef>()
4180                })),
4181
4182                2 => Self::Self_(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4183                    wire.raw.get().deref_unchecked::<crate::wire::SelfRef>()
4184                })),
4185
4186                3 => Self::Child(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4187                    wire.raw.get().deref_unchecked::<crate::wire::ChildRef<'de>>()
4188                })),
4189
4190                4 => Self::Collection(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4191                    wire.raw.get().deref_unchecked::<crate::wire::CollectionRef<'de>>()
4192                })),
4193
4194                5 => Self::Framework(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4195                    wire.raw.get().deref_unchecked::<crate::wire::FrameworkRef>()
4196                })),
4197
4198                6 => Self::Capability(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4199                    wire.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'de>>()
4200                })),
4201
4202                7 => Self::Debug(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4203                    wire.raw.get().deref_unchecked::<crate::wire::DebugRef>()
4204                })),
4205
4206                8 => Self::VoidType(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4207                    wire.raw.get().deref_unchecked::<crate::wire::VoidRef>()
4208                })),
4209
4210                9 => Self::Environment(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4211                    wire.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>()
4212                })),
4213
4214                ord => return Self::UnknownOrdinal_(ord as u64),
4215            }
4216        }
4217    }
4218
4219    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>> for Ref {
4220        #[inline]
4221        fn from_wire_option(wire: crate::wire_optional::Ref<'de>) -> ::core::option::Option<Self> {
4222            if let Some(inner) = wire.into_option() {
4223                Some(::fidl_next::FromWire::from_wire(inner))
4224            } else {
4225                None
4226            }
4227        }
4228    }
4229
4230    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>> for Box<Ref> {
4231        #[inline]
4232        fn from_wire_option(wire: crate::wire_optional::Ref<'de>) -> ::core::option::Option<Self> {
4233            <Ref as ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>>>::from_wire_option(
4234                wire,
4235            )
4236            .map(Box::new)
4237        }
4238    }
4239
4240    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Ref<'de>> for Box<Ref> {
4241        #[inline]
4242        fn from_wire_option_ref(
4243            wire: &crate::wire_optional::Ref<'de>,
4244        ) -> ::core::option::Option<Self> {
4245            if let Some(inner) = wire.as_ref() {
4246                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
4247            } else {
4248                None
4249            }
4250        }
4251    }
4252
4253    #[doc = " Declares a storage capability backed by a directory from which data, cache,\n or meta storage can be offered.\n"]
4254    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4255    pub struct Storage {
4256        pub name: ::core::option::Option<::std::string::String>,
4257
4258        pub source: ::core::option::Option<crate::natural::Ref>,
4259
4260        pub backing_dir: ::core::option::Option<::std::string::String>,
4261
4262        pub subdir: ::core::option::Option<::std::string::String>,
4263
4264        pub storage_id: ::core::option::Option<crate::natural::StorageId>,
4265    }
4266
4267    impl Storage {
4268        fn __max_ordinal(&self) -> usize {
4269            if self.storage_id.is_some() {
4270                return 5;
4271            }
4272
4273            if self.subdir.is_some() {
4274                return 4;
4275            }
4276
4277            if self.backing_dir.is_some() {
4278                return 3;
4279            }
4280
4281            if self.source.is_some() {
4282                return 2;
4283            }
4284
4285            if self.name.is_some() {
4286                return 1;
4287            }
4288
4289            0
4290        }
4291    }
4292
4293    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Storage<'static>, ___E> for Storage
4294    where
4295        ___E: ::fidl_next::Encoder + ?Sized,
4296    {
4297        #[inline]
4298        fn encode(
4299            mut self,
4300            encoder: &mut ___E,
4301            out: &mut ::core::mem::MaybeUninit<crate::wire::Storage<'static>>,
4302            _: (),
4303        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4304            ::fidl_next::munge!(let crate::wire::Storage { table } = out);
4305
4306            let max_ord = self.__max_ordinal();
4307
4308            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
4309            ::fidl_next::Wire::zero_padding(&mut out);
4310
4311            let mut preallocated =
4312                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
4313
4314            for i in 1..=max_ord {
4315                match i {
4316                    5 => {
4317                        if let Some(value) = self.storage_id.take() {
4318                            ::fidl_next::WireEnvelope::encode_value::<crate::wire::StorageId, ___E>(
4319                                value,
4320                                preallocated.encoder,
4321                                &mut out,
4322                                (),
4323                            )?;
4324                        } else {
4325                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4326                        }
4327                    }
4328
4329                    4 => {
4330                        if let Some(value) = self.subdir.take() {
4331                            ::fidl_next::WireEnvelope::encode_value::<
4332                                ::fidl_next::WireString<'static>,
4333                                ___E,
4334                            >(
4335                                value, preallocated.encoder, &mut out, 1024
4336                            )?;
4337                        } else {
4338                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4339                        }
4340                    }
4341
4342                    3 => {
4343                        if let Some(value) = self.backing_dir.take() {
4344                            ::fidl_next::WireEnvelope::encode_value::<
4345                                ::fidl_next::WireString<'static>,
4346                                ___E,
4347                            >(
4348                                value, preallocated.encoder, &mut out, 100
4349                            )?;
4350                        } else {
4351                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4352                        }
4353                    }
4354
4355                    2 => {
4356                        if let Some(value) = self.source.take() {
4357                            ::fidl_next::WireEnvelope::encode_value::<
4358                                crate::wire::Ref<'static>,
4359                                ___E,
4360                            >(
4361                                value, preallocated.encoder, &mut out, ()
4362                            )?;
4363                        } else {
4364                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4365                        }
4366                    }
4367
4368                    1 => {
4369                        if let Some(value) = self.name.take() {
4370                            ::fidl_next::WireEnvelope::encode_value::<
4371                                ::fidl_next::WireString<'static>,
4372                                ___E,
4373                            >(
4374                                value, preallocated.encoder, &mut out, 100
4375                            )?;
4376                        } else {
4377                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4378                        }
4379                    }
4380
4381                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
4382                }
4383                unsafe {
4384                    preallocated.write_next(out.assume_init_ref());
4385                }
4386            }
4387
4388            ::fidl_next::WireTable::encode_len(table, max_ord);
4389
4390            Ok(())
4391        }
4392    }
4393
4394    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Storage<'static>, ___E> for &'a Storage
4395    where
4396        ___E: ::fidl_next::Encoder + ?Sized,
4397    {
4398        #[inline]
4399        fn encode(
4400            self,
4401            encoder: &mut ___E,
4402            out: &mut ::core::mem::MaybeUninit<crate::wire::Storage<'static>>,
4403            _: (),
4404        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4405            ::fidl_next::munge!(let crate::wire::Storage { table } = out);
4406
4407            let max_ord = self.__max_ordinal();
4408
4409            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
4410            ::fidl_next::Wire::zero_padding(&mut out);
4411
4412            let mut preallocated =
4413                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
4414
4415            for i in 1..=max_ord {
4416                match i {
4417                    5 => {
4418                        if let Some(value) = &self.storage_id {
4419                            ::fidl_next::WireEnvelope::encode_value::<crate::wire::StorageId, ___E>(
4420                                value,
4421                                preallocated.encoder,
4422                                &mut out,
4423                                (),
4424                            )?;
4425                        } else {
4426                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4427                        }
4428                    }
4429
4430                    4 => {
4431                        if let Some(value) = &self.subdir {
4432                            ::fidl_next::WireEnvelope::encode_value::<
4433                                ::fidl_next::WireString<'static>,
4434                                ___E,
4435                            >(
4436                                value, preallocated.encoder, &mut out, 1024
4437                            )?;
4438                        } else {
4439                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4440                        }
4441                    }
4442
4443                    3 => {
4444                        if let Some(value) = &self.backing_dir {
4445                            ::fidl_next::WireEnvelope::encode_value::<
4446                                ::fidl_next::WireString<'static>,
4447                                ___E,
4448                            >(
4449                                value, preallocated.encoder, &mut out, 100
4450                            )?;
4451                        } else {
4452                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4453                        }
4454                    }
4455
4456                    2 => {
4457                        if let Some(value) = &self.source {
4458                            ::fidl_next::WireEnvelope::encode_value::<
4459                                crate::wire::Ref<'static>,
4460                                ___E,
4461                            >(
4462                                value, preallocated.encoder, &mut out, ()
4463                            )?;
4464                        } else {
4465                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4466                        }
4467                    }
4468
4469                    1 => {
4470                        if let Some(value) = &self.name {
4471                            ::fidl_next::WireEnvelope::encode_value::<
4472                                ::fidl_next::WireString<'static>,
4473                                ___E,
4474                            >(
4475                                value, preallocated.encoder, &mut out, 100
4476                            )?;
4477                        } else {
4478                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4479                        }
4480                    }
4481
4482                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
4483                }
4484                unsafe {
4485                    preallocated.write_next(out.assume_init_ref());
4486                }
4487            }
4488
4489            ::fidl_next::WireTable::encode_len(table, max_ord);
4490
4491            Ok(())
4492        }
4493    }
4494
4495    impl<'de> ::fidl_next::FromWire<crate::wire::Storage<'de>> for Storage {
4496        #[inline]
4497        fn from_wire(wire_: crate::wire::Storage<'de>) -> Self {
4498            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
4499
4500            let name = wire_.table.get(1);
4501
4502            let source = wire_.table.get(2);
4503
4504            let backing_dir = wire_.table.get(3);
4505
4506            let subdir = wire_.table.get(4);
4507
4508            let storage_id = wire_.table.get(5);
4509
4510            Self {
4511                name: name.map(|envelope| {
4512                    ::fidl_next::FromWire::from_wire(unsafe {
4513                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
4514                    })
4515                }),
4516
4517                source: source.map(|envelope| {
4518                    ::fidl_next::FromWire::from_wire(unsafe {
4519                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
4520                    })
4521                }),
4522
4523                backing_dir: backing_dir.map(|envelope| {
4524                    ::fidl_next::FromWire::from_wire(unsafe {
4525                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
4526                    })
4527                }),
4528
4529                subdir: subdir.map(|envelope| {
4530                    ::fidl_next::FromWire::from_wire(unsafe {
4531                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
4532                    })
4533                }),
4534
4535                storage_id: storage_id.map(|envelope| {
4536                    ::fidl_next::FromWire::from_wire(unsafe {
4537                        envelope.read_unchecked::<crate::wire::StorageId>()
4538                    })
4539                }),
4540            }
4541        }
4542    }
4543
4544    impl<'de> ::fidl_next::FromWireRef<crate::wire::Storage<'de>> for Storage {
4545        #[inline]
4546        fn from_wire_ref(wire: &crate::wire::Storage<'de>) -> Self {
4547            Self {
4548                name: wire.table.get(1).map(|envelope| {
4549                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4550                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
4551                    })
4552                }),
4553
4554                source: wire.table.get(2).map(|envelope| {
4555                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4556                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
4557                    })
4558                }),
4559
4560                backing_dir: wire.table.get(3).map(|envelope| {
4561                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4562                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
4563                    })
4564                }),
4565
4566                subdir: wire.table.get(4).map(|envelope| {
4567                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4568                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
4569                    })
4570                }),
4571
4572                storage_id: wire.table.get(5).map(|envelope| {
4573                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4574                        envelope.deref_unchecked::<crate::wire::StorageId>()
4575                    })
4576                }),
4577            }
4578        }
4579    }
4580
4581    #[doc = " Declares a dictionary capability.\n"]
4582    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4583    pub struct Dictionary {
4584        pub name: ::core::option::Option<::std::string::String>,
4585
4586        pub source: ::core::option::Option<crate::natural::Ref>,
4587
4588        pub source_dictionary: ::core::option::Option<::std::string::String>,
4589
4590        pub source_path: ::core::option::Option<::std::string::String>,
4591    }
4592
4593    impl Dictionary {
4594        fn __max_ordinal(&self) -> usize {
4595            if self.source_path.is_some() {
4596                return 4;
4597            }
4598
4599            if self.source_dictionary.is_some() {
4600                return 3;
4601            }
4602
4603            if self.source.is_some() {
4604                return 2;
4605            }
4606
4607            if self.name.is_some() {
4608                return 1;
4609            }
4610
4611            0
4612        }
4613    }
4614
4615    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Dictionary<'static>, ___E> for Dictionary
4616    where
4617        ___E: ::fidl_next::Encoder + ?Sized,
4618    {
4619        #[inline]
4620        fn encode(
4621            mut self,
4622            encoder: &mut ___E,
4623            out: &mut ::core::mem::MaybeUninit<crate::wire::Dictionary<'static>>,
4624            _: (),
4625        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4626            ::fidl_next::munge!(let crate::wire::Dictionary { table } = out);
4627
4628            let max_ord = self.__max_ordinal();
4629
4630            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
4631            ::fidl_next::Wire::zero_padding(&mut out);
4632
4633            let mut preallocated =
4634                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
4635
4636            for i in 1..=max_ord {
4637                match i {
4638                    4 => {
4639                        if let Some(value) = self.source_path.take() {
4640                            ::fidl_next::WireEnvelope::encode_value::<
4641                                ::fidl_next::WireString<'static>,
4642                                ___E,
4643                            >(
4644                                value, preallocated.encoder, &mut out, 1024
4645                            )?;
4646                        } else {
4647                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4648                        }
4649                    }
4650
4651                    3 => {
4652                        if let Some(value) = self.source_dictionary.take() {
4653                            ::fidl_next::WireEnvelope::encode_value::<
4654                                ::fidl_next::WireString<'static>,
4655                                ___E,
4656                            >(
4657                                value, preallocated.encoder, &mut out, 1024
4658                            )?;
4659                        } else {
4660                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4661                        }
4662                    }
4663
4664                    2 => {
4665                        if let Some(value) = self.source.take() {
4666                            ::fidl_next::WireEnvelope::encode_value::<
4667                                crate::wire::Ref<'static>,
4668                                ___E,
4669                            >(
4670                                value, preallocated.encoder, &mut out, ()
4671                            )?;
4672                        } else {
4673                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4674                        }
4675                    }
4676
4677                    1 => {
4678                        if let Some(value) = self.name.take() {
4679                            ::fidl_next::WireEnvelope::encode_value::<
4680                                ::fidl_next::WireString<'static>,
4681                                ___E,
4682                            >(
4683                                value, preallocated.encoder, &mut out, 100
4684                            )?;
4685                        } else {
4686                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4687                        }
4688                    }
4689
4690                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
4691                }
4692                unsafe {
4693                    preallocated.write_next(out.assume_init_ref());
4694                }
4695            }
4696
4697            ::fidl_next::WireTable::encode_len(table, max_ord);
4698
4699            Ok(())
4700        }
4701    }
4702
4703    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Dictionary<'static>, ___E> for &'a Dictionary
4704    where
4705        ___E: ::fidl_next::Encoder + ?Sized,
4706    {
4707        #[inline]
4708        fn encode(
4709            self,
4710            encoder: &mut ___E,
4711            out: &mut ::core::mem::MaybeUninit<crate::wire::Dictionary<'static>>,
4712            _: (),
4713        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4714            ::fidl_next::munge!(let crate::wire::Dictionary { table } = out);
4715
4716            let max_ord = self.__max_ordinal();
4717
4718            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
4719            ::fidl_next::Wire::zero_padding(&mut out);
4720
4721            let mut preallocated =
4722                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
4723
4724            for i in 1..=max_ord {
4725                match i {
4726                    4 => {
4727                        if let Some(value) = &self.source_path {
4728                            ::fidl_next::WireEnvelope::encode_value::<
4729                                ::fidl_next::WireString<'static>,
4730                                ___E,
4731                            >(
4732                                value, preallocated.encoder, &mut out, 1024
4733                            )?;
4734                        } else {
4735                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4736                        }
4737                    }
4738
4739                    3 => {
4740                        if let Some(value) = &self.source_dictionary {
4741                            ::fidl_next::WireEnvelope::encode_value::<
4742                                ::fidl_next::WireString<'static>,
4743                                ___E,
4744                            >(
4745                                value, preallocated.encoder, &mut out, 1024
4746                            )?;
4747                        } else {
4748                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4749                        }
4750                    }
4751
4752                    2 => {
4753                        if let Some(value) = &self.source {
4754                            ::fidl_next::WireEnvelope::encode_value::<
4755                                crate::wire::Ref<'static>,
4756                                ___E,
4757                            >(
4758                                value, preallocated.encoder, &mut out, ()
4759                            )?;
4760                        } else {
4761                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4762                        }
4763                    }
4764
4765                    1 => {
4766                        if let Some(value) = &self.name {
4767                            ::fidl_next::WireEnvelope::encode_value::<
4768                                ::fidl_next::WireString<'static>,
4769                                ___E,
4770                            >(
4771                                value, preallocated.encoder, &mut out, 100
4772                            )?;
4773                        } else {
4774                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
4775                        }
4776                    }
4777
4778                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
4779                }
4780                unsafe {
4781                    preallocated.write_next(out.assume_init_ref());
4782                }
4783            }
4784
4785            ::fidl_next::WireTable::encode_len(table, max_ord);
4786
4787            Ok(())
4788        }
4789    }
4790
4791    impl<'de> ::fidl_next::FromWire<crate::wire::Dictionary<'de>> for Dictionary {
4792        #[inline]
4793        fn from_wire(wire_: crate::wire::Dictionary<'de>) -> Self {
4794            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
4795
4796            let name = wire_.table.get(1);
4797
4798            let source = wire_.table.get(2);
4799
4800            let source_dictionary = wire_.table.get(3);
4801
4802            let source_path = wire_.table.get(4);
4803
4804            Self {
4805                name: name.map(|envelope| {
4806                    ::fidl_next::FromWire::from_wire(unsafe {
4807                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
4808                    })
4809                }),
4810
4811                source: source.map(|envelope| {
4812                    ::fidl_next::FromWire::from_wire(unsafe {
4813                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
4814                    })
4815                }),
4816
4817                source_dictionary: source_dictionary.map(|envelope| {
4818                    ::fidl_next::FromWire::from_wire(unsafe {
4819                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
4820                    })
4821                }),
4822
4823                source_path: source_path.map(|envelope| {
4824                    ::fidl_next::FromWire::from_wire(unsafe {
4825                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
4826                    })
4827                }),
4828            }
4829        }
4830    }
4831
4832    impl<'de> ::fidl_next::FromWireRef<crate::wire::Dictionary<'de>> for Dictionary {
4833        #[inline]
4834        fn from_wire_ref(wire: &crate::wire::Dictionary<'de>) -> Self {
4835            Self {
4836                name: wire.table.get(1).map(|envelope| {
4837                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4838                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
4839                    })
4840                }),
4841
4842                source: wire.table.get(2).map(|envelope| {
4843                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4844                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
4845                    })
4846                }),
4847
4848                source_dictionary: wire.table.get(3).map(|envelope| {
4849                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4850                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
4851                    })
4852                }),
4853
4854                source_path: wire.table.get(4).map(|envelope| {
4855                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4856                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
4857                    })
4858                }),
4859            }
4860        }
4861    }
4862
4863    #[doc = " Declares a capability defined by this component.\n"]
4864    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4865    pub enum Capability {
4866        Service(crate::natural::Service),
4867
4868        Protocol(crate::natural::Protocol),
4869
4870        Directory(crate::natural::Directory),
4871
4872        Storage(crate::natural::Storage),
4873
4874        Runner(crate::natural::Runner),
4875
4876        Resolver(crate::natural::Resolver),
4877
4878        EventStream(crate::natural::EventStream),
4879
4880        Dictionary(crate::natural::Dictionary),
4881
4882        Config(crate::natural::Configuration),
4883
4884        UnknownOrdinal_(u64),
4885    }
4886
4887    impl Capability {
4888        pub fn is_unknown(&self) -> bool {
4889            #[allow(unreachable_patterns)]
4890            match self {
4891                Self::UnknownOrdinal_(_) => true,
4892                _ => false,
4893            }
4894        }
4895    }
4896
4897    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Capability<'static>, ___E> for Capability
4898    where
4899        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4900        ___E: ::fidl_next::Encoder,
4901    {
4902        #[inline]
4903        fn encode(
4904            self,
4905            encoder: &mut ___E,
4906            out: &mut ::core::mem::MaybeUninit<crate::wire::Capability<'static>>,
4907            _: (),
4908        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4909            ::fidl_next::munge!(let crate::wire::Capability { raw, _phantom: _ } = out);
4910
4911            match self {
4912                Self::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
4913                    ___E,
4914                    crate::wire::Service<'static>,
4915                >(value, 1, encoder, raw, ())?,
4916
4917                Self::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
4918                    ___E,
4919                    crate::wire::Protocol<'static>,
4920                >(value, 2, encoder, raw, ())?,
4921
4922                Self::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
4923                    ___E,
4924                    crate::wire::Directory<'static>,
4925                >(value, 3, encoder, raw, ())?,
4926
4927                Self::Storage(value) => ::fidl_next::RawWireUnion::encode_as::<
4928                    ___E,
4929                    crate::wire::Storage<'static>,
4930                >(value, 4, encoder, raw, ())?,
4931
4932                Self::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
4933                    ___E,
4934                    crate::wire::Runner<'static>,
4935                >(value, 5, encoder, raw, ())?,
4936
4937                Self::Resolver(value) => ::fidl_next::RawWireUnion::encode_as::<
4938                    ___E,
4939                    crate::wire::Resolver<'static>,
4940                >(value, 6, encoder, raw, ())?,
4941
4942                Self::EventStream(value) => ::fidl_next::RawWireUnion::encode_as::<
4943                    ___E,
4944                    crate::wire::EventStream<'static>,
4945                >(value, 8, encoder, raw, ())?,
4946
4947                Self::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
4948                    ___E,
4949                    crate::wire::Dictionary<'static>,
4950                >(value, 9, encoder, raw, ())?,
4951
4952                Self::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
4953                    ___E,
4954                    crate::wire::Configuration<'static>,
4955                >(value, 10, encoder, raw, ())?,
4956
4957                Self::UnknownOrdinal_(ordinal) => {
4958                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
4959                }
4960            }
4961
4962            Ok(())
4963        }
4964    }
4965
4966    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Capability<'static>, ___E> for &'a Capability
4967    where
4968        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4969        ___E: ::fidl_next::Encoder,
4970    {
4971        #[inline]
4972        fn encode(
4973            self,
4974            encoder: &mut ___E,
4975            out: &mut ::core::mem::MaybeUninit<crate::wire::Capability<'static>>,
4976            _: (),
4977        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4978            ::fidl_next::munge!(let crate::wire::Capability { raw, _phantom: _ } = out);
4979
4980            match self {
4981                Capability::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
4982                    ___E,
4983                    crate::wire::Service<'static>,
4984                >(value, 1, encoder, raw, ())?,
4985
4986                Capability::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
4987                    ___E,
4988                    crate::wire::Protocol<'static>,
4989                >(value, 2, encoder, raw, ())?,
4990
4991                Capability::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
4992                    ___E,
4993                    crate::wire::Directory<'static>,
4994                >(value, 3, encoder, raw, ())?,
4995
4996                Capability::Storage(value) => ::fidl_next::RawWireUnion::encode_as::<
4997                    ___E,
4998                    crate::wire::Storage<'static>,
4999                >(value, 4, encoder, raw, ())?,
5000
5001                Capability::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
5002                    ___E,
5003                    crate::wire::Runner<'static>,
5004                >(value, 5, encoder, raw, ())?,
5005
5006                Capability::Resolver(value) => ::fidl_next::RawWireUnion::encode_as::<
5007                    ___E,
5008                    crate::wire::Resolver<'static>,
5009                >(value, 6, encoder, raw, ())?,
5010
5011                Capability::EventStream(value) => ::fidl_next::RawWireUnion::encode_as::<
5012                    ___E,
5013                    crate::wire::EventStream<'static>,
5014                >(value, 8, encoder, raw, ())?,
5015
5016                Capability::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
5017                    ___E,
5018                    crate::wire::Dictionary<'static>,
5019                >(value, 9, encoder, raw, ())?,
5020
5021                Capability::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
5022                    ___E,
5023                    crate::wire::Configuration<'static>,
5024                >(value, 10, encoder, raw, ())?,
5025
5026                Capability::UnknownOrdinal_(ordinal) => {
5027                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
5028                }
5029            }
5030
5031            Ok(())
5032        }
5033    }
5034
5035    unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Capability<'static>, ___E>
5036        for Capability
5037    where
5038        ___E: ?Sized,
5039        Capability: ::fidl_next::Encode<crate::wire::Capability<'static>, ___E>,
5040    {
5041        #[inline]
5042        fn encode_option(
5043            this: ::core::option::Option<Self>,
5044            encoder: &mut ___E,
5045            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Capability<'static>>,
5046            _: (),
5047        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5048            ::fidl_next::munge!(let crate::wire_optional::Capability { raw, _phantom: _ } = &mut *out);
5049
5050            if let Some(inner) = this {
5051                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
5052                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
5053            } else {
5054                ::fidl_next::RawWireUnion::encode_absent(raw);
5055            }
5056
5057            Ok(())
5058        }
5059    }
5060
5061    unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Capability<'static>, ___E>
5062        for &'a Capability
5063    where
5064        ___E: ?Sized,
5065        &'a Capability: ::fidl_next::Encode<crate::wire::Capability<'static>, ___E>,
5066    {
5067        #[inline]
5068        fn encode_option(
5069            this: ::core::option::Option<Self>,
5070            encoder: &mut ___E,
5071            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Capability<'static>>,
5072            _: (),
5073        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5074            ::fidl_next::munge!(let crate::wire_optional::Capability { raw, _phantom: _ } = &mut *out);
5075
5076            if let Some(inner) = this {
5077                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
5078                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
5079            } else {
5080                ::fidl_next::RawWireUnion::encode_absent(raw);
5081            }
5082
5083            Ok(())
5084        }
5085    }
5086
5087    impl<'de> ::fidl_next::FromWire<crate::wire::Capability<'de>> for Capability {
5088        #[inline]
5089        fn from_wire(wire: crate::wire::Capability<'de>) -> Self {
5090            let wire = ::core::mem::ManuallyDrop::new(wire);
5091            match wire.raw.ordinal() {
5092                1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
5093                    wire.raw.get().read_unchecked::<crate::wire::Service<'de>>()
5094                })),
5095
5096                2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
5097                    wire.raw.get().read_unchecked::<crate::wire::Protocol<'de>>()
5098                })),
5099
5100                3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
5101                    wire.raw.get().read_unchecked::<crate::wire::Directory<'de>>()
5102                })),
5103
5104                4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
5105                    wire.raw.get().read_unchecked::<crate::wire::Storage<'de>>()
5106                })),
5107
5108                5 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
5109                    wire.raw.get().read_unchecked::<crate::wire::Runner<'de>>()
5110                })),
5111
5112                6 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
5113                    wire.raw.get().read_unchecked::<crate::wire::Resolver<'de>>()
5114                })),
5115
5116                8 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
5117                    wire.raw.get().read_unchecked::<crate::wire::EventStream<'de>>()
5118                })),
5119
5120                9 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
5121                    wire.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>()
5122                })),
5123
5124                10 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
5125                    wire.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
5126                })),
5127
5128                ord => return Self::UnknownOrdinal_(ord as u64),
5129            }
5130        }
5131    }
5132
5133    impl<'de> ::fidl_next::FromWireRef<crate::wire::Capability<'de>> for Capability {
5134        #[inline]
5135        fn from_wire_ref(wire: &crate::wire::Capability<'de>) -> Self {
5136            match wire.raw.ordinal() {
5137                1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5138                    wire.raw.get().deref_unchecked::<crate::wire::Service<'de>>()
5139                })),
5140
5141                2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5142                    wire.raw.get().deref_unchecked::<crate::wire::Protocol<'de>>()
5143                })),
5144
5145                3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5146                    wire.raw.get().deref_unchecked::<crate::wire::Directory<'de>>()
5147                })),
5148
5149                4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5150                    wire.raw.get().deref_unchecked::<crate::wire::Storage<'de>>()
5151                })),
5152
5153                5 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5154                    wire.raw.get().deref_unchecked::<crate::wire::Runner<'de>>()
5155                })),
5156
5157                6 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5158                    wire.raw.get().deref_unchecked::<crate::wire::Resolver<'de>>()
5159                })),
5160
5161                8 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5162                    wire.raw.get().deref_unchecked::<crate::wire::EventStream<'de>>()
5163                })),
5164
5165                9 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5166                    wire.raw.get().deref_unchecked::<crate::wire::Dictionary<'de>>()
5167                })),
5168
5169                10 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
5170                    wire.raw.get().deref_unchecked::<crate::wire::Configuration<'de>>()
5171                })),
5172
5173                ord => return Self::UnknownOrdinal_(ord as u64),
5174            }
5175        }
5176    }
5177
5178    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>> for Capability {
5179        #[inline]
5180        fn from_wire_option(
5181            wire: crate::wire_optional::Capability<'de>,
5182        ) -> ::core::option::Option<Self> {
5183            if let Some(inner) = wire.into_option() {
5184                Some(::fidl_next::FromWire::from_wire(inner))
5185            } else {
5186                None
5187            }
5188        }
5189    }
5190
5191    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>> for Box<Capability> {
5192        #[inline]
5193        fn from_wire_option(
5194            wire: crate::wire_optional::Capability<'de>,
5195        ) -> ::core::option::Option<Self> {
5196            <
5197            Capability as ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>>
5198        >::from_wire_option(wire).map(Box::new)
5199        }
5200    }
5201
5202    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Capability<'de>>
5203        for Box<Capability>
5204    {
5205        #[inline]
5206        fn from_wire_option_ref(
5207            wire: &crate::wire_optional::Capability<'de>,
5208        ) -> ::core::option::Option<Self> {
5209            if let Some(inner) = wire.as_ref() {
5210                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
5211            } else {
5212                None
5213            }
5214        }
5215    }
5216
5217    #[doc = " Describes under what conditions the component may be started.\n"]
5218    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5219    #[repr(u32)]
5220    pub enum StartupMode {
5221        Lazy = 0,
5222        Eager = 1,
5223    }
5224    impl ::core::convert::TryFrom<u32> for StartupMode {
5225        type Error = ::fidl_next::UnknownStrictEnumMemberError;
5226        fn try_from(
5227            value: u32,
5228        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5229            match value {
5230                0 => Ok(Self::Lazy),
5231                1 => Ok(Self::Eager),
5232
5233                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5234            }
5235        }
5236    }
5237
5238    unsafe impl<___E> ::fidl_next::Encode<crate::wire::StartupMode, ___E> for StartupMode
5239    where
5240        ___E: ?Sized,
5241    {
5242        #[inline]
5243        fn encode(
5244            self,
5245            encoder: &mut ___E,
5246            out: &mut ::core::mem::MaybeUninit<crate::wire::StartupMode>,
5247            _: (),
5248        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5249            ::fidl_next::Encode::encode(&self, encoder, out, ())
5250        }
5251    }
5252
5253    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::StartupMode, ___E> for &'a StartupMode
5254    where
5255        ___E: ?Sized,
5256    {
5257        #[inline]
5258        fn encode(
5259            self,
5260            encoder: &mut ___E,
5261            out: &mut ::core::mem::MaybeUninit<crate::wire::StartupMode>,
5262            _: (),
5263        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5264            ::fidl_next::munge!(let crate::wire::StartupMode { value } = out);
5265            let _ = value.write(::fidl_next::WireU32::from(match *self {
5266                StartupMode::Lazy => 0,
5267
5268                StartupMode::Eager => 1,
5269            }));
5270
5271            Ok(())
5272        }
5273    }
5274
5275    impl ::core::convert::From<crate::wire::StartupMode> for StartupMode {
5276        fn from(wire: crate::wire::StartupMode) -> Self {
5277            match u32::from(wire.value) {
5278                0 => Self::Lazy,
5279
5280                1 => Self::Eager,
5281
5282                _ => unsafe { ::core::hint::unreachable_unchecked() },
5283            }
5284        }
5285    }
5286
5287    impl ::fidl_next::FromWire<crate::wire::StartupMode> for StartupMode {
5288        #[inline]
5289        fn from_wire(wire: crate::wire::StartupMode) -> Self {
5290            Self::from(wire)
5291        }
5292    }
5293
5294    impl ::fidl_next::FromWireRef<crate::wire::StartupMode> for StartupMode {
5295        #[inline]
5296        fn from_wire_ref(wire: &crate::wire::StartupMode) -> Self {
5297            Self::from(*wire)
5298        }
5299    }
5300
5301    #[doc = " Describes the action to take if this component instance terminates\n unexpectedly.\n"]
5302    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5303    #[repr(u32)]
5304    pub enum OnTerminate {
5305        None = 0,
5306        Reboot = 1,
5307    }
5308    impl ::core::convert::TryFrom<u32> for OnTerminate {
5309        type Error = ::fidl_next::UnknownStrictEnumMemberError;
5310        fn try_from(
5311            value: u32,
5312        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5313            match value {
5314                0 => Ok(Self::None),
5315                1 => Ok(Self::Reboot),
5316
5317                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5318            }
5319        }
5320    }
5321
5322    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OnTerminate, ___E> for OnTerminate
5323    where
5324        ___E: ?Sized,
5325    {
5326        #[inline]
5327        fn encode(
5328            self,
5329            encoder: &mut ___E,
5330            out: &mut ::core::mem::MaybeUninit<crate::wire::OnTerminate>,
5331            _: (),
5332        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5333            ::fidl_next::Encode::encode(&self, encoder, out, ())
5334        }
5335    }
5336
5337    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OnTerminate, ___E> for &'a OnTerminate
5338    where
5339        ___E: ?Sized,
5340    {
5341        #[inline]
5342        fn encode(
5343            self,
5344            encoder: &mut ___E,
5345            out: &mut ::core::mem::MaybeUninit<crate::wire::OnTerminate>,
5346            _: (),
5347        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5348            ::fidl_next::munge!(let crate::wire::OnTerminate { value } = out);
5349            let _ = value.write(::fidl_next::WireU32::from(match *self {
5350                OnTerminate::None => 0,
5351
5352                OnTerminate::Reboot => 1,
5353            }));
5354
5355            Ok(())
5356        }
5357    }
5358
5359    impl ::core::convert::From<crate::wire::OnTerminate> for OnTerminate {
5360        fn from(wire: crate::wire::OnTerminate) -> Self {
5361            match u32::from(wire.value) {
5362                0 => Self::None,
5363
5364                1 => Self::Reboot,
5365
5366                _ => unsafe { ::core::hint::unreachable_unchecked() },
5367            }
5368        }
5369    }
5370
5371    impl ::fidl_next::FromWire<crate::wire::OnTerminate> for OnTerminate {
5372        #[inline]
5373        fn from_wire(wire: crate::wire::OnTerminate) -> Self {
5374            Self::from(wire)
5375        }
5376    }
5377
5378    impl ::fidl_next::FromWireRef<crate::wire::OnTerminate> for OnTerminate {
5379        #[inline]
5380        fn from_wire_ref(wire: &crate::wire::OnTerminate) -> Self {
5381            Self::from(*wire)
5382        }
5383    }
5384
5385    #[doc = " The string identifier for a config field.\n"]
5386    pub type ConfigKey = ::std::string::String;
5387
5388    #[doc = " A directive to override the value of a particular configuration field in the child.\n"]
5389    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5390    pub struct ConfigOverride {
5391        pub key: ::core::option::Option<::std::string::String>,
5392
5393        pub value: ::core::option::Option<crate::natural::ConfigValue>,
5394    }
5395
5396    impl ConfigOverride {
5397        fn __max_ordinal(&self) -> usize {
5398            if self.value.is_some() {
5399                return 2;
5400            }
5401
5402            if self.key.is_some() {
5403                return 1;
5404            }
5405
5406            0
5407        }
5408    }
5409
5410    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigOverride<'static>, ___E> for ConfigOverride
5411    where
5412        ___E: ::fidl_next::Encoder + ?Sized,
5413    {
5414        #[inline]
5415        fn encode(
5416            mut self,
5417            encoder: &mut ___E,
5418            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigOverride<'static>>,
5419            _: (),
5420        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5421            ::fidl_next::munge!(let crate::wire::ConfigOverride { table } = out);
5422
5423            let max_ord = self.__max_ordinal();
5424
5425            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
5426            ::fidl_next::Wire::zero_padding(&mut out);
5427
5428            let mut preallocated =
5429                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
5430
5431            for i in 1..=max_ord {
5432                match i {
5433                    2 => {
5434                        if let Some(value) = self.value.take() {
5435                            ::fidl_next::WireEnvelope::encode_value::<
5436                                crate::wire::ConfigValue<'static>,
5437                                ___E,
5438                            >(
5439                                value, preallocated.encoder, &mut out, ()
5440                            )?;
5441                        } else {
5442                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5443                        }
5444                    }
5445
5446                    1 => {
5447                        if let Some(value) = self.key.take() {
5448                            ::fidl_next::WireEnvelope::encode_value::<
5449                                ::fidl_next::WireString<'static>,
5450                                ___E,
5451                            >(
5452                                value, preallocated.encoder, &mut out, 64
5453                            )?;
5454                        } else {
5455                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5456                        }
5457                    }
5458
5459                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
5460                }
5461                unsafe {
5462                    preallocated.write_next(out.assume_init_ref());
5463                }
5464            }
5465
5466            ::fidl_next::WireTable::encode_len(table, max_ord);
5467
5468            Ok(())
5469        }
5470    }
5471
5472    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigOverride<'static>, ___E>
5473        for &'a ConfigOverride
5474    where
5475        ___E: ::fidl_next::Encoder + ?Sized,
5476    {
5477        #[inline]
5478        fn encode(
5479            self,
5480            encoder: &mut ___E,
5481            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigOverride<'static>>,
5482            _: (),
5483        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5484            ::fidl_next::munge!(let crate::wire::ConfigOverride { table } = out);
5485
5486            let max_ord = self.__max_ordinal();
5487
5488            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
5489            ::fidl_next::Wire::zero_padding(&mut out);
5490
5491            let mut preallocated =
5492                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
5493
5494            for i in 1..=max_ord {
5495                match i {
5496                    2 => {
5497                        if let Some(value) = &self.value {
5498                            ::fidl_next::WireEnvelope::encode_value::<
5499                                crate::wire::ConfigValue<'static>,
5500                                ___E,
5501                            >(
5502                                value, preallocated.encoder, &mut out, ()
5503                            )?;
5504                        } else {
5505                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5506                        }
5507                    }
5508
5509                    1 => {
5510                        if let Some(value) = &self.key {
5511                            ::fidl_next::WireEnvelope::encode_value::<
5512                                ::fidl_next::WireString<'static>,
5513                                ___E,
5514                            >(
5515                                value, preallocated.encoder, &mut out, 64
5516                            )?;
5517                        } else {
5518                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5519                        }
5520                    }
5521
5522                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
5523                }
5524                unsafe {
5525                    preallocated.write_next(out.assume_init_ref());
5526                }
5527            }
5528
5529            ::fidl_next::WireTable::encode_len(table, max_ord);
5530
5531            Ok(())
5532        }
5533    }
5534
5535    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigOverride<'de>> for ConfigOverride {
5536        #[inline]
5537        fn from_wire(wire_: crate::wire::ConfigOverride<'de>) -> Self {
5538            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5539
5540            let key = wire_.table.get(1);
5541
5542            let value = wire_.table.get(2);
5543
5544            Self {
5545                key: key.map(|envelope| {
5546                    ::fidl_next::FromWire::from_wire(unsafe {
5547                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
5548                    })
5549                }),
5550
5551                value: value.map(|envelope| {
5552                    ::fidl_next::FromWire::from_wire(unsafe {
5553                        envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
5554                    })
5555                }),
5556            }
5557        }
5558    }
5559
5560    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigOverride<'de>> for ConfigOverride {
5561        #[inline]
5562        fn from_wire_ref(wire: &crate::wire::ConfigOverride<'de>) -> Self {
5563            Self {
5564                key: wire.table.get(1).map(|envelope| {
5565                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5566                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
5567                    })
5568                }),
5569
5570                value: wire.table.get(2).map(|envelope| {
5571                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5572                        envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
5573                    })
5574                }),
5575            }
5576        }
5577    }
5578
5579    #[doc = " Statically declares a child component instance.\n"]
5580    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5581    pub struct Child {
5582        pub name: ::core::option::Option<::std::string::String>,
5583
5584        pub url: ::core::option::Option<::std::string::String>,
5585
5586        pub startup: ::core::option::Option<crate::natural::StartupMode>,
5587
5588        pub environment: ::core::option::Option<::std::string::String>,
5589
5590        pub on_terminate: ::core::option::Option<crate::natural::OnTerminate>,
5591
5592        pub config_overrides:
5593            ::core::option::Option<::std::vec::Vec<crate::natural::ConfigOverride>>,
5594    }
5595
5596    impl Child {
5597        fn __max_ordinal(&self) -> usize {
5598            if self.config_overrides.is_some() {
5599                return 6;
5600            }
5601
5602            if self.on_terminate.is_some() {
5603                return 5;
5604            }
5605
5606            if self.environment.is_some() {
5607                return 4;
5608            }
5609
5610            if self.startup.is_some() {
5611                return 3;
5612            }
5613
5614            if self.url.is_some() {
5615                return 2;
5616            }
5617
5618            if self.name.is_some() {
5619                return 1;
5620            }
5621
5622            0
5623        }
5624    }
5625
5626    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Child<'static>, ___E> for Child
5627    where
5628        ___E: ::fidl_next::Encoder + ?Sized,
5629    {
5630        #[inline]
5631        fn encode(
5632            mut self,
5633            encoder: &mut ___E,
5634            out: &mut ::core::mem::MaybeUninit<crate::wire::Child<'static>>,
5635            _: (),
5636        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5637            ::fidl_next::munge!(let crate::wire::Child { table } = out);
5638
5639            let max_ord = self.__max_ordinal();
5640
5641            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
5642            ::fidl_next::Wire::zero_padding(&mut out);
5643
5644            let mut preallocated =
5645                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
5646
5647            for i in 1..=max_ord {
5648                match i {
5649                    6 => {
5650                        if let Some(value) = self.config_overrides.take() {
5651                            ::fidl_next::WireEnvelope::encode_value::<
5652                                ::fidl_next::WireVector<
5653                                    'static,
5654                                    crate::wire::ConfigOverride<'static>,
5655                                >,
5656                                ___E,
5657                            >(
5658                                value, preallocated.encoder, &mut out, (4294967295, ())
5659                            )?;
5660                        } else {
5661                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5662                        }
5663                    }
5664
5665                    5 => {
5666                        if let Some(value) = self.on_terminate.take() {
5667                            ::fidl_next::WireEnvelope::encode_value::<
5668                                crate::wire::OnTerminate,
5669                                ___E,
5670                            >(
5671                                value, preallocated.encoder, &mut out, ()
5672                            )?;
5673                        } else {
5674                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5675                        }
5676                    }
5677
5678                    4 => {
5679                        if let Some(value) = self.environment.take() {
5680                            ::fidl_next::WireEnvelope::encode_value::<
5681                                ::fidl_next::WireString<'static>,
5682                                ___E,
5683                            >(
5684                                value, preallocated.encoder, &mut out, 100
5685                            )?;
5686                        } else {
5687                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5688                        }
5689                    }
5690
5691                    3 => {
5692                        if let Some(value) = self.startup.take() {
5693                            ::fidl_next::WireEnvelope::encode_value::<
5694                                crate::wire::StartupMode,
5695                                ___E,
5696                            >(
5697                                value, preallocated.encoder, &mut out, ()
5698                            )?;
5699                        } else {
5700                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5701                        }
5702                    }
5703
5704                    2 => {
5705                        if let Some(value) = self.url.take() {
5706                            ::fidl_next::WireEnvelope::encode_value::<
5707                                ::fidl_next::WireString<'static>,
5708                                ___E,
5709                            >(
5710                                value, preallocated.encoder, &mut out, 4096
5711                            )?;
5712                        } else {
5713                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5714                        }
5715                    }
5716
5717                    1 => {
5718                        if let Some(value) = self.name.take() {
5719                            ::fidl_next::WireEnvelope::encode_value::<
5720                                ::fidl_next::WireString<'static>,
5721                                ___E,
5722                            >(
5723                                value, preallocated.encoder, &mut out, 1024
5724                            )?;
5725                        } else {
5726                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5727                        }
5728                    }
5729
5730                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
5731                }
5732                unsafe {
5733                    preallocated.write_next(out.assume_init_ref());
5734                }
5735            }
5736
5737            ::fidl_next::WireTable::encode_len(table, max_ord);
5738
5739            Ok(())
5740        }
5741    }
5742
5743    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Child<'static>, ___E> for &'a Child
5744    where
5745        ___E: ::fidl_next::Encoder + ?Sized,
5746    {
5747        #[inline]
5748        fn encode(
5749            self,
5750            encoder: &mut ___E,
5751            out: &mut ::core::mem::MaybeUninit<crate::wire::Child<'static>>,
5752            _: (),
5753        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5754            ::fidl_next::munge!(let crate::wire::Child { table } = out);
5755
5756            let max_ord = self.__max_ordinal();
5757
5758            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
5759            ::fidl_next::Wire::zero_padding(&mut out);
5760
5761            let mut preallocated =
5762                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
5763
5764            for i in 1..=max_ord {
5765                match i {
5766                    6 => {
5767                        if let Some(value) = &self.config_overrides {
5768                            ::fidl_next::WireEnvelope::encode_value::<
5769                                ::fidl_next::WireVector<
5770                                    'static,
5771                                    crate::wire::ConfigOverride<'static>,
5772                                >,
5773                                ___E,
5774                            >(
5775                                value, preallocated.encoder, &mut out, (4294967295, ())
5776                            )?;
5777                        } else {
5778                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5779                        }
5780                    }
5781
5782                    5 => {
5783                        if let Some(value) = &self.on_terminate {
5784                            ::fidl_next::WireEnvelope::encode_value::<
5785                                crate::wire::OnTerminate,
5786                                ___E,
5787                            >(
5788                                value, preallocated.encoder, &mut out, ()
5789                            )?;
5790                        } else {
5791                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5792                        }
5793                    }
5794
5795                    4 => {
5796                        if let Some(value) = &self.environment {
5797                            ::fidl_next::WireEnvelope::encode_value::<
5798                                ::fidl_next::WireString<'static>,
5799                                ___E,
5800                            >(
5801                                value, preallocated.encoder, &mut out, 100
5802                            )?;
5803                        } else {
5804                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5805                        }
5806                    }
5807
5808                    3 => {
5809                        if let Some(value) = &self.startup {
5810                            ::fidl_next::WireEnvelope::encode_value::<
5811                                crate::wire::StartupMode,
5812                                ___E,
5813                            >(
5814                                value, preallocated.encoder, &mut out, ()
5815                            )?;
5816                        } else {
5817                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5818                        }
5819                    }
5820
5821                    2 => {
5822                        if let Some(value) = &self.url {
5823                            ::fidl_next::WireEnvelope::encode_value::<
5824                                ::fidl_next::WireString<'static>,
5825                                ___E,
5826                            >(
5827                                value, preallocated.encoder, &mut out, 4096
5828                            )?;
5829                        } else {
5830                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5831                        }
5832                    }
5833
5834                    1 => {
5835                        if let Some(value) = &self.name {
5836                            ::fidl_next::WireEnvelope::encode_value::<
5837                                ::fidl_next::WireString<'static>,
5838                                ___E,
5839                            >(
5840                                value, preallocated.encoder, &mut out, 1024
5841                            )?;
5842                        } else {
5843                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
5844                        }
5845                    }
5846
5847                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
5848                }
5849                unsafe {
5850                    preallocated.write_next(out.assume_init_ref());
5851                }
5852            }
5853
5854            ::fidl_next::WireTable::encode_len(table, max_ord);
5855
5856            Ok(())
5857        }
5858    }
5859
5860    impl<'de> ::fidl_next::FromWire<crate::wire::Child<'de>> for Child {
5861        #[inline]
5862        fn from_wire(wire_: crate::wire::Child<'de>) -> Self {
5863            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5864
5865            let name = wire_.table.get(1);
5866
5867            let url = wire_.table.get(2);
5868
5869            let startup = wire_.table.get(3);
5870
5871            let environment = wire_.table.get(4);
5872
5873            let on_terminate = wire_.table.get(5);
5874
5875            let config_overrides = wire_.table.get(6);
5876
5877            Self {
5878
5879
5880                name: name.map(|envelope| ::fidl_next::FromWire::from_wire(
5881                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
5882                )),
5883
5884
5885                url: url.map(|envelope| ::fidl_next::FromWire::from_wire(
5886                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
5887                )),
5888
5889
5890                startup: startup.map(|envelope| ::fidl_next::FromWire::from_wire(
5891                    unsafe { envelope.read_unchecked::<crate::wire::StartupMode>() }
5892                )),
5893
5894
5895                environment: environment.map(|envelope| ::fidl_next::FromWire::from_wire(
5896                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
5897                )),
5898
5899
5900                on_terminate: on_terminate.map(|envelope| ::fidl_next::FromWire::from_wire(
5901                    unsafe { envelope.read_unchecked::<crate::wire::OnTerminate>() }
5902                )),
5903
5904
5905                config_overrides: config_overrides.map(|envelope| ::fidl_next::FromWire::from_wire(
5906                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigOverride<'de>>>() }
5907                )),
5908
5909        }
5910        }
5911    }
5912
5913    impl<'de> ::fidl_next::FromWireRef<crate::wire::Child<'de>> for Child {
5914        #[inline]
5915        fn from_wire_ref(wire: &crate::wire::Child<'de>) -> Self {
5916            Self {
5917
5918
5919                name: wire.table.get(1)
5920                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5921                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
5922                    )),
5923
5924
5925                url: wire.table.get(2)
5926                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5927                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
5928                    )),
5929
5930
5931                startup: wire.table.get(3)
5932                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5933                        unsafe { envelope.deref_unchecked::<crate::wire::StartupMode>() }
5934                    )),
5935
5936
5937                environment: wire.table.get(4)
5938                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5939                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
5940                    )),
5941
5942
5943                on_terminate: wire.table.get(5)
5944                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5945                        unsafe { envelope.deref_unchecked::<crate::wire::OnTerminate>() }
5946                    )),
5947
5948
5949                config_overrides: wire.table.get(6)
5950                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5951                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigOverride<'de>>>() }
5952                    )),
5953
5954        }
5955        }
5956    }
5957
5958    #[doc = " The durability of component instances created in a collection.\n"]
5959    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5960    #[repr(u32)]
5961    pub enum Durability {
5962        Transient = 2,
5963        SingleRun = 3,
5964    }
5965    impl ::core::convert::TryFrom<u32> for Durability {
5966        type Error = ::fidl_next::UnknownStrictEnumMemberError;
5967        fn try_from(
5968            value: u32,
5969        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5970            match value {
5971                2 => Ok(Self::Transient),
5972                3 => Ok(Self::SingleRun),
5973
5974                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5975            }
5976        }
5977    }
5978
5979    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Durability, ___E> for Durability
5980    where
5981        ___E: ?Sized,
5982    {
5983        #[inline]
5984        fn encode(
5985            self,
5986            encoder: &mut ___E,
5987            out: &mut ::core::mem::MaybeUninit<crate::wire::Durability>,
5988            _: (),
5989        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5990            ::fidl_next::Encode::encode(&self, encoder, out, ())
5991        }
5992    }
5993
5994    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Durability, ___E> for &'a Durability
5995    where
5996        ___E: ?Sized,
5997    {
5998        #[inline]
5999        fn encode(
6000            self,
6001            encoder: &mut ___E,
6002            out: &mut ::core::mem::MaybeUninit<crate::wire::Durability>,
6003            _: (),
6004        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6005            ::fidl_next::munge!(let crate::wire::Durability { value } = out);
6006            let _ = value.write(::fidl_next::WireU32::from(match *self {
6007                Durability::Transient => 2,
6008
6009                Durability::SingleRun => 3,
6010            }));
6011
6012            Ok(())
6013        }
6014    }
6015
6016    impl ::core::convert::From<crate::wire::Durability> for Durability {
6017        fn from(wire: crate::wire::Durability) -> Self {
6018            match u32::from(wire.value) {
6019                2 => Self::Transient,
6020
6021                3 => Self::SingleRun,
6022
6023                _ => unsafe { ::core::hint::unreachable_unchecked() },
6024            }
6025        }
6026    }
6027
6028    impl ::fidl_next::FromWire<crate::wire::Durability> for Durability {
6029        #[inline]
6030        fn from_wire(wire: crate::wire::Durability) -> Self {
6031            Self::from(wire)
6032        }
6033    }
6034
6035    impl ::fidl_next::FromWireRef<crate::wire::Durability> for Durability {
6036        #[inline]
6037        fn from_wire_ref(wire: &crate::wire::Durability) -> Self {
6038            Self::from(*wire)
6039        }
6040    }
6041
6042    #[doc = " Statically declares a component instance collection.\n"]
6043    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6044    pub struct Collection {
6045        pub name: ::core::option::Option<::std::string::String>,
6046
6047        pub durability: ::core::option::Option<crate::natural::Durability>,
6048
6049        pub environment: ::core::option::Option<::std::string::String>,
6050
6051        pub allowed_offers: ::core::option::Option<crate::natural::AllowedOffers>,
6052
6053        pub allow_long_names: ::core::option::Option<bool>,
6054
6055        pub persistent_storage: ::core::option::Option<bool>,
6056    }
6057
6058    impl Collection {
6059        fn __max_ordinal(&self) -> usize {
6060            if self.persistent_storage.is_some() {
6061                return 6;
6062            }
6063
6064            if self.allow_long_names.is_some() {
6065                return 5;
6066            }
6067
6068            if self.allowed_offers.is_some() {
6069                return 4;
6070            }
6071
6072            if self.environment.is_some() {
6073                return 3;
6074            }
6075
6076            if self.durability.is_some() {
6077                return 2;
6078            }
6079
6080            if self.name.is_some() {
6081                return 1;
6082            }
6083
6084            0
6085        }
6086    }
6087
6088    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Collection<'static>, ___E> for Collection
6089    where
6090        ___E: ::fidl_next::Encoder + ?Sized,
6091    {
6092        #[inline]
6093        fn encode(
6094            mut self,
6095            encoder: &mut ___E,
6096            out: &mut ::core::mem::MaybeUninit<crate::wire::Collection<'static>>,
6097            _: (),
6098        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6099            ::fidl_next::munge!(let crate::wire::Collection { table } = out);
6100
6101            let max_ord = self.__max_ordinal();
6102
6103            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
6104            ::fidl_next::Wire::zero_padding(&mut out);
6105
6106            let mut preallocated =
6107                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
6108
6109            for i in 1..=max_ord {
6110                match i {
6111                    6 => {
6112                        if let Some(value) = self.persistent_storage.take() {
6113                            ::fidl_next::WireEnvelope::encode_value::<bool, ___E>(
6114                                value,
6115                                preallocated.encoder,
6116                                &mut out,
6117                                (),
6118                            )?;
6119                        } else {
6120                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6121                        }
6122                    }
6123
6124                    5 => {
6125                        if let Some(value) = self.allow_long_names.take() {
6126                            ::fidl_next::WireEnvelope::encode_value::<bool, ___E>(
6127                                value,
6128                                preallocated.encoder,
6129                                &mut out,
6130                                (),
6131                            )?;
6132                        } else {
6133                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6134                        }
6135                    }
6136
6137                    4 => {
6138                        if let Some(value) = self.allowed_offers.take() {
6139                            ::fidl_next::WireEnvelope::encode_value::<
6140                                crate::wire::AllowedOffers,
6141                                ___E,
6142                            >(
6143                                value, preallocated.encoder, &mut out, ()
6144                            )?;
6145                        } else {
6146                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6147                        }
6148                    }
6149
6150                    3 => {
6151                        if let Some(value) = self.environment.take() {
6152                            ::fidl_next::WireEnvelope::encode_value::<
6153                                ::fidl_next::WireString<'static>,
6154                                ___E,
6155                            >(
6156                                value, preallocated.encoder, &mut out, 100
6157                            )?;
6158                        } else {
6159                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6160                        }
6161                    }
6162
6163                    2 => {
6164                        if let Some(value) = self.durability.take() {
6165                            ::fidl_next::WireEnvelope::encode_value::<crate::wire::Durability, ___E>(
6166                                value,
6167                                preallocated.encoder,
6168                                &mut out,
6169                                (),
6170                            )?;
6171                        } else {
6172                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6173                        }
6174                    }
6175
6176                    1 => {
6177                        if let Some(value) = self.name.take() {
6178                            ::fidl_next::WireEnvelope::encode_value::<
6179                                ::fidl_next::WireString<'static>,
6180                                ___E,
6181                            >(
6182                                value, preallocated.encoder, &mut out, 100
6183                            )?;
6184                        } else {
6185                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6186                        }
6187                    }
6188
6189                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
6190                }
6191                unsafe {
6192                    preallocated.write_next(out.assume_init_ref());
6193                }
6194            }
6195
6196            ::fidl_next::WireTable::encode_len(table, max_ord);
6197
6198            Ok(())
6199        }
6200    }
6201
6202    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Collection<'static>, ___E> for &'a Collection
6203    where
6204        ___E: ::fidl_next::Encoder + ?Sized,
6205    {
6206        #[inline]
6207        fn encode(
6208            self,
6209            encoder: &mut ___E,
6210            out: &mut ::core::mem::MaybeUninit<crate::wire::Collection<'static>>,
6211            _: (),
6212        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6213            ::fidl_next::munge!(let crate::wire::Collection { table } = out);
6214
6215            let max_ord = self.__max_ordinal();
6216
6217            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
6218            ::fidl_next::Wire::zero_padding(&mut out);
6219
6220            let mut preallocated =
6221                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
6222
6223            for i in 1..=max_ord {
6224                match i {
6225                    6 => {
6226                        if let Some(value) = &self.persistent_storage {
6227                            ::fidl_next::WireEnvelope::encode_value::<bool, ___E>(
6228                                value,
6229                                preallocated.encoder,
6230                                &mut out,
6231                                (),
6232                            )?;
6233                        } else {
6234                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6235                        }
6236                    }
6237
6238                    5 => {
6239                        if let Some(value) = &self.allow_long_names {
6240                            ::fidl_next::WireEnvelope::encode_value::<bool, ___E>(
6241                                value,
6242                                preallocated.encoder,
6243                                &mut out,
6244                                (),
6245                            )?;
6246                        } else {
6247                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6248                        }
6249                    }
6250
6251                    4 => {
6252                        if let Some(value) = &self.allowed_offers {
6253                            ::fidl_next::WireEnvelope::encode_value::<
6254                                crate::wire::AllowedOffers,
6255                                ___E,
6256                            >(
6257                                value, preallocated.encoder, &mut out, ()
6258                            )?;
6259                        } else {
6260                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6261                        }
6262                    }
6263
6264                    3 => {
6265                        if let Some(value) = &self.environment {
6266                            ::fidl_next::WireEnvelope::encode_value::<
6267                                ::fidl_next::WireString<'static>,
6268                                ___E,
6269                            >(
6270                                value, preallocated.encoder, &mut out, 100
6271                            )?;
6272                        } else {
6273                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6274                        }
6275                    }
6276
6277                    2 => {
6278                        if let Some(value) = &self.durability {
6279                            ::fidl_next::WireEnvelope::encode_value::<crate::wire::Durability, ___E>(
6280                                value,
6281                                preallocated.encoder,
6282                                &mut out,
6283                                (),
6284                            )?;
6285                        } else {
6286                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6287                        }
6288                    }
6289
6290                    1 => {
6291                        if let Some(value) = &self.name {
6292                            ::fidl_next::WireEnvelope::encode_value::<
6293                                ::fidl_next::WireString<'static>,
6294                                ___E,
6295                            >(
6296                                value, preallocated.encoder, &mut out, 100
6297                            )?;
6298                        } else {
6299                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
6300                        }
6301                    }
6302
6303                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
6304                }
6305                unsafe {
6306                    preallocated.write_next(out.assume_init_ref());
6307                }
6308            }
6309
6310            ::fidl_next::WireTable::encode_len(table, max_ord);
6311
6312            Ok(())
6313        }
6314    }
6315
6316    impl<'de> ::fidl_next::FromWire<crate::wire::Collection<'de>> for Collection {
6317        #[inline]
6318        fn from_wire(wire_: crate::wire::Collection<'de>) -> Self {
6319            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6320
6321            let name = wire_.table.get(1);
6322
6323            let durability = wire_.table.get(2);
6324
6325            let environment = wire_.table.get(3);
6326
6327            let allowed_offers = wire_.table.get(4);
6328
6329            let allow_long_names = wire_.table.get(5);
6330
6331            let persistent_storage = wire_.table.get(6);
6332
6333            Self {
6334                name: name.map(|envelope| {
6335                    ::fidl_next::FromWire::from_wire(unsafe {
6336                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
6337                    })
6338                }),
6339
6340                durability: durability.map(|envelope| {
6341                    ::fidl_next::FromWire::from_wire(unsafe {
6342                        envelope.read_unchecked::<crate::wire::Durability>()
6343                    })
6344                }),
6345
6346                environment: environment.map(|envelope| {
6347                    ::fidl_next::FromWire::from_wire(unsafe {
6348                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
6349                    })
6350                }),
6351
6352                allowed_offers: allowed_offers.map(|envelope| {
6353                    ::fidl_next::FromWire::from_wire(unsafe {
6354                        envelope.read_unchecked::<crate::wire::AllowedOffers>()
6355                    })
6356                }),
6357
6358                allow_long_names: allow_long_names.map(|envelope| {
6359                    ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
6360                }),
6361
6362                persistent_storage: persistent_storage.map(|envelope| {
6363                    ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
6364                }),
6365            }
6366        }
6367    }
6368
6369    impl<'de> ::fidl_next::FromWireRef<crate::wire::Collection<'de>> for Collection {
6370        #[inline]
6371        fn from_wire_ref(wire: &crate::wire::Collection<'de>) -> Self {
6372            Self {
6373                name: wire.table.get(1).map(|envelope| {
6374                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6375                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
6376                    })
6377                }),
6378
6379                durability: wire.table.get(2).map(|envelope| {
6380                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6381                        envelope.deref_unchecked::<crate::wire::Durability>()
6382                    })
6383                }),
6384
6385                environment: wire.table.get(3).map(|envelope| {
6386                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6387                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
6388                    })
6389                }),
6390
6391                allowed_offers: wire.table.get(4).map(|envelope| {
6392                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6393                        envelope.deref_unchecked::<crate::wire::AllowedOffers>()
6394                    })
6395                }),
6396
6397                allow_long_names: wire.table.get(5).map(|envelope| {
6398                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6399                        envelope.deref_unchecked::<bool>()
6400                    })
6401                }),
6402
6403                persistent_storage: wire.table.get(6).map(|envelope| {
6404                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
6405                        envelope.deref_unchecked::<bool>()
6406                    })
6407                }),
6408            }
6409        }
6410    }
6411
6412    #[doc = " Describes the type of dependency implied by the capability.\n"]
6413    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6414    #[repr(u32)]
6415    pub enum DependencyType {
6416        Strong = 1,
6417        Weak = 2,
6418    }
6419    impl ::core::convert::TryFrom<u32> for DependencyType {
6420        type Error = ::fidl_next::UnknownStrictEnumMemberError;
6421        fn try_from(
6422            value: u32,
6423        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
6424            match value {
6425                1 => Ok(Self::Strong),
6426                2 => Ok(Self::Weak),
6427
6428                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
6429            }
6430        }
6431    }
6432
6433    unsafe impl<___E> ::fidl_next::Encode<crate::wire::DependencyType, ___E> for DependencyType
6434    where
6435        ___E: ?Sized,
6436    {
6437        #[inline]
6438        fn encode(
6439            self,
6440            encoder: &mut ___E,
6441            out: &mut ::core::mem::MaybeUninit<crate::wire::DependencyType>,
6442            _: (),
6443        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6444            ::fidl_next::Encode::encode(&self, encoder, out, ())
6445        }
6446    }
6447
6448    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DependencyType, ___E> for &'a DependencyType
6449    where
6450        ___E: ?Sized,
6451    {
6452        #[inline]
6453        fn encode(
6454            self,
6455            encoder: &mut ___E,
6456            out: &mut ::core::mem::MaybeUninit<crate::wire::DependencyType>,
6457            _: (),
6458        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6459            ::fidl_next::munge!(let crate::wire::DependencyType { value } = out);
6460            let _ = value.write(::fidl_next::WireU32::from(match *self {
6461                DependencyType::Strong => 1,
6462
6463                DependencyType::Weak => 2,
6464            }));
6465
6466            Ok(())
6467        }
6468    }
6469
6470    impl ::core::convert::From<crate::wire::DependencyType> for DependencyType {
6471        fn from(wire: crate::wire::DependencyType) -> Self {
6472            match u32::from(wire.value) {
6473                1 => Self::Strong,
6474
6475                2 => Self::Weak,
6476
6477                _ => unsafe { ::core::hint::unreachable_unchecked() },
6478            }
6479        }
6480    }
6481
6482    impl ::fidl_next::FromWire<crate::wire::DependencyType> for DependencyType {
6483        #[inline]
6484        fn from_wire(wire: crate::wire::DependencyType) -> Self {
6485            Self::from(wire)
6486        }
6487    }
6488
6489    impl ::fidl_next::FromWireRef<crate::wire::DependencyType> for DependencyType {
6490        #[inline]
6491        fn from_wire_ref(wire: &crate::wire::DependencyType) -> Self {
6492            Self::from(*wire)
6493        }
6494    }
6495
6496    #[doc = " Type used to create a mapping between 2 names. Used to rename service or component instances\n in FIDL declarations.\n"]
6497    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6498    pub struct NameMapping {
6499        pub source_name: ::std::string::String,
6500
6501        pub target_name: ::std::string::String,
6502    }
6503
6504    unsafe impl<___E> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E> for NameMapping
6505    where
6506        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6507        ___E: ::fidl_next::Encoder,
6508    {
6509        #[inline]
6510        fn encode(
6511            self,
6512            encoder_: &mut ___E,
6513            out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
6514            _: (),
6515        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6516            ::fidl_next::munge! {
6517                let crate::wire::NameMapping {
6518                    source_name,
6519                    target_name,
6520
6521                } = out_;
6522            }
6523
6524            ::fidl_next::Encode::encode(self.source_name, encoder_, source_name, 100)?;
6525
6526            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(source_name.as_mut_ptr()) };
6527            ::fidl_next::Constrained::validate(_field, 100)?;
6528
6529            ::fidl_next::Encode::encode(self.target_name, encoder_, target_name, 100)?;
6530
6531            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target_name.as_mut_ptr()) };
6532            ::fidl_next::Constrained::validate(_field, 100)?;
6533
6534            Ok(())
6535        }
6536    }
6537
6538    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>
6539        for &'a NameMapping
6540    where
6541        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6542        ___E: ::fidl_next::Encoder,
6543    {
6544        #[inline]
6545        fn encode(
6546            self,
6547            encoder_: &mut ___E,
6548            out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
6549            _: (),
6550        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6551            ::fidl_next::munge! {
6552                let crate::wire::NameMapping {
6553
6554                    source_name,
6555                    target_name,
6556
6557                } = out_;
6558            }
6559
6560            ::fidl_next::Encode::encode(&self.source_name, encoder_, source_name, 100)?;
6561
6562            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(source_name.as_mut_ptr()) };
6563            ::fidl_next::Constrained::validate(_field, 100)?;
6564
6565            ::fidl_next::Encode::encode(&self.target_name, encoder_, target_name, 100)?;
6566
6567            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target_name.as_mut_ptr()) };
6568            ::fidl_next::Constrained::validate(_field, 100)?;
6569
6570            Ok(())
6571        }
6572    }
6573
6574    unsafe impl<___E>
6575        ::fidl_next::EncodeOption<
6576            ::fidl_next::WireBox<'static, crate::wire::NameMapping<'static>>,
6577            ___E,
6578        > for NameMapping
6579    where
6580        ___E: ::fidl_next::Encoder + ?Sized,
6581        NameMapping: ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>,
6582    {
6583        #[inline]
6584        fn encode_option(
6585            this: ::core::option::Option<Self>,
6586            encoder: &mut ___E,
6587            out: &mut ::core::mem::MaybeUninit<
6588                ::fidl_next::WireBox<'static, crate::wire::NameMapping<'static>>,
6589            >,
6590            _: (),
6591        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6592            if let Some(inner) = this {
6593                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
6594                ::fidl_next::WireBox::encode_present(out);
6595            } else {
6596                ::fidl_next::WireBox::encode_absent(out);
6597            }
6598
6599            Ok(())
6600        }
6601    }
6602
6603    unsafe impl<'a, ___E>
6604        ::fidl_next::EncodeOption<
6605            ::fidl_next::WireBox<'static, crate::wire::NameMapping<'static>>,
6606            ___E,
6607        > for &'a NameMapping
6608    where
6609        ___E: ::fidl_next::Encoder + ?Sized,
6610        &'a NameMapping: ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>,
6611    {
6612        #[inline]
6613        fn encode_option(
6614            this: ::core::option::Option<Self>,
6615            encoder: &mut ___E,
6616            out: &mut ::core::mem::MaybeUninit<
6617                ::fidl_next::WireBox<'static, crate::wire::NameMapping<'static>>,
6618            >,
6619            _: (),
6620        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6621            if let Some(inner) = this {
6622                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
6623                ::fidl_next::WireBox::encode_present(out);
6624            } else {
6625                ::fidl_next::WireBox::encode_absent(out);
6626            }
6627
6628            Ok(())
6629        }
6630    }
6631
6632    impl<'de> ::fidl_next::FromWire<crate::wire::NameMapping<'de>> for NameMapping {
6633        #[inline]
6634        fn from_wire(wire: crate::wire::NameMapping<'de>) -> Self {
6635            Self {
6636                source_name: ::fidl_next::FromWire::from_wire(wire.source_name),
6637
6638                target_name: ::fidl_next::FromWire::from_wire(wire.target_name),
6639            }
6640        }
6641    }
6642
6643    impl<'de> ::fidl_next::FromWireRef<crate::wire::NameMapping<'de>> for NameMapping {
6644        #[inline]
6645        fn from_wire_ref(wire: &crate::wire::NameMapping<'de>) -> Self {
6646            Self {
6647                source_name: ::fidl_next::FromWireRef::from_wire_ref(&wire.source_name),
6648
6649                target_name: ::fidl_next::FromWireRef::from_wire_ref(&wire.target_name),
6650            }
6651        }
6652    }
6653
6654    #[doc = " Specifies how a declared environment\'s initial set of properties are assigned.\n"]
6655    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6656    #[repr(u32)]
6657    pub enum EnvironmentExtends {
6658        None = 0,
6659        Realm = 1,
6660    }
6661    impl ::core::convert::TryFrom<u32> for EnvironmentExtends {
6662        type Error = ::fidl_next::UnknownStrictEnumMemberError;
6663        fn try_from(
6664            value: u32,
6665        ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
6666            match value {
6667                0 => Ok(Self::None),
6668                1 => Ok(Self::Realm),
6669
6670                _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
6671            }
6672        }
6673    }
6674
6675    unsafe impl<___E> ::fidl_next::Encode<crate::wire::EnvironmentExtends, ___E> for EnvironmentExtends
6676    where
6677        ___E: ?Sized,
6678    {
6679        #[inline]
6680        fn encode(
6681            self,
6682            encoder: &mut ___E,
6683            out: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentExtends>,
6684            _: (),
6685        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6686            ::fidl_next::Encode::encode(&self, encoder, out, ())
6687        }
6688    }
6689
6690    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EnvironmentExtends, ___E>
6691        for &'a EnvironmentExtends
6692    where
6693        ___E: ?Sized,
6694    {
6695        #[inline]
6696        fn encode(
6697            self,
6698            encoder: &mut ___E,
6699            out: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentExtends>,
6700            _: (),
6701        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6702            ::fidl_next::munge!(let crate::wire::EnvironmentExtends { value } = out);
6703            let _ = value.write(::fidl_next::WireU32::from(match *self {
6704                EnvironmentExtends::None => 0,
6705
6706                EnvironmentExtends::Realm => 1,
6707            }));
6708
6709            Ok(())
6710        }
6711    }
6712
6713    impl ::core::convert::From<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6714        fn from(wire: crate::wire::EnvironmentExtends) -> Self {
6715            match u32::from(wire.value) {
6716                0 => Self::None,
6717
6718                1 => Self::Realm,
6719
6720                _ => unsafe { ::core::hint::unreachable_unchecked() },
6721            }
6722        }
6723    }
6724
6725    impl ::fidl_next::FromWire<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6726        #[inline]
6727        fn from_wire(wire: crate::wire::EnvironmentExtends) -> Self {
6728            Self::from(wire)
6729        }
6730    }
6731
6732    impl ::fidl_next::FromWireRef<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6733        #[inline]
6734        fn from_wire_ref(wire: &crate::wire::EnvironmentExtends) -> Self {
6735            Self::from(*wire)
6736        }
6737    }
6738
6739    pub type UrlScheme = ::std::string::String;
6740
6741    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6742    #[repr(u32)]
6743    pub enum ConfigTypeLayout {
6744        Bool = 1,
6745        Uint8 = 2,
6746        Uint16 = 3,
6747        Uint32 = 4,
6748        Uint64 = 5,
6749        Int8 = 6,
6750        Int16 = 7,
6751        Int32 = 8,
6752        Int64 = 9,
6753        String = 10,
6754        Vector = 11,
6755        UnknownOrdinal_(u32) = 12,
6756    }
6757    impl ::std::convert::From<u32> for ConfigTypeLayout {
6758        fn from(value: u32) -> Self {
6759            match value {
6760                1 => Self::Bool,
6761                2 => Self::Uint8,
6762                3 => Self::Uint16,
6763                4 => Self::Uint32,
6764                5 => Self::Uint64,
6765                6 => Self::Int8,
6766                7 => Self::Int16,
6767                8 => Self::Int32,
6768                9 => Self::Int64,
6769                10 => Self::String,
6770                11 => Self::Vector,
6771
6772                _ => Self::UnknownOrdinal_(value),
6773            }
6774        }
6775    }
6776
6777    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E> for ConfigTypeLayout
6778    where
6779        ___E: ?Sized,
6780    {
6781        #[inline]
6782        fn encode(
6783            self,
6784            encoder: &mut ___E,
6785            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigTypeLayout>,
6786            _: (),
6787        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6788            ::fidl_next::Encode::encode(&self, encoder, out, ())
6789        }
6790    }
6791
6792    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E>
6793        for &'a ConfigTypeLayout
6794    where
6795        ___E: ?Sized,
6796    {
6797        #[inline]
6798        fn encode(
6799            self,
6800            encoder: &mut ___E,
6801            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigTypeLayout>,
6802            _: (),
6803        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6804            ::fidl_next::munge!(let crate::wire::ConfigTypeLayout { value } = out);
6805            let _ = value.write(::fidl_next::WireU32::from(match *self {
6806                ConfigTypeLayout::Bool => 1,
6807
6808                ConfigTypeLayout::Uint8 => 2,
6809
6810                ConfigTypeLayout::Uint16 => 3,
6811
6812                ConfigTypeLayout::Uint32 => 4,
6813
6814                ConfigTypeLayout::Uint64 => 5,
6815
6816                ConfigTypeLayout::Int8 => 6,
6817
6818                ConfigTypeLayout::Int16 => 7,
6819
6820                ConfigTypeLayout::Int32 => 8,
6821
6822                ConfigTypeLayout::Int64 => 9,
6823
6824                ConfigTypeLayout::String => 10,
6825
6826                ConfigTypeLayout::Vector => 11,
6827
6828                ConfigTypeLayout::UnknownOrdinal_(value) => value,
6829            }));
6830
6831            Ok(())
6832        }
6833    }
6834
6835    impl ::core::convert::From<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6836        fn from(wire: crate::wire::ConfigTypeLayout) -> Self {
6837            match u32::from(wire.value) {
6838                1 => Self::Bool,
6839
6840                2 => Self::Uint8,
6841
6842                3 => Self::Uint16,
6843
6844                4 => Self::Uint32,
6845
6846                5 => Self::Uint64,
6847
6848                6 => Self::Int8,
6849
6850                7 => Self::Int16,
6851
6852                8 => Self::Int32,
6853
6854                9 => Self::Int64,
6855
6856                10 => Self::String,
6857
6858                11 => Self::Vector,
6859
6860                value => Self::UnknownOrdinal_(value),
6861            }
6862        }
6863    }
6864
6865    impl ::fidl_next::FromWire<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6866        #[inline]
6867        fn from_wire(wire: crate::wire::ConfigTypeLayout) -> Self {
6868            Self::from(wire)
6869        }
6870    }
6871
6872    impl ::fidl_next::FromWireRef<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6873        #[inline]
6874        fn from_wire_ref(wire: &crate::wire::ConfigTypeLayout) -> Self {
6875            Self::from(*wire)
6876        }
6877    }
6878
6879    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6880    pub enum LayoutConstraint {
6881        MaxSize(u32),
6882
6883        UnknownOrdinal_(u64),
6884    }
6885
6886    impl LayoutConstraint {
6887        pub fn is_unknown(&self) -> bool {
6888            #[allow(unreachable_patterns)]
6889            match self {
6890                Self::UnknownOrdinal_(_) => true,
6891                _ => false,
6892            }
6893        }
6894    }
6895
6896    unsafe impl<___E> ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>
6897        for LayoutConstraint
6898    where
6899        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6900        ___E: ::fidl_next::Encoder,
6901    {
6902        #[inline]
6903        fn encode(
6904            self,
6905            encoder: &mut ___E,
6906            out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutConstraint<'static>>,
6907            _: (),
6908        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6909            ::fidl_next::munge!(let crate::wire::LayoutConstraint { raw, _phantom: _ } = out);
6910
6911            match self {
6912                Self::MaxSize(value) => ::fidl_next::RawWireUnion::encode_as::<
6913                    ___E,
6914                    ::fidl_next::WireU32,
6915                >(value, 1, encoder, raw, ())?,
6916
6917                Self::UnknownOrdinal_(ordinal) => {
6918                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
6919                }
6920            }
6921
6922            Ok(())
6923        }
6924    }
6925
6926    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>
6927        for &'a LayoutConstraint
6928    where
6929        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6930        ___E: ::fidl_next::Encoder,
6931    {
6932        #[inline]
6933        fn encode(
6934            self,
6935            encoder: &mut ___E,
6936            out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutConstraint<'static>>,
6937            _: (),
6938        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6939            ::fidl_next::munge!(let crate::wire::LayoutConstraint { raw, _phantom: _ } = out);
6940
6941            match self {
6942                LayoutConstraint::MaxSize(value) => ::fidl_next::RawWireUnion::encode_as::<
6943                    ___E,
6944                    ::fidl_next::WireU32,
6945                >(value, 1, encoder, raw, ())?,
6946
6947                LayoutConstraint::UnknownOrdinal_(ordinal) => {
6948                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
6949                }
6950            }
6951
6952            Ok(())
6953        }
6954    }
6955
6956    unsafe impl<___E>
6957        ::fidl_next::EncodeOption<crate::wire_optional::LayoutConstraint<'static>, ___E>
6958        for LayoutConstraint
6959    where
6960        ___E: ?Sized,
6961        LayoutConstraint: ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>,
6962    {
6963        #[inline]
6964        fn encode_option(
6965            this: ::core::option::Option<Self>,
6966            encoder: &mut ___E,
6967            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutConstraint<'static>>,
6968            _: (),
6969        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6970            ::fidl_next::munge!(let crate::wire_optional::LayoutConstraint { raw, _phantom: _ } = &mut *out);
6971
6972            if let Some(inner) = this {
6973                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6974                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6975            } else {
6976                ::fidl_next::RawWireUnion::encode_absent(raw);
6977            }
6978
6979            Ok(())
6980        }
6981    }
6982
6983    unsafe impl<'a, ___E>
6984        ::fidl_next::EncodeOption<crate::wire_optional::LayoutConstraint<'static>, ___E>
6985        for &'a LayoutConstraint
6986    where
6987        ___E: ?Sized,
6988        &'a LayoutConstraint: ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>,
6989    {
6990        #[inline]
6991        fn encode_option(
6992            this: ::core::option::Option<Self>,
6993            encoder: &mut ___E,
6994            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutConstraint<'static>>,
6995            _: (),
6996        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6997            ::fidl_next::munge!(let crate::wire_optional::LayoutConstraint { raw, _phantom: _ } = &mut *out);
6998
6999            if let Some(inner) = this {
7000                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
7001                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
7002            } else {
7003                ::fidl_next::RawWireUnion::encode_absent(raw);
7004            }
7005
7006            Ok(())
7007        }
7008    }
7009
7010    impl<'de> ::fidl_next::FromWire<crate::wire::LayoutConstraint<'de>> for LayoutConstraint {
7011        #[inline]
7012        fn from_wire(wire: crate::wire::LayoutConstraint<'de>) -> Self {
7013            let wire = ::core::mem::ManuallyDrop::new(wire);
7014            match wire.raw.ordinal() {
7015                1 => Self::MaxSize(::fidl_next::FromWire::from_wire(unsafe {
7016                    wire.raw.get().read_unchecked::<::fidl_next::WireU32>()
7017                })),
7018
7019                ord => return Self::UnknownOrdinal_(ord as u64),
7020            }
7021        }
7022    }
7023
7024    impl<'de> ::fidl_next::FromWireRef<crate::wire::LayoutConstraint<'de>> for LayoutConstraint {
7025        #[inline]
7026        fn from_wire_ref(wire: &crate::wire::LayoutConstraint<'de>) -> Self {
7027            match wire.raw.ordinal() {
7028                1 => Self::MaxSize(::fidl_next::FromWireRef::from_wire_ref(unsafe {
7029                    wire.raw.get().deref_unchecked::<::fidl_next::WireU32>()
7030                })),
7031
7032                ord => return Self::UnknownOrdinal_(ord as u64),
7033            }
7034        }
7035    }
7036
7037    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutConstraint<'de>>
7038        for LayoutConstraint
7039    {
7040        #[inline]
7041        fn from_wire_option(
7042            wire: crate::wire_optional::LayoutConstraint<'de>,
7043        ) -> ::core::option::Option<Self> {
7044            if let Some(inner) = wire.into_option() {
7045                Some(::fidl_next::FromWire::from_wire(inner))
7046            } else {
7047                None
7048            }
7049        }
7050    }
7051
7052    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutConstraint<'de>>
7053        for Box<LayoutConstraint>
7054    {
7055        #[inline]
7056        fn from_wire_option(
7057            wire: crate::wire_optional::LayoutConstraint<'de>,
7058        ) -> ::core::option::Option<Self> {
7059            <LayoutConstraint as ::fidl_next::FromWireOption<
7060                crate::wire_optional::LayoutConstraint<'de>,
7061            >>::from_wire_option(wire)
7062            .map(Box::new)
7063        }
7064    }
7065
7066    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::LayoutConstraint<'de>>
7067        for Box<LayoutConstraint>
7068    {
7069        #[inline]
7070        fn from_wire_option_ref(
7071            wire: &crate::wire_optional::LayoutConstraint<'de>,
7072        ) -> ::core::option::Option<Self> {
7073            if let Some(inner) = wire.as_ref() {
7074                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
7075            } else {
7076                None
7077            }
7078        }
7079    }
7080
7081    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7082    pub struct ConfigType {
7083        pub layout: crate::natural::ConfigTypeLayout,
7084
7085        pub parameters: ::core::option::Option<::std::vec::Vec<crate::natural::LayoutParameter>>,
7086
7087        pub constraints: ::std::vec::Vec<crate::natural::LayoutConstraint>,
7088    }
7089
7090    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E> for ConfigType
7091    where
7092        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7093        ___E: ::fidl_next::Encoder,
7094    {
7095        #[inline]
7096        fn encode(
7097            self,
7098            encoder_: &mut ___E,
7099            out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
7100            _: (),
7101        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7102            ::fidl_next::munge! {
7103                let crate::wire::ConfigType {
7104                    layout,
7105                    parameters,
7106                    constraints,
7107
7108                } = out_;
7109            }
7110
7111            ::fidl_next::Encode::encode(self.layout, encoder_, layout, ())?;
7112
7113            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(layout.as_mut_ptr()) };
7114
7115            ::fidl_next::Encode::encode(self.parameters, encoder_, parameters, (4294967295, ()))?;
7116
7117            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(parameters.as_mut_ptr()) };
7118            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
7119
7120            ::fidl_next::Encode::encode(self.constraints, encoder_, constraints, (4294967295, ()))?;
7121
7122            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(constraints.as_mut_ptr()) };
7123            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
7124
7125            Ok(())
7126        }
7127    }
7128
7129    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E> for &'a ConfigType
7130    where
7131        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7132        ___E: ::fidl_next::Encoder,
7133    {
7134        #[inline]
7135        fn encode(
7136            self,
7137            encoder_: &mut ___E,
7138            out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
7139            _: (),
7140        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7141            ::fidl_next::munge! {
7142                let crate::wire::ConfigType {
7143
7144                    layout,
7145                    parameters,
7146                    constraints,
7147
7148                } = out_;
7149            }
7150
7151            ::fidl_next::Encode::encode(&self.layout, encoder_, layout, ())?;
7152
7153            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(layout.as_mut_ptr()) };
7154
7155            ::fidl_next::Encode::encode(&self.parameters, encoder_, parameters, (4294967295, ()))?;
7156
7157            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(parameters.as_mut_ptr()) };
7158            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
7159
7160            ::fidl_next::Encode::encode(
7161                &self.constraints,
7162                encoder_,
7163                constraints,
7164                (4294967295, ()),
7165            )?;
7166
7167            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(constraints.as_mut_ptr()) };
7168            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
7169
7170            Ok(())
7171        }
7172    }
7173
7174    unsafe impl<___E>
7175        ::fidl_next::EncodeOption<
7176            ::fidl_next::WireBox<'static, crate::wire::ConfigType<'static>>,
7177            ___E,
7178        > for ConfigType
7179    where
7180        ___E: ::fidl_next::Encoder + ?Sized,
7181        ConfigType: ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>,
7182    {
7183        #[inline]
7184        fn encode_option(
7185            this: ::core::option::Option<Self>,
7186            encoder: &mut ___E,
7187            out: &mut ::core::mem::MaybeUninit<
7188                ::fidl_next::WireBox<'static, crate::wire::ConfigType<'static>>,
7189            >,
7190            _: (),
7191        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7192            if let Some(inner) = this {
7193                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
7194                ::fidl_next::WireBox::encode_present(out);
7195            } else {
7196                ::fidl_next::WireBox::encode_absent(out);
7197            }
7198
7199            Ok(())
7200        }
7201    }
7202
7203    unsafe impl<'a, ___E>
7204        ::fidl_next::EncodeOption<
7205            ::fidl_next::WireBox<'static, crate::wire::ConfigType<'static>>,
7206            ___E,
7207        > for &'a ConfigType
7208    where
7209        ___E: ::fidl_next::Encoder + ?Sized,
7210        &'a ConfigType: ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>,
7211    {
7212        #[inline]
7213        fn encode_option(
7214            this: ::core::option::Option<Self>,
7215            encoder: &mut ___E,
7216            out: &mut ::core::mem::MaybeUninit<
7217                ::fidl_next::WireBox<'static, crate::wire::ConfigType<'static>>,
7218            >,
7219            _: (),
7220        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7221            if let Some(inner) = this {
7222                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
7223                ::fidl_next::WireBox::encode_present(out);
7224            } else {
7225                ::fidl_next::WireBox::encode_absent(out);
7226            }
7227
7228            Ok(())
7229        }
7230    }
7231
7232    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigType<'de>> for ConfigType {
7233        #[inline]
7234        fn from_wire(wire: crate::wire::ConfigType<'de>) -> Self {
7235            Self {
7236                layout: ::fidl_next::FromWire::from_wire(wire.layout),
7237
7238                parameters: ::fidl_next::FromWire::from_wire(wire.parameters),
7239
7240                constraints: ::fidl_next::FromWire::from_wire(wire.constraints),
7241            }
7242        }
7243    }
7244
7245    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigType<'de>> for ConfigType {
7246        #[inline]
7247        fn from_wire_ref(wire: &crate::wire::ConfigType<'de>) -> Self {
7248            Self {
7249                layout: ::fidl_next::FromWireRef::from_wire_ref(&wire.layout),
7250
7251                parameters: ::fidl_next::FromWireRef::from_wire_ref(&wire.parameters),
7252
7253                constraints: ::fidl_next::FromWireRef::from_wire_ref(&wire.constraints),
7254            }
7255        }
7256    }
7257
7258    #[doc = " The checksum produced for a configuration interface.\n Two configuration interfaces are the same if their checksums are the same.\n"]
7259    #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7260    pub enum ConfigChecksum {
7261        Sha256([u8; 32]),
7262
7263        UnknownOrdinal_(u64),
7264    }
7265
7266    impl ConfigChecksum {
7267        pub fn is_unknown(&self) -> bool {
7268            #[allow(unreachable_patterns)]
7269            match self {
7270                Self::UnknownOrdinal_(_) => true,
7271                _ => false,
7272            }
7273        }
7274    }
7275
7276    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E> for ConfigChecksum
7277    where
7278        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7279        ___E: ::fidl_next::Encoder,
7280    {
7281        #[inline]
7282        fn encode(
7283            self,
7284            encoder: &mut ___E,
7285            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigChecksum<'static>>,
7286            _: (),
7287        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7288            ::fidl_next::munge!(let crate::wire::ConfigChecksum { raw, _phantom: _ } = out);
7289
7290            match self {
7291                Self::Sha256(value) => ::fidl_next::RawWireUnion::encode_as::<___E, [u8; 32]>(
7292                    value,
7293                    1,
7294                    encoder,
7295                    raw,
7296                    (),
7297                )?,
7298
7299                Self::UnknownOrdinal_(ordinal) => {
7300                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
7301                }
7302            }
7303
7304            Ok(())
7305        }
7306    }
7307
7308    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>
7309        for &'a ConfigChecksum
7310    where
7311        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
7312        ___E: ::fidl_next::Encoder,
7313    {
7314        #[inline]
7315        fn encode(
7316            self,
7317            encoder: &mut ___E,
7318            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigChecksum<'static>>,
7319            _: (),
7320        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7321            ::fidl_next::munge!(let crate::wire::ConfigChecksum { raw, _phantom: _ } = out);
7322
7323            match self {
7324                ConfigChecksum::Sha256(value) => ::fidl_next::RawWireUnion::encode_as::<
7325                    ___E,
7326                    [u8; 32],
7327                >(value, 1, encoder, raw, ())?,
7328
7329                ConfigChecksum::UnknownOrdinal_(ordinal) => {
7330                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
7331                }
7332            }
7333
7334            Ok(())
7335        }
7336    }
7337
7338    unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::ConfigChecksum<'static>, ___E>
7339        for ConfigChecksum
7340    where
7341        ___E: ?Sized,
7342        ConfigChecksum: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
7343    {
7344        #[inline]
7345        fn encode_option(
7346            this: ::core::option::Option<Self>,
7347            encoder: &mut ___E,
7348            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigChecksum<'static>>,
7349            _: (),
7350        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7351            ::fidl_next::munge!(let crate::wire_optional::ConfigChecksum { raw, _phantom: _ } = &mut *out);
7352
7353            if let Some(inner) = this {
7354                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
7355                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
7356            } else {
7357                ::fidl_next::RawWireUnion::encode_absent(raw);
7358            }
7359
7360            Ok(())
7361        }
7362    }
7363
7364    unsafe impl<'a, ___E>
7365        ::fidl_next::EncodeOption<crate::wire_optional::ConfigChecksum<'static>, ___E>
7366        for &'a ConfigChecksum
7367    where
7368        ___E: ?Sized,
7369        &'a ConfigChecksum: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
7370    {
7371        #[inline]
7372        fn encode_option(
7373            this: ::core::option::Option<Self>,
7374            encoder: &mut ___E,
7375            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigChecksum<'static>>,
7376            _: (),
7377        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7378            ::fidl_next::munge!(let crate::wire_optional::ConfigChecksum { raw, _phantom: _ } = &mut *out);
7379
7380            if let Some(inner) = this {
7381                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
7382                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
7383            } else {
7384                ::fidl_next::RawWireUnion::encode_absent(raw);
7385            }
7386
7387            Ok(())
7388        }
7389    }
7390
7391    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigChecksum<'de>> for ConfigChecksum {
7392        #[inline]
7393        fn from_wire(wire: crate::wire::ConfigChecksum<'de>) -> Self {
7394            let wire = ::core::mem::ManuallyDrop::new(wire);
7395            match wire.raw.ordinal() {
7396                1 => Self::Sha256(::fidl_next::FromWire::from_wire(unsafe {
7397                    wire.raw.get().read_unchecked::<[u8; 32]>()
7398                })),
7399
7400                ord => return Self::UnknownOrdinal_(ord as u64),
7401            }
7402        }
7403    }
7404
7405    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigChecksum<'de>> for ConfigChecksum {
7406        #[inline]
7407        fn from_wire_ref(wire: &crate::wire::ConfigChecksum<'de>) -> Self {
7408            match wire.raw.ordinal() {
7409                1 => Self::Sha256(::fidl_next::FromWireRef::from_wire_ref(unsafe {
7410                    wire.raw.get().deref_unchecked::<[u8; 32]>()
7411                })),
7412
7413                ord => return Self::UnknownOrdinal_(ord as u64),
7414            }
7415        }
7416    }
7417
7418    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigChecksum<'de>>
7419        for ConfigChecksum
7420    {
7421        #[inline]
7422        fn from_wire_option(
7423            wire: crate::wire_optional::ConfigChecksum<'de>,
7424        ) -> ::core::option::Option<Self> {
7425            if let Some(inner) = wire.into_option() {
7426                Some(::fidl_next::FromWire::from_wire(inner))
7427            } else {
7428                None
7429            }
7430        }
7431    }
7432
7433    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigChecksum<'de>>
7434        for Box<ConfigChecksum>
7435    {
7436        #[inline]
7437        fn from_wire_option(
7438            wire: crate::wire_optional::ConfigChecksum<'de>,
7439        ) -> ::core::option::Option<Self> {
7440            <ConfigChecksum as ::fidl_next::FromWireOption<
7441                crate::wire_optional::ConfigChecksum<'de>,
7442            >>::from_wire_option(wire)
7443            .map(Box::new)
7444        }
7445    }
7446
7447    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigChecksum<'de>>
7448        for Box<ConfigChecksum>
7449    {
7450        #[inline]
7451        fn from_wire_option_ref(
7452            wire: &crate::wire_optional::ConfigChecksum<'de>,
7453        ) -> ::core::option::Option<Self> {
7454            if let Some(inner) = wire.as_ref() {
7455                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
7456            } else {
7457                None
7458            }
7459        }
7460    }
7461
7462    #[doc = " Declares storage used by a component, which was offered to it.\n"]
7463    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7464    pub struct UseStorage {
7465        pub source_name: ::core::option::Option<::std::string::String>,
7466
7467        pub target_path: ::core::option::Option<::std::string::String>,
7468
7469        pub availability: ::core::option::Option<crate::natural::Availability>,
7470    }
7471
7472    impl UseStorage {
7473        fn __max_ordinal(&self) -> usize {
7474            if self.availability.is_some() {
7475                return 3;
7476            }
7477
7478            if self.target_path.is_some() {
7479                return 2;
7480            }
7481
7482            if self.source_name.is_some() {
7483                return 1;
7484            }
7485
7486            0
7487        }
7488    }
7489
7490    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseStorage<'static>, ___E> for UseStorage
7491    where
7492        ___E: ::fidl_next::Encoder + ?Sized,
7493    {
7494        #[inline]
7495        fn encode(
7496            mut self,
7497            encoder: &mut ___E,
7498            out: &mut ::core::mem::MaybeUninit<crate::wire::UseStorage<'static>>,
7499            _: (),
7500        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7501            ::fidl_next::munge!(let crate::wire::UseStorage { table } = out);
7502
7503            let max_ord = self.__max_ordinal();
7504
7505            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
7506            ::fidl_next::Wire::zero_padding(&mut out);
7507
7508            let mut preallocated =
7509                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
7510
7511            for i in 1..=max_ord {
7512                match i {
7513                    3 => {
7514                        if let Some(value) = self.availability.take() {
7515                            ::fidl_next::WireEnvelope::encode_value::<
7516                                crate::wire::Availability,
7517                                ___E,
7518                            >(
7519                                value, preallocated.encoder, &mut out, ()
7520                            )?;
7521                        } else {
7522                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7523                        }
7524                    }
7525
7526                    2 => {
7527                        if let Some(value) = self.target_path.take() {
7528                            ::fidl_next::WireEnvelope::encode_value::<
7529                                ::fidl_next::WireString<'static>,
7530                                ___E,
7531                            >(
7532                                value, preallocated.encoder, &mut out, 1024
7533                            )?;
7534                        } else {
7535                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7536                        }
7537                    }
7538
7539                    1 => {
7540                        if let Some(value) = self.source_name.take() {
7541                            ::fidl_next::WireEnvelope::encode_value::<
7542                                ::fidl_next::WireString<'static>,
7543                                ___E,
7544                            >(
7545                                value, preallocated.encoder, &mut out, 100
7546                            )?;
7547                        } else {
7548                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7549                        }
7550                    }
7551
7552                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
7553                }
7554                unsafe {
7555                    preallocated.write_next(out.assume_init_ref());
7556                }
7557            }
7558
7559            ::fidl_next::WireTable::encode_len(table, max_ord);
7560
7561            Ok(())
7562        }
7563    }
7564
7565    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseStorage<'static>, ___E> for &'a UseStorage
7566    where
7567        ___E: ::fidl_next::Encoder + ?Sized,
7568    {
7569        #[inline]
7570        fn encode(
7571            self,
7572            encoder: &mut ___E,
7573            out: &mut ::core::mem::MaybeUninit<crate::wire::UseStorage<'static>>,
7574            _: (),
7575        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7576            ::fidl_next::munge!(let crate::wire::UseStorage { table } = out);
7577
7578            let max_ord = self.__max_ordinal();
7579
7580            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
7581            ::fidl_next::Wire::zero_padding(&mut out);
7582
7583            let mut preallocated =
7584                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
7585
7586            for i in 1..=max_ord {
7587                match i {
7588                    3 => {
7589                        if let Some(value) = &self.availability {
7590                            ::fidl_next::WireEnvelope::encode_value::<
7591                                crate::wire::Availability,
7592                                ___E,
7593                            >(
7594                                value, preallocated.encoder, &mut out, ()
7595                            )?;
7596                        } else {
7597                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7598                        }
7599                    }
7600
7601                    2 => {
7602                        if let Some(value) = &self.target_path {
7603                            ::fidl_next::WireEnvelope::encode_value::<
7604                                ::fidl_next::WireString<'static>,
7605                                ___E,
7606                            >(
7607                                value, preallocated.encoder, &mut out, 1024
7608                            )?;
7609                        } else {
7610                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7611                        }
7612                    }
7613
7614                    1 => {
7615                        if let Some(value) = &self.source_name {
7616                            ::fidl_next::WireEnvelope::encode_value::<
7617                                ::fidl_next::WireString<'static>,
7618                                ___E,
7619                            >(
7620                                value, preallocated.encoder, &mut out, 100
7621                            )?;
7622                        } else {
7623                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7624                        }
7625                    }
7626
7627                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
7628                }
7629                unsafe {
7630                    preallocated.write_next(out.assume_init_ref());
7631                }
7632            }
7633
7634            ::fidl_next::WireTable::encode_len(table, max_ord);
7635
7636            Ok(())
7637        }
7638    }
7639
7640    impl<'de> ::fidl_next::FromWire<crate::wire::UseStorage<'de>> for UseStorage {
7641        #[inline]
7642        fn from_wire(wire_: crate::wire::UseStorage<'de>) -> Self {
7643            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7644
7645            let source_name = wire_.table.get(1);
7646
7647            let target_path = wire_.table.get(2);
7648
7649            let availability = wire_.table.get(3);
7650
7651            Self {
7652                source_name: source_name.map(|envelope| {
7653                    ::fidl_next::FromWire::from_wire(unsafe {
7654                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
7655                    })
7656                }),
7657
7658                target_path: target_path.map(|envelope| {
7659                    ::fidl_next::FromWire::from_wire(unsafe {
7660                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
7661                    })
7662                }),
7663
7664                availability: availability.map(|envelope| {
7665                    ::fidl_next::FromWire::from_wire(unsafe {
7666                        envelope.read_unchecked::<crate::wire::Availability>()
7667                    })
7668                }),
7669            }
7670        }
7671    }
7672
7673    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseStorage<'de>> for UseStorage {
7674        #[inline]
7675        fn from_wire_ref(wire: &crate::wire::UseStorage<'de>) -> Self {
7676            Self {
7677                source_name: wire.table.get(1).map(|envelope| {
7678                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7679                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
7680                    })
7681                }),
7682
7683                target_path: wire.table.get(2).map(|envelope| {
7684                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7685                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
7686                    })
7687                }),
7688
7689                availability: wire.table.get(3).map(|envelope| {
7690                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7691                        envelope.deref_unchecked::<crate::wire::Availability>()
7692                    })
7693                }),
7694            }
7695        }
7696    }
7697
7698    ::fidl_next::bitflags::bitflags! {
7699        #[doc = " Allowed sources for runtime overrides of a config field\'s value.\n"]#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct ConfigMutability: u32 {
7700            #[doc = " Allow parent components to provide overrides for the configuration field.\n"]const PARENT = 1;
7701            const _ = !0;
7702        }
7703    }
7704
7705    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigMutability, ___E> for ConfigMutability
7706    where
7707        ___E: ?Sized,
7708    {
7709        #[inline]
7710        fn encode(
7711            self,
7712            encoder: &mut ___E,
7713            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigMutability>,
7714            _: (),
7715        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7716            ::fidl_next::Encode::encode(&self, encoder, out, ())
7717        }
7718    }
7719
7720    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigMutability, ___E>
7721        for &'a ConfigMutability
7722    where
7723        ___E: ?Sized,
7724    {
7725        #[inline]
7726        fn encode(
7727            self,
7728            _: &mut ___E,
7729            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigMutability>,
7730            _: (),
7731        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7732            ::fidl_next::munge!(let crate::wire::ConfigMutability { value } = out);
7733
7734            let _ = value.write(::fidl_next::WireU32::from(self.bits()));
7735            Ok(())
7736        }
7737    }
7738
7739    impl ::core::convert::From<crate::wire::ConfigMutability> for ConfigMutability {
7740        fn from(wire: crate::wire::ConfigMutability) -> Self {
7741            Self::from_bits_retain(u32::from(wire.value))
7742        }
7743    }
7744
7745    impl ::fidl_next::FromWire<crate::wire::ConfigMutability> for ConfigMutability {
7746        #[inline]
7747        fn from_wire(wire: crate::wire::ConfigMutability) -> Self {
7748            Self::from(wire)
7749        }
7750    }
7751
7752    impl ::fidl_next::FromWireRef<crate::wire::ConfigMutability> for ConfigMutability {
7753        #[inline]
7754        fn from_wire_ref(wire: &crate::wire::ConfigMutability) -> Self {
7755            Self::from(*wire)
7756        }
7757    }
7758
7759    #[doc = " Declares a single config field (key + type)\n"]
7760    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7761    pub struct ConfigField {
7762        pub key: ::core::option::Option<::std::string::String>,
7763
7764        pub type_: ::core::option::Option<crate::natural::ConfigType>,
7765
7766        pub mutability: ::core::option::Option<crate::natural::ConfigMutability>,
7767    }
7768
7769    impl ConfigField {
7770        fn __max_ordinal(&self) -> usize {
7771            if self.mutability.is_some() {
7772                return 3;
7773            }
7774
7775            if self.type_.is_some() {
7776                return 2;
7777            }
7778
7779            if self.key.is_some() {
7780                return 1;
7781            }
7782
7783            0
7784        }
7785    }
7786
7787    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigField<'static>, ___E> for ConfigField
7788    where
7789        ___E: ::fidl_next::Encoder + ?Sized,
7790    {
7791        #[inline]
7792        fn encode(
7793            mut self,
7794            encoder: &mut ___E,
7795            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigField<'static>>,
7796            _: (),
7797        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7798            ::fidl_next::munge!(let crate::wire::ConfigField { table } = out);
7799
7800            let max_ord = self.__max_ordinal();
7801
7802            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
7803            ::fidl_next::Wire::zero_padding(&mut out);
7804
7805            let mut preallocated =
7806                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
7807
7808            for i in 1..=max_ord {
7809                match i {
7810                    3 => {
7811                        if let Some(value) = self.mutability.take() {
7812                            ::fidl_next::WireEnvelope::encode_value::<
7813                                crate::wire::ConfigMutability,
7814                                ___E,
7815                            >(
7816                                value, preallocated.encoder, &mut out, ()
7817                            )?;
7818                        } else {
7819                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7820                        }
7821                    }
7822
7823                    2 => {
7824                        if let Some(value) = self.type_.take() {
7825                            ::fidl_next::WireEnvelope::encode_value::<
7826                                crate::wire::ConfigType<'static>,
7827                                ___E,
7828                            >(
7829                                value, preallocated.encoder, &mut out, ()
7830                            )?;
7831                        } else {
7832                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7833                        }
7834                    }
7835
7836                    1 => {
7837                        if let Some(value) = self.key.take() {
7838                            ::fidl_next::WireEnvelope::encode_value::<
7839                                ::fidl_next::WireString<'static>,
7840                                ___E,
7841                            >(
7842                                value, preallocated.encoder, &mut out, 64
7843                            )?;
7844                        } else {
7845                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7846                        }
7847                    }
7848
7849                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
7850                }
7851                unsafe {
7852                    preallocated.write_next(out.assume_init_ref());
7853                }
7854            }
7855
7856            ::fidl_next::WireTable::encode_len(table, max_ord);
7857
7858            Ok(())
7859        }
7860    }
7861
7862    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigField<'static>, ___E>
7863        for &'a ConfigField
7864    where
7865        ___E: ::fidl_next::Encoder + ?Sized,
7866    {
7867        #[inline]
7868        fn encode(
7869            self,
7870            encoder: &mut ___E,
7871            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigField<'static>>,
7872            _: (),
7873        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7874            ::fidl_next::munge!(let crate::wire::ConfigField { table } = out);
7875
7876            let max_ord = self.__max_ordinal();
7877
7878            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
7879            ::fidl_next::Wire::zero_padding(&mut out);
7880
7881            let mut preallocated =
7882                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
7883
7884            for i in 1..=max_ord {
7885                match i {
7886                    3 => {
7887                        if let Some(value) = &self.mutability {
7888                            ::fidl_next::WireEnvelope::encode_value::<
7889                                crate::wire::ConfigMutability,
7890                                ___E,
7891                            >(
7892                                value, preallocated.encoder, &mut out, ()
7893                            )?;
7894                        } else {
7895                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7896                        }
7897                    }
7898
7899                    2 => {
7900                        if let Some(value) = &self.type_ {
7901                            ::fidl_next::WireEnvelope::encode_value::<
7902                                crate::wire::ConfigType<'static>,
7903                                ___E,
7904                            >(
7905                                value, preallocated.encoder, &mut out, ()
7906                            )?;
7907                        } else {
7908                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7909                        }
7910                    }
7911
7912                    1 => {
7913                        if let Some(value) = &self.key {
7914                            ::fidl_next::WireEnvelope::encode_value::<
7915                                ::fidl_next::WireString<'static>,
7916                                ___E,
7917                            >(
7918                                value, preallocated.encoder, &mut out, 64
7919                            )?;
7920                        } else {
7921                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
7922                        }
7923                    }
7924
7925                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
7926                }
7927                unsafe {
7928                    preallocated.write_next(out.assume_init_ref());
7929                }
7930            }
7931
7932            ::fidl_next::WireTable::encode_len(table, max_ord);
7933
7934            Ok(())
7935        }
7936    }
7937
7938    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigField<'de>> for ConfigField {
7939        #[inline]
7940        fn from_wire(wire_: crate::wire::ConfigField<'de>) -> Self {
7941            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7942
7943            let key = wire_.table.get(1);
7944
7945            let type_ = wire_.table.get(2);
7946
7947            let mutability = wire_.table.get(3);
7948
7949            Self {
7950                key: key.map(|envelope| {
7951                    ::fidl_next::FromWire::from_wire(unsafe {
7952                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
7953                    })
7954                }),
7955
7956                type_: type_.map(|envelope| {
7957                    ::fidl_next::FromWire::from_wire(unsafe {
7958                        envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
7959                    })
7960                }),
7961
7962                mutability: mutability.map(|envelope| {
7963                    ::fidl_next::FromWire::from_wire(unsafe {
7964                        envelope.read_unchecked::<crate::wire::ConfigMutability>()
7965                    })
7966                }),
7967            }
7968        }
7969    }
7970
7971    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigField<'de>> for ConfigField {
7972        #[inline]
7973        fn from_wire_ref(wire: &crate::wire::ConfigField<'de>) -> Self {
7974            Self {
7975                key: wire.table.get(1).map(|envelope| {
7976                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7977                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
7978                    })
7979                }),
7980
7981                type_: wire.table.get(2).map(|envelope| {
7982                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7983                        envelope.deref_unchecked::<crate::wire::ConfigType<'de>>()
7984                    })
7985                }),
7986
7987                mutability: wire.table.get(3).map(|envelope| {
7988                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7989                        envelope.deref_unchecked::<crate::wire::ConfigMutability>()
7990                    })
7991                }),
7992            }
7993        }
7994    }
7995
7996    #[doc = " A program declaration.\n\n This declaration is set by executable components to designate the runner to\n use and pass runner-specific program information to it.\n\n To learn more about runners, see:\n https://fuchsia.dev/fuchsia-src/glossary#runner\n"]
7997    #[derive(Debug, Default, PartialEq)]
7998    pub struct Program {
7999        pub runner: ::core::option::Option<::std::string::String>,
8000
8001        pub info: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
8002    }
8003
8004    impl Program {
8005        fn __max_ordinal(&self) -> usize {
8006            if self.info.is_some() {
8007                return 2;
8008            }
8009
8010            if self.runner.is_some() {
8011                return 1;
8012            }
8013
8014            0
8015        }
8016    }
8017
8018    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Program<'static>, ___E> for Program
8019    where
8020        ___E: ::fidl_next::Encoder + ?Sized,
8021    {
8022        #[inline]
8023        fn encode(
8024            mut self,
8025            encoder: &mut ___E,
8026            out: &mut ::core::mem::MaybeUninit<crate::wire::Program<'static>>,
8027            _: (),
8028        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8029            ::fidl_next::munge!(let crate::wire::Program { table } = out);
8030
8031            let max_ord = self.__max_ordinal();
8032
8033            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8034            ::fidl_next::Wire::zero_padding(&mut out);
8035
8036            let mut preallocated =
8037                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8038
8039            for i in 1..=max_ord {
8040                match i {
8041                    2 => {
8042                        if let Some(value) = self.info.take() {
8043                            ::fidl_next::WireEnvelope::encode_value::<
8044                                ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
8045                                ___E,
8046                            >(
8047                                value, preallocated.encoder, &mut out, ()
8048                            )?;
8049                        } else {
8050                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8051                        }
8052                    }
8053
8054                    1 => {
8055                        if let Some(value) = self.runner.take() {
8056                            ::fidl_next::WireEnvelope::encode_value::<
8057                                ::fidl_next::WireString<'static>,
8058                                ___E,
8059                            >(
8060                                value, preallocated.encoder, &mut out, 100
8061                            )?;
8062                        } else {
8063                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8064                        }
8065                    }
8066
8067                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
8068                }
8069                unsafe {
8070                    preallocated.write_next(out.assume_init_ref());
8071                }
8072            }
8073
8074            ::fidl_next::WireTable::encode_len(table, max_ord);
8075
8076            Ok(())
8077        }
8078    }
8079
8080    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Program<'static>, ___E> for &'a Program
8081    where
8082        ___E: ::fidl_next::Encoder + ?Sized,
8083    {
8084        #[inline]
8085        fn encode(
8086            self,
8087            encoder: &mut ___E,
8088            out: &mut ::core::mem::MaybeUninit<crate::wire::Program<'static>>,
8089            _: (),
8090        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8091            ::fidl_next::munge!(let crate::wire::Program { table } = out);
8092
8093            let max_ord = self.__max_ordinal();
8094
8095            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8096            ::fidl_next::Wire::zero_padding(&mut out);
8097
8098            let mut preallocated =
8099                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8100
8101            for i in 1..=max_ord {
8102                match i {
8103                    2 => {
8104                        if let Some(value) = &self.info {
8105                            ::fidl_next::WireEnvelope::encode_value::<
8106                                ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
8107                                ___E,
8108                            >(
8109                                value, preallocated.encoder, &mut out, ()
8110                            )?;
8111                        } else {
8112                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8113                        }
8114                    }
8115
8116                    1 => {
8117                        if let Some(value) = &self.runner {
8118                            ::fidl_next::WireEnvelope::encode_value::<
8119                                ::fidl_next::WireString<'static>,
8120                                ___E,
8121                            >(
8122                                value, preallocated.encoder, &mut out, 100
8123                            )?;
8124                        } else {
8125                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8126                        }
8127                    }
8128
8129                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
8130                }
8131                unsafe {
8132                    preallocated.write_next(out.assume_init_ref());
8133                }
8134            }
8135
8136            ::fidl_next::WireTable::encode_len(table, max_ord);
8137
8138            Ok(())
8139        }
8140    }
8141
8142    impl<'de> ::fidl_next::FromWire<crate::wire::Program<'de>> for Program {
8143        #[inline]
8144        fn from_wire(wire_: crate::wire::Program<'de>) -> Self {
8145            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8146
8147            let runner = wire_.table.get(1);
8148
8149            let info = wire_.table.get(2);
8150
8151            Self {
8152
8153
8154                runner: runner.map(|envelope| ::fidl_next::FromWire::from_wire(
8155                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
8156                )),
8157
8158
8159                info: info.map(|envelope| ::fidl_next::FromWire::from_wire(
8160                    unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
8161                )),
8162
8163        }
8164        }
8165    }
8166
8167    impl<'de> ::fidl_next::FromWireRef<crate::wire::Program<'de>> for Program {
8168        #[inline]
8169        fn from_wire_ref(wire: &crate::wire::Program<'de>) -> Self {
8170            Self {
8171
8172
8173                runner: wire.table.get(1)
8174                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
8175                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
8176                    )),
8177
8178
8179                info: wire.table.get(2)
8180                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
8181                        unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
8182                    )),
8183
8184        }
8185        }
8186    }
8187
8188    #[doc = " Debug information about the component.\n"]
8189    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8190    pub struct DebugInfo {
8191        pub manifest_sources: ::core::option::Option<::std::vec::Vec<::std::string::String>>,
8192    }
8193
8194    impl DebugInfo {
8195        fn __max_ordinal(&self) -> usize {
8196            if self.manifest_sources.is_some() {
8197                return 1;
8198            }
8199
8200            0
8201        }
8202    }
8203
8204    unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugInfo<'static>, ___E> for DebugInfo
8205    where
8206        ___E: ::fidl_next::Encoder + ?Sized,
8207    {
8208        #[inline]
8209        fn encode(
8210            mut self,
8211            encoder: &mut ___E,
8212            out: &mut ::core::mem::MaybeUninit<crate::wire::DebugInfo<'static>>,
8213            _: (),
8214        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8215            ::fidl_next::munge!(let crate::wire::DebugInfo { table } = out);
8216
8217            let max_ord = self.__max_ordinal();
8218
8219            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8220            ::fidl_next::Wire::zero_padding(&mut out);
8221
8222            let mut preallocated =
8223                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8224
8225            for i in 1..=max_ord {
8226                match i {
8227                    1 => {
8228                        if let Some(value) = self.manifest_sources.take() {
8229                            ::fidl_next::WireEnvelope::encode_value::<
8230                                ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
8231                                ___E,
8232                            >(
8233                                value, preallocated.encoder, &mut out, (4294967295, 4294967295)
8234                            )?;
8235                        } else {
8236                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8237                        }
8238                    }
8239
8240                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
8241                }
8242                unsafe {
8243                    preallocated.write_next(out.assume_init_ref());
8244                }
8245            }
8246
8247            ::fidl_next::WireTable::encode_len(table, max_ord);
8248
8249            Ok(())
8250        }
8251    }
8252
8253    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugInfo<'static>, ___E> for &'a DebugInfo
8254    where
8255        ___E: ::fidl_next::Encoder + ?Sized,
8256    {
8257        #[inline]
8258        fn encode(
8259            self,
8260            encoder: &mut ___E,
8261            out: &mut ::core::mem::MaybeUninit<crate::wire::DebugInfo<'static>>,
8262            _: (),
8263        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8264            ::fidl_next::munge!(let crate::wire::DebugInfo { table } = out);
8265
8266            let max_ord = self.__max_ordinal();
8267
8268            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8269            ::fidl_next::Wire::zero_padding(&mut out);
8270
8271            let mut preallocated =
8272                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8273
8274            for i in 1..=max_ord {
8275                match i {
8276                    1 => {
8277                        if let Some(value) = &self.manifest_sources {
8278                            ::fidl_next::WireEnvelope::encode_value::<
8279                                ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
8280                                ___E,
8281                            >(
8282                                value, preallocated.encoder, &mut out, (4294967295, 4294967295)
8283                            )?;
8284                        } else {
8285                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8286                        }
8287                    }
8288
8289                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
8290                }
8291                unsafe {
8292                    preallocated.write_next(out.assume_init_ref());
8293                }
8294            }
8295
8296            ::fidl_next::WireTable::encode_len(table, max_ord);
8297
8298            Ok(())
8299        }
8300    }
8301
8302    impl<'de> ::fidl_next::FromWire<crate::wire::DebugInfo<'de>> for DebugInfo {
8303        #[inline]
8304        fn from_wire(wire_: crate::wire::DebugInfo<'de>) -> Self {
8305            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8306
8307            let manifest_sources = wire_.table.get(1);
8308
8309            Self {
8310
8311
8312                manifest_sources: manifest_sources.map(|envelope| ::fidl_next::FromWire::from_wire(
8313                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>() }
8314                )),
8315
8316        }
8317        }
8318    }
8319
8320    impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugInfo<'de>> for DebugInfo {
8321        #[inline]
8322        fn from_wire_ref(wire: &crate::wire::DebugInfo<'de>) -> Self {
8323            Self {
8324
8325
8326                manifest_sources: wire.table.get(1)
8327                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
8328                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>() }
8329                    )),
8330
8331        }
8332        }
8333    }
8334
8335    #[doc = " Declares a service used by a component, which was offered to it.\n\n To learn more about services, see:\n https://fuchsia.dev/fuchsia-src/glossary#service\n"]
8336    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8337    pub struct UseService {
8338        pub source: ::core::option::Option<crate::natural::Ref>,
8339
8340        pub source_name: ::core::option::Option<::std::string::String>,
8341
8342        pub target_path: ::core::option::Option<::std::string::String>,
8343
8344        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
8345
8346        pub availability: ::core::option::Option<crate::natural::Availability>,
8347
8348        pub source_dictionary: ::core::option::Option<::std::string::String>,
8349    }
8350
8351    impl UseService {
8352        fn __max_ordinal(&self) -> usize {
8353            if self.source_dictionary.is_some() {
8354                return 6;
8355            }
8356
8357            if self.availability.is_some() {
8358                return 5;
8359            }
8360
8361            if self.dependency_type.is_some() {
8362                return 4;
8363            }
8364
8365            if self.target_path.is_some() {
8366                return 3;
8367            }
8368
8369            if self.source_name.is_some() {
8370                return 2;
8371            }
8372
8373            if self.source.is_some() {
8374                return 1;
8375            }
8376
8377            0
8378        }
8379    }
8380
8381    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseService<'static>, ___E> for UseService
8382    where
8383        ___E: ::fidl_next::Encoder + ?Sized,
8384    {
8385        #[inline]
8386        fn encode(
8387            mut self,
8388            encoder: &mut ___E,
8389            out: &mut ::core::mem::MaybeUninit<crate::wire::UseService<'static>>,
8390            _: (),
8391        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8392            ::fidl_next::munge!(let crate::wire::UseService { table } = out);
8393
8394            let max_ord = self.__max_ordinal();
8395
8396            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8397            ::fidl_next::Wire::zero_padding(&mut out);
8398
8399            let mut preallocated =
8400                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8401
8402            for i in 1..=max_ord {
8403                match i {
8404                    6 => {
8405                        if let Some(value) = self.source_dictionary.take() {
8406                            ::fidl_next::WireEnvelope::encode_value::<
8407                                ::fidl_next::WireString<'static>,
8408                                ___E,
8409                            >(
8410                                value, preallocated.encoder, &mut out, 1024
8411                            )?;
8412                        } else {
8413                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8414                        }
8415                    }
8416
8417                    5 => {
8418                        if let Some(value) = self.availability.take() {
8419                            ::fidl_next::WireEnvelope::encode_value::<
8420                                crate::wire::Availability,
8421                                ___E,
8422                            >(
8423                                value, preallocated.encoder, &mut out, ()
8424                            )?;
8425                        } else {
8426                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8427                        }
8428                    }
8429
8430                    4 => {
8431                        if let Some(value) = self.dependency_type.take() {
8432                            ::fidl_next::WireEnvelope::encode_value::<
8433                                crate::wire::DependencyType,
8434                                ___E,
8435                            >(
8436                                value, preallocated.encoder, &mut out, ()
8437                            )?;
8438                        } else {
8439                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8440                        }
8441                    }
8442
8443                    3 => {
8444                        if let Some(value) = self.target_path.take() {
8445                            ::fidl_next::WireEnvelope::encode_value::<
8446                                ::fidl_next::WireString<'static>,
8447                                ___E,
8448                            >(
8449                                value, preallocated.encoder, &mut out, 1024
8450                            )?;
8451                        } else {
8452                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8453                        }
8454                    }
8455
8456                    2 => {
8457                        if let Some(value) = self.source_name.take() {
8458                            ::fidl_next::WireEnvelope::encode_value::<
8459                                ::fidl_next::WireString<'static>,
8460                                ___E,
8461                            >(
8462                                value, preallocated.encoder, &mut out, 100
8463                            )?;
8464                        } else {
8465                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8466                        }
8467                    }
8468
8469                    1 => {
8470                        if let Some(value) = self.source.take() {
8471                            ::fidl_next::WireEnvelope::encode_value::<
8472                                crate::wire::Ref<'static>,
8473                                ___E,
8474                            >(
8475                                value, preallocated.encoder, &mut out, ()
8476                            )?;
8477                        } else {
8478                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8479                        }
8480                    }
8481
8482                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
8483                }
8484                unsafe {
8485                    preallocated.write_next(out.assume_init_ref());
8486                }
8487            }
8488
8489            ::fidl_next::WireTable::encode_len(table, max_ord);
8490
8491            Ok(())
8492        }
8493    }
8494
8495    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseService<'static>, ___E> for &'a UseService
8496    where
8497        ___E: ::fidl_next::Encoder + ?Sized,
8498    {
8499        #[inline]
8500        fn encode(
8501            self,
8502            encoder: &mut ___E,
8503            out: &mut ::core::mem::MaybeUninit<crate::wire::UseService<'static>>,
8504            _: (),
8505        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8506            ::fidl_next::munge!(let crate::wire::UseService { table } = out);
8507
8508            let max_ord = self.__max_ordinal();
8509
8510            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8511            ::fidl_next::Wire::zero_padding(&mut out);
8512
8513            let mut preallocated =
8514                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8515
8516            for i in 1..=max_ord {
8517                match i {
8518                    6 => {
8519                        if let Some(value) = &self.source_dictionary {
8520                            ::fidl_next::WireEnvelope::encode_value::<
8521                                ::fidl_next::WireString<'static>,
8522                                ___E,
8523                            >(
8524                                value, preallocated.encoder, &mut out, 1024
8525                            )?;
8526                        } else {
8527                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8528                        }
8529                    }
8530
8531                    5 => {
8532                        if let Some(value) = &self.availability {
8533                            ::fidl_next::WireEnvelope::encode_value::<
8534                                crate::wire::Availability,
8535                                ___E,
8536                            >(
8537                                value, preallocated.encoder, &mut out, ()
8538                            )?;
8539                        } else {
8540                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8541                        }
8542                    }
8543
8544                    4 => {
8545                        if let Some(value) = &self.dependency_type {
8546                            ::fidl_next::WireEnvelope::encode_value::<
8547                                crate::wire::DependencyType,
8548                                ___E,
8549                            >(
8550                                value, preallocated.encoder, &mut out, ()
8551                            )?;
8552                        } else {
8553                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8554                        }
8555                    }
8556
8557                    3 => {
8558                        if let Some(value) = &self.target_path {
8559                            ::fidl_next::WireEnvelope::encode_value::<
8560                                ::fidl_next::WireString<'static>,
8561                                ___E,
8562                            >(
8563                                value, preallocated.encoder, &mut out, 1024
8564                            )?;
8565                        } else {
8566                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8567                        }
8568                    }
8569
8570                    2 => {
8571                        if let Some(value) = &self.source_name {
8572                            ::fidl_next::WireEnvelope::encode_value::<
8573                                ::fidl_next::WireString<'static>,
8574                                ___E,
8575                            >(
8576                                value, preallocated.encoder, &mut out, 100
8577                            )?;
8578                        } else {
8579                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8580                        }
8581                    }
8582
8583                    1 => {
8584                        if let Some(value) = &self.source {
8585                            ::fidl_next::WireEnvelope::encode_value::<
8586                                crate::wire::Ref<'static>,
8587                                ___E,
8588                            >(
8589                                value, preallocated.encoder, &mut out, ()
8590                            )?;
8591                        } else {
8592                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8593                        }
8594                    }
8595
8596                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
8597                }
8598                unsafe {
8599                    preallocated.write_next(out.assume_init_ref());
8600                }
8601            }
8602
8603            ::fidl_next::WireTable::encode_len(table, max_ord);
8604
8605            Ok(())
8606        }
8607    }
8608
8609    impl<'de> ::fidl_next::FromWire<crate::wire::UseService<'de>> for UseService {
8610        #[inline]
8611        fn from_wire(wire_: crate::wire::UseService<'de>) -> Self {
8612            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8613
8614            let source = wire_.table.get(1);
8615
8616            let source_name = wire_.table.get(2);
8617
8618            let target_path = wire_.table.get(3);
8619
8620            let dependency_type = wire_.table.get(4);
8621
8622            let availability = wire_.table.get(5);
8623
8624            let source_dictionary = wire_.table.get(6);
8625
8626            Self {
8627                source: source.map(|envelope| {
8628                    ::fidl_next::FromWire::from_wire(unsafe {
8629                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
8630                    })
8631                }),
8632
8633                source_name: source_name.map(|envelope| {
8634                    ::fidl_next::FromWire::from_wire(unsafe {
8635                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
8636                    })
8637                }),
8638
8639                target_path: target_path.map(|envelope| {
8640                    ::fidl_next::FromWire::from_wire(unsafe {
8641                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
8642                    })
8643                }),
8644
8645                dependency_type: dependency_type.map(|envelope| {
8646                    ::fidl_next::FromWire::from_wire(unsafe {
8647                        envelope.read_unchecked::<crate::wire::DependencyType>()
8648                    })
8649                }),
8650
8651                availability: availability.map(|envelope| {
8652                    ::fidl_next::FromWire::from_wire(unsafe {
8653                        envelope.read_unchecked::<crate::wire::Availability>()
8654                    })
8655                }),
8656
8657                source_dictionary: source_dictionary.map(|envelope| {
8658                    ::fidl_next::FromWire::from_wire(unsafe {
8659                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
8660                    })
8661                }),
8662            }
8663        }
8664    }
8665
8666    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseService<'de>> for UseService {
8667        #[inline]
8668        fn from_wire_ref(wire: &crate::wire::UseService<'de>) -> Self {
8669            Self {
8670                source: wire.table.get(1).map(|envelope| {
8671                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8672                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
8673                    })
8674                }),
8675
8676                source_name: wire.table.get(2).map(|envelope| {
8677                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8678                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
8679                    })
8680                }),
8681
8682                target_path: wire.table.get(3).map(|envelope| {
8683                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8684                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
8685                    })
8686                }),
8687
8688                dependency_type: wire.table.get(4).map(|envelope| {
8689                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8690                        envelope.deref_unchecked::<crate::wire::DependencyType>()
8691                    })
8692                }),
8693
8694                availability: wire.table.get(5).map(|envelope| {
8695                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8696                        envelope.deref_unchecked::<crate::wire::Availability>()
8697                    })
8698                }),
8699
8700                source_dictionary: wire.table.get(6).map(|envelope| {
8701                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8702                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
8703                    })
8704                }),
8705            }
8706        }
8707    }
8708
8709    #[doc = " Declares a protocol used by a component, which was offered to it.\n\n A protocol is a service with a single instance, provided by a single FIDL\n protocol.\n"]
8710    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8711    pub struct UseProtocol {
8712        pub source: ::core::option::Option<crate::natural::Ref>,
8713
8714        pub source_name: ::core::option::Option<::std::string::String>,
8715
8716        pub target_path: ::core::option::Option<::std::string::String>,
8717
8718        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
8719
8720        pub availability: ::core::option::Option<crate::natural::Availability>,
8721
8722        pub source_dictionary: ::core::option::Option<::std::string::String>,
8723
8724        pub numbered_handle: ::core::option::Option<u8>,
8725    }
8726
8727    impl UseProtocol {
8728        fn __max_ordinal(&self) -> usize {
8729            if self.numbered_handle.is_some() {
8730                return 7;
8731            }
8732
8733            if self.source_dictionary.is_some() {
8734                return 6;
8735            }
8736
8737            if self.availability.is_some() {
8738                return 5;
8739            }
8740
8741            if self.dependency_type.is_some() {
8742                return 4;
8743            }
8744
8745            if self.target_path.is_some() {
8746                return 3;
8747            }
8748
8749            if self.source_name.is_some() {
8750                return 2;
8751            }
8752
8753            if self.source.is_some() {
8754                return 1;
8755            }
8756
8757            0
8758        }
8759    }
8760
8761    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseProtocol<'static>, ___E> for UseProtocol
8762    where
8763        ___E: ::fidl_next::Encoder + ?Sized,
8764    {
8765        #[inline]
8766        fn encode(
8767            mut self,
8768            encoder: &mut ___E,
8769            out: &mut ::core::mem::MaybeUninit<crate::wire::UseProtocol<'static>>,
8770            _: (),
8771        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8772            ::fidl_next::munge!(let crate::wire::UseProtocol { table } = out);
8773
8774            let max_ord = self.__max_ordinal();
8775
8776            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8777            ::fidl_next::Wire::zero_padding(&mut out);
8778
8779            let mut preallocated =
8780                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8781
8782            for i in 1..=max_ord {
8783                match i {
8784                    7 => {
8785                        if let Some(value) = self.numbered_handle.take() {
8786                            ::fidl_next::WireEnvelope::encode_value::<u8, ___E>(
8787                                value,
8788                                preallocated.encoder,
8789                                &mut out,
8790                                (),
8791                            )?;
8792                        } else {
8793                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8794                        }
8795                    }
8796
8797                    6 => {
8798                        if let Some(value) = self.source_dictionary.take() {
8799                            ::fidl_next::WireEnvelope::encode_value::<
8800                                ::fidl_next::WireString<'static>,
8801                                ___E,
8802                            >(
8803                                value, preallocated.encoder, &mut out, 1024
8804                            )?;
8805                        } else {
8806                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8807                        }
8808                    }
8809
8810                    5 => {
8811                        if let Some(value) = self.availability.take() {
8812                            ::fidl_next::WireEnvelope::encode_value::<
8813                                crate::wire::Availability,
8814                                ___E,
8815                            >(
8816                                value, preallocated.encoder, &mut out, ()
8817                            )?;
8818                        } else {
8819                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8820                        }
8821                    }
8822
8823                    4 => {
8824                        if let Some(value) = self.dependency_type.take() {
8825                            ::fidl_next::WireEnvelope::encode_value::<
8826                                crate::wire::DependencyType,
8827                                ___E,
8828                            >(
8829                                value, preallocated.encoder, &mut out, ()
8830                            )?;
8831                        } else {
8832                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8833                        }
8834                    }
8835
8836                    3 => {
8837                        if let Some(value) = self.target_path.take() {
8838                            ::fidl_next::WireEnvelope::encode_value::<
8839                                ::fidl_next::WireString<'static>,
8840                                ___E,
8841                            >(
8842                                value, preallocated.encoder, &mut out, 1024
8843                            )?;
8844                        } else {
8845                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8846                        }
8847                    }
8848
8849                    2 => {
8850                        if let Some(value) = self.source_name.take() {
8851                            ::fidl_next::WireEnvelope::encode_value::<
8852                                ::fidl_next::WireString<'static>,
8853                                ___E,
8854                            >(
8855                                value, preallocated.encoder, &mut out, 100
8856                            )?;
8857                        } else {
8858                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8859                        }
8860                    }
8861
8862                    1 => {
8863                        if let Some(value) = self.source.take() {
8864                            ::fidl_next::WireEnvelope::encode_value::<
8865                                crate::wire::Ref<'static>,
8866                                ___E,
8867                            >(
8868                                value, preallocated.encoder, &mut out, ()
8869                            )?;
8870                        } else {
8871                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8872                        }
8873                    }
8874
8875                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
8876                }
8877                unsafe {
8878                    preallocated.write_next(out.assume_init_ref());
8879                }
8880            }
8881
8882            ::fidl_next::WireTable::encode_len(table, max_ord);
8883
8884            Ok(())
8885        }
8886    }
8887
8888    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseProtocol<'static>, ___E>
8889        for &'a UseProtocol
8890    where
8891        ___E: ::fidl_next::Encoder + ?Sized,
8892    {
8893        #[inline]
8894        fn encode(
8895            self,
8896            encoder: &mut ___E,
8897            out: &mut ::core::mem::MaybeUninit<crate::wire::UseProtocol<'static>>,
8898            _: (),
8899        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8900            ::fidl_next::munge!(let crate::wire::UseProtocol { table } = out);
8901
8902            let max_ord = self.__max_ordinal();
8903
8904            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
8905            ::fidl_next::Wire::zero_padding(&mut out);
8906
8907            let mut preallocated =
8908                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
8909
8910            for i in 1..=max_ord {
8911                match i {
8912                    7 => {
8913                        if let Some(value) = &self.numbered_handle {
8914                            ::fidl_next::WireEnvelope::encode_value::<u8, ___E>(
8915                                value,
8916                                preallocated.encoder,
8917                                &mut out,
8918                                (),
8919                            )?;
8920                        } else {
8921                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8922                        }
8923                    }
8924
8925                    6 => {
8926                        if let Some(value) = &self.source_dictionary {
8927                            ::fidl_next::WireEnvelope::encode_value::<
8928                                ::fidl_next::WireString<'static>,
8929                                ___E,
8930                            >(
8931                                value, preallocated.encoder, &mut out, 1024
8932                            )?;
8933                        } else {
8934                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8935                        }
8936                    }
8937
8938                    5 => {
8939                        if let Some(value) = &self.availability {
8940                            ::fidl_next::WireEnvelope::encode_value::<
8941                                crate::wire::Availability,
8942                                ___E,
8943                            >(
8944                                value, preallocated.encoder, &mut out, ()
8945                            )?;
8946                        } else {
8947                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8948                        }
8949                    }
8950
8951                    4 => {
8952                        if let Some(value) = &self.dependency_type {
8953                            ::fidl_next::WireEnvelope::encode_value::<
8954                                crate::wire::DependencyType,
8955                                ___E,
8956                            >(
8957                                value, preallocated.encoder, &mut out, ()
8958                            )?;
8959                        } else {
8960                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8961                        }
8962                    }
8963
8964                    3 => {
8965                        if let Some(value) = &self.target_path {
8966                            ::fidl_next::WireEnvelope::encode_value::<
8967                                ::fidl_next::WireString<'static>,
8968                                ___E,
8969                            >(
8970                                value, preallocated.encoder, &mut out, 1024
8971                            )?;
8972                        } else {
8973                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8974                        }
8975                    }
8976
8977                    2 => {
8978                        if let Some(value) = &self.source_name {
8979                            ::fidl_next::WireEnvelope::encode_value::<
8980                                ::fidl_next::WireString<'static>,
8981                                ___E,
8982                            >(
8983                                value, preallocated.encoder, &mut out, 100
8984                            )?;
8985                        } else {
8986                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
8987                        }
8988                    }
8989
8990                    1 => {
8991                        if let Some(value) = &self.source {
8992                            ::fidl_next::WireEnvelope::encode_value::<
8993                                crate::wire::Ref<'static>,
8994                                ___E,
8995                            >(
8996                                value, preallocated.encoder, &mut out, ()
8997                            )?;
8998                        } else {
8999                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9000                        }
9001                    }
9002
9003                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
9004                }
9005                unsafe {
9006                    preallocated.write_next(out.assume_init_ref());
9007                }
9008            }
9009
9010            ::fidl_next::WireTable::encode_len(table, max_ord);
9011
9012            Ok(())
9013        }
9014    }
9015
9016    impl<'de> ::fidl_next::FromWire<crate::wire::UseProtocol<'de>> for UseProtocol {
9017        #[inline]
9018        fn from_wire(wire_: crate::wire::UseProtocol<'de>) -> Self {
9019            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9020
9021            let source = wire_.table.get(1);
9022
9023            let source_name = wire_.table.get(2);
9024
9025            let target_path = wire_.table.get(3);
9026
9027            let dependency_type = wire_.table.get(4);
9028
9029            let availability = wire_.table.get(5);
9030
9031            let source_dictionary = wire_.table.get(6);
9032
9033            let numbered_handle = wire_.table.get(7);
9034
9035            Self {
9036                source: source.map(|envelope| {
9037                    ::fidl_next::FromWire::from_wire(unsafe {
9038                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
9039                    })
9040                }),
9041
9042                source_name: source_name.map(|envelope| {
9043                    ::fidl_next::FromWire::from_wire(unsafe {
9044                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
9045                    })
9046                }),
9047
9048                target_path: target_path.map(|envelope| {
9049                    ::fidl_next::FromWire::from_wire(unsafe {
9050                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
9051                    })
9052                }),
9053
9054                dependency_type: dependency_type.map(|envelope| {
9055                    ::fidl_next::FromWire::from_wire(unsafe {
9056                        envelope.read_unchecked::<crate::wire::DependencyType>()
9057                    })
9058                }),
9059
9060                availability: availability.map(|envelope| {
9061                    ::fidl_next::FromWire::from_wire(unsafe {
9062                        envelope.read_unchecked::<crate::wire::Availability>()
9063                    })
9064                }),
9065
9066                source_dictionary: source_dictionary.map(|envelope| {
9067                    ::fidl_next::FromWire::from_wire(unsafe {
9068                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
9069                    })
9070                }),
9071
9072                numbered_handle: numbered_handle.map(|envelope| {
9073                    ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<u8>() })
9074                }),
9075            }
9076        }
9077    }
9078
9079    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseProtocol<'de>> for UseProtocol {
9080        #[inline]
9081        fn from_wire_ref(wire: &crate::wire::UseProtocol<'de>) -> Self {
9082            Self {
9083                source: wire.table.get(1).map(|envelope| {
9084                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9085                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
9086                    })
9087                }),
9088
9089                source_name: wire.table.get(2).map(|envelope| {
9090                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9091                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
9092                    })
9093                }),
9094
9095                target_path: wire.table.get(3).map(|envelope| {
9096                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9097                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
9098                    })
9099                }),
9100
9101                dependency_type: wire.table.get(4).map(|envelope| {
9102                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9103                        envelope.deref_unchecked::<crate::wire::DependencyType>()
9104                    })
9105                }),
9106
9107                availability: wire.table.get(5).map(|envelope| {
9108                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9109                        envelope.deref_unchecked::<crate::wire::Availability>()
9110                    })
9111                }),
9112
9113                source_dictionary: wire.table.get(6).map(|envelope| {
9114                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9115                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
9116                    })
9117                }),
9118
9119                numbered_handle: wire.table.get(7).map(|envelope| {
9120                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9121                        envelope.deref_unchecked::<u8>()
9122                    })
9123                }),
9124            }
9125        }
9126    }
9127
9128    #[doc = " Declares a directory used by a component, which was offered to it.\n"]
9129    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9130    pub struct UseDirectory {
9131        pub source: ::core::option::Option<crate::natural::Ref>,
9132
9133        pub source_name: ::core::option::Option<::std::string::String>,
9134
9135        pub target_path: ::core::option::Option<::std::string::String>,
9136
9137        pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
9138
9139        pub subdir: ::core::option::Option<::std::string::String>,
9140
9141        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
9142
9143        pub availability: ::core::option::Option<crate::natural::Availability>,
9144
9145        pub source_dictionary: ::core::option::Option<::std::string::String>,
9146    }
9147
9148    impl UseDirectory {
9149        fn __max_ordinal(&self) -> usize {
9150            if self.source_dictionary.is_some() {
9151                return 8;
9152            }
9153
9154            if self.availability.is_some() {
9155                return 7;
9156            }
9157
9158            if self.dependency_type.is_some() {
9159                return 6;
9160            }
9161
9162            if self.subdir.is_some() {
9163                return 5;
9164            }
9165
9166            if self.rights.is_some() {
9167                return 4;
9168            }
9169
9170            if self.target_path.is_some() {
9171                return 3;
9172            }
9173
9174            if self.source_name.is_some() {
9175                return 2;
9176            }
9177
9178            if self.source.is_some() {
9179                return 1;
9180            }
9181
9182            0
9183        }
9184    }
9185
9186    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseDirectory<'static>, ___E> for UseDirectory
9187    where
9188        ___E: ::fidl_next::Encoder + ?Sized,
9189    {
9190        #[inline]
9191        fn encode(
9192            mut self,
9193            encoder: &mut ___E,
9194            out: &mut ::core::mem::MaybeUninit<crate::wire::UseDirectory<'static>>,
9195            _: (),
9196        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9197            ::fidl_next::munge!(let crate::wire::UseDirectory { table } = out);
9198
9199            let max_ord = self.__max_ordinal();
9200
9201            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
9202            ::fidl_next::Wire::zero_padding(&mut out);
9203
9204            let mut preallocated =
9205                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
9206
9207            for i in 1..=max_ord {
9208                match i {
9209                    8 => {
9210                        if let Some(value) = self.source_dictionary.take() {
9211                            ::fidl_next::WireEnvelope::encode_value::<
9212                                ::fidl_next::WireString<'static>,
9213                                ___E,
9214                            >(
9215                                value, preallocated.encoder, &mut out, 1024
9216                            )?;
9217                        } else {
9218                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9219                        }
9220                    }
9221
9222                    7 => {
9223                        if let Some(value) = self.availability.take() {
9224                            ::fidl_next::WireEnvelope::encode_value::<
9225                                crate::wire::Availability,
9226                                ___E,
9227                            >(
9228                                value, preallocated.encoder, &mut out, ()
9229                            )?;
9230                        } else {
9231                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9232                        }
9233                    }
9234
9235                    6 => {
9236                        if let Some(value) = self.dependency_type.take() {
9237                            ::fidl_next::WireEnvelope::encode_value::<
9238                                crate::wire::DependencyType,
9239                                ___E,
9240                            >(
9241                                value, preallocated.encoder, &mut out, ()
9242                            )?;
9243                        } else {
9244                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9245                        }
9246                    }
9247
9248                    5 => {
9249                        if let Some(value) = self.subdir.take() {
9250                            ::fidl_next::WireEnvelope::encode_value::<
9251                                ::fidl_next::WireString<'static>,
9252                                ___E,
9253                            >(
9254                                value, preallocated.encoder, &mut out, 1024
9255                            )?;
9256                        } else {
9257                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9258                        }
9259                    }
9260
9261                    4 => {
9262                        if let Some(value) = self.rights.take() {
9263                            ::fidl_next::WireEnvelope::encode_value::<
9264                                ::fidl_next_common_fuchsia_io::wire::Operations,
9265                                ___E,
9266                            >(
9267                                value, preallocated.encoder, &mut out, ()
9268                            )?;
9269                        } else {
9270                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9271                        }
9272                    }
9273
9274                    3 => {
9275                        if let Some(value) = self.target_path.take() {
9276                            ::fidl_next::WireEnvelope::encode_value::<
9277                                ::fidl_next::WireString<'static>,
9278                                ___E,
9279                            >(
9280                                value, preallocated.encoder, &mut out, 1024
9281                            )?;
9282                        } else {
9283                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9284                        }
9285                    }
9286
9287                    2 => {
9288                        if let Some(value) = self.source_name.take() {
9289                            ::fidl_next::WireEnvelope::encode_value::<
9290                                ::fidl_next::WireString<'static>,
9291                                ___E,
9292                            >(
9293                                value, preallocated.encoder, &mut out, 100
9294                            )?;
9295                        } else {
9296                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9297                        }
9298                    }
9299
9300                    1 => {
9301                        if let Some(value) = self.source.take() {
9302                            ::fidl_next::WireEnvelope::encode_value::<
9303                                crate::wire::Ref<'static>,
9304                                ___E,
9305                            >(
9306                                value, preallocated.encoder, &mut out, ()
9307                            )?;
9308                        } else {
9309                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9310                        }
9311                    }
9312
9313                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
9314                }
9315                unsafe {
9316                    preallocated.write_next(out.assume_init_ref());
9317                }
9318            }
9319
9320            ::fidl_next::WireTable::encode_len(table, max_ord);
9321
9322            Ok(())
9323        }
9324    }
9325
9326    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseDirectory<'static>, ___E>
9327        for &'a UseDirectory
9328    where
9329        ___E: ::fidl_next::Encoder + ?Sized,
9330    {
9331        #[inline]
9332        fn encode(
9333            self,
9334            encoder: &mut ___E,
9335            out: &mut ::core::mem::MaybeUninit<crate::wire::UseDirectory<'static>>,
9336            _: (),
9337        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9338            ::fidl_next::munge!(let crate::wire::UseDirectory { table } = out);
9339
9340            let max_ord = self.__max_ordinal();
9341
9342            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
9343            ::fidl_next::Wire::zero_padding(&mut out);
9344
9345            let mut preallocated =
9346                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
9347
9348            for i in 1..=max_ord {
9349                match i {
9350                    8 => {
9351                        if let Some(value) = &self.source_dictionary {
9352                            ::fidl_next::WireEnvelope::encode_value::<
9353                                ::fidl_next::WireString<'static>,
9354                                ___E,
9355                            >(
9356                                value, preallocated.encoder, &mut out, 1024
9357                            )?;
9358                        } else {
9359                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9360                        }
9361                    }
9362
9363                    7 => {
9364                        if let Some(value) = &self.availability {
9365                            ::fidl_next::WireEnvelope::encode_value::<
9366                                crate::wire::Availability,
9367                                ___E,
9368                            >(
9369                                value, preallocated.encoder, &mut out, ()
9370                            )?;
9371                        } else {
9372                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9373                        }
9374                    }
9375
9376                    6 => {
9377                        if let Some(value) = &self.dependency_type {
9378                            ::fidl_next::WireEnvelope::encode_value::<
9379                                crate::wire::DependencyType,
9380                                ___E,
9381                            >(
9382                                value, preallocated.encoder, &mut out, ()
9383                            )?;
9384                        } else {
9385                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9386                        }
9387                    }
9388
9389                    5 => {
9390                        if let Some(value) = &self.subdir {
9391                            ::fidl_next::WireEnvelope::encode_value::<
9392                                ::fidl_next::WireString<'static>,
9393                                ___E,
9394                            >(
9395                                value, preallocated.encoder, &mut out, 1024
9396                            )?;
9397                        } else {
9398                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9399                        }
9400                    }
9401
9402                    4 => {
9403                        if let Some(value) = &self.rights {
9404                            ::fidl_next::WireEnvelope::encode_value::<
9405                                ::fidl_next_common_fuchsia_io::wire::Operations,
9406                                ___E,
9407                            >(
9408                                value, preallocated.encoder, &mut out, ()
9409                            )?;
9410                        } else {
9411                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9412                        }
9413                    }
9414
9415                    3 => {
9416                        if let Some(value) = &self.target_path {
9417                            ::fidl_next::WireEnvelope::encode_value::<
9418                                ::fidl_next::WireString<'static>,
9419                                ___E,
9420                            >(
9421                                value, preallocated.encoder, &mut out, 1024
9422                            )?;
9423                        } else {
9424                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9425                        }
9426                    }
9427
9428                    2 => {
9429                        if let Some(value) = &self.source_name {
9430                            ::fidl_next::WireEnvelope::encode_value::<
9431                                ::fidl_next::WireString<'static>,
9432                                ___E,
9433                            >(
9434                                value, preallocated.encoder, &mut out, 100
9435                            )?;
9436                        } else {
9437                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9438                        }
9439                    }
9440
9441                    1 => {
9442                        if let Some(value) = &self.source {
9443                            ::fidl_next::WireEnvelope::encode_value::<
9444                                crate::wire::Ref<'static>,
9445                                ___E,
9446                            >(
9447                                value, preallocated.encoder, &mut out, ()
9448                            )?;
9449                        } else {
9450                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9451                        }
9452                    }
9453
9454                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
9455                }
9456                unsafe {
9457                    preallocated.write_next(out.assume_init_ref());
9458                }
9459            }
9460
9461            ::fidl_next::WireTable::encode_len(table, max_ord);
9462
9463            Ok(())
9464        }
9465    }
9466
9467    impl<'de> ::fidl_next::FromWire<crate::wire::UseDirectory<'de>> for UseDirectory {
9468        #[inline]
9469        fn from_wire(wire_: crate::wire::UseDirectory<'de>) -> Self {
9470            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9471
9472            let source = wire_.table.get(1);
9473
9474            let source_name = wire_.table.get(2);
9475
9476            let target_path = wire_.table.get(3);
9477
9478            let rights = wire_.table.get(4);
9479
9480            let subdir = wire_.table.get(5);
9481
9482            let dependency_type = wire_.table.get(6);
9483
9484            let availability = wire_.table.get(7);
9485
9486            let source_dictionary = wire_.table.get(8);
9487
9488            Self {
9489                source: source.map(|envelope| {
9490                    ::fidl_next::FromWire::from_wire(unsafe {
9491                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
9492                    })
9493                }),
9494
9495                source_name: source_name.map(|envelope| {
9496                    ::fidl_next::FromWire::from_wire(unsafe {
9497                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
9498                    })
9499                }),
9500
9501                target_path: target_path.map(|envelope| {
9502                    ::fidl_next::FromWire::from_wire(unsafe {
9503                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
9504                    })
9505                }),
9506
9507                rights: rights.map(|envelope| {
9508                    ::fidl_next::FromWire::from_wire(unsafe {
9509                        envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
9510                    })
9511                }),
9512
9513                subdir: subdir.map(|envelope| {
9514                    ::fidl_next::FromWire::from_wire(unsafe {
9515                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
9516                    })
9517                }),
9518
9519                dependency_type: dependency_type.map(|envelope| {
9520                    ::fidl_next::FromWire::from_wire(unsafe {
9521                        envelope.read_unchecked::<crate::wire::DependencyType>()
9522                    })
9523                }),
9524
9525                availability: availability.map(|envelope| {
9526                    ::fidl_next::FromWire::from_wire(unsafe {
9527                        envelope.read_unchecked::<crate::wire::Availability>()
9528                    })
9529                }),
9530
9531                source_dictionary: source_dictionary.map(|envelope| {
9532                    ::fidl_next::FromWire::from_wire(unsafe {
9533                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
9534                    })
9535                }),
9536            }
9537        }
9538    }
9539
9540    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseDirectory<'de>> for UseDirectory {
9541        #[inline]
9542        fn from_wire_ref(wire: &crate::wire::UseDirectory<'de>) -> Self {
9543            Self {
9544                source: wire.table.get(1).map(|envelope| {
9545                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9546                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
9547                    })
9548                }),
9549
9550                source_name: wire.table.get(2).map(|envelope| {
9551                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9552                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
9553                    })
9554                }),
9555
9556                target_path: wire.table.get(3).map(|envelope| {
9557                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9558                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
9559                    })
9560                }),
9561
9562                rights: wire.table.get(4).map(|envelope| {
9563                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9564                        envelope
9565                            .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
9566                    })
9567                }),
9568
9569                subdir: wire.table.get(5).map(|envelope| {
9570                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9571                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
9572                    })
9573                }),
9574
9575                dependency_type: wire.table.get(6).map(|envelope| {
9576                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9577                        envelope.deref_unchecked::<crate::wire::DependencyType>()
9578                    })
9579                }),
9580
9581                availability: wire.table.get(7).map(|envelope| {
9582                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9583                        envelope.deref_unchecked::<crate::wire::Availability>()
9584                    })
9585                }),
9586
9587                source_dictionary: wire.table.get(8).map(|envelope| {
9588                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9589                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
9590                    })
9591                }),
9592            }
9593        }
9594    }
9595
9596    #[doc = " Declares an EventStream used by a component.\n"]
9597    #[derive(Debug, Default, PartialEq)]
9598    pub struct UseEventStream {
9599        pub source_name: ::core::option::Option<::std::string::String>,
9600
9601        pub source: ::core::option::Option<crate::natural::Ref>,
9602
9603        pub scope: ::core::option::Option<::std::vec::Vec<crate::natural::Ref>>,
9604
9605        pub target_path: ::core::option::Option<::std::string::String>,
9606
9607        pub availability: ::core::option::Option<crate::natural::Availability>,
9608
9609        pub filter: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
9610    }
9611
9612    impl UseEventStream {
9613        fn __max_ordinal(&self) -> usize {
9614            if self.filter.is_some() {
9615                return 6;
9616            }
9617
9618            if self.availability.is_some() {
9619                return 5;
9620            }
9621
9622            if self.target_path.is_some() {
9623                return 4;
9624            }
9625
9626            if self.scope.is_some() {
9627                return 3;
9628            }
9629
9630            if self.source.is_some() {
9631                return 2;
9632            }
9633
9634            if self.source_name.is_some() {
9635                return 1;
9636            }
9637
9638            0
9639        }
9640    }
9641
9642    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseEventStream<'static>, ___E> for UseEventStream
9643    where
9644        ___E: ::fidl_next::Encoder + ?Sized,
9645    {
9646        #[inline]
9647        fn encode(
9648            mut self,
9649            encoder: &mut ___E,
9650            out: &mut ::core::mem::MaybeUninit<crate::wire::UseEventStream<'static>>,
9651            _: (),
9652        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9653            ::fidl_next::munge!(let crate::wire::UseEventStream { table } = out);
9654
9655            let max_ord = self.__max_ordinal();
9656
9657            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
9658            ::fidl_next::Wire::zero_padding(&mut out);
9659
9660            let mut preallocated =
9661                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
9662
9663            for i in 1..=max_ord {
9664                match i {
9665                    6 => {
9666                        if let Some(value) = self.filter.take() {
9667                            ::fidl_next::WireEnvelope::encode_value::<
9668                                ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
9669                                ___E,
9670                            >(
9671                                value, preallocated.encoder, &mut out, ()
9672                            )?;
9673                        } else {
9674                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9675                        }
9676                    }
9677
9678                    5 => {
9679                        if let Some(value) = self.availability.take() {
9680                            ::fidl_next::WireEnvelope::encode_value::<
9681                                crate::wire::Availability,
9682                                ___E,
9683                            >(
9684                                value, preallocated.encoder, &mut out, ()
9685                            )?;
9686                        } else {
9687                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9688                        }
9689                    }
9690
9691                    4 => {
9692                        if let Some(value) = self.target_path.take() {
9693                            ::fidl_next::WireEnvelope::encode_value::<
9694                                ::fidl_next::WireString<'static>,
9695                                ___E,
9696                            >(
9697                                value, preallocated.encoder, &mut out, 100
9698                            )?;
9699                        } else {
9700                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9701                        }
9702                    }
9703
9704                    3 => {
9705                        if let Some(value) = self.scope.take() {
9706                            ::fidl_next::WireEnvelope::encode_value::<
9707                                ::fidl_next::WireVector<'static, crate::wire::Ref<'static>>,
9708                                ___E,
9709                            >(
9710                                value, preallocated.encoder, &mut out, (4294967295, ())
9711                            )?;
9712                        } else {
9713                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9714                        }
9715                    }
9716
9717                    2 => {
9718                        if let Some(value) = self.source.take() {
9719                            ::fidl_next::WireEnvelope::encode_value::<
9720                                crate::wire::Ref<'static>,
9721                                ___E,
9722                            >(
9723                                value, preallocated.encoder, &mut out, ()
9724                            )?;
9725                        } else {
9726                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9727                        }
9728                    }
9729
9730                    1 => {
9731                        if let Some(value) = self.source_name.take() {
9732                            ::fidl_next::WireEnvelope::encode_value::<
9733                                ::fidl_next::WireString<'static>,
9734                                ___E,
9735                            >(
9736                                value, preallocated.encoder, &mut out, 100
9737                            )?;
9738                        } else {
9739                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9740                        }
9741                    }
9742
9743                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
9744                }
9745                unsafe {
9746                    preallocated.write_next(out.assume_init_ref());
9747                }
9748            }
9749
9750            ::fidl_next::WireTable::encode_len(table, max_ord);
9751
9752            Ok(())
9753        }
9754    }
9755
9756    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseEventStream<'static>, ___E>
9757        for &'a UseEventStream
9758    where
9759        ___E: ::fidl_next::Encoder + ?Sized,
9760    {
9761        #[inline]
9762        fn encode(
9763            self,
9764            encoder: &mut ___E,
9765            out: &mut ::core::mem::MaybeUninit<crate::wire::UseEventStream<'static>>,
9766            _: (),
9767        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9768            ::fidl_next::munge!(let crate::wire::UseEventStream { table } = out);
9769
9770            let max_ord = self.__max_ordinal();
9771
9772            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
9773            ::fidl_next::Wire::zero_padding(&mut out);
9774
9775            let mut preallocated =
9776                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
9777
9778            for i in 1..=max_ord {
9779                match i {
9780                    6 => {
9781                        if let Some(value) = &self.filter {
9782                            ::fidl_next::WireEnvelope::encode_value::<
9783                                ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
9784                                ___E,
9785                            >(
9786                                value, preallocated.encoder, &mut out, ()
9787                            )?;
9788                        } else {
9789                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9790                        }
9791                    }
9792
9793                    5 => {
9794                        if let Some(value) = &self.availability {
9795                            ::fidl_next::WireEnvelope::encode_value::<
9796                                crate::wire::Availability,
9797                                ___E,
9798                            >(
9799                                value, preallocated.encoder, &mut out, ()
9800                            )?;
9801                        } else {
9802                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9803                        }
9804                    }
9805
9806                    4 => {
9807                        if let Some(value) = &self.target_path {
9808                            ::fidl_next::WireEnvelope::encode_value::<
9809                                ::fidl_next::WireString<'static>,
9810                                ___E,
9811                            >(
9812                                value, preallocated.encoder, &mut out, 100
9813                            )?;
9814                        } else {
9815                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9816                        }
9817                    }
9818
9819                    3 => {
9820                        if let Some(value) = &self.scope {
9821                            ::fidl_next::WireEnvelope::encode_value::<
9822                                ::fidl_next::WireVector<'static, crate::wire::Ref<'static>>,
9823                                ___E,
9824                            >(
9825                                value, preallocated.encoder, &mut out, (4294967295, ())
9826                            )?;
9827                        } else {
9828                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9829                        }
9830                    }
9831
9832                    2 => {
9833                        if let Some(value) = &self.source {
9834                            ::fidl_next::WireEnvelope::encode_value::<
9835                                crate::wire::Ref<'static>,
9836                                ___E,
9837                            >(
9838                                value, preallocated.encoder, &mut out, ()
9839                            )?;
9840                        } else {
9841                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9842                        }
9843                    }
9844
9845                    1 => {
9846                        if let Some(value) = &self.source_name {
9847                            ::fidl_next::WireEnvelope::encode_value::<
9848                                ::fidl_next::WireString<'static>,
9849                                ___E,
9850                            >(
9851                                value, preallocated.encoder, &mut out, 100
9852                            )?;
9853                        } else {
9854                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
9855                        }
9856                    }
9857
9858                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
9859                }
9860                unsafe {
9861                    preallocated.write_next(out.assume_init_ref());
9862                }
9863            }
9864
9865            ::fidl_next::WireTable::encode_len(table, max_ord);
9866
9867            Ok(())
9868        }
9869    }
9870
9871    impl<'de> ::fidl_next::FromWire<crate::wire::UseEventStream<'de>> for UseEventStream {
9872        #[inline]
9873        fn from_wire(wire_: crate::wire::UseEventStream<'de>) -> Self {
9874            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9875
9876            let source_name = wire_.table.get(1);
9877
9878            let source = wire_.table.get(2);
9879
9880            let scope = wire_.table.get(3);
9881
9882            let target_path = wire_.table.get(4);
9883
9884            let availability = wire_.table.get(5);
9885
9886            let filter = wire_.table.get(6);
9887
9888            Self {
9889
9890
9891                source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
9892                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
9893                )),
9894
9895
9896                source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
9897                    unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
9898                )),
9899
9900
9901                scope: scope.map(|envelope| ::fidl_next::FromWire::from_wire(
9902                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Ref<'de>>>() }
9903                )),
9904
9905
9906                target_path: target_path.map(|envelope| ::fidl_next::FromWire::from_wire(
9907                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
9908                )),
9909
9910
9911                availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
9912                    unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
9913                )),
9914
9915
9916                filter: filter.map(|envelope| ::fidl_next::FromWire::from_wire(
9917                    unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
9918                )),
9919
9920        }
9921        }
9922    }
9923
9924    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseEventStream<'de>> for UseEventStream {
9925        #[inline]
9926        fn from_wire_ref(wire: &crate::wire::UseEventStream<'de>) -> Self {
9927            Self {
9928
9929
9930                source_name: wire.table.get(1)
9931                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9932                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
9933                    )),
9934
9935
9936                source: wire.table.get(2)
9937                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9938                        unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
9939                    )),
9940
9941
9942                scope: wire.table.get(3)
9943                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9944                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Ref<'de>>>() }
9945                    )),
9946
9947
9948                target_path: wire.table.get(4)
9949                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9950                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
9951                    )),
9952
9953
9954                availability: wire.table.get(5)
9955                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9956                        unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
9957                    )),
9958
9959
9960                filter: wire.table.get(6)
9961                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9962                        unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
9963                    )),
9964
9965        }
9966        }
9967    }
9968
9969    #[doc = " Declares runner used by a component.\n"]
9970    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9971    pub struct UseRunner {
9972        pub source: ::core::option::Option<crate::natural::Ref>,
9973
9974        pub source_name: ::core::option::Option<::std::string::String>,
9975
9976        pub source_dictionary: ::core::option::Option<::std::string::String>,
9977    }
9978
9979    impl UseRunner {
9980        fn __max_ordinal(&self) -> usize {
9981            if self.source_dictionary.is_some() {
9982                return 3;
9983            }
9984
9985            if self.source_name.is_some() {
9986                return 2;
9987            }
9988
9989            if self.source.is_some() {
9990                return 1;
9991            }
9992
9993            0
9994        }
9995    }
9996
9997    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseRunner<'static>, ___E> for UseRunner
9998    where
9999        ___E: ::fidl_next::Encoder + ?Sized,
10000    {
10001        #[inline]
10002        fn encode(
10003            mut self,
10004            encoder: &mut ___E,
10005            out: &mut ::core::mem::MaybeUninit<crate::wire::UseRunner<'static>>,
10006            _: (),
10007        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10008            ::fidl_next::munge!(let crate::wire::UseRunner { table } = out);
10009
10010            let max_ord = self.__max_ordinal();
10011
10012            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
10013            ::fidl_next::Wire::zero_padding(&mut out);
10014
10015            let mut preallocated =
10016                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
10017
10018            for i in 1..=max_ord {
10019                match i {
10020                    3 => {
10021                        if let Some(value) = self.source_dictionary.take() {
10022                            ::fidl_next::WireEnvelope::encode_value::<
10023                                ::fidl_next::WireString<'static>,
10024                                ___E,
10025                            >(
10026                                value, preallocated.encoder, &mut out, 1024
10027                            )?;
10028                        } else {
10029                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10030                        }
10031                    }
10032
10033                    2 => {
10034                        if let Some(value) = self.source_name.take() {
10035                            ::fidl_next::WireEnvelope::encode_value::<
10036                                ::fidl_next::WireString<'static>,
10037                                ___E,
10038                            >(
10039                                value, preallocated.encoder, &mut out, 100
10040                            )?;
10041                        } else {
10042                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10043                        }
10044                    }
10045
10046                    1 => {
10047                        if let Some(value) = self.source.take() {
10048                            ::fidl_next::WireEnvelope::encode_value::<
10049                                crate::wire::Ref<'static>,
10050                                ___E,
10051                            >(
10052                                value, preallocated.encoder, &mut out, ()
10053                            )?;
10054                        } else {
10055                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10056                        }
10057                    }
10058
10059                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
10060                }
10061                unsafe {
10062                    preallocated.write_next(out.assume_init_ref());
10063                }
10064            }
10065
10066            ::fidl_next::WireTable::encode_len(table, max_ord);
10067
10068            Ok(())
10069        }
10070    }
10071
10072    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseRunner<'static>, ___E> for &'a UseRunner
10073    where
10074        ___E: ::fidl_next::Encoder + ?Sized,
10075    {
10076        #[inline]
10077        fn encode(
10078            self,
10079            encoder: &mut ___E,
10080            out: &mut ::core::mem::MaybeUninit<crate::wire::UseRunner<'static>>,
10081            _: (),
10082        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10083            ::fidl_next::munge!(let crate::wire::UseRunner { table } = out);
10084
10085            let max_ord = self.__max_ordinal();
10086
10087            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
10088            ::fidl_next::Wire::zero_padding(&mut out);
10089
10090            let mut preallocated =
10091                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
10092
10093            for i in 1..=max_ord {
10094                match i {
10095                    3 => {
10096                        if let Some(value) = &self.source_dictionary {
10097                            ::fidl_next::WireEnvelope::encode_value::<
10098                                ::fidl_next::WireString<'static>,
10099                                ___E,
10100                            >(
10101                                value, preallocated.encoder, &mut out, 1024
10102                            )?;
10103                        } else {
10104                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10105                        }
10106                    }
10107
10108                    2 => {
10109                        if let Some(value) = &self.source_name {
10110                            ::fidl_next::WireEnvelope::encode_value::<
10111                                ::fidl_next::WireString<'static>,
10112                                ___E,
10113                            >(
10114                                value, preallocated.encoder, &mut out, 100
10115                            )?;
10116                        } else {
10117                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10118                        }
10119                    }
10120
10121                    1 => {
10122                        if let Some(value) = &self.source {
10123                            ::fidl_next::WireEnvelope::encode_value::<
10124                                crate::wire::Ref<'static>,
10125                                ___E,
10126                            >(
10127                                value, preallocated.encoder, &mut out, ()
10128                            )?;
10129                        } else {
10130                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10131                        }
10132                    }
10133
10134                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
10135                }
10136                unsafe {
10137                    preallocated.write_next(out.assume_init_ref());
10138                }
10139            }
10140
10141            ::fidl_next::WireTable::encode_len(table, max_ord);
10142
10143            Ok(())
10144        }
10145    }
10146
10147    impl<'de> ::fidl_next::FromWire<crate::wire::UseRunner<'de>> for UseRunner {
10148        #[inline]
10149        fn from_wire(wire_: crate::wire::UseRunner<'de>) -> Self {
10150            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
10151
10152            let source = wire_.table.get(1);
10153
10154            let source_name = wire_.table.get(2);
10155
10156            let source_dictionary = wire_.table.get(3);
10157
10158            Self {
10159                source: source.map(|envelope| {
10160                    ::fidl_next::FromWire::from_wire(unsafe {
10161                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
10162                    })
10163                }),
10164
10165                source_name: source_name.map(|envelope| {
10166                    ::fidl_next::FromWire::from_wire(unsafe {
10167                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10168                    })
10169                }),
10170
10171                source_dictionary: source_dictionary.map(|envelope| {
10172                    ::fidl_next::FromWire::from_wire(unsafe {
10173                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10174                    })
10175                }),
10176            }
10177        }
10178    }
10179
10180    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseRunner<'de>> for UseRunner {
10181        #[inline]
10182        fn from_wire_ref(wire: &crate::wire::UseRunner<'de>) -> Self {
10183            Self {
10184                source: wire.table.get(1).map(|envelope| {
10185                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10186                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
10187                    })
10188                }),
10189
10190                source_name: wire.table.get(2).map(|envelope| {
10191                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10192                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10193                    })
10194                }),
10195
10196                source_dictionary: wire.table.get(3).map(|envelope| {
10197                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10198                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10199                    })
10200                }),
10201            }
10202        }
10203    }
10204
10205    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10206    pub struct UseConfiguration {
10207        pub source: ::core::option::Option<crate::natural::Ref>,
10208
10209        pub source_name: ::core::option::Option<::std::string::String>,
10210
10211        pub target_name: ::core::option::Option<::std::string::String>,
10212
10213        pub availability: ::core::option::Option<crate::natural::Availability>,
10214
10215        pub type_: ::core::option::Option<crate::natural::ConfigType>,
10216
10217        pub default: ::core::option::Option<crate::natural::ConfigValue>,
10218
10219        pub source_dictionary: ::core::option::Option<::std::string::String>,
10220    }
10221
10222    impl UseConfiguration {
10223        fn __max_ordinal(&self) -> usize {
10224            if self.source_dictionary.is_some() {
10225                return 7;
10226            }
10227
10228            if self.default.is_some() {
10229                return 6;
10230            }
10231
10232            if self.type_.is_some() {
10233                return 5;
10234            }
10235
10236            if self.availability.is_some() {
10237                return 4;
10238            }
10239
10240            if self.target_name.is_some() {
10241                return 3;
10242            }
10243
10244            if self.source_name.is_some() {
10245                return 2;
10246            }
10247
10248            if self.source.is_some() {
10249                return 1;
10250            }
10251
10252            0
10253        }
10254    }
10255
10256    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseConfiguration<'static>, ___E>
10257        for UseConfiguration
10258    where
10259        ___E: ::fidl_next::Encoder + ?Sized,
10260    {
10261        #[inline]
10262        fn encode(
10263            mut self,
10264            encoder: &mut ___E,
10265            out: &mut ::core::mem::MaybeUninit<crate::wire::UseConfiguration<'static>>,
10266            _: (),
10267        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10268            ::fidl_next::munge!(let crate::wire::UseConfiguration { table } = out);
10269
10270            let max_ord = self.__max_ordinal();
10271
10272            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
10273            ::fidl_next::Wire::zero_padding(&mut out);
10274
10275            let mut preallocated =
10276                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
10277
10278            for i in 1..=max_ord {
10279                match i {
10280                    7 => {
10281                        if let Some(value) = self.source_dictionary.take() {
10282                            ::fidl_next::WireEnvelope::encode_value::<
10283                                ::fidl_next::WireString<'static>,
10284                                ___E,
10285                            >(
10286                                value, preallocated.encoder, &mut out, 1024
10287                            )?;
10288                        } else {
10289                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10290                        }
10291                    }
10292
10293                    6 => {
10294                        if let Some(value) = self.default.take() {
10295                            ::fidl_next::WireEnvelope::encode_value::<
10296                                crate::wire::ConfigValue<'static>,
10297                                ___E,
10298                            >(
10299                                value, preallocated.encoder, &mut out, ()
10300                            )?;
10301                        } else {
10302                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10303                        }
10304                    }
10305
10306                    5 => {
10307                        if let Some(value) = self.type_.take() {
10308                            ::fidl_next::WireEnvelope::encode_value::<
10309                                crate::wire::ConfigType<'static>,
10310                                ___E,
10311                            >(
10312                                value, preallocated.encoder, &mut out, ()
10313                            )?;
10314                        } else {
10315                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10316                        }
10317                    }
10318
10319                    4 => {
10320                        if let Some(value) = self.availability.take() {
10321                            ::fidl_next::WireEnvelope::encode_value::<
10322                                crate::wire::Availability,
10323                                ___E,
10324                            >(
10325                                value, preallocated.encoder, &mut out, ()
10326                            )?;
10327                        } else {
10328                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10329                        }
10330                    }
10331
10332                    3 => {
10333                        if let Some(value) = self.target_name.take() {
10334                            ::fidl_next::WireEnvelope::encode_value::<
10335                                ::fidl_next::WireString<'static>,
10336                                ___E,
10337                            >(
10338                                value, preallocated.encoder, &mut out, 100
10339                            )?;
10340                        } else {
10341                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10342                        }
10343                    }
10344
10345                    2 => {
10346                        if let Some(value) = self.source_name.take() {
10347                            ::fidl_next::WireEnvelope::encode_value::<
10348                                ::fidl_next::WireString<'static>,
10349                                ___E,
10350                            >(
10351                                value, preallocated.encoder, &mut out, 100
10352                            )?;
10353                        } else {
10354                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10355                        }
10356                    }
10357
10358                    1 => {
10359                        if let Some(value) = self.source.take() {
10360                            ::fidl_next::WireEnvelope::encode_value::<
10361                                crate::wire::Ref<'static>,
10362                                ___E,
10363                            >(
10364                                value, preallocated.encoder, &mut out, ()
10365                            )?;
10366                        } else {
10367                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10368                        }
10369                    }
10370
10371                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
10372                }
10373                unsafe {
10374                    preallocated.write_next(out.assume_init_ref());
10375                }
10376            }
10377
10378            ::fidl_next::WireTable::encode_len(table, max_ord);
10379
10380            Ok(())
10381        }
10382    }
10383
10384    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseConfiguration<'static>, ___E>
10385        for &'a UseConfiguration
10386    where
10387        ___E: ::fidl_next::Encoder + ?Sized,
10388    {
10389        #[inline]
10390        fn encode(
10391            self,
10392            encoder: &mut ___E,
10393            out: &mut ::core::mem::MaybeUninit<crate::wire::UseConfiguration<'static>>,
10394            _: (),
10395        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10396            ::fidl_next::munge!(let crate::wire::UseConfiguration { table } = out);
10397
10398            let max_ord = self.__max_ordinal();
10399
10400            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
10401            ::fidl_next::Wire::zero_padding(&mut out);
10402
10403            let mut preallocated =
10404                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
10405
10406            for i in 1..=max_ord {
10407                match i {
10408                    7 => {
10409                        if let Some(value) = &self.source_dictionary {
10410                            ::fidl_next::WireEnvelope::encode_value::<
10411                                ::fidl_next::WireString<'static>,
10412                                ___E,
10413                            >(
10414                                value, preallocated.encoder, &mut out, 1024
10415                            )?;
10416                        } else {
10417                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10418                        }
10419                    }
10420
10421                    6 => {
10422                        if let Some(value) = &self.default {
10423                            ::fidl_next::WireEnvelope::encode_value::<
10424                                crate::wire::ConfigValue<'static>,
10425                                ___E,
10426                            >(
10427                                value, preallocated.encoder, &mut out, ()
10428                            )?;
10429                        } else {
10430                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10431                        }
10432                    }
10433
10434                    5 => {
10435                        if let Some(value) = &self.type_ {
10436                            ::fidl_next::WireEnvelope::encode_value::<
10437                                crate::wire::ConfigType<'static>,
10438                                ___E,
10439                            >(
10440                                value, preallocated.encoder, &mut out, ()
10441                            )?;
10442                        } else {
10443                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10444                        }
10445                    }
10446
10447                    4 => {
10448                        if let Some(value) = &self.availability {
10449                            ::fidl_next::WireEnvelope::encode_value::<
10450                                crate::wire::Availability,
10451                                ___E,
10452                            >(
10453                                value, preallocated.encoder, &mut out, ()
10454                            )?;
10455                        } else {
10456                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10457                        }
10458                    }
10459
10460                    3 => {
10461                        if let Some(value) = &self.target_name {
10462                            ::fidl_next::WireEnvelope::encode_value::<
10463                                ::fidl_next::WireString<'static>,
10464                                ___E,
10465                            >(
10466                                value, preallocated.encoder, &mut out, 100
10467                            )?;
10468                        } else {
10469                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10470                        }
10471                    }
10472
10473                    2 => {
10474                        if let Some(value) = &self.source_name {
10475                            ::fidl_next::WireEnvelope::encode_value::<
10476                                ::fidl_next::WireString<'static>,
10477                                ___E,
10478                            >(
10479                                value, preallocated.encoder, &mut out, 100
10480                            )?;
10481                        } else {
10482                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10483                        }
10484                    }
10485
10486                    1 => {
10487                        if let Some(value) = &self.source {
10488                            ::fidl_next::WireEnvelope::encode_value::<
10489                                crate::wire::Ref<'static>,
10490                                ___E,
10491                            >(
10492                                value, preallocated.encoder, &mut out, ()
10493                            )?;
10494                        } else {
10495                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10496                        }
10497                    }
10498
10499                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
10500                }
10501                unsafe {
10502                    preallocated.write_next(out.assume_init_ref());
10503                }
10504            }
10505
10506            ::fidl_next::WireTable::encode_len(table, max_ord);
10507
10508            Ok(())
10509        }
10510    }
10511
10512    impl<'de> ::fidl_next::FromWire<crate::wire::UseConfiguration<'de>> for UseConfiguration {
10513        #[inline]
10514        fn from_wire(wire_: crate::wire::UseConfiguration<'de>) -> Self {
10515            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
10516
10517            let source = wire_.table.get(1);
10518
10519            let source_name = wire_.table.get(2);
10520
10521            let target_name = wire_.table.get(3);
10522
10523            let availability = wire_.table.get(4);
10524
10525            let type_ = wire_.table.get(5);
10526
10527            let default = wire_.table.get(6);
10528
10529            let source_dictionary = wire_.table.get(7);
10530
10531            Self {
10532                source: source.map(|envelope| {
10533                    ::fidl_next::FromWire::from_wire(unsafe {
10534                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
10535                    })
10536                }),
10537
10538                source_name: source_name.map(|envelope| {
10539                    ::fidl_next::FromWire::from_wire(unsafe {
10540                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10541                    })
10542                }),
10543
10544                target_name: target_name.map(|envelope| {
10545                    ::fidl_next::FromWire::from_wire(unsafe {
10546                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10547                    })
10548                }),
10549
10550                availability: availability.map(|envelope| {
10551                    ::fidl_next::FromWire::from_wire(unsafe {
10552                        envelope.read_unchecked::<crate::wire::Availability>()
10553                    })
10554                }),
10555
10556                type_: type_.map(|envelope| {
10557                    ::fidl_next::FromWire::from_wire(unsafe {
10558                        envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
10559                    })
10560                }),
10561
10562                default: default.map(|envelope| {
10563                    ::fidl_next::FromWire::from_wire(unsafe {
10564                        envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
10565                    })
10566                }),
10567
10568                source_dictionary: source_dictionary.map(|envelope| {
10569                    ::fidl_next::FromWire::from_wire(unsafe {
10570                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10571                    })
10572                }),
10573            }
10574        }
10575    }
10576
10577    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseConfiguration<'de>> for UseConfiguration {
10578        #[inline]
10579        fn from_wire_ref(wire: &crate::wire::UseConfiguration<'de>) -> Self {
10580            Self {
10581                source: wire.table.get(1).map(|envelope| {
10582                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10583                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
10584                    })
10585                }),
10586
10587                source_name: wire.table.get(2).map(|envelope| {
10588                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10589                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10590                    })
10591                }),
10592
10593                target_name: wire.table.get(3).map(|envelope| {
10594                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10595                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10596                    })
10597                }),
10598
10599                availability: wire.table.get(4).map(|envelope| {
10600                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10601                        envelope.deref_unchecked::<crate::wire::Availability>()
10602                    })
10603                }),
10604
10605                type_: wire.table.get(5).map(|envelope| {
10606                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10607                        envelope.deref_unchecked::<crate::wire::ConfigType<'de>>()
10608                    })
10609                }),
10610
10611                default: wire.table.get(6).map(|envelope| {
10612                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10613                        envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
10614                    })
10615                }),
10616
10617                source_dictionary: wire.table.get(7).map(|envelope| {
10618                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10619                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10620                    })
10621                }),
10622            }
10623        }
10624    }
10625
10626    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10627    pub struct UseDictionary {
10628        pub source: ::core::option::Option<crate::natural::Ref>,
10629
10630        pub source_name: ::core::option::Option<::std::string::String>,
10631
10632        pub target_path: ::core::option::Option<::std::string::String>,
10633
10634        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
10635
10636        pub availability: ::core::option::Option<crate::natural::Availability>,
10637
10638        pub source_dictionary: ::core::option::Option<::std::string::String>,
10639    }
10640
10641    impl UseDictionary {
10642        fn __max_ordinal(&self) -> usize {
10643            if self.source_dictionary.is_some() {
10644                return 8;
10645            }
10646
10647            if self.availability.is_some() {
10648                return 7;
10649            }
10650
10651            if self.dependency_type.is_some() {
10652                return 6;
10653            }
10654
10655            if self.target_path.is_some() {
10656                return 3;
10657            }
10658
10659            if self.source_name.is_some() {
10660                return 2;
10661            }
10662
10663            if self.source.is_some() {
10664                return 1;
10665            }
10666
10667            0
10668        }
10669    }
10670
10671    unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseDictionary<'static>, ___E> for UseDictionary
10672    where
10673        ___E: ::fidl_next::Encoder + ?Sized,
10674    {
10675        #[inline]
10676        fn encode(
10677            mut self,
10678            encoder: &mut ___E,
10679            out: &mut ::core::mem::MaybeUninit<crate::wire::UseDictionary<'static>>,
10680            _: (),
10681        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10682            ::fidl_next::munge!(let crate::wire::UseDictionary { table } = out);
10683
10684            let max_ord = self.__max_ordinal();
10685
10686            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
10687            ::fidl_next::Wire::zero_padding(&mut out);
10688
10689            let mut preallocated =
10690                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
10691
10692            for i in 1..=max_ord {
10693                match i {
10694                    8 => {
10695                        if let Some(value) = self.source_dictionary.take() {
10696                            ::fidl_next::WireEnvelope::encode_value::<
10697                                ::fidl_next::WireString<'static>,
10698                                ___E,
10699                            >(
10700                                value, preallocated.encoder, &mut out, 1024
10701                            )?;
10702                        } else {
10703                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10704                        }
10705                    }
10706
10707                    7 => {
10708                        if let Some(value) = self.availability.take() {
10709                            ::fidl_next::WireEnvelope::encode_value::<
10710                                crate::wire::Availability,
10711                                ___E,
10712                            >(
10713                                value, preallocated.encoder, &mut out, ()
10714                            )?;
10715                        } else {
10716                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10717                        }
10718                    }
10719
10720                    6 => {
10721                        if let Some(value) = self.dependency_type.take() {
10722                            ::fidl_next::WireEnvelope::encode_value::<
10723                                crate::wire::DependencyType,
10724                                ___E,
10725                            >(
10726                                value, preallocated.encoder, &mut out, ()
10727                            )?;
10728                        } else {
10729                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10730                        }
10731                    }
10732
10733                    3 => {
10734                        if let Some(value) = self.target_path.take() {
10735                            ::fidl_next::WireEnvelope::encode_value::<
10736                                ::fidl_next::WireString<'static>,
10737                                ___E,
10738                            >(
10739                                value, preallocated.encoder, &mut out, 1024
10740                            )?;
10741                        } else {
10742                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10743                        }
10744                    }
10745
10746                    2 => {
10747                        if let Some(value) = self.source_name.take() {
10748                            ::fidl_next::WireEnvelope::encode_value::<
10749                                ::fidl_next::WireString<'static>,
10750                                ___E,
10751                            >(
10752                                value, preallocated.encoder, &mut out, 100
10753                            )?;
10754                        } else {
10755                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10756                        }
10757                    }
10758
10759                    1 => {
10760                        if let Some(value) = self.source.take() {
10761                            ::fidl_next::WireEnvelope::encode_value::<
10762                                crate::wire::Ref<'static>,
10763                                ___E,
10764                            >(
10765                                value, preallocated.encoder, &mut out, ()
10766                            )?;
10767                        } else {
10768                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10769                        }
10770                    }
10771
10772                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
10773                }
10774                unsafe {
10775                    preallocated.write_next(out.assume_init_ref());
10776                }
10777            }
10778
10779            ::fidl_next::WireTable::encode_len(table, max_ord);
10780
10781            Ok(())
10782        }
10783    }
10784
10785    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseDictionary<'static>, ___E>
10786        for &'a UseDictionary
10787    where
10788        ___E: ::fidl_next::Encoder + ?Sized,
10789    {
10790        #[inline]
10791        fn encode(
10792            self,
10793            encoder: &mut ___E,
10794            out: &mut ::core::mem::MaybeUninit<crate::wire::UseDictionary<'static>>,
10795            _: (),
10796        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10797            ::fidl_next::munge!(let crate::wire::UseDictionary { table } = out);
10798
10799            let max_ord = self.__max_ordinal();
10800
10801            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
10802            ::fidl_next::Wire::zero_padding(&mut out);
10803
10804            let mut preallocated =
10805                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
10806
10807            for i in 1..=max_ord {
10808                match i {
10809                    8 => {
10810                        if let Some(value) = &self.source_dictionary {
10811                            ::fidl_next::WireEnvelope::encode_value::<
10812                                ::fidl_next::WireString<'static>,
10813                                ___E,
10814                            >(
10815                                value, preallocated.encoder, &mut out, 1024
10816                            )?;
10817                        } else {
10818                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10819                        }
10820                    }
10821
10822                    7 => {
10823                        if let Some(value) = &self.availability {
10824                            ::fidl_next::WireEnvelope::encode_value::<
10825                                crate::wire::Availability,
10826                                ___E,
10827                            >(
10828                                value, preallocated.encoder, &mut out, ()
10829                            )?;
10830                        } else {
10831                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10832                        }
10833                    }
10834
10835                    6 => {
10836                        if let Some(value) = &self.dependency_type {
10837                            ::fidl_next::WireEnvelope::encode_value::<
10838                                crate::wire::DependencyType,
10839                                ___E,
10840                            >(
10841                                value, preallocated.encoder, &mut out, ()
10842                            )?;
10843                        } else {
10844                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10845                        }
10846                    }
10847
10848                    3 => {
10849                        if let Some(value) = &self.target_path {
10850                            ::fidl_next::WireEnvelope::encode_value::<
10851                                ::fidl_next::WireString<'static>,
10852                                ___E,
10853                            >(
10854                                value, preallocated.encoder, &mut out, 1024
10855                            )?;
10856                        } else {
10857                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10858                        }
10859                    }
10860
10861                    2 => {
10862                        if let Some(value) = &self.source_name {
10863                            ::fidl_next::WireEnvelope::encode_value::<
10864                                ::fidl_next::WireString<'static>,
10865                                ___E,
10866                            >(
10867                                value, preallocated.encoder, &mut out, 100
10868                            )?;
10869                        } else {
10870                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10871                        }
10872                    }
10873
10874                    1 => {
10875                        if let Some(value) = &self.source {
10876                            ::fidl_next::WireEnvelope::encode_value::<
10877                                crate::wire::Ref<'static>,
10878                                ___E,
10879                            >(
10880                                value, preallocated.encoder, &mut out, ()
10881                            )?;
10882                        } else {
10883                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
10884                        }
10885                    }
10886
10887                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
10888                }
10889                unsafe {
10890                    preallocated.write_next(out.assume_init_ref());
10891                }
10892            }
10893
10894            ::fidl_next::WireTable::encode_len(table, max_ord);
10895
10896            Ok(())
10897        }
10898    }
10899
10900    impl<'de> ::fidl_next::FromWire<crate::wire::UseDictionary<'de>> for UseDictionary {
10901        #[inline]
10902        fn from_wire(wire_: crate::wire::UseDictionary<'de>) -> Self {
10903            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
10904
10905            let source = wire_.table.get(1);
10906
10907            let source_name = wire_.table.get(2);
10908
10909            let target_path = wire_.table.get(3);
10910
10911            let dependency_type = wire_.table.get(6);
10912
10913            let availability = wire_.table.get(7);
10914
10915            let source_dictionary = wire_.table.get(8);
10916
10917            Self {
10918                source: source.map(|envelope| {
10919                    ::fidl_next::FromWire::from_wire(unsafe {
10920                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
10921                    })
10922                }),
10923
10924                source_name: source_name.map(|envelope| {
10925                    ::fidl_next::FromWire::from_wire(unsafe {
10926                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10927                    })
10928                }),
10929
10930                target_path: target_path.map(|envelope| {
10931                    ::fidl_next::FromWire::from_wire(unsafe {
10932                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10933                    })
10934                }),
10935
10936                dependency_type: dependency_type.map(|envelope| {
10937                    ::fidl_next::FromWire::from_wire(unsafe {
10938                        envelope.read_unchecked::<crate::wire::DependencyType>()
10939                    })
10940                }),
10941
10942                availability: availability.map(|envelope| {
10943                    ::fidl_next::FromWire::from_wire(unsafe {
10944                        envelope.read_unchecked::<crate::wire::Availability>()
10945                    })
10946                }),
10947
10948                source_dictionary: source_dictionary.map(|envelope| {
10949                    ::fidl_next::FromWire::from_wire(unsafe {
10950                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
10951                    })
10952                }),
10953            }
10954        }
10955    }
10956
10957    impl<'de> ::fidl_next::FromWireRef<crate::wire::UseDictionary<'de>> for UseDictionary {
10958        #[inline]
10959        fn from_wire_ref(wire: &crate::wire::UseDictionary<'de>) -> Self {
10960            Self {
10961                source: wire.table.get(1).map(|envelope| {
10962                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10963                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
10964                    })
10965                }),
10966
10967                source_name: wire.table.get(2).map(|envelope| {
10968                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10969                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10970                    })
10971                }),
10972
10973                target_path: wire.table.get(3).map(|envelope| {
10974                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10975                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10976                    })
10977                }),
10978
10979                dependency_type: wire.table.get(6).map(|envelope| {
10980                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10981                        envelope.deref_unchecked::<crate::wire::DependencyType>()
10982                    })
10983                }),
10984
10985                availability: wire.table.get(7).map(|envelope| {
10986                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10987                        envelope.deref_unchecked::<crate::wire::Availability>()
10988                    })
10989                }),
10990
10991                source_dictionary: wire.table.get(8).map(|envelope| {
10992                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10993                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
10994                    })
10995                }),
10996            }
10997        }
10998    }
10999
11000    #[doc = " Declares a capability used by a component, which was offered to it.\n"]
11001    #[derive(Debug, PartialEq)]
11002    pub enum Use {
11003        Service(crate::natural::UseService),
11004
11005        Protocol(crate::natural::UseProtocol),
11006
11007        Directory(crate::natural::UseDirectory),
11008
11009        Storage(crate::natural::UseStorage),
11010
11011        EventStream(crate::natural::UseEventStream),
11012
11013        Runner(crate::natural::UseRunner),
11014
11015        Config(crate::natural::UseConfiguration),
11016
11017        Dictionary(crate::natural::UseDictionary),
11018
11019        UnknownOrdinal_(u64),
11020    }
11021
11022    impl Use {
11023        pub fn is_unknown(&self) -> bool {
11024            #[allow(unreachable_patterns)]
11025            match self {
11026                Self::UnknownOrdinal_(_) => true,
11027                _ => false,
11028            }
11029        }
11030    }
11031
11032    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Use<'static>, ___E> for Use
11033    where
11034        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
11035        ___E: ::fidl_next::Encoder,
11036    {
11037        #[inline]
11038        fn encode(
11039            self,
11040            encoder: &mut ___E,
11041            out: &mut ::core::mem::MaybeUninit<crate::wire::Use<'static>>,
11042            _: (),
11043        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11044            ::fidl_next::munge!(let crate::wire::Use { raw, _phantom: _ } = out);
11045
11046            match self {
11047                Self::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
11048                    ___E,
11049                    crate::wire::UseService<'static>,
11050                >(value, 1, encoder, raw, ())?,
11051
11052                Self::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
11053                    ___E,
11054                    crate::wire::UseProtocol<'static>,
11055                >(value, 2, encoder, raw, ())?,
11056
11057                Self::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
11058                    ___E,
11059                    crate::wire::UseDirectory<'static>,
11060                >(value, 3, encoder, raw, ())?,
11061
11062                Self::Storage(value) => ::fidl_next::RawWireUnion::encode_as::<
11063                    ___E,
11064                    crate::wire::UseStorage<'static>,
11065                >(value, 4, encoder, raw, ())?,
11066
11067                Self::EventStream(value) => ::fidl_next::RawWireUnion::encode_as::<
11068                    ___E,
11069                    crate::wire::UseEventStream<'static>,
11070                >(value, 7, encoder, raw, ())?,
11071
11072                Self::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
11073                    ___E,
11074                    crate::wire::UseRunner<'static>,
11075                >(value, 8, encoder, raw, ())?,
11076
11077                Self::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
11078                    ___E,
11079                    crate::wire::UseConfiguration<'static>,
11080                >(value, 9, encoder, raw, ())?,
11081
11082                Self::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
11083                    ___E,
11084                    crate::wire::UseDictionary<'static>,
11085                >(value, 10, encoder, raw, ())?,
11086
11087                Self::UnknownOrdinal_(ordinal) => {
11088                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
11089                }
11090            }
11091
11092            Ok(())
11093        }
11094    }
11095
11096    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Use<'static>, ___E> for &'a Use
11097    where
11098        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
11099        ___E: ::fidl_next::Encoder,
11100    {
11101        #[inline]
11102        fn encode(
11103            self,
11104            encoder: &mut ___E,
11105            out: &mut ::core::mem::MaybeUninit<crate::wire::Use<'static>>,
11106            _: (),
11107        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11108            ::fidl_next::munge!(let crate::wire::Use { raw, _phantom: _ } = out);
11109
11110            match self {
11111                Use::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
11112                    ___E,
11113                    crate::wire::UseService<'static>,
11114                >(value, 1, encoder, raw, ())?,
11115
11116                Use::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
11117                    ___E,
11118                    crate::wire::UseProtocol<'static>,
11119                >(value, 2, encoder, raw, ())?,
11120
11121                Use::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
11122                    ___E,
11123                    crate::wire::UseDirectory<'static>,
11124                >(value, 3, encoder, raw, ())?,
11125
11126                Use::Storage(value) => ::fidl_next::RawWireUnion::encode_as::<
11127                    ___E,
11128                    crate::wire::UseStorage<'static>,
11129                >(value, 4, encoder, raw, ())?,
11130
11131                Use::EventStream(value) => ::fidl_next::RawWireUnion::encode_as::<
11132                    ___E,
11133                    crate::wire::UseEventStream<'static>,
11134                >(value, 7, encoder, raw, ())?,
11135
11136                Use::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
11137                    ___E,
11138                    crate::wire::UseRunner<'static>,
11139                >(value, 8, encoder, raw, ())?,
11140
11141                Use::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
11142                    ___E,
11143                    crate::wire::UseConfiguration<'static>,
11144                >(value, 9, encoder, raw, ())?,
11145
11146                Use::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
11147                    ___E,
11148                    crate::wire::UseDictionary<'static>,
11149                >(value, 10, encoder, raw, ())?,
11150
11151                Use::UnknownOrdinal_(ordinal) => {
11152                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
11153                }
11154            }
11155
11156            Ok(())
11157        }
11158    }
11159
11160    unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Use<'static>, ___E> for Use
11161    where
11162        ___E: ?Sized,
11163        Use: ::fidl_next::Encode<crate::wire::Use<'static>, ___E>,
11164    {
11165        #[inline]
11166        fn encode_option(
11167            this: ::core::option::Option<Self>,
11168            encoder: &mut ___E,
11169            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Use<'static>>,
11170            _: (),
11171        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11172            ::fidl_next::munge!(let crate::wire_optional::Use { raw, _phantom: _ } = &mut *out);
11173
11174            if let Some(inner) = this {
11175                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
11176                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
11177            } else {
11178                ::fidl_next::RawWireUnion::encode_absent(raw);
11179            }
11180
11181            Ok(())
11182        }
11183    }
11184
11185    unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Use<'static>, ___E>
11186        for &'a Use
11187    where
11188        ___E: ?Sized,
11189        &'a Use: ::fidl_next::Encode<crate::wire::Use<'static>, ___E>,
11190    {
11191        #[inline]
11192        fn encode_option(
11193            this: ::core::option::Option<Self>,
11194            encoder: &mut ___E,
11195            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Use<'static>>,
11196            _: (),
11197        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11198            ::fidl_next::munge!(let crate::wire_optional::Use { raw, _phantom: _ } = &mut *out);
11199
11200            if let Some(inner) = this {
11201                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
11202                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
11203            } else {
11204                ::fidl_next::RawWireUnion::encode_absent(raw);
11205            }
11206
11207            Ok(())
11208        }
11209    }
11210
11211    impl<'de> ::fidl_next::FromWire<crate::wire::Use<'de>> for Use {
11212        #[inline]
11213        fn from_wire(wire: crate::wire::Use<'de>) -> Self {
11214            let wire = ::core::mem::ManuallyDrop::new(wire);
11215            match wire.raw.ordinal() {
11216                1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
11217                    wire.raw.get().read_unchecked::<crate::wire::UseService<'de>>()
11218                })),
11219
11220                2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
11221                    wire.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>()
11222                })),
11223
11224                3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
11225                    wire.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
11226                })),
11227
11228                4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
11229                    wire.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>()
11230                })),
11231
11232                7 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
11233                    wire.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
11234                })),
11235
11236                8 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
11237                    wire.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>()
11238                })),
11239
11240                9 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
11241                    wire.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
11242                })),
11243
11244                10 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
11245                    wire.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
11246                })),
11247
11248                ord => return Self::UnknownOrdinal_(ord as u64),
11249            }
11250        }
11251    }
11252
11253    impl<'de> ::fidl_next::FromWireRef<crate::wire::Use<'de>> for Use {
11254        #[inline]
11255        fn from_wire_ref(wire: &crate::wire::Use<'de>) -> Self {
11256            match wire.raw.ordinal() {
11257                1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11258                    wire.raw.get().deref_unchecked::<crate::wire::UseService<'de>>()
11259                })),
11260
11261                2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11262                    wire.raw.get().deref_unchecked::<crate::wire::UseProtocol<'de>>()
11263                })),
11264
11265                3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11266                    wire.raw.get().deref_unchecked::<crate::wire::UseDirectory<'de>>()
11267                })),
11268
11269                4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11270                    wire.raw.get().deref_unchecked::<crate::wire::UseStorage<'de>>()
11271                })),
11272
11273                7 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11274                    wire.raw.get().deref_unchecked::<crate::wire::UseEventStream<'de>>()
11275                })),
11276
11277                8 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11278                    wire.raw.get().deref_unchecked::<crate::wire::UseRunner<'de>>()
11279                })),
11280
11281                9 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11282                    wire.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'de>>()
11283                })),
11284
11285                10 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
11286                    wire.raw.get().deref_unchecked::<crate::wire::UseDictionary<'de>>()
11287                })),
11288
11289                ord => return Self::UnknownOrdinal_(ord as u64),
11290            }
11291        }
11292    }
11293
11294    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>> for Use {
11295        #[inline]
11296        fn from_wire_option(wire: crate::wire_optional::Use<'de>) -> ::core::option::Option<Self> {
11297            if let Some(inner) = wire.into_option() {
11298                Some(::fidl_next::FromWire::from_wire(inner))
11299            } else {
11300                None
11301            }
11302        }
11303    }
11304
11305    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>> for Box<Use> {
11306        #[inline]
11307        fn from_wire_option(wire: crate::wire_optional::Use<'de>) -> ::core::option::Option<Self> {
11308            <Use as ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>>>::from_wire_option(
11309                wire,
11310            )
11311            .map(Box::new)
11312        }
11313    }
11314
11315    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Use<'de>> for Box<Use> {
11316        #[inline]
11317        fn from_wire_option_ref(
11318            wire: &crate::wire_optional::Use<'de>,
11319        ) -> ::core::option::Option<Self> {
11320            if let Some(inner) = wire.as_ref() {
11321                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
11322            } else {
11323                None
11324            }
11325        }
11326    }
11327
11328    #[doc = " Declares a service exposed to a component\'s containing realm, such as a\n service exposed by the component or one of its children at runtime.\n\n To learn more about services, see:\n https://fuchsia.dev/fuchsia-src/glossary#service\n"]
11329    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
11330    pub struct ExposeService {
11331        pub source: ::core::option::Option<crate::natural::Ref>,
11332
11333        pub source_name: ::core::option::Option<::std::string::String>,
11334
11335        pub target: ::core::option::Option<crate::natural::Ref>,
11336
11337        pub target_name: ::core::option::Option<::std::string::String>,
11338
11339        pub availability: ::core::option::Option<crate::natural::Availability>,
11340
11341        pub source_dictionary: ::core::option::Option<::std::string::String>,
11342    }
11343
11344    impl ExposeService {
11345        fn __max_ordinal(&self) -> usize {
11346            if self.source_dictionary.is_some() {
11347                return 6;
11348            }
11349
11350            if self.availability.is_some() {
11351                return 5;
11352            }
11353
11354            if self.target_name.is_some() {
11355                return 4;
11356            }
11357
11358            if self.target.is_some() {
11359                return 3;
11360            }
11361
11362            if self.source_name.is_some() {
11363                return 2;
11364            }
11365
11366            if self.source.is_some() {
11367                return 1;
11368            }
11369
11370            0
11371        }
11372    }
11373
11374    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeService<'static>, ___E> for ExposeService
11375    where
11376        ___E: ::fidl_next::Encoder + ?Sized,
11377    {
11378        #[inline]
11379        fn encode(
11380            mut self,
11381            encoder: &mut ___E,
11382            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeService<'static>>,
11383            _: (),
11384        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11385            ::fidl_next::munge!(let crate::wire::ExposeService { table } = out);
11386
11387            let max_ord = self.__max_ordinal();
11388
11389            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
11390            ::fidl_next::Wire::zero_padding(&mut out);
11391
11392            let mut preallocated =
11393                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
11394
11395            for i in 1..=max_ord {
11396                match i {
11397                    6 => {
11398                        if let Some(value) = self.source_dictionary.take() {
11399                            ::fidl_next::WireEnvelope::encode_value::<
11400                                ::fidl_next::WireString<'static>,
11401                                ___E,
11402                            >(
11403                                value, preallocated.encoder, &mut out, 1024
11404                            )?;
11405                        } else {
11406                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11407                        }
11408                    }
11409
11410                    5 => {
11411                        if let Some(value) = self.availability.take() {
11412                            ::fidl_next::WireEnvelope::encode_value::<
11413                                crate::wire::Availability,
11414                                ___E,
11415                            >(
11416                                value, preallocated.encoder, &mut out, ()
11417                            )?;
11418                        } else {
11419                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11420                        }
11421                    }
11422
11423                    4 => {
11424                        if let Some(value) = self.target_name.take() {
11425                            ::fidl_next::WireEnvelope::encode_value::<
11426                                ::fidl_next::WireString<'static>,
11427                                ___E,
11428                            >(
11429                                value, preallocated.encoder, &mut out, 100
11430                            )?;
11431                        } else {
11432                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11433                        }
11434                    }
11435
11436                    3 => {
11437                        if let Some(value) = self.target.take() {
11438                            ::fidl_next::WireEnvelope::encode_value::<
11439                                crate::wire::Ref<'static>,
11440                                ___E,
11441                            >(
11442                                value, preallocated.encoder, &mut out, ()
11443                            )?;
11444                        } else {
11445                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11446                        }
11447                    }
11448
11449                    2 => {
11450                        if let Some(value) = self.source_name.take() {
11451                            ::fidl_next::WireEnvelope::encode_value::<
11452                                ::fidl_next::WireString<'static>,
11453                                ___E,
11454                            >(
11455                                value, preallocated.encoder, &mut out, 100
11456                            )?;
11457                        } else {
11458                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11459                        }
11460                    }
11461
11462                    1 => {
11463                        if let Some(value) = self.source.take() {
11464                            ::fidl_next::WireEnvelope::encode_value::<
11465                                crate::wire::Ref<'static>,
11466                                ___E,
11467                            >(
11468                                value, preallocated.encoder, &mut out, ()
11469                            )?;
11470                        } else {
11471                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11472                        }
11473                    }
11474
11475                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
11476                }
11477                unsafe {
11478                    preallocated.write_next(out.assume_init_ref());
11479                }
11480            }
11481
11482            ::fidl_next::WireTable::encode_len(table, max_ord);
11483
11484            Ok(())
11485        }
11486    }
11487
11488    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeService<'static>, ___E>
11489        for &'a ExposeService
11490    where
11491        ___E: ::fidl_next::Encoder + ?Sized,
11492    {
11493        #[inline]
11494        fn encode(
11495            self,
11496            encoder: &mut ___E,
11497            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeService<'static>>,
11498            _: (),
11499        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11500            ::fidl_next::munge!(let crate::wire::ExposeService { table } = out);
11501
11502            let max_ord = self.__max_ordinal();
11503
11504            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
11505            ::fidl_next::Wire::zero_padding(&mut out);
11506
11507            let mut preallocated =
11508                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
11509
11510            for i in 1..=max_ord {
11511                match i {
11512                    6 => {
11513                        if let Some(value) = &self.source_dictionary {
11514                            ::fidl_next::WireEnvelope::encode_value::<
11515                                ::fidl_next::WireString<'static>,
11516                                ___E,
11517                            >(
11518                                value, preallocated.encoder, &mut out, 1024
11519                            )?;
11520                        } else {
11521                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11522                        }
11523                    }
11524
11525                    5 => {
11526                        if let Some(value) = &self.availability {
11527                            ::fidl_next::WireEnvelope::encode_value::<
11528                                crate::wire::Availability,
11529                                ___E,
11530                            >(
11531                                value, preallocated.encoder, &mut out, ()
11532                            )?;
11533                        } else {
11534                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11535                        }
11536                    }
11537
11538                    4 => {
11539                        if let Some(value) = &self.target_name {
11540                            ::fidl_next::WireEnvelope::encode_value::<
11541                                ::fidl_next::WireString<'static>,
11542                                ___E,
11543                            >(
11544                                value, preallocated.encoder, &mut out, 100
11545                            )?;
11546                        } else {
11547                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11548                        }
11549                    }
11550
11551                    3 => {
11552                        if let Some(value) = &self.target {
11553                            ::fidl_next::WireEnvelope::encode_value::<
11554                                crate::wire::Ref<'static>,
11555                                ___E,
11556                            >(
11557                                value, preallocated.encoder, &mut out, ()
11558                            )?;
11559                        } else {
11560                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11561                        }
11562                    }
11563
11564                    2 => {
11565                        if let Some(value) = &self.source_name {
11566                            ::fidl_next::WireEnvelope::encode_value::<
11567                                ::fidl_next::WireString<'static>,
11568                                ___E,
11569                            >(
11570                                value, preallocated.encoder, &mut out, 100
11571                            )?;
11572                        } else {
11573                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11574                        }
11575                    }
11576
11577                    1 => {
11578                        if let Some(value) = &self.source {
11579                            ::fidl_next::WireEnvelope::encode_value::<
11580                                crate::wire::Ref<'static>,
11581                                ___E,
11582                            >(
11583                                value, preallocated.encoder, &mut out, ()
11584                            )?;
11585                        } else {
11586                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11587                        }
11588                    }
11589
11590                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
11591                }
11592                unsafe {
11593                    preallocated.write_next(out.assume_init_ref());
11594                }
11595            }
11596
11597            ::fidl_next::WireTable::encode_len(table, max_ord);
11598
11599            Ok(())
11600        }
11601    }
11602
11603    impl<'de> ::fidl_next::FromWire<crate::wire::ExposeService<'de>> for ExposeService {
11604        #[inline]
11605        fn from_wire(wire_: crate::wire::ExposeService<'de>) -> Self {
11606            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
11607
11608            let source = wire_.table.get(1);
11609
11610            let source_name = wire_.table.get(2);
11611
11612            let target = wire_.table.get(3);
11613
11614            let target_name = wire_.table.get(4);
11615
11616            let availability = wire_.table.get(5);
11617
11618            let source_dictionary = wire_.table.get(6);
11619
11620            Self {
11621                source: source.map(|envelope| {
11622                    ::fidl_next::FromWire::from_wire(unsafe {
11623                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
11624                    })
11625                }),
11626
11627                source_name: source_name.map(|envelope| {
11628                    ::fidl_next::FromWire::from_wire(unsafe {
11629                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
11630                    })
11631                }),
11632
11633                target: target.map(|envelope| {
11634                    ::fidl_next::FromWire::from_wire(unsafe {
11635                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
11636                    })
11637                }),
11638
11639                target_name: target_name.map(|envelope| {
11640                    ::fidl_next::FromWire::from_wire(unsafe {
11641                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
11642                    })
11643                }),
11644
11645                availability: availability.map(|envelope| {
11646                    ::fidl_next::FromWire::from_wire(unsafe {
11647                        envelope.read_unchecked::<crate::wire::Availability>()
11648                    })
11649                }),
11650
11651                source_dictionary: source_dictionary.map(|envelope| {
11652                    ::fidl_next::FromWire::from_wire(unsafe {
11653                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
11654                    })
11655                }),
11656            }
11657        }
11658    }
11659
11660    impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeService<'de>> for ExposeService {
11661        #[inline]
11662        fn from_wire_ref(wire: &crate::wire::ExposeService<'de>) -> Self {
11663            Self {
11664                source: wire.table.get(1).map(|envelope| {
11665                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11666                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11667                    })
11668                }),
11669
11670                source_name: wire.table.get(2).map(|envelope| {
11671                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11672                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
11673                    })
11674                }),
11675
11676                target: wire.table.get(3).map(|envelope| {
11677                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11678                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11679                    })
11680                }),
11681
11682                target_name: wire.table.get(4).map(|envelope| {
11683                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11684                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
11685                    })
11686                }),
11687
11688                availability: wire.table.get(5).map(|envelope| {
11689                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11690                        envelope.deref_unchecked::<crate::wire::Availability>()
11691                    })
11692                }),
11693
11694                source_dictionary: wire.table.get(6).map(|envelope| {
11695                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11696                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
11697                    })
11698                }),
11699            }
11700        }
11701    }
11702
11703    #[doc = " Declares a protocol exposed to a component\'s containing realm, such as\n a protocol exposed by the component or one of its children at runtime.\n\n To learn more about protocols, see:\n https://fuchsia.dev/fuchsia-src/glossary#protocol\n"]
11704    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
11705    pub struct ExposeProtocol {
11706        pub source: ::core::option::Option<crate::natural::Ref>,
11707
11708        pub source_name: ::core::option::Option<::std::string::String>,
11709
11710        pub target: ::core::option::Option<crate::natural::Ref>,
11711
11712        pub target_name: ::core::option::Option<::std::string::String>,
11713
11714        pub availability: ::core::option::Option<crate::natural::Availability>,
11715
11716        pub source_dictionary: ::core::option::Option<::std::string::String>,
11717    }
11718
11719    impl ExposeProtocol {
11720        fn __max_ordinal(&self) -> usize {
11721            if self.source_dictionary.is_some() {
11722                return 6;
11723            }
11724
11725            if self.availability.is_some() {
11726                return 5;
11727            }
11728
11729            if self.target_name.is_some() {
11730                return 4;
11731            }
11732
11733            if self.target.is_some() {
11734                return 3;
11735            }
11736
11737            if self.source_name.is_some() {
11738                return 2;
11739            }
11740
11741            if self.source.is_some() {
11742                return 1;
11743            }
11744
11745            0
11746        }
11747    }
11748
11749    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeProtocol<'static>, ___E> for ExposeProtocol
11750    where
11751        ___E: ::fidl_next::Encoder + ?Sized,
11752    {
11753        #[inline]
11754        fn encode(
11755            mut self,
11756            encoder: &mut ___E,
11757            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeProtocol<'static>>,
11758            _: (),
11759        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11760            ::fidl_next::munge!(let crate::wire::ExposeProtocol { table } = out);
11761
11762            let max_ord = self.__max_ordinal();
11763
11764            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
11765            ::fidl_next::Wire::zero_padding(&mut out);
11766
11767            let mut preallocated =
11768                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
11769
11770            for i in 1..=max_ord {
11771                match i {
11772                    6 => {
11773                        if let Some(value) = self.source_dictionary.take() {
11774                            ::fidl_next::WireEnvelope::encode_value::<
11775                                ::fidl_next::WireString<'static>,
11776                                ___E,
11777                            >(
11778                                value, preallocated.encoder, &mut out, 1024
11779                            )?;
11780                        } else {
11781                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11782                        }
11783                    }
11784
11785                    5 => {
11786                        if let Some(value) = self.availability.take() {
11787                            ::fidl_next::WireEnvelope::encode_value::<
11788                                crate::wire::Availability,
11789                                ___E,
11790                            >(
11791                                value, preallocated.encoder, &mut out, ()
11792                            )?;
11793                        } else {
11794                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11795                        }
11796                    }
11797
11798                    4 => {
11799                        if let Some(value) = self.target_name.take() {
11800                            ::fidl_next::WireEnvelope::encode_value::<
11801                                ::fidl_next::WireString<'static>,
11802                                ___E,
11803                            >(
11804                                value, preallocated.encoder, &mut out, 100
11805                            )?;
11806                        } else {
11807                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11808                        }
11809                    }
11810
11811                    3 => {
11812                        if let Some(value) = self.target.take() {
11813                            ::fidl_next::WireEnvelope::encode_value::<
11814                                crate::wire::Ref<'static>,
11815                                ___E,
11816                            >(
11817                                value, preallocated.encoder, &mut out, ()
11818                            )?;
11819                        } else {
11820                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11821                        }
11822                    }
11823
11824                    2 => {
11825                        if let Some(value) = self.source_name.take() {
11826                            ::fidl_next::WireEnvelope::encode_value::<
11827                                ::fidl_next::WireString<'static>,
11828                                ___E,
11829                            >(
11830                                value, preallocated.encoder, &mut out, 100
11831                            )?;
11832                        } else {
11833                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11834                        }
11835                    }
11836
11837                    1 => {
11838                        if let Some(value) = self.source.take() {
11839                            ::fidl_next::WireEnvelope::encode_value::<
11840                                crate::wire::Ref<'static>,
11841                                ___E,
11842                            >(
11843                                value, preallocated.encoder, &mut out, ()
11844                            )?;
11845                        } else {
11846                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11847                        }
11848                    }
11849
11850                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
11851                }
11852                unsafe {
11853                    preallocated.write_next(out.assume_init_ref());
11854                }
11855            }
11856
11857            ::fidl_next::WireTable::encode_len(table, max_ord);
11858
11859            Ok(())
11860        }
11861    }
11862
11863    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeProtocol<'static>, ___E>
11864        for &'a ExposeProtocol
11865    where
11866        ___E: ::fidl_next::Encoder + ?Sized,
11867    {
11868        #[inline]
11869        fn encode(
11870            self,
11871            encoder: &mut ___E,
11872            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeProtocol<'static>>,
11873            _: (),
11874        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11875            ::fidl_next::munge!(let crate::wire::ExposeProtocol { table } = out);
11876
11877            let max_ord = self.__max_ordinal();
11878
11879            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
11880            ::fidl_next::Wire::zero_padding(&mut out);
11881
11882            let mut preallocated =
11883                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
11884
11885            for i in 1..=max_ord {
11886                match i {
11887                    6 => {
11888                        if let Some(value) = &self.source_dictionary {
11889                            ::fidl_next::WireEnvelope::encode_value::<
11890                                ::fidl_next::WireString<'static>,
11891                                ___E,
11892                            >(
11893                                value, preallocated.encoder, &mut out, 1024
11894                            )?;
11895                        } else {
11896                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11897                        }
11898                    }
11899
11900                    5 => {
11901                        if let Some(value) = &self.availability {
11902                            ::fidl_next::WireEnvelope::encode_value::<
11903                                crate::wire::Availability,
11904                                ___E,
11905                            >(
11906                                value, preallocated.encoder, &mut out, ()
11907                            )?;
11908                        } else {
11909                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11910                        }
11911                    }
11912
11913                    4 => {
11914                        if let Some(value) = &self.target_name {
11915                            ::fidl_next::WireEnvelope::encode_value::<
11916                                ::fidl_next::WireString<'static>,
11917                                ___E,
11918                            >(
11919                                value, preallocated.encoder, &mut out, 100
11920                            )?;
11921                        } else {
11922                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11923                        }
11924                    }
11925
11926                    3 => {
11927                        if let Some(value) = &self.target {
11928                            ::fidl_next::WireEnvelope::encode_value::<
11929                                crate::wire::Ref<'static>,
11930                                ___E,
11931                            >(
11932                                value, preallocated.encoder, &mut out, ()
11933                            )?;
11934                        } else {
11935                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11936                        }
11937                    }
11938
11939                    2 => {
11940                        if let Some(value) = &self.source_name {
11941                            ::fidl_next::WireEnvelope::encode_value::<
11942                                ::fidl_next::WireString<'static>,
11943                                ___E,
11944                            >(
11945                                value, preallocated.encoder, &mut out, 100
11946                            )?;
11947                        } else {
11948                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11949                        }
11950                    }
11951
11952                    1 => {
11953                        if let Some(value) = &self.source {
11954                            ::fidl_next::WireEnvelope::encode_value::<
11955                                crate::wire::Ref<'static>,
11956                                ___E,
11957                            >(
11958                                value, preallocated.encoder, &mut out, ()
11959                            )?;
11960                        } else {
11961                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
11962                        }
11963                    }
11964
11965                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
11966                }
11967                unsafe {
11968                    preallocated.write_next(out.assume_init_ref());
11969                }
11970            }
11971
11972            ::fidl_next::WireTable::encode_len(table, max_ord);
11973
11974            Ok(())
11975        }
11976    }
11977
11978    impl<'de> ::fidl_next::FromWire<crate::wire::ExposeProtocol<'de>> for ExposeProtocol {
11979        #[inline]
11980        fn from_wire(wire_: crate::wire::ExposeProtocol<'de>) -> Self {
11981            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
11982
11983            let source = wire_.table.get(1);
11984
11985            let source_name = wire_.table.get(2);
11986
11987            let target = wire_.table.get(3);
11988
11989            let target_name = wire_.table.get(4);
11990
11991            let availability = wire_.table.get(5);
11992
11993            let source_dictionary = wire_.table.get(6);
11994
11995            Self {
11996                source: source.map(|envelope| {
11997                    ::fidl_next::FromWire::from_wire(unsafe {
11998                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
11999                    })
12000                }),
12001
12002                source_name: source_name.map(|envelope| {
12003                    ::fidl_next::FromWire::from_wire(unsafe {
12004                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12005                    })
12006                }),
12007
12008                target: target.map(|envelope| {
12009                    ::fidl_next::FromWire::from_wire(unsafe {
12010                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
12011                    })
12012                }),
12013
12014                target_name: target_name.map(|envelope| {
12015                    ::fidl_next::FromWire::from_wire(unsafe {
12016                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12017                    })
12018                }),
12019
12020                availability: availability.map(|envelope| {
12021                    ::fidl_next::FromWire::from_wire(unsafe {
12022                        envelope.read_unchecked::<crate::wire::Availability>()
12023                    })
12024                }),
12025
12026                source_dictionary: source_dictionary.map(|envelope| {
12027                    ::fidl_next::FromWire::from_wire(unsafe {
12028                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12029                    })
12030                }),
12031            }
12032        }
12033    }
12034
12035    impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeProtocol<'de>> for ExposeProtocol {
12036        #[inline]
12037        fn from_wire_ref(wire: &crate::wire::ExposeProtocol<'de>) -> Self {
12038            Self {
12039                source: wire.table.get(1).map(|envelope| {
12040                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12041                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12042                    })
12043                }),
12044
12045                source_name: wire.table.get(2).map(|envelope| {
12046                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12047                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12048                    })
12049                }),
12050
12051                target: wire.table.get(3).map(|envelope| {
12052                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12053                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12054                    })
12055                }),
12056
12057                target_name: wire.table.get(4).map(|envelope| {
12058                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12059                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12060                    })
12061                }),
12062
12063                availability: wire.table.get(5).map(|envelope| {
12064                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12065                        envelope.deref_unchecked::<crate::wire::Availability>()
12066                    })
12067                }),
12068
12069                source_dictionary: wire.table.get(6).map(|envelope| {
12070                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12071                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12072                    })
12073                }),
12074            }
12075        }
12076    }
12077
12078    #[doc = " Declares a directory exposed to a component\'s containing realm, such as a\n directory exposed by the component or one of its children at runtime.\n"]
12079    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12080    pub struct ExposeDirectory {
12081        pub source: ::core::option::Option<crate::natural::Ref>,
12082
12083        pub source_name: ::core::option::Option<::std::string::String>,
12084
12085        pub target: ::core::option::Option<crate::natural::Ref>,
12086
12087        pub target_name: ::core::option::Option<::std::string::String>,
12088
12089        pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
12090
12091        pub subdir: ::core::option::Option<::std::string::String>,
12092
12093        pub availability: ::core::option::Option<crate::natural::Availability>,
12094
12095        pub source_dictionary: ::core::option::Option<::std::string::String>,
12096    }
12097
12098    impl ExposeDirectory {
12099        fn __max_ordinal(&self) -> usize {
12100            if self.source_dictionary.is_some() {
12101                return 8;
12102            }
12103
12104            if self.availability.is_some() {
12105                return 7;
12106            }
12107
12108            if self.subdir.is_some() {
12109                return 6;
12110            }
12111
12112            if self.rights.is_some() {
12113                return 5;
12114            }
12115
12116            if self.target_name.is_some() {
12117                return 4;
12118            }
12119
12120            if self.target.is_some() {
12121                return 3;
12122            }
12123
12124            if self.source_name.is_some() {
12125                return 2;
12126            }
12127
12128            if self.source.is_some() {
12129                return 1;
12130            }
12131
12132            0
12133        }
12134    }
12135
12136    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeDirectory<'static>, ___E>
12137        for ExposeDirectory
12138    where
12139        ___E: ::fidl_next::Encoder + ?Sized,
12140    {
12141        #[inline]
12142        fn encode(
12143            mut self,
12144            encoder: &mut ___E,
12145            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDirectory<'static>>,
12146            _: (),
12147        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12148            ::fidl_next::munge!(let crate::wire::ExposeDirectory { table } = out);
12149
12150            let max_ord = self.__max_ordinal();
12151
12152            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
12153            ::fidl_next::Wire::zero_padding(&mut out);
12154
12155            let mut preallocated =
12156                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
12157
12158            for i in 1..=max_ord {
12159                match i {
12160                    8 => {
12161                        if let Some(value) = self.source_dictionary.take() {
12162                            ::fidl_next::WireEnvelope::encode_value::<
12163                                ::fidl_next::WireString<'static>,
12164                                ___E,
12165                            >(
12166                                value, preallocated.encoder, &mut out, 1024
12167                            )?;
12168                        } else {
12169                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12170                        }
12171                    }
12172
12173                    7 => {
12174                        if let Some(value) = self.availability.take() {
12175                            ::fidl_next::WireEnvelope::encode_value::<
12176                                crate::wire::Availability,
12177                                ___E,
12178                            >(
12179                                value, preallocated.encoder, &mut out, ()
12180                            )?;
12181                        } else {
12182                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12183                        }
12184                    }
12185
12186                    6 => {
12187                        if let Some(value) = self.subdir.take() {
12188                            ::fidl_next::WireEnvelope::encode_value::<
12189                                ::fidl_next::WireString<'static>,
12190                                ___E,
12191                            >(
12192                                value, preallocated.encoder, &mut out, 1024
12193                            )?;
12194                        } else {
12195                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12196                        }
12197                    }
12198
12199                    5 => {
12200                        if let Some(value) = self.rights.take() {
12201                            ::fidl_next::WireEnvelope::encode_value::<
12202                                ::fidl_next_common_fuchsia_io::wire::Operations,
12203                                ___E,
12204                            >(
12205                                value, preallocated.encoder, &mut out, ()
12206                            )?;
12207                        } else {
12208                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12209                        }
12210                    }
12211
12212                    4 => {
12213                        if let Some(value) = self.target_name.take() {
12214                            ::fidl_next::WireEnvelope::encode_value::<
12215                                ::fidl_next::WireString<'static>,
12216                                ___E,
12217                            >(
12218                                value, preallocated.encoder, &mut out, 100
12219                            )?;
12220                        } else {
12221                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12222                        }
12223                    }
12224
12225                    3 => {
12226                        if let Some(value) = self.target.take() {
12227                            ::fidl_next::WireEnvelope::encode_value::<
12228                                crate::wire::Ref<'static>,
12229                                ___E,
12230                            >(
12231                                value, preallocated.encoder, &mut out, ()
12232                            )?;
12233                        } else {
12234                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12235                        }
12236                    }
12237
12238                    2 => {
12239                        if let Some(value) = self.source_name.take() {
12240                            ::fidl_next::WireEnvelope::encode_value::<
12241                                ::fidl_next::WireString<'static>,
12242                                ___E,
12243                            >(
12244                                value, preallocated.encoder, &mut out, 100
12245                            )?;
12246                        } else {
12247                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12248                        }
12249                    }
12250
12251                    1 => {
12252                        if let Some(value) = self.source.take() {
12253                            ::fidl_next::WireEnvelope::encode_value::<
12254                                crate::wire::Ref<'static>,
12255                                ___E,
12256                            >(
12257                                value, preallocated.encoder, &mut out, ()
12258                            )?;
12259                        } else {
12260                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12261                        }
12262                    }
12263
12264                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
12265                }
12266                unsafe {
12267                    preallocated.write_next(out.assume_init_ref());
12268                }
12269            }
12270
12271            ::fidl_next::WireTable::encode_len(table, max_ord);
12272
12273            Ok(())
12274        }
12275    }
12276
12277    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeDirectory<'static>, ___E>
12278        for &'a ExposeDirectory
12279    where
12280        ___E: ::fidl_next::Encoder + ?Sized,
12281    {
12282        #[inline]
12283        fn encode(
12284            self,
12285            encoder: &mut ___E,
12286            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDirectory<'static>>,
12287            _: (),
12288        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12289            ::fidl_next::munge!(let crate::wire::ExposeDirectory { table } = out);
12290
12291            let max_ord = self.__max_ordinal();
12292
12293            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
12294            ::fidl_next::Wire::zero_padding(&mut out);
12295
12296            let mut preallocated =
12297                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
12298
12299            for i in 1..=max_ord {
12300                match i {
12301                    8 => {
12302                        if let Some(value) = &self.source_dictionary {
12303                            ::fidl_next::WireEnvelope::encode_value::<
12304                                ::fidl_next::WireString<'static>,
12305                                ___E,
12306                            >(
12307                                value, preallocated.encoder, &mut out, 1024
12308                            )?;
12309                        } else {
12310                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12311                        }
12312                    }
12313
12314                    7 => {
12315                        if let Some(value) = &self.availability {
12316                            ::fidl_next::WireEnvelope::encode_value::<
12317                                crate::wire::Availability,
12318                                ___E,
12319                            >(
12320                                value, preallocated.encoder, &mut out, ()
12321                            )?;
12322                        } else {
12323                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12324                        }
12325                    }
12326
12327                    6 => {
12328                        if let Some(value) = &self.subdir {
12329                            ::fidl_next::WireEnvelope::encode_value::<
12330                                ::fidl_next::WireString<'static>,
12331                                ___E,
12332                            >(
12333                                value, preallocated.encoder, &mut out, 1024
12334                            )?;
12335                        } else {
12336                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12337                        }
12338                    }
12339
12340                    5 => {
12341                        if let Some(value) = &self.rights {
12342                            ::fidl_next::WireEnvelope::encode_value::<
12343                                ::fidl_next_common_fuchsia_io::wire::Operations,
12344                                ___E,
12345                            >(
12346                                value, preallocated.encoder, &mut out, ()
12347                            )?;
12348                        } else {
12349                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12350                        }
12351                    }
12352
12353                    4 => {
12354                        if let Some(value) = &self.target_name {
12355                            ::fidl_next::WireEnvelope::encode_value::<
12356                                ::fidl_next::WireString<'static>,
12357                                ___E,
12358                            >(
12359                                value, preallocated.encoder, &mut out, 100
12360                            )?;
12361                        } else {
12362                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12363                        }
12364                    }
12365
12366                    3 => {
12367                        if let Some(value) = &self.target {
12368                            ::fidl_next::WireEnvelope::encode_value::<
12369                                crate::wire::Ref<'static>,
12370                                ___E,
12371                            >(
12372                                value, preallocated.encoder, &mut out, ()
12373                            )?;
12374                        } else {
12375                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12376                        }
12377                    }
12378
12379                    2 => {
12380                        if let Some(value) = &self.source_name {
12381                            ::fidl_next::WireEnvelope::encode_value::<
12382                                ::fidl_next::WireString<'static>,
12383                                ___E,
12384                            >(
12385                                value, preallocated.encoder, &mut out, 100
12386                            )?;
12387                        } else {
12388                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12389                        }
12390                    }
12391
12392                    1 => {
12393                        if let Some(value) = &self.source {
12394                            ::fidl_next::WireEnvelope::encode_value::<
12395                                crate::wire::Ref<'static>,
12396                                ___E,
12397                            >(
12398                                value, preallocated.encoder, &mut out, ()
12399                            )?;
12400                        } else {
12401                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12402                        }
12403                    }
12404
12405                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
12406                }
12407                unsafe {
12408                    preallocated.write_next(out.assume_init_ref());
12409                }
12410            }
12411
12412            ::fidl_next::WireTable::encode_len(table, max_ord);
12413
12414            Ok(())
12415        }
12416    }
12417
12418    impl<'de> ::fidl_next::FromWire<crate::wire::ExposeDirectory<'de>> for ExposeDirectory {
12419        #[inline]
12420        fn from_wire(wire_: crate::wire::ExposeDirectory<'de>) -> Self {
12421            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12422
12423            let source = wire_.table.get(1);
12424
12425            let source_name = wire_.table.get(2);
12426
12427            let target = wire_.table.get(3);
12428
12429            let target_name = wire_.table.get(4);
12430
12431            let rights = wire_.table.get(5);
12432
12433            let subdir = wire_.table.get(6);
12434
12435            let availability = wire_.table.get(7);
12436
12437            let source_dictionary = wire_.table.get(8);
12438
12439            Self {
12440                source: source.map(|envelope| {
12441                    ::fidl_next::FromWire::from_wire(unsafe {
12442                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
12443                    })
12444                }),
12445
12446                source_name: source_name.map(|envelope| {
12447                    ::fidl_next::FromWire::from_wire(unsafe {
12448                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12449                    })
12450                }),
12451
12452                target: target.map(|envelope| {
12453                    ::fidl_next::FromWire::from_wire(unsafe {
12454                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
12455                    })
12456                }),
12457
12458                target_name: target_name.map(|envelope| {
12459                    ::fidl_next::FromWire::from_wire(unsafe {
12460                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12461                    })
12462                }),
12463
12464                rights: rights.map(|envelope| {
12465                    ::fidl_next::FromWire::from_wire(unsafe {
12466                        envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
12467                    })
12468                }),
12469
12470                subdir: subdir.map(|envelope| {
12471                    ::fidl_next::FromWire::from_wire(unsafe {
12472                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12473                    })
12474                }),
12475
12476                availability: availability.map(|envelope| {
12477                    ::fidl_next::FromWire::from_wire(unsafe {
12478                        envelope.read_unchecked::<crate::wire::Availability>()
12479                    })
12480                }),
12481
12482                source_dictionary: source_dictionary.map(|envelope| {
12483                    ::fidl_next::FromWire::from_wire(unsafe {
12484                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12485                    })
12486                }),
12487            }
12488        }
12489    }
12490
12491    impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeDirectory<'de>> for ExposeDirectory {
12492        #[inline]
12493        fn from_wire_ref(wire: &crate::wire::ExposeDirectory<'de>) -> Self {
12494            Self {
12495                source: wire.table.get(1).map(|envelope| {
12496                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12497                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12498                    })
12499                }),
12500
12501                source_name: wire.table.get(2).map(|envelope| {
12502                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12503                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12504                    })
12505                }),
12506
12507                target: wire.table.get(3).map(|envelope| {
12508                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12509                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12510                    })
12511                }),
12512
12513                target_name: wire.table.get(4).map(|envelope| {
12514                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12515                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12516                    })
12517                }),
12518
12519                rights: wire.table.get(5).map(|envelope| {
12520                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12521                        envelope
12522                            .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
12523                    })
12524                }),
12525
12526                subdir: wire.table.get(6).map(|envelope| {
12527                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12528                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12529                    })
12530                }),
12531
12532                availability: wire.table.get(7).map(|envelope| {
12533                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12534                        envelope.deref_unchecked::<crate::wire::Availability>()
12535                    })
12536                }),
12537
12538                source_dictionary: wire.table.get(8).map(|envelope| {
12539                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12540                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12541                    })
12542                }),
12543            }
12544        }
12545    }
12546
12547    #[doc = " Declares a runner exposed to a component\'s containing realm, such as a\n runner exposed by the component or one of its children at runtime.\n"]
12548    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12549    pub struct ExposeRunner {
12550        pub source: ::core::option::Option<crate::natural::Ref>,
12551
12552        pub source_name: ::core::option::Option<::std::string::String>,
12553
12554        pub target: ::core::option::Option<crate::natural::Ref>,
12555
12556        pub target_name: ::core::option::Option<::std::string::String>,
12557
12558        pub source_dictionary: ::core::option::Option<::std::string::String>,
12559    }
12560
12561    impl ExposeRunner {
12562        fn __max_ordinal(&self) -> usize {
12563            if self.source_dictionary.is_some() {
12564                return 6;
12565            }
12566
12567            if self.target_name.is_some() {
12568                return 4;
12569            }
12570
12571            if self.target.is_some() {
12572                return 3;
12573            }
12574
12575            if self.source_name.is_some() {
12576                return 2;
12577            }
12578
12579            if self.source.is_some() {
12580                return 1;
12581            }
12582
12583            0
12584        }
12585    }
12586
12587    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeRunner<'static>, ___E> for ExposeRunner
12588    where
12589        ___E: ::fidl_next::Encoder + ?Sized,
12590    {
12591        #[inline]
12592        fn encode(
12593            mut self,
12594            encoder: &mut ___E,
12595            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeRunner<'static>>,
12596            _: (),
12597        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12598            ::fidl_next::munge!(let crate::wire::ExposeRunner { table } = out);
12599
12600            let max_ord = self.__max_ordinal();
12601
12602            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
12603            ::fidl_next::Wire::zero_padding(&mut out);
12604
12605            let mut preallocated =
12606                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
12607
12608            for i in 1..=max_ord {
12609                match i {
12610                    6 => {
12611                        if let Some(value) = self.source_dictionary.take() {
12612                            ::fidl_next::WireEnvelope::encode_value::<
12613                                ::fidl_next::WireString<'static>,
12614                                ___E,
12615                            >(
12616                                value, preallocated.encoder, &mut out, 1024
12617                            )?;
12618                        } else {
12619                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12620                        }
12621                    }
12622
12623                    4 => {
12624                        if let Some(value) = self.target_name.take() {
12625                            ::fidl_next::WireEnvelope::encode_value::<
12626                                ::fidl_next::WireString<'static>,
12627                                ___E,
12628                            >(
12629                                value, preallocated.encoder, &mut out, 100
12630                            )?;
12631                        } else {
12632                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12633                        }
12634                    }
12635
12636                    3 => {
12637                        if let Some(value) = self.target.take() {
12638                            ::fidl_next::WireEnvelope::encode_value::<
12639                                crate::wire::Ref<'static>,
12640                                ___E,
12641                            >(
12642                                value, preallocated.encoder, &mut out, ()
12643                            )?;
12644                        } else {
12645                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12646                        }
12647                    }
12648
12649                    2 => {
12650                        if let Some(value) = self.source_name.take() {
12651                            ::fidl_next::WireEnvelope::encode_value::<
12652                                ::fidl_next::WireString<'static>,
12653                                ___E,
12654                            >(
12655                                value, preallocated.encoder, &mut out, 100
12656                            )?;
12657                        } else {
12658                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12659                        }
12660                    }
12661
12662                    1 => {
12663                        if let Some(value) = self.source.take() {
12664                            ::fidl_next::WireEnvelope::encode_value::<
12665                                crate::wire::Ref<'static>,
12666                                ___E,
12667                            >(
12668                                value, preallocated.encoder, &mut out, ()
12669                            )?;
12670                        } else {
12671                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12672                        }
12673                    }
12674
12675                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
12676                }
12677                unsafe {
12678                    preallocated.write_next(out.assume_init_ref());
12679                }
12680            }
12681
12682            ::fidl_next::WireTable::encode_len(table, max_ord);
12683
12684            Ok(())
12685        }
12686    }
12687
12688    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeRunner<'static>, ___E>
12689        for &'a ExposeRunner
12690    where
12691        ___E: ::fidl_next::Encoder + ?Sized,
12692    {
12693        #[inline]
12694        fn encode(
12695            self,
12696            encoder: &mut ___E,
12697            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeRunner<'static>>,
12698            _: (),
12699        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12700            ::fidl_next::munge!(let crate::wire::ExposeRunner { table } = out);
12701
12702            let max_ord = self.__max_ordinal();
12703
12704            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
12705            ::fidl_next::Wire::zero_padding(&mut out);
12706
12707            let mut preallocated =
12708                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
12709
12710            for i in 1..=max_ord {
12711                match i {
12712                    6 => {
12713                        if let Some(value) = &self.source_dictionary {
12714                            ::fidl_next::WireEnvelope::encode_value::<
12715                                ::fidl_next::WireString<'static>,
12716                                ___E,
12717                            >(
12718                                value, preallocated.encoder, &mut out, 1024
12719                            )?;
12720                        } else {
12721                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12722                        }
12723                    }
12724
12725                    4 => {
12726                        if let Some(value) = &self.target_name {
12727                            ::fidl_next::WireEnvelope::encode_value::<
12728                                ::fidl_next::WireString<'static>,
12729                                ___E,
12730                            >(
12731                                value, preallocated.encoder, &mut out, 100
12732                            )?;
12733                        } else {
12734                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12735                        }
12736                    }
12737
12738                    3 => {
12739                        if let Some(value) = &self.target {
12740                            ::fidl_next::WireEnvelope::encode_value::<
12741                                crate::wire::Ref<'static>,
12742                                ___E,
12743                            >(
12744                                value, preallocated.encoder, &mut out, ()
12745                            )?;
12746                        } else {
12747                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12748                        }
12749                    }
12750
12751                    2 => {
12752                        if let Some(value) = &self.source_name {
12753                            ::fidl_next::WireEnvelope::encode_value::<
12754                                ::fidl_next::WireString<'static>,
12755                                ___E,
12756                            >(
12757                                value, preallocated.encoder, &mut out, 100
12758                            )?;
12759                        } else {
12760                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12761                        }
12762                    }
12763
12764                    1 => {
12765                        if let Some(value) = &self.source {
12766                            ::fidl_next::WireEnvelope::encode_value::<
12767                                crate::wire::Ref<'static>,
12768                                ___E,
12769                            >(
12770                                value, preallocated.encoder, &mut out, ()
12771                            )?;
12772                        } else {
12773                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12774                        }
12775                    }
12776
12777                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
12778                }
12779                unsafe {
12780                    preallocated.write_next(out.assume_init_ref());
12781                }
12782            }
12783
12784            ::fidl_next::WireTable::encode_len(table, max_ord);
12785
12786            Ok(())
12787        }
12788    }
12789
12790    impl<'de> ::fidl_next::FromWire<crate::wire::ExposeRunner<'de>> for ExposeRunner {
12791        #[inline]
12792        fn from_wire(wire_: crate::wire::ExposeRunner<'de>) -> Self {
12793            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12794
12795            let source = wire_.table.get(1);
12796
12797            let source_name = wire_.table.get(2);
12798
12799            let target = wire_.table.get(3);
12800
12801            let target_name = wire_.table.get(4);
12802
12803            let source_dictionary = wire_.table.get(6);
12804
12805            Self {
12806                source: source.map(|envelope| {
12807                    ::fidl_next::FromWire::from_wire(unsafe {
12808                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
12809                    })
12810                }),
12811
12812                source_name: source_name.map(|envelope| {
12813                    ::fidl_next::FromWire::from_wire(unsafe {
12814                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12815                    })
12816                }),
12817
12818                target: target.map(|envelope| {
12819                    ::fidl_next::FromWire::from_wire(unsafe {
12820                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
12821                    })
12822                }),
12823
12824                target_name: target_name.map(|envelope| {
12825                    ::fidl_next::FromWire::from_wire(unsafe {
12826                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12827                    })
12828                }),
12829
12830                source_dictionary: source_dictionary.map(|envelope| {
12831                    ::fidl_next::FromWire::from_wire(unsafe {
12832                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
12833                    })
12834                }),
12835            }
12836        }
12837    }
12838
12839    impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeRunner<'de>> for ExposeRunner {
12840        #[inline]
12841        fn from_wire_ref(wire: &crate::wire::ExposeRunner<'de>) -> Self {
12842            Self {
12843                source: wire.table.get(1).map(|envelope| {
12844                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12845                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12846                    })
12847                }),
12848
12849                source_name: wire.table.get(2).map(|envelope| {
12850                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12851                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12852                    })
12853                }),
12854
12855                target: wire.table.get(3).map(|envelope| {
12856                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12857                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12858                    })
12859                }),
12860
12861                target_name: wire.table.get(4).map(|envelope| {
12862                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12863                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12864                    })
12865                }),
12866
12867                source_dictionary: wire.table.get(6).map(|envelope| {
12868                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12869                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
12870                    })
12871                }),
12872            }
12873        }
12874    }
12875
12876    #[doc = " Declares a resolver exposed to a component\'s containing realm, such as a\n resolver exposed by the component or one of its children at runtime.\n"]
12877    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12878    pub struct ExposeResolver {
12879        pub source: ::core::option::Option<crate::natural::Ref>,
12880
12881        pub source_name: ::core::option::Option<::std::string::String>,
12882
12883        pub target: ::core::option::Option<crate::natural::Ref>,
12884
12885        pub target_name: ::core::option::Option<::std::string::String>,
12886
12887        pub source_dictionary: ::core::option::Option<::std::string::String>,
12888    }
12889
12890    impl ExposeResolver {
12891        fn __max_ordinal(&self) -> usize {
12892            if self.source_dictionary.is_some() {
12893                return 6;
12894            }
12895
12896            if self.target_name.is_some() {
12897                return 4;
12898            }
12899
12900            if self.target.is_some() {
12901                return 3;
12902            }
12903
12904            if self.source_name.is_some() {
12905                return 2;
12906            }
12907
12908            if self.source.is_some() {
12909                return 1;
12910            }
12911
12912            0
12913        }
12914    }
12915
12916    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeResolver<'static>, ___E> for ExposeResolver
12917    where
12918        ___E: ::fidl_next::Encoder + ?Sized,
12919    {
12920        #[inline]
12921        fn encode(
12922            mut self,
12923            encoder: &mut ___E,
12924            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeResolver<'static>>,
12925            _: (),
12926        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12927            ::fidl_next::munge!(let crate::wire::ExposeResolver { table } = out);
12928
12929            let max_ord = self.__max_ordinal();
12930
12931            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
12932            ::fidl_next::Wire::zero_padding(&mut out);
12933
12934            let mut preallocated =
12935                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
12936
12937            for i in 1..=max_ord {
12938                match i {
12939                    6 => {
12940                        if let Some(value) = self.source_dictionary.take() {
12941                            ::fidl_next::WireEnvelope::encode_value::<
12942                                ::fidl_next::WireString<'static>,
12943                                ___E,
12944                            >(
12945                                value, preallocated.encoder, &mut out, 1024
12946                            )?;
12947                        } else {
12948                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12949                        }
12950                    }
12951
12952                    4 => {
12953                        if let Some(value) = self.target_name.take() {
12954                            ::fidl_next::WireEnvelope::encode_value::<
12955                                ::fidl_next::WireString<'static>,
12956                                ___E,
12957                            >(
12958                                value, preallocated.encoder, &mut out, 100
12959                            )?;
12960                        } else {
12961                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12962                        }
12963                    }
12964
12965                    3 => {
12966                        if let Some(value) = self.target.take() {
12967                            ::fidl_next::WireEnvelope::encode_value::<
12968                                crate::wire::Ref<'static>,
12969                                ___E,
12970                            >(
12971                                value, preallocated.encoder, &mut out, ()
12972                            )?;
12973                        } else {
12974                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12975                        }
12976                    }
12977
12978                    2 => {
12979                        if let Some(value) = self.source_name.take() {
12980                            ::fidl_next::WireEnvelope::encode_value::<
12981                                ::fidl_next::WireString<'static>,
12982                                ___E,
12983                            >(
12984                                value, preallocated.encoder, &mut out, 100
12985                            )?;
12986                        } else {
12987                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
12988                        }
12989                    }
12990
12991                    1 => {
12992                        if let Some(value) = self.source.take() {
12993                            ::fidl_next::WireEnvelope::encode_value::<
12994                                crate::wire::Ref<'static>,
12995                                ___E,
12996                            >(
12997                                value, preallocated.encoder, &mut out, ()
12998                            )?;
12999                        } else {
13000                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13001                        }
13002                    }
13003
13004                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
13005                }
13006                unsafe {
13007                    preallocated.write_next(out.assume_init_ref());
13008                }
13009            }
13010
13011            ::fidl_next::WireTable::encode_len(table, max_ord);
13012
13013            Ok(())
13014        }
13015    }
13016
13017    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeResolver<'static>, ___E>
13018        for &'a ExposeResolver
13019    where
13020        ___E: ::fidl_next::Encoder + ?Sized,
13021    {
13022        #[inline]
13023        fn encode(
13024            self,
13025            encoder: &mut ___E,
13026            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeResolver<'static>>,
13027            _: (),
13028        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13029            ::fidl_next::munge!(let crate::wire::ExposeResolver { table } = out);
13030
13031            let max_ord = self.__max_ordinal();
13032
13033            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
13034            ::fidl_next::Wire::zero_padding(&mut out);
13035
13036            let mut preallocated =
13037                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
13038
13039            for i in 1..=max_ord {
13040                match i {
13041                    6 => {
13042                        if let Some(value) = &self.source_dictionary {
13043                            ::fidl_next::WireEnvelope::encode_value::<
13044                                ::fidl_next::WireString<'static>,
13045                                ___E,
13046                            >(
13047                                value, preallocated.encoder, &mut out, 1024
13048                            )?;
13049                        } else {
13050                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13051                        }
13052                    }
13053
13054                    4 => {
13055                        if let Some(value) = &self.target_name {
13056                            ::fidl_next::WireEnvelope::encode_value::<
13057                                ::fidl_next::WireString<'static>,
13058                                ___E,
13059                            >(
13060                                value, preallocated.encoder, &mut out, 100
13061                            )?;
13062                        } else {
13063                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13064                        }
13065                    }
13066
13067                    3 => {
13068                        if let Some(value) = &self.target {
13069                            ::fidl_next::WireEnvelope::encode_value::<
13070                                crate::wire::Ref<'static>,
13071                                ___E,
13072                            >(
13073                                value, preallocated.encoder, &mut out, ()
13074                            )?;
13075                        } else {
13076                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13077                        }
13078                    }
13079
13080                    2 => {
13081                        if let Some(value) = &self.source_name {
13082                            ::fidl_next::WireEnvelope::encode_value::<
13083                                ::fidl_next::WireString<'static>,
13084                                ___E,
13085                            >(
13086                                value, preallocated.encoder, &mut out, 100
13087                            )?;
13088                        } else {
13089                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13090                        }
13091                    }
13092
13093                    1 => {
13094                        if let Some(value) = &self.source {
13095                            ::fidl_next::WireEnvelope::encode_value::<
13096                                crate::wire::Ref<'static>,
13097                                ___E,
13098                            >(
13099                                value, preallocated.encoder, &mut out, ()
13100                            )?;
13101                        } else {
13102                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13103                        }
13104                    }
13105
13106                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
13107                }
13108                unsafe {
13109                    preallocated.write_next(out.assume_init_ref());
13110                }
13111            }
13112
13113            ::fidl_next::WireTable::encode_len(table, max_ord);
13114
13115            Ok(())
13116        }
13117    }
13118
13119    impl<'de> ::fidl_next::FromWire<crate::wire::ExposeResolver<'de>> for ExposeResolver {
13120        #[inline]
13121        fn from_wire(wire_: crate::wire::ExposeResolver<'de>) -> Self {
13122            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
13123
13124            let source = wire_.table.get(1);
13125
13126            let source_name = wire_.table.get(2);
13127
13128            let target = wire_.table.get(3);
13129
13130            let target_name = wire_.table.get(4);
13131
13132            let source_dictionary = wire_.table.get(6);
13133
13134            Self {
13135                source: source.map(|envelope| {
13136                    ::fidl_next::FromWire::from_wire(unsafe {
13137                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
13138                    })
13139                }),
13140
13141                source_name: source_name.map(|envelope| {
13142                    ::fidl_next::FromWire::from_wire(unsafe {
13143                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13144                    })
13145                }),
13146
13147                target: target.map(|envelope| {
13148                    ::fidl_next::FromWire::from_wire(unsafe {
13149                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
13150                    })
13151                }),
13152
13153                target_name: target_name.map(|envelope| {
13154                    ::fidl_next::FromWire::from_wire(unsafe {
13155                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13156                    })
13157                }),
13158
13159                source_dictionary: source_dictionary.map(|envelope| {
13160                    ::fidl_next::FromWire::from_wire(unsafe {
13161                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13162                    })
13163                }),
13164            }
13165        }
13166    }
13167
13168    impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeResolver<'de>> for ExposeResolver {
13169        #[inline]
13170        fn from_wire_ref(wire: &crate::wire::ExposeResolver<'de>) -> Self {
13171            Self {
13172                source: wire.table.get(1).map(|envelope| {
13173                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13174                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13175                    })
13176                }),
13177
13178                source_name: wire.table.get(2).map(|envelope| {
13179                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13180                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13181                    })
13182                }),
13183
13184                target: wire.table.get(3).map(|envelope| {
13185                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13186                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13187                    })
13188                }),
13189
13190                target_name: wire.table.get(4).map(|envelope| {
13191                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13192                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13193                    })
13194                }),
13195
13196                source_dictionary: wire.table.get(6).map(|envelope| {
13197                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13198                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13199                    })
13200                }),
13201            }
13202        }
13203    }
13204
13205    #[doc = " Declares a dictionary exposed to a component\'s containing realm, such as\n a dictionary exposed by the component or one of its children at runtime.\n\n To learn more about dictionarys, see:\n https://fuchsia.dev/fuchsia-src/glossary#dictionary\n"]
13206    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13207    pub struct ExposeDictionary {
13208        pub source: ::core::option::Option<crate::natural::Ref>,
13209
13210        pub source_name: ::core::option::Option<::std::string::String>,
13211
13212        pub target: ::core::option::Option<crate::natural::Ref>,
13213
13214        pub target_name: ::core::option::Option<::std::string::String>,
13215
13216        pub availability: ::core::option::Option<crate::natural::Availability>,
13217
13218        pub source_dictionary: ::core::option::Option<::std::string::String>,
13219    }
13220
13221    impl ExposeDictionary {
13222        fn __max_ordinal(&self) -> usize {
13223            if self.source_dictionary.is_some() {
13224                return 6;
13225            }
13226
13227            if self.availability.is_some() {
13228                return 5;
13229            }
13230
13231            if self.target_name.is_some() {
13232                return 4;
13233            }
13234
13235            if self.target.is_some() {
13236                return 3;
13237            }
13238
13239            if self.source_name.is_some() {
13240                return 2;
13241            }
13242
13243            if self.source.is_some() {
13244                return 1;
13245            }
13246
13247            0
13248        }
13249    }
13250
13251    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeDictionary<'static>, ___E>
13252        for ExposeDictionary
13253    where
13254        ___E: ::fidl_next::Encoder + ?Sized,
13255    {
13256        #[inline]
13257        fn encode(
13258            mut self,
13259            encoder: &mut ___E,
13260            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDictionary<'static>>,
13261            _: (),
13262        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13263            ::fidl_next::munge!(let crate::wire::ExposeDictionary { table } = out);
13264
13265            let max_ord = self.__max_ordinal();
13266
13267            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
13268            ::fidl_next::Wire::zero_padding(&mut out);
13269
13270            let mut preallocated =
13271                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
13272
13273            for i in 1..=max_ord {
13274                match i {
13275                    6 => {
13276                        if let Some(value) = self.source_dictionary.take() {
13277                            ::fidl_next::WireEnvelope::encode_value::<
13278                                ::fidl_next::WireString<'static>,
13279                                ___E,
13280                            >(
13281                                value, preallocated.encoder, &mut out, 1024
13282                            )?;
13283                        } else {
13284                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13285                        }
13286                    }
13287
13288                    5 => {
13289                        if let Some(value) = self.availability.take() {
13290                            ::fidl_next::WireEnvelope::encode_value::<
13291                                crate::wire::Availability,
13292                                ___E,
13293                            >(
13294                                value, preallocated.encoder, &mut out, ()
13295                            )?;
13296                        } else {
13297                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13298                        }
13299                    }
13300
13301                    4 => {
13302                        if let Some(value) = self.target_name.take() {
13303                            ::fidl_next::WireEnvelope::encode_value::<
13304                                ::fidl_next::WireString<'static>,
13305                                ___E,
13306                            >(
13307                                value, preallocated.encoder, &mut out, 100
13308                            )?;
13309                        } else {
13310                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13311                        }
13312                    }
13313
13314                    3 => {
13315                        if let Some(value) = self.target.take() {
13316                            ::fidl_next::WireEnvelope::encode_value::<
13317                                crate::wire::Ref<'static>,
13318                                ___E,
13319                            >(
13320                                value, preallocated.encoder, &mut out, ()
13321                            )?;
13322                        } else {
13323                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13324                        }
13325                    }
13326
13327                    2 => {
13328                        if let Some(value) = self.source_name.take() {
13329                            ::fidl_next::WireEnvelope::encode_value::<
13330                                ::fidl_next::WireString<'static>,
13331                                ___E,
13332                            >(
13333                                value, preallocated.encoder, &mut out, 100
13334                            )?;
13335                        } else {
13336                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13337                        }
13338                    }
13339
13340                    1 => {
13341                        if let Some(value) = self.source.take() {
13342                            ::fidl_next::WireEnvelope::encode_value::<
13343                                crate::wire::Ref<'static>,
13344                                ___E,
13345                            >(
13346                                value, preallocated.encoder, &mut out, ()
13347                            )?;
13348                        } else {
13349                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13350                        }
13351                    }
13352
13353                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
13354                }
13355                unsafe {
13356                    preallocated.write_next(out.assume_init_ref());
13357                }
13358            }
13359
13360            ::fidl_next::WireTable::encode_len(table, max_ord);
13361
13362            Ok(())
13363        }
13364    }
13365
13366    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeDictionary<'static>, ___E>
13367        for &'a ExposeDictionary
13368    where
13369        ___E: ::fidl_next::Encoder + ?Sized,
13370    {
13371        #[inline]
13372        fn encode(
13373            self,
13374            encoder: &mut ___E,
13375            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDictionary<'static>>,
13376            _: (),
13377        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13378            ::fidl_next::munge!(let crate::wire::ExposeDictionary { table } = out);
13379
13380            let max_ord = self.__max_ordinal();
13381
13382            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
13383            ::fidl_next::Wire::zero_padding(&mut out);
13384
13385            let mut preallocated =
13386                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
13387
13388            for i in 1..=max_ord {
13389                match i {
13390                    6 => {
13391                        if let Some(value) = &self.source_dictionary {
13392                            ::fidl_next::WireEnvelope::encode_value::<
13393                                ::fidl_next::WireString<'static>,
13394                                ___E,
13395                            >(
13396                                value, preallocated.encoder, &mut out, 1024
13397                            )?;
13398                        } else {
13399                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13400                        }
13401                    }
13402
13403                    5 => {
13404                        if let Some(value) = &self.availability {
13405                            ::fidl_next::WireEnvelope::encode_value::<
13406                                crate::wire::Availability,
13407                                ___E,
13408                            >(
13409                                value, preallocated.encoder, &mut out, ()
13410                            )?;
13411                        } else {
13412                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13413                        }
13414                    }
13415
13416                    4 => {
13417                        if let Some(value) = &self.target_name {
13418                            ::fidl_next::WireEnvelope::encode_value::<
13419                                ::fidl_next::WireString<'static>,
13420                                ___E,
13421                            >(
13422                                value, preallocated.encoder, &mut out, 100
13423                            )?;
13424                        } else {
13425                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13426                        }
13427                    }
13428
13429                    3 => {
13430                        if let Some(value) = &self.target {
13431                            ::fidl_next::WireEnvelope::encode_value::<
13432                                crate::wire::Ref<'static>,
13433                                ___E,
13434                            >(
13435                                value, preallocated.encoder, &mut out, ()
13436                            )?;
13437                        } else {
13438                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13439                        }
13440                    }
13441
13442                    2 => {
13443                        if let Some(value) = &self.source_name {
13444                            ::fidl_next::WireEnvelope::encode_value::<
13445                                ::fidl_next::WireString<'static>,
13446                                ___E,
13447                            >(
13448                                value, preallocated.encoder, &mut out, 100
13449                            )?;
13450                        } else {
13451                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13452                        }
13453                    }
13454
13455                    1 => {
13456                        if let Some(value) = &self.source {
13457                            ::fidl_next::WireEnvelope::encode_value::<
13458                                crate::wire::Ref<'static>,
13459                                ___E,
13460                            >(
13461                                value, preallocated.encoder, &mut out, ()
13462                            )?;
13463                        } else {
13464                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13465                        }
13466                    }
13467
13468                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
13469                }
13470                unsafe {
13471                    preallocated.write_next(out.assume_init_ref());
13472                }
13473            }
13474
13475            ::fidl_next::WireTable::encode_len(table, max_ord);
13476
13477            Ok(())
13478        }
13479    }
13480
13481    impl<'de> ::fidl_next::FromWire<crate::wire::ExposeDictionary<'de>> for ExposeDictionary {
13482        #[inline]
13483        fn from_wire(wire_: crate::wire::ExposeDictionary<'de>) -> Self {
13484            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
13485
13486            let source = wire_.table.get(1);
13487
13488            let source_name = wire_.table.get(2);
13489
13490            let target = wire_.table.get(3);
13491
13492            let target_name = wire_.table.get(4);
13493
13494            let availability = wire_.table.get(5);
13495
13496            let source_dictionary = wire_.table.get(6);
13497
13498            Self {
13499                source: source.map(|envelope| {
13500                    ::fidl_next::FromWire::from_wire(unsafe {
13501                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
13502                    })
13503                }),
13504
13505                source_name: source_name.map(|envelope| {
13506                    ::fidl_next::FromWire::from_wire(unsafe {
13507                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13508                    })
13509                }),
13510
13511                target: target.map(|envelope| {
13512                    ::fidl_next::FromWire::from_wire(unsafe {
13513                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
13514                    })
13515                }),
13516
13517                target_name: target_name.map(|envelope| {
13518                    ::fidl_next::FromWire::from_wire(unsafe {
13519                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13520                    })
13521                }),
13522
13523                availability: availability.map(|envelope| {
13524                    ::fidl_next::FromWire::from_wire(unsafe {
13525                        envelope.read_unchecked::<crate::wire::Availability>()
13526                    })
13527                }),
13528
13529                source_dictionary: source_dictionary.map(|envelope| {
13530                    ::fidl_next::FromWire::from_wire(unsafe {
13531                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13532                    })
13533                }),
13534            }
13535        }
13536    }
13537
13538    impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeDictionary<'de>> for ExposeDictionary {
13539        #[inline]
13540        fn from_wire_ref(wire: &crate::wire::ExposeDictionary<'de>) -> Self {
13541            Self {
13542                source: wire.table.get(1).map(|envelope| {
13543                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13544                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13545                    })
13546                }),
13547
13548                source_name: wire.table.get(2).map(|envelope| {
13549                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13550                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13551                    })
13552                }),
13553
13554                target: wire.table.get(3).map(|envelope| {
13555                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13556                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13557                    })
13558                }),
13559
13560                target_name: wire.table.get(4).map(|envelope| {
13561                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13562                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13563                    })
13564                }),
13565
13566                availability: wire.table.get(5).map(|envelope| {
13567                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13568                        envelope.deref_unchecked::<crate::wire::Availability>()
13569                    })
13570                }),
13571
13572                source_dictionary: wire.table.get(6).map(|envelope| {
13573                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13574                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13575                    })
13576                }),
13577            }
13578        }
13579    }
13580
13581    #[doc = " Declares a configuration capability exposed to a component\'s containing realm, such as\n a capability exposed by the component or one of its children at runtime.\n"]
13582    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13583    pub struct ExposeConfiguration {
13584        pub source: ::core::option::Option<crate::natural::Ref>,
13585
13586        pub source_name: ::core::option::Option<::std::string::String>,
13587
13588        pub target: ::core::option::Option<crate::natural::Ref>,
13589
13590        pub target_name: ::core::option::Option<::std::string::String>,
13591
13592        pub availability: ::core::option::Option<crate::natural::Availability>,
13593
13594        pub source_dictionary: ::core::option::Option<::std::string::String>,
13595    }
13596
13597    impl ExposeConfiguration {
13598        fn __max_ordinal(&self) -> usize {
13599            if self.source_dictionary.is_some() {
13600                return 6;
13601            }
13602
13603            if self.availability.is_some() {
13604                return 5;
13605            }
13606
13607            if self.target_name.is_some() {
13608                return 4;
13609            }
13610
13611            if self.target.is_some() {
13612                return 3;
13613            }
13614
13615            if self.source_name.is_some() {
13616                return 2;
13617            }
13618
13619            if self.source.is_some() {
13620                return 1;
13621            }
13622
13623            0
13624        }
13625    }
13626
13627    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeConfiguration<'static>, ___E>
13628        for ExposeConfiguration
13629    where
13630        ___E: ::fidl_next::Encoder + ?Sized,
13631    {
13632        #[inline]
13633        fn encode(
13634            mut self,
13635            encoder: &mut ___E,
13636            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeConfiguration<'static>>,
13637            _: (),
13638        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13639            ::fidl_next::munge!(let crate::wire::ExposeConfiguration { table } = out);
13640
13641            let max_ord = self.__max_ordinal();
13642
13643            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
13644            ::fidl_next::Wire::zero_padding(&mut out);
13645
13646            let mut preallocated =
13647                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
13648
13649            for i in 1..=max_ord {
13650                match i {
13651                    6 => {
13652                        if let Some(value) = self.source_dictionary.take() {
13653                            ::fidl_next::WireEnvelope::encode_value::<
13654                                ::fidl_next::WireString<'static>,
13655                                ___E,
13656                            >(
13657                                value, preallocated.encoder, &mut out, 1024
13658                            )?;
13659                        } else {
13660                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13661                        }
13662                    }
13663
13664                    5 => {
13665                        if let Some(value) = self.availability.take() {
13666                            ::fidl_next::WireEnvelope::encode_value::<
13667                                crate::wire::Availability,
13668                                ___E,
13669                            >(
13670                                value, preallocated.encoder, &mut out, ()
13671                            )?;
13672                        } else {
13673                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13674                        }
13675                    }
13676
13677                    4 => {
13678                        if let Some(value) = self.target_name.take() {
13679                            ::fidl_next::WireEnvelope::encode_value::<
13680                                ::fidl_next::WireString<'static>,
13681                                ___E,
13682                            >(
13683                                value, preallocated.encoder, &mut out, 100
13684                            )?;
13685                        } else {
13686                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13687                        }
13688                    }
13689
13690                    3 => {
13691                        if let Some(value) = self.target.take() {
13692                            ::fidl_next::WireEnvelope::encode_value::<
13693                                crate::wire::Ref<'static>,
13694                                ___E,
13695                            >(
13696                                value, preallocated.encoder, &mut out, ()
13697                            )?;
13698                        } else {
13699                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13700                        }
13701                    }
13702
13703                    2 => {
13704                        if let Some(value) = self.source_name.take() {
13705                            ::fidl_next::WireEnvelope::encode_value::<
13706                                ::fidl_next::WireString<'static>,
13707                                ___E,
13708                            >(
13709                                value, preallocated.encoder, &mut out, 100
13710                            )?;
13711                        } else {
13712                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13713                        }
13714                    }
13715
13716                    1 => {
13717                        if let Some(value) = self.source.take() {
13718                            ::fidl_next::WireEnvelope::encode_value::<
13719                                crate::wire::Ref<'static>,
13720                                ___E,
13721                            >(
13722                                value, preallocated.encoder, &mut out, ()
13723                            )?;
13724                        } else {
13725                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13726                        }
13727                    }
13728
13729                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
13730                }
13731                unsafe {
13732                    preallocated.write_next(out.assume_init_ref());
13733                }
13734            }
13735
13736            ::fidl_next::WireTable::encode_len(table, max_ord);
13737
13738            Ok(())
13739        }
13740    }
13741
13742    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeConfiguration<'static>, ___E>
13743        for &'a ExposeConfiguration
13744    where
13745        ___E: ::fidl_next::Encoder + ?Sized,
13746    {
13747        #[inline]
13748        fn encode(
13749            self,
13750            encoder: &mut ___E,
13751            out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeConfiguration<'static>>,
13752            _: (),
13753        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13754            ::fidl_next::munge!(let crate::wire::ExposeConfiguration { table } = out);
13755
13756            let max_ord = self.__max_ordinal();
13757
13758            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
13759            ::fidl_next::Wire::zero_padding(&mut out);
13760
13761            let mut preallocated =
13762                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
13763
13764            for i in 1..=max_ord {
13765                match i {
13766                    6 => {
13767                        if let Some(value) = &self.source_dictionary {
13768                            ::fidl_next::WireEnvelope::encode_value::<
13769                                ::fidl_next::WireString<'static>,
13770                                ___E,
13771                            >(
13772                                value, preallocated.encoder, &mut out, 1024
13773                            )?;
13774                        } else {
13775                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13776                        }
13777                    }
13778
13779                    5 => {
13780                        if let Some(value) = &self.availability {
13781                            ::fidl_next::WireEnvelope::encode_value::<
13782                                crate::wire::Availability,
13783                                ___E,
13784                            >(
13785                                value, preallocated.encoder, &mut out, ()
13786                            )?;
13787                        } else {
13788                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13789                        }
13790                    }
13791
13792                    4 => {
13793                        if let Some(value) = &self.target_name {
13794                            ::fidl_next::WireEnvelope::encode_value::<
13795                                ::fidl_next::WireString<'static>,
13796                                ___E,
13797                            >(
13798                                value, preallocated.encoder, &mut out, 100
13799                            )?;
13800                        } else {
13801                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13802                        }
13803                    }
13804
13805                    3 => {
13806                        if let Some(value) = &self.target {
13807                            ::fidl_next::WireEnvelope::encode_value::<
13808                                crate::wire::Ref<'static>,
13809                                ___E,
13810                            >(
13811                                value, preallocated.encoder, &mut out, ()
13812                            )?;
13813                        } else {
13814                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13815                        }
13816                    }
13817
13818                    2 => {
13819                        if let Some(value) = &self.source_name {
13820                            ::fidl_next::WireEnvelope::encode_value::<
13821                                ::fidl_next::WireString<'static>,
13822                                ___E,
13823                            >(
13824                                value, preallocated.encoder, &mut out, 100
13825                            )?;
13826                        } else {
13827                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13828                        }
13829                    }
13830
13831                    1 => {
13832                        if let Some(value) = &self.source {
13833                            ::fidl_next::WireEnvelope::encode_value::<
13834                                crate::wire::Ref<'static>,
13835                                ___E,
13836                            >(
13837                                value, preallocated.encoder, &mut out, ()
13838                            )?;
13839                        } else {
13840                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
13841                        }
13842                    }
13843
13844                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
13845                }
13846                unsafe {
13847                    preallocated.write_next(out.assume_init_ref());
13848                }
13849            }
13850
13851            ::fidl_next::WireTable::encode_len(table, max_ord);
13852
13853            Ok(())
13854        }
13855    }
13856
13857    impl<'de> ::fidl_next::FromWire<crate::wire::ExposeConfiguration<'de>> for ExposeConfiguration {
13858        #[inline]
13859        fn from_wire(wire_: crate::wire::ExposeConfiguration<'de>) -> Self {
13860            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
13861
13862            let source = wire_.table.get(1);
13863
13864            let source_name = wire_.table.get(2);
13865
13866            let target = wire_.table.get(3);
13867
13868            let target_name = wire_.table.get(4);
13869
13870            let availability = wire_.table.get(5);
13871
13872            let source_dictionary = wire_.table.get(6);
13873
13874            Self {
13875                source: source.map(|envelope| {
13876                    ::fidl_next::FromWire::from_wire(unsafe {
13877                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
13878                    })
13879                }),
13880
13881                source_name: source_name.map(|envelope| {
13882                    ::fidl_next::FromWire::from_wire(unsafe {
13883                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13884                    })
13885                }),
13886
13887                target: target.map(|envelope| {
13888                    ::fidl_next::FromWire::from_wire(unsafe {
13889                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
13890                    })
13891                }),
13892
13893                target_name: target_name.map(|envelope| {
13894                    ::fidl_next::FromWire::from_wire(unsafe {
13895                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13896                    })
13897                }),
13898
13899                availability: availability.map(|envelope| {
13900                    ::fidl_next::FromWire::from_wire(unsafe {
13901                        envelope.read_unchecked::<crate::wire::Availability>()
13902                    })
13903                }),
13904
13905                source_dictionary: source_dictionary.map(|envelope| {
13906                    ::fidl_next::FromWire::from_wire(unsafe {
13907                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
13908                    })
13909                }),
13910            }
13911        }
13912    }
13913
13914    impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeConfiguration<'de>> for ExposeConfiguration {
13915        #[inline]
13916        fn from_wire_ref(wire: &crate::wire::ExposeConfiguration<'de>) -> Self {
13917            Self {
13918                source: wire.table.get(1).map(|envelope| {
13919                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13920                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13921                    })
13922                }),
13923
13924                source_name: wire.table.get(2).map(|envelope| {
13925                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13926                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13927                    })
13928                }),
13929
13930                target: wire.table.get(3).map(|envelope| {
13931                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13932                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13933                    })
13934                }),
13935
13936                target_name: wire.table.get(4).map(|envelope| {
13937                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13938                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13939                    })
13940                }),
13941
13942                availability: wire.table.get(5).map(|envelope| {
13943                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13944                        envelope.deref_unchecked::<crate::wire::Availability>()
13945                    })
13946                }),
13947
13948                source_dictionary: wire.table.get(6).map(|envelope| {
13949                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13950                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
13951                    })
13952                }),
13953            }
13954        }
13955    }
13956
13957    #[doc = " Declares a capability exposed to either a component\'s containing realm or to\n the framework. For example, a legacy service exposed by the component at\n runtime.\n"]
13958    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13959    pub enum Expose {
13960        Service(crate::natural::ExposeService),
13961
13962        Protocol(crate::natural::ExposeProtocol),
13963
13964        Directory(crate::natural::ExposeDirectory),
13965
13966        Runner(crate::natural::ExposeRunner),
13967
13968        Resolver(crate::natural::ExposeResolver),
13969
13970        Dictionary(crate::natural::ExposeDictionary),
13971
13972        Config(crate::natural::ExposeConfiguration),
13973
13974        UnknownOrdinal_(u64),
13975    }
13976
13977    impl Expose {
13978        pub fn is_unknown(&self) -> bool {
13979            #[allow(unreachable_patterns)]
13980            match self {
13981                Self::UnknownOrdinal_(_) => true,
13982                _ => false,
13983            }
13984        }
13985    }
13986
13987    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Expose<'static>, ___E> for Expose
13988    where
13989        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
13990        ___E: ::fidl_next::Encoder,
13991    {
13992        #[inline]
13993        fn encode(
13994            self,
13995            encoder: &mut ___E,
13996            out: &mut ::core::mem::MaybeUninit<crate::wire::Expose<'static>>,
13997            _: (),
13998        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13999            ::fidl_next::munge!(let crate::wire::Expose { raw, _phantom: _ } = out);
14000
14001            match self {
14002                Self::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
14003                    ___E,
14004                    crate::wire::ExposeService<'static>,
14005                >(value, 1, encoder, raw, ())?,
14006
14007                Self::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
14008                    ___E,
14009                    crate::wire::ExposeProtocol<'static>,
14010                >(value, 2, encoder, raw, ())?,
14011
14012                Self::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
14013                    ___E,
14014                    crate::wire::ExposeDirectory<'static>,
14015                >(value, 3, encoder, raw, ())?,
14016
14017                Self::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
14018                    ___E,
14019                    crate::wire::ExposeRunner<'static>,
14020                >(value, 4, encoder, raw, ())?,
14021
14022                Self::Resolver(value) => ::fidl_next::RawWireUnion::encode_as::<
14023                    ___E,
14024                    crate::wire::ExposeResolver<'static>,
14025                >(value, 5, encoder, raw, ())?,
14026
14027                Self::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
14028                    ___E,
14029                    crate::wire::ExposeDictionary<'static>,
14030                >(value, 7, encoder, raw, ())?,
14031
14032                Self::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
14033                    ___E,
14034                    crate::wire::ExposeConfiguration<'static>,
14035                >(value, 8, encoder, raw, ())?,
14036
14037                Self::UnknownOrdinal_(ordinal) => {
14038                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
14039                }
14040            }
14041
14042            Ok(())
14043        }
14044    }
14045
14046    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Expose<'static>, ___E> for &'a Expose
14047    where
14048        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
14049        ___E: ::fidl_next::Encoder,
14050    {
14051        #[inline]
14052        fn encode(
14053            self,
14054            encoder: &mut ___E,
14055            out: &mut ::core::mem::MaybeUninit<crate::wire::Expose<'static>>,
14056            _: (),
14057        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14058            ::fidl_next::munge!(let crate::wire::Expose { raw, _phantom: _ } = out);
14059
14060            match self {
14061                Expose::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
14062                    ___E,
14063                    crate::wire::ExposeService<'static>,
14064                >(value, 1, encoder, raw, ())?,
14065
14066                Expose::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
14067                    ___E,
14068                    crate::wire::ExposeProtocol<'static>,
14069                >(value, 2, encoder, raw, ())?,
14070
14071                Expose::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
14072                    ___E,
14073                    crate::wire::ExposeDirectory<'static>,
14074                >(value, 3, encoder, raw, ())?,
14075
14076                Expose::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
14077                    ___E,
14078                    crate::wire::ExposeRunner<'static>,
14079                >(value, 4, encoder, raw, ())?,
14080
14081                Expose::Resolver(value) => ::fidl_next::RawWireUnion::encode_as::<
14082                    ___E,
14083                    crate::wire::ExposeResolver<'static>,
14084                >(value, 5, encoder, raw, ())?,
14085
14086                Expose::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
14087                    ___E,
14088                    crate::wire::ExposeDictionary<'static>,
14089                >(value, 7, encoder, raw, ())?,
14090
14091                Expose::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
14092                    ___E,
14093                    crate::wire::ExposeConfiguration<'static>,
14094                >(value, 8, encoder, raw, ())?,
14095
14096                Expose::UnknownOrdinal_(ordinal) => {
14097                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
14098                }
14099            }
14100
14101            Ok(())
14102        }
14103    }
14104
14105    unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Expose<'static>, ___E> for Expose
14106    where
14107        ___E: ?Sized,
14108        Expose: ::fidl_next::Encode<crate::wire::Expose<'static>, ___E>,
14109    {
14110        #[inline]
14111        fn encode_option(
14112            this: ::core::option::Option<Self>,
14113            encoder: &mut ___E,
14114            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Expose<'static>>,
14115            _: (),
14116        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14117            ::fidl_next::munge!(let crate::wire_optional::Expose { raw, _phantom: _ } = &mut *out);
14118
14119            if let Some(inner) = this {
14120                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
14121                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
14122            } else {
14123                ::fidl_next::RawWireUnion::encode_absent(raw);
14124            }
14125
14126            Ok(())
14127        }
14128    }
14129
14130    unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Expose<'static>, ___E>
14131        for &'a Expose
14132    where
14133        ___E: ?Sized,
14134        &'a Expose: ::fidl_next::Encode<crate::wire::Expose<'static>, ___E>,
14135    {
14136        #[inline]
14137        fn encode_option(
14138            this: ::core::option::Option<Self>,
14139            encoder: &mut ___E,
14140            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Expose<'static>>,
14141            _: (),
14142        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14143            ::fidl_next::munge!(let crate::wire_optional::Expose { raw, _phantom: _ } = &mut *out);
14144
14145            if let Some(inner) = this {
14146                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
14147                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
14148            } else {
14149                ::fidl_next::RawWireUnion::encode_absent(raw);
14150            }
14151
14152            Ok(())
14153        }
14154    }
14155
14156    impl<'de> ::fidl_next::FromWire<crate::wire::Expose<'de>> for Expose {
14157        #[inline]
14158        fn from_wire(wire: crate::wire::Expose<'de>) -> Self {
14159            let wire = ::core::mem::ManuallyDrop::new(wire);
14160            match wire.raw.ordinal() {
14161                1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
14162                    wire.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
14163                })),
14164
14165                2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
14166                    wire.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
14167                })),
14168
14169                3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
14170                    wire.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
14171                })),
14172
14173                4 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
14174                    wire.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
14175                })),
14176
14177                5 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
14178                    wire.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
14179                })),
14180
14181                7 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
14182                    wire.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
14183                })),
14184
14185                8 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
14186                    wire.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
14187                })),
14188
14189                ord => return Self::UnknownOrdinal_(ord as u64),
14190            }
14191        }
14192    }
14193
14194    impl<'de> ::fidl_next::FromWireRef<crate::wire::Expose<'de>> for Expose {
14195        #[inline]
14196        fn from_wire_ref(wire: &crate::wire::Expose<'de>) -> Self {
14197            match wire.raw.ordinal() {
14198                1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
14199                    wire.raw.get().deref_unchecked::<crate::wire::ExposeService<'de>>()
14200                })),
14201
14202                2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
14203                    wire.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'de>>()
14204                })),
14205
14206                3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
14207                    wire.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'de>>()
14208                })),
14209
14210                4 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
14211                    wire.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'de>>()
14212                })),
14213
14214                5 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
14215                    wire.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'de>>()
14216                })),
14217
14218                7 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
14219                    wire.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'de>>()
14220                })),
14221
14222                8 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
14223                    wire.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'de>>()
14224                })),
14225
14226                ord => return Self::UnknownOrdinal_(ord as u64),
14227            }
14228        }
14229    }
14230
14231    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>> for Expose {
14232        #[inline]
14233        fn from_wire_option(
14234            wire: crate::wire_optional::Expose<'de>,
14235        ) -> ::core::option::Option<Self> {
14236            if let Some(inner) = wire.into_option() {
14237                Some(::fidl_next::FromWire::from_wire(inner))
14238            } else {
14239                None
14240            }
14241        }
14242    }
14243
14244    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>> for Box<Expose> {
14245        #[inline]
14246        fn from_wire_option(
14247            wire: crate::wire_optional::Expose<'de>,
14248        ) -> ::core::option::Option<Self> {
14249            <
14250            Expose as ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>>
14251        >::from_wire_option(wire).map(Box::new)
14252        }
14253    }
14254
14255    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Expose<'de>> for Box<Expose> {
14256        #[inline]
14257        fn from_wire_option_ref(
14258            wire: &crate::wire_optional::Expose<'de>,
14259        ) -> ::core::option::Option<Self> {
14260            if let Some(inner) = wire.as_ref() {
14261                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
14262            } else {
14263                None
14264            }
14265        }
14266    }
14267
14268    #[doc = " Declares a service offered by a component to one of its children, which may\n have been offered by the component\'s containing realm, the component itself,\n or one of its other children.\n\n To learn more about services, see:\n https://fuchsia.dev/fuchsia-src/glossary#service\n"]
14269    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
14270    pub struct OfferService {
14271        pub source: ::core::option::Option<crate::natural::Ref>,
14272
14273        pub source_name: ::core::option::Option<::std::string::String>,
14274
14275        pub target: ::core::option::Option<crate::natural::Ref>,
14276
14277        pub target_name: ::core::option::Option<::std::string::String>,
14278
14279        pub source_instance_filter: ::core::option::Option<::std::vec::Vec<::std::string::String>>,
14280
14281        pub renamed_instances: ::core::option::Option<::std::vec::Vec<crate::natural::NameMapping>>,
14282
14283        pub availability: ::core::option::Option<crate::natural::Availability>,
14284
14285        pub source_dictionary: ::core::option::Option<::std::string::String>,
14286
14287        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
14288    }
14289
14290    impl OfferService {
14291        fn __max_ordinal(&self) -> usize {
14292            if self.dependency_type.is_some() {
14293                return 9;
14294            }
14295
14296            if self.source_dictionary.is_some() {
14297                return 8;
14298            }
14299
14300            if self.availability.is_some() {
14301                return 7;
14302            }
14303
14304            if self.renamed_instances.is_some() {
14305                return 6;
14306            }
14307
14308            if self.source_instance_filter.is_some() {
14309                return 5;
14310            }
14311
14312            if self.target_name.is_some() {
14313                return 4;
14314            }
14315
14316            if self.target.is_some() {
14317                return 3;
14318            }
14319
14320            if self.source_name.is_some() {
14321                return 2;
14322            }
14323
14324            if self.source.is_some() {
14325                return 1;
14326            }
14327
14328            0
14329        }
14330    }
14331
14332    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferService<'static>, ___E> for OfferService
14333    where
14334        ___E: ::fidl_next::Encoder + ?Sized,
14335    {
14336        #[inline]
14337        fn encode(
14338            mut self,
14339            encoder: &mut ___E,
14340            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferService<'static>>,
14341            _: (),
14342        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14343            ::fidl_next::munge!(let crate::wire::OfferService { table } = out);
14344
14345            let max_ord = self.__max_ordinal();
14346
14347            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
14348            ::fidl_next::Wire::zero_padding(&mut out);
14349
14350            let mut preallocated =
14351                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
14352
14353            for i in 1..=max_ord {
14354                match i {
14355                    9 => {
14356                        if let Some(value) = self.dependency_type.take() {
14357                            ::fidl_next::WireEnvelope::encode_value::<
14358                                crate::wire::DependencyType,
14359                                ___E,
14360                            >(
14361                                value, preallocated.encoder, &mut out, ()
14362                            )?;
14363                        } else {
14364                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14365                        }
14366                    }
14367
14368                    8 => {
14369                        if let Some(value) = self.source_dictionary.take() {
14370                            ::fidl_next::WireEnvelope::encode_value::<
14371                                ::fidl_next::WireString<'static>,
14372                                ___E,
14373                            >(
14374                                value, preallocated.encoder, &mut out, 1024
14375                            )?;
14376                        } else {
14377                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14378                        }
14379                    }
14380
14381                    7 => {
14382                        if let Some(value) = self.availability.take() {
14383                            ::fidl_next::WireEnvelope::encode_value::<
14384                                crate::wire::Availability,
14385                                ___E,
14386                            >(
14387                                value, preallocated.encoder, &mut out, ()
14388                            )?;
14389                        } else {
14390                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14391                        }
14392                    }
14393
14394                    6 => {
14395                        if let Some(value) = self.renamed_instances.take() {
14396                            ::fidl_next::WireEnvelope::encode_value::<
14397                                ::fidl_next::WireVector<'static, crate::wire::NameMapping<'static>>,
14398                                ___E,
14399                            >(
14400                                value, preallocated.encoder, &mut out, (4294967295, ())
14401                            )?;
14402                        } else {
14403                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14404                        }
14405                    }
14406
14407                    5 => {
14408                        if let Some(value) = self.source_instance_filter.take() {
14409                            ::fidl_next::WireEnvelope::encode_value::<
14410                                ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
14411                                ___E,
14412                            >(
14413                                value, preallocated.encoder, &mut out, (4294967295, 100)
14414                            )?;
14415                        } else {
14416                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14417                        }
14418                    }
14419
14420                    4 => {
14421                        if let Some(value) = self.target_name.take() {
14422                            ::fidl_next::WireEnvelope::encode_value::<
14423                                ::fidl_next::WireString<'static>,
14424                                ___E,
14425                            >(
14426                                value, preallocated.encoder, &mut out, 100
14427                            )?;
14428                        } else {
14429                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14430                        }
14431                    }
14432
14433                    3 => {
14434                        if let Some(value) = self.target.take() {
14435                            ::fidl_next::WireEnvelope::encode_value::<
14436                                crate::wire::Ref<'static>,
14437                                ___E,
14438                            >(
14439                                value, preallocated.encoder, &mut out, ()
14440                            )?;
14441                        } else {
14442                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14443                        }
14444                    }
14445
14446                    2 => {
14447                        if let Some(value) = self.source_name.take() {
14448                            ::fidl_next::WireEnvelope::encode_value::<
14449                                ::fidl_next::WireString<'static>,
14450                                ___E,
14451                            >(
14452                                value, preallocated.encoder, &mut out, 100
14453                            )?;
14454                        } else {
14455                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14456                        }
14457                    }
14458
14459                    1 => {
14460                        if let Some(value) = self.source.take() {
14461                            ::fidl_next::WireEnvelope::encode_value::<
14462                                crate::wire::Ref<'static>,
14463                                ___E,
14464                            >(
14465                                value, preallocated.encoder, &mut out, ()
14466                            )?;
14467                        } else {
14468                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14469                        }
14470                    }
14471
14472                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
14473                }
14474                unsafe {
14475                    preallocated.write_next(out.assume_init_ref());
14476                }
14477            }
14478
14479            ::fidl_next::WireTable::encode_len(table, max_ord);
14480
14481            Ok(())
14482        }
14483    }
14484
14485    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferService<'static>, ___E>
14486        for &'a OfferService
14487    where
14488        ___E: ::fidl_next::Encoder + ?Sized,
14489    {
14490        #[inline]
14491        fn encode(
14492            self,
14493            encoder: &mut ___E,
14494            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferService<'static>>,
14495            _: (),
14496        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14497            ::fidl_next::munge!(let crate::wire::OfferService { table } = out);
14498
14499            let max_ord = self.__max_ordinal();
14500
14501            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
14502            ::fidl_next::Wire::zero_padding(&mut out);
14503
14504            let mut preallocated =
14505                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
14506
14507            for i in 1..=max_ord {
14508                match i {
14509                    9 => {
14510                        if let Some(value) = &self.dependency_type {
14511                            ::fidl_next::WireEnvelope::encode_value::<
14512                                crate::wire::DependencyType,
14513                                ___E,
14514                            >(
14515                                value, preallocated.encoder, &mut out, ()
14516                            )?;
14517                        } else {
14518                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14519                        }
14520                    }
14521
14522                    8 => {
14523                        if let Some(value) = &self.source_dictionary {
14524                            ::fidl_next::WireEnvelope::encode_value::<
14525                                ::fidl_next::WireString<'static>,
14526                                ___E,
14527                            >(
14528                                value, preallocated.encoder, &mut out, 1024
14529                            )?;
14530                        } else {
14531                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14532                        }
14533                    }
14534
14535                    7 => {
14536                        if let Some(value) = &self.availability {
14537                            ::fidl_next::WireEnvelope::encode_value::<
14538                                crate::wire::Availability,
14539                                ___E,
14540                            >(
14541                                value, preallocated.encoder, &mut out, ()
14542                            )?;
14543                        } else {
14544                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14545                        }
14546                    }
14547
14548                    6 => {
14549                        if let Some(value) = &self.renamed_instances {
14550                            ::fidl_next::WireEnvelope::encode_value::<
14551                                ::fidl_next::WireVector<'static, crate::wire::NameMapping<'static>>,
14552                                ___E,
14553                            >(
14554                                value, preallocated.encoder, &mut out, (4294967295, ())
14555                            )?;
14556                        } else {
14557                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14558                        }
14559                    }
14560
14561                    5 => {
14562                        if let Some(value) = &self.source_instance_filter {
14563                            ::fidl_next::WireEnvelope::encode_value::<
14564                                ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
14565                                ___E,
14566                            >(
14567                                value, preallocated.encoder, &mut out, (4294967295, 100)
14568                            )?;
14569                        } else {
14570                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14571                        }
14572                    }
14573
14574                    4 => {
14575                        if let Some(value) = &self.target_name {
14576                            ::fidl_next::WireEnvelope::encode_value::<
14577                                ::fidl_next::WireString<'static>,
14578                                ___E,
14579                            >(
14580                                value, preallocated.encoder, &mut out, 100
14581                            )?;
14582                        } else {
14583                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14584                        }
14585                    }
14586
14587                    3 => {
14588                        if let Some(value) = &self.target {
14589                            ::fidl_next::WireEnvelope::encode_value::<
14590                                crate::wire::Ref<'static>,
14591                                ___E,
14592                            >(
14593                                value, preallocated.encoder, &mut out, ()
14594                            )?;
14595                        } else {
14596                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14597                        }
14598                    }
14599
14600                    2 => {
14601                        if let Some(value) = &self.source_name {
14602                            ::fidl_next::WireEnvelope::encode_value::<
14603                                ::fidl_next::WireString<'static>,
14604                                ___E,
14605                            >(
14606                                value, preallocated.encoder, &mut out, 100
14607                            )?;
14608                        } else {
14609                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14610                        }
14611                    }
14612
14613                    1 => {
14614                        if let Some(value) = &self.source {
14615                            ::fidl_next::WireEnvelope::encode_value::<
14616                                crate::wire::Ref<'static>,
14617                                ___E,
14618                            >(
14619                                value, preallocated.encoder, &mut out, ()
14620                            )?;
14621                        } else {
14622                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14623                        }
14624                    }
14625
14626                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
14627                }
14628                unsafe {
14629                    preallocated.write_next(out.assume_init_ref());
14630                }
14631            }
14632
14633            ::fidl_next::WireTable::encode_len(table, max_ord);
14634
14635            Ok(())
14636        }
14637    }
14638
14639    impl<'de> ::fidl_next::FromWire<crate::wire::OfferService<'de>> for OfferService {
14640        #[inline]
14641        fn from_wire(wire_: crate::wire::OfferService<'de>) -> Self {
14642            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
14643
14644            let source = wire_.table.get(1);
14645
14646            let source_name = wire_.table.get(2);
14647
14648            let target = wire_.table.get(3);
14649
14650            let target_name = wire_.table.get(4);
14651
14652            let source_instance_filter = wire_.table.get(5);
14653
14654            let renamed_instances = wire_.table.get(6);
14655
14656            let availability = wire_.table.get(7);
14657
14658            let source_dictionary = wire_.table.get(8);
14659
14660            let dependency_type = wire_.table.get(9);
14661
14662            Self {
14663
14664
14665                source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
14666                    unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
14667                )),
14668
14669
14670                source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
14671                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
14672                )),
14673
14674
14675                target: target.map(|envelope| ::fidl_next::FromWire::from_wire(
14676                    unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
14677                )),
14678
14679
14680                target_name: target_name.map(|envelope| ::fidl_next::FromWire::from_wire(
14681                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
14682                )),
14683
14684
14685                source_instance_filter: source_instance_filter.map(|envelope| ::fidl_next::FromWire::from_wire(
14686                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>() }
14687                )),
14688
14689
14690                renamed_instances: renamed_instances.map(|envelope| ::fidl_next::FromWire::from_wire(
14691                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::NameMapping<'de>>>() }
14692                )),
14693
14694
14695                availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
14696                    unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
14697                )),
14698
14699
14700                source_dictionary: source_dictionary.map(|envelope| ::fidl_next::FromWire::from_wire(
14701                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
14702                )),
14703
14704
14705                dependency_type: dependency_type.map(|envelope| ::fidl_next::FromWire::from_wire(
14706                    unsafe { envelope.read_unchecked::<crate::wire::DependencyType>() }
14707                )),
14708
14709        }
14710        }
14711    }
14712
14713    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferService<'de>> for OfferService {
14714        #[inline]
14715        fn from_wire_ref(wire: &crate::wire::OfferService<'de>) -> Self {
14716            Self {
14717
14718
14719                source: wire.table.get(1)
14720                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14721                        unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
14722                    )),
14723
14724
14725                source_name: wire.table.get(2)
14726                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14727                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
14728                    )),
14729
14730
14731                target: wire.table.get(3)
14732                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14733                        unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
14734                    )),
14735
14736
14737                target_name: wire.table.get(4)
14738                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14739                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
14740                    )),
14741
14742
14743                source_instance_filter: wire.table.get(5)
14744                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14745                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>() }
14746                    )),
14747
14748
14749                renamed_instances: wire.table.get(6)
14750                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14751                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::NameMapping<'de>>>() }
14752                    )),
14753
14754
14755                availability: wire.table.get(7)
14756                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14757                        unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
14758                    )),
14759
14760
14761                source_dictionary: wire.table.get(8)
14762                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14763                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
14764                    )),
14765
14766
14767                dependency_type: wire.table.get(9)
14768                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14769                        unsafe { envelope.deref_unchecked::<crate::wire::DependencyType>() }
14770                    )),
14771
14772        }
14773        }
14774    }
14775
14776    #[doc = " Declares a protocol offered by a component to one of its children,\n which may have been offered by the component\'s containing realm, the\n component itself, or one of its other children.\n\n To learn more about protocols, see:\n https://fuchsia.dev/fuchsia-src/glossary#protocol\n"]
14777    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
14778    pub struct OfferProtocol {
14779        pub source: ::core::option::Option<crate::natural::Ref>,
14780
14781        pub source_name: ::core::option::Option<::std::string::String>,
14782
14783        pub target: ::core::option::Option<crate::natural::Ref>,
14784
14785        pub target_name: ::core::option::Option<::std::string::String>,
14786
14787        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
14788
14789        pub availability: ::core::option::Option<crate::natural::Availability>,
14790
14791        pub source_dictionary: ::core::option::Option<::std::string::String>,
14792    }
14793
14794    impl OfferProtocol {
14795        fn __max_ordinal(&self) -> usize {
14796            if self.source_dictionary.is_some() {
14797                return 7;
14798            }
14799
14800            if self.availability.is_some() {
14801                return 6;
14802            }
14803
14804            if self.dependency_type.is_some() {
14805                return 5;
14806            }
14807
14808            if self.target_name.is_some() {
14809                return 4;
14810            }
14811
14812            if self.target.is_some() {
14813                return 3;
14814            }
14815
14816            if self.source_name.is_some() {
14817                return 2;
14818            }
14819
14820            if self.source.is_some() {
14821                return 1;
14822            }
14823
14824            0
14825        }
14826    }
14827
14828    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferProtocol<'static>, ___E> for OfferProtocol
14829    where
14830        ___E: ::fidl_next::Encoder + ?Sized,
14831    {
14832        #[inline]
14833        fn encode(
14834            mut self,
14835            encoder: &mut ___E,
14836            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferProtocol<'static>>,
14837            _: (),
14838        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14839            ::fidl_next::munge!(let crate::wire::OfferProtocol { table } = out);
14840
14841            let max_ord = self.__max_ordinal();
14842
14843            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
14844            ::fidl_next::Wire::zero_padding(&mut out);
14845
14846            let mut preallocated =
14847                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
14848
14849            for i in 1..=max_ord {
14850                match i {
14851                    7 => {
14852                        if let Some(value) = self.source_dictionary.take() {
14853                            ::fidl_next::WireEnvelope::encode_value::<
14854                                ::fidl_next::WireString<'static>,
14855                                ___E,
14856                            >(
14857                                value, preallocated.encoder, &mut out, 1024
14858                            )?;
14859                        } else {
14860                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14861                        }
14862                    }
14863
14864                    6 => {
14865                        if let Some(value) = self.availability.take() {
14866                            ::fidl_next::WireEnvelope::encode_value::<
14867                                crate::wire::Availability,
14868                                ___E,
14869                            >(
14870                                value, preallocated.encoder, &mut out, ()
14871                            )?;
14872                        } else {
14873                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14874                        }
14875                    }
14876
14877                    5 => {
14878                        if let Some(value) = self.dependency_type.take() {
14879                            ::fidl_next::WireEnvelope::encode_value::<
14880                                crate::wire::DependencyType,
14881                                ___E,
14882                            >(
14883                                value, preallocated.encoder, &mut out, ()
14884                            )?;
14885                        } else {
14886                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14887                        }
14888                    }
14889
14890                    4 => {
14891                        if let Some(value) = self.target_name.take() {
14892                            ::fidl_next::WireEnvelope::encode_value::<
14893                                ::fidl_next::WireString<'static>,
14894                                ___E,
14895                            >(
14896                                value, preallocated.encoder, &mut out, 100
14897                            )?;
14898                        } else {
14899                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14900                        }
14901                    }
14902
14903                    3 => {
14904                        if let Some(value) = self.target.take() {
14905                            ::fidl_next::WireEnvelope::encode_value::<
14906                                crate::wire::Ref<'static>,
14907                                ___E,
14908                            >(
14909                                value, preallocated.encoder, &mut out, ()
14910                            )?;
14911                        } else {
14912                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14913                        }
14914                    }
14915
14916                    2 => {
14917                        if let Some(value) = self.source_name.take() {
14918                            ::fidl_next::WireEnvelope::encode_value::<
14919                                ::fidl_next::WireString<'static>,
14920                                ___E,
14921                            >(
14922                                value, preallocated.encoder, &mut out, 100
14923                            )?;
14924                        } else {
14925                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14926                        }
14927                    }
14928
14929                    1 => {
14930                        if let Some(value) = self.source.take() {
14931                            ::fidl_next::WireEnvelope::encode_value::<
14932                                crate::wire::Ref<'static>,
14933                                ___E,
14934                            >(
14935                                value, preallocated.encoder, &mut out, ()
14936                            )?;
14937                        } else {
14938                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14939                        }
14940                    }
14941
14942                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
14943                }
14944                unsafe {
14945                    preallocated.write_next(out.assume_init_ref());
14946                }
14947            }
14948
14949            ::fidl_next::WireTable::encode_len(table, max_ord);
14950
14951            Ok(())
14952        }
14953    }
14954
14955    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferProtocol<'static>, ___E>
14956        for &'a OfferProtocol
14957    where
14958        ___E: ::fidl_next::Encoder + ?Sized,
14959    {
14960        #[inline]
14961        fn encode(
14962            self,
14963            encoder: &mut ___E,
14964            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferProtocol<'static>>,
14965            _: (),
14966        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14967            ::fidl_next::munge!(let crate::wire::OfferProtocol { table } = out);
14968
14969            let max_ord = self.__max_ordinal();
14970
14971            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
14972            ::fidl_next::Wire::zero_padding(&mut out);
14973
14974            let mut preallocated =
14975                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
14976
14977            for i in 1..=max_ord {
14978                match i {
14979                    7 => {
14980                        if let Some(value) = &self.source_dictionary {
14981                            ::fidl_next::WireEnvelope::encode_value::<
14982                                ::fidl_next::WireString<'static>,
14983                                ___E,
14984                            >(
14985                                value, preallocated.encoder, &mut out, 1024
14986                            )?;
14987                        } else {
14988                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
14989                        }
14990                    }
14991
14992                    6 => {
14993                        if let Some(value) = &self.availability {
14994                            ::fidl_next::WireEnvelope::encode_value::<
14995                                crate::wire::Availability,
14996                                ___E,
14997                            >(
14998                                value, preallocated.encoder, &mut out, ()
14999                            )?;
15000                        } else {
15001                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15002                        }
15003                    }
15004
15005                    5 => {
15006                        if let Some(value) = &self.dependency_type {
15007                            ::fidl_next::WireEnvelope::encode_value::<
15008                                crate::wire::DependencyType,
15009                                ___E,
15010                            >(
15011                                value, preallocated.encoder, &mut out, ()
15012                            )?;
15013                        } else {
15014                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15015                        }
15016                    }
15017
15018                    4 => {
15019                        if let Some(value) = &self.target_name {
15020                            ::fidl_next::WireEnvelope::encode_value::<
15021                                ::fidl_next::WireString<'static>,
15022                                ___E,
15023                            >(
15024                                value, preallocated.encoder, &mut out, 100
15025                            )?;
15026                        } else {
15027                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15028                        }
15029                    }
15030
15031                    3 => {
15032                        if let Some(value) = &self.target {
15033                            ::fidl_next::WireEnvelope::encode_value::<
15034                                crate::wire::Ref<'static>,
15035                                ___E,
15036                            >(
15037                                value, preallocated.encoder, &mut out, ()
15038                            )?;
15039                        } else {
15040                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15041                        }
15042                    }
15043
15044                    2 => {
15045                        if let Some(value) = &self.source_name {
15046                            ::fidl_next::WireEnvelope::encode_value::<
15047                                ::fidl_next::WireString<'static>,
15048                                ___E,
15049                            >(
15050                                value, preallocated.encoder, &mut out, 100
15051                            )?;
15052                        } else {
15053                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15054                        }
15055                    }
15056
15057                    1 => {
15058                        if let Some(value) = &self.source {
15059                            ::fidl_next::WireEnvelope::encode_value::<
15060                                crate::wire::Ref<'static>,
15061                                ___E,
15062                            >(
15063                                value, preallocated.encoder, &mut out, ()
15064                            )?;
15065                        } else {
15066                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15067                        }
15068                    }
15069
15070                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
15071                }
15072                unsafe {
15073                    preallocated.write_next(out.assume_init_ref());
15074                }
15075            }
15076
15077            ::fidl_next::WireTable::encode_len(table, max_ord);
15078
15079            Ok(())
15080        }
15081    }
15082
15083    impl<'de> ::fidl_next::FromWire<crate::wire::OfferProtocol<'de>> for OfferProtocol {
15084        #[inline]
15085        fn from_wire(wire_: crate::wire::OfferProtocol<'de>) -> Self {
15086            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15087
15088            let source = wire_.table.get(1);
15089
15090            let source_name = wire_.table.get(2);
15091
15092            let target = wire_.table.get(3);
15093
15094            let target_name = wire_.table.get(4);
15095
15096            let dependency_type = wire_.table.get(5);
15097
15098            let availability = wire_.table.get(6);
15099
15100            let source_dictionary = wire_.table.get(7);
15101
15102            Self {
15103                source: source.map(|envelope| {
15104                    ::fidl_next::FromWire::from_wire(unsafe {
15105                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
15106                    })
15107                }),
15108
15109                source_name: source_name.map(|envelope| {
15110                    ::fidl_next::FromWire::from_wire(unsafe {
15111                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15112                    })
15113                }),
15114
15115                target: target.map(|envelope| {
15116                    ::fidl_next::FromWire::from_wire(unsafe {
15117                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
15118                    })
15119                }),
15120
15121                target_name: target_name.map(|envelope| {
15122                    ::fidl_next::FromWire::from_wire(unsafe {
15123                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15124                    })
15125                }),
15126
15127                dependency_type: dependency_type.map(|envelope| {
15128                    ::fidl_next::FromWire::from_wire(unsafe {
15129                        envelope.read_unchecked::<crate::wire::DependencyType>()
15130                    })
15131                }),
15132
15133                availability: availability.map(|envelope| {
15134                    ::fidl_next::FromWire::from_wire(unsafe {
15135                        envelope.read_unchecked::<crate::wire::Availability>()
15136                    })
15137                }),
15138
15139                source_dictionary: source_dictionary.map(|envelope| {
15140                    ::fidl_next::FromWire::from_wire(unsafe {
15141                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15142                    })
15143                }),
15144            }
15145        }
15146    }
15147
15148    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferProtocol<'de>> for OfferProtocol {
15149        #[inline]
15150        fn from_wire_ref(wire: &crate::wire::OfferProtocol<'de>) -> Self {
15151            Self {
15152                source: wire.table.get(1).map(|envelope| {
15153                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15154                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15155                    })
15156                }),
15157
15158                source_name: wire.table.get(2).map(|envelope| {
15159                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15160                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
15161                    })
15162                }),
15163
15164                target: wire.table.get(3).map(|envelope| {
15165                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15166                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15167                    })
15168                }),
15169
15170                target_name: wire.table.get(4).map(|envelope| {
15171                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15172                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
15173                    })
15174                }),
15175
15176                dependency_type: wire.table.get(5).map(|envelope| {
15177                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15178                        envelope.deref_unchecked::<crate::wire::DependencyType>()
15179                    })
15180                }),
15181
15182                availability: wire.table.get(6).map(|envelope| {
15183                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15184                        envelope.deref_unchecked::<crate::wire::Availability>()
15185                    })
15186                }),
15187
15188                source_dictionary: wire.table.get(7).map(|envelope| {
15189                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15190                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
15191                    })
15192                }),
15193            }
15194        }
15195    }
15196
15197    #[doc = " Declares a directory offered by a component to one of its children, which\n may have been offered by the component\'s containing realm, the component\n itself, or one of its other children.\n"]
15198    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15199    pub struct OfferDirectory {
15200        pub source: ::core::option::Option<crate::natural::Ref>,
15201
15202        pub source_name: ::core::option::Option<::std::string::String>,
15203
15204        pub target: ::core::option::Option<crate::natural::Ref>,
15205
15206        pub target_name: ::core::option::Option<::std::string::String>,
15207
15208        pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
15209
15210        pub subdir: ::core::option::Option<::std::string::String>,
15211
15212        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
15213
15214        pub availability: ::core::option::Option<crate::natural::Availability>,
15215
15216        pub source_dictionary: ::core::option::Option<::std::string::String>,
15217    }
15218
15219    impl OfferDirectory {
15220        fn __max_ordinal(&self) -> usize {
15221            if self.source_dictionary.is_some() {
15222                return 9;
15223            }
15224
15225            if self.availability.is_some() {
15226                return 8;
15227            }
15228
15229            if self.dependency_type.is_some() {
15230                return 7;
15231            }
15232
15233            if self.subdir.is_some() {
15234                return 6;
15235            }
15236
15237            if self.rights.is_some() {
15238                return 5;
15239            }
15240
15241            if self.target_name.is_some() {
15242                return 4;
15243            }
15244
15245            if self.target.is_some() {
15246                return 3;
15247            }
15248
15249            if self.source_name.is_some() {
15250                return 2;
15251            }
15252
15253            if self.source.is_some() {
15254                return 1;
15255            }
15256
15257            0
15258        }
15259    }
15260
15261    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferDirectory<'static>, ___E> for OfferDirectory
15262    where
15263        ___E: ::fidl_next::Encoder + ?Sized,
15264    {
15265        #[inline]
15266        fn encode(
15267            mut self,
15268            encoder: &mut ___E,
15269            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDirectory<'static>>,
15270            _: (),
15271        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15272            ::fidl_next::munge!(let crate::wire::OfferDirectory { table } = out);
15273
15274            let max_ord = self.__max_ordinal();
15275
15276            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
15277            ::fidl_next::Wire::zero_padding(&mut out);
15278
15279            let mut preallocated =
15280                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
15281
15282            for i in 1..=max_ord {
15283                match i {
15284                    9 => {
15285                        if let Some(value) = self.source_dictionary.take() {
15286                            ::fidl_next::WireEnvelope::encode_value::<
15287                                ::fidl_next::WireString<'static>,
15288                                ___E,
15289                            >(
15290                                value, preallocated.encoder, &mut out, 1024
15291                            )?;
15292                        } else {
15293                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15294                        }
15295                    }
15296
15297                    8 => {
15298                        if let Some(value) = self.availability.take() {
15299                            ::fidl_next::WireEnvelope::encode_value::<
15300                                crate::wire::Availability,
15301                                ___E,
15302                            >(
15303                                value, preallocated.encoder, &mut out, ()
15304                            )?;
15305                        } else {
15306                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15307                        }
15308                    }
15309
15310                    7 => {
15311                        if let Some(value) = self.dependency_type.take() {
15312                            ::fidl_next::WireEnvelope::encode_value::<
15313                                crate::wire::DependencyType,
15314                                ___E,
15315                            >(
15316                                value, preallocated.encoder, &mut out, ()
15317                            )?;
15318                        } else {
15319                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15320                        }
15321                    }
15322
15323                    6 => {
15324                        if let Some(value) = self.subdir.take() {
15325                            ::fidl_next::WireEnvelope::encode_value::<
15326                                ::fidl_next::WireString<'static>,
15327                                ___E,
15328                            >(
15329                                value, preallocated.encoder, &mut out, 1024
15330                            )?;
15331                        } else {
15332                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15333                        }
15334                    }
15335
15336                    5 => {
15337                        if let Some(value) = self.rights.take() {
15338                            ::fidl_next::WireEnvelope::encode_value::<
15339                                ::fidl_next_common_fuchsia_io::wire::Operations,
15340                                ___E,
15341                            >(
15342                                value, preallocated.encoder, &mut out, ()
15343                            )?;
15344                        } else {
15345                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15346                        }
15347                    }
15348
15349                    4 => {
15350                        if let Some(value) = self.target_name.take() {
15351                            ::fidl_next::WireEnvelope::encode_value::<
15352                                ::fidl_next::WireString<'static>,
15353                                ___E,
15354                            >(
15355                                value, preallocated.encoder, &mut out, 100
15356                            )?;
15357                        } else {
15358                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15359                        }
15360                    }
15361
15362                    3 => {
15363                        if let Some(value) = self.target.take() {
15364                            ::fidl_next::WireEnvelope::encode_value::<
15365                                crate::wire::Ref<'static>,
15366                                ___E,
15367                            >(
15368                                value, preallocated.encoder, &mut out, ()
15369                            )?;
15370                        } else {
15371                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15372                        }
15373                    }
15374
15375                    2 => {
15376                        if let Some(value) = self.source_name.take() {
15377                            ::fidl_next::WireEnvelope::encode_value::<
15378                                ::fidl_next::WireString<'static>,
15379                                ___E,
15380                            >(
15381                                value, preallocated.encoder, &mut out, 100
15382                            )?;
15383                        } else {
15384                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15385                        }
15386                    }
15387
15388                    1 => {
15389                        if let Some(value) = self.source.take() {
15390                            ::fidl_next::WireEnvelope::encode_value::<
15391                                crate::wire::Ref<'static>,
15392                                ___E,
15393                            >(
15394                                value, preallocated.encoder, &mut out, ()
15395                            )?;
15396                        } else {
15397                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15398                        }
15399                    }
15400
15401                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
15402                }
15403                unsafe {
15404                    preallocated.write_next(out.assume_init_ref());
15405                }
15406            }
15407
15408            ::fidl_next::WireTable::encode_len(table, max_ord);
15409
15410            Ok(())
15411        }
15412    }
15413
15414    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferDirectory<'static>, ___E>
15415        for &'a OfferDirectory
15416    where
15417        ___E: ::fidl_next::Encoder + ?Sized,
15418    {
15419        #[inline]
15420        fn encode(
15421            self,
15422            encoder: &mut ___E,
15423            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDirectory<'static>>,
15424            _: (),
15425        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15426            ::fidl_next::munge!(let crate::wire::OfferDirectory { table } = out);
15427
15428            let max_ord = self.__max_ordinal();
15429
15430            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
15431            ::fidl_next::Wire::zero_padding(&mut out);
15432
15433            let mut preallocated =
15434                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
15435
15436            for i in 1..=max_ord {
15437                match i {
15438                    9 => {
15439                        if let Some(value) = &self.source_dictionary {
15440                            ::fidl_next::WireEnvelope::encode_value::<
15441                                ::fidl_next::WireString<'static>,
15442                                ___E,
15443                            >(
15444                                value, preallocated.encoder, &mut out, 1024
15445                            )?;
15446                        } else {
15447                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15448                        }
15449                    }
15450
15451                    8 => {
15452                        if let Some(value) = &self.availability {
15453                            ::fidl_next::WireEnvelope::encode_value::<
15454                                crate::wire::Availability,
15455                                ___E,
15456                            >(
15457                                value, preallocated.encoder, &mut out, ()
15458                            )?;
15459                        } else {
15460                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15461                        }
15462                    }
15463
15464                    7 => {
15465                        if let Some(value) = &self.dependency_type {
15466                            ::fidl_next::WireEnvelope::encode_value::<
15467                                crate::wire::DependencyType,
15468                                ___E,
15469                            >(
15470                                value, preallocated.encoder, &mut out, ()
15471                            )?;
15472                        } else {
15473                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15474                        }
15475                    }
15476
15477                    6 => {
15478                        if let Some(value) = &self.subdir {
15479                            ::fidl_next::WireEnvelope::encode_value::<
15480                                ::fidl_next::WireString<'static>,
15481                                ___E,
15482                            >(
15483                                value, preallocated.encoder, &mut out, 1024
15484                            )?;
15485                        } else {
15486                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15487                        }
15488                    }
15489
15490                    5 => {
15491                        if let Some(value) = &self.rights {
15492                            ::fidl_next::WireEnvelope::encode_value::<
15493                                ::fidl_next_common_fuchsia_io::wire::Operations,
15494                                ___E,
15495                            >(
15496                                value, preallocated.encoder, &mut out, ()
15497                            )?;
15498                        } else {
15499                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15500                        }
15501                    }
15502
15503                    4 => {
15504                        if let Some(value) = &self.target_name {
15505                            ::fidl_next::WireEnvelope::encode_value::<
15506                                ::fidl_next::WireString<'static>,
15507                                ___E,
15508                            >(
15509                                value, preallocated.encoder, &mut out, 100
15510                            )?;
15511                        } else {
15512                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15513                        }
15514                    }
15515
15516                    3 => {
15517                        if let Some(value) = &self.target {
15518                            ::fidl_next::WireEnvelope::encode_value::<
15519                                crate::wire::Ref<'static>,
15520                                ___E,
15521                            >(
15522                                value, preallocated.encoder, &mut out, ()
15523                            )?;
15524                        } else {
15525                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15526                        }
15527                    }
15528
15529                    2 => {
15530                        if let Some(value) = &self.source_name {
15531                            ::fidl_next::WireEnvelope::encode_value::<
15532                                ::fidl_next::WireString<'static>,
15533                                ___E,
15534                            >(
15535                                value, preallocated.encoder, &mut out, 100
15536                            )?;
15537                        } else {
15538                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15539                        }
15540                    }
15541
15542                    1 => {
15543                        if let Some(value) = &self.source {
15544                            ::fidl_next::WireEnvelope::encode_value::<
15545                                crate::wire::Ref<'static>,
15546                                ___E,
15547                            >(
15548                                value, preallocated.encoder, &mut out, ()
15549                            )?;
15550                        } else {
15551                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15552                        }
15553                    }
15554
15555                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
15556                }
15557                unsafe {
15558                    preallocated.write_next(out.assume_init_ref());
15559                }
15560            }
15561
15562            ::fidl_next::WireTable::encode_len(table, max_ord);
15563
15564            Ok(())
15565        }
15566    }
15567
15568    impl<'de> ::fidl_next::FromWire<crate::wire::OfferDirectory<'de>> for OfferDirectory {
15569        #[inline]
15570        fn from_wire(wire_: crate::wire::OfferDirectory<'de>) -> Self {
15571            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15572
15573            let source = wire_.table.get(1);
15574
15575            let source_name = wire_.table.get(2);
15576
15577            let target = wire_.table.get(3);
15578
15579            let target_name = wire_.table.get(4);
15580
15581            let rights = wire_.table.get(5);
15582
15583            let subdir = wire_.table.get(6);
15584
15585            let dependency_type = wire_.table.get(7);
15586
15587            let availability = wire_.table.get(8);
15588
15589            let source_dictionary = wire_.table.get(9);
15590
15591            Self {
15592                source: source.map(|envelope| {
15593                    ::fidl_next::FromWire::from_wire(unsafe {
15594                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
15595                    })
15596                }),
15597
15598                source_name: source_name.map(|envelope| {
15599                    ::fidl_next::FromWire::from_wire(unsafe {
15600                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15601                    })
15602                }),
15603
15604                target: target.map(|envelope| {
15605                    ::fidl_next::FromWire::from_wire(unsafe {
15606                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
15607                    })
15608                }),
15609
15610                target_name: target_name.map(|envelope| {
15611                    ::fidl_next::FromWire::from_wire(unsafe {
15612                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15613                    })
15614                }),
15615
15616                rights: rights.map(|envelope| {
15617                    ::fidl_next::FromWire::from_wire(unsafe {
15618                        envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
15619                    })
15620                }),
15621
15622                subdir: subdir.map(|envelope| {
15623                    ::fidl_next::FromWire::from_wire(unsafe {
15624                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15625                    })
15626                }),
15627
15628                dependency_type: dependency_type.map(|envelope| {
15629                    ::fidl_next::FromWire::from_wire(unsafe {
15630                        envelope.read_unchecked::<crate::wire::DependencyType>()
15631                    })
15632                }),
15633
15634                availability: availability.map(|envelope| {
15635                    ::fidl_next::FromWire::from_wire(unsafe {
15636                        envelope.read_unchecked::<crate::wire::Availability>()
15637                    })
15638                }),
15639
15640                source_dictionary: source_dictionary.map(|envelope| {
15641                    ::fidl_next::FromWire::from_wire(unsafe {
15642                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15643                    })
15644                }),
15645            }
15646        }
15647    }
15648
15649    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferDirectory<'de>> for OfferDirectory {
15650        #[inline]
15651        fn from_wire_ref(wire: &crate::wire::OfferDirectory<'de>) -> Self {
15652            Self {
15653                source: wire.table.get(1).map(|envelope| {
15654                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15655                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15656                    })
15657                }),
15658
15659                source_name: wire.table.get(2).map(|envelope| {
15660                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15661                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
15662                    })
15663                }),
15664
15665                target: wire.table.get(3).map(|envelope| {
15666                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15667                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15668                    })
15669                }),
15670
15671                target_name: wire.table.get(4).map(|envelope| {
15672                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15673                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
15674                    })
15675                }),
15676
15677                rights: wire.table.get(5).map(|envelope| {
15678                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15679                        envelope
15680                            .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
15681                    })
15682                }),
15683
15684                subdir: wire.table.get(6).map(|envelope| {
15685                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15686                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
15687                    })
15688                }),
15689
15690                dependency_type: wire.table.get(7).map(|envelope| {
15691                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15692                        envelope.deref_unchecked::<crate::wire::DependencyType>()
15693                    })
15694                }),
15695
15696                availability: wire.table.get(8).map(|envelope| {
15697                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15698                        envelope.deref_unchecked::<crate::wire::Availability>()
15699                    })
15700                }),
15701
15702                source_dictionary: wire.table.get(9).map(|envelope| {
15703                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15704                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
15705                    })
15706                }),
15707            }
15708        }
15709    }
15710
15711    #[doc = " Declares a storage capability offered by a component to one of its children,\n such as meta storage offered by the component\'s containing realm or cache\n storage offered by the component itself.\n"]
15712    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15713    pub struct OfferStorage {
15714        pub source_name: ::core::option::Option<::std::string::String>,
15715
15716        pub source: ::core::option::Option<crate::natural::Ref>,
15717
15718        pub target: ::core::option::Option<crate::natural::Ref>,
15719
15720        pub target_name: ::core::option::Option<::std::string::String>,
15721
15722        pub availability: ::core::option::Option<crate::natural::Availability>,
15723    }
15724
15725    impl OfferStorage {
15726        fn __max_ordinal(&self) -> usize {
15727            if self.availability.is_some() {
15728                return 5;
15729            }
15730
15731            if self.target_name.is_some() {
15732                return 4;
15733            }
15734
15735            if self.target.is_some() {
15736                return 3;
15737            }
15738
15739            if self.source.is_some() {
15740                return 2;
15741            }
15742
15743            if self.source_name.is_some() {
15744                return 1;
15745            }
15746
15747            0
15748        }
15749    }
15750
15751    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferStorage<'static>, ___E> for OfferStorage
15752    where
15753        ___E: ::fidl_next::Encoder + ?Sized,
15754    {
15755        #[inline]
15756        fn encode(
15757            mut self,
15758            encoder: &mut ___E,
15759            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferStorage<'static>>,
15760            _: (),
15761        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15762            ::fidl_next::munge!(let crate::wire::OfferStorage { table } = out);
15763
15764            let max_ord = self.__max_ordinal();
15765
15766            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
15767            ::fidl_next::Wire::zero_padding(&mut out);
15768
15769            let mut preallocated =
15770                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
15771
15772            for i in 1..=max_ord {
15773                match i {
15774                    5 => {
15775                        if let Some(value) = self.availability.take() {
15776                            ::fidl_next::WireEnvelope::encode_value::<
15777                                crate::wire::Availability,
15778                                ___E,
15779                            >(
15780                                value, preallocated.encoder, &mut out, ()
15781                            )?;
15782                        } else {
15783                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15784                        }
15785                    }
15786
15787                    4 => {
15788                        if let Some(value) = self.target_name.take() {
15789                            ::fidl_next::WireEnvelope::encode_value::<
15790                                ::fidl_next::WireString<'static>,
15791                                ___E,
15792                            >(
15793                                value, preallocated.encoder, &mut out, 100
15794                            )?;
15795                        } else {
15796                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15797                        }
15798                    }
15799
15800                    3 => {
15801                        if let Some(value) = self.target.take() {
15802                            ::fidl_next::WireEnvelope::encode_value::<
15803                                crate::wire::Ref<'static>,
15804                                ___E,
15805                            >(
15806                                value, preallocated.encoder, &mut out, ()
15807                            )?;
15808                        } else {
15809                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15810                        }
15811                    }
15812
15813                    2 => {
15814                        if let Some(value) = self.source.take() {
15815                            ::fidl_next::WireEnvelope::encode_value::<
15816                                crate::wire::Ref<'static>,
15817                                ___E,
15818                            >(
15819                                value, preallocated.encoder, &mut out, ()
15820                            )?;
15821                        } else {
15822                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15823                        }
15824                    }
15825
15826                    1 => {
15827                        if let Some(value) = self.source_name.take() {
15828                            ::fidl_next::WireEnvelope::encode_value::<
15829                                ::fidl_next::WireString<'static>,
15830                                ___E,
15831                            >(
15832                                value, preallocated.encoder, &mut out, 100
15833                            )?;
15834                        } else {
15835                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15836                        }
15837                    }
15838
15839                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
15840                }
15841                unsafe {
15842                    preallocated.write_next(out.assume_init_ref());
15843                }
15844            }
15845
15846            ::fidl_next::WireTable::encode_len(table, max_ord);
15847
15848            Ok(())
15849        }
15850    }
15851
15852    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferStorage<'static>, ___E>
15853        for &'a OfferStorage
15854    where
15855        ___E: ::fidl_next::Encoder + ?Sized,
15856    {
15857        #[inline]
15858        fn encode(
15859            self,
15860            encoder: &mut ___E,
15861            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferStorage<'static>>,
15862            _: (),
15863        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15864            ::fidl_next::munge!(let crate::wire::OfferStorage { table } = out);
15865
15866            let max_ord = self.__max_ordinal();
15867
15868            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
15869            ::fidl_next::Wire::zero_padding(&mut out);
15870
15871            let mut preallocated =
15872                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
15873
15874            for i in 1..=max_ord {
15875                match i {
15876                    5 => {
15877                        if let Some(value) = &self.availability {
15878                            ::fidl_next::WireEnvelope::encode_value::<
15879                                crate::wire::Availability,
15880                                ___E,
15881                            >(
15882                                value, preallocated.encoder, &mut out, ()
15883                            )?;
15884                        } else {
15885                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15886                        }
15887                    }
15888
15889                    4 => {
15890                        if let Some(value) = &self.target_name {
15891                            ::fidl_next::WireEnvelope::encode_value::<
15892                                ::fidl_next::WireString<'static>,
15893                                ___E,
15894                            >(
15895                                value, preallocated.encoder, &mut out, 100
15896                            )?;
15897                        } else {
15898                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15899                        }
15900                    }
15901
15902                    3 => {
15903                        if let Some(value) = &self.target {
15904                            ::fidl_next::WireEnvelope::encode_value::<
15905                                crate::wire::Ref<'static>,
15906                                ___E,
15907                            >(
15908                                value, preallocated.encoder, &mut out, ()
15909                            )?;
15910                        } else {
15911                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15912                        }
15913                    }
15914
15915                    2 => {
15916                        if let Some(value) = &self.source {
15917                            ::fidl_next::WireEnvelope::encode_value::<
15918                                crate::wire::Ref<'static>,
15919                                ___E,
15920                            >(
15921                                value, preallocated.encoder, &mut out, ()
15922                            )?;
15923                        } else {
15924                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15925                        }
15926                    }
15927
15928                    1 => {
15929                        if let Some(value) = &self.source_name {
15930                            ::fidl_next::WireEnvelope::encode_value::<
15931                                ::fidl_next::WireString<'static>,
15932                                ___E,
15933                            >(
15934                                value, preallocated.encoder, &mut out, 100
15935                            )?;
15936                        } else {
15937                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
15938                        }
15939                    }
15940
15941                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
15942                }
15943                unsafe {
15944                    preallocated.write_next(out.assume_init_ref());
15945                }
15946            }
15947
15948            ::fidl_next::WireTable::encode_len(table, max_ord);
15949
15950            Ok(())
15951        }
15952    }
15953
15954    impl<'de> ::fidl_next::FromWire<crate::wire::OfferStorage<'de>> for OfferStorage {
15955        #[inline]
15956        fn from_wire(wire_: crate::wire::OfferStorage<'de>) -> Self {
15957            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15958
15959            let source_name = wire_.table.get(1);
15960
15961            let source = wire_.table.get(2);
15962
15963            let target = wire_.table.get(3);
15964
15965            let target_name = wire_.table.get(4);
15966
15967            let availability = wire_.table.get(5);
15968
15969            Self {
15970                source_name: source_name.map(|envelope| {
15971                    ::fidl_next::FromWire::from_wire(unsafe {
15972                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15973                    })
15974                }),
15975
15976                source: source.map(|envelope| {
15977                    ::fidl_next::FromWire::from_wire(unsafe {
15978                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
15979                    })
15980                }),
15981
15982                target: target.map(|envelope| {
15983                    ::fidl_next::FromWire::from_wire(unsafe {
15984                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
15985                    })
15986                }),
15987
15988                target_name: target_name.map(|envelope| {
15989                    ::fidl_next::FromWire::from_wire(unsafe {
15990                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
15991                    })
15992                }),
15993
15994                availability: availability.map(|envelope| {
15995                    ::fidl_next::FromWire::from_wire(unsafe {
15996                        envelope.read_unchecked::<crate::wire::Availability>()
15997                    })
15998                }),
15999            }
16000        }
16001    }
16002
16003    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferStorage<'de>> for OfferStorage {
16004        #[inline]
16005        fn from_wire_ref(wire: &crate::wire::OfferStorage<'de>) -> Self {
16006            Self {
16007                source_name: wire.table.get(1).map(|envelope| {
16008                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16009                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16010                    })
16011                }),
16012
16013                source: wire.table.get(2).map(|envelope| {
16014                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16015                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16016                    })
16017                }),
16018
16019                target: wire.table.get(3).map(|envelope| {
16020                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16021                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16022                    })
16023                }),
16024
16025                target_name: wire.table.get(4).map(|envelope| {
16026                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16027                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16028                    })
16029                }),
16030
16031                availability: wire.table.get(5).map(|envelope| {
16032                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16033                        envelope.deref_unchecked::<crate::wire::Availability>()
16034                    })
16035                }),
16036            }
16037        }
16038    }
16039
16040    #[doc = " Declares a runner offered by a component to one of its children, which may\n have been offered by the component\'s containing realm, the component itself,\n or one of its other children.\n"]
16041    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16042    pub struct OfferRunner {
16043        pub source: ::core::option::Option<crate::natural::Ref>,
16044
16045        pub source_name: ::core::option::Option<::std::string::String>,
16046
16047        pub target: ::core::option::Option<crate::natural::Ref>,
16048
16049        pub target_name: ::core::option::Option<::std::string::String>,
16050
16051        pub source_dictionary: ::core::option::Option<::std::string::String>,
16052    }
16053
16054    impl OfferRunner {
16055        fn __max_ordinal(&self) -> usize {
16056            if self.source_dictionary.is_some() {
16057                return 5;
16058            }
16059
16060            if self.target_name.is_some() {
16061                return 4;
16062            }
16063
16064            if self.target.is_some() {
16065                return 3;
16066            }
16067
16068            if self.source_name.is_some() {
16069                return 2;
16070            }
16071
16072            if self.source.is_some() {
16073                return 1;
16074            }
16075
16076            0
16077        }
16078    }
16079
16080    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferRunner<'static>, ___E> for OfferRunner
16081    where
16082        ___E: ::fidl_next::Encoder + ?Sized,
16083    {
16084        #[inline]
16085        fn encode(
16086            mut self,
16087            encoder: &mut ___E,
16088            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferRunner<'static>>,
16089            _: (),
16090        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16091            ::fidl_next::munge!(let crate::wire::OfferRunner { table } = out);
16092
16093            let max_ord = self.__max_ordinal();
16094
16095            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
16096            ::fidl_next::Wire::zero_padding(&mut out);
16097
16098            let mut preallocated =
16099                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
16100
16101            for i in 1..=max_ord {
16102                match i {
16103                    5 => {
16104                        if let Some(value) = self.source_dictionary.take() {
16105                            ::fidl_next::WireEnvelope::encode_value::<
16106                                ::fidl_next::WireString<'static>,
16107                                ___E,
16108                            >(
16109                                value, preallocated.encoder, &mut out, 1024
16110                            )?;
16111                        } else {
16112                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16113                        }
16114                    }
16115
16116                    4 => {
16117                        if let Some(value) = self.target_name.take() {
16118                            ::fidl_next::WireEnvelope::encode_value::<
16119                                ::fidl_next::WireString<'static>,
16120                                ___E,
16121                            >(
16122                                value, preallocated.encoder, &mut out, 100
16123                            )?;
16124                        } else {
16125                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16126                        }
16127                    }
16128
16129                    3 => {
16130                        if let Some(value) = self.target.take() {
16131                            ::fidl_next::WireEnvelope::encode_value::<
16132                                crate::wire::Ref<'static>,
16133                                ___E,
16134                            >(
16135                                value, preallocated.encoder, &mut out, ()
16136                            )?;
16137                        } else {
16138                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16139                        }
16140                    }
16141
16142                    2 => {
16143                        if let Some(value) = self.source_name.take() {
16144                            ::fidl_next::WireEnvelope::encode_value::<
16145                                ::fidl_next::WireString<'static>,
16146                                ___E,
16147                            >(
16148                                value, preallocated.encoder, &mut out, 100
16149                            )?;
16150                        } else {
16151                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16152                        }
16153                    }
16154
16155                    1 => {
16156                        if let Some(value) = self.source.take() {
16157                            ::fidl_next::WireEnvelope::encode_value::<
16158                                crate::wire::Ref<'static>,
16159                                ___E,
16160                            >(
16161                                value, preallocated.encoder, &mut out, ()
16162                            )?;
16163                        } else {
16164                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16165                        }
16166                    }
16167
16168                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
16169                }
16170                unsafe {
16171                    preallocated.write_next(out.assume_init_ref());
16172                }
16173            }
16174
16175            ::fidl_next::WireTable::encode_len(table, max_ord);
16176
16177            Ok(())
16178        }
16179    }
16180
16181    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferRunner<'static>, ___E>
16182        for &'a OfferRunner
16183    where
16184        ___E: ::fidl_next::Encoder + ?Sized,
16185    {
16186        #[inline]
16187        fn encode(
16188            self,
16189            encoder: &mut ___E,
16190            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferRunner<'static>>,
16191            _: (),
16192        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16193            ::fidl_next::munge!(let crate::wire::OfferRunner { table } = out);
16194
16195            let max_ord = self.__max_ordinal();
16196
16197            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
16198            ::fidl_next::Wire::zero_padding(&mut out);
16199
16200            let mut preallocated =
16201                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
16202
16203            for i in 1..=max_ord {
16204                match i {
16205                    5 => {
16206                        if let Some(value) = &self.source_dictionary {
16207                            ::fidl_next::WireEnvelope::encode_value::<
16208                                ::fidl_next::WireString<'static>,
16209                                ___E,
16210                            >(
16211                                value, preallocated.encoder, &mut out, 1024
16212                            )?;
16213                        } else {
16214                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16215                        }
16216                    }
16217
16218                    4 => {
16219                        if let Some(value) = &self.target_name {
16220                            ::fidl_next::WireEnvelope::encode_value::<
16221                                ::fidl_next::WireString<'static>,
16222                                ___E,
16223                            >(
16224                                value, preallocated.encoder, &mut out, 100
16225                            )?;
16226                        } else {
16227                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16228                        }
16229                    }
16230
16231                    3 => {
16232                        if let Some(value) = &self.target {
16233                            ::fidl_next::WireEnvelope::encode_value::<
16234                                crate::wire::Ref<'static>,
16235                                ___E,
16236                            >(
16237                                value, preallocated.encoder, &mut out, ()
16238                            )?;
16239                        } else {
16240                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16241                        }
16242                    }
16243
16244                    2 => {
16245                        if let Some(value) = &self.source_name {
16246                            ::fidl_next::WireEnvelope::encode_value::<
16247                                ::fidl_next::WireString<'static>,
16248                                ___E,
16249                            >(
16250                                value, preallocated.encoder, &mut out, 100
16251                            )?;
16252                        } else {
16253                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16254                        }
16255                    }
16256
16257                    1 => {
16258                        if let Some(value) = &self.source {
16259                            ::fidl_next::WireEnvelope::encode_value::<
16260                                crate::wire::Ref<'static>,
16261                                ___E,
16262                            >(
16263                                value, preallocated.encoder, &mut out, ()
16264                            )?;
16265                        } else {
16266                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16267                        }
16268                    }
16269
16270                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
16271                }
16272                unsafe {
16273                    preallocated.write_next(out.assume_init_ref());
16274                }
16275            }
16276
16277            ::fidl_next::WireTable::encode_len(table, max_ord);
16278
16279            Ok(())
16280        }
16281    }
16282
16283    impl<'de> ::fidl_next::FromWire<crate::wire::OfferRunner<'de>> for OfferRunner {
16284        #[inline]
16285        fn from_wire(wire_: crate::wire::OfferRunner<'de>) -> Self {
16286            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16287
16288            let source = wire_.table.get(1);
16289
16290            let source_name = wire_.table.get(2);
16291
16292            let target = wire_.table.get(3);
16293
16294            let target_name = wire_.table.get(4);
16295
16296            let source_dictionary = wire_.table.get(5);
16297
16298            Self {
16299                source: source.map(|envelope| {
16300                    ::fidl_next::FromWire::from_wire(unsafe {
16301                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
16302                    })
16303                }),
16304
16305                source_name: source_name.map(|envelope| {
16306                    ::fidl_next::FromWire::from_wire(unsafe {
16307                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
16308                    })
16309                }),
16310
16311                target: target.map(|envelope| {
16312                    ::fidl_next::FromWire::from_wire(unsafe {
16313                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
16314                    })
16315                }),
16316
16317                target_name: target_name.map(|envelope| {
16318                    ::fidl_next::FromWire::from_wire(unsafe {
16319                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
16320                    })
16321                }),
16322
16323                source_dictionary: source_dictionary.map(|envelope| {
16324                    ::fidl_next::FromWire::from_wire(unsafe {
16325                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
16326                    })
16327                }),
16328            }
16329        }
16330    }
16331
16332    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferRunner<'de>> for OfferRunner {
16333        #[inline]
16334        fn from_wire_ref(wire: &crate::wire::OfferRunner<'de>) -> Self {
16335            Self {
16336                source: wire.table.get(1).map(|envelope| {
16337                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16338                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16339                    })
16340                }),
16341
16342                source_name: wire.table.get(2).map(|envelope| {
16343                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16344                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16345                    })
16346                }),
16347
16348                target: wire.table.get(3).map(|envelope| {
16349                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16350                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16351                    })
16352                }),
16353
16354                target_name: wire.table.get(4).map(|envelope| {
16355                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16356                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16357                    })
16358                }),
16359
16360                source_dictionary: wire.table.get(5).map(|envelope| {
16361                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16362                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16363                    })
16364                }),
16365            }
16366        }
16367    }
16368
16369    #[doc = " Declares a resolver capability offered by a component to one of its children, which\n may have been offered by the component\'s containing realm, the component itself,\n or one of its other children.\n"]
16370    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16371    pub struct OfferResolver {
16372        pub source: ::core::option::Option<crate::natural::Ref>,
16373
16374        pub source_name: ::core::option::Option<::std::string::String>,
16375
16376        pub target: ::core::option::Option<crate::natural::Ref>,
16377
16378        pub target_name: ::core::option::Option<::std::string::String>,
16379
16380        pub source_dictionary: ::core::option::Option<::std::string::String>,
16381    }
16382
16383    impl OfferResolver {
16384        fn __max_ordinal(&self) -> usize {
16385            if self.source_dictionary.is_some() {
16386                return 5;
16387            }
16388
16389            if self.target_name.is_some() {
16390                return 4;
16391            }
16392
16393            if self.target.is_some() {
16394                return 3;
16395            }
16396
16397            if self.source_name.is_some() {
16398                return 2;
16399            }
16400
16401            if self.source.is_some() {
16402                return 1;
16403            }
16404
16405            0
16406        }
16407    }
16408
16409    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferResolver<'static>, ___E> for OfferResolver
16410    where
16411        ___E: ::fidl_next::Encoder + ?Sized,
16412    {
16413        #[inline]
16414        fn encode(
16415            mut self,
16416            encoder: &mut ___E,
16417            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferResolver<'static>>,
16418            _: (),
16419        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16420            ::fidl_next::munge!(let crate::wire::OfferResolver { table } = out);
16421
16422            let max_ord = self.__max_ordinal();
16423
16424            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
16425            ::fidl_next::Wire::zero_padding(&mut out);
16426
16427            let mut preallocated =
16428                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
16429
16430            for i in 1..=max_ord {
16431                match i {
16432                    5 => {
16433                        if let Some(value) = self.source_dictionary.take() {
16434                            ::fidl_next::WireEnvelope::encode_value::<
16435                                ::fidl_next::WireString<'static>,
16436                                ___E,
16437                            >(
16438                                value, preallocated.encoder, &mut out, 1024
16439                            )?;
16440                        } else {
16441                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16442                        }
16443                    }
16444
16445                    4 => {
16446                        if let Some(value) = self.target_name.take() {
16447                            ::fidl_next::WireEnvelope::encode_value::<
16448                                ::fidl_next::WireString<'static>,
16449                                ___E,
16450                            >(
16451                                value, preallocated.encoder, &mut out, 100
16452                            )?;
16453                        } else {
16454                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16455                        }
16456                    }
16457
16458                    3 => {
16459                        if let Some(value) = self.target.take() {
16460                            ::fidl_next::WireEnvelope::encode_value::<
16461                                crate::wire::Ref<'static>,
16462                                ___E,
16463                            >(
16464                                value, preallocated.encoder, &mut out, ()
16465                            )?;
16466                        } else {
16467                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16468                        }
16469                    }
16470
16471                    2 => {
16472                        if let Some(value) = self.source_name.take() {
16473                            ::fidl_next::WireEnvelope::encode_value::<
16474                                ::fidl_next::WireString<'static>,
16475                                ___E,
16476                            >(
16477                                value, preallocated.encoder, &mut out, 100
16478                            )?;
16479                        } else {
16480                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16481                        }
16482                    }
16483
16484                    1 => {
16485                        if let Some(value) = self.source.take() {
16486                            ::fidl_next::WireEnvelope::encode_value::<
16487                                crate::wire::Ref<'static>,
16488                                ___E,
16489                            >(
16490                                value, preallocated.encoder, &mut out, ()
16491                            )?;
16492                        } else {
16493                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16494                        }
16495                    }
16496
16497                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
16498                }
16499                unsafe {
16500                    preallocated.write_next(out.assume_init_ref());
16501                }
16502            }
16503
16504            ::fidl_next::WireTable::encode_len(table, max_ord);
16505
16506            Ok(())
16507        }
16508    }
16509
16510    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferResolver<'static>, ___E>
16511        for &'a OfferResolver
16512    where
16513        ___E: ::fidl_next::Encoder + ?Sized,
16514    {
16515        #[inline]
16516        fn encode(
16517            self,
16518            encoder: &mut ___E,
16519            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferResolver<'static>>,
16520            _: (),
16521        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16522            ::fidl_next::munge!(let crate::wire::OfferResolver { table } = out);
16523
16524            let max_ord = self.__max_ordinal();
16525
16526            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
16527            ::fidl_next::Wire::zero_padding(&mut out);
16528
16529            let mut preallocated =
16530                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
16531
16532            for i in 1..=max_ord {
16533                match i {
16534                    5 => {
16535                        if let Some(value) = &self.source_dictionary {
16536                            ::fidl_next::WireEnvelope::encode_value::<
16537                                ::fidl_next::WireString<'static>,
16538                                ___E,
16539                            >(
16540                                value, preallocated.encoder, &mut out, 1024
16541                            )?;
16542                        } else {
16543                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16544                        }
16545                    }
16546
16547                    4 => {
16548                        if let Some(value) = &self.target_name {
16549                            ::fidl_next::WireEnvelope::encode_value::<
16550                                ::fidl_next::WireString<'static>,
16551                                ___E,
16552                            >(
16553                                value, preallocated.encoder, &mut out, 100
16554                            )?;
16555                        } else {
16556                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16557                        }
16558                    }
16559
16560                    3 => {
16561                        if let Some(value) = &self.target {
16562                            ::fidl_next::WireEnvelope::encode_value::<
16563                                crate::wire::Ref<'static>,
16564                                ___E,
16565                            >(
16566                                value, preallocated.encoder, &mut out, ()
16567                            )?;
16568                        } else {
16569                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16570                        }
16571                    }
16572
16573                    2 => {
16574                        if let Some(value) = &self.source_name {
16575                            ::fidl_next::WireEnvelope::encode_value::<
16576                                ::fidl_next::WireString<'static>,
16577                                ___E,
16578                            >(
16579                                value, preallocated.encoder, &mut out, 100
16580                            )?;
16581                        } else {
16582                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16583                        }
16584                    }
16585
16586                    1 => {
16587                        if let Some(value) = &self.source {
16588                            ::fidl_next::WireEnvelope::encode_value::<
16589                                crate::wire::Ref<'static>,
16590                                ___E,
16591                            >(
16592                                value, preallocated.encoder, &mut out, ()
16593                            )?;
16594                        } else {
16595                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16596                        }
16597                    }
16598
16599                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
16600                }
16601                unsafe {
16602                    preallocated.write_next(out.assume_init_ref());
16603                }
16604            }
16605
16606            ::fidl_next::WireTable::encode_len(table, max_ord);
16607
16608            Ok(())
16609        }
16610    }
16611
16612    impl<'de> ::fidl_next::FromWire<crate::wire::OfferResolver<'de>> for OfferResolver {
16613        #[inline]
16614        fn from_wire(wire_: crate::wire::OfferResolver<'de>) -> Self {
16615            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16616
16617            let source = wire_.table.get(1);
16618
16619            let source_name = wire_.table.get(2);
16620
16621            let target = wire_.table.get(3);
16622
16623            let target_name = wire_.table.get(4);
16624
16625            let source_dictionary = wire_.table.get(5);
16626
16627            Self {
16628                source: source.map(|envelope| {
16629                    ::fidl_next::FromWire::from_wire(unsafe {
16630                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
16631                    })
16632                }),
16633
16634                source_name: source_name.map(|envelope| {
16635                    ::fidl_next::FromWire::from_wire(unsafe {
16636                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
16637                    })
16638                }),
16639
16640                target: target.map(|envelope| {
16641                    ::fidl_next::FromWire::from_wire(unsafe {
16642                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
16643                    })
16644                }),
16645
16646                target_name: target_name.map(|envelope| {
16647                    ::fidl_next::FromWire::from_wire(unsafe {
16648                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
16649                    })
16650                }),
16651
16652                source_dictionary: source_dictionary.map(|envelope| {
16653                    ::fidl_next::FromWire::from_wire(unsafe {
16654                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
16655                    })
16656                }),
16657            }
16658        }
16659    }
16660
16661    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferResolver<'de>> for OfferResolver {
16662        #[inline]
16663        fn from_wire_ref(wire: &crate::wire::OfferResolver<'de>) -> Self {
16664            Self {
16665                source: wire.table.get(1).map(|envelope| {
16666                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16667                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16668                    })
16669                }),
16670
16671                source_name: wire.table.get(2).map(|envelope| {
16672                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16673                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16674                    })
16675                }),
16676
16677                target: wire.table.get(3).map(|envelope| {
16678                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16679                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16680                    })
16681                }),
16682
16683                target_name: wire.table.get(4).map(|envelope| {
16684                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16685                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16686                    })
16687                }),
16688
16689                source_dictionary: wire.table.get(5).map(|envelope| {
16690                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16691                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
16692                    })
16693                }),
16694            }
16695        }
16696    }
16697
16698    #[doc = " Declares an event stream offered by a component.\n"]
16699    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16700    pub struct OfferEventStream {
16701        pub source: ::core::option::Option<crate::natural::Ref>,
16702
16703        pub source_name: ::core::option::Option<::std::string::String>,
16704
16705        pub scope: ::core::option::Option<::std::vec::Vec<crate::natural::Ref>>,
16706
16707        pub target: ::core::option::Option<crate::natural::Ref>,
16708
16709        pub target_name: ::core::option::Option<::std::string::String>,
16710
16711        pub availability: ::core::option::Option<crate::natural::Availability>,
16712    }
16713
16714    impl OfferEventStream {
16715        fn __max_ordinal(&self) -> usize {
16716            if self.availability.is_some() {
16717                return 7;
16718            }
16719
16720            if self.target_name.is_some() {
16721                return 5;
16722            }
16723
16724            if self.target.is_some() {
16725                return 4;
16726            }
16727
16728            if self.scope.is_some() {
16729                return 3;
16730            }
16731
16732            if self.source_name.is_some() {
16733                return 2;
16734            }
16735
16736            if self.source.is_some() {
16737                return 1;
16738            }
16739
16740            0
16741        }
16742    }
16743
16744    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferEventStream<'static>, ___E>
16745        for OfferEventStream
16746    where
16747        ___E: ::fidl_next::Encoder + ?Sized,
16748    {
16749        #[inline]
16750        fn encode(
16751            mut self,
16752            encoder: &mut ___E,
16753            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferEventStream<'static>>,
16754            _: (),
16755        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16756            ::fidl_next::munge!(let crate::wire::OfferEventStream { table } = out);
16757
16758            let max_ord = self.__max_ordinal();
16759
16760            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
16761            ::fidl_next::Wire::zero_padding(&mut out);
16762
16763            let mut preallocated =
16764                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
16765
16766            for i in 1..=max_ord {
16767                match i {
16768                    7 => {
16769                        if let Some(value) = self.availability.take() {
16770                            ::fidl_next::WireEnvelope::encode_value::<
16771                                crate::wire::Availability,
16772                                ___E,
16773                            >(
16774                                value, preallocated.encoder, &mut out, ()
16775                            )?;
16776                        } else {
16777                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16778                        }
16779                    }
16780
16781                    5 => {
16782                        if let Some(value) = self.target_name.take() {
16783                            ::fidl_next::WireEnvelope::encode_value::<
16784                                ::fidl_next::WireString<'static>,
16785                                ___E,
16786                            >(
16787                                value, preallocated.encoder, &mut out, 100
16788                            )?;
16789                        } else {
16790                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16791                        }
16792                    }
16793
16794                    4 => {
16795                        if let Some(value) = self.target.take() {
16796                            ::fidl_next::WireEnvelope::encode_value::<
16797                                crate::wire::Ref<'static>,
16798                                ___E,
16799                            >(
16800                                value, preallocated.encoder, &mut out, ()
16801                            )?;
16802                        } else {
16803                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16804                        }
16805                    }
16806
16807                    3 => {
16808                        if let Some(value) = self.scope.take() {
16809                            ::fidl_next::WireEnvelope::encode_value::<
16810                                ::fidl_next::WireVector<'static, crate::wire::Ref<'static>>,
16811                                ___E,
16812                            >(
16813                                value, preallocated.encoder, &mut out, (4294967295, ())
16814                            )?;
16815                        } else {
16816                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16817                        }
16818                    }
16819
16820                    2 => {
16821                        if let Some(value) = self.source_name.take() {
16822                            ::fidl_next::WireEnvelope::encode_value::<
16823                                ::fidl_next::WireString<'static>,
16824                                ___E,
16825                            >(
16826                                value, preallocated.encoder, &mut out, 100
16827                            )?;
16828                        } else {
16829                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16830                        }
16831                    }
16832
16833                    1 => {
16834                        if let Some(value) = self.source.take() {
16835                            ::fidl_next::WireEnvelope::encode_value::<
16836                                crate::wire::Ref<'static>,
16837                                ___E,
16838                            >(
16839                                value, preallocated.encoder, &mut out, ()
16840                            )?;
16841                        } else {
16842                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16843                        }
16844                    }
16845
16846                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
16847                }
16848                unsafe {
16849                    preallocated.write_next(out.assume_init_ref());
16850                }
16851            }
16852
16853            ::fidl_next::WireTable::encode_len(table, max_ord);
16854
16855            Ok(())
16856        }
16857    }
16858
16859    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferEventStream<'static>, ___E>
16860        for &'a OfferEventStream
16861    where
16862        ___E: ::fidl_next::Encoder + ?Sized,
16863    {
16864        #[inline]
16865        fn encode(
16866            self,
16867            encoder: &mut ___E,
16868            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferEventStream<'static>>,
16869            _: (),
16870        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16871            ::fidl_next::munge!(let crate::wire::OfferEventStream { table } = out);
16872
16873            let max_ord = self.__max_ordinal();
16874
16875            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
16876            ::fidl_next::Wire::zero_padding(&mut out);
16877
16878            let mut preallocated =
16879                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
16880
16881            for i in 1..=max_ord {
16882                match i {
16883                    7 => {
16884                        if let Some(value) = &self.availability {
16885                            ::fidl_next::WireEnvelope::encode_value::<
16886                                crate::wire::Availability,
16887                                ___E,
16888                            >(
16889                                value, preallocated.encoder, &mut out, ()
16890                            )?;
16891                        } else {
16892                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16893                        }
16894                    }
16895
16896                    5 => {
16897                        if let Some(value) = &self.target_name {
16898                            ::fidl_next::WireEnvelope::encode_value::<
16899                                ::fidl_next::WireString<'static>,
16900                                ___E,
16901                            >(
16902                                value, preallocated.encoder, &mut out, 100
16903                            )?;
16904                        } else {
16905                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16906                        }
16907                    }
16908
16909                    4 => {
16910                        if let Some(value) = &self.target {
16911                            ::fidl_next::WireEnvelope::encode_value::<
16912                                crate::wire::Ref<'static>,
16913                                ___E,
16914                            >(
16915                                value, preallocated.encoder, &mut out, ()
16916                            )?;
16917                        } else {
16918                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16919                        }
16920                    }
16921
16922                    3 => {
16923                        if let Some(value) = &self.scope {
16924                            ::fidl_next::WireEnvelope::encode_value::<
16925                                ::fidl_next::WireVector<'static, crate::wire::Ref<'static>>,
16926                                ___E,
16927                            >(
16928                                value, preallocated.encoder, &mut out, (4294967295, ())
16929                            )?;
16930                        } else {
16931                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16932                        }
16933                    }
16934
16935                    2 => {
16936                        if let Some(value) = &self.source_name {
16937                            ::fidl_next::WireEnvelope::encode_value::<
16938                                ::fidl_next::WireString<'static>,
16939                                ___E,
16940                            >(
16941                                value, preallocated.encoder, &mut out, 100
16942                            )?;
16943                        } else {
16944                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16945                        }
16946                    }
16947
16948                    1 => {
16949                        if let Some(value) = &self.source {
16950                            ::fidl_next::WireEnvelope::encode_value::<
16951                                crate::wire::Ref<'static>,
16952                                ___E,
16953                            >(
16954                                value, preallocated.encoder, &mut out, ()
16955                            )?;
16956                        } else {
16957                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
16958                        }
16959                    }
16960
16961                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
16962                }
16963                unsafe {
16964                    preallocated.write_next(out.assume_init_ref());
16965                }
16966            }
16967
16968            ::fidl_next::WireTable::encode_len(table, max_ord);
16969
16970            Ok(())
16971        }
16972    }
16973
16974    impl<'de> ::fidl_next::FromWire<crate::wire::OfferEventStream<'de>> for OfferEventStream {
16975        #[inline]
16976        fn from_wire(wire_: crate::wire::OfferEventStream<'de>) -> Self {
16977            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16978
16979            let source = wire_.table.get(1);
16980
16981            let source_name = wire_.table.get(2);
16982
16983            let scope = wire_.table.get(3);
16984
16985            let target = wire_.table.get(4);
16986
16987            let target_name = wire_.table.get(5);
16988
16989            let availability = wire_.table.get(7);
16990
16991            Self {
16992                source: source.map(|envelope| {
16993                    ::fidl_next::FromWire::from_wire(unsafe {
16994                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
16995                    })
16996                }),
16997
16998                source_name: source_name.map(|envelope| {
16999                    ::fidl_next::FromWire::from_wire(unsafe {
17000                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17001                    })
17002                }),
17003
17004                scope: scope.map(|envelope| {
17005                    ::fidl_next::FromWire::from_wire(unsafe {
17006                        envelope
17007                            .read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Ref<'de>>>()
17008                    })
17009                }),
17010
17011                target: target.map(|envelope| {
17012                    ::fidl_next::FromWire::from_wire(unsafe {
17013                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
17014                    })
17015                }),
17016
17017                target_name: target_name.map(|envelope| {
17018                    ::fidl_next::FromWire::from_wire(unsafe {
17019                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17020                    })
17021                }),
17022
17023                availability: availability.map(|envelope| {
17024                    ::fidl_next::FromWire::from_wire(unsafe {
17025                        envelope.read_unchecked::<crate::wire::Availability>()
17026                    })
17027                }),
17028            }
17029        }
17030    }
17031
17032    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferEventStream<'de>> for OfferEventStream {
17033        #[inline]
17034        fn from_wire_ref(wire: &crate::wire::OfferEventStream<'de>) -> Self {
17035            Self {
17036                source: wire.table.get(1).map(|envelope| {
17037                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17038                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17039                    })
17040                }),
17041
17042                source_name: wire.table.get(2).map(|envelope| {
17043                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17044                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17045                    })
17046                }),
17047
17048                scope: wire.table.get(3).map(|envelope| {
17049                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17050                        envelope
17051                            .deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Ref<'de>>>(
17052                            )
17053                    })
17054                }),
17055
17056                target: wire.table.get(4).map(|envelope| {
17057                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17058                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17059                    })
17060                }),
17061
17062                target_name: wire.table.get(5).map(|envelope| {
17063                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17064                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17065                    })
17066                }),
17067
17068                availability: wire.table.get(7).map(|envelope| {
17069                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17070                        envelope.deref_unchecked::<crate::wire::Availability>()
17071                    })
17072                }),
17073            }
17074        }
17075    }
17076
17077    #[doc = " Declares a dictionary offered by a component to one of its children,\n which may have been offered by the component\'s containing realm, the\n component itself, or one of its other children.\n\n To learn more about dictionaries, see:\n https://fuchsia.dev/fuchsia-src/glossary#dictionary\n"]
17078    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17079    pub struct OfferDictionary {
17080        pub source: ::core::option::Option<crate::natural::Ref>,
17081
17082        pub source_name: ::core::option::Option<::std::string::String>,
17083
17084        pub target: ::core::option::Option<crate::natural::Ref>,
17085
17086        pub target_name: ::core::option::Option<::std::string::String>,
17087
17088        pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
17089
17090        pub availability: ::core::option::Option<crate::natural::Availability>,
17091
17092        pub source_dictionary: ::core::option::Option<::std::string::String>,
17093    }
17094
17095    impl OfferDictionary {
17096        fn __max_ordinal(&self) -> usize {
17097            if self.source_dictionary.is_some() {
17098                return 7;
17099            }
17100
17101            if self.availability.is_some() {
17102                return 6;
17103            }
17104
17105            if self.dependency_type.is_some() {
17106                return 5;
17107            }
17108
17109            if self.target_name.is_some() {
17110                return 4;
17111            }
17112
17113            if self.target.is_some() {
17114                return 3;
17115            }
17116
17117            if self.source_name.is_some() {
17118                return 2;
17119            }
17120
17121            if self.source.is_some() {
17122                return 1;
17123            }
17124
17125            0
17126        }
17127    }
17128
17129    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferDictionary<'static>, ___E>
17130        for OfferDictionary
17131    where
17132        ___E: ::fidl_next::Encoder + ?Sized,
17133    {
17134        #[inline]
17135        fn encode(
17136            mut self,
17137            encoder: &mut ___E,
17138            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDictionary<'static>>,
17139            _: (),
17140        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17141            ::fidl_next::munge!(let crate::wire::OfferDictionary { table } = out);
17142
17143            let max_ord = self.__max_ordinal();
17144
17145            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
17146            ::fidl_next::Wire::zero_padding(&mut out);
17147
17148            let mut preallocated =
17149                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
17150
17151            for i in 1..=max_ord {
17152                match i {
17153                    7 => {
17154                        if let Some(value) = self.source_dictionary.take() {
17155                            ::fidl_next::WireEnvelope::encode_value::<
17156                                ::fidl_next::WireString<'static>,
17157                                ___E,
17158                            >(
17159                                value, preallocated.encoder, &mut out, 1024
17160                            )?;
17161                        } else {
17162                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17163                        }
17164                    }
17165
17166                    6 => {
17167                        if let Some(value) = self.availability.take() {
17168                            ::fidl_next::WireEnvelope::encode_value::<
17169                                crate::wire::Availability,
17170                                ___E,
17171                            >(
17172                                value, preallocated.encoder, &mut out, ()
17173                            )?;
17174                        } else {
17175                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17176                        }
17177                    }
17178
17179                    5 => {
17180                        if let Some(value) = self.dependency_type.take() {
17181                            ::fidl_next::WireEnvelope::encode_value::<
17182                                crate::wire::DependencyType,
17183                                ___E,
17184                            >(
17185                                value, preallocated.encoder, &mut out, ()
17186                            )?;
17187                        } else {
17188                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17189                        }
17190                    }
17191
17192                    4 => {
17193                        if let Some(value) = self.target_name.take() {
17194                            ::fidl_next::WireEnvelope::encode_value::<
17195                                ::fidl_next::WireString<'static>,
17196                                ___E,
17197                            >(
17198                                value, preallocated.encoder, &mut out, 100
17199                            )?;
17200                        } else {
17201                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17202                        }
17203                    }
17204
17205                    3 => {
17206                        if let Some(value) = self.target.take() {
17207                            ::fidl_next::WireEnvelope::encode_value::<
17208                                crate::wire::Ref<'static>,
17209                                ___E,
17210                            >(
17211                                value, preallocated.encoder, &mut out, ()
17212                            )?;
17213                        } else {
17214                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17215                        }
17216                    }
17217
17218                    2 => {
17219                        if let Some(value) = self.source_name.take() {
17220                            ::fidl_next::WireEnvelope::encode_value::<
17221                                ::fidl_next::WireString<'static>,
17222                                ___E,
17223                            >(
17224                                value, preallocated.encoder, &mut out, 100
17225                            )?;
17226                        } else {
17227                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17228                        }
17229                    }
17230
17231                    1 => {
17232                        if let Some(value) = self.source.take() {
17233                            ::fidl_next::WireEnvelope::encode_value::<
17234                                crate::wire::Ref<'static>,
17235                                ___E,
17236                            >(
17237                                value, preallocated.encoder, &mut out, ()
17238                            )?;
17239                        } else {
17240                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17241                        }
17242                    }
17243
17244                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
17245                }
17246                unsafe {
17247                    preallocated.write_next(out.assume_init_ref());
17248                }
17249            }
17250
17251            ::fidl_next::WireTable::encode_len(table, max_ord);
17252
17253            Ok(())
17254        }
17255    }
17256
17257    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferDictionary<'static>, ___E>
17258        for &'a OfferDictionary
17259    where
17260        ___E: ::fidl_next::Encoder + ?Sized,
17261    {
17262        #[inline]
17263        fn encode(
17264            self,
17265            encoder: &mut ___E,
17266            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDictionary<'static>>,
17267            _: (),
17268        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17269            ::fidl_next::munge!(let crate::wire::OfferDictionary { table } = out);
17270
17271            let max_ord = self.__max_ordinal();
17272
17273            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
17274            ::fidl_next::Wire::zero_padding(&mut out);
17275
17276            let mut preallocated =
17277                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
17278
17279            for i in 1..=max_ord {
17280                match i {
17281                    7 => {
17282                        if let Some(value) = &self.source_dictionary {
17283                            ::fidl_next::WireEnvelope::encode_value::<
17284                                ::fidl_next::WireString<'static>,
17285                                ___E,
17286                            >(
17287                                value, preallocated.encoder, &mut out, 1024
17288                            )?;
17289                        } else {
17290                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17291                        }
17292                    }
17293
17294                    6 => {
17295                        if let Some(value) = &self.availability {
17296                            ::fidl_next::WireEnvelope::encode_value::<
17297                                crate::wire::Availability,
17298                                ___E,
17299                            >(
17300                                value, preallocated.encoder, &mut out, ()
17301                            )?;
17302                        } else {
17303                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17304                        }
17305                    }
17306
17307                    5 => {
17308                        if let Some(value) = &self.dependency_type {
17309                            ::fidl_next::WireEnvelope::encode_value::<
17310                                crate::wire::DependencyType,
17311                                ___E,
17312                            >(
17313                                value, preallocated.encoder, &mut out, ()
17314                            )?;
17315                        } else {
17316                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17317                        }
17318                    }
17319
17320                    4 => {
17321                        if let Some(value) = &self.target_name {
17322                            ::fidl_next::WireEnvelope::encode_value::<
17323                                ::fidl_next::WireString<'static>,
17324                                ___E,
17325                            >(
17326                                value, preallocated.encoder, &mut out, 100
17327                            )?;
17328                        } else {
17329                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17330                        }
17331                    }
17332
17333                    3 => {
17334                        if let Some(value) = &self.target {
17335                            ::fidl_next::WireEnvelope::encode_value::<
17336                                crate::wire::Ref<'static>,
17337                                ___E,
17338                            >(
17339                                value, preallocated.encoder, &mut out, ()
17340                            )?;
17341                        } else {
17342                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17343                        }
17344                    }
17345
17346                    2 => {
17347                        if let Some(value) = &self.source_name {
17348                            ::fidl_next::WireEnvelope::encode_value::<
17349                                ::fidl_next::WireString<'static>,
17350                                ___E,
17351                            >(
17352                                value, preallocated.encoder, &mut out, 100
17353                            )?;
17354                        } else {
17355                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17356                        }
17357                    }
17358
17359                    1 => {
17360                        if let Some(value) = &self.source {
17361                            ::fidl_next::WireEnvelope::encode_value::<
17362                                crate::wire::Ref<'static>,
17363                                ___E,
17364                            >(
17365                                value, preallocated.encoder, &mut out, ()
17366                            )?;
17367                        } else {
17368                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17369                        }
17370                    }
17371
17372                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
17373                }
17374                unsafe {
17375                    preallocated.write_next(out.assume_init_ref());
17376                }
17377            }
17378
17379            ::fidl_next::WireTable::encode_len(table, max_ord);
17380
17381            Ok(())
17382        }
17383    }
17384
17385    impl<'de> ::fidl_next::FromWire<crate::wire::OfferDictionary<'de>> for OfferDictionary {
17386        #[inline]
17387        fn from_wire(wire_: crate::wire::OfferDictionary<'de>) -> Self {
17388            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
17389
17390            let source = wire_.table.get(1);
17391
17392            let source_name = wire_.table.get(2);
17393
17394            let target = wire_.table.get(3);
17395
17396            let target_name = wire_.table.get(4);
17397
17398            let dependency_type = wire_.table.get(5);
17399
17400            let availability = wire_.table.get(6);
17401
17402            let source_dictionary = wire_.table.get(7);
17403
17404            Self {
17405                source: source.map(|envelope| {
17406                    ::fidl_next::FromWire::from_wire(unsafe {
17407                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
17408                    })
17409                }),
17410
17411                source_name: source_name.map(|envelope| {
17412                    ::fidl_next::FromWire::from_wire(unsafe {
17413                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17414                    })
17415                }),
17416
17417                target: target.map(|envelope| {
17418                    ::fidl_next::FromWire::from_wire(unsafe {
17419                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
17420                    })
17421                }),
17422
17423                target_name: target_name.map(|envelope| {
17424                    ::fidl_next::FromWire::from_wire(unsafe {
17425                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17426                    })
17427                }),
17428
17429                dependency_type: dependency_type.map(|envelope| {
17430                    ::fidl_next::FromWire::from_wire(unsafe {
17431                        envelope.read_unchecked::<crate::wire::DependencyType>()
17432                    })
17433                }),
17434
17435                availability: availability.map(|envelope| {
17436                    ::fidl_next::FromWire::from_wire(unsafe {
17437                        envelope.read_unchecked::<crate::wire::Availability>()
17438                    })
17439                }),
17440
17441                source_dictionary: source_dictionary.map(|envelope| {
17442                    ::fidl_next::FromWire::from_wire(unsafe {
17443                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17444                    })
17445                }),
17446            }
17447        }
17448    }
17449
17450    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferDictionary<'de>> for OfferDictionary {
17451        #[inline]
17452        fn from_wire_ref(wire: &crate::wire::OfferDictionary<'de>) -> Self {
17453            Self {
17454                source: wire.table.get(1).map(|envelope| {
17455                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17456                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17457                    })
17458                }),
17459
17460                source_name: wire.table.get(2).map(|envelope| {
17461                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17462                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17463                    })
17464                }),
17465
17466                target: wire.table.get(3).map(|envelope| {
17467                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17468                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17469                    })
17470                }),
17471
17472                target_name: wire.table.get(4).map(|envelope| {
17473                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17474                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17475                    })
17476                }),
17477
17478                dependency_type: wire.table.get(5).map(|envelope| {
17479                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17480                        envelope.deref_unchecked::<crate::wire::DependencyType>()
17481                    })
17482                }),
17483
17484                availability: wire.table.get(6).map(|envelope| {
17485                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17486                        envelope.deref_unchecked::<crate::wire::Availability>()
17487                    })
17488                }),
17489
17490                source_dictionary: wire.table.get(7).map(|envelope| {
17491                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17492                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17493                    })
17494                }),
17495            }
17496        }
17497    }
17498
17499    #[doc = " Declares a configuration capability offered by a component to one of its children,\n which may have been offered by the component\'s containing realm, the\n component itself, or one of its other children.\n"]
17500    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17501    pub struct OfferConfiguration {
17502        pub source: ::core::option::Option<crate::natural::Ref>,
17503
17504        pub source_name: ::core::option::Option<::std::string::String>,
17505
17506        pub target: ::core::option::Option<crate::natural::Ref>,
17507
17508        pub target_name: ::core::option::Option<::std::string::String>,
17509
17510        pub availability: ::core::option::Option<crate::natural::Availability>,
17511
17512        pub source_dictionary: ::core::option::Option<::std::string::String>,
17513    }
17514
17515    impl OfferConfiguration {
17516        fn __max_ordinal(&self) -> usize {
17517            if self.source_dictionary.is_some() {
17518                return 6;
17519            }
17520
17521            if self.availability.is_some() {
17522                return 5;
17523            }
17524
17525            if self.target_name.is_some() {
17526                return 4;
17527            }
17528
17529            if self.target.is_some() {
17530                return 3;
17531            }
17532
17533            if self.source_name.is_some() {
17534                return 2;
17535            }
17536
17537            if self.source.is_some() {
17538                return 1;
17539            }
17540
17541            0
17542        }
17543    }
17544
17545    unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferConfiguration<'static>, ___E>
17546        for OfferConfiguration
17547    where
17548        ___E: ::fidl_next::Encoder + ?Sized,
17549    {
17550        #[inline]
17551        fn encode(
17552            mut self,
17553            encoder: &mut ___E,
17554            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferConfiguration<'static>>,
17555            _: (),
17556        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17557            ::fidl_next::munge!(let crate::wire::OfferConfiguration { table } = out);
17558
17559            let max_ord = self.__max_ordinal();
17560
17561            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
17562            ::fidl_next::Wire::zero_padding(&mut out);
17563
17564            let mut preallocated =
17565                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
17566
17567            for i in 1..=max_ord {
17568                match i {
17569                    6 => {
17570                        if let Some(value) = self.source_dictionary.take() {
17571                            ::fidl_next::WireEnvelope::encode_value::<
17572                                ::fidl_next::WireString<'static>,
17573                                ___E,
17574                            >(
17575                                value, preallocated.encoder, &mut out, 1024
17576                            )?;
17577                        } else {
17578                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17579                        }
17580                    }
17581
17582                    5 => {
17583                        if let Some(value) = self.availability.take() {
17584                            ::fidl_next::WireEnvelope::encode_value::<
17585                                crate::wire::Availability,
17586                                ___E,
17587                            >(
17588                                value, preallocated.encoder, &mut out, ()
17589                            )?;
17590                        } else {
17591                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17592                        }
17593                    }
17594
17595                    4 => {
17596                        if let Some(value) = self.target_name.take() {
17597                            ::fidl_next::WireEnvelope::encode_value::<
17598                                ::fidl_next::WireString<'static>,
17599                                ___E,
17600                            >(
17601                                value, preallocated.encoder, &mut out, 100
17602                            )?;
17603                        } else {
17604                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17605                        }
17606                    }
17607
17608                    3 => {
17609                        if let Some(value) = self.target.take() {
17610                            ::fidl_next::WireEnvelope::encode_value::<
17611                                crate::wire::Ref<'static>,
17612                                ___E,
17613                            >(
17614                                value, preallocated.encoder, &mut out, ()
17615                            )?;
17616                        } else {
17617                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17618                        }
17619                    }
17620
17621                    2 => {
17622                        if let Some(value) = self.source_name.take() {
17623                            ::fidl_next::WireEnvelope::encode_value::<
17624                                ::fidl_next::WireString<'static>,
17625                                ___E,
17626                            >(
17627                                value, preallocated.encoder, &mut out, 100
17628                            )?;
17629                        } else {
17630                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17631                        }
17632                    }
17633
17634                    1 => {
17635                        if let Some(value) = self.source.take() {
17636                            ::fidl_next::WireEnvelope::encode_value::<
17637                                crate::wire::Ref<'static>,
17638                                ___E,
17639                            >(
17640                                value, preallocated.encoder, &mut out, ()
17641                            )?;
17642                        } else {
17643                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17644                        }
17645                    }
17646
17647                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
17648                }
17649                unsafe {
17650                    preallocated.write_next(out.assume_init_ref());
17651                }
17652            }
17653
17654            ::fidl_next::WireTable::encode_len(table, max_ord);
17655
17656            Ok(())
17657        }
17658    }
17659
17660    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferConfiguration<'static>, ___E>
17661        for &'a OfferConfiguration
17662    where
17663        ___E: ::fidl_next::Encoder + ?Sized,
17664    {
17665        #[inline]
17666        fn encode(
17667            self,
17668            encoder: &mut ___E,
17669            out: &mut ::core::mem::MaybeUninit<crate::wire::OfferConfiguration<'static>>,
17670            _: (),
17671        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17672            ::fidl_next::munge!(let crate::wire::OfferConfiguration { table } = out);
17673
17674            let max_ord = self.__max_ordinal();
17675
17676            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
17677            ::fidl_next::Wire::zero_padding(&mut out);
17678
17679            let mut preallocated =
17680                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
17681
17682            for i in 1..=max_ord {
17683                match i {
17684                    6 => {
17685                        if let Some(value) = &self.source_dictionary {
17686                            ::fidl_next::WireEnvelope::encode_value::<
17687                                ::fidl_next::WireString<'static>,
17688                                ___E,
17689                            >(
17690                                value, preallocated.encoder, &mut out, 1024
17691                            )?;
17692                        } else {
17693                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17694                        }
17695                    }
17696
17697                    5 => {
17698                        if let Some(value) = &self.availability {
17699                            ::fidl_next::WireEnvelope::encode_value::<
17700                                crate::wire::Availability,
17701                                ___E,
17702                            >(
17703                                value, preallocated.encoder, &mut out, ()
17704                            )?;
17705                        } else {
17706                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17707                        }
17708                    }
17709
17710                    4 => {
17711                        if let Some(value) = &self.target_name {
17712                            ::fidl_next::WireEnvelope::encode_value::<
17713                                ::fidl_next::WireString<'static>,
17714                                ___E,
17715                            >(
17716                                value, preallocated.encoder, &mut out, 100
17717                            )?;
17718                        } else {
17719                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17720                        }
17721                    }
17722
17723                    3 => {
17724                        if let Some(value) = &self.target {
17725                            ::fidl_next::WireEnvelope::encode_value::<
17726                                crate::wire::Ref<'static>,
17727                                ___E,
17728                            >(
17729                                value, preallocated.encoder, &mut out, ()
17730                            )?;
17731                        } else {
17732                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17733                        }
17734                    }
17735
17736                    2 => {
17737                        if let Some(value) = &self.source_name {
17738                            ::fidl_next::WireEnvelope::encode_value::<
17739                                ::fidl_next::WireString<'static>,
17740                                ___E,
17741                            >(
17742                                value, preallocated.encoder, &mut out, 100
17743                            )?;
17744                        } else {
17745                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17746                        }
17747                    }
17748
17749                    1 => {
17750                        if let Some(value) = &self.source {
17751                            ::fidl_next::WireEnvelope::encode_value::<
17752                                crate::wire::Ref<'static>,
17753                                ___E,
17754                            >(
17755                                value, preallocated.encoder, &mut out, ()
17756                            )?;
17757                        } else {
17758                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
17759                        }
17760                    }
17761
17762                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
17763                }
17764                unsafe {
17765                    preallocated.write_next(out.assume_init_ref());
17766                }
17767            }
17768
17769            ::fidl_next::WireTable::encode_len(table, max_ord);
17770
17771            Ok(())
17772        }
17773    }
17774
17775    impl<'de> ::fidl_next::FromWire<crate::wire::OfferConfiguration<'de>> for OfferConfiguration {
17776        #[inline]
17777        fn from_wire(wire_: crate::wire::OfferConfiguration<'de>) -> Self {
17778            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
17779
17780            let source = wire_.table.get(1);
17781
17782            let source_name = wire_.table.get(2);
17783
17784            let target = wire_.table.get(3);
17785
17786            let target_name = wire_.table.get(4);
17787
17788            let availability = wire_.table.get(5);
17789
17790            let source_dictionary = wire_.table.get(6);
17791
17792            Self {
17793                source: source.map(|envelope| {
17794                    ::fidl_next::FromWire::from_wire(unsafe {
17795                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
17796                    })
17797                }),
17798
17799                source_name: source_name.map(|envelope| {
17800                    ::fidl_next::FromWire::from_wire(unsafe {
17801                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17802                    })
17803                }),
17804
17805                target: target.map(|envelope| {
17806                    ::fidl_next::FromWire::from_wire(unsafe {
17807                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
17808                    })
17809                }),
17810
17811                target_name: target_name.map(|envelope| {
17812                    ::fidl_next::FromWire::from_wire(unsafe {
17813                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17814                    })
17815                }),
17816
17817                availability: availability.map(|envelope| {
17818                    ::fidl_next::FromWire::from_wire(unsafe {
17819                        envelope.read_unchecked::<crate::wire::Availability>()
17820                    })
17821                }),
17822
17823                source_dictionary: source_dictionary.map(|envelope| {
17824                    ::fidl_next::FromWire::from_wire(unsafe {
17825                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
17826                    })
17827                }),
17828            }
17829        }
17830    }
17831
17832    impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferConfiguration<'de>> for OfferConfiguration {
17833        #[inline]
17834        fn from_wire_ref(wire: &crate::wire::OfferConfiguration<'de>) -> Self {
17835            Self {
17836                source: wire.table.get(1).map(|envelope| {
17837                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17838                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17839                    })
17840                }),
17841
17842                source_name: wire.table.get(2).map(|envelope| {
17843                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17844                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17845                    })
17846                }),
17847
17848                target: wire.table.get(3).map(|envelope| {
17849                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17850                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17851                    })
17852                }),
17853
17854                target_name: wire.table.get(4).map(|envelope| {
17855                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17856                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17857                    })
17858                }),
17859
17860                availability: wire.table.get(5).map(|envelope| {
17861                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17862                        envelope.deref_unchecked::<crate::wire::Availability>()
17863                    })
17864                }),
17865
17866                source_dictionary: wire.table.get(6).map(|envelope| {
17867                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17868                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
17869                    })
17870                }),
17871            }
17872        }
17873    }
17874
17875    #[doc = " Declares a capability offered by a component to one of its children, which\n may have been offered by the component\'s containing realm, the component\n itself, or one of its other children.\n"]
17876    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17877    pub enum Offer {
17878        Service(crate::natural::OfferService),
17879
17880        Protocol(crate::natural::OfferProtocol),
17881
17882        Directory(crate::natural::OfferDirectory),
17883
17884        Storage(crate::natural::OfferStorage),
17885
17886        Runner(crate::natural::OfferRunner),
17887
17888        Resolver(crate::natural::OfferResolver),
17889
17890        EventStream(crate::natural::OfferEventStream),
17891
17892        Dictionary(crate::natural::OfferDictionary),
17893
17894        Config(crate::natural::OfferConfiguration),
17895
17896        UnknownOrdinal_(u64),
17897    }
17898
17899    impl Offer {
17900        pub fn is_unknown(&self) -> bool {
17901            #[allow(unreachable_patterns)]
17902            match self {
17903                Self::UnknownOrdinal_(_) => true,
17904                _ => false,
17905            }
17906        }
17907    }
17908
17909    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Offer<'static>, ___E> for Offer
17910    where
17911        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17912        ___E: ::fidl_next::Encoder,
17913    {
17914        #[inline]
17915        fn encode(
17916            self,
17917            encoder: &mut ___E,
17918            out: &mut ::core::mem::MaybeUninit<crate::wire::Offer<'static>>,
17919            _: (),
17920        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17921            ::fidl_next::munge!(let crate::wire::Offer { raw, _phantom: _ } = out);
17922
17923            match self {
17924                Self::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
17925                    ___E,
17926                    crate::wire::OfferService<'static>,
17927                >(value, 1, encoder, raw, ())?,
17928
17929                Self::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
17930                    ___E,
17931                    crate::wire::OfferProtocol<'static>,
17932                >(value, 2, encoder, raw, ())?,
17933
17934                Self::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
17935                    ___E,
17936                    crate::wire::OfferDirectory<'static>,
17937                >(value, 3, encoder, raw, ())?,
17938
17939                Self::Storage(value) => ::fidl_next::RawWireUnion::encode_as::<
17940                    ___E,
17941                    crate::wire::OfferStorage<'static>,
17942                >(value, 4, encoder, raw, ())?,
17943
17944                Self::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
17945                    ___E,
17946                    crate::wire::OfferRunner<'static>,
17947                >(value, 5, encoder, raw, ())?,
17948
17949                Self::Resolver(value) => ::fidl_next::RawWireUnion::encode_as::<
17950                    ___E,
17951                    crate::wire::OfferResolver<'static>,
17952                >(value, 6, encoder, raw, ())?,
17953
17954                Self::EventStream(value) => ::fidl_next::RawWireUnion::encode_as::<
17955                    ___E,
17956                    crate::wire::OfferEventStream<'static>,
17957                >(value, 8, encoder, raw, ())?,
17958
17959                Self::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
17960                    ___E,
17961                    crate::wire::OfferDictionary<'static>,
17962                >(value, 9, encoder, raw, ())?,
17963
17964                Self::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
17965                    ___E,
17966                    crate::wire::OfferConfiguration<'static>,
17967                >(value, 10, encoder, raw, ())?,
17968
17969                Self::UnknownOrdinal_(ordinal) => {
17970                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
17971                }
17972            }
17973
17974            Ok(())
17975        }
17976    }
17977
17978    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Offer<'static>, ___E> for &'a Offer
17979    where
17980        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17981        ___E: ::fidl_next::Encoder,
17982    {
17983        #[inline]
17984        fn encode(
17985            self,
17986            encoder: &mut ___E,
17987            out: &mut ::core::mem::MaybeUninit<crate::wire::Offer<'static>>,
17988            _: (),
17989        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17990            ::fidl_next::munge!(let crate::wire::Offer { raw, _phantom: _ } = out);
17991
17992            match self {
17993                Offer::Service(value) => ::fidl_next::RawWireUnion::encode_as::<
17994                    ___E,
17995                    crate::wire::OfferService<'static>,
17996                >(value, 1, encoder, raw, ())?,
17997
17998                Offer::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
17999                    ___E,
18000                    crate::wire::OfferProtocol<'static>,
18001                >(value, 2, encoder, raw, ())?,
18002
18003                Offer::Directory(value) => ::fidl_next::RawWireUnion::encode_as::<
18004                    ___E,
18005                    crate::wire::OfferDirectory<'static>,
18006                >(value, 3, encoder, raw, ())?,
18007
18008                Offer::Storage(value) => ::fidl_next::RawWireUnion::encode_as::<
18009                    ___E,
18010                    crate::wire::OfferStorage<'static>,
18011                >(value, 4, encoder, raw, ())?,
18012
18013                Offer::Runner(value) => ::fidl_next::RawWireUnion::encode_as::<
18014                    ___E,
18015                    crate::wire::OfferRunner<'static>,
18016                >(value, 5, encoder, raw, ())?,
18017
18018                Offer::Resolver(value) => ::fidl_next::RawWireUnion::encode_as::<
18019                    ___E,
18020                    crate::wire::OfferResolver<'static>,
18021                >(value, 6, encoder, raw, ())?,
18022
18023                Offer::EventStream(value) => ::fidl_next::RawWireUnion::encode_as::<
18024                    ___E,
18025                    crate::wire::OfferEventStream<'static>,
18026                >(value, 8, encoder, raw, ())?,
18027
18028                Offer::Dictionary(value) => ::fidl_next::RawWireUnion::encode_as::<
18029                    ___E,
18030                    crate::wire::OfferDictionary<'static>,
18031                >(value, 9, encoder, raw, ())?,
18032
18033                Offer::Config(value) => ::fidl_next::RawWireUnion::encode_as::<
18034                    ___E,
18035                    crate::wire::OfferConfiguration<'static>,
18036                >(value, 10, encoder, raw, ())?,
18037
18038                Offer::UnknownOrdinal_(ordinal) => {
18039                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
18040                }
18041            }
18042
18043            Ok(())
18044        }
18045    }
18046
18047    unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Offer<'static>, ___E> for Offer
18048    where
18049        ___E: ?Sized,
18050        Offer: ::fidl_next::Encode<crate::wire::Offer<'static>, ___E>,
18051    {
18052        #[inline]
18053        fn encode_option(
18054            this: ::core::option::Option<Self>,
18055            encoder: &mut ___E,
18056            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Offer<'static>>,
18057            _: (),
18058        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18059            ::fidl_next::munge!(let crate::wire_optional::Offer { raw, _phantom: _ } = &mut *out);
18060
18061            if let Some(inner) = this {
18062                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
18063                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
18064            } else {
18065                ::fidl_next::RawWireUnion::encode_absent(raw);
18066            }
18067
18068            Ok(())
18069        }
18070    }
18071
18072    unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Offer<'static>, ___E>
18073        for &'a Offer
18074    where
18075        ___E: ?Sized,
18076        &'a Offer: ::fidl_next::Encode<crate::wire::Offer<'static>, ___E>,
18077    {
18078        #[inline]
18079        fn encode_option(
18080            this: ::core::option::Option<Self>,
18081            encoder: &mut ___E,
18082            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Offer<'static>>,
18083            _: (),
18084        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18085            ::fidl_next::munge!(let crate::wire_optional::Offer { raw, _phantom: _ } = &mut *out);
18086
18087            if let Some(inner) = this {
18088                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
18089                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
18090            } else {
18091                ::fidl_next::RawWireUnion::encode_absent(raw);
18092            }
18093
18094            Ok(())
18095        }
18096    }
18097
18098    impl<'de> ::fidl_next::FromWire<crate::wire::Offer<'de>> for Offer {
18099        #[inline]
18100        fn from_wire(wire: crate::wire::Offer<'de>) -> Self {
18101            let wire = ::core::mem::ManuallyDrop::new(wire);
18102            match wire.raw.ordinal() {
18103                1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
18104                    wire.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
18105                })),
18106
18107                2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
18108                    wire.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
18109                })),
18110
18111                3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
18112                    wire.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
18113                })),
18114
18115                4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
18116                    wire.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
18117                })),
18118
18119                5 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
18120                    wire.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>()
18121                })),
18122
18123                6 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
18124                    wire.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
18125                })),
18126
18127                8 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
18128                    wire.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
18129                })),
18130
18131                9 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
18132                    wire.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
18133                })),
18134
18135                10 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
18136                    wire.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
18137                })),
18138
18139                ord => return Self::UnknownOrdinal_(ord as u64),
18140            }
18141        }
18142    }
18143
18144    impl<'de> ::fidl_next::FromWireRef<crate::wire::Offer<'de>> for Offer {
18145        #[inline]
18146        fn from_wire_ref(wire: &crate::wire::Offer<'de>) -> Self {
18147            match wire.raw.ordinal() {
18148                1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18149                    wire.raw.get().deref_unchecked::<crate::wire::OfferService<'de>>()
18150                })),
18151
18152                2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18153                    wire.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'de>>()
18154                })),
18155
18156                3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18157                    wire.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'de>>()
18158                })),
18159
18160                4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18161                    wire.raw.get().deref_unchecked::<crate::wire::OfferStorage<'de>>()
18162                })),
18163
18164                5 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18165                    wire.raw.get().deref_unchecked::<crate::wire::OfferRunner<'de>>()
18166                })),
18167
18168                6 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18169                    wire.raw.get().deref_unchecked::<crate::wire::OfferResolver<'de>>()
18170                })),
18171
18172                8 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18173                    wire.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'de>>()
18174                })),
18175
18176                9 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18177                    wire.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'de>>()
18178                })),
18179
18180                10 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18181                    wire.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'de>>()
18182                })),
18183
18184                ord => return Self::UnknownOrdinal_(ord as u64),
18185            }
18186        }
18187    }
18188
18189    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>> for Offer {
18190        #[inline]
18191        fn from_wire_option(
18192            wire: crate::wire_optional::Offer<'de>,
18193        ) -> ::core::option::Option<Self> {
18194            if let Some(inner) = wire.into_option() {
18195                Some(::fidl_next::FromWire::from_wire(inner))
18196            } else {
18197                None
18198            }
18199        }
18200    }
18201
18202    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>> for Box<Offer> {
18203        #[inline]
18204        fn from_wire_option(
18205            wire: crate::wire_optional::Offer<'de>,
18206        ) -> ::core::option::Option<Self> {
18207            <
18208            Offer as ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>>
18209        >::from_wire_option(wire).map(Box::new)
18210        }
18211    }
18212
18213    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Offer<'de>> for Box<Offer> {
18214        #[inline]
18215        fn from_wire_option_ref(
18216            wire: &crate::wire_optional::Offer<'de>,
18217        ) -> ::core::option::Option<Self> {
18218            if let Some(inner) = wire.as_ref() {
18219                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
18220            } else {
18221                None
18222            }
18223        }
18224    }
18225
18226    #[doc = " A repository of the runners available in an environment.\n"]
18227    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18228    pub struct RunnerRegistration {
18229        pub source_name: ::core::option::Option<::std::string::String>,
18230
18231        pub source: ::core::option::Option<crate::natural::Ref>,
18232
18233        pub target_name: ::core::option::Option<::std::string::String>,
18234    }
18235
18236    impl RunnerRegistration {
18237        fn __max_ordinal(&self) -> usize {
18238            if self.target_name.is_some() {
18239                return 3;
18240            }
18241
18242            if self.source.is_some() {
18243                return 2;
18244            }
18245
18246            if self.source_name.is_some() {
18247                return 1;
18248            }
18249
18250            0
18251        }
18252    }
18253
18254    unsafe impl<___E> ::fidl_next::Encode<crate::wire::RunnerRegistration<'static>, ___E>
18255        for RunnerRegistration
18256    where
18257        ___E: ::fidl_next::Encoder + ?Sized,
18258    {
18259        #[inline]
18260        fn encode(
18261            mut self,
18262            encoder: &mut ___E,
18263            out: &mut ::core::mem::MaybeUninit<crate::wire::RunnerRegistration<'static>>,
18264            _: (),
18265        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18266            ::fidl_next::munge!(let crate::wire::RunnerRegistration { table } = out);
18267
18268            let max_ord = self.__max_ordinal();
18269
18270            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
18271            ::fidl_next::Wire::zero_padding(&mut out);
18272
18273            let mut preallocated =
18274                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
18275
18276            for i in 1..=max_ord {
18277                match i {
18278                    3 => {
18279                        if let Some(value) = self.target_name.take() {
18280                            ::fidl_next::WireEnvelope::encode_value::<
18281                                ::fidl_next::WireString<'static>,
18282                                ___E,
18283                            >(
18284                                value, preallocated.encoder, &mut out, 100
18285                            )?;
18286                        } else {
18287                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18288                        }
18289                    }
18290
18291                    2 => {
18292                        if let Some(value) = self.source.take() {
18293                            ::fidl_next::WireEnvelope::encode_value::<
18294                                crate::wire::Ref<'static>,
18295                                ___E,
18296                            >(
18297                                value, preallocated.encoder, &mut out, ()
18298                            )?;
18299                        } else {
18300                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18301                        }
18302                    }
18303
18304                    1 => {
18305                        if let Some(value) = self.source_name.take() {
18306                            ::fidl_next::WireEnvelope::encode_value::<
18307                                ::fidl_next::WireString<'static>,
18308                                ___E,
18309                            >(
18310                                value, preallocated.encoder, &mut out, 100
18311                            )?;
18312                        } else {
18313                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18314                        }
18315                    }
18316
18317                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
18318                }
18319                unsafe {
18320                    preallocated.write_next(out.assume_init_ref());
18321                }
18322            }
18323
18324            ::fidl_next::WireTable::encode_len(table, max_ord);
18325
18326            Ok(())
18327        }
18328    }
18329
18330    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::RunnerRegistration<'static>, ___E>
18331        for &'a RunnerRegistration
18332    where
18333        ___E: ::fidl_next::Encoder + ?Sized,
18334    {
18335        #[inline]
18336        fn encode(
18337            self,
18338            encoder: &mut ___E,
18339            out: &mut ::core::mem::MaybeUninit<crate::wire::RunnerRegistration<'static>>,
18340            _: (),
18341        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18342            ::fidl_next::munge!(let crate::wire::RunnerRegistration { table } = out);
18343
18344            let max_ord = self.__max_ordinal();
18345
18346            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
18347            ::fidl_next::Wire::zero_padding(&mut out);
18348
18349            let mut preallocated =
18350                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
18351
18352            for i in 1..=max_ord {
18353                match i {
18354                    3 => {
18355                        if let Some(value) = &self.target_name {
18356                            ::fidl_next::WireEnvelope::encode_value::<
18357                                ::fidl_next::WireString<'static>,
18358                                ___E,
18359                            >(
18360                                value, preallocated.encoder, &mut out, 100
18361                            )?;
18362                        } else {
18363                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18364                        }
18365                    }
18366
18367                    2 => {
18368                        if let Some(value) = &self.source {
18369                            ::fidl_next::WireEnvelope::encode_value::<
18370                                crate::wire::Ref<'static>,
18371                                ___E,
18372                            >(
18373                                value, preallocated.encoder, &mut out, ()
18374                            )?;
18375                        } else {
18376                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18377                        }
18378                    }
18379
18380                    1 => {
18381                        if let Some(value) = &self.source_name {
18382                            ::fidl_next::WireEnvelope::encode_value::<
18383                                ::fidl_next::WireString<'static>,
18384                                ___E,
18385                            >(
18386                                value, preallocated.encoder, &mut out, 100
18387                            )?;
18388                        } else {
18389                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18390                        }
18391                    }
18392
18393                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
18394                }
18395                unsafe {
18396                    preallocated.write_next(out.assume_init_ref());
18397                }
18398            }
18399
18400            ::fidl_next::WireTable::encode_len(table, max_ord);
18401
18402            Ok(())
18403        }
18404    }
18405
18406    impl<'de> ::fidl_next::FromWire<crate::wire::RunnerRegistration<'de>> for RunnerRegistration {
18407        #[inline]
18408        fn from_wire(wire_: crate::wire::RunnerRegistration<'de>) -> Self {
18409            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18410
18411            let source_name = wire_.table.get(1);
18412
18413            let source = wire_.table.get(2);
18414
18415            let target_name = wire_.table.get(3);
18416
18417            Self {
18418                source_name: source_name.map(|envelope| {
18419                    ::fidl_next::FromWire::from_wire(unsafe {
18420                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
18421                    })
18422                }),
18423
18424                source: source.map(|envelope| {
18425                    ::fidl_next::FromWire::from_wire(unsafe {
18426                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
18427                    })
18428                }),
18429
18430                target_name: target_name.map(|envelope| {
18431                    ::fidl_next::FromWire::from_wire(unsafe {
18432                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
18433                    })
18434                }),
18435            }
18436        }
18437    }
18438
18439    impl<'de> ::fidl_next::FromWireRef<crate::wire::RunnerRegistration<'de>> for RunnerRegistration {
18440        #[inline]
18441        fn from_wire_ref(wire: &crate::wire::RunnerRegistration<'de>) -> Self {
18442            Self {
18443                source_name: wire.table.get(1).map(|envelope| {
18444                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18445                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
18446                    })
18447                }),
18448
18449                source: wire.table.get(2).map(|envelope| {
18450                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18451                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
18452                    })
18453                }),
18454
18455                target_name: wire.table.get(3).map(|envelope| {
18456                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18457                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
18458                    })
18459                }),
18460            }
18461        }
18462    }
18463
18464    #[doc = " A mapping of URL scheme to resolver name.\n"]
18465    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18466    pub struct ResolverRegistration {
18467        pub resolver: ::core::option::Option<::std::string::String>,
18468
18469        pub source: ::core::option::Option<crate::natural::Ref>,
18470
18471        pub scheme: ::core::option::Option<::std::string::String>,
18472    }
18473
18474    impl ResolverRegistration {
18475        fn __max_ordinal(&self) -> usize {
18476            if self.scheme.is_some() {
18477                return 3;
18478            }
18479
18480            if self.source.is_some() {
18481                return 2;
18482            }
18483
18484            if self.resolver.is_some() {
18485                return 1;
18486            }
18487
18488            0
18489        }
18490    }
18491
18492    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolverRegistration<'static>, ___E>
18493        for ResolverRegistration
18494    where
18495        ___E: ::fidl_next::Encoder + ?Sized,
18496    {
18497        #[inline]
18498        fn encode(
18499            mut self,
18500            encoder: &mut ___E,
18501            out: &mut ::core::mem::MaybeUninit<crate::wire::ResolverRegistration<'static>>,
18502            _: (),
18503        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18504            ::fidl_next::munge!(let crate::wire::ResolverRegistration { table } = out);
18505
18506            let max_ord = self.__max_ordinal();
18507
18508            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
18509            ::fidl_next::Wire::zero_padding(&mut out);
18510
18511            let mut preallocated =
18512                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
18513
18514            for i in 1..=max_ord {
18515                match i {
18516                    3 => {
18517                        if let Some(value) = self.scheme.take() {
18518                            ::fidl_next::WireEnvelope::encode_value::<
18519                                ::fidl_next::WireString<'static>,
18520                                ___E,
18521                            >(
18522                                value, preallocated.encoder, &mut out, 100
18523                            )?;
18524                        } else {
18525                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18526                        }
18527                    }
18528
18529                    2 => {
18530                        if let Some(value) = self.source.take() {
18531                            ::fidl_next::WireEnvelope::encode_value::<
18532                                crate::wire::Ref<'static>,
18533                                ___E,
18534                            >(
18535                                value, preallocated.encoder, &mut out, ()
18536                            )?;
18537                        } else {
18538                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18539                        }
18540                    }
18541
18542                    1 => {
18543                        if let Some(value) = self.resolver.take() {
18544                            ::fidl_next::WireEnvelope::encode_value::<
18545                                ::fidl_next::WireString<'static>,
18546                                ___E,
18547                            >(
18548                                value, preallocated.encoder, &mut out, 100
18549                            )?;
18550                        } else {
18551                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18552                        }
18553                    }
18554
18555                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
18556                }
18557                unsafe {
18558                    preallocated.write_next(out.assume_init_ref());
18559                }
18560            }
18561
18562            ::fidl_next::WireTable::encode_len(table, max_ord);
18563
18564            Ok(())
18565        }
18566    }
18567
18568    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolverRegistration<'static>, ___E>
18569        for &'a ResolverRegistration
18570    where
18571        ___E: ::fidl_next::Encoder + ?Sized,
18572    {
18573        #[inline]
18574        fn encode(
18575            self,
18576            encoder: &mut ___E,
18577            out: &mut ::core::mem::MaybeUninit<crate::wire::ResolverRegistration<'static>>,
18578            _: (),
18579        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18580            ::fidl_next::munge!(let crate::wire::ResolverRegistration { table } = out);
18581
18582            let max_ord = self.__max_ordinal();
18583
18584            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
18585            ::fidl_next::Wire::zero_padding(&mut out);
18586
18587            let mut preallocated =
18588                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
18589
18590            for i in 1..=max_ord {
18591                match i {
18592                    3 => {
18593                        if let Some(value) = &self.scheme {
18594                            ::fidl_next::WireEnvelope::encode_value::<
18595                                ::fidl_next::WireString<'static>,
18596                                ___E,
18597                            >(
18598                                value, preallocated.encoder, &mut out, 100
18599                            )?;
18600                        } else {
18601                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18602                        }
18603                    }
18604
18605                    2 => {
18606                        if let Some(value) = &self.source {
18607                            ::fidl_next::WireEnvelope::encode_value::<
18608                                crate::wire::Ref<'static>,
18609                                ___E,
18610                            >(
18611                                value, preallocated.encoder, &mut out, ()
18612                            )?;
18613                        } else {
18614                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18615                        }
18616                    }
18617
18618                    1 => {
18619                        if let Some(value) = &self.resolver {
18620                            ::fidl_next::WireEnvelope::encode_value::<
18621                                ::fidl_next::WireString<'static>,
18622                                ___E,
18623                            >(
18624                                value, preallocated.encoder, &mut out, 100
18625                            )?;
18626                        } else {
18627                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18628                        }
18629                    }
18630
18631                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
18632                }
18633                unsafe {
18634                    preallocated.write_next(out.assume_init_ref());
18635                }
18636            }
18637
18638            ::fidl_next::WireTable::encode_len(table, max_ord);
18639
18640            Ok(())
18641        }
18642    }
18643
18644    impl<'de> ::fidl_next::FromWire<crate::wire::ResolverRegistration<'de>> for ResolverRegistration {
18645        #[inline]
18646        fn from_wire(wire_: crate::wire::ResolverRegistration<'de>) -> Self {
18647            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18648
18649            let resolver = wire_.table.get(1);
18650
18651            let source = wire_.table.get(2);
18652
18653            let scheme = wire_.table.get(3);
18654
18655            Self {
18656                resolver: resolver.map(|envelope| {
18657                    ::fidl_next::FromWire::from_wire(unsafe {
18658                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
18659                    })
18660                }),
18661
18662                source: source.map(|envelope| {
18663                    ::fidl_next::FromWire::from_wire(unsafe {
18664                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
18665                    })
18666                }),
18667
18668                scheme: scheme.map(|envelope| {
18669                    ::fidl_next::FromWire::from_wire(unsafe {
18670                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
18671                    })
18672                }),
18673            }
18674        }
18675    }
18676
18677    impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolverRegistration<'de>>
18678        for ResolverRegistration
18679    {
18680        #[inline]
18681        fn from_wire_ref(wire: &crate::wire::ResolverRegistration<'de>) -> Self {
18682            Self {
18683                resolver: wire.table.get(1).map(|envelope| {
18684                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18685                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
18686                    })
18687                }),
18688
18689                source: wire.table.get(2).map(|envelope| {
18690                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18691                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
18692                    })
18693                }),
18694
18695                scheme: wire.table.get(3).map(|envelope| {
18696                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18697                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
18698                    })
18699                }),
18700            }
18701        }
18702    }
18703
18704    #[doc = " Registers a protocol in the environment as a debug capability. This makes\n it available to any component in the environment that uses it with\n `source == debug`.\n\n To learn more about protocols, see:\n https://fuchsia.dev/fuchsia-src/glossary#protocol\n"]
18705    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18706    pub struct DebugProtocolRegistration {
18707        pub source: ::core::option::Option<crate::natural::Ref>,
18708
18709        pub source_name: ::core::option::Option<::std::string::String>,
18710
18711        pub target_name: ::core::option::Option<::std::string::String>,
18712    }
18713
18714    impl DebugProtocolRegistration {
18715        fn __max_ordinal(&self) -> usize {
18716            if self.target_name.is_some() {
18717                return 3;
18718            }
18719
18720            if self.source_name.is_some() {
18721                return 2;
18722            }
18723
18724            if self.source.is_some() {
18725                return 1;
18726            }
18727
18728            0
18729        }
18730    }
18731
18732    unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugProtocolRegistration<'static>, ___E>
18733        for DebugProtocolRegistration
18734    where
18735        ___E: ::fidl_next::Encoder + ?Sized,
18736    {
18737        #[inline]
18738        fn encode(
18739            mut self,
18740            encoder: &mut ___E,
18741            out: &mut ::core::mem::MaybeUninit<crate::wire::DebugProtocolRegistration<'static>>,
18742            _: (),
18743        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18744            ::fidl_next::munge!(let crate::wire::DebugProtocolRegistration { table } = out);
18745
18746            let max_ord = self.__max_ordinal();
18747
18748            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
18749            ::fidl_next::Wire::zero_padding(&mut out);
18750
18751            let mut preallocated =
18752                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
18753
18754            for i in 1..=max_ord {
18755                match i {
18756                    3 => {
18757                        if let Some(value) = self.target_name.take() {
18758                            ::fidl_next::WireEnvelope::encode_value::<
18759                                ::fidl_next::WireString<'static>,
18760                                ___E,
18761                            >(
18762                                value, preallocated.encoder, &mut out, 100
18763                            )?;
18764                        } else {
18765                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18766                        }
18767                    }
18768
18769                    2 => {
18770                        if let Some(value) = self.source_name.take() {
18771                            ::fidl_next::WireEnvelope::encode_value::<
18772                                ::fidl_next::WireString<'static>,
18773                                ___E,
18774                            >(
18775                                value, preallocated.encoder, &mut out, 100
18776                            )?;
18777                        } else {
18778                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18779                        }
18780                    }
18781
18782                    1 => {
18783                        if let Some(value) = self.source.take() {
18784                            ::fidl_next::WireEnvelope::encode_value::<
18785                                crate::wire::Ref<'static>,
18786                                ___E,
18787                            >(
18788                                value, preallocated.encoder, &mut out, ()
18789                            )?;
18790                        } else {
18791                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18792                        }
18793                    }
18794
18795                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
18796                }
18797                unsafe {
18798                    preallocated.write_next(out.assume_init_ref());
18799                }
18800            }
18801
18802            ::fidl_next::WireTable::encode_len(table, max_ord);
18803
18804            Ok(())
18805        }
18806    }
18807
18808    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugProtocolRegistration<'static>, ___E>
18809        for &'a DebugProtocolRegistration
18810    where
18811        ___E: ::fidl_next::Encoder + ?Sized,
18812    {
18813        #[inline]
18814        fn encode(
18815            self,
18816            encoder: &mut ___E,
18817            out: &mut ::core::mem::MaybeUninit<crate::wire::DebugProtocolRegistration<'static>>,
18818            _: (),
18819        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18820            ::fidl_next::munge!(let crate::wire::DebugProtocolRegistration { table } = out);
18821
18822            let max_ord = self.__max_ordinal();
18823
18824            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
18825            ::fidl_next::Wire::zero_padding(&mut out);
18826
18827            let mut preallocated =
18828                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
18829
18830            for i in 1..=max_ord {
18831                match i {
18832                    3 => {
18833                        if let Some(value) = &self.target_name {
18834                            ::fidl_next::WireEnvelope::encode_value::<
18835                                ::fidl_next::WireString<'static>,
18836                                ___E,
18837                            >(
18838                                value, preallocated.encoder, &mut out, 100
18839                            )?;
18840                        } else {
18841                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18842                        }
18843                    }
18844
18845                    2 => {
18846                        if let Some(value) = &self.source_name {
18847                            ::fidl_next::WireEnvelope::encode_value::<
18848                                ::fidl_next::WireString<'static>,
18849                                ___E,
18850                            >(
18851                                value, preallocated.encoder, &mut out, 100
18852                            )?;
18853                        } else {
18854                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18855                        }
18856                    }
18857
18858                    1 => {
18859                        if let Some(value) = &self.source {
18860                            ::fidl_next::WireEnvelope::encode_value::<
18861                                crate::wire::Ref<'static>,
18862                                ___E,
18863                            >(
18864                                value, preallocated.encoder, &mut out, ()
18865                            )?;
18866                        } else {
18867                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
18868                        }
18869                    }
18870
18871                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
18872                }
18873                unsafe {
18874                    preallocated.write_next(out.assume_init_ref());
18875                }
18876            }
18877
18878            ::fidl_next::WireTable::encode_len(table, max_ord);
18879
18880            Ok(())
18881        }
18882    }
18883
18884    impl<'de> ::fidl_next::FromWire<crate::wire::DebugProtocolRegistration<'de>>
18885        for DebugProtocolRegistration
18886    {
18887        #[inline]
18888        fn from_wire(wire_: crate::wire::DebugProtocolRegistration<'de>) -> Self {
18889            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18890
18891            let source = wire_.table.get(1);
18892
18893            let source_name = wire_.table.get(2);
18894
18895            let target_name = wire_.table.get(3);
18896
18897            Self {
18898                source: source.map(|envelope| {
18899                    ::fidl_next::FromWire::from_wire(unsafe {
18900                        envelope.read_unchecked::<crate::wire::Ref<'de>>()
18901                    })
18902                }),
18903
18904                source_name: source_name.map(|envelope| {
18905                    ::fidl_next::FromWire::from_wire(unsafe {
18906                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
18907                    })
18908                }),
18909
18910                target_name: target_name.map(|envelope| {
18911                    ::fidl_next::FromWire::from_wire(unsafe {
18912                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
18913                    })
18914                }),
18915            }
18916        }
18917    }
18918
18919    impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugProtocolRegistration<'de>>
18920        for DebugProtocolRegistration
18921    {
18922        #[inline]
18923        fn from_wire_ref(wire: &crate::wire::DebugProtocolRegistration<'de>) -> Self {
18924            Self {
18925                source: wire.table.get(1).map(|envelope| {
18926                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18927                        envelope.deref_unchecked::<crate::wire::Ref<'de>>()
18928                    })
18929                }),
18930
18931                source_name: wire.table.get(2).map(|envelope| {
18932                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18933                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
18934                    })
18935                }),
18936
18937                target_name: wire.table.get(3).map(|envelope| {
18938                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18939                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
18940                    })
18941                }),
18942            }
18943        }
18944    }
18945
18946    #[doc = " Declares a capability registered in the debug section of an environment.\n"]
18947    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18948    pub enum DebugRegistration {
18949        Protocol(crate::natural::DebugProtocolRegistration),
18950
18951        UnknownOrdinal_(u64),
18952    }
18953
18954    impl DebugRegistration {
18955        pub fn is_unknown(&self) -> bool {
18956            #[allow(unreachable_patterns)]
18957            match self {
18958                Self::UnknownOrdinal_(_) => true,
18959                _ => false,
18960            }
18961        }
18962    }
18963
18964    unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>
18965        for DebugRegistration
18966    where
18967        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
18968        ___E: ::fidl_next::Encoder,
18969    {
18970        #[inline]
18971        fn encode(
18972            self,
18973            encoder: &mut ___E,
18974            out: &mut ::core::mem::MaybeUninit<crate::wire::DebugRegistration<'static>>,
18975            _: (),
18976        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18977            ::fidl_next::munge!(let crate::wire::DebugRegistration { raw, _phantom: _ } = out);
18978
18979            match self {
18980                Self::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
18981                    ___E,
18982                    crate::wire::DebugProtocolRegistration<'static>,
18983                >(value, 1, encoder, raw, ())?,
18984
18985                Self::UnknownOrdinal_(ordinal) => {
18986                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
18987                }
18988            }
18989
18990            Ok(())
18991        }
18992    }
18993
18994    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>
18995        for &'a DebugRegistration
18996    where
18997        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
18998        ___E: ::fidl_next::Encoder,
18999    {
19000        #[inline]
19001        fn encode(
19002            self,
19003            encoder: &mut ___E,
19004            out: &mut ::core::mem::MaybeUninit<crate::wire::DebugRegistration<'static>>,
19005            _: (),
19006        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19007            ::fidl_next::munge!(let crate::wire::DebugRegistration { raw, _phantom: _ } = out);
19008
19009            match self {
19010                DebugRegistration::Protocol(value) => ::fidl_next::RawWireUnion::encode_as::<
19011                    ___E,
19012                    crate::wire::DebugProtocolRegistration<'static>,
19013                >(value, 1, encoder, raw, ())?,
19014
19015                DebugRegistration::UnknownOrdinal_(ordinal) => {
19016                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
19017                }
19018            }
19019
19020            Ok(())
19021        }
19022    }
19023
19024    unsafe impl<___E>
19025        ::fidl_next::EncodeOption<crate::wire_optional::DebugRegistration<'static>, ___E>
19026        for DebugRegistration
19027    where
19028        ___E: ?Sized,
19029        DebugRegistration: ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>,
19030    {
19031        #[inline]
19032        fn encode_option(
19033            this: ::core::option::Option<Self>,
19034            encoder: &mut ___E,
19035            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::DebugRegistration<'static>>,
19036            _: (),
19037        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19038            ::fidl_next::munge!(let crate::wire_optional::DebugRegistration { raw, _phantom: _ } = &mut *out);
19039
19040            if let Some(inner) = this {
19041                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19042                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19043            } else {
19044                ::fidl_next::RawWireUnion::encode_absent(raw);
19045            }
19046
19047            Ok(())
19048        }
19049    }
19050
19051    unsafe impl<'a, ___E>
19052        ::fidl_next::EncodeOption<crate::wire_optional::DebugRegistration<'static>, ___E>
19053        for &'a DebugRegistration
19054    where
19055        ___E: ?Sized,
19056        &'a DebugRegistration: ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>,
19057    {
19058        #[inline]
19059        fn encode_option(
19060            this: ::core::option::Option<Self>,
19061            encoder: &mut ___E,
19062            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::DebugRegistration<'static>>,
19063            _: (),
19064        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19065            ::fidl_next::munge!(let crate::wire_optional::DebugRegistration { raw, _phantom: _ } = &mut *out);
19066
19067            if let Some(inner) = this {
19068                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19069                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19070            } else {
19071                ::fidl_next::RawWireUnion::encode_absent(raw);
19072            }
19073
19074            Ok(())
19075        }
19076    }
19077
19078    impl<'de> ::fidl_next::FromWire<crate::wire::DebugRegistration<'de>> for DebugRegistration {
19079        #[inline]
19080        fn from_wire(wire: crate::wire::DebugRegistration<'de>) -> Self {
19081            let wire = ::core::mem::ManuallyDrop::new(wire);
19082            match wire.raw.ordinal() {
19083                1 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
19084                    wire.raw.get().read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
19085                })),
19086
19087                ord => return Self::UnknownOrdinal_(ord as u64),
19088            }
19089        }
19090    }
19091
19092    impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugRegistration<'de>> for DebugRegistration {
19093        #[inline]
19094        fn from_wire_ref(wire: &crate::wire::DebugRegistration<'de>) -> Self {
19095            match wire.raw.ordinal() {
19096                1 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
19097                    wire.raw.get().deref_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
19098                })),
19099
19100                ord => return Self::UnknownOrdinal_(ord as u64),
19101            }
19102        }
19103    }
19104
19105    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::DebugRegistration<'de>>
19106        for DebugRegistration
19107    {
19108        #[inline]
19109        fn from_wire_option(
19110            wire: crate::wire_optional::DebugRegistration<'de>,
19111        ) -> ::core::option::Option<Self> {
19112            if let Some(inner) = wire.into_option() {
19113                Some(::fidl_next::FromWire::from_wire(inner))
19114            } else {
19115                None
19116            }
19117        }
19118    }
19119
19120    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::DebugRegistration<'de>>
19121        for Box<DebugRegistration>
19122    {
19123        #[inline]
19124        fn from_wire_option(
19125            wire: crate::wire_optional::DebugRegistration<'de>,
19126        ) -> ::core::option::Option<Self> {
19127            <DebugRegistration as ::fidl_next::FromWireOption<
19128                crate::wire_optional::DebugRegistration<'de>,
19129            >>::from_wire_option(wire)
19130            .map(Box::new)
19131        }
19132    }
19133
19134    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::DebugRegistration<'de>>
19135        for Box<DebugRegistration>
19136    {
19137        #[inline]
19138        fn from_wire_option_ref(
19139            wire: &crate::wire_optional::DebugRegistration<'de>,
19140        ) -> ::core::option::Option<Self> {
19141            if let Some(inner) = wire.as_ref() {
19142                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
19143            } else {
19144                None
19145            }
19146        }
19147    }
19148
19149    #[doc = " Declares an environment which configures a realm.\n"]
19150    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19151    pub struct Environment {
19152        pub name: ::core::option::Option<::std::string::String>,
19153
19154        pub extends: ::core::option::Option<crate::natural::EnvironmentExtends>,
19155
19156        pub runners: ::core::option::Option<::std::vec::Vec<crate::natural::RunnerRegistration>>,
19157
19158        pub resolvers:
19159            ::core::option::Option<::std::vec::Vec<crate::natural::ResolverRegistration>>,
19160
19161        pub debug_capabilities:
19162            ::core::option::Option<::std::vec::Vec<crate::natural::DebugRegistration>>,
19163
19164        pub stop_timeout_ms: ::core::option::Option<u32>,
19165    }
19166
19167    impl Environment {
19168        fn __max_ordinal(&self) -> usize {
19169            if self.stop_timeout_ms.is_some() {
19170                return 6;
19171            }
19172
19173            if self.debug_capabilities.is_some() {
19174                return 5;
19175            }
19176
19177            if self.resolvers.is_some() {
19178                return 4;
19179            }
19180
19181            if self.runners.is_some() {
19182                return 3;
19183            }
19184
19185            if self.extends.is_some() {
19186                return 2;
19187            }
19188
19189            if self.name.is_some() {
19190                return 1;
19191            }
19192
19193            0
19194        }
19195    }
19196
19197    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Environment<'static>, ___E> for Environment
19198    where
19199        ___E: ::fidl_next::Encoder + ?Sized,
19200    {
19201        #[inline]
19202        fn encode(
19203            mut self,
19204            encoder: &mut ___E,
19205            out: &mut ::core::mem::MaybeUninit<crate::wire::Environment<'static>>,
19206            _: (),
19207        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19208            ::fidl_next::munge!(let crate::wire::Environment { table } = out);
19209
19210            let max_ord = self.__max_ordinal();
19211
19212            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
19213            ::fidl_next::Wire::zero_padding(&mut out);
19214
19215            let mut preallocated =
19216                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
19217
19218            for i in 1..=max_ord {
19219                match i {
19220                    6 => {
19221                        if let Some(value) = self.stop_timeout_ms.take() {
19222                            ::fidl_next::WireEnvelope::encode_value::<::fidl_next::WireU32, ___E>(
19223                                value,
19224                                preallocated.encoder,
19225                                &mut out,
19226                                (),
19227                            )?;
19228                        } else {
19229                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19230                        }
19231                    }
19232
19233                    5 => {
19234                        if let Some(value) = self.debug_capabilities.take() {
19235                            ::fidl_next::WireEnvelope::encode_value::<
19236                                ::fidl_next::WireVector<
19237                                    'static,
19238                                    crate::wire::DebugRegistration<'static>,
19239                                >,
19240                                ___E,
19241                            >(
19242                                value, preallocated.encoder, &mut out, (4294967295, ())
19243                            )?;
19244                        } else {
19245                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19246                        }
19247                    }
19248
19249                    4 => {
19250                        if let Some(value) = self.resolvers.take() {
19251                            ::fidl_next::WireEnvelope::encode_value::<
19252                                ::fidl_next::WireVector<
19253                                    'static,
19254                                    crate::wire::ResolverRegistration<'static>,
19255                                >,
19256                                ___E,
19257                            >(
19258                                value, preallocated.encoder, &mut out, (4294967295, ())
19259                            )?;
19260                        } else {
19261                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19262                        }
19263                    }
19264
19265                    3 => {
19266                        if let Some(value) = self.runners.take() {
19267                            ::fidl_next::WireEnvelope::encode_value::<
19268                                ::fidl_next::WireVector<
19269                                    'static,
19270                                    crate::wire::RunnerRegistration<'static>,
19271                                >,
19272                                ___E,
19273                            >(
19274                                value, preallocated.encoder, &mut out, (4294967295, ())
19275                            )?;
19276                        } else {
19277                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19278                        }
19279                    }
19280
19281                    2 => {
19282                        if let Some(value) = self.extends.take() {
19283                            ::fidl_next::WireEnvelope::encode_value::<
19284                                crate::wire::EnvironmentExtends,
19285                                ___E,
19286                            >(
19287                                value, preallocated.encoder, &mut out, ()
19288                            )?;
19289                        } else {
19290                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19291                        }
19292                    }
19293
19294                    1 => {
19295                        if let Some(value) = self.name.take() {
19296                            ::fidl_next::WireEnvelope::encode_value::<
19297                                ::fidl_next::WireString<'static>,
19298                                ___E,
19299                            >(
19300                                value, preallocated.encoder, &mut out, 100
19301                            )?;
19302                        } else {
19303                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19304                        }
19305                    }
19306
19307                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
19308                }
19309                unsafe {
19310                    preallocated.write_next(out.assume_init_ref());
19311                }
19312            }
19313
19314            ::fidl_next::WireTable::encode_len(table, max_ord);
19315
19316            Ok(())
19317        }
19318    }
19319
19320    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Environment<'static>, ___E>
19321        for &'a Environment
19322    where
19323        ___E: ::fidl_next::Encoder + ?Sized,
19324    {
19325        #[inline]
19326        fn encode(
19327            self,
19328            encoder: &mut ___E,
19329            out: &mut ::core::mem::MaybeUninit<crate::wire::Environment<'static>>,
19330            _: (),
19331        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19332            ::fidl_next::munge!(let crate::wire::Environment { table } = out);
19333
19334            let max_ord = self.__max_ordinal();
19335
19336            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
19337            ::fidl_next::Wire::zero_padding(&mut out);
19338
19339            let mut preallocated =
19340                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
19341
19342            for i in 1..=max_ord {
19343                match i {
19344                    6 => {
19345                        if let Some(value) = &self.stop_timeout_ms {
19346                            ::fidl_next::WireEnvelope::encode_value::<::fidl_next::WireU32, ___E>(
19347                                value,
19348                                preallocated.encoder,
19349                                &mut out,
19350                                (),
19351                            )?;
19352                        } else {
19353                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19354                        }
19355                    }
19356
19357                    5 => {
19358                        if let Some(value) = &self.debug_capabilities {
19359                            ::fidl_next::WireEnvelope::encode_value::<
19360                                ::fidl_next::WireVector<
19361                                    'static,
19362                                    crate::wire::DebugRegistration<'static>,
19363                                >,
19364                                ___E,
19365                            >(
19366                                value, preallocated.encoder, &mut out, (4294967295, ())
19367                            )?;
19368                        } else {
19369                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19370                        }
19371                    }
19372
19373                    4 => {
19374                        if let Some(value) = &self.resolvers {
19375                            ::fidl_next::WireEnvelope::encode_value::<
19376                                ::fidl_next::WireVector<
19377                                    'static,
19378                                    crate::wire::ResolverRegistration<'static>,
19379                                >,
19380                                ___E,
19381                            >(
19382                                value, preallocated.encoder, &mut out, (4294967295, ())
19383                            )?;
19384                        } else {
19385                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19386                        }
19387                    }
19388
19389                    3 => {
19390                        if let Some(value) = &self.runners {
19391                            ::fidl_next::WireEnvelope::encode_value::<
19392                                ::fidl_next::WireVector<
19393                                    'static,
19394                                    crate::wire::RunnerRegistration<'static>,
19395                                >,
19396                                ___E,
19397                            >(
19398                                value, preallocated.encoder, &mut out, (4294967295, ())
19399                            )?;
19400                        } else {
19401                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19402                        }
19403                    }
19404
19405                    2 => {
19406                        if let Some(value) = &self.extends {
19407                            ::fidl_next::WireEnvelope::encode_value::<
19408                                crate::wire::EnvironmentExtends,
19409                                ___E,
19410                            >(
19411                                value, preallocated.encoder, &mut out, ()
19412                            )?;
19413                        } else {
19414                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19415                        }
19416                    }
19417
19418                    1 => {
19419                        if let Some(value) = &self.name {
19420                            ::fidl_next::WireEnvelope::encode_value::<
19421                                ::fidl_next::WireString<'static>,
19422                                ___E,
19423                            >(
19424                                value, preallocated.encoder, &mut out, 100
19425                            )?;
19426                        } else {
19427                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19428                        }
19429                    }
19430
19431                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
19432                }
19433                unsafe {
19434                    preallocated.write_next(out.assume_init_ref());
19435                }
19436            }
19437
19438            ::fidl_next::WireTable::encode_len(table, max_ord);
19439
19440            Ok(())
19441        }
19442    }
19443
19444    impl<'de> ::fidl_next::FromWire<crate::wire::Environment<'de>> for Environment {
19445        #[inline]
19446        fn from_wire(wire_: crate::wire::Environment<'de>) -> Self {
19447            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
19448
19449            let name = wire_.table.get(1);
19450
19451            let extends = wire_.table.get(2);
19452
19453            let runners = wire_.table.get(3);
19454
19455            let resolvers = wire_.table.get(4);
19456
19457            let debug_capabilities = wire_.table.get(5);
19458
19459            let stop_timeout_ms = wire_.table.get(6);
19460
19461            Self {
19462
19463
19464                name: name.map(|envelope| ::fidl_next::FromWire::from_wire(
19465                    unsafe { envelope.read_unchecked::<::fidl_next::WireString<'de>>() }
19466                )),
19467
19468
19469                extends: extends.map(|envelope| ::fidl_next::FromWire::from_wire(
19470                    unsafe { envelope.read_unchecked::<crate::wire::EnvironmentExtends>() }
19471                )),
19472
19473
19474                runners: runners.map(|envelope| ::fidl_next::FromWire::from_wire(
19475                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::RunnerRegistration<'de>>>() }
19476                )),
19477
19478
19479                resolvers: resolvers.map(|envelope| ::fidl_next::FromWire::from_wire(
19480                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ResolverRegistration<'de>>>() }
19481                )),
19482
19483
19484                debug_capabilities: debug_capabilities.map(|envelope| ::fidl_next::FromWire::from_wire(
19485                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::DebugRegistration<'de>>>() }
19486                )),
19487
19488
19489                stop_timeout_ms: stop_timeout_ms.map(|envelope| ::fidl_next::FromWire::from_wire(
19490                    unsafe { envelope.read_unchecked::<::fidl_next::WireU32>() }
19491                )),
19492
19493        }
19494        }
19495    }
19496
19497    impl<'de> ::fidl_next::FromWireRef<crate::wire::Environment<'de>> for Environment {
19498        #[inline]
19499        fn from_wire_ref(wire: &crate::wire::Environment<'de>) -> Self {
19500            Self {
19501
19502
19503                name: wire.table.get(1)
19504                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19505                        unsafe { envelope.deref_unchecked::<::fidl_next::WireString<'de>>() }
19506                    )),
19507
19508
19509                extends: wire.table.get(2)
19510                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19511                        unsafe { envelope.deref_unchecked::<crate::wire::EnvironmentExtends>() }
19512                    )),
19513
19514
19515                runners: wire.table.get(3)
19516                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19517                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::RunnerRegistration<'de>>>() }
19518                    )),
19519
19520
19521                resolvers: wire.table.get(4)
19522                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19523                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::ResolverRegistration<'de>>>() }
19524                    )),
19525
19526
19527                debug_capabilities: wire.table.get(5)
19528                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19529                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::DebugRegistration<'de>>>() }
19530                    )),
19531
19532
19533                stop_timeout_ms: wire.table.get(6)
19534                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19535                        unsafe { envelope.deref_unchecked::<::fidl_next::WireU32>() }
19536                    )),
19537
19538        }
19539        }
19540    }
19541
19542    #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19543    pub struct ConfigSourceCapabilities {}
19544
19545    impl ConfigSourceCapabilities {
19546        fn __max_ordinal(&self) -> usize {
19547            0
19548        }
19549    }
19550
19551    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSourceCapabilities<'static>, ___E>
19552        for ConfigSourceCapabilities
19553    where
19554        ___E: ::fidl_next::Encoder + ?Sized,
19555    {
19556        #[inline]
19557        fn encode(
19558            mut self,
19559            encoder: &mut ___E,
19560            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSourceCapabilities<'static>>,
19561            _: (),
19562        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19563            ::fidl_next::munge!(let crate::wire::ConfigSourceCapabilities { table } = out);
19564
19565            let max_ord = self.__max_ordinal();
19566
19567            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
19568            ::fidl_next::Wire::zero_padding(&mut out);
19569
19570            let mut preallocated =
19571                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
19572
19573            for i in 1..=max_ord {
19574                match i {
19575                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
19576                }
19577                unsafe {
19578                    preallocated.write_next(out.assume_init_ref());
19579                }
19580            }
19581
19582            ::fidl_next::WireTable::encode_len(table, max_ord);
19583
19584            Ok(())
19585        }
19586    }
19587
19588    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSourceCapabilities<'static>, ___E>
19589        for &'a ConfigSourceCapabilities
19590    where
19591        ___E: ::fidl_next::Encoder + ?Sized,
19592    {
19593        #[inline]
19594        fn encode(
19595            self,
19596            encoder: &mut ___E,
19597            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSourceCapabilities<'static>>,
19598            _: (),
19599        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19600            ::fidl_next::munge!(let crate::wire::ConfigSourceCapabilities { table } = out);
19601
19602            let max_ord = self.__max_ordinal();
19603
19604            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
19605            ::fidl_next::Wire::zero_padding(&mut out);
19606
19607            let mut preallocated =
19608                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
19609
19610            for i in 1..=max_ord {
19611                match i {
19612                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
19613                }
19614                unsafe {
19615                    preallocated.write_next(out.assume_init_ref());
19616                }
19617            }
19618
19619            ::fidl_next::WireTable::encode_len(table, max_ord);
19620
19621            Ok(())
19622        }
19623    }
19624
19625    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSourceCapabilities<'de>>
19626        for ConfigSourceCapabilities
19627    {
19628        #[inline]
19629        fn from_wire(wire_: crate::wire::ConfigSourceCapabilities<'de>) -> Self {
19630            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
19631
19632            Self {}
19633        }
19634    }
19635
19636    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSourceCapabilities<'de>>
19637        for ConfigSourceCapabilities
19638    {
19639        #[inline]
19640        fn from_wire_ref(wire: &crate::wire::ConfigSourceCapabilities<'de>) -> Self {
19641            Self {}
19642        }
19643    }
19644
19645    #[doc = " Strategies available for resolving configuration values.\n"]
19646    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19647    pub enum ConfigValueSource {
19648        PackagePath(::std::string::String),
19649
19650        Capabilities(crate::natural::ConfigSourceCapabilities),
19651
19652        UnknownOrdinal_(u64),
19653    }
19654
19655    impl ConfigValueSource {
19656        pub fn is_unknown(&self) -> bool {
19657            #[allow(unreachable_patterns)]
19658            match self {
19659                Self::UnknownOrdinal_(_) => true,
19660                _ => false,
19661            }
19662        }
19663    }
19664
19665    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>
19666        for ConfigValueSource
19667    where
19668        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
19669        ___E: ::fidl_next::Encoder,
19670    {
19671        #[inline]
19672        fn encode(
19673            self,
19674            encoder: &mut ___E,
19675            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSource<'static>>,
19676            _: (),
19677        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19678            ::fidl_next::munge!(let crate::wire::ConfigValueSource { raw, _phantom: _ } = out);
19679
19680            match self {
19681                Self::PackagePath(value) => ::fidl_next::RawWireUnion::encode_as::<
19682                    ___E,
19683                    ::fidl_next::WireString<'static>,
19684                >(value, 1, encoder, raw, 4294967295)?,
19685
19686                Self::Capabilities(value) => ::fidl_next::RawWireUnion::encode_as::<
19687                    ___E,
19688                    crate::wire::ConfigSourceCapabilities<'static>,
19689                >(value, 2, encoder, raw, ())?,
19690
19691                Self::UnknownOrdinal_(ordinal) => {
19692                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
19693                }
19694            }
19695
19696            Ok(())
19697        }
19698    }
19699
19700    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>
19701        for &'a ConfigValueSource
19702    where
19703        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
19704        ___E: ::fidl_next::Encoder,
19705    {
19706        #[inline]
19707        fn encode(
19708            self,
19709            encoder: &mut ___E,
19710            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSource<'static>>,
19711            _: (),
19712        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19713            ::fidl_next::munge!(let crate::wire::ConfigValueSource { raw, _phantom: _ } = out);
19714
19715            match self {
19716                ConfigValueSource::PackagePath(value) => {
19717                    ::fidl_next::RawWireUnion::encode_as::<___E, ::fidl_next::WireString<'static>>(
19718                        value, 1, encoder, raw, 4294967295,
19719                    )?
19720                }
19721
19722                ConfigValueSource::Capabilities(value) => {
19723                    ::fidl_next::RawWireUnion::encode_as::<
19724                        ___E,
19725                        crate::wire::ConfigSourceCapabilities<'static>,
19726                    >(value, 2, encoder, raw, ())?
19727                }
19728
19729                ConfigValueSource::UnknownOrdinal_(ordinal) => {
19730                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
19731                }
19732            }
19733
19734            Ok(())
19735        }
19736    }
19737
19738    unsafe impl<___E>
19739        ::fidl_next::EncodeOption<crate::wire_optional::ConfigValueSource<'static>, ___E>
19740        for ConfigValueSource
19741    where
19742        ___E: ?Sized,
19743        ConfigValueSource: ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>,
19744    {
19745        #[inline]
19746        fn encode_option(
19747            this: ::core::option::Option<Self>,
19748            encoder: &mut ___E,
19749            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValueSource<'static>>,
19750            _: (),
19751        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19752            ::fidl_next::munge!(let crate::wire_optional::ConfigValueSource { raw, _phantom: _ } = &mut *out);
19753
19754            if let Some(inner) = this {
19755                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19756                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19757            } else {
19758                ::fidl_next::RawWireUnion::encode_absent(raw);
19759            }
19760
19761            Ok(())
19762        }
19763    }
19764
19765    unsafe impl<'a, ___E>
19766        ::fidl_next::EncodeOption<crate::wire_optional::ConfigValueSource<'static>, ___E>
19767        for &'a ConfigValueSource
19768    where
19769        ___E: ?Sized,
19770        &'a ConfigValueSource: ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>,
19771    {
19772        #[inline]
19773        fn encode_option(
19774            this: ::core::option::Option<Self>,
19775            encoder: &mut ___E,
19776            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValueSource<'static>>,
19777            _: (),
19778        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19779            ::fidl_next::munge!(let crate::wire_optional::ConfigValueSource { raw, _phantom: _ } = &mut *out);
19780
19781            if let Some(inner) = this {
19782                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19783                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19784            } else {
19785                ::fidl_next::RawWireUnion::encode_absent(raw);
19786            }
19787
19788            Ok(())
19789        }
19790    }
19791
19792    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValueSource<'de>> for ConfigValueSource {
19793        #[inline]
19794        fn from_wire(wire: crate::wire::ConfigValueSource<'de>) -> Self {
19795            let wire = ::core::mem::ManuallyDrop::new(wire);
19796            match wire.raw.ordinal() {
19797                1 => Self::PackagePath(::fidl_next::FromWire::from_wire(unsafe {
19798                    wire.raw.get().read_unchecked::<::fidl_next::WireString<'de>>()
19799                })),
19800
19801                2 => Self::Capabilities(::fidl_next::FromWire::from_wire(unsafe {
19802                    wire.raw.get().read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
19803                })),
19804
19805                ord => return Self::UnknownOrdinal_(ord as u64),
19806            }
19807        }
19808    }
19809
19810    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValueSource<'de>> for ConfigValueSource {
19811        #[inline]
19812        fn from_wire_ref(wire: &crate::wire::ConfigValueSource<'de>) -> Self {
19813            match wire.raw.ordinal() {
19814                1 => Self::PackagePath(::fidl_next::FromWireRef::from_wire_ref(unsafe {
19815                    wire.raw.get().deref_unchecked::<::fidl_next::WireString<'de>>()
19816                })),
19817
19818                2 => Self::Capabilities(::fidl_next::FromWireRef::from_wire_ref(unsafe {
19819                    wire.raw.get().deref_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
19820                })),
19821
19822                ord => return Self::UnknownOrdinal_(ord as u64),
19823            }
19824        }
19825    }
19826
19827    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValueSource<'de>>
19828        for ConfigValueSource
19829    {
19830        #[inline]
19831        fn from_wire_option(
19832            wire: crate::wire_optional::ConfigValueSource<'de>,
19833        ) -> ::core::option::Option<Self> {
19834            if let Some(inner) = wire.into_option() {
19835                Some(::fidl_next::FromWire::from_wire(inner))
19836            } else {
19837                None
19838            }
19839        }
19840    }
19841
19842    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValueSource<'de>>
19843        for Box<ConfigValueSource>
19844    {
19845        #[inline]
19846        fn from_wire_option(
19847            wire: crate::wire_optional::ConfigValueSource<'de>,
19848        ) -> ::core::option::Option<Self> {
19849            <ConfigValueSource as ::fidl_next::FromWireOption<
19850                crate::wire_optional::ConfigValueSource<'de>,
19851            >>::from_wire_option(wire)
19852            .map(Box::new)
19853        }
19854    }
19855
19856    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigValueSource<'de>>
19857        for Box<ConfigValueSource>
19858    {
19859        #[inline]
19860        fn from_wire_option_ref(
19861            wire: &crate::wire_optional::ConfigValueSource<'de>,
19862        ) -> ::core::option::Option<Self> {
19863            if let Some(inner) = wire.as_ref() {
19864                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
19865            } else {
19866                None
19867            }
19868        }
19869    }
19870
19871    #[doc = " The schema of a component\'s configuration interface.\n"]
19872    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19873    pub struct ConfigSchema {
19874        pub fields: ::core::option::Option<::std::vec::Vec<crate::natural::ConfigField>>,
19875
19876        pub checksum: ::core::option::Option<crate::natural::ConfigChecksum>,
19877
19878        pub value_source: ::core::option::Option<crate::natural::ConfigValueSource>,
19879    }
19880
19881    impl ConfigSchema {
19882        fn __max_ordinal(&self) -> usize {
19883            if self.value_source.is_some() {
19884                return 3;
19885            }
19886
19887            if self.checksum.is_some() {
19888                return 2;
19889            }
19890
19891            if self.fields.is_some() {
19892                return 1;
19893            }
19894
19895            0
19896        }
19897    }
19898
19899    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSchema<'static>, ___E> for ConfigSchema
19900    where
19901        ___E: ::fidl_next::Encoder + ?Sized,
19902    {
19903        #[inline]
19904        fn encode(
19905            mut self,
19906            encoder: &mut ___E,
19907            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSchema<'static>>,
19908            _: (),
19909        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19910            ::fidl_next::munge!(let crate::wire::ConfigSchema { table } = out);
19911
19912            let max_ord = self.__max_ordinal();
19913
19914            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
19915            ::fidl_next::Wire::zero_padding(&mut out);
19916
19917            let mut preallocated =
19918                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
19919
19920            for i in 1..=max_ord {
19921                match i {
19922                    3 => {
19923                        if let Some(value) = self.value_source.take() {
19924                            ::fidl_next::WireEnvelope::encode_value::<
19925                                crate::wire::ConfigValueSource<'static>,
19926                                ___E,
19927                            >(
19928                                value, preallocated.encoder, &mut out, ()
19929                            )?;
19930                        } else {
19931                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19932                        }
19933                    }
19934
19935                    2 => {
19936                        if let Some(value) = self.checksum.take() {
19937                            ::fidl_next::WireEnvelope::encode_value::<
19938                                crate::wire::ConfigChecksum<'static>,
19939                                ___E,
19940                            >(
19941                                value, preallocated.encoder, &mut out, ()
19942                            )?;
19943                        } else {
19944                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19945                        }
19946                    }
19947
19948                    1 => {
19949                        if let Some(value) = self.fields.take() {
19950                            ::fidl_next::WireEnvelope::encode_value::<
19951                                ::fidl_next::WireVector<'static, crate::wire::ConfigField<'static>>,
19952                                ___E,
19953                            >(
19954                                value, preallocated.encoder, &mut out, (4294967295, ())
19955                            )?;
19956                        } else {
19957                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
19958                        }
19959                    }
19960
19961                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
19962                }
19963                unsafe {
19964                    preallocated.write_next(out.assume_init_ref());
19965                }
19966            }
19967
19968            ::fidl_next::WireTable::encode_len(table, max_ord);
19969
19970            Ok(())
19971        }
19972    }
19973
19974    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSchema<'static>, ___E>
19975        for &'a ConfigSchema
19976    where
19977        ___E: ::fidl_next::Encoder + ?Sized,
19978    {
19979        #[inline]
19980        fn encode(
19981            self,
19982            encoder: &mut ___E,
19983            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSchema<'static>>,
19984            _: (),
19985        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19986            ::fidl_next::munge!(let crate::wire::ConfigSchema { table } = out);
19987
19988            let max_ord = self.__max_ordinal();
19989
19990            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
19991            ::fidl_next::Wire::zero_padding(&mut out);
19992
19993            let mut preallocated =
19994                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
19995
19996            for i in 1..=max_ord {
19997                match i {
19998                    3 => {
19999                        if let Some(value) = &self.value_source {
20000                            ::fidl_next::WireEnvelope::encode_value::<
20001                                crate::wire::ConfigValueSource<'static>,
20002                                ___E,
20003                            >(
20004                                value, preallocated.encoder, &mut out, ()
20005                            )?;
20006                        } else {
20007                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20008                        }
20009                    }
20010
20011                    2 => {
20012                        if let Some(value) = &self.checksum {
20013                            ::fidl_next::WireEnvelope::encode_value::<
20014                                crate::wire::ConfigChecksum<'static>,
20015                                ___E,
20016                            >(
20017                                value, preallocated.encoder, &mut out, ()
20018                            )?;
20019                        } else {
20020                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20021                        }
20022                    }
20023
20024                    1 => {
20025                        if let Some(value) = &self.fields {
20026                            ::fidl_next::WireEnvelope::encode_value::<
20027                                ::fidl_next::WireVector<'static, crate::wire::ConfigField<'static>>,
20028                                ___E,
20029                            >(
20030                                value, preallocated.encoder, &mut out, (4294967295, ())
20031                            )?;
20032                        } else {
20033                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20034                        }
20035                    }
20036
20037                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
20038                }
20039                unsafe {
20040                    preallocated.write_next(out.assume_init_ref());
20041                }
20042            }
20043
20044            ::fidl_next::WireTable::encode_len(table, max_ord);
20045
20046            Ok(())
20047        }
20048    }
20049
20050    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSchema<'de>> for ConfigSchema {
20051        #[inline]
20052        fn from_wire(wire_: crate::wire::ConfigSchema<'de>) -> Self {
20053            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20054
20055            let fields = wire_.table.get(1);
20056
20057            let checksum = wire_.table.get(2);
20058
20059            let value_source = wire_.table.get(3);
20060
20061            Self {
20062
20063
20064                fields: fields.map(|envelope| ::fidl_next::FromWire::from_wire(
20065                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigField<'de>>>() }
20066                )),
20067
20068
20069                checksum: checksum.map(|envelope| ::fidl_next::FromWire::from_wire(
20070                    unsafe { envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>() }
20071                )),
20072
20073
20074                value_source: value_source.map(|envelope| ::fidl_next::FromWire::from_wire(
20075                    unsafe { envelope.read_unchecked::<crate::wire::ConfigValueSource<'de>>() }
20076                )),
20077
20078        }
20079        }
20080    }
20081
20082    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSchema<'de>> for ConfigSchema {
20083        #[inline]
20084        fn from_wire_ref(wire: &crate::wire::ConfigSchema<'de>) -> Self {
20085            Self {
20086
20087
20088                fields: wire.table.get(1)
20089                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20090                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigField<'de>>>() }
20091                    )),
20092
20093
20094                checksum: wire.table.get(2)
20095                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20096                        unsafe { envelope.deref_unchecked::<crate::wire::ConfigChecksum<'de>>() }
20097                    )),
20098
20099
20100                value_source: wire.table.get(3)
20101                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20102                        unsafe { envelope.deref_unchecked::<crate::wire::ConfigValueSource<'de>>() }
20103                    )),
20104
20105        }
20106        }
20107    }
20108
20109    #[doc = " A component declaration.\n\n This information is typically encoded in the component manifest (.cm file)\n if it has one or may be generated at runtime by a component resolver for\n those that don\'t.\n"]
20110    #[derive(Debug, Default, PartialEq)]
20111    pub struct Component {
20112        pub program: ::core::option::Option<crate::natural::Program>,
20113
20114        pub uses: ::core::option::Option<::std::vec::Vec<crate::natural::Use>>,
20115
20116        pub exposes: ::core::option::Option<::std::vec::Vec<crate::natural::Expose>>,
20117
20118        pub offers: ::core::option::Option<::std::vec::Vec<crate::natural::Offer>>,
20119
20120        pub capabilities: ::core::option::Option<::std::vec::Vec<crate::natural::Capability>>,
20121
20122        pub children: ::core::option::Option<::std::vec::Vec<crate::natural::Child>>,
20123
20124        pub collections: ::core::option::Option<::std::vec::Vec<crate::natural::Collection>>,
20125
20126        pub environments: ::core::option::Option<::std::vec::Vec<crate::natural::Environment>>,
20127
20128        pub facets: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
20129
20130        pub config: ::core::option::Option<crate::natural::ConfigSchema>,
20131
20132        pub debug_info: ::core::option::Option<crate::natural::DebugInfo>,
20133    }
20134
20135    impl Component {
20136        fn __max_ordinal(&self) -> usize {
20137            if self.debug_info.is_some() {
20138                return 11;
20139            }
20140
20141            if self.config.is_some() {
20142                return 10;
20143            }
20144
20145            if self.facets.is_some() {
20146                return 9;
20147            }
20148
20149            if self.environments.is_some() {
20150                return 8;
20151            }
20152
20153            if self.collections.is_some() {
20154                return 7;
20155            }
20156
20157            if self.children.is_some() {
20158                return 6;
20159            }
20160
20161            if self.capabilities.is_some() {
20162                return 5;
20163            }
20164
20165            if self.offers.is_some() {
20166                return 4;
20167            }
20168
20169            if self.exposes.is_some() {
20170                return 3;
20171            }
20172
20173            if self.uses.is_some() {
20174                return 2;
20175            }
20176
20177            if self.program.is_some() {
20178                return 1;
20179            }
20180
20181            0
20182        }
20183    }
20184
20185    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Component<'static>, ___E> for Component
20186    where
20187        ___E: ::fidl_next::Encoder + ?Sized,
20188    {
20189        #[inline]
20190        fn encode(
20191            mut self,
20192            encoder: &mut ___E,
20193            out: &mut ::core::mem::MaybeUninit<crate::wire::Component<'static>>,
20194            _: (),
20195        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20196            ::fidl_next::munge!(let crate::wire::Component { table } = out);
20197
20198            let max_ord = self.__max_ordinal();
20199
20200            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
20201            ::fidl_next::Wire::zero_padding(&mut out);
20202
20203            let mut preallocated =
20204                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
20205
20206            for i in 1..=max_ord {
20207                match i {
20208                    11 => {
20209                        if let Some(value) = self.debug_info.take() {
20210                            ::fidl_next::WireEnvelope::encode_value::<
20211                                crate::wire::DebugInfo<'static>,
20212                                ___E,
20213                            >(
20214                                value, preallocated.encoder, &mut out, ()
20215                            )?;
20216                        } else {
20217                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20218                        }
20219                    }
20220
20221                    10 => {
20222                        if let Some(value) = self.config.take() {
20223                            ::fidl_next::WireEnvelope::encode_value::<
20224                                crate::wire::ConfigSchema<'static>,
20225                                ___E,
20226                            >(
20227                                value, preallocated.encoder, &mut out, ()
20228                            )?;
20229                        } else {
20230                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20231                        }
20232                    }
20233
20234                    9 => {
20235                        if let Some(value) = self.facets.take() {
20236                            ::fidl_next::WireEnvelope::encode_value::<
20237                                ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
20238                                ___E,
20239                            >(
20240                                value, preallocated.encoder, &mut out, ()
20241                            )?;
20242                        } else {
20243                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20244                        }
20245                    }
20246
20247                    8 => {
20248                        if let Some(value) = self.environments.take() {
20249                            ::fidl_next::WireEnvelope::encode_value::<
20250                                ::fidl_next::WireVector<'static, crate::wire::Environment<'static>>,
20251                                ___E,
20252                            >(
20253                                value, preallocated.encoder, &mut out, (4294967295, ())
20254                            )?;
20255                        } else {
20256                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20257                        }
20258                    }
20259
20260                    7 => {
20261                        if let Some(value) = self.collections.take() {
20262                            ::fidl_next::WireEnvelope::encode_value::<
20263                                ::fidl_next::WireVector<'static, crate::wire::Collection<'static>>,
20264                                ___E,
20265                            >(
20266                                value, preallocated.encoder, &mut out, (4294967295, ())
20267                            )?;
20268                        } else {
20269                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20270                        }
20271                    }
20272
20273                    6 => {
20274                        if let Some(value) = self.children.take() {
20275                            ::fidl_next::WireEnvelope::encode_value::<
20276                                ::fidl_next::WireVector<'static, crate::wire::Child<'static>>,
20277                                ___E,
20278                            >(
20279                                value, preallocated.encoder, &mut out, (4294967295, ())
20280                            )?;
20281                        } else {
20282                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20283                        }
20284                    }
20285
20286                    5 => {
20287                        if let Some(value) = self.capabilities.take() {
20288                            ::fidl_next::WireEnvelope::encode_value::<
20289                                ::fidl_next::WireVector<'static, crate::wire::Capability<'static>>,
20290                                ___E,
20291                            >(
20292                                value, preallocated.encoder, &mut out, (4294967295, ())
20293                            )?;
20294                        } else {
20295                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20296                        }
20297                    }
20298
20299                    4 => {
20300                        if let Some(value) = self.offers.take() {
20301                            ::fidl_next::WireEnvelope::encode_value::<
20302                                ::fidl_next::WireVector<'static, crate::wire::Offer<'static>>,
20303                                ___E,
20304                            >(
20305                                value, preallocated.encoder, &mut out, (4294967295, ())
20306                            )?;
20307                        } else {
20308                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20309                        }
20310                    }
20311
20312                    3 => {
20313                        if let Some(value) = self.exposes.take() {
20314                            ::fidl_next::WireEnvelope::encode_value::<
20315                                ::fidl_next::WireVector<'static, crate::wire::Expose<'static>>,
20316                                ___E,
20317                            >(
20318                                value, preallocated.encoder, &mut out, (4294967295, ())
20319                            )?;
20320                        } else {
20321                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20322                        }
20323                    }
20324
20325                    2 => {
20326                        if let Some(value) = self.uses.take() {
20327                            ::fidl_next::WireEnvelope::encode_value::<
20328                                ::fidl_next::WireVector<'static, crate::wire::Use<'static>>,
20329                                ___E,
20330                            >(
20331                                value, preallocated.encoder, &mut out, (4294967295, ())
20332                            )?;
20333                        } else {
20334                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20335                        }
20336                    }
20337
20338                    1 => {
20339                        if let Some(value) = self.program.take() {
20340                            ::fidl_next::WireEnvelope::encode_value::<
20341                                crate::wire::Program<'static>,
20342                                ___E,
20343                            >(
20344                                value, preallocated.encoder, &mut out, ()
20345                            )?;
20346                        } else {
20347                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20348                        }
20349                    }
20350
20351                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
20352                }
20353                unsafe {
20354                    preallocated.write_next(out.assume_init_ref());
20355                }
20356            }
20357
20358            ::fidl_next::WireTable::encode_len(table, max_ord);
20359
20360            Ok(())
20361        }
20362    }
20363
20364    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Component<'static>, ___E> for &'a Component
20365    where
20366        ___E: ::fidl_next::Encoder + ?Sized,
20367    {
20368        #[inline]
20369        fn encode(
20370            self,
20371            encoder: &mut ___E,
20372            out: &mut ::core::mem::MaybeUninit<crate::wire::Component<'static>>,
20373            _: (),
20374        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20375            ::fidl_next::munge!(let crate::wire::Component { table } = out);
20376
20377            let max_ord = self.__max_ordinal();
20378
20379            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
20380            ::fidl_next::Wire::zero_padding(&mut out);
20381
20382            let mut preallocated =
20383                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
20384
20385            for i in 1..=max_ord {
20386                match i {
20387                    11 => {
20388                        if let Some(value) = &self.debug_info {
20389                            ::fidl_next::WireEnvelope::encode_value::<
20390                                crate::wire::DebugInfo<'static>,
20391                                ___E,
20392                            >(
20393                                value, preallocated.encoder, &mut out, ()
20394                            )?;
20395                        } else {
20396                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20397                        }
20398                    }
20399
20400                    10 => {
20401                        if let Some(value) = &self.config {
20402                            ::fidl_next::WireEnvelope::encode_value::<
20403                                crate::wire::ConfigSchema<'static>,
20404                                ___E,
20405                            >(
20406                                value, preallocated.encoder, &mut out, ()
20407                            )?;
20408                        } else {
20409                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20410                        }
20411                    }
20412
20413                    9 => {
20414                        if let Some(value) = &self.facets {
20415                            ::fidl_next::WireEnvelope::encode_value::<
20416                                ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
20417                                ___E,
20418                            >(
20419                                value, preallocated.encoder, &mut out, ()
20420                            )?;
20421                        } else {
20422                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20423                        }
20424                    }
20425
20426                    8 => {
20427                        if let Some(value) = &self.environments {
20428                            ::fidl_next::WireEnvelope::encode_value::<
20429                                ::fidl_next::WireVector<'static, crate::wire::Environment<'static>>,
20430                                ___E,
20431                            >(
20432                                value, preallocated.encoder, &mut out, (4294967295, ())
20433                            )?;
20434                        } else {
20435                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20436                        }
20437                    }
20438
20439                    7 => {
20440                        if let Some(value) = &self.collections {
20441                            ::fidl_next::WireEnvelope::encode_value::<
20442                                ::fidl_next::WireVector<'static, crate::wire::Collection<'static>>,
20443                                ___E,
20444                            >(
20445                                value, preallocated.encoder, &mut out, (4294967295, ())
20446                            )?;
20447                        } else {
20448                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20449                        }
20450                    }
20451
20452                    6 => {
20453                        if let Some(value) = &self.children {
20454                            ::fidl_next::WireEnvelope::encode_value::<
20455                                ::fidl_next::WireVector<'static, crate::wire::Child<'static>>,
20456                                ___E,
20457                            >(
20458                                value, preallocated.encoder, &mut out, (4294967295, ())
20459                            )?;
20460                        } else {
20461                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20462                        }
20463                    }
20464
20465                    5 => {
20466                        if let Some(value) = &self.capabilities {
20467                            ::fidl_next::WireEnvelope::encode_value::<
20468                                ::fidl_next::WireVector<'static, crate::wire::Capability<'static>>,
20469                                ___E,
20470                            >(
20471                                value, preallocated.encoder, &mut out, (4294967295, ())
20472                            )?;
20473                        } else {
20474                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20475                        }
20476                    }
20477
20478                    4 => {
20479                        if let Some(value) = &self.offers {
20480                            ::fidl_next::WireEnvelope::encode_value::<
20481                                ::fidl_next::WireVector<'static, crate::wire::Offer<'static>>,
20482                                ___E,
20483                            >(
20484                                value, preallocated.encoder, &mut out, (4294967295, ())
20485                            )?;
20486                        } else {
20487                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20488                        }
20489                    }
20490
20491                    3 => {
20492                        if let Some(value) = &self.exposes {
20493                            ::fidl_next::WireEnvelope::encode_value::<
20494                                ::fidl_next::WireVector<'static, crate::wire::Expose<'static>>,
20495                                ___E,
20496                            >(
20497                                value, preallocated.encoder, &mut out, (4294967295, ())
20498                            )?;
20499                        } else {
20500                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20501                        }
20502                    }
20503
20504                    2 => {
20505                        if let Some(value) = &self.uses {
20506                            ::fidl_next::WireEnvelope::encode_value::<
20507                                ::fidl_next::WireVector<'static, crate::wire::Use<'static>>,
20508                                ___E,
20509                            >(
20510                                value, preallocated.encoder, &mut out, (4294967295, ())
20511                            )?;
20512                        } else {
20513                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20514                        }
20515                    }
20516
20517                    1 => {
20518                        if let Some(value) = &self.program {
20519                            ::fidl_next::WireEnvelope::encode_value::<
20520                                crate::wire::Program<'static>,
20521                                ___E,
20522                            >(
20523                                value, preallocated.encoder, &mut out, ()
20524                            )?;
20525                        } else {
20526                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20527                        }
20528                    }
20529
20530                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
20531                }
20532                unsafe {
20533                    preallocated.write_next(out.assume_init_ref());
20534                }
20535            }
20536
20537            ::fidl_next::WireTable::encode_len(table, max_ord);
20538
20539            Ok(())
20540        }
20541    }
20542
20543    impl<'de> ::fidl_next::FromWire<crate::wire::Component<'de>> for Component {
20544        #[inline]
20545        fn from_wire(wire_: crate::wire::Component<'de>) -> Self {
20546            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20547
20548            let program = wire_.table.get(1);
20549
20550            let uses = wire_.table.get(2);
20551
20552            let exposes = wire_.table.get(3);
20553
20554            let offers = wire_.table.get(4);
20555
20556            let capabilities = wire_.table.get(5);
20557
20558            let children = wire_.table.get(6);
20559
20560            let collections = wire_.table.get(7);
20561
20562            let environments = wire_.table.get(8);
20563
20564            let facets = wire_.table.get(9);
20565
20566            let config = wire_.table.get(10);
20567
20568            let debug_info = wire_.table.get(11);
20569
20570            Self {
20571
20572
20573                program: program.map(|envelope| ::fidl_next::FromWire::from_wire(
20574                    unsafe { envelope.read_unchecked::<crate::wire::Program<'de>>() }
20575                )),
20576
20577
20578                uses: uses.map(|envelope| ::fidl_next::FromWire::from_wire(
20579                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Use<'de>>>() }
20580                )),
20581
20582
20583                exposes: exposes.map(|envelope| ::fidl_next::FromWire::from_wire(
20584                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Expose<'de>>>() }
20585                )),
20586
20587
20588                offers: offers.map(|envelope| ::fidl_next::FromWire::from_wire(
20589                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Offer<'de>>>() }
20590                )),
20591
20592
20593                capabilities: capabilities.map(|envelope| ::fidl_next::FromWire::from_wire(
20594                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Capability<'de>>>() }
20595                )),
20596
20597
20598                children: children.map(|envelope| ::fidl_next::FromWire::from_wire(
20599                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Child<'de>>>() }
20600                )),
20601
20602
20603                collections: collections.map(|envelope| ::fidl_next::FromWire::from_wire(
20604                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Collection<'de>>>() }
20605                )),
20606
20607
20608                environments: environments.map(|envelope| ::fidl_next::FromWire::from_wire(
20609                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Environment<'de>>>() }
20610                )),
20611
20612
20613                facets: facets.map(|envelope| ::fidl_next::FromWire::from_wire(
20614                    unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
20615                )),
20616
20617
20618                config: config.map(|envelope| ::fidl_next::FromWire::from_wire(
20619                    unsafe { envelope.read_unchecked::<crate::wire::ConfigSchema<'de>>() }
20620                )),
20621
20622
20623                debug_info: debug_info.map(|envelope| ::fidl_next::FromWire::from_wire(
20624                    unsafe { envelope.read_unchecked::<crate::wire::DebugInfo<'de>>() }
20625                )),
20626
20627        }
20628        }
20629    }
20630
20631    impl<'de> ::fidl_next::FromWireRef<crate::wire::Component<'de>> for Component {
20632        #[inline]
20633        fn from_wire_ref(wire: &crate::wire::Component<'de>) -> Self {
20634            Self {
20635
20636
20637                program: wire.table.get(1)
20638                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20639                        unsafe { envelope.deref_unchecked::<crate::wire::Program<'de>>() }
20640                    )),
20641
20642
20643                uses: wire.table.get(2)
20644                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20645                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Use<'de>>>() }
20646                    )),
20647
20648
20649                exposes: wire.table.get(3)
20650                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20651                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Expose<'de>>>() }
20652                    )),
20653
20654
20655                offers: wire.table.get(4)
20656                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20657                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Offer<'de>>>() }
20658                    )),
20659
20660
20661                capabilities: wire.table.get(5)
20662                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20663                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Capability<'de>>>() }
20664                    )),
20665
20666
20667                children: wire.table.get(6)
20668                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20669                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Child<'de>>>() }
20670                    )),
20671
20672
20673                collections: wire.table.get(7)
20674                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20675                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Collection<'de>>>() }
20676                    )),
20677
20678
20679                environments: wire.table.get(8)
20680                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20681                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::Environment<'de>>>() }
20682                    )),
20683
20684
20685                facets: wire.table.get(9)
20686                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20687                        unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
20688                    )),
20689
20690
20691                config: wire.table.get(10)
20692                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20693                        unsafe { envelope.deref_unchecked::<crate::wire::ConfigSchema<'de>>() }
20694                    )),
20695
20696
20697                debug_info: wire.table.get(11)
20698                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20699                        unsafe { envelope.deref_unchecked::<crate::wire::DebugInfo<'de>>() }
20700                    )),
20701
20702        }
20703        }
20704    }
20705
20706    #[doc = " An individual configuration value. It is matched against a specific configuration field based\n on its offset within `ValuesData.values`.\n"]
20707    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20708    pub struct ConfigValueSpec {
20709        pub value: ::core::option::Option<crate::natural::ConfigValue>,
20710    }
20711
20712    impl ConfigValueSpec {
20713        fn __max_ordinal(&self) -> usize {
20714            if self.value.is_some() {
20715                return 1;
20716            }
20717
20718            0
20719        }
20720    }
20721
20722    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValueSpec<'static>, ___E>
20723        for ConfigValueSpec
20724    where
20725        ___E: ::fidl_next::Encoder + ?Sized,
20726    {
20727        #[inline]
20728        fn encode(
20729            mut self,
20730            encoder: &mut ___E,
20731            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSpec<'static>>,
20732            _: (),
20733        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20734            ::fidl_next::munge!(let crate::wire::ConfigValueSpec { table } = out);
20735
20736            let max_ord = self.__max_ordinal();
20737
20738            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
20739            ::fidl_next::Wire::zero_padding(&mut out);
20740
20741            let mut preallocated =
20742                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
20743
20744            for i in 1..=max_ord {
20745                match i {
20746                    1 => {
20747                        if let Some(value) = self.value.take() {
20748                            ::fidl_next::WireEnvelope::encode_value::<
20749                                crate::wire::ConfigValue<'static>,
20750                                ___E,
20751                            >(
20752                                value, preallocated.encoder, &mut out, ()
20753                            )?;
20754                        } else {
20755                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20756                        }
20757                    }
20758
20759                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
20760                }
20761                unsafe {
20762                    preallocated.write_next(out.assume_init_ref());
20763                }
20764            }
20765
20766            ::fidl_next::WireTable::encode_len(table, max_ord);
20767
20768            Ok(())
20769        }
20770    }
20771
20772    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValueSpec<'static>, ___E>
20773        for &'a ConfigValueSpec
20774    where
20775        ___E: ::fidl_next::Encoder + ?Sized,
20776    {
20777        #[inline]
20778        fn encode(
20779            self,
20780            encoder: &mut ___E,
20781            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSpec<'static>>,
20782            _: (),
20783        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20784            ::fidl_next::munge!(let crate::wire::ConfigValueSpec { table } = out);
20785
20786            let max_ord = self.__max_ordinal();
20787
20788            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
20789            ::fidl_next::Wire::zero_padding(&mut out);
20790
20791            let mut preallocated =
20792                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
20793
20794            for i in 1..=max_ord {
20795                match i {
20796                    1 => {
20797                        if let Some(value) = &self.value {
20798                            ::fidl_next::WireEnvelope::encode_value::<
20799                                crate::wire::ConfigValue<'static>,
20800                                ___E,
20801                            >(
20802                                value, preallocated.encoder, &mut out, ()
20803                            )?;
20804                        } else {
20805                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20806                        }
20807                    }
20808
20809                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
20810                }
20811                unsafe {
20812                    preallocated.write_next(out.assume_init_ref());
20813                }
20814            }
20815
20816            ::fidl_next::WireTable::encode_len(table, max_ord);
20817
20818            Ok(())
20819        }
20820    }
20821
20822    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValueSpec<'de>> for ConfigValueSpec {
20823        #[inline]
20824        fn from_wire(wire_: crate::wire::ConfigValueSpec<'de>) -> Self {
20825            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20826
20827            let value = wire_.table.get(1);
20828
20829            Self {
20830                value: value.map(|envelope| {
20831                    ::fidl_next::FromWire::from_wire(unsafe {
20832                        envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
20833                    })
20834                }),
20835            }
20836        }
20837    }
20838
20839    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValueSpec<'de>> for ConfigValueSpec {
20840        #[inline]
20841        fn from_wire_ref(wire: &crate::wire::ConfigValueSpec<'de>) -> Self {
20842            Self {
20843                value: wire.table.get(1).map(|envelope| {
20844                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
20845                        envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
20846                    })
20847                }),
20848            }
20849        }
20850    }
20851
20852    #[doc = " Contents of the configuration value file. Defines the base values for a component\'s config.\n"]
20853    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20854    pub struct ConfigValuesData {
20855        pub values: ::core::option::Option<::std::vec::Vec<crate::natural::ConfigValueSpec>>,
20856
20857        pub checksum: ::core::option::Option<crate::natural::ConfigChecksum>,
20858    }
20859
20860    impl ConfigValuesData {
20861        fn __max_ordinal(&self) -> usize {
20862            if self.checksum.is_some() {
20863                return 2;
20864            }
20865
20866            if self.values.is_some() {
20867                return 1;
20868            }
20869
20870            0
20871        }
20872    }
20873
20874    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValuesData<'static>, ___E>
20875        for ConfigValuesData
20876    where
20877        ___E: ::fidl_next::Encoder + ?Sized,
20878    {
20879        #[inline]
20880        fn encode(
20881            mut self,
20882            encoder: &mut ___E,
20883            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValuesData<'static>>,
20884            _: (),
20885        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20886            ::fidl_next::munge!(let crate::wire::ConfigValuesData { table } = out);
20887
20888            let max_ord = self.__max_ordinal();
20889
20890            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
20891            ::fidl_next::Wire::zero_padding(&mut out);
20892
20893            let mut preallocated =
20894                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
20895
20896            for i in 1..=max_ord {
20897                match i {
20898                    2 => {
20899                        if let Some(value) = self.checksum.take() {
20900                            ::fidl_next::WireEnvelope::encode_value::<
20901                                crate::wire::ConfigChecksum<'static>,
20902                                ___E,
20903                            >(
20904                                value, preallocated.encoder, &mut out, ()
20905                            )?;
20906                        } else {
20907                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20908                        }
20909                    }
20910
20911                    1 => {
20912                        if let Some(value) = self.values.take() {
20913                            ::fidl_next::WireEnvelope::encode_value::<
20914                                ::fidl_next::WireVector<
20915                                    'static,
20916                                    crate::wire::ConfigValueSpec<'static>,
20917                                >,
20918                                ___E,
20919                            >(
20920                                value, preallocated.encoder, &mut out, (4294967295, ())
20921                            )?;
20922                        } else {
20923                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20924                        }
20925                    }
20926
20927                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
20928                }
20929                unsafe {
20930                    preallocated.write_next(out.assume_init_ref());
20931                }
20932            }
20933
20934            ::fidl_next::WireTable::encode_len(table, max_ord);
20935
20936            Ok(())
20937        }
20938    }
20939
20940    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValuesData<'static>, ___E>
20941        for &'a ConfigValuesData
20942    where
20943        ___E: ::fidl_next::Encoder + ?Sized,
20944    {
20945        #[inline]
20946        fn encode(
20947            self,
20948            encoder: &mut ___E,
20949            out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValuesData<'static>>,
20950            _: (),
20951        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20952            ::fidl_next::munge!(let crate::wire::ConfigValuesData { table } = out);
20953
20954            let max_ord = self.__max_ordinal();
20955
20956            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
20957            ::fidl_next::Wire::zero_padding(&mut out);
20958
20959            let mut preallocated =
20960                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
20961
20962            for i in 1..=max_ord {
20963                match i {
20964                    2 => {
20965                        if let Some(value) = &self.checksum {
20966                            ::fidl_next::WireEnvelope::encode_value::<
20967                                crate::wire::ConfigChecksum<'static>,
20968                                ___E,
20969                            >(
20970                                value, preallocated.encoder, &mut out, ()
20971                            )?;
20972                        } else {
20973                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20974                        }
20975                    }
20976
20977                    1 => {
20978                        if let Some(value) = &self.values {
20979                            ::fidl_next::WireEnvelope::encode_value::<
20980                                ::fidl_next::WireVector<
20981                                    'static,
20982                                    crate::wire::ConfigValueSpec<'static>,
20983                                >,
20984                                ___E,
20985                            >(
20986                                value, preallocated.encoder, &mut out, (4294967295, ())
20987                            )?;
20988                        } else {
20989                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
20990                        }
20991                    }
20992
20993                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
20994                }
20995                unsafe {
20996                    preallocated.write_next(out.assume_init_ref());
20997                }
20998            }
20999
21000            ::fidl_next::WireTable::encode_len(table, max_ord);
21001
21002            Ok(())
21003        }
21004    }
21005
21006    impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValuesData<'de>> for ConfigValuesData {
21007        #[inline]
21008        fn from_wire(wire_: crate::wire::ConfigValuesData<'de>) -> Self {
21009            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
21010
21011            let values = wire_.table.get(1);
21012
21013            let checksum = wire_.table.get(2);
21014
21015            Self {
21016
21017
21018                values: values.map(|envelope| ::fidl_next::FromWire::from_wire(
21019                    unsafe { envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigValueSpec<'de>>>() }
21020                )),
21021
21022
21023                checksum: checksum.map(|envelope| ::fidl_next::FromWire::from_wire(
21024                    unsafe { envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>() }
21025                )),
21026
21027        }
21028        }
21029    }
21030
21031    impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValuesData<'de>> for ConfigValuesData {
21032        #[inline]
21033        fn from_wire_ref(wire: &crate::wire::ConfigValuesData<'de>) -> Self {
21034            Self {
21035
21036
21037                values: wire.table.get(1)
21038                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
21039                        unsafe { envelope.deref_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigValueSpec<'de>>>() }
21040                    )),
21041
21042
21043                checksum: wire.table.get(2)
21044                    .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
21045                        unsafe { envelope.deref_unchecked::<crate::wire::ConfigChecksum<'de>>() }
21046                    )),
21047
21048        }
21049        }
21050    }
21051
21052    #[doc = " Indicates the event name to subscribe to with a given event mode.\n"]
21053    #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21054    pub struct EventSubscription {
21055        pub event_name: ::core::option::Option<::std::string::String>,
21056    }
21057
21058    impl EventSubscription {
21059        fn __max_ordinal(&self) -> usize {
21060            if self.event_name.is_some() {
21061                return 1;
21062            }
21063
21064            0
21065        }
21066    }
21067
21068    unsafe impl<___E> ::fidl_next::Encode<crate::wire::EventSubscription<'static>, ___E>
21069        for EventSubscription
21070    where
21071        ___E: ::fidl_next::Encoder + ?Sized,
21072    {
21073        #[inline]
21074        fn encode(
21075            mut self,
21076            encoder: &mut ___E,
21077            out: &mut ::core::mem::MaybeUninit<crate::wire::EventSubscription<'static>>,
21078            _: (),
21079        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21080            ::fidl_next::munge!(let crate::wire::EventSubscription { table } = out);
21081
21082            let max_ord = self.__max_ordinal();
21083
21084            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
21085            ::fidl_next::Wire::zero_padding(&mut out);
21086
21087            let mut preallocated =
21088                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
21089
21090            for i in 1..=max_ord {
21091                match i {
21092                    1 => {
21093                        if let Some(value) = self.event_name.take() {
21094                            ::fidl_next::WireEnvelope::encode_value::<
21095                                ::fidl_next::WireString<'static>,
21096                                ___E,
21097                            >(
21098                                value, preallocated.encoder, &mut out, 100
21099                            )?;
21100                        } else {
21101                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
21102                        }
21103                    }
21104
21105                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
21106                }
21107                unsafe {
21108                    preallocated.write_next(out.assume_init_ref());
21109                }
21110            }
21111
21112            ::fidl_next::WireTable::encode_len(table, max_ord);
21113
21114            Ok(())
21115        }
21116    }
21117
21118    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EventSubscription<'static>, ___E>
21119        for &'a EventSubscription
21120    where
21121        ___E: ::fidl_next::Encoder + ?Sized,
21122    {
21123        #[inline]
21124        fn encode(
21125            self,
21126            encoder: &mut ___E,
21127            out: &mut ::core::mem::MaybeUninit<crate::wire::EventSubscription<'static>>,
21128            _: (),
21129        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21130            ::fidl_next::munge!(let crate::wire::EventSubscription { table } = out);
21131
21132            let max_ord = self.__max_ordinal();
21133
21134            let mut out = ::core::mem::MaybeUninit::<::fidl_next::WireEnvelope>::uninit();
21135            ::fidl_next::Wire::zero_padding(&mut out);
21136
21137            let mut preallocated =
21138                ::fidl_next::EncoderExt::preallocate::<::fidl_next::WireEnvelope>(encoder, max_ord);
21139
21140            for i in 1..=max_ord {
21141                match i {
21142                    1 => {
21143                        if let Some(value) = &self.event_name {
21144                            ::fidl_next::WireEnvelope::encode_value::<
21145                                ::fidl_next::WireString<'static>,
21146                                ___E,
21147                            >(
21148                                value, preallocated.encoder, &mut out, 100
21149                            )?;
21150                        } else {
21151                            ::fidl_next::WireEnvelope::encode_zero(&mut out)
21152                        }
21153                    }
21154
21155                    _ => ::fidl_next::WireEnvelope::encode_zero(&mut out),
21156                }
21157                unsafe {
21158                    preallocated.write_next(out.assume_init_ref());
21159                }
21160            }
21161
21162            ::fidl_next::WireTable::encode_len(table, max_ord);
21163
21164            Ok(())
21165        }
21166    }
21167
21168    impl<'de> ::fidl_next::FromWire<crate::wire::EventSubscription<'de>> for EventSubscription {
21169        #[inline]
21170        fn from_wire(wire_: crate::wire::EventSubscription<'de>) -> Self {
21171            let wire_ = ::core::mem::ManuallyDrop::new(wire_);
21172
21173            let event_name = wire_.table.get(1);
21174
21175            Self {
21176                event_name: event_name.map(|envelope| {
21177                    ::fidl_next::FromWire::from_wire(unsafe {
21178                        envelope.read_unchecked::<::fidl_next::WireString<'de>>()
21179                    })
21180                }),
21181            }
21182        }
21183    }
21184
21185    impl<'de> ::fidl_next::FromWireRef<crate::wire::EventSubscription<'de>> for EventSubscription {
21186        #[inline]
21187        fn from_wire_ref(wire: &crate::wire::EventSubscription<'de>) -> Self {
21188            Self {
21189                event_name: wire.table.get(1).map(|envelope| {
21190                    ::fidl_next::FromWireRef::from_wire_ref(unsafe {
21191                        envelope.deref_unchecked::<::fidl_next::WireString<'de>>()
21192                    })
21193                }),
21194            }
21195        }
21196    }
21197
21198    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21199    pub enum LayoutParameter {
21200        NestedType(crate::natural::ConfigType),
21201
21202        UnknownOrdinal_(u64),
21203    }
21204
21205    impl LayoutParameter {
21206        pub fn is_unknown(&self) -> bool {
21207            #[allow(unreachable_patterns)]
21208            match self {
21209                Self::UnknownOrdinal_(_) => true,
21210                _ => false,
21211            }
21212        }
21213    }
21214
21215    unsafe impl<___E> ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>
21216        for LayoutParameter
21217    where
21218        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21219        ___E: ::fidl_next::Encoder,
21220    {
21221        #[inline]
21222        fn encode(
21223            self,
21224            encoder: &mut ___E,
21225            out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutParameter<'static>>,
21226            _: (),
21227        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21228            ::fidl_next::munge!(let crate::wire::LayoutParameter { raw, _phantom: _ } = out);
21229
21230            match self {
21231                Self::NestedType(value) => ::fidl_next::RawWireUnion::encode_as::<
21232                    ___E,
21233                    crate::wire::ConfigType<'static>,
21234                >(value, 1, encoder, raw, ())?,
21235
21236                Self::UnknownOrdinal_(ordinal) => {
21237                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
21238                }
21239            }
21240
21241            Ok(())
21242        }
21243    }
21244
21245    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>
21246        for &'a LayoutParameter
21247    where
21248        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21249        ___E: ::fidl_next::Encoder,
21250    {
21251        #[inline]
21252        fn encode(
21253            self,
21254            encoder: &mut ___E,
21255            out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutParameter<'static>>,
21256            _: (),
21257        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21258            ::fidl_next::munge!(let crate::wire::LayoutParameter { raw, _phantom: _ } = out);
21259
21260            match self {
21261                LayoutParameter::NestedType(value) => ::fidl_next::RawWireUnion::encode_as::<
21262                    ___E,
21263                    crate::wire::ConfigType<'static>,
21264                >(value, 1, encoder, raw, ())?,
21265
21266                LayoutParameter::UnknownOrdinal_(ordinal) => {
21267                    return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
21268                }
21269            }
21270
21271            Ok(())
21272        }
21273    }
21274
21275    unsafe impl<___E>
21276        ::fidl_next::EncodeOption<crate::wire_optional::LayoutParameter<'static>, ___E>
21277        for LayoutParameter
21278    where
21279        ___E: ?Sized,
21280        LayoutParameter: ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>,
21281    {
21282        #[inline]
21283        fn encode_option(
21284            this: ::core::option::Option<Self>,
21285            encoder: &mut ___E,
21286            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutParameter<'static>>,
21287            _: (),
21288        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21289            ::fidl_next::munge!(let crate::wire_optional::LayoutParameter { raw, _phantom: _ } = &mut *out);
21290
21291            if let Some(inner) = this {
21292                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
21293                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
21294            } else {
21295                ::fidl_next::RawWireUnion::encode_absent(raw);
21296            }
21297
21298            Ok(())
21299        }
21300    }
21301
21302    unsafe impl<'a, ___E>
21303        ::fidl_next::EncodeOption<crate::wire_optional::LayoutParameter<'static>, ___E>
21304        for &'a LayoutParameter
21305    where
21306        ___E: ?Sized,
21307        &'a LayoutParameter: ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>,
21308    {
21309        #[inline]
21310        fn encode_option(
21311            this: ::core::option::Option<Self>,
21312            encoder: &mut ___E,
21313            out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutParameter<'static>>,
21314            _: (),
21315        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21316            ::fidl_next::munge!(let crate::wire_optional::LayoutParameter { raw, _phantom: _ } = &mut *out);
21317
21318            if let Some(inner) = this {
21319                let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
21320                ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
21321            } else {
21322                ::fidl_next::RawWireUnion::encode_absent(raw);
21323            }
21324
21325            Ok(())
21326        }
21327    }
21328
21329    impl<'de> ::fidl_next::FromWire<crate::wire::LayoutParameter<'de>> for LayoutParameter {
21330        #[inline]
21331        fn from_wire(wire: crate::wire::LayoutParameter<'de>) -> Self {
21332            let wire = ::core::mem::ManuallyDrop::new(wire);
21333            match wire.raw.ordinal() {
21334                1 => Self::NestedType(::fidl_next::FromWire::from_wire(unsafe {
21335                    wire.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>()
21336                })),
21337
21338                ord => return Self::UnknownOrdinal_(ord as u64),
21339            }
21340        }
21341    }
21342
21343    impl<'de> ::fidl_next::FromWireRef<crate::wire::LayoutParameter<'de>> for LayoutParameter {
21344        #[inline]
21345        fn from_wire_ref(wire: &crate::wire::LayoutParameter<'de>) -> Self {
21346            match wire.raw.ordinal() {
21347                1 => Self::NestedType(::fidl_next::FromWireRef::from_wire_ref(unsafe {
21348                    wire.raw.get().deref_unchecked::<crate::wire::ConfigType<'de>>()
21349                })),
21350
21351                ord => return Self::UnknownOrdinal_(ord as u64),
21352            }
21353        }
21354    }
21355
21356    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutParameter<'de>>
21357        for LayoutParameter
21358    {
21359        #[inline]
21360        fn from_wire_option(
21361            wire: crate::wire_optional::LayoutParameter<'de>,
21362        ) -> ::core::option::Option<Self> {
21363            if let Some(inner) = wire.into_option() {
21364                Some(::fidl_next::FromWire::from_wire(inner))
21365            } else {
21366                None
21367            }
21368        }
21369    }
21370
21371    impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutParameter<'de>>
21372        for Box<LayoutParameter>
21373    {
21374        #[inline]
21375        fn from_wire_option(
21376            wire: crate::wire_optional::LayoutParameter<'de>,
21377        ) -> ::core::option::Option<Self> {
21378            <LayoutParameter as ::fidl_next::FromWireOption<
21379                crate::wire_optional::LayoutParameter<'de>,
21380            >>::from_wire_option(wire)
21381            .map(Box::new)
21382        }
21383    }
21384
21385    impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::LayoutParameter<'de>>
21386        for Box<LayoutParameter>
21387    {
21388        #[inline]
21389        fn from_wire_option_ref(
21390            wire: &crate::wire_optional::LayoutParameter<'de>,
21391        ) -> ::core::option::Option<Self> {
21392            if let Some(inner) = wire.as_ref() {
21393                Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
21394            } else {
21395                None
21396            }
21397        }
21398    }
21399
21400    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21401    pub struct ResolvedConfigField {
21402        pub key: ::std::string::String,
21403
21404        pub value: crate::natural::ConfigValue,
21405    }
21406
21407    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
21408        for ResolvedConfigField
21409    where
21410        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21411        ___E: ::fidl_next::Encoder,
21412    {
21413        #[inline]
21414        fn encode(
21415            self,
21416            encoder_: &mut ___E,
21417            out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
21418            _: (),
21419        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21420            ::fidl_next::munge! {
21421                let crate::wire::ResolvedConfigField {
21422                    key,
21423                    value,
21424
21425                } = out_;
21426            }
21427
21428            ::fidl_next::Encode::encode(self.key, encoder_, key, 4294967295)?;
21429
21430            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(key.as_mut_ptr()) };
21431            ::fidl_next::Constrained::validate(_field, 4294967295)?;
21432
21433            ::fidl_next::Encode::encode(self.value, encoder_, value, ())?;
21434
21435            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(value.as_mut_ptr()) };
21436
21437            Ok(())
21438        }
21439    }
21440
21441    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
21442        for &'a ResolvedConfigField
21443    where
21444        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21445        ___E: ::fidl_next::Encoder,
21446    {
21447        #[inline]
21448        fn encode(
21449            self,
21450            encoder_: &mut ___E,
21451            out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
21452            _: (),
21453        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21454            ::fidl_next::munge! {
21455                let crate::wire::ResolvedConfigField {
21456
21457                    key,
21458                    value,
21459
21460                } = out_;
21461            }
21462
21463            ::fidl_next::Encode::encode(&self.key, encoder_, key, 4294967295)?;
21464
21465            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(key.as_mut_ptr()) };
21466            ::fidl_next::Constrained::validate(_field, 4294967295)?;
21467
21468            ::fidl_next::Encode::encode(&self.value, encoder_, value, ())?;
21469
21470            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(value.as_mut_ptr()) };
21471
21472            Ok(())
21473        }
21474    }
21475
21476    unsafe impl<___E>
21477        ::fidl_next::EncodeOption<
21478            ::fidl_next::WireBox<'static, crate::wire::ResolvedConfigField<'static>>,
21479            ___E,
21480        > for ResolvedConfigField
21481    where
21482        ___E: ::fidl_next::Encoder + ?Sized,
21483        ResolvedConfigField: ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>,
21484    {
21485        #[inline]
21486        fn encode_option(
21487            this: ::core::option::Option<Self>,
21488            encoder: &mut ___E,
21489            out: &mut ::core::mem::MaybeUninit<
21490                ::fidl_next::WireBox<'static, crate::wire::ResolvedConfigField<'static>>,
21491            >,
21492            _: (),
21493        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21494            if let Some(inner) = this {
21495                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
21496                ::fidl_next::WireBox::encode_present(out);
21497            } else {
21498                ::fidl_next::WireBox::encode_absent(out);
21499            }
21500
21501            Ok(())
21502        }
21503    }
21504
21505    unsafe impl<'a, ___E>
21506        ::fidl_next::EncodeOption<
21507            ::fidl_next::WireBox<'static, crate::wire::ResolvedConfigField<'static>>,
21508            ___E,
21509        > for &'a ResolvedConfigField
21510    where
21511        ___E: ::fidl_next::Encoder + ?Sized,
21512        &'a ResolvedConfigField:
21513            ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>,
21514    {
21515        #[inline]
21516        fn encode_option(
21517            this: ::core::option::Option<Self>,
21518            encoder: &mut ___E,
21519            out: &mut ::core::mem::MaybeUninit<
21520                ::fidl_next::WireBox<'static, crate::wire::ResolvedConfigField<'static>>,
21521            >,
21522            _: (),
21523        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21524            if let Some(inner) = this {
21525                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
21526                ::fidl_next::WireBox::encode_present(out);
21527            } else {
21528                ::fidl_next::WireBox::encode_absent(out);
21529            }
21530
21531            Ok(())
21532        }
21533    }
21534
21535    impl<'de> ::fidl_next::FromWire<crate::wire::ResolvedConfigField<'de>> for ResolvedConfigField {
21536        #[inline]
21537        fn from_wire(wire: crate::wire::ResolvedConfigField<'de>) -> Self {
21538            Self {
21539                key: ::fidl_next::FromWire::from_wire(wire.key),
21540
21541                value: ::fidl_next::FromWire::from_wire(wire.value),
21542            }
21543        }
21544    }
21545
21546    impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolvedConfigField<'de>> for ResolvedConfigField {
21547        #[inline]
21548        fn from_wire_ref(wire: &crate::wire::ResolvedConfigField<'de>) -> Self {
21549            Self {
21550                key: ::fidl_next::FromWireRef::from_wire_ref(&wire.key),
21551
21552                value: ::fidl_next::FromWireRef::from_wire_ref(&wire.value),
21553            }
21554        }
21555    }
21556
21557    #[doc = " A configuration that has been completely resolved by component manager.\n"]
21558    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21559    pub struct ResolvedConfig {
21560        pub fields: ::std::vec::Vec<crate::natural::ResolvedConfigField>,
21561
21562        pub checksum: crate::natural::ConfigChecksum,
21563    }
21564
21565    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E> for ResolvedConfig
21566    where
21567        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21568        ___E: ::fidl_next::Encoder,
21569    {
21570        #[inline]
21571        fn encode(
21572            self,
21573            encoder_: &mut ___E,
21574            out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
21575            _: (),
21576        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21577            ::fidl_next::munge! {
21578                let crate::wire::ResolvedConfig {
21579                    fields,
21580                    checksum,
21581
21582                } = out_;
21583            }
21584
21585            ::fidl_next::Encode::encode(self.fields, encoder_, fields, (4294967295, ()))?;
21586
21587            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fields.as_mut_ptr()) };
21588            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
21589
21590            ::fidl_next::Encode::encode(self.checksum, encoder_, checksum, ())?;
21591
21592            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(checksum.as_mut_ptr()) };
21593
21594            Ok(())
21595        }
21596    }
21597
21598    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>
21599        for &'a ResolvedConfig
21600    where
21601        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21602        ___E: ::fidl_next::Encoder,
21603    {
21604        #[inline]
21605        fn encode(
21606            self,
21607            encoder_: &mut ___E,
21608            out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
21609            _: (),
21610        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21611            ::fidl_next::munge! {
21612                let crate::wire::ResolvedConfig {
21613
21614                    fields,
21615                    checksum,
21616
21617                } = out_;
21618            }
21619
21620            ::fidl_next::Encode::encode(&self.fields, encoder_, fields, (4294967295, ()))?;
21621
21622            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fields.as_mut_ptr()) };
21623            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
21624
21625            ::fidl_next::Encode::encode(&self.checksum, encoder_, checksum, ())?;
21626
21627            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(checksum.as_mut_ptr()) };
21628
21629            Ok(())
21630        }
21631    }
21632
21633    unsafe impl<___E>
21634        ::fidl_next::EncodeOption<
21635            ::fidl_next::WireBox<'static, crate::wire::ResolvedConfig<'static>>,
21636            ___E,
21637        > for ResolvedConfig
21638    where
21639        ___E: ::fidl_next::Encoder + ?Sized,
21640        ResolvedConfig: ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>,
21641    {
21642        #[inline]
21643        fn encode_option(
21644            this: ::core::option::Option<Self>,
21645            encoder: &mut ___E,
21646            out: &mut ::core::mem::MaybeUninit<
21647                ::fidl_next::WireBox<'static, crate::wire::ResolvedConfig<'static>>,
21648            >,
21649            _: (),
21650        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21651            if let Some(inner) = this {
21652                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
21653                ::fidl_next::WireBox::encode_present(out);
21654            } else {
21655                ::fidl_next::WireBox::encode_absent(out);
21656            }
21657
21658            Ok(())
21659        }
21660    }
21661
21662    unsafe impl<'a, ___E>
21663        ::fidl_next::EncodeOption<
21664            ::fidl_next::WireBox<'static, crate::wire::ResolvedConfig<'static>>,
21665            ___E,
21666        > for &'a ResolvedConfig
21667    where
21668        ___E: ::fidl_next::Encoder + ?Sized,
21669        &'a ResolvedConfig: ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>,
21670    {
21671        #[inline]
21672        fn encode_option(
21673            this: ::core::option::Option<Self>,
21674            encoder: &mut ___E,
21675            out: &mut ::core::mem::MaybeUninit<
21676                ::fidl_next::WireBox<'static, crate::wire::ResolvedConfig<'static>>,
21677            >,
21678            _: (),
21679        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21680            if let Some(inner) = this {
21681                ::fidl_next::EncoderExt::encode_next(encoder, inner, ())?;
21682                ::fidl_next::WireBox::encode_present(out);
21683            } else {
21684                ::fidl_next::WireBox::encode_absent(out);
21685            }
21686
21687            Ok(())
21688        }
21689    }
21690
21691    impl<'de> ::fidl_next::FromWire<crate::wire::ResolvedConfig<'de>> for ResolvedConfig {
21692        #[inline]
21693        fn from_wire(wire: crate::wire::ResolvedConfig<'de>) -> Self {
21694            Self {
21695                fields: ::fidl_next::FromWire::from_wire(wire.fields),
21696
21697                checksum: ::fidl_next::FromWire::from_wire(wire.checksum),
21698            }
21699        }
21700    }
21701
21702    impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolvedConfig<'de>> for ResolvedConfig {
21703        #[inline]
21704        fn from_wire_ref(wire: &crate::wire::ResolvedConfig<'de>) -> Self {
21705            Self {
21706                fields: ::fidl_next::FromWireRef::from_wire_ref(&wire.fields),
21707
21708                checksum: ::fidl_next::FromWireRef::from_wire_ref(&wire.checksum),
21709            }
21710        }
21711    }
21712}
21713
21714pub mod wire {
21715
21716    /// The wire type corresponding to [`AllowedOffers`].
21717    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21718    #[repr(transparent)]
21719    pub struct AllowedOffers {
21720        pub(crate) value: ::fidl_next::WireU32,
21721    }
21722
21723    unsafe impl ::fidl_next::Wire for AllowedOffers {
21724        type Owned<'de> = Self;
21725
21726        #[inline]
21727        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
21728            // Wire enums have no padding
21729        }
21730    }
21731
21732    impl AllowedOffers {
21733        pub const STATIC_ONLY: AllowedOffers = AllowedOffers { value: ::fidl_next::WireU32(1) };
21734
21735        pub const STATIC_AND_DYNAMIC: AllowedOffers =
21736            AllowedOffers { value: ::fidl_next::WireU32(2) };
21737    }
21738
21739    unsafe impl<___D> ::fidl_next::Decode<___D> for AllowedOffers
21740    where
21741        ___D: ?Sized,
21742    {
21743        fn decode(
21744            slot: ::fidl_next::Slot<'_, Self>,
21745            _: &mut ___D,
21746            _: (),
21747        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21748            ::fidl_next::munge!(let Self { value } = slot);
21749
21750            match u32::from(*value) {
21751                1 | 2 => (),
21752                unknown => {
21753                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
21754                }
21755            }
21756
21757            Ok(())
21758        }
21759    }
21760
21761    impl ::core::convert::From<crate::natural::AllowedOffers> for AllowedOffers {
21762        fn from(natural: crate::natural::AllowedOffers) -> Self {
21763            match natural {
21764                crate::natural::AllowedOffers::StaticOnly => AllowedOffers::STATIC_ONLY,
21765
21766                crate::natural::AllowedOffers::StaticAndDynamic => {
21767                    AllowedOffers::STATIC_AND_DYNAMIC
21768                }
21769            }
21770        }
21771    }
21772
21773    impl ::fidl_next::IntoNatural for AllowedOffers {
21774        type Natural = crate::natural::AllowedOffers;
21775    }
21776
21777    impl ::fidl_next::Unconstrained for AllowedOffers {}
21778
21779    /// The wire type corresponding to [`Availability`].
21780    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21781    #[repr(transparent)]
21782    pub struct Availability {
21783        pub(crate) value: ::fidl_next::WireU32,
21784    }
21785
21786    unsafe impl ::fidl_next::Wire for Availability {
21787        type Owned<'de> = Self;
21788
21789        #[inline]
21790        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
21791            // Wire enums have no padding
21792        }
21793    }
21794
21795    impl Availability {
21796        pub const REQUIRED: Availability = Availability { value: ::fidl_next::WireU32(1) };
21797
21798        pub const OPTIONAL: Availability = Availability { value: ::fidl_next::WireU32(2) };
21799
21800        pub const SAME_AS_TARGET: Availability = Availability { value: ::fidl_next::WireU32(3) };
21801
21802        pub const TRANSITIONAL: Availability = Availability { value: ::fidl_next::WireU32(4) };
21803    }
21804
21805    unsafe impl<___D> ::fidl_next::Decode<___D> for Availability
21806    where
21807        ___D: ?Sized,
21808    {
21809        fn decode(
21810            slot: ::fidl_next::Slot<'_, Self>,
21811            _: &mut ___D,
21812            _: (),
21813        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21814            ::fidl_next::munge!(let Self { value } = slot);
21815
21816            match u32::from(*value) {
21817                1 | 2 | 3 | 4 => (),
21818                unknown => {
21819                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
21820                }
21821            }
21822
21823            Ok(())
21824        }
21825    }
21826
21827    impl ::core::convert::From<crate::natural::Availability> for Availability {
21828        fn from(natural: crate::natural::Availability) -> Self {
21829            match natural {
21830                crate::natural::Availability::Required => Availability::REQUIRED,
21831
21832                crate::natural::Availability::Optional => Availability::OPTIONAL,
21833
21834                crate::natural::Availability::SameAsTarget => Availability::SAME_AS_TARGET,
21835
21836                crate::natural::Availability::Transitional => Availability::TRANSITIONAL,
21837            }
21838        }
21839    }
21840
21841    impl ::fidl_next::IntoNatural for Availability {
21842        type Natural = crate::natural::Availability;
21843    }
21844
21845    impl ::fidl_next::Unconstrained for Availability {}
21846
21847    /// The wire type corresponding to [`Name`](crate::natural::Name).
21848    pub type Name<'de> = ::fidl_next::WireString<'de>;
21849
21850    /// The wire type corresponding to [`Service`].
21851    #[repr(C)]
21852    pub struct Service<'de> {
21853        pub(crate) table: ::fidl_next::WireTable<'de>,
21854    }
21855
21856    impl<'de> Drop for Service<'de> {
21857        fn drop(&mut self) {
21858            let _ = self.table.get(1).map(|envelope| unsafe {
21859                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
21860            });
21861
21862            let _ = self.table.get(2).map(|envelope| unsafe {
21863                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
21864            });
21865        }
21866    }
21867
21868    unsafe impl ::fidl_next::Wire for Service<'static> {
21869        type Owned<'de> = Service<'de>;
21870
21871        #[inline]
21872        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
21873            ::fidl_next::munge!(let Self { table } = out);
21874            ::fidl_next::WireTable::zero_padding(table);
21875        }
21876    }
21877
21878    unsafe impl<___D> ::fidl_next::Decode<___D> for Service<'static>
21879    where
21880        ___D: ::fidl_next::Decoder + ?Sized,
21881    {
21882        fn decode(
21883            slot: ::fidl_next::Slot<'_, Self>,
21884            decoder: &mut ___D,
21885            _: (),
21886        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21887            ::fidl_next::munge!(let Self { table } = slot);
21888
21889            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
21890                match ordinal {
21891                    0 => unsafe { ::core::hint::unreachable_unchecked() },
21892
21893                    1 => {
21894                        ::fidl_next::WireEnvelope::decode_as::<
21895                            ___D,
21896                            ::fidl_next::WireString<'static>,
21897                        >(slot.as_mut(), decoder, 100)?;
21898
21899                        let value = unsafe {
21900                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
21901                        };
21902
21903                        if value.len() > 100 {
21904                            return Err(::fidl_next::DecodeError::VectorTooLong {
21905                                size: value.len() as u64,
21906                                limit: 100,
21907                            });
21908                        }
21909
21910                        Ok(())
21911                    }
21912
21913                    2 => {
21914                        ::fidl_next::WireEnvelope::decode_as::<
21915                            ___D,
21916                            ::fidl_next::WireString<'static>,
21917                        >(slot.as_mut(), decoder, 1024)?;
21918
21919                        let value = unsafe {
21920                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
21921                        };
21922
21923                        if value.len() > 1024 {
21924                            return Err(::fidl_next::DecodeError::VectorTooLong {
21925                                size: value.len() as u64,
21926                                limit: 1024,
21927                            });
21928                        }
21929
21930                        Ok(())
21931                    }
21932
21933                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
21934                }
21935            })
21936        }
21937    }
21938
21939    impl<'de> Service<'de> {
21940        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
21941            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
21942        }
21943
21944        pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
21945            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
21946        }
21947    }
21948
21949    impl<'de> ::core::fmt::Debug for Service<'de> {
21950        fn fmt(
21951            &self,
21952            f: &mut ::core::fmt::Formatter<'_>,
21953        ) -> ::core::result::Result<(), ::core::fmt::Error> {
21954            f.debug_struct("Service")
21955                .field("name", &self.name())
21956                .field("source_path", &self.source_path())
21957                .finish()
21958        }
21959    }
21960
21961    impl<'de> ::fidl_next::IntoNatural for Service<'de> {
21962        type Natural = crate::natural::Service;
21963    }
21964
21965    impl ::fidl_next::Unconstrained for Service<'_> {}
21966
21967    /// The wire type corresponding to [`Directory`].
21968    #[repr(C)]
21969    pub struct Directory<'de> {
21970        pub(crate) table: ::fidl_next::WireTable<'de>,
21971    }
21972
21973    impl<'de> Drop for Directory<'de> {
21974        fn drop(&mut self) {
21975            let _ = self.table.get(1).map(|envelope| unsafe {
21976                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
21977            });
21978
21979            let _ = self.table.get(2).map(|envelope| unsafe {
21980                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
21981            });
21982
21983            let _ = self.table.get(3).map(|envelope| unsafe {
21984                envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
21985            });
21986        }
21987    }
21988
21989    unsafe impl ::fidl_next::Wire for Directory<'static> {
21990        type Owned<'de> = Directory<'de>;
21991
21992        #[inline]
21993        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
21994            ::fidl_next::munge!(let Self { table } = out);
21995            ::fidl_next::WireTable::zero_padding(table);
21996        }
21997    }
21998
21999    unsafe impl<___D> ::fidl_next::Decode<___D> for Directory<'static>
22000    where
22001        ___D: ::fidl_next::Decoder + ?Sized,
22002    {
22003        fn decode(
22004            slot: ::fidl_next::Slot<'_, Self>,
22005            decoder: &mut ___D,
22006            _: (),
22007        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22008            ::fidl_next::munge!(let Self { table } = slot);
22009
22010            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22011                match ordinal {
22012                    0 => unsafe { ::core::hint::unreachable_unchecked() },
22013
22014                    1 => {
22015                        ::fidl_next::WireEnvelope::decode_as::<
22016                            ___D,
22017                            ::fidl_next::WireString<'static>,
22018                        >(slot.as_mut(), decoder, 100)?;
22019
22020                        let value = unsafe {
22021                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
22022                        };
22023
22024                        if value.len() > 100 {
22025                            return Err(::fidl_next::DecodeError::VectorTooLong {
22026                                size: value.len() as u64,
22027                                limit: 100,
22028                            });
22029                        }
22030
22031                        Ok(())
22032                    }
22033
22034                    2 => {
22035                        ::fidl_next::WireEnvelope::decode_as::<
22036                            ___D,
22037                            ::fidl_next::WireString<'static>,
22038                        >(slot.as_mut(), decoder, 1024)?;
22039
22040                        let value = unsafe {
22041                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
22042                        };
22043
22044                        if value.len() > 1024 {
22045                            return Err(::fidl_next::DecodeError::VectorTooLong {
22046                                size: value.len() as u64,
22047                                limit: 1024,
22048                            });
22049                        }
22050
22051                        Ok(())
22052                    }
22053
22054                    3 => {
22055                        ::fidl_next::WireEnvelope::decode_as::<
22056                            ___D,
22057                            ::fidl_next_common_fuchsia_io::wire::Operations,
22058                        >(slot.as_mut(), decoder, ())?;
22059
22060                        Ok(())
22061                    }
22062
22063                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
22064                }
22065            })
22066        }
22067    }
22068
22069    impl<'de> Directory<'de> {
22070        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
22071            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22072        }
22073
22074        pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
22075            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
22076        }
22077
22078        pub fn rights(
22079            &self,
22080        ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
22081            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
22082        }
22083    }
22084
22085    impl<'de> ::core::fmt::Debug for Directory<'de> {
22086        fn fmt(
22087            &self,
22088            f: &mut ::core::fmt::Formatter<'_>,
22089        ) -> ::core::result::Result<(), ::core::fmt::Error> {
22090            f.debug_struct("Directory")
22091                .field("name", &self.name())
22092                .field("source_path", &self.source_path())
22093                .field("rights", &self.rights())
22094                .finish()
22095        }
22096    }
22097
22098    impl<'de> ::fidl_next::IntoNatural for Directory<'de> {
22099        type Natural = crate::natural::Directory;
22100    }
22101
22102    impl ::fidl_next::Unconstrained for Directory<'_> {}
22103
22104    /// The wire type corresponding to [`ParentRef`].
22105    #[derive(Clone, Debug)]
22106    #[repr(C)]
22107    pub struct ParentRef {
22108        pub(crate) _empty: fidl_next::WireEmptyStructPlaceholder,
22109    }
22110
22111    static_assertions::const_assert_eq!(std::mem::size_of::<ParentRef>(), 1);
22112    static_assertions::const_assert_eq!(std::mem::align_of::<ParentRef>(), 1);
22113
22114    unsafe impl ::fidl_next::Wire for ParentRef {
22115        type Owned<'de> = ParentRef;
22116
22117        #[inline]
22118        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22119            ::fidl_next::munge! {
22120                let Self {
22121
22122                        _empty,
22123
22124
22125                } = &mut *out_;
22126            }
22127        }
22128    }
22129
22130    unsafe impl<___D> ::fidl_next::Decode<___D> for ParentRef
22131    where
22132        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22133    {
22134        fn decode(
22135            slot_: ::fidl_next::Slot<'_, Self>,
22136            decoder_: &mut ___D,
22137            _: (),
22138        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22139            ::fidl_next::munge! {
22140                let Self {
22141
22142                        mut _empty,
22143
22144
22145                } = slot_;
22146            }
22147
22148            if _empty.as_bytes() != &[0u8] {
22149                return Err(::fidl_next::DecodeError::InvalidEmptyStruct);
22150            }
22151
22152            Ok(())
22153        }
22154    }
22155
22156    impl ::fidl_next::IntoNatural for ParentRef {
22157        type Natural = crate::natural::ParentRef;
22158    }
22159
22160    impl ::fidl_next::Unconstrained for ParentRef {}
22161
22162    /// The wire type corresponding to [`SelfRef`].
22163    #[derive(Clone, Debug)]
22164    #[repr(C)]
22165    pub struct SelfRef {
22166        pub(crate) _empty: fidl_next::WireEmptyStructPlaceholder,
22167    }
22168
22169    static_assertions::const_assert_eq!(std::mem::size_of::<SelfRef>(), 1);
22170    static_assertions::const_assert_eq!(std::mem::align_of::<SelfRef>(), 1);
22171
22172    unsafe impl ::fidl_next::Wire for SelfRef {
22173        type Owned<'de> = SelfRef;
22174
22175        #[inline]
22176        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22177            ::fidl_next::munge! {
22178                let Self {
22179
22180                        _empty,
22181
22182
22183                } = &mut *out_;
22184            }
22185        }
22186    }
22187
22188    unsafe impl<___D> ::fidl_next::Decode<___D> for SelfRef
22189    where
22190        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22191    {
22192        fn decode(
22193            slot_: ::fidl_next::Slot<'_, Self>,
22194            decoder_: &mut ___D,
22195            _: (),
22196        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22197            ::fidl_next::munge! {
22198                let Self {
22199
22200                        mut _empty,
22201
22202
22203                } = slot_;
22204            }
22205
22206            if _empty.as_bytes() != &[0u8] {
22207                return Err(::fidl_next::DecodeError::InvalidEmptyStruct);
22208            }
22209
22210            Ok(())
22211        }
22212    }
22213
22214    impl ::fidl_next::IntoNatural for SelfRef {
22215        type Natural = crate::natural::SelfRef;
22216    }
22217
22218    impl ::fidl_next::Unconstrained for SelfRef {}
22219
22220    /// The wire type corresponding to [`ChildName`](crate::natural::ChildName).
22221    pub type ChildName<'de> = ::fidl_next::WireString<'de>;
22222
22223    /// The wire type corresponding to [`ChildRef`].
22224    #[derive(Debug)]
22225    #[repr(C)]
22226    pub struct ChildRef<'de> {
22227        pub name: ::fidl_next::WireString<'de>,
22228
22229        pub collection: ::fidl_next::WireOptionalString<'de>,
22230    }
22231
22232    static_assertions::const_assert_eq!(std::mem::size_of::<ChildRef<'_>>(), 32);
22233    static_assertions::const_assert_eq!(std::mem::align_of::<ChildRef<'_>>(), 8);
22234
22235    static_assertions::const_assert_eq!(std::mem::offset_of!(ChildRef<'_>, name), 0);
22236
22237    static_assertions::const_assert_eq!(std::mem::offset_of!(ChildRef<'_>, collection), 16);
22238
22239    unsafe impl ::fidl_next::Wire for ChildRef<'static> {
22240        type Owned<'de> = ChildRef<'de>;
22241
22242        #[inline]
22243        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22244            ::fidl_next::munge! {
22245                let Self {
22246
22247                    name,
22248                    collection,
22249
22250                } = &mut *out_;
22251            }
22252
22253            ::fidl_next::Wire::zero_padding(name);
22254
22255            ::fidl_next::Wire::zero_padding(collection);
22256        }
22257    }
22258
22259    unsafe impl<___D> ::fidl_next::Decode<___D> for ChildRef<'static>
22260    where
22261        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22262        ___D: ::fidl_next::Decoder,
22263    {
22264        fn decode(
22265            slot_: ::fidl_next::Slot<'_, Self>,
22266            decoder_: &mut ___D,
22267            _: (),
22268        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22269            ::fidl_next::munge! {
22270                let Self {
22271
22272                    mut name,
22273                    mut collection,
22274
22275                } = slot_;
22276            }
22277
22278            let _field = name.as_mut();
22279            ::fidl_next::Constrained::validate(_field, 1024)?;
22280            ::fidl_next::Decode::decode(name.as_mut(), decoder_, 1024)?;
22281
22282            let name = unsafe { name.deref_unchecked() };
22283
22284            if name.len() > 1024 {
22285                return Err(::fidl_next::DecodeError::VectorTooLong {
22286                    size: name.len() as u64,
22287                    limit: 1024,
22288                });
22289            }
22290
22291            let _field = collection.as_mut();
22292            ::fidl_next::Constrained::validate(_field, 100)?;
22293            ::fidl_next::Decode::decode(collection.as_mut(), decoder_, 100)?;
22294
22295            let collection = unsafe { collection.deref_unchecked() };
22296
22297            if let Some(collection) = collection.as_ref() {
22298                if collection.len() > 100 {
22299                    return Err(::fidl_next::DecodeError::VectorTooLong {
22300                        size: collection.len() as u64,
22301                        limit: 100,
22302                    });
22303                }
22304            }
22305
22306            Ok(())
22307        }
22308    }
22309
22310    impl<'de> ::fidl_next::IntoNatural for ChildRef<'de> {
22311        type Natural = crate::natural::ChildRef;
22312    }
22313
22314    impl ::fidl_next::Unconstrained for ChildRef<'static> {}
22315
22316    /// The wire type corresponding to [`CollectionRef`].
22317    #[derive(Debug)]
22318    #[repr(C)]
22319    pub struct CollectionRef<'de> {
22320        pub name: ::fidl_next::WireString<'de>,
22321    }
22322
22323    static_assertions::const_assert_eq!(std::mem::size_of::<CollectionRef<'_>>(), 16);
22324    static_assertions::const_assert_eq!(std::mem::align_of::<CollectionRef<'_>>(), 8);
22325
22326    static_assertions::const_assert_eq!(std::mem::offset_of!(CollectionRef<'_>, name), 0);
22327
22328    unsafe impl ::fidl_next::Wire for CollectionRef<'static> {
22329        type Owned<'de> = CollectionRef<'de>;
22330
22331        #[inline]
22332        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22333            ::fidl_next::munge! {
22334                let Self {
22335
22336                    name,
22337
22338                } = &mut *out_;
22339            }
22340
22341            ::fidl_next::Wire::zero_padding(name);
22342        }
22343    }
22344
22345    unsafe impl<___D> ::fidl_next::Decode<___D> for CollectionRef<'static>
22346    where
22347        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22348        ___D: ::fidl_next::Decoder,
22349    {
22350        fn decode(
22351            slot_: ::fidl_next::Slot<'_, Self>,
22352            decoder_: &mut ___D,
22353            _: (),
22354        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22355            ::fidl_next::munge! {
22356                let Self {
22357
22358                    mut name,
22359
22360                } = slot_;
22361            }
22362
22363            let _field = name.as_mut();
22364            ::fidl_next::Constrained::validate(_field, 100)?;
22365            ::fidl_next::Decode::decode(name.as_mut(), decoder_, 100)?;
22366
22367            let name = unsafe { name.deref_unchecked() };
22368
22369            if name.len() > 100 {
22370                return Err(::fidl_next::DecodeError::VectorTooLong {
22371                    size: name.len() as u64,
22372                    limit: 100,
22373                });
22374            }
22375
22376            Ok(())
22377        }
22378    }
22379
22380    impl<'de> ::fidl_next::IntoNatural for CollectionRef<'de> {
22381        type Natural = crate::natural::CollectionRef;
22382    }
22383
22384    impl ::fidl_next::Unconstrained for CollectionRef<'static> {}
22385
22386    /// The wire type corresponding to [`FrameworkRef`].
22387    #[derive(Clone, Debug)]
22388    #[repr(C)]
22389    pub struct FrameworkRef {
22390        pub(crate) _empty: fidl_next::WireEmptyStructPlaceholder,
22391    }
22392
22393    static_assertions::const_assert_eq!(std::mem::size_of::<FrameworkRef>(), 1);
22394    static_assertions::const_assert_eq!(std::mem::align_of::<FrameworkRef>(), 1);
22395
22396    unsafe impl ::fidl_next::Wire for FrameworkRef {
22397        type Owned<'de> = FrameworkRef;
22398
22399        #[inline]
22400        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22401            ::fidl_next::munge! {
22402                let Self {
22403
22404                        _empty,
22405
22406
22407                } = &mut *out_;
22408            }
22409        }
22410    }
22411
22412    unsafe impl<___D> ::fidl_next::Decode<___D> for FrameworkRef
22413    where
22414        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22415    {
22416        fn decode(
22417            slot_: ::fidl_next::Slot<'_, Self>,
22418            decoder_: &mut ___D,
22419            _: (),
22420        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22421            ::fidl_next::munge! {
22422                let Self {
22423
22424                        mut _empty,
22425
22426
22427                } = slot_;
22428            }
22429
22430            if _empty.as_bytes() != &[0u8] {
22431                return Err(::fidl_next::DecodeError::InvalidEmptyStruct);
22432            }
22433
22434            Ok(())
22435        }
22436    }
22437
22438    impl ::fidl_next::IntoNatural for FrameworkRef {
22439        type Natural = crate::natural::FrameworkRef;
22440    }
22441
22442    impl ::fidl_next::Unconstrained for FrameworkRef {}
22443
22444    /// The wire type corresponding to [`CapabilityRef`].
22445    #[derive(Debug)]
22446    #[repr(C)]
22447    pub struct CapabilityRef<'de> {
22448        pub name: ::fidl_next::WireString<'de>,
22449    }
22450
22451    static_assertions::const_assert_eq!(std::mem::size_of::<CapabilityRef<'_>>(), 16);
22452    static_assertions::const_assert_eq!(std::mem::align_of::<CapabilityRef<'_>>(), 8);
22453
22454    static_assertions::const_assert_eq!(std::mem::offset_of!(CapabilityRef<'_>, name), 0);
22455
22456    unsafe impl ::fidl_next::Wire for CapabilityRef<'static> {
22457        type Owned<'de> = CapabilityRef<'de>;
22458
22459        #[inline]
22460        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22461            ::fidl_next::munge! {
22462                let Self {
22463
22464                    name,
22465
22466                } = &mut *out_;
22467            }
22468
22469            ::fidl_next::Wire::zero_padding(name);
22470        }
22471    }
22472
22473    unsafe impl<___D> ::fidl_next::Decode<___D> for CapabilityRef<'static>
22474    where
22475        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22476        ___D: ::fidl_next::Decoder,
22477    {
22478        fn decode(
22479            slot_: ::fidl_next::Slot<'_, Self>,
22480            decoder_: &mut ___D,
22481            _: (),
22482        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22483            ::fidl_next::munge! {
22484                let Self {
22485
22486                    mut name,
22487
22488                } = slot_;
22489            }
22490
22491            let _field = name.as_mut();
22492            ::fidl_next::Constrained::validate(_field, 100)?;
22493            ::fidl_next::Decode::decode(name.as_mut(), decoder_, 100)?;
22494
22495            let name = unsafe { name.deref_unchecked() };
22496
22497            if name.len() > 100 {
22498                return Err(::fidl_next::DecodeError::VectorTooLong {
22499                    size: name.len() as u64,
22500                    limit: 100,
22501                });
22502            }
22503
22504            Ok(())
22505        }
22506    }
22507
22508    impl<'de> ::fidl_next::IntoNatural for CapabilityRef<'de> {
22509        type Natural = crate::natural::CapabilityRef;
22510    }
22511
22512    impl ::fidl_next::Unconstrained for CapabilityRef<'static> {}
22513
22514    /// The wire type corresponding to [`DebugRef`].
22515    #[derive(Clone, Debug)]
22516    #[repr(C)]
22517    pub struct DebugRef {
22518        pub(crate) _empty: fidl_next::WireEmptyStructPlaceholder,
22519    }
22520
22521    static_assertions::const_assert_eq!(std::mem::size_of::<DebugRef>(), 1);
22522    static_assertions::const_assert_eq!(std::mem::align_of::<DebugRef>(), 1);
22523
22524    unsafe impl ::fidl_next::Wire for DebugRef {
22525        type Owned<'de> = DebugRef;
22526
22527        #[inline]
22528        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22529            ::fidl_next::munge! {
22530                let Self {
22531
22532                        _empty,
22533
22534
22535                } = &mut *out_;
22536            }
22537        }
22538    }
22539
22540    unsafe impl<___D> ::fidl_next::Decode<___D> for DebugRef
22541    where
22542        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22543    {
22544        fn decode(
22545            slot_: ::fidl_next::Slot<'_, Self>,
22546            decoder_: &mut ___D,
22547            _: (),
22548        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22549            ::fidl_next::munge! {
22550                let Self {
22551
22552                        mut _empty,
22553
22554
22555                } = slot_;
22556            }
22557
22558            if _empty.as_bytes() != &[0u8] {
22559                return Err(::fidl_next::DecodeError::InvalidEmptyStruct);
22560            }
22561
22562            Ok(())
22563        }
22564    }
22565
22566    impl ::fidl_next::IntoNatural for DebugRef {
22567        type Natural = crate::natural::DebugRef;
22568    }
22569
22570    impl ::fidl_next::Unconstrained for DebugRef {}
22571
22572    /// The wire type corresponding to [`VoidRef`].
22573    #[derive(Clone, Debug)]
22574    #[repr(C)]
22575    pub struct VoidRef {
22576        pub(crate) _empty: fidl_next::WireEmptyStructPlaceholder,
22577    }
22578
22579    static_assertions::const_assert_eq!(std::mem::size_of::<VoidRef>(), 1);
22580    static_assertions::const_assert_eq!(std::mem::align_of::<VoidRef>(), 1);
22581
22582    unsafe impl ::fidl_next::Wire for VoidRef {
22583        type Owned<'de> = VoidRef;
22584
22585        #[inline]
22586        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
22587            ::fidl_next::munge! {
22588                let Self {
22589
22590                        _empty,
22591
22592
22593                } = &mut *out_;
22594            }
22595        }
22596    }
22597
22598    unsafe impl<___D> ::fidl_next::Decode<___D> for VoidRef
22599    where
22600        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22601    {
22602        fn decode(
22603            slot_: ::fidl_next::Slot<'_, Self>,
22604            decoder_: &mut ___D,
22605            _: (),
22606        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22607            ::fidl_next::munge! {
22608                let Self {
22609
22610                        mut _empty,
22611
22612
22613                } = slot_;
22614            }
22615
22616            if _empty.as_bytes() != &[0u8] {
22617                return Err(::fidl_next::DecodeError::InvalidEmptyStruct);
22618            }
22619
22620            Ok(())
22621        }
22622    }
22623
22624    impl ::fidl_next::IntoNatural for VoidRef {
22625        type Natural = crate::natural::VoidRef;
22626    }
22627
22628    impl ::fidl_next::Unconstrained for VoidRef {}
22629
22630    /// The wire type corresponding to [`StorageId`].
22631    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
22632    #[repr(transparent)]
22633    pub struct StorageId {
22634        pub(crate) value: ::fidl_next::WireU32,
22635    }
22636
22637    unsafe impl ::fidl_next::Wire for StorageId {
22638        type Owned<'de> = Self;
22639
22640        #[inline]
22641        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
22642            // Wire enums have no padding
22643        }
22644    }
22645
22646    impl StorageId {
22647        pub const STATIC_INSTANCE_ID: StorageId = StorageId { value: ::fidl_next::WireU32(1) };
22648
22649        pub const STATIC_INSTANCE_ID_OR_MONIKER: StorageId =
22650            StorageId { value: ::fidl_next::WireU32(2) };
22651    }
22652
22653    unsafe impl<___D> ::fidl_next::Decode<___D> for StorageId
22654    where
22655        ___D: ?Sized,
22656    {
22657        fn decode(
22658            slot: ::fidl_next::Slot<'_, Self>,
22659            _: &mut ___D,
22660            _: (),
22661        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22662            ::fidl_next::munge!(let Self { value } = slot);
22663
22664            match u32::from(*value) {
22665                1 | 2 => (),
22666                unknown => {
22667                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
22668                }
22669            }
22670
22671            Ok(())
22672        }
22673    }
22674
22675    impl ::core::convert::From<crate::natural::StorageId> for StorageId {
22676        fn from(natural: crate::natural::StorageId) -> Self {
22677            match natural {
22678                crate::natural::StorageId::StaticInstanceId => StorageId::STATIC_INSTANCE_ID,
22679
22680                crate::natural::StorageId::StaticInstanceIdOrMoniker => {
22681                    StorageId::STATIC_INSTANCE_ID_OR_MONIKER
22682                }
22683            }
22684        }
22685    }
22686
22687    impl ::fidl_next::IntoNatural for StorageId {
22688        type Natural = crate::natural::StorageId;
22689    }
22690
22691    impl ::fidl_next::Unconstrained for StorageId {}
22692
22693    /// The wire type corresponding to [`Runner`].
22694    #[repr(C)]
22695    pub struct Runner<'de> {
22696        pub(crate) table: ::fidl_next::WireTable<'de>,
22697    }
22698
22699    impl<'de> Drop for Runner<'de> {
22700        fn drop(&mut self) {
22701            let _ = self.table.get(1).map(|envelope| unsafe {
22702                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
22703            });
22704
22705            let _ = self.table.get(2).map(|envelope| unsafe {
22706                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
22707            });
22708        }
22709    }
22710
22711    unsafe impl ::fidl_next::Wire for Runner<'static> {
22712        type Owned<'de> = Runner<'de>;
22713
22714        #[inline]
22715        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22716            ::fidl_next::munge!(let Self { table } = out);
22717            ::fidl_next::WireTable::zero_padding(table);
22718        }
22719    }
22720
22721    unsafe impl<___D> ::fidl_next::Decode<___D> for Runner<'static>
22722    where
22723        ___D: ::fidl_next::Decoder + ?Sized,
22724    {
22725        fn decode(
22726            slot: ::fidl_next::Slot<'_, Self>,
22727            decoder: &mut ___D,
22728            _: (),
22729        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22730            ::fidl_next::munge!(let Self { table } = slot);
22731
22732            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22733                match ordinal {
22734                    0 => unsafe { ::core::hint::unreachable_unchecked() },
22735
22736                    1 => {
22737                        ::fidl_next::WireEnvelope::decode_as::<
22738                            ___D,
22739                            ::fidl_next::WireString<'static>,
22740                        >(slot.as_mut(), decoder, 100)?;
22741
22742                        let value = unsafe {
22743                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
22744                        };
22745
22746                        if value.len() > 100 {
22747                            return Err(::fidl_next::DecodeError::VectorTooLong {
22748                                size: value.len() as u64,
22749                                limit: 100,
22750                            });
22751                        }
22752
22753                        Ok(())
22754                    }
22755
22756                    2 => {
22757                        ::fidl_next::WireEnvelope::decode_as::<
22758                            ___D,
22759                            ::fidl_next::WireString<'static>,
22760                        >(slot.as_mut(), decoder, 1024)?;
22761
22762                        let value = unsafe {
22763                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
22764                        };
22765
22766                        if value.len() > 1024 {
22767                            return Err(::fidl_next::DecodeError::VectorTooLong {
22768                                size: value.len() as u64,
22769                                limit: 1024,
22770                            });
22771                        }
22772
22773                        Ok(())
22774                    }
22775
22776                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
22777                }
22778            })
22779        }
22780    }
22781
22782    impl<'de> Runner<'de> {
22783        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
22784            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22785        }
22786
22787        pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
22788            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
22789        }
22790    }
22791
22792    impl<'de> ::core::fmt::Debug for Runner<'de> {
22793        fn fmt(
22794            &self,
22795            f: &mut ::core::fmt::Formatter<'_>,
22796        ) -> ::core::result::Result<(), ::core::fmt::Error> {
22797            f.debug_struct("Runner")
22798                .field("name", &self.name())
22799                .field("source_path", &self.source_path())
22800                .finish()
22801        }
22802    }
22803
22804    impl<'de> ::fidl_next::IntoNatural for Runner<'de> {
22805        type Natural = crate::natural::Runner;
22806    }
22807
22808    impl ::fidl_next::Unconstrained for Runner<'_> {}
22809
22810    /// The wire type corresponding to [`Resolver`].
22811    #[repr(C)]
22812    pub struct Resolver<'de> {
22813        pub(crate) table: ::fidl_next::WireTable<'de>,
22814    }
22815
22816    impl<'de> Drop for Resolver<'de> {
22817        fn drop(&mut self) {
22818            let _ = self.table.get(1).map(|envelope| unsafe {
22819                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
22820            });
22821
22822            let _ = self.table.get(2).map(|envelope| unsafe {
22823                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
22824            });
22825        }
22826    }
22827
22828    unsafe impl ::fidl_next::Wire for Resolver<'static> {
22829        type Owned<'de> = Resolver<'de>;
22830
22831        #[inline]
22832        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22833            ::fidl_next::munge!(let Self { table } = out);
22834            ::fidl_next::WireTable::zero_padding(table);
22835        }
22836    }
22837
22838    unsafe impl<___D> ::fidl_next::Decode<___D> for Resolver<'static>
22839    where
22840        ___D: ::fidl_next::Decoder + ?Sized,
22841    {
22842        fn decode(
22843            slot: ::fidl_next::Slot<'_, Self>,
22844            decoder: &mut ___D,
22845            _: (),
22846        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22847            ::fidl_next::munge!(let Self { table } = slot);
22848
22849            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22850                match ordinal {
22851                    0 => unsafe { ::core::hint::unreachable_unchecked() },
22852
22853                    1 => {
22854                        ::fidl_next::WireEnvelope::decode_as::<
22855                            ___D,
22856                            ::fidl_next::WireString<'static>,
22857                        >(slot.as_mut(), decoder, 100)?;
22858
22859                        let value = unsafe {
22860                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
22861                        };
22862
22863                        if value.len() > 100 {
22864                            return Err(::fidl_next::DecodeError::VectorTooLong {
22865                                size: value.len() as u64,
22866                                limit: 100,
22867                            });
22868                        }
22869
22870                        Ok(())
22871                    }
22872
22873                    2 => {
22874                        ::fidl_next::WireEnvelope::decode_as::<
22875                            ___D,
22876                            ::fidl_next::WireString<'static>,
22877                        >(slot.as_mut(), decoder, 1024)?;
22878
22879                        let value = unsafe {
22880                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
22881                        };
22882
22883                        if value.len() > 1024 {
22884                            return Err(::fidl_next::DecodeError::VectorTooLong {
22885                                size: value.len() as u64,
22886                                limit: 1024,
22887                            });
22888                        }
22889
22890                        Ok(())
22891                    }
22892
22893                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
22894                }
22895            })
22896        }
22897    }
22898
22899    impl<'de> Resolver<'de> {
22900        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
22901            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22902        }
22903
22904        pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
22905            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
22906        }
22907    }
22908
22909    impl<'de> ::core::fmt::Debug for Resolver<'de> {
22910        fn fmt(
22911            &self,
22912            f: &mut ::core::fmt::Formatter<'_>,
22913        ) -> ::core::result::Result<(), ::core::fmt::Error> {
22914            f.debug_struct("Resolver")
22915                .field("name", &self.name())
22916                .field("source_path", &self.source_path())
22917                .finish()
22918        }
22919    }
22920
22921    impl<'de> ::fidl_next::IntoNatural for Resolver<'de> {
22922        type Natural = crate::natural::Resolver;
22923    }
22924
22925    impl ::fidl_next::Unconstrained for Resolver<'_> {}
22926
22927    /// The wire type corresponding to [`EventStream`].
22928    #[repr(C)]
22929    pub struct EventStream<'de> {
22930        pub(crate) table: ::fidl_next::WireTable<'de>,
22931    }
22932
22933    impl<'de> Drop for EventStream<'de> {
22934        fn drop(&mut self) {
22935            let _ = self.table.get(1).map(|envelope| unsafe {
22936                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
22937            });
22938        }
22939    }
22940
22941    unsafe impl ::fidl_next::Wire for EventStream<'static> {
22942        type Owned<'de> = EventStream<'de>;
22943
22944        #[inline]
22945        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22946            ::fidl_next::munge!(let Self { table } = out);
22947            ::fidl_next::WireTable::zero_padding(table);
22948        }
22949    }
22950
22951    unsafe impl<___D> ::fidl_next::Decode<___D> for EventStream<'static>
22952    where
22953        ___D: ::fidl_next::Decoder + ?Sized,
22954    {
22955        fn decode(
22956            slot: ::fidl_next::Slot<'_, Self>,
22957            decoder: &mut ___D,
22958            _: (),
22959        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22960            ::fidl_next::munge!(let Self { table } = slot);
22961
22962            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22963                match ordinal {
22964                    0 => unsafe { ::core::hint::unreachable_unchecked() },
22965
22966                    1 => {
22967                        ::fidl_next::WireEnvelope::decode_as::<
22968                            ___D,
22969                            ::fidl_next::WireString<'static>,
22970                        >(slot.as_mut(), decoder, 100)?;
22971
22972                        let value = unsafe {
22973                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
22974                        };
22975
22976                        if value.len() > 100 {
22977                            return Err(::fidl_next::DecodeError::VectorTooLong {
22978                                size: value.len() as u64,
22979                                limit: 100,
22980                            });
22981                        }
22982
22983                        Ok(())
22984                    }
22985
22986                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
22987                }
22988            })
22989        }
22990    }
22991
22992    impl<'de> EventStream<'de> {
22993        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
22994            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22995        }
22996    }
22997
22998    impl<'de> ::core::fmt::Debug for EventStream<'de> {
22999        fn fmt(
23000            &self,
23001            f: &mut ::core::fmt::Formatter<'_>,
23002        ) -> ::core::result::Result<(), ::core::fmt::Error> {
23003            f.debug_struct("EventStream").field("name", &self.name()).finish()
23004        }
23005    }
23006
23007    impl<'de> ::fidl_next::IntoNatural for EventStream<'de> {
23008        type Natural = crate::natural::EventStream;
23009    }
23010
23011    impl ::fidl_next::Unconstrained for EventStream<'_> {}
23012
23013    /// The wire type corresponding to [`ConfigSingleValue`].
23014    #[repr(transparent)]
23015    pub struct ConfigSingleValue<'de> {
23016        pub(crate) raw: ::fidl_next::RawWireUnion,
23017        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
23018    }
23019
23020    impl<'de> Drop for ConfigSingleValue<'de> {
23021        fn drop(&mut self) {
23022            match self.raw.ordinal() {
23023                1 => {
23024                    let _ = unsafe { self.raw.get().read_unchecked::<bool>() };
23025                }
23026
23027                2 => {
23028                    let _ = unsafe { self.raw.get().read_unchecked::<u8>() };
23029                }
23030
23031                3 => {
23032                    let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::WireU16>() };
23033                }
23034
23035                4 => {
23036                    let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::WireU32>() };
23037                }
23038
23039                5 => {
23040                    let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::WireU64>() };
23041                }
23042
23043                6 => {
23044                    let _ = unsafe { self.raw.get().read_unchecked::<i8>() };
23045                }
23046
23047                7 => {
23048                    let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::WireI16>() };
23049                }
23050
23051                8 => {
23052                    let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::WireI32>() };
23053                }
23054
23055                9 => {
23056                    let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::WireI64>() };
23057                }
23058
23059                10 => {
23060                    let _ =
23061                        unsafe { self.raw.get().read_unchecked::<::fidl_next::WireString<'de>>() };
23062                }
23063
23064                _ => (),
23065            }
23066        }
23067    }
23068
23069    unsafe impl ::fidl_next::Wire for ConfigSingleValue<'static> {
23070        type Owned<'de> = ConfigSingleValue<'de>;
23071
23072        #[inline]
23073        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23074            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
23075            ::fidl_next::RawWireUnion::zero_padding(raw);
23076        }
23077    }
23078
23079    pub mod config_single_value {
23080        pub enum Ref<'de> {
23081            Bool(&'de bool),
23082
23083            Uint8(&'de u8),
23084
23085            Uint16(&'de ::fidl_next::WireU16),
23086
23087            Uint32(&'de ::fidl_next::WireU32),
23088
23089            Uint64(&'de ::fidl_next::WireU64),
23090
23091            Int8(&'de i8),
23092
23093            Int16(&'de ::fidl_next::WireI16),
23094
23095            Int32(&'de ::fidl_next::WireI32),
23096
23097            Int64(&'de ::fidl_next::WireI64),
23098
23099            String(&'de ::fidl_next::WireString<'de>),
23100
23101            UnknownOrdinal_(u64),
23102        }
23103    }
23104
23105    impl<'de> ConfigSingleValue<'de> {
23106        pub fn as_ref(&self) -> crate::wire::config_single_value::Ref<'_> {
23107            match self.raw.ordinal() {
23108                1 => crate::wire::config_single_value::Ref::Bool(unsafe {
23109                    self.raw.get().deref_unchecked::<bool>()
23110                }),
23111
23112                2 => crate::wire::config_single_value::Ref::Uint8(unsafe {
23113                    self.raw.get().deref_unchecked::<u8>()
23114                }),
23115
23116                3 => crate::wire::config_single_value::Ref::Uint16(unsafe {
23117                    self.raw.get().deref_unchecked::<::fidl_next::WireU16>()
23118                }),
23119
23120                4 => crate::wire::config_single_value::Ref::Uint32(unsafe {
23121                    self.raw.get().deref_unchecked::<::fidl_next::WireU32>()
23122                }),
23123
23124                5 => crate::wire::config_single_value::Ref::Uint64(unsafe {
23125                    self.raw.get().deref_unchecked::<::fidl_next::WireU64>()
23126                }),
23127
23128                6 => crate::wire::config_single_value::Ref::Int8(unsafe {
23129                    self.raw.get().deref_unchecked::<i8>()
23130                }),
23131
23132                7 => crate::wire::config_single_value::Ref::Int16(unsafe {
23133                    self.raw.get().deref_unchecked::<::fidl_next::WireI16>()
23134                }),
23135
23136                8 => crate::wire::config_single_value::Ref::Int32(unsafe {
23137                    self.raw.get().deref_unchecked::<::fidl_next::WireI32>()
23138                }),
23139
23140                9 => crate::wire::config_single_value::Ref::Int64(unsafe {
23141                    self.raw.get().deref_unchecked::<::fidl_next::WireI64>()
23142                }),
23143
23144                10 => crate::wire::config_single_value::Ref::String(unsafe {
23145                    self.raw.get().deref_unchecked::<::fidl_next::WireString<'_>>()
23146                }),
23147
23148                unknown => crate::wire::config_single_value::Ref::UnknownOrdinal_(unknown),
23149            }
23150        }
23151    }
23152
23153    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigSingleValue<'static>
23154    where
23155        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23156        ___D: ::fidl_next::Decoder,
23157    {
23158        fn decode(
23159            mut slot: ::fidl_next::Slot<'_, Self>,
23160            decoder: &mut ___D,
23161            _: (),
23162        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23163            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23164            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
23165                1 => ::fidl_next::RawWireUnion::decode_as::<___D, bool>(raw, decoder, ())?,
23166
23167                2 => ::fidl_next::RawWireUnion::decode_as::<___D, u8>(raw, decoder, ())?,
23168
23169                3 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU16>(
23170                    raw,
23171                    decoder,
23172                    (),
23173                )?,
23174
23175                4 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU32>(
23176                    raw,
23177                    decoder,
23178                    (),
23179                )?,
23180
23181                5 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU64>(
23182                    raw,
23183                    decoder,
23184                    (),
23185                )?,
23186
23187                6 => ::fidl_next::RawWireUnion::decode_as::<___D, i8>(raw, decoder, ())?,
23188
23189                7 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireI16>(
23190                    raw,
23191                    decoder,
23192                    (),
23193                )?,
23194
23195                8 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireI32>(
23196                    raw,
23197                    decoder,
23198                    (),
23199                )?,
23200
23201                9 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireI64>(
23202                    raw,
23203                    decoder,
23204                    (),
23205                )?,
23206
23207                10 => {
23208                    ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireString<'static>>(
23209                        raw, decoder, 4294967295,
23210                    )?
23211                }
23212
23213                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
23214            }
23215
23216            Ok(())
23217        }
23218    }
23219
23220    impl<'de> ::core::fmt::Debug for ConfigSingleValue<'de> {
23221        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23222            match self.raw.ordinal() {
23223                1 => unsafe { self.raw.get().deref_unchecked::<bool>().fmt(f) },
23224                2 => unsafe { self.raw.get().deref_unchecked::<u8>().fmt(f) },
23225                3 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::WireU16>().fmt(f) },
23226                4 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::WireU32>().fmt(f) },
23227                5 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::WireU64>().fmt(f) },
23228                6 => unsafe { self.raw.get().deref_unchecked::<i8>().fmt(f) },
23229                7 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::WireI16>().fmt(f) },
23230                8 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::WireI32>().fmt(f) },
23231                9 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::WireI64>().fmt(f) },
23232                10 => unsafe {
23233                    self.raw.get().deref_unchecked::<::fidl_next::WireString<'_>>().fmt(f)
23234                },
23235                _ => unsafe { ::core::hint::unreachable_unchecked() },
23236            }
23237        }
23238    }
23239
23240    impl<'de> ::fidl_next::IntoNatural for ConfigSingleValue<'de> {
23241        type Natural = crate::natural::ConfigSingleValue;
23242    }
23243
23244    impl ::fidl_next::Unconstrained for ConfigSingleValue<'static> {}
23245
23246    /// The wire type corresponding to [`ConfigVectorValue`].
23247    #[repr(transparent)]
23248    pub struct ConfigVectorValue<'de> {
23249        pub(crate) raw: ::fidl_next::RawWireUnion,
23250        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
23251    }
23252
23253    impl<'de> Drop for ConfigVectorValue<'de> {
23254        fn drop(&mut self) {
23255            match self.raw.ordinal() {
23256                1 => {
23257                    let _ = unsafe {
23258                        self.raw.get().read_unchecked::<::fidl_next::WireVector<'de, bool>>()
23259                    };
23260                }
23261
23262                2 => {
23263                    let _ = unsafe {
23264                        self.raw.get().read_unchecked::<::fidl_next::WireVector<'de, u8>>()
23265                    };
23266                }
23267
23268                3 => {
23269                    let _ = unsafe {
23270                        self.raw
23271                            .get()
23272                            .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU16>>()
23273                    };
23274                }
23275
23276                4 => {
23277                    let _ = unsafe {
23278                        self.raw
23279                            .get()
23280                            .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU32>>()
23281                    };
23282                }
23283
23284                5 => {
23285                    let _ = unsafe {
23286                        self.raw
23287                            .get()
23288                            .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireU64>>()
23289                    };
23290                }
23291
23292                6 => {
23293                    let _ = unsafe {
23294                        self.raw.get().read_unchecked::<::fidl_next::WireVector<'de, i8>>()
23295                    };
23296                }
23297
23298                7 => {
23299                    let _ = unsafe {
23300                        self.raw
23301                            .get()
23302                            .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI16>>()
23303                    };
23304                }
23305
23306                8 => {
23307                    let _ = unsafe {
23308                        self.raw
23309                            .get()
23310                            .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI32>>()
23311                    };
23312                }
23313
23314                9 => {
23315                    let _ = unsafe {
23316                        self.raw
23317                            .get()
23318                            .read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireI64>>()
23319                    };
23320                }
23321
23322                10 => {
23323                    let _ = unsafe {
23324                        self.raw.get().read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>()
23325                    };
23326                }
23327
23328                _ => (),
23329            }
23330        }
23331    }
23332
23333    unsafe impl ::fidl_next::Wire for ConfigVectorValue<'static> {
23334        type Owned<'de> = ConfigVectorValue<'de>;
23335
23336        #[inline]
23337        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23338            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
23339            ::fidl_next::RawWireUnion::zero_padding(raw);
23340        }
23341    }
23342
23343    pub mod config_vector_value {
23344        pub enum Ref<'de> {
23345            BoolVector(&'de ::fidl_next::WireVector<'de, bool>),
23346
23347            Uint8Vector(&'de ::fidl_next::WireVector<'de, u8>),
23348
23349            Uint16Vector(&'de ::fidl_next::WireVector<'de, ::fidl_next::WireU16>),
23350
23351            Uint32Vector(&'de ::fidl_next::WireVector<'de, ::fidl_next::WireU32>),
23352
23353            Uint64Vector(&'de ::fidl_next::WireVector<'de, ::fidl_next::WireU64>),
23354
23355            Int8Vector(&'de ::fidl_next::WireVector<'de, i8>),
23356
23357            Int16Vector(&'de ::fidl_next::WireVector<'de, ::fidl_next::WireI16>),
23358
23359            Int32Vector(&'de ::fidl_next::WireVector<'de, ::fidl_next::WireI32>),
23360
23361            Int64Vector(&'de ::fidl_next::WireVector<'de, ::fidl_next::WireI64>),
23362
23363            StringVector(&'de ::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>),
23364
23365            UnknownOrdinal_(u64),
23366        }
23367    }
23368
23369    impl<'de> ConfigVectorValue<'de> {
23370        pub fn as_ref(&self) -> crate::wire::config_vector_value::Ref<'_> {
23371            match self.raw.ordinal() {
23372                1 => crate::wire::config_vector_value::Ref::BoolVector(unsafe {
23373                    self.raw.get().deref_unchecked::<::fidl_next::WireVector<'_, bool>>()
23374                }),
23375
23376                2 => crate::wire::config_vector_value::Ref::Uint8Vector(unsafe {
23377                    self.raw.get().deref_unchecked::<::fidl_next::WireVector<'_, u8>>()
23378                }),
23379
23380                3 => crate::wire::config_vector_value::Ref::Uint16Vector(unsafe {
23381                    self.raw
23382                        .get()
23383                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireU16>>()
23384                }),
23385
23386                4 => crate::wire::config_vector_value::Ref::Uint32Vector(unsafe {
23387                    self.raw
23388                        .get()
23389                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireU32>>()
23390                }),
23391
23392                5 => crate::wire::config_vector_value::Ref::Uint64Vector(unsafe {
23393                    self.raw
23394                        .get()
23395                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireU64>>()
23396                }),
23397
23398                6 => crate::wire::config_vector_value::Ref::Int8Vector(unsafe {
23399                    self.raw.get().deref_unchecked::<::fidl_next::WireVector<'_, i8>>()
23400                }),
23401
23402                7 => crate::wire::config_vector_value::Ref::Int16Vector(unsafe {
23403                    self.raw
23404                        .get()
23405                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireI16>>()
23406                }),
23407
23408                8 => crate::wire::config_vector_value::Ref::Int32Vector(unsafe {
23409                    self.raw
23410                        .get()
23411                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireI32>>()
23412                }),
23413
23414                9 => crate::wire::config_vector_value::Ref::Int64Vector(unsafe {
23415                    self.raw
23416                        .get()
23417                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireI64>>()
23418                }),
23419
23420                10 => crate::wire::config_vector_value::Ref::StringVector(unsafe {
23421                    self.raw.get().deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireString<'_>>>()
23422                }),
23423
23424                unknown => crate::wire::config_vector_value::Ref::UnknownOrdinal_(unknown),
23425            }
23426        }
23427    }
23428
23429    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigVectorValue<'static>
23430    where
23431        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23432        ___D: ::fidl_next::Decoder,
23433    {
23434        fn decode(
23435            mut slot: ::fidl_next::Slot<'_, Self>,
23436            decoder: &mut ___D,
23437            _: (),
23438        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23439            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23440            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
23441                1 => ::fidl_next::RawWireUnion::decode_as::<
23442                    ___D,
23443                    ::fidl_next::WireVector<'static, bool>,
23444                >(raw, decoder, (4294967295, ()))?,
23445
23446                2 => ::fidl_next::RawWireUnion::decode_as::<
23447                    ___D,
23448                    ::fidl_next::WireVector<'static, u8>,
23449                >(raw, decoder, (4294967295, ()))?,
23450
23451                3 => ::fidl_next::RawWireUnion::decode_as::<
23452                    ___D,
23453                    ::fidl_next::WireVector<'static, ::fidl_next::WireU16>,
23454                >(raw, decoder, (4294967295, ()))?,
23455
23456                4 => ::fidl_next::RawWireUnion::decode_as::<
23457                    ___D,
23458                    ::fidl_next::WireVector<'static, ::fidl_next::WireU32>,
23459                >(raw, decoder, (4294967295, ()))?,
23460
23461                5 => ::fidl_next::RawWireUnion::decode_as::<
23462                    ___D,
23463                    ::fidl_next::WireVector<'static, ::fidl_next::WireU64>,
23464                >(raw, decoder, (4294967295, ()))?,
23465
23466                6 => ::fidl_next::RawWireUnion::decode_as::<
23467                    ___D,
23468                    ::fidl_next::WireVector<'static, i8>,
23469                >(raw, decoder, (4294967295, ()))?,
23470
23471                7 => ::fidl_next::RawWireUnion::decode_as::<
23472                    ___D,
23473                    ::fidl_next::WireVector<'static, ::fidl_next::WireI16>,
23474                >(raw, decoder, (4294967295, ()))?,
23475
23476                8 => ::fidl_next::RawWireUnion::decode_as::<
23477                    ___D,
23478                    ::fidl_next::WireVector<'static, ::fidl_next::WireI32>,
23479                >(raw, decoder, (4294967295, ()))?,
23480
23481                9 => ::fidl_next::RawWireUnion::decode_as::<
23482                    ___D,
23483                    ::fidl_next::WireVector<'static, ::fidl_next::WireI64>,
23484                >(raw, decoder, (4294967295, ()))?,
23485
23486                10 => ::fidl_next::RawWireUnion::decode_as::<
23487                    ___D,
23488                    ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
23489                >(raw, decoder, (4294967295, 4294967295))?,
23490
23491                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
23492            }
23493
23494            Ok(())
23495        }
23496    }
23497
23498    impl<'de> ::core::fmt::Debug for ConfigVectorValue<'de> {
23499        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23500            match self.raw.ordinal() {
23501                1 => unsafe {
23502                    self.raw.get().deref_unchecked::<::fidl_next::WireVector<'_, bool>>().fmt(f)
23503                },
23504                2 => unsafe {
23505                    self.raw.get().deref_unchecked::<::fidl_next::WireVector<'_, u8>>().fmt(f)
23506                },
23507                3 => unsafe {
23508                    self.raw
23509                        .get()
23510                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireU16>>()
23511                        .fmt(f)
23512                },
23513                4 => unsafe {
23514                    self.raw
23515                        .get()
23516                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireU32>>()
23517                        .fmt(f)
23518                },
23519                5 => unsafe {
23520                    self.raw
23521                        .get()
23522                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireU64>>()
23523                        .fmt(f)
23524                },
23525                6 => unsafe {
23526                    self.raw.get().deref_unchecked::<::fidl_next::WireVector<'_, i8>>().fmt(f)
23527                },
23528                7 => unsafe {
23529                    self.raw
23530                        .get()
23531                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireI16>>()
23532                        .fmt(f)
23533                },
23534                8 => unsafe {
23535                    self.raw
23536                        .get()
23537                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireI32>>()
23538                        .fmt(f)
23539                },
23540                9 => unsafe {
23541                    self.raw
23542                        .get()
23543                        .deref_unchecked::<::fidl_next::WireVector<'_, ::fidl_next::WireI64>>()
23544                        .fmt(f)
23545                },
23546                10 => unsafe {
23547                    self.raw.get().deref_unchecked::<
23548                            ::fidl_next::WireVector<'_, ::fidl_next::WireString<'_>>
23549                        >().fmt(f)
23550                },
23551                _ => unsafe { ::core::hint::unreachable_unchecked() },
23552            }
23553        }
23554    }
23555
23556    impl<'de> ::fidl_next::IntoNatural for ConfigVectorValue<'de> {
23557        type Natural = crate::natural::ConfigVectorValue;
23558    }
23559
23560    impl ::fidl_next::Unconstrained for ConfigVectorValue<'static> {}
23561
23562    /// The wire type corresponding to [`ConfigValue`].
23563    #[repr(transparent)]
23564    pub struct ConfigValue<'de> {
23565        pub(crate) raw: ::fidl_next::RawWireUnion,
23566        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
23567    }
23568
23569    impl<'de> Drop for ConfigValue<'de> {
23570        fn drop(&mut self) {
23571            match self.raw.ordinal() {
23572                1 => {
23573                    let _ = unsafe {
23574                        self.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
23575                    };
23576                }
23577
23578                2 => {
23579                    let _ = unsafe {
23580                        self.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
23581                    };
23582                }
23583
23584                _ => (),
23585            }
23586        }
23587    }
23588
23589    unsafe impl ::fidl_next::Wire for ConfigValue<'static> {
23590        type Owned<'de> = ConfigValue<'de>;
23591
23592        #[inline]
23593        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23594            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
23595            ::fidl_next::RawWireUnion::zero_padding(raw);
23596        }
23597    }
23598
23599    pub mod config_value {
23600        pub enum Ref<'de> {
23601            Single(&'de crate::wire::ConfigSingleValue<'de>),
23602
23603            Vector(&'de crate::wire::ConfigVectorValue<'de>),
23604
23605            UnknownOrdinal_(u64),
23606        }
23607    }
23608
23609    impl<'de> ConfigValue<'de> {
23610        pub fn as_ref(&self) -> crate::wire::config_value::Ref<'_> {
23611            match self.raw.ordinal() {
23612                1 => crate::wire::config_value::Ref::Single(unsafe {
23613                    self.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'_>>()
23614                }),
23615
23616                2 => crate::wire::config_value::Ref::Vector(unsafe {
23617                    self.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'_>>()
23618                }),
23619
23620                unknown => crate::wire::config_value::Ref::UnknownOrdinal_(unknown),
23621            }
23622        }
23623    }
23624
23625    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigValue<'static>
23626    where
23627        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23628        ___D: ::fidl_next::Decoder,
23629    {
23630        fn decode(
23631            mut slot: ::fidl_next::Slot<'_, Self>,
23632            decoder: &mut ___D,
23633            _: (),
23634        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23635            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23636            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
23637                1 => ::fidl_next::RawWireUnion::decode_as::<
23638                    ___D,
23639                    crate::wire::ConfigSingleValue<'static>,
23640                >(raw, decoder, ())?,
23641
23642                2 => ::fidl_next::RawWireUnion::decode_as::<
23643                    ___D,
23644                    crate::wire::ConfigVectorValue<'static>,
23645                >(raw, decoder, ())?,
23646
23647                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
23648            }
23649
23650            Ok(())
23651        }
23652    }
23653
23654    impl<'de> ::core::fmt::Debug for ConfigValue<'de> {
23655        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23656            match self.raw.ordinal() {
23657                1 => unsafe {
23658                    self.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'_>>().fmt(f)
23659                },
23660                2 => unsafe {
23661                    self.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'_>>().fmt(f)
23662                },
23663                _ => unsafe { ::core::hint::unreachable_unchecked() },
23664            }
23665        }
23666    }
23667
23668    impl<'de> ::fidl_next::IntoNatural for ConfigValue<'de> {
23669        type Natural = crate::natural::ConfigValue;
23670    }
23671
23672    impl ::fidl_next::Unconstrained for ConfigValue<'static> {}
23673
23674    /// The wire type corresponding to [`Configuration`].
23675    #[repr(C)]
23676    pub struct Configuration<'de> {
23677        pub(crate) table: ::fidl_next::WireTable<'de>,
23678    }
23679
23680    impl<'de> Drop for Configuration<'de> {
23681        fn drop(&mut self) {
23682            let _ = self.table.get(1).map(|envelope| unsafe {
23683                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
23684            });
23685
23686            let _ = self.table.get(2).map(|envelope| unsafe {
23687                envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
23688            });
23689        }
23690    }
23691
23692    unsafe impl ::fidl_next::Wire for Configuration<'static> {
23693        type Owned<'de> = Configuration<'de>;
23694
23695        #[inline]
23696        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23697            ::fidl_next::munge!(let Self { table } = out);
23698            ::fidl_next::WireTable::zero_padding(table);
23699        }
23700    }
23701
23702    unsafe impl<___D> ::fidl_next::Decode<___D> for Configuration<'static>
23703    where
23704        ___D: ::fidl_next::Decoder + ?Sized,
23705    {
23706        fn decode(
23707            slot: ::fidl_next::Slot<'_, Self>,
23708            decoder: &mut ___D,
23709            _: (),
23710        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23711            ::fidl_next::munge!(let Self { table } = slot);
23712
23713            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
23714                match ordinal {
23715                    0 => unsafe { ::core::hint::unreachable_unchecked() },
23716
23717                    1 => {
23718                        ::fidl_next::WireEnvelope::decode_as::<
23719                            ___D,
23720                            ::fidl_next::WireString<'static>,
23721                        >(slot.as_mut(), decoder, 100)?;
23722
23723                        let value = unsafe {
23724                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
23725                        };
23726
23727                        if value.len() > 100 {
23728                            return Err(::fidl_next::DecodeError::VectorTooLong {
23729                                size: value.len() as u64,
23730                                limit: 100,
23731                            });
23732                        }
23733
23734                        Ok(())
23735                    }
23736
23737                    2 => {
23738                        ::fidl_next::WireEnvelope::decode_as::<
23739                            ___D,
23740                            crate::wire::ConfigValue<'static>,
23741                        >(slot.as_mut(), decoder, ())?;
23742
23743                        Ok(())
23744                    }
23745
23746                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
23747                }
23748            })
23749        }
23750    }
23751
23752    impl<'de> Configuration<'de> {
23753        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
23754            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
23755        }
23756
23757        pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
23758            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
23759        }
23760    }
23761
23762    impl<'de> ::core::fmt::Debug for Configuration<'de> {
23763        fn fmt(
23764            &self,
23765            f: &mut ::core::fmt::Formatter<'_>,
23766        ) -> ::core::result::Result<(), ::core::fmt::Error> {
23767            f.debug_struct("Configuration")
23768                .field("name", &self.name())
23769                .field("value", &self.value())
23770                .finish()
23771        }
23772    }
23773
23774    impl<'de> ::fidl_next::IntoNatural for Configuration<'de> {
23775        type Natural = crate::natural::Configuration;
23776    }
23777
23778    impl ::fidl_next::Unconstrained for Configuration<'_> {}
23779
23780    /// The wire type corresponding to [`DictionaryPath`](crate::natural::DictionaryPath).
23781    pub type DictionaryPath<'de> = ::fidl_next::WireString<'de>;
23782
23783    /// The wire type corresponding to [`DeliveryType`].
23784    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
23785    #[repr(transparent)]
23786    pub struct DeliveryType {
23787        pub(crate) value: ::fidl_next::WireU32,
23788    }
23789
23790    unsafe impl ::fidl_next::Wire for DeliveryType {
23791        type Owned<'de> = Self;
23792
23793        #[inline]
23794        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
23795            // Wire enums have no padding
23796        }
23797    }
23798
23799    impl DeliveryType {
23800        pub const IMMEDIATE: DeliveryType = DeliveryType { value: ::fidl_next::WireU32(0) };
23801
23802        pub const ON_READABLE: DeliveryType = DeliveryType { value: ::fidl_next::WireU32(1) };
23803    }
23804
23805    unsafe impl<___D> ::fidl_next::Decode<___D> for DeliveryType
23806    where
23807        ___D: ?Sized,
23808    {
23809        fn decode(
23810            slot: ::fidl_next::Slot<'_, Self>,
23811            _: &mut ___D,
23812            _: (),
23813        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23814            Ok(())
23815        }
23816    }
23817
23818    impl ::core::convert::From<crate::natural::DeliveryType> for DeliveryType {
23819        fn from(natural: crate::natural::DeliveryType) -> Self {
23820            match natural {
23821                crate::natural::DeliveryType::Immediate => DeliveryType::IMMEDIATE,
23822
23823                crate::natural::DeliveryType::OnReadable => DeliveryType::ON_READABLE,
23824
23825                crate::natural::DeliveryType::UnknownOrdinal_(value) => {
23826                    DeliveryType { value: ::fidl_next::WireU32::from(value) }
23827                }
23828            }
23829        }
23830    }
23831
23832    impl ::fidl_next::IntoNatural for DeliveryType {
23833        type Natural = crate::natural::DeliveryType;
23834    }
23835
23836    impl ::fidl_next::Unconstrained for DeliveryType {}
23837
23838    /// The wire type corresponding to [`Protocol`].
23839    #[repr(C)]
23840    pub struct Protocol<'de> {
23841        pub(crate) table: ::fidl_next::WireTable<'de>,
23842    }
23843
23844    impl<'de> Drop for Protocol<'de> {
23845        fn drop(&mut self) {
23846            let _ = self.table.get(1).map(|envelope| unsafe {
23847                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
23848            });
23849
23850            let _ = self.table.get(2).map(|envelope| unsafe {
23851                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
23852            });
23853
23854            let _ = self
23855                .table
23856                .get(3)
23857                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::DeliveryType>() });
23858        }
23859    }
23860
23861    unsafe impl ::fidl_next::Wire for Protocol<'static> {
23862        type Owned<'de> = Protocol<'de>;
23863
23864        #[inline]
23865        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23866            ::fidl_next::munge!(let Self { table } = out);
23867            ::fidl_next::WireTable::zero_padding(table);
23868        }
23869    }
23870
23871    unsafe impl<___D> ::fidl_next::Decode<___D> for Protocol<'static>
23872    where
23873        ___D: ::fidl_next::Decoder + ?Sized,
23874    {
23875        fn decode(
23876            slot: ::fidl_next::Slot<'_, Self>,
23877            decoder: &mut ___D,
23878            _: (),
23879        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23880            ::fidl_next::munge!(let Self { table } = slot);
23881
23882            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
23883                match ordinal {
23884                    0 => unsafe { ::core::hint::unreachable_unchecked() },
23885
23886                    1 => {
23887                        ::fidl_next::WireEnvelope::decode_as::<
23888                            ___D,
23889                            ::fidl_next::WireString<'static>,
23890                        >(slot.as_mut(), decoder, 100)?;
23891
23892                        let value = unsafe {
23893                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
23894                        };
23895
23896                        if value.len() > 100 {
23897                            return Err(::fidl_next::DecodeError::VectorTooLong {
23898                                size: value.len() as u64,
23899                                limit: 100,
23900                            });
23901                        }
23902
23903                        Ok(())
23904                    }
23905
23906                    2 => {
23907                        ::fidl_next::WireEnvelope::decode_as::<
23908                            ___D,
23909                            ::fidl_next::WireString<'static>,
23910                        >(slot.as_mut(), decoder, 1024)?;
23911
23912                        let value = unsafe {
23913                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
23914                        };
23915
23916                        if value.len() > 1024 {
23917                            return Err(::fidl_next::DecodeError::VectorTooLong {
23918                                size: value.len() as u64,
23919                                limit: 1024,
23920                            });
23921                        }
23922
23923                        Ok(())
23924                    }
23925
23926                    3 => {
23927                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DeliveryType>(
23928                            slot.as_mut(),
23929                            decoder,
23930                            (),
23931                        )?;
23932
23933                        Ok(())
23934                    }
23935
23936                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
23937                }
23938            })
23939        }
23940    }
23941
23942    impl<'de> Protocol<'de> {
23943        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
23944            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
23945        }
23946
23947        pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
23948            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
23949        }
23950
23951        pub fn delivery(&self) -> ::core::option::Option<&crate::wire::DeliveryType> {
23952            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
23953        }
23954    }
23955
23956    impl<'de> ::core::fmt::Debug for Protocol<'de> {
23957        fn fmt(
23958            &self,
23959            f: &mut ::core::fmt::Formatter<'_>,
23960        ) -> ::core::result::Result<(), ::core::fmt::Error> {
23961            f.debug_struct("Protocol")
23962                .field("name", &self.name())
23963                .field("source_path", &self.source_path())
23964                .field("delivery", &self.delivery())
23965                .finish()
23966        }
23967    }
23968
23969    impl<'de> ::fidl_next::IntoNatural for Protocol<'de> {
23970        type Natural = crate::natural::Protocol;
23971    }
23972
23973    impl ::fidl_next::Unconstrained for Protocol<'_> {}
23974
23975    /// The wire type corresponding to [`EnvironmentRef`].
23976    #[derive(Clone, Debug)]
23977    #[repr(C)]
23978    pub struct EnvironmentRef {
23979        pub(crate) _empty: fidl_next::WireEmptyStructPlaceholder,
23980    }
23981
23982    static_assertions::const_assert_eq!(std::mem::size_of::<EnvironmentRef>(), 1);
23983    static_assertions::const_assert_eq!(std::mem::align_of::<EnvironmentRef>(), 1);
23984
23985    unsafe impl ::fidl_next::Wire for EnvironmentRef {
23986        type Owned<'de> = EnvironmentRef;
23987
23988        #[inline]
23989        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
23990            ::fidl_next::munge! {
23991                let Self {
23992
23993                        _empty,
23994
23995
23996                } = &mut *out_;
23997            }
23998        }
23999    }
24000
24001    unsafe impl<___D> ::fidl_next::Decode<___D> for EnvironmentRef
24002    where
24003        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
24004    {
24005        fn decode(
24006            slot_: ::fidl_next::Slot<'_, Self>,
24007            decoder_: &mut ___D,
24008            _: (),
24009        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24010            ::fidl_next::munge! {
24011                let Self {
24012
24013                        mut _empty,
24014
24015
24016                } = slot_;
24017            }
24018
24019            if _empty.as_bytes() != &[0u8] {
24020                return Err(::fidl_next::DecodeError::InvalidEmptyStruct);
24021            }
24022
24023            Ok(())
24024        }
24025    }
24026
24027    impl ::fidl_next::IntoNatural for EnvironmentRef {
24028        type Natural = crate::natural::EnvironmentRef;
24029    }
24030
24031    impl ::fidl_next::Unconstrained for EnvironmentRef {}
24032
24033    /// The wire type corresponding to [`Ref`].
24034    #[repr(transparent)]
24035    pub struct Ref<'de> {
24036        pub(crate) raw: ::fidl_next::RawWireUnion,
24037        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
24038    }
24039
24040    impl<'de> Drop for Ref<'de> {
24041        fn drop(&mut self) {
24042            match self.raw.ordinal() {
24043                1 => {
24044                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::ParentRef>() };
24045                }
24046
24047                2 => {
24048                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::SelfRef>() };
24049                }
24050
24051                3 => {
24052                    let _ =
24053                        unsafe { self.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>() };
24054                }
24055
24056                4 => {
24057                    let _ = unsafe {
24058                        self.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
24059                    };
24060                }
24061
24062                5 => {
24063                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::FrameworkRef>() };
24064                }
24065
24066                6 => {
24067                    let _ = unsafe {
24068                        self.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
24069                    };
24070                }
24071
24072                7 => {
24073                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::DebugRef>() };
24074                }
24075
24076                8 => {
24077                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::VoidRef>() };
24078                }
24079
24080                9 => {
24081                    let _ =
24082                        unsafe { self.raw.get().read_unchecked::<crate::wire::EnvironmentRef>() };
24083                }
24084
24085                _ => (),
24086            }
24087        }
24088    }
24089
24090    unsafe impl ::fidl_next::Wire for Ref<'static> {
24091        type Owned<'de> = Ref<'de>;
24092
24093        #[inline]
24094        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24095            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
24096            ::fidl_next::RawWireUnion::zero_padding(raw);
24097        }
24098    }
24099
24100    pub mod ref_ {
24101        pub enum Ref<'de> {
24102            Parent(&'de crate::wire::ParentRef),
24103
24104            Self_(&'de crate::wire::SelfRef),
24105
24106            Child(&'de crate::wire::ChildRef<'de>),
24107
24108            Collection(&'de crate::wire::CollectionRef<'de>),
24109
24110            Framework(&'de crate::wire::FrameworkRef),
24111
24112            Capability(&'de crate::wire::CapabilityRef<'de>),
24113
24114            Debug(&'de crate::wire::DebugRef),
24115
24116            VoidType(&'de crate::wire::VoidRef),
24117
24118            Environment(&'de crate::wire::EnvironmentRef),
24119
24120            UnknownOrdinal_(u64),
24121        }
24122    }
24123
24124    impl<'de> Ref<'de> {
24125        pub fn as_ref(&self) -> crate::wire::ref_::Ref<'_> {
24126            match self.raw.ordinal() {
24127                1 => crate::wire::ref_::Ref::Parent(unsafe {
24128                    self.raw.get().deref_unchecked::<crate::wire::ParentRef>()
24129                }),
24130
24131                2 => crate::wire::ref_::Ref::Self_(unsafe {
24132                    self.raw.get().deref_unchecked::<crate::wire::SelfRef>()
24133                }),
24134
24135                3 => crate::wire::ref_::Ref::Child(unsafe {
24136                    self.raw.get().deref_unchecked::<crate::wire::ChildRef<'_>>()
24137                }),
24138
24139                4 => crate::wire::ref_::Ref::Collection(unsafe {
24140                    self.raw.get().deref_unchecked::<crate::wire::CollectionRef<'_>>()
24141                }),
24142
24143                5 => crate::wire::ref_::Ref::Framework(unsafe {
24144                    self.raw.get().deref_unchecked::<crate::wire::FrameworkRef>()
24145                }),
24146
24147                6 => crate::wire::ref_::Ref::Capability(unsafe {
24148                    self.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'_>>()
24149                }),
24150
24151                7 => crate::wire::ref_::Ref::Debug(unsafe {
24152                    self.raw.get().deref_unchecked::<crate::wire::DebugRef>()
24153                }),
24154
24155                8 => crate::wire::ref_::Ref::VoidType(unsafe {
24156                    self.raw.get().deref_unchecked::<crate::wire::VoidRef>()
24157                }),
24158
24159                9 => crate::wire::ref_::Ref::Environment(unsafe {
24160                    self.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>()
24161                }),
24162
24163                unknown => crate::wire::ref_::Ref::UnknownOrdinal_(unknown),
24164            }
24165        }
24166    }
24167
24168    unsafe impl<___D> ::fidl_next::Decode<___D> for Ref<'static>
24169    where
24170        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
24171        ___D: ::fidl_next::Decoder,
24172    {
24173        fn decode(
24174            mut slot: ::fidl_next::Slot<'_, Self>,
24175            decoder: &mut ___D,
24176            _: (),
24177        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24178            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
24179            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
24180                1 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::ParentRef>(
24181                    raw,
24182                    decoder,
24183                    (),
24184                )?,
24185
24186                2 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::SelfRef>(
24187                    raw,
24188                    decoder,
24189                    (),
24190                )?,
24191
24192                3 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::ChildRef<'static>>(
24193                    raw,
24194                    decoder,
24195                    (),
24196                )?,
24197
24198                4 => ::fidl_next::RawWireUnion::decode_as::<
24199                    ___D,
24200                    crate::wire::CollectionRef<'static>,
24201                >(raw, decoder, ())?,
24202
24203                5 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::FrameworkRef>(
24204                    raw,
24205                    decoder,
24206                    (),
24207                )?,
24208
24209                6 => ::fidl_next::RawWireUnion::decode_as::<
24210                    ___D,
24211                    crate::wire::CapabilityRef<'static>,
24212                >(raw, decoder, ())?,
24213
24214                7 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::DebugRef>(
24215                    raw,
24216                    decoder,
24217                    (),
24218                )?,
24219
24220                8 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::VoidRef>(
24221                    raw,
24222                    decoder,
24223                    (),
24224                )?,
24225
24226                9 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::EnvironmentRef>(
24227                    raw,
24228                    decoder,
24229                    (),
24230                )?,
24231
24232                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
24233            }
24234
24235            Ok(())
24236        }
24237    }
24238
24239    impl<'de> ::core::fmt::Debug for Ref<'de> {
24240        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24241            match self.raw.ordinal() {
24242                1 => unsafe { self.raw.get().deref_unchecked::<crate::wire::ParentRef>().fmt(f) },
24243                2 => unsafe { self.raw.get().deref_unchecked::<crate::wire::SelfRef>().fmt(f) },
24244                3 => unsafe {
24245                    self.raw.get().deref_unchecked::<crate::wire::ChildRef<'_>>().fmt(f)
24246                },
24247                4 => unsafe {
24248                    self.raw.get().deref_unchecked::<crate::wire::CollectionRef<'_>>().fmt(f)
24249                },
24250                5 => unsafe {
24251                    self.raw.get().deref_unchecked::<crate::wire::FrameworkRef>().fmt(f)
24252                },
24253                6 => unsafe {
24254                    self.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'_>>().fmt(f)
24255                },
24256                7 => unsafe { self.raw.get().deref_unchecked::<crate::wire::DebugRef>().fmt(f) },
24257                8 => unsafe { self.raw.get().deref_unchecked::<crate::wire::VoidRef>().fmt(f) },
24258                9 => unsafe {
24259                    self.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>().fmt(f)
24260                },
24261                _ => unsafe { ::core::hint::unreachable_unchecked() },
24262            }
24263        }
24264    }
24265
24266    impl<'de> ::fidl_next::IntoNatural for Ref<'de> {
24267        type Natural = crate::natural::Ref;
24268    }
24269
24270    impl ::fidl_next::Unconstrained for Ref<'static> {}
24271
24272    /// The wire type corresponding to [`Storage`].
24273    #[repr(C)]
24274    pub struct Storage<'de> {
24275        pub(crate) table: ::fidl_next::WireTable<'de>,
24276    }
24277
24278    impl<'de> Drop for Storage<'de> {
24279        fn drop(&mut self) {
24280            let _ = self.table.get(1).map(|envelope| unsafe {
24281                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
24282            });
24283
24284            let _ = self
24285                .table
24286                .get(2)
24287                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
24288
24289            let _ = self.table.get(3).map(|envelope| unsafe {
24290                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
24291            });
24292
24293            let _ = self.table.get(4).map(|envelope| unsafe {
24294                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
24295            });
24296
24297            let _ = self
24298                .table
24299                .get(5)
24300                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::StorageId>() });
24301        }
24302    }
24303
24304    unsafe impl ::fidl_next::Wire for Storage<'static> {
24305        type Owned<'de> = Storage<'de>;
24306
24307        #[inline]
24308        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24309            ::fidl_next::munge!(let Self { table } = out);
24310            ::fidl_next::WireTable::zero_padding(table);
24311        }
24312    }
24313
24314    unsafe impl<___D> ::fidl_next::Decode<___D> for Storage<'static>
24315    where
24316        ___D: ::fidl_next::Decoder + ?Sized,
24317    {
24318        fn decode(
24319            slot: ::fidl_next::Slot<'_, Self>,
24320            decoder: &mut ___D,
24321            _: (),
24322        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24323            ::fidl_next::munge!(let Self { table } = slot);
24324
24325            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24326                match ordinal {
24327                    0 => unsafe { ::core::hint::unreachable_unchecked() },
24328
24329                    1 => {
24330                        ::fidl_next::WireEnvelope::decode_as::<
24331                            ___D,
24332                            ::fidl_next::WireString<'static>,
24333                        >(slot.as_mut(), decoder, 100)?;
24334
24335                        let value = unsafe {
24336                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
24337                        };
24338
24339                        if value.len() > 100 {
24340                            return Err(::fidl_next::DecodeError::VectorTooLong {
24341                                size: value.len() as u64,
24342                                limit: 100,
24343                            });
24344                        }
24345
24346                        Ok(())
24347                    }
24348
24349                    2 => {
24350                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
24351                            slot.as_mut(),
24352                            decoder,
24353                            (),
24354                        )?;
24355
24356                        Ok(())
24357                    }
24358
24359                    3 => {
24360                        ::fidl_next::WireEnvelope::decode_as::<
24361                            ___D,
24362                            ::fidl_next::WireString<'static>,
24363                        >(slot.as_mut(), decoder, 100)?;
24364
24365                        let value = unsafe {
24366                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
24367                        };
24368
24369                        if value.len() > 100 {
24370                            return Err(::fidl_next::DecodeError::VectorTooLong {
24371                                size: value.len() as u64,
24372                                limit: 100,
24373                            });
24374                        }
24375
24376                        Ok(())
24377                    }
24378
24379                    4 => {
24380                        ::fidl_next::WireEnvelope::decode_as::<
24381                            ___D,
24382                            ::fidl_next::WireString<'static>,
24383                        >(slot.as_mut(), decoder, 1024)?;
24384
24385                        let value = unsafe {
24386                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
24387                        };
24388
24389                        if value.len() > 1024 {
24390                            return Err(::fidl_next::DecodeError::VectorTooLong {
24391                                size: value.len() as u64,
24392                                limit: 1024,
24393                            });
24394                        }
24395
24396                        Ok(())
24397                    }
24398
24399                    5 => {
24400                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::StorageId>(
24401                            slot.as_mut(),
24402                            decoder,
24403                            (),
24404                        )?;
24405
24406                        Ok(())
24407                    }
24408
24409                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
24410                }
24411            })
24412        }
24413    }
24414
24415    impl<'de> Storage<'de> {
24416        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
24417            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24418        }
24419
24420        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
24421            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24422        }
24423
24424        pub fn backing_dir(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
24425            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
24426        }
24427
24428        pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
24429            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
24430        }
24431
24432        pub fn storage_id(&self) -> ::core::option::Option<&crate::wire::StorageId> {
24433            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
24434        }
24435    }
24436
24437    impl<'de> ::core::fmt::Debug for Storage<'de> {
24438        fn fmt(
24439            &self,
24440            f: &mut ::core::fmt::Formatter<'_>,
24441        ) -> ::core::result::Result<(), ::core::fmt::Error> {
24442            f.debug_struct("Storage")
24443                .field("name", &self.name())
24444                .field("source", &self.source())
24445                .field("backing_dir", &self.backing_dir())
24446                .field("subdir", &self.subdir())
24447                .field("storage_id", &self.storage_id())
24448                .finish()
24449        }
24450    }
24451
24452    impl<'de> ::fidl_next::IntoNatural for Storage<'de> {
24453        type Natural = crate::natural::Storage;
24454    }
24455
24456    impl ::fidl_next::Unconstrained for Storage<'_> {}
24457
24458    /// The wire type corresponding to [`Dictionary`].
24459    #[repr(C)]
24460    pub struct Dictionary<'de> {
24461        pub(crate) table: ::fidl_next::WireTable<'de>,
24462    }
24463
24464    impl<'de> Drop for Dictionary<'de> {
24465        fn drop(&mut self) {
24466            let _ = self.table.get(1).map(|envelope| unsafe {
24467                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
24468            });
24469
24470            let _ = self
24471                .table
24472                .get(2)
24473                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
24474
24475            let _ = self.table.get(3).map(|envelope| unsafe {
24476                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
24477            });
24478
24479            let _ = self.table.get(4).map(|envelope| unsafe {
24480                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
24481            });
24482        }
24483    }
24484
24485    unsafe impl ::fidl_next::Wire for Dictionary<'static> {
24486        type Owned<'de> = Dictionary<'de>;
24487
24488        #[inline]
24489        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24490            ::fidl_next::munge!(let Self { table } = out);
24491            ::fidl_next::WireTable::zero_padding(table);
24492        }
24493    }
24494
24495    unsafe impl<___D> ::fidl_next::Decode<___D> for Dictionary<'static>
24496    where
24497        ___D: ::fidl_next::Decoder + ?Sized,
24498    {
24499        fn decode(
24500            slot: ::fidl_next::Slot<'_, Self>,
24501            decoder: &mut ___D,
24502            _: (),
24503        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24504            ::fidl_next::munge!(let Self { table } = slot);
24505
24506            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24507                match ordinal {
24508                    0 => unsafe { ::core::hint::unreachable_unchecked() },
24509
24510                    1 => {
24511                        ::fidl_next::WireEnvelope::decode_as::<
24512                            ___D,
24513                            ::fidl_next::WireString<'static>,
24514                        >(slot.as_mut(), decoder, 100)?;
24515
24516                        let value = unsafe {
24517                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
24518                        };
24519
24520                        if value.len() > 100 {
24521                            return Err(::fidl_next::DecodeError::VectorTooLong {
24522                                size: value.len() as u64,
24523                                limit: 100,
24524                            });
24525                        }
24526
24527                        Ok(())
24528                    }
24529
24530                    2 => {
24531                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
24532                            slot.as_mut(),
24533                            decoder,
24534                            (),
24535                        )?;
24536
24537                        Ok(())
24538                    }
24539
24540                    3 => {
24541                        ::fidl_next::WireEnvelope::decode_as::<
24542                            ___D,
24543                            ::fidl_next::WireString<'static>,
24544                        >(slot.as_mut(), decoder, 1024)?;
24545
24546                        let value = unsafe {
24547                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
24548                        };
24549
24550                        if value.len() > 1024 {
24551                            return Err(::fidl_next::DecodeError::VectorTooLong {
24552                                size: value.len() as u64,
24553                                limit: 1024,
24554                            });
24555                        }
24556
24557                        Ok(())
24558                    }
24559
24560                    4 => {
24561                        ::fidl_next::WireEnvelope::decode_as::<
24562                            ___D,
24563                            ::fidl_next::WireString<'static>,
24564                        >(slot.as_mut(), decoder, 1024)?;
24565
24566                        let value = unsafe {
24567                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
24568                        };
24569
24570                        if value.len() > 1024 {
24571                            return Err(::fidl_next::DecodeError::VectorTooLong {
24572                                size: value.len() as u64,
24573                                limit: 1024,
24574                            });
24575                        }
24576
24577                        Ok(())
24578                    }
24579
24580                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
24581                }
24582            })
24583        }
24584    }
24585
24586    impl<'de> Dictionary<'de> {
24587        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
24588            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24589        }
24590
24591        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
24592            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24593        }
24594
24595        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
24596            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
24597        }
24598
24599        pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
24600            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
24601        }
24602    }
24603
24604    impl<'de> ::core::fmt::Debug for Dictionary<'de> {
24605        fn fmt(
24606            &self,
24607            f: &mut ::core::fmt::Formatter<'_>,
24608        ) -> ::core::result::Result<(), ::core::fmt::Error> {
24609            f.debug_struct("Dictionary")
24610                .field("name", &self.name())
24611                .field("source", &self.source())
24612                .field("source_dictionary", &self.source_dictionary())
24613                .field("source_path", &self.source_path())
24614                .finish()
24615        }
24616    }
24617
24618    impl<'de> ::fidl_next::IntoNatural for Dictionary<'de> {
24619        type Natural = crate::natural::Dictionary;
24620    }
24621
24622    impl ::fidl_next::Unconstrained for Dictionary<'_> {}
24623
24624    /// The wire type corresponding to [`Capability`].
24625    #[repr(transparent)]
24626    pub struct Capability<'de> {
24627        pub(crate) raw: ::fidl_next::RawWireUnion,
24628        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
24629    }
24630
24631    impl<'de> Drop for Capability<'de> {
24632        fn drop(&mut self) {
24633            match self.raw.ordinal() {
24634                1 => {
24635                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Service<'de>>() };
24636                }
24637
24638                2 => {
24639                    let _ =
24640                        unsafe { self.raw.get().read_unchecked::<crate::wire::Protocol<'de>>() };
24641                }
24642
24643                3 => {
24644                    let _ =
24645                        unsafe { self.raw.get().read_unchecked::<crate::wire::Directory<'de>>() };
24646                }
24647
24648                4 => {
24649                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Storage<'de>>() };
24650                }
24651
24652                5 => {
24653                    let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Runner<'de>>() };
24654                }
24655
24656                6 => {
24657                    let _ =
24658                        unsafe { self.raw.get().read_unchecked::<crate::wire::Resolver<'de>>() };
24659                }
24660
24661                8 => {
24662                    let _ =
24663                        unsafe { self.raw.get().read_unchecked::<crate::wire::EventStream<'de>>() };
24664                }
24665
24666                9 => {
24667                    let _ =
24668                        unsafe { self.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>() };
24669                }
24670
24671                10 => {
24672                    let _ = unsafe {
24673                        self.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
24674                    };
24675                }
24676
24677                _ => (),
24678            }
24679        }
24680    }
24681
24682    unsafe impl ::fidl_next::Wire for Capability<'static> {
24683        type Owned<'de> = Capability<'de>;
24684
24685        #[inline]
24686        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24687            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
24688            ::fidl_next::RawWireUnion::zero_padding(raw);
24689        }
24690    }
24691
24692    pub mod capability {
24693        pub enum Ref<'de> {
24694            Service(&'de crate::wire::Service<'de>),
24695
24696            Protocol(&'de crate::wire::Protocol<'de>),
24697
24698            Directory(&'de crate::wire::Directory<'de>),
24699
24700            Storage(&'de crate::wire::Storage<'de>),
24701
24702            Runner(&'de crate::wire::Runner<'de>),
24703
24704            Resolver(&'de crate::wire::Resolver<'de>),
24705
24706            EventStream(&'de crate::wire::EventStream<'de>),
24707
24708            Dictionary(&'de crate::wire::Dictionary<'de>),
24709
24710            Config(&'de crate::wire::Configuration<'de>),
24711
24712            UnknownOrdinal_(u64),
24713        }
24714    }
24715
24716    impl<'de> Capability<'de> {
24717        pub fn as_ref(&self) -> crate::wire::capability::Ref<'_> {
24718            match self.raw.ordinal() {
24719                1 => crate::wire::capability::Ref::Service(unsafe {
24720                    self.raw.get().deref_unchecked::<crate::wire::Service<'_>>()
24721                }),
24722
24723                2 => crate::wire::capability::Ref::Protocol(unsafe {
24724                    self.raw.get().deref_unchecked::<crate::wire::Protocol<'_>>()
24725                }),
24726
24727                3 => crate::wire::capability::Ref::Directory(unsafe {
24728                    self.raw.get().deref_unchecked::<crate::wire::Directory<'_>>()
24729                }),
24730
24731                4 => crate::wire::capability::Ref::Storage(unsafe {
24732                    self.raw.get().deref_unchecked::<crate::wire::Storage<'_>>()
24733                }),
24734
24735                5 => crate::wire::capability::Ref::Runner(unsafe {
24736                    self.raw.get().deref_unchecked::<crate::wire::Runner<'_>>()
24737                }),
24738
24739                6 => crate::wire::capability::Ref::Resolver(unsafe {
24740                    self.raw.get().deref_unchecked::<crate::wire::Resolver<'_>>()
24741                }),
24742
24743                8 => crate::wire::capability::Ref::EventStream(unsafe {
24744                    self.raw.get().deref_unchecked::<crate::wire::EventStream<'_>>()
24745                }),
24746
24747                9 => crate::wire::capability::Ref::Dictionary(unsafe {
24748                    self.raw.get().deref_unchecked::<crate::wire::Dictionary<'_>>()
24749                }),
24750
24751                10 => crate::wire::capability::Ref::Config(unsafe {
24752                    self.raw.get().deref_unchecked::<crate::wire::Configuration<'_>>()
24753                }),
24754
24755                unknown => crate::wire::capability::Ref::UnknownOrdinal_(unknown),
24756            }
24757        }
24758    }
24759
24760    unsafe impl<___D> ::fidl_next::Decode<___D> for Capability<'static>
24761    where
24762        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
24763        ___D: ::fidl_next::Decoder,
24764    {
24765        fn decode(
24766            mut slot: ::fidl_next::Slot<'_, Self>,
24767            decoder: &mut ___D,
24768            _: (),
24769        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24770            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
24771            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
24772                1 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Service<'static>>(
24773                    raw,
24774                    decoder,
24775                    (),
24776                )?,
24777
24778                2 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Protocol<'static>>(
24779                    raw,
24780                    decoder,
24781                    (),
24782                )?,
24783
24784                3 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Directory<'static>>(
24785                    raw,
24786                    decoder,
24787                    (),
24788                )?,
24789
24790                4 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Storage<'static>>(
24791                    raw,
24792                    decoder,
24793                    (),
24794                )?,
24795
24796                5 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Runner<'static>>(
24797                    raw,
24798                    decoder,
24799                    (),
24800                )?,
24801
24802                6 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Resolver<'static>>(
24803                    raw,
24804                    decoder,
24805                    (),
24806                )?,
24807
24808                8 => {
24809                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::EventStream<'static>>(
24810                        raw,
24811                        decoder,
24812                        (),
24813                    )?
24814                }
24815
24816                9 => {
24817                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Dictionary<'static>>(
24818                        raw,
24819                        decoder,
24820                        (),
24821                    )?
24822                }
24823
24824                10 => ::fidl_next::RawWireUnion::decode_as::<
24825                    ___D,
24826                    crate::wire::Configuration<'static>,
24827                >(raw, decoder, ())?,
24828
24829                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
24830            }
24831
24832            Ok(())
24833        }
24834    }
24835
24836    impl<'de> ::core::fmt::Debug for Capability<'de> {
24837        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24838            match self.raw.ordinal() {
24839                1 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Service<'_>>().fmt(f) },
24840                2 => unsafe {
24841                    self.raw.get().deref_unchecked::<crate::wire::Protocol<'_>>().fmt(f)
24842                },
24843                3 => unsafe {
24844                    self.raw.get().deref_unchecked::<crate::wire::Directory<'_>>().fmt(f)
24845                },
24846                4 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Storage<'_>>().fmt(f) },
24847                5 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Runner<'_>>().fmt(f) },
24848                6 => unsafe {
24849                    self.raw.get().deref_unchecked::<crate::wire::Resolver<'_>>().fmt(f)
24850                },
24851                8 => unsafe {
24852                    self.raw.get().deref_unchecked::<crate::wire::EventStream<'_>>().fmt(f)
24853                },
24854                9 => unsafe {
24855                    self.raw.get().deref_unchecked::<crate::wire::Dictionary<'_>>().fmt(f)
24856                },
24857                10 => unsafe {
24858                    self.raw.get().deref_unchecked::<crate::wire::Configuration<'_>>().fmt(f)
24859                },
24860                _ => unsafe { ::core::hint::unreachable_unchecked() },
24861            }
24862        }
24863    }
24864
24865    impl<'de> ::fidl_next::IntoNatural for Capability<'de> {
24866        type Natural = crate::natural::Capability;
24867    }
24868
24869    impl ::fidl_next::Unconstrained for Capability<'static> {}
24870
24871    /// The wire type corresponding to [`StartupMode`].
24872    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
24873    #[repr(transparent)]
24874    pub struct StartupMode {
24875        pub(crate) value: ::fidl_next::WireU32,
24876    }
24877
24878    unsafe impl ::fidl_next::Wire for StartupMode {
24879        type Owned<'de> = Self;
24880
24881        #[inline]
24882        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
24883            // Wire enums have no padding
24884        }
24885    }
24886
24887    impl StartupMode {
24888        pub const LAZY: StartupMode = StartupMode { value: ::fidl_next::WireU32(0) };
24889
24890        pub const EAGER: StartupMode = StartupMode { value: ::fidl_next::WireU32(1) };
24891    }
24892
24893    unsafe impl<___D> ::fidl_next::Decode<___D> for StartupMode
24894    where
24895        ___D: ?Sized,
24896    {
24897        fn decode(
24898            slot: ::fidl_next::Slot<'_, Self>,
24899            _: &mut ___D,
24900            _: (),
24901        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24902            ::fidl_next::munge!(let Self { value } = slot);
24903
24904            match u32::from(*value) {
24905                0 | 1 => (),
24906                unknown => {
24907                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
24908                }
24909            }
24910
24911            Ok(())
24912        }
24913    }
24914
24915    impl ::core::convert::From<crate::natural::StartupMode> for StartupMode {
24916        fn from(natural: crate::natural::StartupMode) -> Self {
24917            match natural {
24918                crate::natural::StartupMode::Lazy => StartupMode::LAZY,
24919
24920                crate::natural::StartupMode::Eager => StartupMode::EAGER,
24921            }
24922        }
24923    }
24924
24925    impl ::fidl_next::IntoNatural for StartupMode {
24926        type Natural = crate::natural::StartupMode;
24927    }
24928
24929    impl ::fidl_next::Unconstrained for StartupMode {}
24930
24931    /// The wire type corresponding to [`OnTerminate`].
24932    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
24933    #[repr(transparent)]
24934    pub struct OnTerminate {
24935        pub(crate) value: ::fidl_next::WireU32,
24936    }
24937
24938    unsafe impl ::fidl_next::Wire for OnTerminate {
24939        type Owned<'de> = Self;
24940
24941        #[inline]
24942        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
24943            // Wire enums have no padding
24944        }
24945    }
24946
24947    impl OnTerminate {
24948        pub const NONE: OnTerminate = OnTerminate { value: ::fidl_next::WireU32(0) };
24949
24950        pub const REBOOT: OnTerminate = OnTerminate { value: ::fidl_next::WireU32(1) };
24951    }
24952
24953    unsafe impl<___D> ::fidl_next::Decode<___D> for OnTerminate
24954    where
24955        ___D: ?Sized,
24956    {
24957        fn decode(
24958            slot: ::fidl_next::Slot<'_, Self>,
24959            _: &mut ___D,
24960            _: (),
24961        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24962            ::fidl_next::munge!(let Self { value } = slot);
24963
24964            match u32::from(*value) {
24965                0 | 1 => (),
24966                unknown => {
24967                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
24968                }
24969            }
24970
24971            Ok(())
24972        }
24973    }
24974
24975    impl ::core::convert::From<crate::natural::OnTerminate> for OnTerminate {
24976        fn from(natural: crate::natural::OnTerminate) -> Self {
24977            match natural {
24978                crate::natural::OnTerminate::None => OnTerminate::NONE,
24979
24980                crate::natural::OnTerminate::Reboot => OnTerminate::REBOOT,
24981            }
24982        }
24983    }
24984
24985    impl ::fidl_next::IntoNatural for OnTerminate {
24986        type Natural = crate::natural::OnTerminate;
24987    }
24988
24989    impl ::fidl_next::Unconstrained for OnTerminate {}
24990
24991    /// The wire type corresponding to [`ConfigKey`](crate::natural::ConfigKey).
24992    pub type ConfigKey<'de> = ::fidl_next::WireString<'de>;
24993
24994    /// The wire type corresponding to [`ConfigOverride`].
24995    #[repr(C)]
24996    pub struct ConfigOverride<'de> {
24997        pub(crate) table: ::fidl_next::WireTable<'de>,
24998    }
24999
25000    impl<'de> Drop for ConfigOverride<'de> {
25001        fn drop(&mut self) {
25002            let _ = self.table.get(1).map(|envelope| unsafe {
25003                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
25004            });
25005
25006            let _ = self.table.get(2).map(|envelope| unsafe {
25007                envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
25008            });
25009        }
25010    }
25011
25012    unsafe impl ::fidl_next::Wire for ConfigOverride<'static> {
25013        type Owned<'de> = ConfigOverride<'de>;
25014
25015        #[inline]
25016        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25017            ::fidl_next::munge!(let Self { table } = out);
25018            ::fidl_next::WireTable::zero_padding(table);
25019        }
25020    }
25021
25022    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigOverride<'static>
25023    where
25024        ___D: ::fidl_next::Decoder + ?Sized,
25025    {
25026        fn decode(
25027            slot: ::fidl_next::Slot<'_, Self>,
25028            decoder: &mut ___D,
25029            _: (),
25030        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25031            ::fidl_next::munge!(let Self { table } = slot);
25032
25033            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
25034                match ordinal {
25035                    0 => unsafe { ::core::hint::unreachable_unchecked() },
25036
25037                    1 => {
25038                        ::fidl_next::WireEnvelope::decode_as::<
25039                            ___D,
25040                            ::fidl_next::WireString<'static>,
25041                        >(slot.as_mut(), decoder, 64)?;
25042
25043                        let value = unsafe {
25044                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
25045                        };
25046
25047                        if value.len() > 64 {
25048                            return Err(::fidl_next::DecodeError::VectorTooLong {
25049                                size: value.len() as u64,
25050                                limit: 64,
25051                            });
25052                        }
25053
25054                        Ok(())
25055                    }
25056
25057                    2 => {
25058                        ::fidl_next::WireEnvelope::decode_as::<
25059                            ___D,
25060                            crate::wire::ConfigValue<'static>,
25061                        >(slot.as_mut(), decoder, ())?;
25062
25063                        Ok(())
25064                    }
25065
25066                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
25067                }
25068            })
25069        }
25070    }
25071
25072    impl<'de> ConfigOverride<'de> {
25073        pub fn key(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
25074            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
25075        }
25076
25077        pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
25078            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
25079        }
25080    }
25081
25082    impl<'de> ::core::fmt::Debug for ConfigOverride<'de> {
25083        fn fmt(
25084            &self,
25085            f: &mut ::core::fmt::Formatter<'_>,
25086        ) -> ::core::result::Result<(), ::core::fmt::Error> {
25087            f.debug_struct("ConfigOverride")
25088                .field("key", &self.key())
25089                .field("value", &self.value())
25090                .finish()
25091        }
25092    }
25093
25094    impl<'de> ::fidl_next::IntoNatural for ConfigOverride<'de> {
25095        type Natural = crate::natural::ConfigOverride;
25096    }
25097
25098    impl ::fidl_next::Unconstrained for ConfigOverride<'_> {}
25099
25100    /// The wire type corresponding to [`Child`].
25101    #[repr(C)]
25102    pub struct Child<'de> {
25103        pub(crate) table: ::fidl_next::WireTable<'de>,
25104    }
25105
25106    impl<'de> Drop for Child<'de> {
25107        fn drop(&mut self) {
25108            let _ = self.table.get(1).map(|envelope| unsafe {
25109                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
25110            });
25111
25112            let _ = self.table.get(2).map(|envelope| unsafe {
25113                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
25114            });
25115
25116            let _ = self
25117                .table
25118                .get(3)
25119                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::StartupMode>() });
25120
25121            let _ = self.table.get(4).map(|envelope| unsafe {
25122                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
25123            });
25124
25125            let _ = self
25126                .table
25127                .get(5)
25128                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::OnTerminate>() });
25129
25130            let _ = self.table.get(6)
25131                .map(|envelope| unsafe {
25132                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigOverride<'de>>>()
25133                });
25134        }
25135    }
25136
25137    unsafe impl ::fidl_next::Wire for Child<'static> {
25138        type Owned<'de> = Child<'de>;
25139
25140        #[inline]
25141        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25142            ::fidl_next::munge!(let Self { table } = out);
25143            ::fidl_next::WireTable::zero_padding(table);
25144        }
25145    }
25146
25147    unsafe impl<___D> ::fidl_next::Decode<___D> for Child<'static>
25148    where
25149        ___D: ::fidl_next::Decoder + ?Sized,
25150    {
25151        fn decode(
25152            slot: ::fidl_next::Slot<'_, Self>,
25153            decoder: &mut ___D,
25154            _: (),
25155        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25156            ::fidl_next::munge!(let Self { table } = slot);
25157
25158            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
25159                match ordinal {
25160                    0 => unsafe { ::core::hint::unreachable_unchecked() },
25161
25162                    1 => {
25163                        ::fidl_next::WireEnvelope::decode_as::<
25164                            ___D,
25165                            ::fidl_next::WireString<'static>,
25166                        >(slot.as_mut(), decoder, 1024)?;
25167
25168                        let value = unsafe {
25169                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
25170                        };
25171
25172                        if value.len() > 1024 {
25173                            return Err(::fidl_next::DecodeError::VectorTooLong {
25174                                size: value.len() as u64,
25175                                limit: 1024,
25176                            });
25177                        }
25178
25179                        Ok(())
25180                    }
25181
25182                    2 => {
25183                        ::fidl_next::WireEnvelope::decode_as::<
25184                            ___D,
25185                            ::fidl_next::WireString<'static>,
25186                        >(slot.as_mut(), decoder, 4096)?;
25187
25188                        let value = unsafe {
25189                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
25190                        };
25191
25192                        if value.len() > 4096 {
25193                            return Err(::fidl_next::DecodeError::VectorTooLong {
25194                                size: value.len() as u64,
25195                                limit: 4096,
25196                            });
25197                        }
25198
25199                        Ok(())
25200                    }
25201
25202                    3 => {
25203                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::StartupMode>(
25204                            slot.as_mut(),
25205                            decoder,
25206                            (),
25207                        )?;
25208
25209                        Ok(())
25210                    }
25211
25212                    4 => {
25213                        ::fidl_next::WireEnvelope::decode_as::<
25214                            ___D,
25215                            ::fidl_next::WireString<'static>,
25216                        >(slot.as_mut(), decoder, 100)?;
25217
25218                        let value = unsafe {
25219                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
25220                        };
25221
25222                        if value.len() > 100 {
25223                            return Err(::fidl_next::DecodeError::VectorTooLong {
25224                                size: value.len() as u64,
25225                                limit: 100,
25226                            });
25227                        }
25228
25229                        Ok(())
25230                    }
25231
25232                    5 => {
25233                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::OnTerminate>(
25234                            slot.as_mut(),
25235                            decoder,
25236                            (),
25237                        )?;
25238
25239                        Ok(())
25240                    }
25241
25242                    6 => {
25243                        ::fidl_next::WireEnvelope::decode_as::<
25244                            ___D,
25245                            ::fidl_next::WireVector<'static, crate::wire::ConfigOverride<'static>>,
25246                        >(slot.as_mut(), decoder, (4294967295, ()))?;
25247
25248                        Ok(())
25249                    }
25250
25251                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
25252                }
25253            })
25254        }
25255    }
25256
25257    impl<'de> Child<'de> {
25258        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
25259            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
25260        }
25261
25262        pub fn url(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
25263            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
25264        }
25265
25266        pub fn startup(&self) -> ::core::option::Option<&crate::wire::StartupMode> {
25267            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
25268        }
25269
25270        pub fn environment(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
25271            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
25272        }
25273
25274        pub fn on_terminate(&self) -> ::core::option::Option<&crate::wire::OnTerminate> {
25275            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
25276        }
25277
25278        pub fn config_overrides(
25279            &self,
25280        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::ConfigOverride<'de>>>
25281        {
25282            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
25283        }
25284    }
25285
25286    impl<'de> ::core::fmt::Debug for Child<'de> {
25287        fn fmt(
25288            &self,
25289            f: &mut ::core::fmt::Formatter<'_>,
25290        ) -> ::core::result::Result<(), ::core::fmt::Error> {
25291            f.debug_struct("Child")
25292                .field("name", &self.name())
25293                .field("url", &self.url())
25294                .field("startup", &self.startup())
25295                .field("environment", &self.environment())
25296                .field("on_terminate", &self.on_terminate())
25297                .field("config_overrides", &self.config_overrides())
25298                .finish()
25299        }
25300    }
25301
25302    impl<'de> ::fidl_next::IntoNatural for Child<'de> {
25303        type Natural = crate::natural::Child;
25304    }
25305
25306    impl ::fidl_next::Unconstrained for Child<'_> {}
25307
25308    /// The wire type corresponding to [`Durability`].
25309    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25310    #[repr(transparent)]
25311    pub struct Durability {
25312        pub(crate) value: ::fidl_next::WireU32,
25313    }
25314
25315    unsafe impl ::fidl_next::Wire for Durability {
25316        type Owned<'de> = Self;
25317
25318        #[inline]
25319        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25320            // Wire enums have no padding
25321        }
25322    }
25323
25324    impl Durability {
25325        pub const TRANSIENT: Durability = Durability { value: ::fidl_next::WireU32(2) };
25326
25327        pub const SINGLE_RUN: Durability = Durability { value: ::fidl_next::WireU32(3) };
25328    }
25329
25330    unsafe impl<___D> ::fidl_next::Decode<___D> for Durability
25331    where
25332        ___D: ?Sized,
25333    {
25334        fn decode(
25335            slot: ::fidl_next::Slot<'_, Self>,
25336            _: &mut ___D,
25337            _: (),
25338        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25339            ::fidl_next::munge!(let Self { value } = slot);
25340
25341            match u32::from(*value) {
25342                2 | 3 => (),
25343                unknown => {
25344                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25345                }
25346            }
25347
25348            Ok(())
25349        }
25350    }
25351
25352    impl ::core::convert::From<crate::natural::Durability> for Durability {
25353        fn from(natural: crate::natural::Durability) -> Self {
25354            match natural {
25355                crate::natural::Durability::Transient => Durability::TRANSIENT,
25356
25357                crate::natural::Durability::SingleRun => Durability::SINGLE_RUN,
25358            }
25359        }
25360    }
25361
25362    impl ::fidl_next::IntoNatural for Durability {
25363        type Natural = crate::natural::Durability;
25364    }
25365
25366    impl ::fidl_next::Unconstrained for Durability {}
25367
25368    /// The wire type corresponding to [`Collection`].
25369    #[repr(C)]
25370    pub struct Collection<'de> {
25371        pub(crate) table: ::fidl_next::WireTable<'de>,
25372    }
25373
25374    impl<'de> Drop for Collection<'de> {
25375        fn drop(&mut self) {
25376            let _ = self.table.get(1).map(|envelope| unsafe {
25377                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
25378            });
25379
25380            let _ = self
25381                .table
25382                .get(2)
25383                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Durability>() });
25384
25385            let _ = self.table.get(3).map(|envelope| unsafe {
25386                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
25387            });
25388
25389            let _ = self
25390                .table
25391                .get(4)
25392                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::AllowedOffers>() });
25393
25394            let _ = self.table.get(5).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
25395
25396            let _ = self.table.get(6).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
25397        }
25398    }
25399
25400    unsafe impl ::fidl_next::Wire for Collection<'static> {
25401        type Owned<'de> = Collection<'de>;
25402
25403        #[inline]
25404        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25405            ::fidl_next::munge!(let Self { table } = out);
25406            ::fidl_next::WireTable::zero_padding(table);
25407        }
25408    }
25409
25410    unsafe impl<___D> ::fidl_next::Decode<___D> for Collection<'static>
25411    where
25412        ___D: ::fidl_next::Decoder + ?Sized,
25413    {
25414        fn decode(
25415            slot: ::fidl_next::Slot<'_, Self>,
25416            decoder: &mut ___D,
25417            _: (),
25418        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25419            ::fidl_next::munge!(let Self { table } = slot);
25420
25421            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
25422                match ordinal {
25423                    0 => unsafe { ::core::hint::unreachable_unchecked() },
25424
25425                    1 => {
25426                        ::fidl_next::WireEnvelope::decode_as::<
25427                            ___D,
25428                            ::fidl_next::WireString<'static>,
25429                        >(slot.as_mut(), decoder, 100)?;
25430
25431                        let value = unsafe {
25432                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
25433                        };
25434
25435                        if value.len() > 100 {
25436                            return Err(::fidl_next::DecodeError::VectorTooLong {
25437                                size: value.len() as u64,
25438                                limit: 100,
25439                            });
25440                        }
25441
25442                        Ok(())
25443                    }
25444
25445                    2 => {
25446                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Durability>(
25447                            slot.as_mut(),
25448                            decoder,
25449                            (),
25450                        )?;
25451
25452                        Ok(())
25453                    }
25454
25455                    3 => {
25456                        ::fidl_next::WireEnvelope::decode_as::<
25457                            ___D,
25458                            ::fidl_next::WireString<'static>,
25459                        >(slot.as_mut(), decoder, 100)?;
25460
25461                        let value = unsafe {
25462                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
25463                        };
25464
25465                        if value.len() > 100 {
25466                            return Err(::fidl_next::DecodeError::VectorTooLong {
25467                                size: value.len() as u64,
25468                                limit: 100,
25469                            });
25470                        }
25471
25472                        Ok(())
25473                    }
25474
25475                    4 => {
25476                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::AllowedOffers>(
25477                            slot.as_mut(),
25478                            decoder,
25479                            (),
25480                        )?;
25481
25482                        Ok(())
25483                    }
25484
25485                    5 => {
25486                        ::fidl_next::WireEnvelope::decode_as::<___D, bool>(
25487                            slot.as_mut(),
25488                            decoder,
25489                            (),
25490                        )?;
25491
25492                        Ok(())
25493                    }
25494
25495                    6 => {
25496                        ::fidl_next::WireEnvelope::decode_as::<___D, bool>(
25497                            slot.as_mut(),
25498                            decoder,
25499                            (),
25500                        )?;
25501
25502                        Ok(())
25503                    }
25504
25505                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
25506                }
25507            })
25508        }
25509    }
25510
25511    impl<'de> Collection<'de> {
25512        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
25513            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
25514        }
25515
25516        pub fn durability(&self) -> ::core::option::Option<&crate::wire::Durability> {
25517            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
25518        }
25519
25520        pub fn environment(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
25521            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
25522        }
25523
25524        pub fn allowed_offers(&self) -> ::core::option::Option<&crate::wire::AllowedOffers> {
25525            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
25526        }
25527
25528        pub fn allow_long_names(&self) -> ::core::option::Option<&bool> {
25529            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
25530        }
25531
25532        pub fn persistent_storage(&self) -> ::core::option::Option<&bool> {
25533            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
25534        }
25535    }
25536
25537    impl<'de> ::core::fmt::Debug for Collection<'de> {
25538        fn fmt(
25539            &self,
25540            f: &mut ::core::fmt::Formatter<'_>,
25541        ) -> ::core::result::Result<(), ::core::fmt::Error> {
25542            f.debug_struct("Collection")
25543                .field("name", &self.name())
25544                .field("durability", &self.durability())
25545                .field("environment", &self.environment())
25546                .field("allowed_offers", &self.allowed_offers())
25547                .field("allow_long_names", &self.allow_long_names())
25548                .field("persistent_storage", &self.persistent_storage())
25549                .finish()
25550        }
25551    }
25552
25553    impl<'de> ::fidl_next::IntoNatural for Collection<'de> {
25554        type Natural = crate::natural::Collection;
25555    }
25556
25557    impl ::fidl_next::Unconstrained for Collection<'_> {}
25558
25559    /// The wire type corresponding to [`DependencyType`].
25560    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25561    #[repr(transparent)]
25562    pub struct DependencyType {
25563        pub(crate) value: ::fidl_next::WireU32,
25564    }
25565
25566    unsafe impl ::fidl_next::Wire for DependencyType {
25567        type Owned<'de> = Self;
25568
25569        #[inline]
25570        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25571            // Wire enums have no padding
25572        }
25573    }
25574
25575    impl DependencyType {
25576        pub const STRONG: DependencyType = DependencyType { value: ::fidl_next::WireU32(1) };
25577
25578        pub const WEAK: DependencyType = DependencyType { value: ::fidl_next::WireU32(2) };
25579    }
25580
25581    unsafe impl<___D> ::fidl_next::Decode<___D> for DependencyType
25582    where
25583        ___D: ?Sized,
25584    {
25585        fn decode(
25586            slot: ::fidl_next::Slot<'_, Self>,
25587            _: &mut ___D,
25588            _: (),
25589        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25590            ::fidl_next::munge!(let Self { value } = slot);
25591
25592            match u32::from(*value) {
25593                1 | 2 => (),
25594                unknown => {
25595                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25596                }
25597            }
25598
25599            Ok(())
25600        }
25601    }
25602
25603    impl ::core::convert::From<crate::natural::DependencyType> for DependencyType {
25604        fn from(natural: crate::natural::DependencyType) -> Self {
25605            match natural {
25606                crate::natural::DependencyType::Strong => DependencyType::STRONG,
25607
25608                crate::natural::DependencyType::Weak => DependencyType::WEAK,
25609            }
25610        }
25611    }
25612
25613    impl ::fidl_next::IntoNatural for DependencyType {
25614        type Natural = crate::natural::DependencyType;
25615    }
25616
25617    impl ::fidl_next::Unconstrained for DependencyType {}
25618
25619    /// The wire type corresponding to [`NameMapping`].
25620    #[derive(Debug)]
25621    #[repr(C)]
25622    pub struct NameMapping<'de> {
25623        pub source_name: ::fidl_next::WireString<'de>,
25624
25625        pub target_name: ::fidl_next::WireString<'de>,
25626    }
25627
25628    static_assertions::const_assert_eq!(std::mem::size_of::<NameMapping<'_>>(), 32);
25629    static_assertions::const_assert_eq!(std::mem::align_of::<NameMapping<'_>>(), 8);
25630
25631    static_assertions::const_assert_eq!(std::mem::offset_of!(NameMapping<'_>, source_name), 0);
25632
25633    static_assertions::const_assert_eq!(std::mem::offset_of!(NameMapping<'_>, target_name), 16);
25634
25635    unsafe impl ::fidl_next::Wire for NameMapping<'static> {
25636        type Owned<'de> = NameMapping<'de>;
25637
25638        #[inline]
25639        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
25640            ::fidl_next::munge! {
25641                let Self {
25642
25643                    source_name,
25644                    target_name,
25645
25646                } = &mut *out_;
25647            }
25648
25649            ::fidl_next::Wire::zero_padding(source_name);
25650
25651            ::fidl_next::Wire::zero_padding(target_name);
25652        }
25653    }
25654
25655    unsafe impl<___D> ::fidl_next::Decode<___D> for NameMapping<'static>
25656    where
25657        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
25658        ___D: ::fidl_next::Decoder,
25659    {
25660        fn decode(
25661            slot_: ::fidl_next::Slot<'_, Self>,
25662            decoder_: &mut ___D,
25663            _: (),
25664        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25665            ::fidl_next::munge! {
25666                let Self {
25667
25668                    mut source_name,
25669                    mut target_name,
25670
25671                } = slot_;
25672            }
25673
25674            let _field = source_name.as_mut();
25675            ::fidl_next::Constrained::validate(_field, 100)?;
25676            ::fidl_next::Decode::decode(source_name.as_mut(), decoder_, 100)?;
25677
25678            let source_name = unsafe { source_name.deref_unchecked() };
25679
25680            if source_name.len() > 100 {
25681                return Err(::fidl_next::DecodeError::VectorTooLong {
25682                    size: source_name.len() as u64,
25683                    limit: 100,
25684                });
25685            }
25686
25687            let _field = target_name.as_mut();
25688            ::fidl_next::Constrained::validate(_field, 100)?;
25689            ::fidl_next::Decode::decode(target_name.as_mut(), decoder_, 100)?;
25690
25691            let target_name = unsafe { target_name.deref_unchecked() };
25692
25693            if target_name.len() > 100 {
25694                return Err(::fidl_next::DecodeError::VectorTooLong {
25695                    size: target_name.len() as u64,
25696                    limit: 100,
25697                });
25698            }
25699
25700            Ok(())
25701        }
25702    }
25703
25704    impl<'de> ::fidl_next::IntoNatural for NameMapping<'de> {
25705        type Natural = crate::natural::NameMapping;
25706    }
25707
25708    impl ::fidl_next::Unconstrained for NameMapping<'static> {}
25709
25710    /// The wire type corresponding to [`EnvironmentExtends`].
25711    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25712    #[repr(transparent)]
25713    pub struct EnvironmentExtends {
25714        pub(crate) value: ::fidl_next::WireU32,
25715    }
25716
25717    unsafe impl ::fidl_next::Wire for EnvironmentExtends {
25718        type Owned<'de> = Self;
25719
25720        #[inline]
25721        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25722            // Wire enums have no padding
25723        }
25724    }
25725
25726    impl EnvironmentExtends {
25727        pub const NONE: EnvironmentExtends = EnvironmentExtends { value: ::fidl_next::WireU32(0) };
25728
25729        pub const REALM: EnvironmentExtends = EnvironmentExtends { value: ::fidl_next::WireU32(1) };
25730    }
25731
25732    unsafe impl<___D> ::fidl_next::Decode<___D> for EnvironmentExtends
25733    where
25734        ___D: ?Sized,
25735    {
25736        fn decode(
25737            slot: ::fidl_next::Slot<'_, Self>,
25738            _: &mut ___D,
25739            _: (),
25740        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25741            ::fidl_next::munge!(let Self { value } = slot);
25742
25743            match u32::from(*value) {
25744                0 | 1 => (),
25745                unknown => {
25746                    return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25747                }
25748            }
25749
25750            Ok(())
25751        }
25752    }
25753
25754    impl ::core::convert::From<crate::natural::EnvironmentExtends> for EnvironmentExtends {
25755        fn from(natural: crate::natural::EnvironmentExtends) -> Self {
25756            match natural {
25757                crate::natural::EnvironmentExtends::None => EnvironmentExtends::NONE,
25758
25759                crate::natural::EnvironmentExtends::Realm => EnvironmentExtends::REALM,
25760            }
25761        }
25762    }
25763
25764    impl ::fidl_next::IntoNatural for EnvironmentExtends {
25765        type Natural = crate::natural::EnvironmentExtends;
25766    }
25767
25768    impl ::fidl_next::Unconstrained for EnvironmentExtends {}
25769
25770    /// The wire type corresponding to [`UrlScheme`](crate::natural::UrlScheme).
25771    pub type UrlScheme<'de> = ::fidl_next::WireString<'de>;
25772
25773    /// The wire type corresponding to [`ConfigTypeLayout`].
25774    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25775    #[repr(transparent)]
25776    pub struct ConfigTypeLayout {
25777        pub(crate) value: ::fidl_next::WireU32,
25778    }
25779
25780    unsafe impl ::fidl_next::Wire for ConfigTypeLayout {
25781        type Owned<'de> = Self;
25782
25783        #[inline]
25784        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25785            // Wire enums have no padding
25786        }
25787    }
25788
25789    impl ConfigTypeLayout {
25790        pub const BOOL: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(1) };
25791
25792        pub const UINT8: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(2) };
25793
25794        pub const UINT16: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(3) };
25795
25796        pub const UINT32: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(4) };
25797
25798        pub const UINT64: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(5) };
25799
25800        pub const INT8: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(6) };
25801
25802        pub const INT16: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(7) };
25803
25804        pub const INT32: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(8) };
25805
25806        pub const INT64: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(9) };
25807
25808        pub const STRING: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(10) };
25809
25810        pub const VECTOR: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::WireU32(11) };
25811    }
25812
25813    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigTypeLayout
25814    where
25815        ___D: ?Sized,
25816    {
25817        fn decode(
25818            slot: ::fidl_next::Slot<'_, Self>,
25819            _: &mut ___D,
25820            _: (),
25821        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25822            Ok(())
25823        }
25824    }
25825
25826    impl ::core::convert::From<crate::natural::ConfigTypeLayout> for ConfigTypeLayout {
25827        fn from(natural: crate::natural::ConfigTypeLayout) -> Self {
25828            match natural {
25829                crate::natural::ConfigTypeLayout::Bool => ConfigTypeLayout::BOOL,
25830
25831                crate::natural::ConfigTypeLayout::Uint8 => ConfigTypeLayout::UINT8,
25832
25833                crate::natural::ConfigTypeLayout::Uint16 => ConfigTypeLayout::UINT16,
25834
25835                crate::natural::ConfigTypeLayout::Uint32 => ConfigTypeLayout::UINT32,
25836
25837                crate::natural::ConfigTypeLayout::Uint64 => ConfigTypeLayout::UINT64,
25838
25839                crate::natural::ConfigTypeLayout::Int8 => ConfigTypeLayout::INT8,
25840
25841                crate::natural::ConfigTypeLayout::Int16 => ConfigTypeLayout::INT16,
25842
25843                crate::natural::ConfigTypeLayout::Int32 => ConfigTypeLayout::INT32,
25844
25845                crate::natural::ConfigTypeLayout::Int64 => ConfigTypeLayout::INT64,
25846
25847                crate::natural::ConfigTypeLayout::String => ConfigTypeLayout::STRING,
25848
25849                crate::natural::ConfigTypeLayout::Vector => ConfigTypeLayout::VECTOR,
25850
25851                crate::natural::ConfigTypeLayout::UnknownOrdinal_(value) => {
25852                    ConfigTypeLayout { value: ::fidl_next::WireU32::from(value) }
25853                }
25854            }
25855        }
25856    }
25857
25858    impl ::fidl_next::IntoNatural for ConfigTypeLayout {
25859        type Natural = crate::natural::ConfigTypeLayout;
25860    }
25861
25862    impl ::fidl_next::Unconstrained for ConfigTypeLayout {}
25863
25864    /// The wire type corresponding to [`LayoutConstraint`].
25865    #[repr(transparent)]
25866    pub struct LayoutConstraint<'de> {
25867        pub(crate) raw: ::fidl_next::RawWireUnion,
25868        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
25869    }
25870
25871    impl<'de> Drop for LayoutConstraint<'de> {
25872        fn drop(&mut self) {
25873            match self.raw.ordinal() {
25874                1 => {
25875                    let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::WireU32>() };
25876                }
25877
25878                _ => (),
25879            }
25880        }
25881    }
25882
25883    unsafe impl ::fidl_next::Wire for LayoutConstraint<'static> {
25884        type Owned<'de> = LayoutConstraint<'de>;
25885
25886        #[inline]
25887        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25888            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
25889            ::fidl_next::RawWireUnion::zero_padding(raw);
25890        }
25891    }
25892
25893    pub mod layout_constraint {
25894        pub enum Ref<'de> {
25895            MaxSize(&'de ::fidl_next::WireU32),
25896
25897            UnknownOrdinal_(u64),
25898        }
25899    }
25900
25901    impl<'de> LayoutConstraint<'de> {
25902        pub fn as_ref(&self) -> crate::wire::layout_constraint::Ref<'_> {
25903            match self.raw.ordinal() {
25904                1 => crate::wire::layout_constraint::Ref::MaxSize(unsafe {
25905                    self.raw.get().deref_unchecked::<::fidl_next::WireU32>()
25906                }),
25907
25908                unknown => crate::wire::layout_constraint::Ref::UnknownOrdinal_(unknown),
25909            }
25910        }
25911    }
25912
25913    unsafe impl<___D> ::fidl_next::Decode<___D> for LayoutConstraint<'static>
25914    where
25915        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
25916        ___D: ::fidl_next::Decoder,
25917    {
25918        fn decode(
25919            mut slot: ::fidl_next::Slot<'_, Self>,
25920            decoder: &mut ___D,
25921            _: (),
25922        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25923            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
25924            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
25925                1 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU32>(
25926                    raw,
25927                    decoder,
25928                    (),
25929                )?,
25930
25931                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
25932            }
25933
25934            Ok(())
25935        }
25936    }
25937
25938    impl<'de> ::core::fmt::Debug for LayoutConstraint<'de> {
25939        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25940            match self.raw.ordinal() {
25941                1 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::WireU32>().fmt(f) },
25942                _ => unsafe { ::core::hint::unreachable_unchecked() },
25943            }
25944        }
25945    }
25946
25947    impl<'de> ::fidl_next::IntoNatural for LayoutConstraint<'de> {
25948        type Natural = crate::natural::LayoutConstraint;
25949    }
25950
25951    impl ::fidl_next::Unconstrained for LayoutConstraint<'static> {}
25952
25953    /// The wire type corresponding to [`ConfigType`].
25954    #[derive(Debug)]
25955    #[repr(C)]
25956    pub struct ConfigType<'de> {
25957        pub layout: crate::wire::ConfigTypeLayout,
25958
25959        pub parameters: ::fidl_next::WireOptionalVector<'de, crate::wire::LayoutParameter<'de>>,
25960
25961        pub constraints: ::fidl_next::WireVector<'de, crate::wire::LayoutConstraint<'de>>,
25962    }
25963
25964    static_assertions::const_assert_eq!(std::mem::size_of::<ConfigType<'_>>(), 40);
25965    static_assertions::const_assert_eq!(std::mem::align_of::<ConfigType<'_>>(), 8);
25966
25967    static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, layout), 0);
25968
25969    static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, parameters), 8);
25970
25971    static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, constraints), 24);
25972
25973    unsafe impl ::fidl_next::Wire for ConfigType<'static> {
25974        type Owned<'de> = ConfigType<'de>;
25975
25976        #[inline]
25977        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
25978            ::fidl_next::munge! {
25979                let Self {
25980
25981                    layout,
25982                    parameters,
25983                    constraints,
25984
25985                } = &mut *out_;
25986            }
25987
25988            ::fidl_next::Wire::zero_padding(layout);
25989
25990            ::fidl_next::Wire::zero_padding(parameters);
25991
25992            ::fidl_next::Wire::zero_padding(constraints);
25993
25994            unsafe {
25995                out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
25996            }
25997        }
25998    }
25999
26000    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigType<'static>
26001    where
26002        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
26003        ___D: ::fidl_next::Decoder,
26004    {
26005        fn decode(
26006            slot_: ::fidl_next::Slot<'_, Self>,
26007            decoder_: &mut ___D,
26008            _: (),
26009        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26010            if slot_.as_bytes()[4..8] != [0u8; 4] {
26011                return Err(::fidl_next::DecodeError::InvalidPadding);
26012            }
26013
26014            ::fidl_next::munge! {
26015                let Self {
26016
26017                    mut layout,
26018                    mut parameters,
26019                    mut constraints,
26020
26021                } = slot_;
26022            }
26023
26024            let _field = layout.as_mut();
26025
26026            ::fidl_next::Decode::decode(layout.as_mut(), decoder_, ())?;
26027
26028            let _field = parameters.as_mut();
26029            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
26030            ::fidl_next::Decode::decode(parameters.as_mut(), decoder_, (4294967295, ()))?;
26031
26032            let _field = constraints.as_mut();
26033            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
26034            ::fidl_next::Decode::decode(constraints.as_mut(), decoder_, (4294967295, ()))?;
26035
26036            Ok(())
26037        }
26038    }
26039
26040    impl<'de> ::fidl_next::IntoNatural for ConfigType<'de> {
26041        type Natural = crate::natural::ConfigType;
26042    }
26043
26044    impl ::fidl_next::Unconstrained for ConfigType<'static> {}
26045
26046    /// The wire type corresponding to [`ConfigChecksum`].
26047    #[repr(transparent)]
26048    pub struct ConfigChecksum<'de> {
26049        pub(crate) raw: ::fidl_next::RawWireUnion,
26050        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
26051    }
26052
26053    impl<'de> Drop for ConfigChecksum<'de> {
26054        fn drop(&mut self) {
26055            match self.raw.ordinal() {
26056                1 => {
26057                    let _ = unsafe { self.raw.get().read_unchecked::<[u8; 32]>() };
26058                }
26059
26060                _ => (),
26061            }
26062        }
26063    }
26064
26065    unsafe impl ::fidl_next::Wire for ConfigChecksum<'static> {
26066        type Owned<'de> = ConfigChecksum<'de>;
26067
26068        #[inline]
26069        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26070            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
26071            ::fidl_next::RawWireUnion::zero_padding(raw);
26072        }
26073    }
26074
26075    pub mod config_checksum {
26076        pub enum Ref<'de> {
26077            Sha256(&'de [u8; 32]),
26078
26079            UnknownOrdinal_(u64),
26080        }
26081    }
26082
26083    impl<'de> ConfigChecksum<'de> {
26084        pub fn as_ref(&self) -> crate::wire::config_checksum::Ref<'_> {
26085            match self.raw.ordinal() {
26086                1 => crate::wire::config_checksum::Ref::Sha256(unsafe {
26087                    self.raw.get().deref_unchecked::<[u8; 32]>()
26088                }),
26089
26090                unknown => crate::wire::config_checksum::Ref::UnknownOrdinal_(unknown),
26091            }
26092        }
26093    }
26094
26095    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigChecksum<'static>
26096    where
26097        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
26098        ___D: ::fidl_next::Decoder,
26099    {
26100        fn decode(
26101            mut slot: ::fidl_next::Slot<'_, Self>,
26102            decoder: &mut ___D,
26103            _: (),
26104        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26105            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
26106            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
26107                1 => ::fidl_next::RawWireUnion::decode_as::<___D, [u8; 32]>(raw, decoder, ())?,
26108
26109                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
26110            }
26111
26112            Ok(())
26113        }
26114    }
26115
26116    impl<'de> ::core::fmt::Debug for ConfigChecksum<'de> {
26117        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26118            match self.raw.ordinal() {
26119                1 => unsafe { self.raw.get().deref_unchecked::<[u8; 32]>().fmt(f) },
26120                _ => unsafe { ::core::hint::unreachable_unchecked() },
26121            }
26122        }
26123    }
26124
26125    impl<'de> ::fidl_next::IntoNatural for ConfigChecksum<'de> {
26126        type Natural = crate::natural::ConfigChecksum;
26127    }
26128
26129    impl ::fidl_next::Unconstrained for ConfigChecksum<'static> {}
26130
26131    /// The wire type corresponding to [`UseStorage`].
26132    #[repr(C)]
26133    pub struct UseStorage<'de> {
26134        pub(crate) table: ::fidl_next::WireTable<'de>,
26135    }
26136
26137    impl<'de> Drop for UseStorage<'de> {
26138        fn drop(&mut self) {
26139            let _ = self.table.get(1).map(|envelope| unsafe {
26140                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26141            });
26142
26143            let _ = self.table.get(2).map(|envelope| unsafe {
26144                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26145            });
26146
26147            let _ = self
26148                .table
26149                .get(3)
26150                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26151        }
26152    }
26153
26154    unsafe impl ::fidl_next::Wire for UseStorage<'static> {
26155        type Owned<'de> = UseStorage<'de>;
26156
26157        #[inline]
26158        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26159            ::fidl_next::munge!(let Self { table } = out);
26160            ::fidl_next::WireTable::zero_padding(table);
26161        }
26162    }
26163
26164    unsafe impl<___D> ::fidl_next::Decode<___D> for UseStorage<'static>
26165    where
26166        ___D: ::fidl_next::Decoder + ?Sized,
26167    {
26168        fn decode(
26169            slot: ::fidl_next::Slot<'_, Self>,
26170            decoder: &mut ___D,
26171            _: (),
26172        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26173            ::fidl_next::munge!(let Self { table } = slot);
26174
26175            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26176                match ordinal {
26177                    0 => unsafe { ::core::hint::unreachable_unchecked() },
26178
26179                    1 => {
26180                        ::fidl_next::WireEnvelope::decode_as::<
26181                            ___D,
26182                            ::fidl_next::WireString<'static>,
26183                        >(slot.as_mut(), decoder, 100)?;
26184
26185                        let value = unsafe {
26186                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26187                        };
26188
26189                        if value.len() > 100 {
26190                            return Err(::fidl_next::DecodeError::VectorTooLong {
26191                                size: value.len() as u64,
26192                                limit: 100,
26193                            });
26194                        }
26195
26196                        Ok(())
26197                    }
26198
26199                    2 => {
26200                        ::fidl_next::WireEnvelope::decode_as::<
26201                            ___D,
26202                            ::fidl_next::WireString<'static>,
26203                        >(slot.as_mut(), decoder, 1024)?;
26204
26205                        let value = unsafe {
26206                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26207                        };
26208
26209                        if value.len() > 1024 {
26210                            return Err(::fidl_next::DecodeError::VectorTooLong {
26211                                size: value.len() as u64,
26212                                limit: 1024,
26213                            });
26214                        }
26215
26216                        Ok(())
26217                    }
26218
26219                    3 => {
26220                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
26221                            slot.as_mut(),
26222                            decoder,
26223                            (),
26224                        )?;
26225
26226                        Ok(())
26227                    }
26228
26229                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
26230                }
26231            })
26232        }
26233    }
26234
26235    impl<'de> UseStorage<'de> {
26236        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
26237            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26238        }
26239
26240        pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
26241            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26242        }
26243
26244        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
26245            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26246        }
26247    }
26248
26249    impl<'de> ::core::fmt::Debug for UseStorage<'de> {
26250        fn fmt(
26251            &self,
26252            f: &mut ::core::fmt::Formatter<'_>,
26253        ) -> ::core::result::Result<(), ::core::fmt::Error> {
26254            f.debug_struct("UseStorage")
26255                .field("source_name", &self.source_name())
26256                .field("target_path", &self.target_path())
26257                .field("availability", &self.availability())
26258                .finish()
26259        }
26260    }
26261
26262    impl<'de> ::fidl_next::IntoNatural for UseStorage<'de> {
26263        type Natural = crate::natural::UseStorage;
26264    }
26265
26266    impl ::fidl_next::Unconstrained for UseStorage<'_> {}
26267
26268    /// The wire type corresponding to [`ConfigMutability`](crate::natural::ConfigMutability).
26269    #[derive(Clone, Copy, Debug)]
26270    #[repr(transparent)]
26271    pub struct ConfigMutability {
26272        pub(crate) value: ::fidl_next::WireU32,
26273    }
26274
26275    unsafe impl ::fidl_next::Wire for ConfigMutability {
26276        type Owned<'de> = Self;
26277
26278        #[inline]
26279        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
26280            // Wire bits have no padding
26281        }
26282    }
26283
26284    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigMutability
26285    where
26286        ___D: ?Sized,
26287    {
26288        fn decode(
26289            slot: ::fidl_next::Slot<'_, Self>,
26290            _: &mut ___D,
26291            _: (),
26292        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26293            Ok(())
26294        }
26295    }
26296
26297    impl ::core::convert::From<crate::natural::ConfigMutability> for ConfigMutability {
26298        fn from(natural: crate::natural::ConfigMutability) -> Self {
26299            Self { value: ::fidl_next::WireU32::from(natural.bits()) }
26300        }
26301    }
26302
26303    impl ::fidl_next::IntoNatural for ConfigMutability {
26304        type Natural = crate::natural::ConfigMutability;
26305    }
26306
26307    impl ::fidl_next::Unconstrained for ConfigMutability {}
26308
26309    /// The wire type corresponding to [`ConfigField`].
26310    #[repr(C)]
26311    pub struct ConfigField<'de> {
26312        pub(crate) table: ::fidl_next::WireTable<'de>,
26313    }
26314
26315    impl<'de> Drop for ConfigField<'de> {
26316        fn drop(&mut self) {
26317            let _ = self.table.get(1).map(|envelope| unsafe {
26318                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26319            });
26320
26321            let _ = self.table.get(2).map(|envelope| unsafe {
26322                envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
26323            });
26324
26325            let _ = self.table.get(3).map(|envelope| unsafe {
26326                envelope.read_unchecked::<crate::wire::ConfigMutability>()
26327            });
26328        }
26329    }
26330
26331    unsafe impl ::fidl_next::Wire for ConfigField<'static> {
26332        type Owned<'de> = ConfigField<'de>;
26333
26334        #[inline]
26335        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26336            ::fidl_next::munge!(let Self { table } = out);
26337            ::fidl_next::WireTable::zero_padding(table);
26338        }
26339    }
26340
26341    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigField<'static>
26342    where
26343        ___D: ::fidl_next::Decoder + ?Sized,
26344    {
26345        fn decode(
26346            slot: ::fidl_next::Slot<'_, Self>,
26347            decoder: &mut ___D,
26348            _: (),
26349        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26350            ::fidl_next::munge!(let Self { table } = slot);
26351
26352            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26353                match ordinal {
26354                    0 => unsafe { ::core::hint::unreachable_unchecked() },
26355
26356                    1 => {
26357                        ::fidl_next::WireEnvelope::decode_as::<
26358                            ___D,
26359                            ::fidl_next::WireString<'static>,
26360                        >(slot.as_mut(), decoder, 64)?;
26361
26362                        let value = unsafe {
26363                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26364                        };
26365
26366                        if value.len() > 64 {
26367                            return Err(::fidl_next::DecodeError::VectorTooLong {
26368                                size: value.len() as u64,
26369                                limit: 64,
26370                            });
26371                        }
26372
26373                        Ok(())
26374                    }
26375
26376                    2 => {
26377                        ::fidl_next::WireEnvelope::decode_as::<
26378                            ___D,
26379                            crate::wire::ConfigType<'static>,
26380                        >(slot.as_mut(), decoder, ())?;
26381
26382                        Ok(())
26383                    }
26384
26385                    3 => {
26386                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::ConfigMutability>(
26387                            slot.as_mut(),
26388                            decoder,
26389                            (),
26390                        )?;
26391
26392                        Ok(())
26393                    }
26394
26395                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
26396                }
26397            })
26398        }
26399    }
26400
26401    impl<'de> ConfigField<'de> {
26402        pub fn key(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
26403            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26404        }
26405
26406        pub fn type_(&self) -> ::core::option::Option<&crate::wire::ConfigType<'de>> {
26407            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26408        }
26409
26410        pub fn mutability(&self) -> ::core::option::Option<&crate::wire::ConfigMutability> {
26411            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26412        }
26413    }
26414
26415    impl<'de> ::core::fmt::Debug for ConfigField<'de> {
26416        fn fmt(
26417            &self,
26418            f: &mut ::core::fmt::Formatter<'_>,
26419        ) -> ::core::result::Result<(), ::core::fmt::Error> {
26420            f.debug_struct("ConfigField")
26421                .field("key", &self.key())
26422                .field("type_", &self.type_())
26423                .field("mutability", &self.mutability())
26424                .finish()
26425        }
26426    }
26427
26428    impl<'de> ::fidl_next::IntoNatural for ConfigField<'de> {
26429        type Natural = crate::natural::ConfigField;
26430    }
26431
26432    impl ::fidl_next::Unconstrained for ConfigField<'_> {}
26433
26434    /// The wire type corresponding to [`Program`].
26435    #[repr(C)]
26436    pub struct Program<'de> {
26437        pub(crate) table: ::fidl_next::WireTable<'de>,
26438    }
26439
26440    impl<'de> Drop for Program<'de> {
26441        fn drop(&mut self) {
26442            let _ = self.table.get(1).map(|envelope| unsafe {
26443                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26444            });
26445
26446            let _ = self.table.get(2).map(|envelope| unsafe {
26447                envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
26448            });
26449        }
26450    }
26451
26452    unsafe impl ::fidl_next::Wire for Program<'static> {
26453        type Owned<'de> = Program<'de>;
26454
26455        #[inline]
26456        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26457            ::fidl_next::munge!(let Self { table } = out);
26458            ::fidl_next::WireTable::zero_padding(table);
26459        }
26460    }
26461
26462    unsafe impl<___D> ::fidl_next::Decode<___D> for Program<'static>
26463    where
26464        ___D: ::fidl_next::Decoder + ?Sized,
26465    {
26466        fn decode(
26467            slot: ::fidl_next::Slot<'_, Self>,
26468            decoder: &mut ___D,
26469            _: (),
26470        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26471            ::fidl_next::munge!(let Self { table } = slot);
26472
26473            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26474                match ordinal {
26475                    0 => unsafe { ::core::hint::unreachable_unchecked() },
26476
26477                    1 => {
26478                        ::fidl_next::WireEnvelope::decode_as::<
26479                            ___D,
26480                            ::fidl_next::WireString<'static>,
26481                        >(slot.as_mut(), decoder, 100)?;
26482
26483                        let value = unsafe {
26484                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26485                        };
26486
26487                        if value.len() > 100 {
26488                            return Err(::fidl_next::DecodeError::VectorTooLong {
26489                                size: value.len() as u64,
26490                                limit: 100,
26491                            });
26492                        }
26493
26494                        Ok(())
26495                    }
26496
26497                    2 => {
26498                        ::fidl_next::WireEnvelope::decode_as::<
26499                            ___D,
26500                            ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
26501                        >(slot.as_mut(), decoder, ())?;
26502
26503                        Ok(())
26504                    }
26505
26506                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
26507                }
26508            })
26509        }
26510    }
26511
26512    impl<'de> Program<'de> {
26513        pub fn runner(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
26514            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26515        }
26516
26517        pub fn info(
26518            &self,
26519        ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
26520        {
26521            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26522        }
26523    }
26524
26525    impl<'de> ::core::fmt::Debug for Program<'de> {
26526        fn fmt(
26527            &self,
26528            f: &mut ::core::fmt::Formatter<'_>,
26529        ) -> ::core::result::Result<(), ::core::fmt::Error> {
26530            f.debug_struct("Program")
26531                .field("runner", &self.runner())
26532                .field("info", &self.info())
26533                .finish()
26534        }
26535    }
26536
26537    impl<'de> ::fidl_next::IntoNatural for Program<'de> {
26538        type Natural = crate::natural::Program;
26539    }
26540
26541    impl ::fidl_next::Unconstrained for Program<'_> {}
26542
26543    /// The wire type corresponding to [`DebugInfo`].
26544    #[repr(C)]
26545    pub struct DebugInfo<'de> {
26546        pub(crate) table: ::fidl_next::WireTable<'de>,
26547    }
26548
26549    impl<'de> Drop for DebugInfo<'de> {
26550        fn drop(&mut self) {
26551            let _ = self.table.get(1)
26552                .map(|envelope| unsafe {
26553                    envelope.read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>()
26554                });
26555        }
26556    }
26557
26558    unsafe impl ::fidl_next::Wire for DebugInfo<'static> {
26559        type Owned<'de> = DebugInfo<'de>;
26560
26561        #[inline]
26562        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26563            ::fidl_next::munge!(let Self { table } = out);
26564            ::fidl_next::WireTable::zero_padding(table);
26565        }
26566    }
26567
26568    unsafe impl<___D> ::fidl_next::Decode<___D> for DebugInfo<'static>
26569    where
26570        ___D: ::fidl_next::Decoder + ?Sized,
26571    {
26572        fn decode(
26573            slot: ::fidl_next::Slot<'_, Self>,
26574            decoder: &mut ___D,
26575            _: (),
26576        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26577            ::fidl_next::munge!(let Self { table } = slot);
26578
26579            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26580                match ordinal {
26581                    0 => unsafe { ::core::hint::unreachable_unchecked() },
26582
26583                    1 => {
26584                        ::fidl_next::WireEnvelope::decode_as::<
26585                            ___D,
26586                            ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
26587                        >(slot.as_mut(), decoder, (4294967295, 4294967295))?;
26588
26589                        Ok(())
26590                    }
26591
26592                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
26593                }
26594            })
26595        }
26596    }
26597
26598    impl<'de> DebugInfo<'de> {
26599        pub fn manifest_sources(
26600            &self,
26601        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>
26602        {
26603            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26604        }
26605    }
26606
26607    impl<'de> ::core::fmt::Debug for DebugInfo<'de> {
26608        fn fmt(
26609            &self,
26610            f: &mut ::core::fmt::Formatter<'_>,
26611        ) -> ::core::result::Result<(), ::core::fmt::Error> {
26612            f.debug_struct("DebugInfo").field("manifest_sources", &self.manifest_sources()).finish()
26613        }
26614    }
26615
26616    impl<'de> ::fidl_next::IntoNatural for DebugInfo<'de> {
26617        type Natural = crate::natural::DebugInfo;
26618    }
26619
26620    impl ::fidl_next::Unconstrained for DebugInfo<'_> {}
26621
26622    /// The wire type corresponding to [`UseService`].
26623    #[repr(C)]
26624    pub struct UseService<'de> {
26625        pub(crate) table: ::fidl_next::WireTable<'de>,
26626    }
26627
26628    impl<'de> Drop for UseService<'de> {
26629        fn drop(&mut self) {
26630            let _ = self
26631                .table
26632                .get(1)
26633                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
26634
26635            let _ = self.table.get(2).map(|envelope| unsafe {
26636                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26637            });
26638
26639            let _ = self.table.get(3).map(|envelope| unsafe {
26640                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26641            });
26642
26643            let _ = self.table.get(4).map(|envelope| unsafe {
26644                envelope.read_unchecked::<crate::wire::DependencyType>()
26645            });
26646
26647            let _ = self
26648                .table
26649                .get(5)
26650                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26651
26652            let _ = self.table.get(6).map(|envelope| unsafe {
26653                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26654            });
26655        }
26656    }
26657
26658    unsafe impl ::fidl_next::Wire for UseService<'static> {
26659        type Owned<'de> = UseService<'de>;
26660
26661        #[inline]
26662        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26663            ::fidl_next::munge!(let Self { table } = out);
26664            ::fidl_next::WireTable::zero_padding(table);
26665        }
26666    }
26667
26668    unsafe impl<___D> ::fidl_next::Decode<___D> for UseService<'static>
26669    where
26670        ___D: ::fidl_next::Decoder + ?Sized,
26671    {
26672        fn decode(
26673            slot: ::fidl_next::Slot<'_, Self>,
26674            decoder: &mut ___D,
26675            _: (),
26676        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26677            ::fidl_next::munge!(let Self { table } = slot);
26678
26679            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26680                match ordinal {
26681                    0 => unsafe { ::core::hint::unreachable_unchecked() },
26682
26683                    1 => {
26684                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
26685                            slot.as_mut(),
26686                            decoder,
26687                            (),
26688                        )?;
26689
26690                        Ok(())
26691                    }
26692
26693                    2 => {
26694                        ::fidl_next::WireEnvelope::decode_as::<
26695                            ___D,
26696                            ::fidl_next::WireString<'static>,
26697                        >(slot.as_mut(), decoder, 100)?;
26698
26699                        let value = unsafe {
26700                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26701                        };
26702
26703                        if value.len() > 100 {
26704                            return Err(::fidl_next::DecodeError::VectorTooLong {
26705                                size: value.len() as u64,
26706                                limit: 100,
26707                            });
26708                        }
26709
26710                        Ok(())
26711                    }
26712
26713                    3 => {
26714                        ::fidl_next::WireEnvelope::decode_as::<
26715                            ___D,
26716                            ::fidl_next::WireString<'static>,
26717                        >(slot.as_mut(), decoder, 1024)?;
26718
26719                        let value = unsafe {
26720                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26721                        };
26722
26723                        if value.len() > 1024 {
26724                            return Err(::fidl_next::DecodeError::VectorTooLong {
26725                                size: value.len() as u64,
26726                                limit: 1024,
26727                            });
26728                        }
26729
26730                        Ok(())
26731                    }
26732
26733                    4 => {
26734                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
26735                            slot.as_mut(),
26736                            decoder,
26737                            (),
26738                        )?;
26739
26740                        Ok(())
26741                    }
26742
26743                    5 => {
26744                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
26745                            slot.as_mut(),
26746                            decoder,
26747                            (),
26748                        )?;
26749
26750                        Ok(())
26751                    }
26752
26753                    6 => {
26754                        ::fidl_next::WireEnvelope::decode_as::<
26755                            ___D,
26756                            ::fidl_next::WireString<'static>,
26757                        >(slot.as_mut(), decoder, 1024)?;
26758
26759                        let value = unsafe {
26760                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26761                        };
26762
26763                        if value.len() > 1024 {
26764                            return Err(::fidl_next::DecodeError::VectorTooLong {
26765                                size: value.len() as u64,
26766                                limit: 1024,
26767                            });
26768                        }
26769
26770                        Ok(())
26771                    }
26772
26773                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
26774                }
26775            })
26776        }
26777    }
26778
26779    impl<'de> UseService<'de> {
26780        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
26781            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26782        }
26783
26784        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
26785            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26786        }
26787
26788        pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
26789            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26790        }
26791
26792        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
26793            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
26794        }
26795
26796        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
26797            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
26798        }
26799
26800        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
26801            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
26802        }
26803    }
26804
26805    impl<'de> ::core::fmt::Debug for UseService<'de> {
26806        fn fmt(
26807            &self,
26808            f: &mut ::core::fmt::Formatter<'_>,
26809        ) -> ::core::result::Result<(), ::core::fmt::Error> {
26810            f.debug_struct("UseService")
26811                .field("source", &self.source())
26812                .field("source_name", &self.source_name())
26813                .field("target_path", &self.target_path())
26814                .field("dependency_type", &self.dependency_type())
26815                .field("availability", &self.availability())
26816                .field("source_dictionary", &self.source_dictionary())
26817                .finish()
26818        }
26819    }
26820
26821    impl<'de> ::fidl_next::IntoNatural for UseService<'de> {
26822        type Natural = crate::natural::UseService;
26823    }
26824
26825    impl ::fidl_next::Unconstrained for UseService<'_> {}
26826
26827    /// The wire type corresponding to [`UseProtocol`].
26828    #[repr(C)]
26829    pub struct UseProtocol<'de> {
26830        pub(crate) table: ::fidl_next::WireTable<'de>,
26831    }
26832
26833    impl<'de> Drop for UseProtocol<'de> {
26834        fn drop(&mut self) {
26835            let _ = self
26836                .table
26837                .get(1)
26838                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
26839
26840            let _ = self.table.get(2).map(|envelope| unsafe {
26841                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26842            });
26843
26844            let _ = self.table.get(3).map(|envelope| unsafe {
26845                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26846            });
26847
26848            let _ = self.table.get(4).map(|envelope| unsafe {
26849                envelope.read_unchecked::<crate::wire::DependencyType>()
26850            });
26851
26852            let _ = self
26853                .table
26854                .get(5)
26855                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26856
26857            let _ = self.table.get(6).map(|envelope| unsafe {
26858                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
26859            });
26860
26861            let _ = self.table.get(7).map(|envelope| unsafe { envelope.read_unchecked::<u8>() });
26862        }
26863    }
26864
26865    unsafe impl ::fidl_next::Wire for UseProtocol<'static> {
26866        type Owned<'de> = UseProtocol<'de>;
26867
26868        #[inline]
26869        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26870            ::fidl_next::munge!(let Self { table } = out);
26871            ::fidl_next::WireTable::zero_padding(table);
26872        }
26873    }
26874
26875    unsafe impl<___D> ::fidl_next::Decode<___D> for UseProtocol<'static>
26876    where
26877        ___D: ::fidl_next::Decoder + ?Sized,
26878    {
26879        fn decode(
26880            slot: ::fidl_next::Slot<'_, Self>,
26881            decoder: &mut ___D,
26882            _: (),
26883        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26884            ::fidl_next::munge!(let Self { table } = slot);
26885
26886            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26887                match ordinal {
26888                    0 => unsafe { ::core::hint::unreachable_unchecked() },
26889
26890                    1 => {
26891                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
26892                            slot.as_mut(),
26893                            decoder,
26894                            (),
26895                        )?;
26896
26897                        Ok(())
26898                    }
26899
26900                    2 => {
26901                        ::fidl_next::WireEnvelope::decode_as::<
26902                            ___D,
26903                            ::fidl_next::WireString<'static>,
26904                        >(slot.as_mut(), decoder, 100)?;
26905
26906                        let value = unsafe {
26907                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26908                        };
26909
26910                        if value.len() > 100 {
26911                            return Err(::fidl_next::DecodeError::VectorTooLong {
26912                                size: value.len() as u64,
26913                                limit: 100,
26914                            });
26915                        }
26916
26917                        Ok(())
26918                    }
26919
26920                    3 => {
26921                        ::fidl_next::WireEnvelope::decode_as::<
26922                            ___D,
26923                            ::fidl_next::WireString<'static>,
26924                        >(slot.as_mut(), decoder, 1024)?;
26925
26926                        let value = unsafe {
26927                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26928                        };
26929
26930                        if value.len() > 1024 {
26931                            return Err(::fidl_next::DecodeError::VectorTooLong {
26932                                size: value.len() as u64,
26933                                limit: 1024,
26934                            });
26935                        }
26936
26937                        Ok(())
26938                    }
26939
26940                    4 => {
26941                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
26942                            slot.as_mut(),
26943                            decoder,
26944                            (),
26945                        )?;
26946
26947                        Ok(())
26948                    }
26949
26950                    5 => {
26951                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
26952                            slot.as_mut(),
26953                            decoder,
26954                            (),
26955                        )?;
26956
26957                        Ok(())
26958                    }
26959
26960                    6 => {
26961                        ::fidl_next::WireEnvelope::decode_as::<
26962                            ___D,
26963                            ::fidl_next::WireString<'static>,
26964                        >(slot.as_mut(), decoder, 1024)?;
26965
26966                        let value = unsafe {
26967                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
26968                        };
26969
26970                        if value.len() > 1024 {
26971                            return Err(::fidl_next::DecodeError::VectorTooLong {
26972                                size: value.len() as u64,
26973                                limit: 1024,
26974                            });
26975                        }
26976
26977                        Ok(())
26978                    }
26979
26980                    7 => {
26981                        ::fidl_next::WireEnvelope::decode_as::<___D, u8>(
26982                            slot.as_mut(),
26983                            decoder,
26984                            (),
26985                        )?;
26986
26987                        Ok(())
26988                    }
26989
26990                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
26991                }
26992            })
26993        }
26994    }
26995
26996    impl<'de> UseProtocol<'de> {
26997        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
26998            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26999        }
27000
27001        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27002            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27003        }
27004
27005        pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27006            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27007        }
27008
27009        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
27010            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27011        }
27012
27013        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27014            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27015        }
27016
27017        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27018            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27019        }
27020
27021        pub fn numbered_handle(&self) -> ::core::option::Option<&u8> {
27022            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
27023        }
27024    }
27025
27026    impl<'de> ::core::fmt::Debug for UseProtocol<'de> {
27027        fn fmt(
27028            &self,
27029            f: &mut ::core::fmt::Formatter<'_>,
27030        ) -> ::core::result::Result<(), ::core::fmt::Error> {
27031            f.debug_struct("UseProtocol")
27032                .field("source", &self.source())
27033                .field("source_name", &self.source_name())
27034                .field("target_path", &self.target_path())
27035                .field("dependency_type", &self.dependency_type())
27036                .field("availability", &self.availability())
27037                .field("source_dictionary", &self.source_dictionary())
27038                .field("numbered_handle", &self.numbered_handle())
27039                .finish()
27040        }
27041    }
27042
27043    impl<'de> ::fidl_next::IntoNatural for UseProtocol<'de> {
27044        type Natural = crate::natural::UseProtocol;
27045    }
27046
27047    impl ::fidl_next::Unconstrained for UseProtocol<'_> {}
27048
27049    /// The wire type corresponding to [`UseDirectory`].
27050    #[repr(C)]
27051    pub struct UseDirectory<'de> {
27052        pub(crate) table: ::fidl_next::WireTable<'de>,
27053    }
27054
27055    impl<'de> Drop for UseDirectory<'de> {
27056        fn drop(&mut self) {
27057            let _ = self
27058                .table
27059                .get(1)
27060                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27061
27062            let _ = self.table.get(2).map(|envelope| unsafe {
27063                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27064            });
27065
27066            let _ = self.table.get(3).map(|envelope| unsafe {
27067                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27068            });
27069
27070            let _ = self.table.get(4).map(|envelope| unsafe {
27071                envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
27072            });
27073
27074            let _ = self.table.get(5).map(|envelope| unsafe {
27075                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27076            });
27077
27078            let _ = self.table.get(6).map(|envelope| unsafe {
27079                envelope.read_unchecked::<crate::wire::DependencyType>()
27080            });
27081
27082            let _ = self
27083                .table
27084                .get(7)
27085                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27086
27087            let _ = self.table.get(8).map(|envelope| unsafe {
27088                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27089            });
27090        }
27091    }
27092
27093    unsafe impl ::fidl_next::Wire for UseDirectory<'static> {
27094        type Owned<'de> = UseDirectory<'de>;
27095
27096        #[inline]
27097        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27098            ::fidl_next::munge!(let Self { table } = out);
27099            ::fidl_next::WireTable::zero_padding(table);
27100        }
27101    }
27102
27103    unsafe impl<___D> ::fidl_next::Decode<___D> for UseDirectory<'static>
27104    where
27105        ___D: ::fidl_next::Decoder + ?Sized,
27106    {
27107        fn decode(
27108            slot: ::fidl_next::Slot<'_, Self>,
27109            decoder: &mut ___D,
27110            _: (),
27111        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27112            ::fidl_next::munge!(let Self { table } = slot);
27113
27114            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27115                match ordinal {
27116                    0 => unsafe { ::core::hint::unreachable_unchecked() },
27117
27118                    1 => {
27119                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
27120                            slot.as_mut(),
27121                            decoder,
27122                            (),
27123                        )?;
27124
27125                        Ok(())
27126                    }
27127
27128                    2 => {
27129                        ::fidl_next::WireEnvelope::decode_as::<
27130                            ___D,
27131                            ::fidl_next::WireString<'static>,
27132                        >(slot.as_mut(), decoder, 100)?;
27133
27134                        let value = unsafe {
27135                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27136                        };
27137
27138                        if value.len() > 100 {
27139                            return Err(::fidl_next::DecodeError::VectorTooLong {
27140                                size: value.len() as u64,
27141                                limit: 100,
27142                            });
27143                        }
27144
27145                        Ok(())
27146                    }
27147
27148                    3 => {
27149                        ::fidl_next::WireEnvelope::decode_as::<
27150                            ___D,
27151                            ::fidl_next::WireString<'static>,
27152                        >(slot.as_mut(), decoder, 1024)?;
27153
27154                        let value = unsafe {
27155                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27156                        };
27157
27158                        if value.len() > 1024 {
27159                            return Err(::fidl_next::DecodeError::VectorTooLong {
27160                                size: value.len() as u64,
27161                                limit: 1024,
27162                            });
27163                        }
27164
27165                        Ok(())
27166                    }
27167
27168                    4 => {
27169                        ::fidl_next::WireEnvelope::decode_as::<
27170                            ___D,
27171                            ::fidl_next_common_fuchsia_io::wire::Operations,
27172                        >(slot.as_mut(), decoder, ())?;
27173
27174                        Ok(())
27175                    }
27176
27177                    5 => {
27178                        ::fidl_next::WireEnvelope::decode_as::<
27179                            ___D,
27180                            ::fidl_next::WireString<'static>,
27181                        >(slot.as_mut(), decoder, 1024)?;
27182
27183                        let value = unsafe {
27184                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27185                        };
27186
27187                        if value.len() > 1024 {
27188                            return Err(::fidl_next::DecodeError::VectorTooLong {
27189                                size: value.len() as u64,
27190                                limit: 1024,
27191                            });
27192                        }
27193
27194                        Ok(())
27195                    }
27196
27197                    6 => {
27198                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
27199                            slot.as_mut(),
27200                            decoder,
27201                            (),
27202                        )?;
27203
27204                        Ok(())
27205                    }
27206
27207                    7 => {
27208                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
27209                            slot.as_mut(),
27210                            decoder,
27211                            (),
27212                        )?;
27213
27214                        Ok(())
27215                    }
27216
27217                    8 => {
27218                        ::fidl_next::WireEnvelope::decode_as::<
27219                            ___D,
27220                            ::fidl_next::WireString<'static>,
27221                        >(slot.as_mut(), decoder, 1024)?;
27222
27223                        let value = unsafe {
27224                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27225                        };
27226
27227                        if value.len() > 1024 {
27228                            return Err(::fidl_next::DecodeError::VectorTooLong {
27229                                size: value.len() as u64,
27230                                limit: 1024,
27231                            });
27232                        }
27233
27234                        Ok(())
27235                    }
27236
27237                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
27238                }
27239            })
27240        }
27241    }
27242
27243    impl<'de> UseDirectory<'de> {
27244        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27245            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27246        }
27247
27248        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27249            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27250        }
27251
27252        pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27253            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27254        }
27255
27256        pub fn rights(
27257            &self,
27258        ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
27259            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27260        }
27261
27262        pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27263            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27264        }
27265
27266        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
27267            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27268        }
27269
27270        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27271            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
27272        }
27273
27274        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27275            unsafe { Some(self.table.get(8)?.deref_unchecked()) }
27276        }
27277    }
27278
27279    impl<'de> ::core::fmt::Debug for UseDirectory<'de> {
27280        fn fmt(
27281            &self,
27282            f: &mut ::core::fmt::Formatter<'_>,
27283        ) -> ::core::result::Result<(), ::core::fmt::Error> {
27284            f.debug_struct("UseDirectory")
27285                .field("source", &self.source())
27286                .field("source_name", &self.source_name())
27287                .field("target_path", &self.target_path())
27288                .field("rights", &self.rights())
27289                .field("subdir", &self.subdir())
27290                .field("dependency_type", &self.dependency_type())
27291                .field("availability", &self.availability())
27292                .field("source_dictionary", &self.source_dictionary())
27293                .finish()
27294        }
27295    }
27296
27297    impl<'de> ::fidl_next::IntoNatural for UseDirectory<'de> {
27298        type Natural = crate::natural::UseDirectory;
27299    }
27300
27301    impl ::fidl_next::Unconstrained for UseDirectory<'_> {}
27302
27303    /// The wire type corresponding to [`UseEventStream`].
27304    #[repr(C)]
27305    pub struct UseEventStream<'de> {
27306        pub(crate) table: ::fidl_next::WireTable<'de>,
27307    }
27308
27309    impl<'de> Drop for UseEventStream<'de> {
27310        fn drop(&mut self) {
27311            let _ = self.table.get(1).map(|envelope| unsafe {
27312                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27313            });
27314
27315            let _ = self
27316                .table
27317                .get(2)
27318                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27319
27320            let _ = self.table.get(3).map(|envelope| unsafe {
27321                envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Ref<'de>>>()
27322            });
27323
27324            let _ = self.table.get(4).map(|envelope| unsafe {
27325                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27326            });
27327
27328            let _ = self
27329                .table
27330                .get(5)
27331                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27332
27333            let _ = self.table.get(6).map(|envelope| unsafe {
27334                envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
27335            });
27336        }
27337    }
27338
27339    unsafe impl ::fidl_next::Wire for UseEventStream<'static> {
27340        type Owned<'de> = UseEventStream<'de>;
27341
27342        #[inline]
27343        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27344            ::fidl_next::munge!(let Self { table } = out);
27345            ::fidl_next::WireTable::zero_padding(table);
27346        }
27347    }
27348
27349    unsafe impl<___D> ::fidl_next::Decode<___D> for UseEventStream<'static>
27350    where
27351        ___D: ::fidl_next::Decoder + ?Sized,
27352    {
27353        fn decode(
27354            slot: ::fidl_next::Slot<'_, Self>,
27355            decoder: &mut ___D,
27356            _: (),
27357        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27358            ::fidl_next::munge!(let Self { table } = slot);
27359
27360            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27361                match ordinal {
27362                    0 => unsafe { ::core::hint::unreachable_unchecked() },
27363
27364                    1 => {
27365                        ::fidl_next::WireEnvelope::decode_as::<
27366                            ___D,
27367                            ::fidl_next::WireString<'static>,
27368                        >(slot.as_mut(), decoder, 100)?;
27369
27370                        let value = unsafe {
27371                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27372                        };
27373
27374                        if value.len() > 100 {
27375                            return Err(::fidl_next::DecodeError::VectorTooLong {
27376                                size: value.len() as u64,
27377                                limit: 100,
27378                            });
27379                        }
27380
27381                        Ok(())
27382                    }
27383
27384                    2 => {
27385                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
27386                            slot.as_mut(),
27387                            decoder,
27388                            (),
27389                        )?;
27390
27391                        Ok(())
27392                    }
27393
27394                    3 => {
27395                        ::fidl_next::WireEnvelope::decode_as::<
27396                            ___D,
27397                            ::fidl_next::WireVector<'static, crate::wire::Ref<'static>>,
27398                        >(slot.as_mut(), decoder, (4294967295, ()))?;
27399
27400                        Ok(())
27401                    }
27402
27403                    4 => {
27404                        ::fidl_next::WireEnvelope::decode_as::<
27405                            ___D,
27406                            ::fidl_next::WireString<'static>,
27407                        >(slot.as_mut(), decoder, 100)?;
27408
27409                        let value = unsafe {
27410                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27411                        };
27412
27413                        if value.len() > 100 {
27414                            return Err(::fidl_next::DecodeError::VectorTooLong {
27415                                size: value.len() as u64,
27416                                limit: 100,
27417                            });
27418                        }
27419
27420                        Ok(())
27421                    }
27422
27423                    5 => {
27424                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
27425                            slot.as_mut(),
27426                            decoder,
27427                            (),
27428                        )?;
27429
27430                        Ok(())
27431                    }
27432
27433                    6 => {
27434                        ::fidl_next::WireEnvelope::decode_as::<
27435                            ___D,
27436                            ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
27437                        >(slot.as_mut(), decoder, ())?;
27438
27439                        Ok(())
27440                    }
27441
27442                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
27443                }
27444            })
27445        }
27446    }
27447
27448    impl<'de> UseEventStream<'de> {
27449        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27450            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27451        }
27452
27453        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27454            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27455        }
27456
27457        pub fn scope(
27458            &self,
27459        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Ref<'de>>> {
27460            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27461        }
27462
27463        pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27464            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27465        }
27466
27467        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27468            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27469        }
27470
27471        pub fn filter(
27472            &self,
27473        ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
27474        {
27475            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27476        }
27477    }
27478
27479    impl<'de> ::core::fmt::Debug for UseEventStream<'de> {
27480        fn fmt(
27481            &self,
27482            f: &mut ::core::fmt::Formatter<'_>,
27483        ) -> ::core::result::Result<(), ::core::fmt::Error> {
27484            f.debug_struct("UseEventStream")
27485                .field("source_name", &self.source_name())
27486                .field("source", &self.source())
27487                .field("scope", &self.scope())
27488                .field("target_path", &self.target_path())
27489                .field("availability", &self.availability())
27490                .field("filter", &self.filter())
27491                .finish()
27492        }
27493    }
27494
27495    impl<'de> ::fidl_next::IntoNatural for UseEventStream<'de> {
27496        type Natural = crate::natural::UseEventStream;
27497    }
27498
27499    impl ::fidl_next::Unconstrained for UseEventStream<'_> {}
27500
27501    /// The wire type corresponding to [`UseRunner`].
27502    #[repr(C)]
27503    pub struct UseRunner<'de> {
27504        pub(crate) table: ::fidl_next::WireTable<'de>,
27505    }
27506
27507    impl<'de> Drop for UseRunner<'de> {
27508        fn drop(&mut self) {
27509            let _ = self
27510                .table
27511                .get(1)
27512                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27513
27514            let _ = self.table.get(2).map(|envelope| unsafe {
27515                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27516            });
27517
27518            let _ = self.table.get(3).map(|envelope| unsafe {
27519                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27520            });
27521        }
27522    }
27523
27524    unsafe impl ::fidl_next::Wire for UseRunner<'static> {
27525        type Owned<'de> = UseRunner<'de>;
27526
27527        #[inline]
27528        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27529            ::fidl_next::munge!(let Self { table } = out);
27530            ::fidl_next::WireTable::zero_padding(table);
27531        }
27532    }
27533
27534    unsafe impl<___D> ::fidl_next::Decode<___D> for UseRunner<'static>
27535    where
27536        ___D: ::fidl_next::Decoder + ?Sized,
27537    {
27538        fn decode(
27539            slot: ::fidl_next::Slot<'_, Self>,
27540            decoder: &mut ___D,
27541            _: (),
27542        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27543            ::fidl_next::munge!(let Self { table } = slot);
27544
27545            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27546                match ordinal {
27547                    0 => unsafe { ::core::hint::unreachable_unchecked() },
27548
27549                    1 => {
27550                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
27551                            slot.as_mut(),
27552                            decoder,
27553                            (),
27554                        )?;
27555
27556                        Ok(())
27557                    }
27558
27559                    2 => {
27560                        ::fidl_next::WireEnvelope::decode_as::<
27561                            ___D,
27562                            ::fidl_next::WireString<'static>,
27563                        >(slot.as_mut(), decoder, 100)?;
27564
27565                        let value = unsafe {
27566                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27567                        };
27568
27569                        if value.len() > 100 {
27570                            return Err(::fidl_next::DecodeError::VectorTooLong {
27571                                size: value.len() as u64,
27572                                limit: 100,
27573                            });
27574                        }
27575
27576                        Ok(())
27577                    }
27578
27579                    3 => {
27580                        ::fidl_next::WireEnvelope::decode_as::<
27581                            ___D,
27582                            ::fidl_next::WireString<'static>,
27583                        >(slot.as_mut(), decoder, 1024)?;
27584
27585                        let value = unsafe {
27586                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27587                        };
27588
27589                        if value.len() > 1024 {
27590                            return Err(::fidl_next::DecodeError::VectorTooLong {
27591                                size: value.len() as u64,
27592                                limit: 1024,
27593                            });
27594                        }
27595
27596                        Ok(())
27597                    }
27598
27599                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
27600                }
27601            })
27602        }
27603    }
27604
27605    impl<'de> UseRunner<'de> {
27606        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27607            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27608        }
27609
27610        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27611            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27612        }
27613
27614        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27615            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27616        }
27617    }
27618
27619    impl<'de> ::core::fmt::Debug for UseRunner<'de> {
27620        fn fmt(
27621            &self,
27622            f: &mut ::core::fmt::Formatter<'_>,
27623        ) -> ::core::result::Result<(), ::core::fmt::Error> {
27624            f.debug_struct("UseRunner")
27625                .field("source", &self.source())
27626                .field("source_name", &self.source_name())
27627                .field("source_dictionary", &self.source_dictionary())
27628                .finish()
27629        }
27630    }
27631
27632    impl<'de> ::fidl_next::IntoNatural for UseRunner<'de> {
27633        type Natural = crate::natural::UseRunner;
27634    }
27635
27636    impl ::fidl_next::Unconstrained for UseRunner<'_> {}
27637
27638    /// The wire type corresponding to [`UseConfiguration`].
27639    #[repr(C)]
27640    pub struct UseConfiguration<'de> {
27641        pub(crate) table: ::fidl_next::WireTable<'de>,
27642    }
27643
27644    impl<'de> Drop for UseConfiguration<'de> {
27645        fn drop(&mut self) {
27646            let _ = self
27647                .table
27648                .get(1)
27649                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27650
27651            let _ = self.table.get(2).map(|envelope| unsafe {
27652                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27653            });
27654
27655            let _ = self.table.get(3).map(|envelope| unsafe {
27656                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27657            });
27658
27659            let _ = self
27660                .table
27661                .get(4)
27662                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27663
27664            let _ = self.table.get(5).map(|envelope| unsafe {
27665                envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
27666            });
27667
27668            let _ = self.table.get(6).map(|envelope| unsafe {
27669                envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
27670            });
27671
27672            let _ = self.table.get(7).map(|envelope| unsafe {
27673                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27674            });
27675        }
27676    }
27677
27678    unsafe impl ::fidl_next::Wire for UseConfiguration<'static> {
27679        type Owned<'de> = UseConfiguration<'de>;
27680
27681        #[inline]
27682        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27683            ::fidl_next::munge!(let Self { table } = out);
27684            ::fidl_next::WireTable::zero_padding(table);
27685        }
27686    }
27687
27688    unsafe impl<___D> ::fidl_next::Decode<___D> for UseConfiguration<'static>
27689    where
27690        ___D: ::fidl_next::Decoder + ?Sized,
27691    {
27692        fn decode(
27693            slot: ::fidl_next::Slot<'_, Self>,
27694            decoder: &mut ___D,
27695            _: (),
27696        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27697            ::fidl_next::munge!(let Self { table } = slot);
27698
27699            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27700                match ordinal {
27701                    0 => unsafe { ::core::hint::unreachable_unchecked() },
27702
27703                    1 => {
27704                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
27705                            slot.as_mut(),
27706                            decoder,
27707                            (),
27708                        )?;
27709
27710                        Ok(())
27711                    }
27712
27713                    2 => {
27714                        ::fidl_next::WireEnvelope::decode_as::<
27715                            ___D,
27716                            ::fidl_next::WireString<'static>,
27717                        >(slot.as_mut(), decoder, 100)?;
27718
27719                        let value = unsafe {
27720                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27721                        };
27722
27723                        if value.len() > 100 {
27724                            return Err(::fidl_next::DecodeError::VectorTooLong {
27725                                size: value.len() as u64,
27726                                limit: 100,
27727                            });
27728                        }
27729
27730                        Ok(())
27731                    }
27732
27733                    3 => {
27734                        ::fidl_next::WireEnvelope::decode_as::<
27735                            ___D,
27736                            ::fidl_next::WireString<'static>,
27737                        >(slot.as_mut(), decoder, 100)?;
27738
27739                        let value = unsafe {
27740                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27741                        };
27742
27743                        if value.len() > 100 {
27744                            return Err(::fidl_next::DecodeError::VectorTooLong {
27745                                size: value.len() as u64,
27746                                limit: 100,
27747                            });
27748                        }
27749
27750                        Ok(())
27751                    }
27752
27753                    4 => {
27754                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
27755                            slot.as_mut(),
27756                            decoder,
27757                            (),
27758                        )?;
27759
27760                        Ok(())
27761                    }
27762
27763                    5 => {
27764                        ::fidl_next::WireEnvelope::decode_as::<
27765                            ___D,
27766                            crate::wire::ConfigType<'static>,
27767                        >(slot.as_mut(), decoder, ())?;
27768
27769                        Ok(())
27770                    }
27771
27772                    6 => {
27773                        ::fidl_next::WireEnvelope::decode_as::<
27774                            ___D,
27775                            crate::wire::ConfigValue<'static>,
27776                        >(slot.as_mut(), decoder, ())?;
27777
27778                        Ok(())
27779                    }
27780
27781                    7 => {
27782                        ::fidl_next::WireEnvelope::decode_as::<
27783                            ___D,
27784                            ::fidl_next::WireString<'static>,
27785                        >(slot.as_mut(), decoder, 1024)?;
27786
27787                        let value = unsafe {
27788                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27789                        };
27790
27791                        if value.len() > 1024 {
27792                            return Err(::fidl_next::DecodeError::VectorTooLong {
27793                                size: value.len() as u64,
27794                                limit: 1024,
27795                            });
27796                        }
27797
27798                        Ok(())
27799                    }
27800
27801                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
27802                }
27803            })
27804        }
27805    }
27806
27807    impl<'de> UseConfiguration<'de> {
27808        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27809            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27810        }
27811
27812        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27813            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27814        }
27815
27816        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27817            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27818        }
27819
27820        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27821            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27822        }
27823
27824        pub fn type_(&self) -> ::core::option::Option<&crate::wire::ConfigType<'de>> {
27825            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27826        }
27827
27828        pub fn default(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
27829            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27830        }
27831
27832        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
27833            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
27834        }
27835    }
27836
27837    impl<'de> ::core::fmt::Debug for UseConfiguration<'de> {
27838        fn fmt(
27839            &self,
27840            f: &mut ::core::fmt::Formatter<'_>,
27841        ) -> ::core::result::Result<(), ::core::fmt::Error> {
27842            f.debug_struct("UseConfiguration")
27843                .field("source", &self.source())
27844                .field("source_name", &self.source_name())
27845                .field("target_name", &self.target_name())
27846                .field("availability", &self.availability())
27847                .field("type_", &self.type_())
27848                .field("default", &self.default())
27849                .field("source_dictionary", &self.source_dictionary())
27850                .finish()
27851        }
27852    }
27853
27854    impl<'de> ::fidl_next::IntoNatural for UseConfiguration<'de> {
27855        type Natural = crate::natural::UseConfiguration;
27856    }
27857
27858    impl ::fidl_next::Unconstrained for UseConfiguration<'_> {}
27859
27860    /// The wire type corresponding to [`UseDictionary`].
27861    #[repr(C)]
27862    pub struct UseDictionary<'de> {
27863        pub(crate) table: ::fidl_next::WireTable<'de>,
27864    }
27865
27866    impl<'de> Drop for UseDictionary<'de> {
27867        fn drop(&mut self) {
27868            let _ = self
27869                .table
27870                .get(1)
27871                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27872
27873            let _ = self.table.get(2).map(|envelope| unsafe {
27874                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27875            });
27876
27877            let _ = self.table.get(3).map(|envelope| unsafe {
27878                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27879            });
27880
27881            let _ = self.table.get(6).map(|envelope| unsafe {
27882                envelope.read_unchecked::<crate::wire::DependencyType>()
27883            });
27884
27885            let _ = self
27886                .table
27887                .get(7)
27888                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27889
27890            let _ = self.table.get(8).map(|envelope| unsafe {
27891                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
27892            });
27893        }
27894    }
27895
27896    unsafe impl ::fidl_next::Wire for UseDictionary<'static> {
27897        type Owned<'de> = UseDictionary<'de>;
27898
27899        #[inline]
27900        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27901            ::fidl_next::munge!(let Self { table } = out);
27902            ::fidl_next::WireTable::zero_padding(table);
27903        }
27904    }
27905
27906    unsafe impl<___D> ::fidl_next::Decode<___D> for UseDictionary<'static>
27907    where
27908        ___D: ::fidl_next::Decoder + ?Sized,
27909    {
27910        fn decode(
27911            slot: ::fidl_next::Slot<'_, Self>,
27912            decoder: &mut ___D,
27913            _: (),
27914        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27915            ::fidl_next::munge!(let Self { table } = slot);
27916
27917            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27918                match ordinal {
27919                    0 => unsafe { ::core::hint::unreachable_unchecked() },
27920
27921                    1 => {
27922                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
27923                            slot.as_mut(),
27924                            decoder,
27925                            (),
27926                        )?;
27927
27928                        Ok(())
27929                    }
27930
27931                    2 => {
27932                        ::fidl_next::WireEnvelope::decode_as::<
27933                            ___D,
27934                            ::fidl_next::WireString<'static>,
27935                        >(slot.as_mut(), decoder, 100)?;
27936
27937                        let value = unsafe {
27938                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27939                        };
27940
27941                        if value.len() > 100 {
27942                            return Err(::fidl_next::DecodeError::VectorTooLong {
27943                                size: value.len() as u64,
27944                                limit: 100,
27945                            });
27946                        }
27947
27948                        Ok(())
27949                    }
27950
27951                    3 => {
27952                        ::fidl_next::WireEnvelope::decode_as::<
27953                            ___D,
27954                            ::fidl_next::WireString<'static>,
27955                        >(slot.as_mut(), decoder, 1024)?;
27956
27957                        let value = unsafe {
27958                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27959                        };
27960
27961                        if value.len() > 1024 {
27962                            return Err(::fidl_next::DecodeError::VectorTooLong {
27963                                size: value.len() as u64,
27964                                limit: 1024,
27965                            });
27966                        }
27967
27968                        Ok(())
27969                    }
27970
27971                    6 => {
27972                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
27973                            slot.as_mut(),
27974                            decoder,
27975                            (),
27976                        )?;
27977
27978                        Ok(())
27979                    }
27980
27981                    7 => {
27982                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
27983                            slot.as_mut(),
27984                            decoder,
27985                            (),
27986                        )?;
27987
27988                        Ok(())
27989                    }
27990
27991                    8 => {
27992                        ::fidl_next::WireEnvelope::decode_as::<
27993                            ___D,
27994                            ::fidl_next::WireString<'static>,
27995                        >(slot.as_mut(), decoder, 1024)?;
27996
27997                        let value = unsafe {
27998                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
27999                        };
28000
28001                        if value.len() > 1024 {
28002                            return Err(::fidl_next::DecodeError::VectorTooLong {
28003                                size: value.len() as u64,
28004                                limit: 1024,
28005                            });
28006                        }
28007
28008                        Ok(())
28009                    }
28010
28011                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
28012                }
28013            })
28014        }
28015    }
28016
28017    impl<'de> UseDictionary<'de> {
28018        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28019            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28020        }
28021
28022        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28023            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28024        }
28025
28026        pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28027            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28028        }
28029
28030        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
28031            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28032        }
28033
28034        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28035            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
28036        }
28037
28038        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28039            unsafe { Some(self.table.get(8)?.deref_unchecked()) }
28040        }
28041    }
28042
28043    impl<'de> ::core::fmt::Debug for UseDictionary<'de> {
28044        fn fmt(
28045            &self,
28046            f: &mut ::core::fmt::Formatter<'_>,
28047        ) -> ::core::result::Result<(), ::core::fmt::Error> {
28048            f.debug_struct("UseDictionary")
28049                .field("source", &self.source())
28050                .field("source_name", &self.source_name())
28051                .field("target_path", &self.target_path())
28052                .field("dependency_type", &self.dependency_type())
28053                .field("availability", &self.availability())
28054                .field("source_dictionary", &self.source_dictionary())
28055                .finish()
28056        }
28057    }
28058
28059    impl<'de> ::fidl_next::IntoNatural for UseDictionary<'de> {
28060        type Natural = crate::natural::UseDictionary;
28061    }
28062
28063    impl ::fidl_next::Unconstrained for UseDictionary<'_> {}
28064
28065    /// The wire type corresponding to [`Use`].
28066    #[repr(transparent)]
28067    pub struct Use<'de> {
28068        pub(crate) raw: ::fidl_next::RawWireUnion,
28069        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
28070    }
28071
28072    impl<'de> Drop for Use<'de> {
28073        fn drop(&mut self) {
28074            match self.raw.ordinal() {
28075                1 => {
28076                    let _ =
28077                        unsafe { self.raw.get().read_unchecked::<crate::wire::UseService<'de>>() };
28078                }
28079
28080                2 => {
28081                    let _ =
28082                        unsafe { self.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>() };
28083                }
28084
28085                3 => {
28086                    let _ = unsafe {
28087                        self.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
28088                    };
28089                }
28090
28091                4 => {
28092                    let _ =
28093                        unsafe { self.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>() };
28094                }
28095
28096                7 => {
28097                    let _ = unsafe {
28098                        self.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
28099                    };
28100                }
28101
28102                8 => {
28103                    let _ =
28104                        unsafe { self.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>() };
28105                }
28106
28107                9 => {
28108                    let _ = unsafe {
28109                        self.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
28110                    };
28111                }
28112
28113                10 => {
28114                    let _ = unsafe {
28115                        self.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
28116                    };
28117                }
28118
28119                _ => (),
28120            }
28121        }
28122    }
28123
28124    unsafe impl ::fidl_next::Wire for Use<'static> {
28125        type Owned<'de> = Use<'de>;
28126
28127        #[inline]
28128        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28129            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
28130            ::fidl_next::RawWireUnion::zero_padding(raw);
28131        }
28132    }
28133
28134    pub mod use_ {
28135        pub enum Ref<'de> {
28136            Service(&'de crate::wire::UseService<'de>),
28137
28138            Protocol(&'de crate::wire::UseProtocol<'de>),
28139
28140            Directory(&'de crate::wire::UseDirectory<'de>),
28141
28142            Storage(&'de crate::wire::UseStorage<'de>),
28143
28144            EventStream(&'de crate::wire::UseEventStream<'de>),
28145
28146            Runner(&'de crate::wire::UseRunner<'de>),
28147
28148            Config(&'de crate::wire::UseConfiguration<'de>),
28149
28150            Dictionary(&'de crate::wire::UseDictionary<'de>),
28151
28152            UnknownOrdinal_(u64),
28153        }
28154    }
28155
28156    impl<'de> Use<'de> {
28157        pub fn as_ref(&self) -> crate::wire::use_::Ref<'_> {
28158            match self.raw.ordinal() {
28159                1 => crate::wire::use_::Ref::Service(unsafe {
28160                    self.raw.get().deref_unchecked::<crate::wire::UseService<'_>>()
28161                }),
28162
28163                2 => crate::wire::use_::Ref::Protocol(unsafe {
28164                    self.raw.get().deref_unchecked::<crate::wire::UseProtocol<'_>>()
28165                }),
28166
28167                3 => crate::wire::use_::Ref::Directory(unsafe {
28168                    self.raw.get().deref_unchecked::<crate::wire::UseDirectory<'_>>()
28169                }),
28170
28171                4 => crate::wire::use_::Ref::Storage(unsafe {
28172                    self.raw.get().deref_unchecked::<crate::wire::UseStorage<'_>>()
28173                }),
28174
28175                7 => crate::wire::use_::Ref::EventStream(unsafe {
28176                    self.raw.get().deref_unchecked::<crate::wire::UseEventStream<'_>>()
28177                }),
28178
28179                8 => crate::wire::use_::Ref::Runner(unsafe {
28180                    self.raw.get().deref_unchecked::<crate::wire::UseRunner<'_>>()
28181                }),
28182
28183                9 => crate::wire::use_::Ref::Config(unsafe {
28184                    self.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'_>>()
28185                }),
28186
28187                10 => crate::wire::use_::Ref::Dictionary(unsafe {
28188                    self.raw.get().deref_unchecked::<crate::wire::UseDictionary<'_>>()
28189                }),
28190
28191                unknown => crate::wire::use_::Ref::UnknownOrdinal_(unknown),
28192            }
28193        }
28194    }
28195
28196    unsafe impl<___D> ::fidl_next::Decode<___D> for Use<'static>
28197    where
28198        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
28199        ___D: ::fidl_next::Decoder,
28200    {
28201        fn decode(
28202            mut slot: ::fidl_next::Slot<'_, Self>,
28203            decoder: &mut ___D,
28204            _: (),
28205        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28206            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
28207            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
28208                1 => {
28209                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseService<'static>>(
28210                        raw,
28211                        decoder,
28212                        (),
28213                    )?
28214                }
28215
28216                2 => {
28217                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseProtocol<'static>>(
28218                        raw,
28219                        decoder,
28220                        (),
28221                    )?
28222                }
28223
28224                3 => ::fidl_next::RawWireUnion::decode_as::<
28225                    ___D,
28226                    crate::wire::UseDirectory<'static>,
28227                >(raw, decoder, ())?,
28228
28229                4 => {
28230                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseStorage<'static>>(
28231                        raw,
28232                        decoder,
28233                        (),
28234                    )?
28235                }
28236
28237                7 => ::fidl_next::RawWireUnion::decode_as::<
28238                    ___D,
28239                    crate::wire::UseEventStream<'static>,
28240                >(raw, decoder, ())?,
28241
28242                8 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseRunner<'static>>(
28243                    raw,
28244                    decoder,
28245                    (),
28246                )?,
28247
28248                9 => ::fidl_next::RawWireUnion::decode_as::<
28249                    ___D,
28250                    crate::wire::UseConfiguration<'static>,
28251                >(raw, decoder, ())?,
28252
28253                10 => ::fidl_next::RawWireUnion::decode_as::<
28254                    ___D,
28255                    crate::wire::UseDictionary<'static>,
28256                >(raw, decoder, ())?,
28257
28258                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
28259            }
28260
28261            Ok(())
28262        }
28263    }
28264
28265    impl<'de> ::core::fmt::Debug for Use<'de> {
28266        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28267            match self.raw.ordinal() {
28268                1 => unsafe {
28269                    self.raw.get().deref_unchecked::<crate::wire::UseService<'_>>().fmt(f)
28270                },
28271                2 => unsafe {
28272                    self.raw.get().deref_unchecked::<crate::wire::UseProtocol<'_>>().fmt(f)
28273                },
28274                3 => unsafe {
28275                    self.raw.get().deref_unchecked::<crate::wire::UseDirectory<'_>>().fmt(f)
28276                },
28277                4 => unsafe {
28278                    self.raw.get().deref_unchecked::<crate::wire::UseStorage<'_>>().fmt(f)
28279                },
28280                7 => unsafe {
28281                    self.raw.get().deref_unchecked::<crate::wire::UseEventStream<'_>>().fmt(f)
28282                },
28283                8 => unsafe {
28284                    self.raw.get().deref_unchecked::<crate::wire::UseRunner<'_>>().fmt(f)
28285                },
28286                9 => unsafe {
28287                    self.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'_>>().fmt(f)
28288                },
28289                10 => unsafe {
28290                    self.raw.get().deref_unchecked::<crate::wire::UseDictionary<'_>>().fmt(f)
28291                },
28292                _ => unsafe { ::core::hint::unreachable_unchecked() },
28293            }
28294        }
28295    }
28296
28297    impl<'de> ::fidl_next::IntoNatural for Use<'de> {
28298        type Natural = crate::natural::Use;
28299    }
28300
28301    impl ::fidl_next::Unconstrained for Use<'static> {}
28302
28303    /// The wire type corresponding to [`ExposeService`].
28304    #[repr(C)]
28305    pub struct ExposeService<'de> {
28306        pub(crate) table: ::fidl_next::WireTable<'de>,
28307    }
28308
28309    impl<'de> Drop for ExposeService<'de> {
28310        fn drop(&mut self) {
28311            let _ = self
28312                .table
28313                .get(1)
28314                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28315
28316            let _ = self.table.get(2).map(|envelope| unsafe {
28317                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28318            });
28319
28320            let _ = self
28321                .table
28322                .get(3)
28323                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28324
28325            let _ = self.table.get(4).map(|envelope| unsafe {
28326                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28327            });
28328
28329            let _ = self
28330                .table
28331                .get(5)
28332                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28333
28334            let _ = self.table.get(6).map(|envelope| unsafe {
28335                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28336            });
28337        }
28338    }
28339
28340    unsafe impl ::fidl_next::Wire for ExposeService<'static> {
28341        type Owned<'de> = ExposeService<'de>;
28342
28343        #[inline]
28344        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28345            ::fidl_next::munge!(let Self { table } = out);
28346            ::fidl_next::WireTable::zero_padding(table);
28347        }
28348    }
28349
28350    unsafe impl<___D> ::fidl_next::Decode<___D> for ExposeService<'static>
28351    where
28352        ___D: ::fidl_next::Decoder + ?Sized,
28353    {
28354        fn decode(
28355            slot: ::fidl_next::Slot<'_, Self>,
28356            decoder: &mut ___D,
28357            _: (),
28358        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28359            ::fidl_next::munge!(let Self { table } = slot);
28360
28361            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28362                match ordinal {
28363                    0 => unsafe { ::core::hint::unreachable_unchecked() },
28364
28365                    1 => {
28366                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
28367                            slot.as_mut(),
28368                            decoder,
28369                            (),
28370                        )?;
28371
28372                        Ok(())
28373                    }
28374
28375                    2 => {
28376                        ::fidl_next::WireEnvelope::decode_as::<
28377                            ___D,
28378                            ::fidl_next::WireString<'static>,
28379                        >(slot.as_mut(), decoder, 100)?;
28380
28381                        let value = unsafe {
28382                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28383                        };
28384
28385                        if value.len() > 100 {
28386                            return Err(::fidl_next::DecodeError::VectorTooLong {
28387                                size: value.len() as u64,
28388                                limit: 100,
28389                            });
28390                        }
28391
28392                        Ok(())
28393                    }
28394
28395                    3 => {
28396                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
28397                            slot.as_mut(),
28398                            decoder,
28399                            (),
28400                        )?;
28401
28402                        Ok(())
28403                    }
28404
28405                    4 => {
28406                        ::fidl_next::WireEnvelope::decode_as::<
28407                            ___D,
28408                            ::fidl_next::WireString<'static>,
28409                        >(slot.as_mut(), decoder, 100)?;
28410
28411                        let value = unsafe {
28412                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28413                        };
28414
28415                        if value.len() > 100 {
28416                            return Err(::fidl_next::DecodeError::VectorTooLong {
28417                                size: value.len() as u64,
28418                                limit: 100,
28419                            });
28420                        }
28421
28422                        Ok(())
28423                    }
28424
28425                    5 => {
28426                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
28427                            slot.as_mut(),
28428                            decoder,
28429                            (),
28430                        )?;
28431
28432                        Ok(())
28433                    }
28434
28435                    6 => {
28436                        ::fidl_next::WireEnvelope::decode_as::<
28437                            ___D,
28438                            ::fidl_next::WireString<'static>,
28439                        >(slot.as_mut(), decoder, 1024)?;
28440
28441                        let value = unsafe {
28442                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28443                        };
28444
28445                        if value.len() > 1024 {
28446                            return Err(::fidl_next::DecodeError::VectorTooLong {
28447                                size: value.len() as u64,
28448                                limit: 1024,
28449                            });
28450                        }
28451
28452                        Ok(())
28453                    }
28454
28455                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
28456                }
28457            })
28458        }
28459    }
28460
28461    impl<'de> ExposeService<'de> {
28462        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28463            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28464        }
28465
28466        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28467            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28468        }
28469
28470        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28471            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28472        }
28473
28474        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28475            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
28476        }
28477
28478        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28479            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
28480        }
28481
28482        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28483            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28484        }
28485    }
28486
28487    impl<'de> ::core::fmt::Debug for ExposeService<'de> {
28488        fn fmt(
28489            &self,
28490            f: &mut ::core::fmt::Formatter<'_>,
28491        ) -> ::core::result::Result<(), ::core::fmt::Error> {
28492            f.debug_struct("ExposeService")
28493                .field("source", &self.source())
28494                .field("source_name", &self.source_name())
28495                .field("target", &self.target())
28496                .field("target_name", &self.target_name())
28497                .field("availability", &self.availability())
28498                .field("source_dictionary", &self.source_dictionary())
28499                .finish()
28500        }
28501    }
28502
28503    impl<'de> ::fidl_next::IntoNatural for ExposeService<'de> {
28504        type Natural = crate::natural::ExposeService;
28505    }
28506
28507    impl ::fidl_next::Unconstrained for ExposeService<'_> {}
28508
28509    /// The wire type corresponding to [`ExposeProtocol`].
28510    #[repr(C)]
28511    pub struct ExposeProtocol<'de> {
28512        pub(crate) table: ::fidl_next::WireTable<'de>,
28513    }
28514
28515    impl<'de> Drop for ExposeProtocol<'de> {
28516        fn drop(&mut self) {
28517            let _ = self
28518                .table
28519                .get(1)
28520                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28521
28522            let _ = self.table.get(2).map(|envelope| unsafe {
28523                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28524            });
28525
28526            let _ = self
28527                .table
28528                .get(3)
28529                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28530
28531            let _ = self.table.get(4).map(|envelope| unsafe {
28532                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28533            });
28534
28535            let _ = self
28536                .table
28537                .get(5)
28538                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28539
28540            let _ = self.table.get(6).map(|envelope| unsafe {
28541                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28542            });
28543        }
28544    }
28545
28546    unsafe impl ::fidl_next::Wire for ExposeProtocol<'static> {
28547        type Owned<'de> = ExposeProtocol<'de>;
28548
28549        #[inline]
28550        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28551            ::fidl_next::munge!(let Self { table } = out);
28552            ::fidl_next::WireTable::zero_padding(table);
28553        }
28554    }
28555
28556    unsafe impl<___D> ::fidl_next::Decode<___D> for ExposeProtocol<'static>
28557    where
28558        ___D: ::fidl_next::Decoder + ?Sized,
28559    {
28560        fn decode(
28561            slot: ::fidl_next::Slot<'_, Self>,
28562            decoder: &mut ___D,
28563            _: (),
28564        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28565            ::fidl_next::munge!(let Self { table } = slot);
28566
28567            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28568                match ordinal {
28569                    0 => unsafe { ::core::hint::unreachable_unchecked() },
28570
28571                    1 => {
28572                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
28573                            slot.as_mut(),
28574                            decoder,
28575                            (),
28576                        )?;
28577
28578                        Ok(())
28579                    }
28580
28581                    2 => {
28582                        ::fidl_next::WireEnvelope::decode_as::<
28583                            ___D,
28584                            ::fidl_next::WireString<'static>,
28585                        >(slot.as_mut(), decoder, 100)?;
28586
28587                        let value = unsafe {
28588                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28589                        };
28590
28591                        if value.len() > 100 {
28592                            return Err(::fidl_next::DecodeError::VectorTooLong {
28593                                size: value.len() as u64,
28594                                limit: 100,
28595                            });
28596                        }
28597
28598                        Ok(())
28599                    }
28600
28601                    3 => {
28602                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
28603                            slot.as_mut(),
28604                            decoder,
28605                            (),
28606                        )?;
28607
28608                        Ok(())
28609                    }
28610
28611                    4 => {
28612                        ::fidl_next::WireEnvelope::decode_as::<
28613                            ___D,
28614                            ::fidl_next::WireString<'static>,
28615                        >(slot.as_mut(), decoder, 100)?;
28616
28617                        let value = unsafe {
28618                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28619                        };
28620
28621                        if value.len() > 100 {
28622                            return Err(::fidl_next::DecodeError::VectorTooLong {
28623                                size: value.len() as u64,
28624                                limit: 100,
28625                            });
28626                        }
28627
28628                        Ok(())
28629                    }
28630
28631                    5 => {
28632                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
28633                            slot.as_mut(),
28634                            decoder,
28635                            (),
28636                        )?;
28637
28638                        Ok(())
28639                    }
28640
28641                    6 => {
28642                        ::fidl_next::WireEnvelope::decode_as::<
28643                            ___D,
28644                            ::fidl_next::WireString<'static>,
28645                        >(slot.as_mut(), decoder, 1024)?;
28646
28647                        let value = unsafe {
28648                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28649                        };
28650
28651                        if value.len() > 1024 {
28652                            return Err(::fidl_next::DecodeError::VectorTooLong {
28653                                size: value.len() as u64,
28654                                limit: 1024,
28655                            });
28656                        }
28657
28658                        Ok(())
28659                    }
28660
28661                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
28662                }
28663            })
28664        }
28665    }
28666
28667    impl<'de> ExposeProtocol<'de> {
28668        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28669            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28670        }
28671
28672        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28673            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28674        }
28675
28676        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28677            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28678        }
28679
28680        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28681            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
28682        }
28683
28684        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28685            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
28686        }
28687
28688        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28689            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28690        }
28691    }
28692
28693    impl<'de> ::core::fmt::Debug for ExposeProtocol<'de> {
28694        fn fmt(
28695            &self,
28696            f: &mut ::core::fmt::Formatter<'_>,
28697        ) -> ::core::result::Result<(), ::core::fmt::Error> {
28698            f.debug_struct("ExposeProtocol")
28699                .field("source", &self.source())
28700                .field("source_name", &self.source_name())
28701                .field("target", &self.target())
28702                .field("target_name", &self.target_name())
28703                .field("availability", &self.availability())
28704                .field("source_dictionary", &self.source_dictionary())
28705                .finish()
28706        }
28707    }
28708
28709    impl<'de> ::fidl_next::IntoNatural for ExposeProtocol<'de> {
28710        type Natural = crate::natural::ExposeProtocol;
28711    }
28712
28713    impl ::fidl_next::Unconstrained for ExposeProtocol<'_> {}
28714
28715    /// The wire type corresponding to [`ExposeDirectory`].
28716    #[repr(C)]
28717    pub struct ExposeDirectory<'de> {
28718        pub(crate) table: ::fidl_next::WireTable<'de>,
28719    }
28720
28721    impl<'de> Drop for ExposeDirectory<'de> {
28722        fn drop(&mut self) {
28723            let _ = self
28724                .table
28725                .get(1)
28726                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28727
28728            let _ = self.table.get(2).map(|envelope| unsafe {
28729                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28730            });
28731
28732            let _ = self
28733                .table
28734                .get(3)
28735                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28736
28737            let _ = self.table.get(4).map(|envelope| unsafe {
28738                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28739            });
28740
28741            let _ = self.table.get(5).map(|envelope| unsafe {
28742                envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
28743            });
28744
28745            let _ = self.table.get(6).map(|envelope| unsafe {
28746                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28747            });
28748
28749            let _ = self
28750                .table
28751                .get(7)
28752                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28753
28754            let _ = self.table.get(8).map(|envelope| unsafe {
28755                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28756            });
28757        }
28758    }
28759
28760    unsafe impl ::fidl_next::Wire for ExposeDirectory<'static> {
28761        type Owned<'de> = ExposeDirectory<'de>;
28762
28763        #[inline]
28764        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28765            ::fidl_next::munge!(let Self { table } = out);
28766            ::fidl_next::WireTable::zero_padding(table);
28767        }
28768    }
28769
28770    unsafe impl<___D> ::fidl_next::Decode<___D> for ExposeDirectory<'static>
28771    where
28772        ___D: ::fidl_next::Decoder + ?Sized,
28773    {
28774        fn decode(
28775            slot: ::fidl_next::Slot<'_, Self>,
28776            decoder: &mut ___D,
28777            _: (),
28778        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28779            ::fidl_next::munge!(let Self { table } = slot);
28780
28781            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28782                match ordinal {
28783                    0 => unsafe { ::core::hint::unreachable_unchecked() },
28784
28785                    1 => {
28786                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
28787                            slot.as_mut(),
28788                            decoder,
28789                            (),
28790                        )?;
28791
28792                        Ok(())
28793                    }
28794
28795                    2 => {
28796                        ::fidl_next::WireEnvelope::decode_as::<
28797                            ___D,
28798                            ::fidl_next::WireString<'static>,
28799                        >(slot.as_mut(), decoder, 100)?;
28800
28801                        let value = unsafe {
28802                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28803                        };
28804
28805                        if value.len() > 100 {
28806                            return Err(::fidl_next::DecodeError::VectorTooLong {
28807                                size: value.len() as u64,
28808                                limit: 100,
28809                            });
28810                        }
28811
28812                        Ok(())
28813                    }
28814
28815                    3 => {
28816                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
28817                            slot.as_mut(),
28818                            decoder,
28819                            (),
28820                        )?;
28821
28822                        Ok(())
28823                    }
28824
28825                    4 => {
28826                        ::fidl_next::WireEnvelope::decode_as::<
28827                            ___D,
28828                            ::fidl_next::WireString<'static>,
28829                        >(slot.as_mut(), decoder, 100)?;
28830
28831                        let value = unsafe {
28832                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28833                        };
28834
28835                        if value.len() > 100 {
28836                            return Err(::fidl_next::DecodeError::VectorTooLong {
28837                                size: value.len() as u64,
28838                                limit: 100,
28839                            });
28840                        }
28841
28842                        Ok(())
28843                    }
28844
28845                    5 => {
28846                        ::fidl_next::WireEnvelope::decode_as::<
28847                            ___D,
28848                            ::fidl_next_common_fuchsia_io::wire::Operations,
28849                        >(slot.as_mut(), decoder, ())?;
28850
28851                        Ok(())
28852                    }
28853
28854                    6 => {
28855                        ::fidl_next::WireEnvelope::decode_as::<
28856                            ___D,
28857                            ::fidl_next::WireString<'static>,
28858                        >(slot.as_mut(), decoder, 1024)?;
28859
28860                        let value = unsafe {
28861                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28862                        };
28863
28864                        if value.len() > 1024 {
28865                            return Err(::fidl_next::DecodeError::VectorTooLong {
28866                                size: value.len() as u64,
28867                                limit: 1024,
28868                            });
28869                        }
28870
28871                        Ok(())
28872                    }
28873
28874                    7 => {
28875                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
28876                            slot.as_mut(),
28877                            decoder,
28878                            (),
28879                        )?;
28880
28881                        Ok(())
28882                    }
28883
28884                    8 => {
28885                        ::fidl_next::WireEnvelope::decode_as::<
28886                            ___D,
28887                            ::fidl_next::WireString<'static>,
28888                        >(slot.as_mut(), decoder, 1024)?;
28889
28890                        let value = unsafe {
28891                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
28892                        };
28893
28894                        if value.len() > 1024 {
28895                            return Err(::fidl_next::DecodeError::VectorTooLong {
28896                                size: value.len() as u64,
28897                                limit: 1024,
28898                            });
28899                        }
28900
28901                        Ok(())
28902                    }
28903
28904                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
28905                }
28906            })
28907        }
28908    }
28909
28910    impl<'de> ExposeDirectory<'de> {
28911        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28912            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28913        }
28914
28915        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28916            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28917        }
28918
28919        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28920            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28921        }
28922
28923        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28924            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
28925        }
28926
28927        pub fn rights(
28928            &self,
28929        ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
28930            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
28931        }
28932
28933        pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28934            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28935        }
28936
28937        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28938            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
28939        }
28940
28941        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
28942            unsafe { Some(self.table.get(8)?.deref_unchecked()) }
28943        }
28944    }
28945
28946    impl<'de> ::core::fmt::Debug for ExposeDirectory<'de> {
28947        fn fmt(
28948            &self,
28949            f: &mut ::core::fmt::Formatter<'_>,
28950        ) -> ::core::result::Result<(), ::core::fmt::Error> {
28951            f.debug_struct("ExposeDirectory")
28952                .field("source", &self.source())
28953                .field("source_name", &self.source_name())
28954                .field("target", &self.target())
28955                .field("target_name", &self.target_name())
28956                .field("rights", &self.rights())
28957                .field("subdir", &self.subdir())
28958                .field("availability", &self.availability())
28959                .field("source_dictionary", &self.source_dictionary())
28960                .finish()
28961        }
28962    }
28963
28964    impl<'de> ::fidl_next::IntoNatural for ExposeDirectory<'de> {
28965        type Natural = crate::natural::ExposeDirectory;
28966    }
28967
28968    impl ::fidl_next::Unconstrained for ExposeDirectory<'_> {}
28969
28970    /// The wire type corresponding to [`ExposeRunner`].
28971    #[repr(C)]
28972    pub struct ExposeRunner<'de> {
28973        pub(crate) table: ::fidl_next::WireTable<'de>,
28974    }
28975
28976    impl<'de> Drop for ExposeRunner<'de> {
28977        fn drop(&mut self) {
28978            let _ = self
28979                .table
28980                .get(1)
28981                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28982
28983            let _ = self.table.get(2).map(|envelope| unsafe {
28984                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28985            });
28986
28987            let _ = self
28988                .table
28989                .get(3)
28990                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28991
28992            let _ = self.table.get(4).map(|envelope| unsafe {
28993                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28994            });
28995
28996            let _ = self.table.get(6).map(|envelope| unsafe {
28997                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
28998            });
28999        }
29000    }
29001
29002    unsafe impl ::fidl_next::Wire for ExposeRunner<'static> {
29003        type Owned<'de> = ExposeRunner<'de>;
29004
29005        #[inline]
29006        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29007            ::fidl_next::munge!(let Self { table } = out);
29008            ::fidl_next::WireTable::zero_padding(table);
29009        }
29010    }
29011
29012    unsafe impl<___D> ::fidl_next::Decode<___D> for ExposeRunner<'static>
29013    where
29014        ___D: ::fidl_next::Decoder + ?Sized,
29015    {
29016        fn decode(
29017            slot: ::fidl_next::Slot<'_, Self>,
29018            decoder: &mut ___D,
29019            _: (),
29020        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29021            ::fidl_next::munge!(let Self { table } = slot);
29022
29023            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29024                match ordinal {
29025                    0 => unsafe { ::core::hint::unreachable_unchecked() },
29026
29027                    1 => {
29028                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29029                            slot.as_mut(),
29030                            decoder,
29031                            (),
29032                        )?;
29033
29034                        Ok(())
29035                    }
29036
29037                    2 => {
29038                        ::fidl_next::WireEnvelope::decode_as::<
29039                            ___D,
29040                            ::fidl_next::WireString<'static>,
29041                        >(slot.as_mut(), decoder, 100)?;
29042
29043                        let value = unsafe {
29044                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29045                        };
29046
29047                        if value.len() > 100 {
29048                            return Err(::fidl_next::DecodeError::VectorTooLong {
29049                                size: value.len() as u64,
29050                                limit: 100,
29051                            });
29052                        }
29053
29054                        Ok(())
29055                    }
29056
29057                    3 => {
29058                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29059                            slot.as_mut(),
29060                            decoder,
29061                            (),
29062                        )?;
29063
29064                        Ok(())
29065                    }
29066
29067                    4 => {
29068                        ::fidl_next::WireEnvelope::decode_as::<
29069                            ___D,
29070                            ::fidl_next::WireString<'static>,
29071                        >(slot.as_mut(), decoder, 100)?;
29072
29073                        let value = unsafe {
29074                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29075                        };
29076
29077                        if value.len() > 100 {
29078                            return Err(::fidl_next::DecodeError::VectorTooLong {
29079                                size: value.len() as u64,
29080                                limit: 100,
29081                            });
29082                        }
29083
29084                        Ok(())
29085                    }
29086
29087                    6 => {
29088                        ::fidl_next::WireEnvelope::decode_as::<
29089                            ___D,
29090                            ::fidl_next::WireString<'static>,
29091                        >(slot.as_mut(), decoder, 1024)?;
29092
29093                        let value = unsafe {
29094                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29095                        };
29096
29097                        if value.len() > 1024 {
29098                            return Err(::fidl_next::DecodeError::VectorTooLong {
29099                                size: value.len() as u64,
29100                                limit: 1024,
29101                            });
29102                        }
29103
29104                        Ok(())
29105                    }
29106
29107                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
29108                }
29109            })
29110        }
29111    }
29112
29113    impl<'de> ExposeRunner<'de> {
29114        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29115            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29116        }
29117
29118        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29119            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29120        }
29121
29122        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29123            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29124        }
29125
29126        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29127            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29128        }
29129
29130        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29131            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29132        }
29133    }
29134
29135    impl<'de> ::core::fmt::Debug for ExposeRunner<'de> {
29136        fn fmt(
29137            &self,
29138            f: &mut ::core::fmt::Formatter<'_>,
29139        ) -> ::core::result::Result<(), ::core::fmt::Error> {
29140            f.debug_struct("ExposeRunner")
29141                .field("source", &self.source())
29142                .field("source_name", &self.source_name())
29143                .field("target", &self.target())
29144                .field("target_name", &self.target_name())
29145                .field("source_dictionary", &self.source_dictionary())
29146                .finish()
29147        }
29148    }
29149
29150    impl<'de> ::fidl_next::IntoNatural for ExposeRunner<'de> {
29151        type Natural = crate::natural::ExposeRunner;
29152    }
29153
29154    impl ::fidl_next::Unconstrained for ExposeRunner<'_> {}
29155
29156    /// The wire type corresponding to [`ExposeResolver`].
29157    #[repr(C)]
29158    pub struct ExposeResolver<'de> {
29159        pub(crate) table: ::fidl_next::WireTable<'de>,
29160    }
29161
29162    impl<'de> Drop for ExposeResolver<'de> {
29163        fn drop(&mut self) {
29164            let _ = self
29165                .table
29166                .get(1)
29167                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29168
29169            let _ = self.table.get(2).map(|envelope| unsafe {
29170                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29171            });
29172
29173            let _ = self
29174                .table
29175                .get(3)
29176                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29177
29178            let _ = self.table.get(4).map(|envelope| unsafe {
29179                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29180            });
29181
29182            let _ = self.table.get(6).map(|envelope| unsafe {
29183                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29184            });
29185        }
29186    }
29187
29188    unsafe impl ::fidl_next::Wire for ExposeResolver<'static> {
29189        type Owned<'de> = ExposeResolver<'de>;
29190
29191        #[inline]
29192        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29193            ::fidl_next::munge!(let Self { table } = out);
29194            ::fidl_next::WireTable::zero_padding(table);
29195        }
29196    }
29197
29198    unsafe impl<___D> ::fidl_next::Decode<___D> for ExposeResolver<'static>
29199    where
29200        ___D: ::fidl_next::Decoder + ?Sized,
29201    {
29202        fn decode(
29203            slot: ::fidl_next::Slot<'_, Self>,
29204            decoder: &mut ___D,
29205            _: (),
29206        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29207            ::fidl_next::munge!(let Self { table } = slot);
29208
29209            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29210                match ordinal {
29211                    0 => unsafe { ::core::hint::unreachable_unchecked() },
29212
29213                    1 => {
29214                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29215                            slot.as_mut(),
29216                            decoder,
29217                            (),
29218                        )?;
29219
29220                        Ok(())
29221                    }
29222
29223                    2 => {
29224                        ::fidl_next::WireEnvelope::decode_as::<
29225                            ___D,
29226                            ::fidl_next::WireString<'static>,
29227                        >(slot.as_mut(), decoder, 100)?;
29228
29229                        let value = unsafe {
29230                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29231                        };
29232
29233                        if value.len() > 100 {
29234                            return Err(::fidl_next::DecodeError::VectorTooLong {
29235                                size: value.len() as u64,
29236                                limit: 100,
29237                            });
29238                        }
29239
29240                        Ok(())
29241                    }
29242
29243                    3 => {
29244                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29245                            slot.as_mut(),
29246                            decoder,
29247                            (),
29248                        )?;
29249
29250                        Ok(())
29251                    }
29252
29253                    4 => {
29254                        ::fidl_next::WireEnvelope::decode_as::<
29255                            ___D,
29256                            ::fidl_next::WireString<'static>,
29257                        >(slot.as_mut(), decoder, 100)?;
29258
29259                        let value = unsafe {
29260                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29261                        };
29262
29263                        if value.len() > 100 {
29264                            return Err(::fidl_next::DecodeError::VectorTooLong {
29265                                size: value.len() as u64,
29266                                limit: 100,
29267                            });
29268                        }
29269
29270                        Ok(())
29271                    }
29272
29273                    6 => {
29274                        ::fidl_next::WireEnvelope::decode_as::<
29275                            ___D,
29276                            ::fidl_next::WireString<'static>,
29277                        >(slot.as_mut(), decoder, 1024)?;
29278
29279                        let value = unsafe {
29280                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29281                        };
29282
29283                        if value.len() > 1024 {
29284                            return Err(::fidl_next::DecodeError::VectorTooLong {
29285                                size: value.len() as u64,
29286                                limit: 1024,
29287                            });
29288                        }
29289
29290                        Ok(())
29291                    }
29292
29293                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
29294                }
29295            })
29296        }
29297    }
29298
29299    impl<'de> ExposeResolver<'de> {
29300        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29301            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29302        }
29303
29304        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29305            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29306        }
29307
29308        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29309            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29310        }
29311
29312        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29313            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29314        }
29315
29316        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29317            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29318        }
29319    }
29320
29321    impl<'de> ::core::fmt::Debug for ExposeResolver<'de> {
29322        fn fmt(
29323            &self,
29324            f: &mut ::core::fmt::Formatter<'_>,
29325        ) -> ::core::result::Result<(), ::core::fmt::Error> {
29326            f.debug_struct("ExposeResolver")
29327                .field("source", &self.source())
29328                .field("source_name", &self.source_name())
29329                .field("target", &self.target())
29330                .field("target_name", &self.target_name())
29331                .field("source_dictionary", &self.source_dictionary())
29332                .finish()
29333        }
29334    }
29335
29336    impl<'de> ::fidl_next::IntoNatural for ExposeResolver<'de> {
29337        type Natural = crate::natural::ExposeResolver;
29338    }
29339
29340    impl ::fidl_next::Unconstrained for ExposeResolver<'_> {}
29341
29342    /// The wire type corresponding to [`ExposeDictionary`].
29343    #[repr(C)]
29344    pub struct ExposeDictionary<'de> {
29345        pub(crate) table: ::fidl_next::WireTable<'de>,
29346    }
29347
29348    impl<'de> Drop for ExposeDictionary<'de> {
29349        fn drop(&mut self) {
29350            let _ = self
29351                .table
29352                .get(1)
29353                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29354
29355            let _ = self.table.get(2).map(|envelope| unsafe {
29356                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29357            });
29358
29359            let _ = self
29360                .table
29361                .get(3)
29362                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29363
29364            let _ = self.table.get(4).map(|envelope| unsafe {
29365                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29366            });
29367
29368            let _ = self
29369                .table
29370                .get(5)
29371                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
29372
29373            let _ = self.table.get(6).map(|envelope| unsafe {
29374                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29375            });
29376        }
29377    }
29378
29379    unsafe impl ::fidl_next::Wire for ExposeDictionary<'static> {
29380        type Owned<'de> = ExposeDictionary<'de>;
29381
29382        #[inline]
29383        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29384            ::fidl_next::munge!(let Self { table } = out);
29385            ::fidl_next::WireTable::zero_padding(table);
29386        }
29387    }
29388
29389    unsafe impl<___D> ::fidl_next::Decode<___D> for ExposeDictionary<'static>
29390    where
29391        ___D: ::fidl_next::Decoder + ?Sized,
29392    {
29393        fn decode(
29394            slot: ::fidl_next::Slot<'_, Self>,
29395            decoder: &mut ___D,
29396            _: (),
29397        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29398            ::fidl_next::munge!(let Self { table } = slot);
29399
29400            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29401                match ordinal {
29402                    0 => unsafe { ::core::hint::unreachable_unchecked() },
29403
29404                    1 => {
29405                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29406                            slot.as_mut(),
29407                            decoder,
29408                            (),
29409                        )?;
29410
29411                        Ok(())
29412                    }
29413
29414                    2 => {
29415                        ::fidl_next::WireEnvelope::decode_as::<
29416                            ___D,
29417                            ::fidl_next::WireString<'static>,
29418                        >(slot.as_mut(), decoder, 100)?;
29419
29420                        let value = unsafe {
29421                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29422                        };
29423
29424                        if value.len() > 100 {
29425                            return Err(::fidl_next::DecodeError::VectorTooLong {
29426                                size: value.len() as u64,
29427                                limit: 100,
29428                            });
29429                        }
29430
29431                        Ok(())
29432                    }
29433
29434                    3 => {
29435                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29436                            slot.as_mut(),
29437                            decoder,
29438                            (),
29439                        )?;
29440
29441                        Ok(())
29442                    }
29443
29444                    4 => {
29445                        ::fidl_next::WireEnvelope::decode_as::<
29446                            ___D,
29447                            ::fidl_next::WireString<'static>,
29448                        >(slot.as_mut(), decoder, 100)?;
29449
29450                        let value = unsafe {
29451                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29452                        };
29453
29454                        if value.len() > 100 {
29455                            return Err(::fidl_next::DecodeError::VectorTooLong {
29456                                size: value.len() as u64,
29457                                limit: 100,
29458                            });
29459                        }
29460
29461                        Ok(())
29462                    }
29463
29464                    5 => {
29465                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
29466                            slot.as_mut(),
29467                            decoder,
29468                            (),
29469                        )?;
29470
29471                        Ok(())
29472                    }
29473
29474                    6 => {
29475                        ::fidl_next::WireEnvelope::decode_as::<
29476                            ___D,
29477                            ::fidl_next::WireString<'static>,
29478                        >(slot.as_mut(), decoder, 1024)?;
29479
29480                        let value = unsafe {
29481                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29482                        };
29483
29484                        if value.len() > 1024 {
29485                            return Err(::fidl_next::DecodeError::VectorTooLong {
29486                                size: value.len() as u64,
29487                                limit: 1024,
29488                            });
29489                        }
29490
29491                        Ok(())
29492                    }
29493
29494                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
29495                }
29496            })
29497        }
29498    }
29499
29500    impl<'de> ExposeDictionary<'de> {
29501        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29502            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29503        }
29504
29505        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29506            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29507        }
29508
29509        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29510            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29511        }
29512
29513        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29514            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29515        }
29516
29517        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
29518            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
29519        }
29520
29521        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29522            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29523        }
29524    }
29525
29526    impl<'de> ::core::fmt::Debug for ExposeDictionary<'de> {
29527        fn fmt(
29528            &self,
29529            f: &mut ::core::fmt::Formatter<'_>,
29530        ) -> ::core::result::Result<(), ::core::fmt::Error> {
29531            f.debug_struct("ExposeDictionary")
29532                .field("source", &self.source())
29533                .field("source_name", &self.source_name())
29534                .field("target", &self.target())
29535                .field("target_name", &self.target_name())
29536                .field("availability", &self.availability())
29537                .field("source_dictionary", &self.source_dictionary())
29538                .finish()
29539        }
29540    }
29541
29542    impl<'de> ::fidl_next::IntoNatural for ExposeDictionary<'de> {
29543        type Natural = crate::natural::ExposeDictionary;
29544    }
29545
29546    impl ::fidl_next::Unconstrained for ExposeDictionary<'_> {}
29547
29548    /// The wire type corresponding to [`ExposeConfiguration`].
29549    #[repr(C)]
29550    pub struct ExposeConfiguration<'de> {
29551        pub(crate) table: ::fidl_next::WireTable<'de>,
29552    }
29553
29554    impl<'de> Drop for ExposeConfiguration<'de> {
29555        fn drop(&mut self) {
29556            let _ = self
29557                .table
29558                .get(1)
29559                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29560
29561            let _ = self.table.get(2).map(|envelope| unsafe {
29562                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29563            });
29564
29565            let _ = self
29566                .table
29567                .get(3)
29568                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29569
29570            let _ = self.table.get(4).map(|envelope| unsafe {
29571                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29572            });
29573
29574            let _ = self
29575                .table
29576                .get(5)
29577                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
29578
29579            let _ = self.table.get(6).map(|envelope| unsafe {
29580                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29581            });
29582        }
29583    }
29584
29585    unsafe impl ::fidl_next::Wire for ExposeConfiguration<'static> {
29586        type Owned<'de> = ExposeConfiguration<'de>;
29587
29588        #[inline]
29589        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29590            ::fidl_next::munge!(let Self { table } = out);
29591            ::fidl_next::WireTable::zero_padding(table);
29592        }
29593    }
29594
29595    unsafe impl<___D> ::fidl_next::Decode<___D> for ExposeConfiguration<'static>
29596    where
29597        ___D: ::fidl_next::Decoder + ?Sized,
29598    {
29599        fn decode(
29600            slot: ::fidl_next::Slot<'_, Self>,
29601            decoder: &mut ___D,
29602            _: (),
29603        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29604            ::fidl_next::munge!(let Self { table } = slot);
29605
29606            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29607                match ordinal {
29608                    0 => unsafe { ::core::hint::unreachable_unchecked() },
29609
29610                    1 => {
29611                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29612                            slot.as_mut(),
29613                            decoder,
29614                            (),
29615                        )?;
29616
29617                        Ok(())
29618                    }
29619
29620                    2 => {
29621                        ::fidl_next::WireEnvelope::decode_as::<
29622                            ___D,
29623                            ::fidl_next::WireString<'static>,
29624                        >(slot.as_mut(), decoder, 100)?;
29625
29626                        let value = unsafe {
29627                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29628                        };
29629
29630                        if value.len() > 100 {
29631                            return Err(::fidl_next::DecodeError::VectorTooLong {
29632                                size: value.len() as u64,
29633                                limit: 100,
29634                            });
29635                        }
29636
29637                        Ok(())
29638                    }
29639
29640                    3 => {
29641                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
29642                            slot.as_mut(),
29643                            decoder,
29644                            (),
29645                        )?;
29646
29647                        Ok(())
29648                    }
29649
29650                    4 => {
29651                        ::fidl_next::WireEnvelope::decode_as::<
29652                            ___D,
29653                            ::fidl_next::WireString<'static>,
29654                        >(slot.as_mut(), decoder, 100)?;
29655
29656                        let value = unsafe {
29657                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29658                        };
29659
29660                        if value.len() > 100 {
29661                            return Err(::fidl_next::DecodeError::VectorTooLong {
29662                                size: value.len() as u64,
29663                                limit: 100,
29664                            });
29665                        }
29666
29667                        Ok(())
29668                    }
29669
29670                    5 => {
29671                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
29672                            slot.as_mut(),
29673                            decoder,
29674                            (),
29675                        )?;
29676
29677                        Ok(())
29678                    }
29679
29680                    6 => {
29681                        ::fidl_next::WireEnvelope::decode_as::<
29682                            ___D,
29683                            ::fidl_next::WireString<'static>,
29684                        >(slot.as_mut(), decoder, 1024)?;
29685
29686                        let value = unsafe {
29687                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
29688                        };
29689
29690                        if value.len() > 1024 {
29691                            return Err(::fidl_next::DecodeError::VectorTooLong {
29692                                size: value.len() as u64,
29693                                limit: 1024,
29694                            });
29695                        }
29696
29697                        Ok(())
29698                    }
29699
29700                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
29701                }
29702            })
29703        }
29704    }
29705
29706    impl<'de> ExposeConfiguration<'de> {
29707        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29708            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29709        }
29710
29711        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29712            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29713        }
29714
29715        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29716            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29717        }
29718
29719        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29720            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29721        }
29722
29723        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
29724            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
29725        }
29726
29727        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
29728            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29729        }
29730    }
29731
29732    impl<'de> ::core::fmt::Debug for ExposeConfiguration<'de> {
29733        fn fmt(
29734            &self,
29735            f: &mut ::core::fmt::Formatter<'_>,
29736        ) -> ::core::result::Result<(), ::core::fmt::Error> {
29737            f.debug_struct("ExposeConfiguration")
29738                .field("source", &self.source())
29739                .field("source_name", &self.source_name())
29740                .field("target", &self.target())
29741                .field("target_name", &self.target_name())
29742                .field("availability", &self.availability())
29743                .field("source_dictionary", &self.source_dictionary())
29744                .finish()
29745        }
29746    }
29747
29748    impl<'de> ::fidl_next::IntoNatural for ExposeConfiguration<'de> {
29749        type Natural = crate::natural::ExposeConfiguration;
29750    }
29751
29752    impl ::fidl_next::Unconstrained for ExposeConfiguration<'_> {}
29753
29754    /// The wire type corresponding to [`Expose`].
29755    #[repr(transparent)]
29756    pub struct Expose<'de> {
29757        pub(crate) raw: ::fidl_next::RawWireUnion,
29758        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
29759    }
29760
29761    impl<'de> Drop for Expose<'de> {
29762        fn drop(&mut self) {
29763            match self.raw.ordinal() {
29764                1 => {
29765                    let _ = unsafe {
29766                        self.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
29767                    };
29768                }
29769
29770                2 => {
29771                    let _ = unsafe {
29772                        self.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
29773                    };
29774                }
29775
29776                3 => {
29777                    let _ = unsafe {
29778                        self.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
29779                    };
29780                }
29781
29782                4 => {
29783                    let _ = unsafe {
29784                        self.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
29785                    };
29786                }
29787
29788                5 => {
29789                    let _ = unsafe {
29790                        self.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
29791                    };
29792                }
29793
29794                7 => {
29795                    let _ = unsafe {
29796                        self.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
29797                    };
29798                }
29799
29800                8 => {
29801                    let _ = unsafe {
29802                        self.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
29803                    };
29804                }
29805
29806                _ => (),
29807            }
29808        }
29809    }
29810
29811    unsafe impl ::fidl_next::Wire for Expose<'static> {
29812        type Owned<'de> = Expose<'de>;
29813
29814        #[inline]
29815        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29816            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
29817            ::fidl_next::RawWireUnion::zero_padding(raw);
29818        }
29819    }
29820
29821    pub mod expose {
29822        pub enum Ref<'de> {
29823            Service(&'de crate::wire::ExposeService<'de>),
29824
29825            Protocol(&'de crate::wire::ExposeProtocol<'de>),
29826
29827            Directory(&'de crate::wire::ExposeDirectory<'de>),
29828
29829            Runner(&'de crate::wire::ExposeRunner<'de>),
29830
29831            Resolver(&'de crate::wire::ExposeResolver<'de>),
29832
29833            Dictionary(&'de crate::wire::ExposeDictionary<'de>),
29834
29835            Config(&'de crate::wire::ExposeConfiguration<'de>),
29836
29837            UnknownOrdinal_(u64),
29838        }
29839    }
29840
29841    impl<'de> Expose<'de> {
29842        pub fn as_ref(&self) -> crate::wire::expose::Ref<'_> {
29843            match self.raw.ordinal() {
29844                1 => crate::wire::expose::Ref::Service(unsafe {
29845                    self.raw.get().deref_unchecked::<crate::wire::ExposeService<'_>>()
29846                }),
29847
29848                2 => crate::wire::expose::Ref::Protocol(unsafe {
29849                    self.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'_>>()
29850                }),
29851
29852                3 => crate::wire::expose::Ref::Directory(unsafe {
29853                    self.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'_>>()
29854                }),
29855
29856                4 => crate::wire::expose::Ref::Runner(unsafe {
29857                    self.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'_>>()
29858                }),
29859
29860                5 => crate::wire::expose::Ref::Resolver(unsafe {
29861                    self.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'_>>()
29862                }),
29863
29864                7 => crate::wire::expose::Ref::Dictionary(unsafe {
29865                    self.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'_>>()
29866                }),
29867
29868                8 => crate::wire::expose::Ref::Config(unsafe {
29869                    self.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'_>>()
29870                }),
29871
29872                unknown => crate::wire::expose::Ref::UnknownOrdinal_(unknown),
29873            }
29874        }
29875    }
29876
29877    unsafe impl<___D> ::fidl_next::Decode<___D> for Expose<'static>
29878    where
29879        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
29880        ___D: ::fidl_next::Decoder,
29881    {
29882        fn decode(
29883            mut slot: ::fidl_next::Slot<'_, Self>,
29884            decoder: &mut ___D,
29885            _: (),
29886        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29887            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
29888            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
29889                1 => ::fidl_next::RawWireUnion::decode_as::<
29890                    ___D,
29891                    crate::wire::ExposeService<'static>,
29892                >(raw, decoder, ())?,
29893
29894                2 => ::fidl_next::RawWireUnion::decode_as::<
29895                    ___D,
29896                    crate::wire::ExposeProtocol<'static>,
29897                >(raw, decoder, ())?,
29898
29899                3 => ::fidl_next::RawWireUnion::decode_as::<
29900                    ___D,
29901                    crate::wire::ExposeDirectory<'static>,
29902                >(raw, decoder, ())?,
29903
29904                4 => ::fidl_next::RawWireUnion::decode_as::<
29905                    ___D,
29906                    crate::wire::ExposeRunner<'static>,
29907                >(raw, decoder, ())?,
29908
29909                5 => ::fidl_next::RawWireUnion::decode_as::<
29910                    ___D,
29911                    crate::wire::ExposeResolver<'static>,
29912                >(raw, decoder, ())?,
29913
29914                7 => ::fidl_next::RawWireUnion::decode_as::<
29915                    ___D,
29916                    crate::wire::ExposeDictionary<'static>,
29917                >(raw, decoder, ())?,
29918
29919                8 => ::fidl_next::RawWireUnion::decode_as::<
29920                    ___D,
29921                    crate::wire::ExposeConfiguration<'static>,
29922                >(raw, decoder, ())?,
29923
29924                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
29925            }
29926
29927            Ok(())
29928        }
29929    }
29930
29931    impl<'de> ::core::fmt::Debug for Expose<'de> {
29932        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29933            match self.raw.ordinal() {
29934                1 => unsafe {
29935                    self.raw.get().deref_unchecked::<crate::wire::ExposeService<'_>>().fmt(f)
29936                },
29937                2 => unsafe {
29938                    self.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'_>>().fmt(f)
29939                },
29940                3 => unsafe {
29941                    self.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'_>>().fmt(f)
29942                },
29943                4 => unsafe {
29944                    self.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'_>>().fmt(f)
29945                },
29946                5 => unsafe {
29947                    self.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'_>>().fmt(f)
29948                },
29949                7 => unsafe {
29950                    self.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'_>>().fmt(f)
29951                },
29952                8 => unsafe {
29953                    self.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'_>>().fmt(f)
29954                },
29955                _ => unsafe { ::core::hint::unreachable_unchecked() },
29956            }
29957        }
29958    }
29959
29960    impl<'de> ::fidl_next::IntoNatural for Expose<'de> {
29961        type Natural = crate::natural::Expose;
29962    }
29963
29964    impl ::fidl_next::Unconstrained for Expose<'static> {}
29965
29966    /// The wire type corresponding to [`OfferService`].
29967    #[repr(C)]
29968    pub struct OfferService<'de> {
29969        pub(crate) table: ::fidl_next::WireTable<'de>,
29970    }
29971
29972    impl<'de> Drop for OfferService<'de> {
29973        fn drop(&mut self) {
29974            let _ = self
29975                .table
29976                .get(1)
29977                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29978
29979            let _ = self.table.get(2).map(|envelope| unsafe {
29980                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29981            });
29982
29983            let _ = self
29984                .table
29985                .get(3)
29986                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29987
29988            let _ = self.table.get(4).map(|envelope| unsafe {
29989                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
29990            });
29991
29992            let _ = self.table.get(5)
29993                .map(|envelope| unsafe {
29994                    envelope.read_unchecked::<::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>()
29995                });
29996
29997            let _ = self.table.get(6)
29998                .map(|envelope| unsafe {
29999                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::NameMapping<'de>>>()
30000                });
30001
30002            let _ = self
30003                .table
30004                .get(7)
30005                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30006
30007            let _ = self.table.get(8).map(|envelope| unsafe {
30008                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30009            });
30010
30011            let _ = self.table.get(9).map(|envelope| unsafe {
30012                envelope.read_unchecked::<crate::wire::DependencyType>()
30013            });
30014        }
30015    }
30016
30017    unsafe impl ::fidl_next::Wire for OfferService<'static> {
30018        type Owned<'de> = OfferService<'de>;
30019
30020        #[inline]
30021        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30022            ::fidl_next::munge!(let Self { table } = out);
30023            ::fidl_next::WireTable::zero_padding(table);
30024        }
30025    }
30026
30027    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferService<'static>
30028    where
30029        ___D: ::fidl_next::Decoder + ?Sized,
30030    {
30031        fn decode(
30032            slot: ::fidl_next::Slot<'_, Self>,
30033            decoder: &mut ___D,
30034            _: (),
30035        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30036            ::fidl_next::munge!(let Self { table } = slot);
30037
30038            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30039                match ordinal {
30040                    0 => unsafe { ::core::hint::unreachable_unchecked() },
30041
30042                    1 => {
30043                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30044                            slot.as_mut(),
30045                            decoder,
30046                            (),
30047                        )?;
30048
30049                        Ok(())
30050                    }
30051
30052                    2 => {
30053                        ::fidl_next::WireEnvelope::decode_as::<
30054                            ___D,
30055                            ::fidl_next::WireString<'static>,
30056                        >(slot.as_mut(), decoder, 100)?;
30057
30058                        let value = unsafe {
30059                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30060                        };
30061
30062                        if value.len() > 100 {
30063                            return Err(::fidl_next::DecodeError::VectorTooLong {
30064                                size: value.len() as u64,
30065                                limit: 100,
30066                            });
30067                        }
30068
30069                        Ok(())
30070                    }
30071
30072                    3 => {
30073                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30074                            slot.as_mut(),
30075                            decoder,
30076                            (),
30077                        )?;
30078
30079                        Ok(())
30080                    }
30081
30082                    4 => {
30083                        ::fidl_next::WireEnvelope::decode_as::<
30084                            ___D,
30085                            ::fidl_next::WireString<'static>,
30086                        >(slot.as_mut(), decoder, 100)?;
30087
30088                        let value = unsafe {
30089                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30090                        };
30091
30092                        if value.len() > 100 {
30093                            return Err(::fidl_next::DecodeError::VectorTooLong {
30094                                size: value.len() as u64,
30095                                limit: 100,
30096                            });
30097                        }
30098
30099                        Ok(())
30100                    }
30101
30102                    5 => {
30103                        ::fidl_next::WireEnvelope::decode_as::<
30104                            ___D,
30105                            ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
30106                        >(slot.as_mut(), decoder, (4294967295, 100))?;
30107
30108                        Ok(())
30109                    }
30110
30111                    6 => {
30112                        ::fidl_next::WireEnvelope::decode_as::<
30113                            ___D,
30114                            ::fidl_next::WireVector<'static, crate::wire::NameMapping<'static>>,
30115                        >(slot.as_mut(), decoder, (4294967295, ()))?;
30116
30117                        Ok(())
30118                    }
30119
30120                    7 => {
30121                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
30122                            slot.as_mut(),
30123                            decoder,
30124                            (),
30125                        )?;
30126
30127                        Ok(())
30128                    }
30129
30130                    8 => {
30131                        ::fidl_next::WireEnvelope::decode_as::<
30132                            ___D,
30133                            ::fidl_next::WireString<'static>,
30134                        >(slot.as_mut(), decoder, 1024)?;
30135
30136                        let value = unsafe {
30137                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30138                        };
30139
30140                        if value.len() > 1024 {
30141                            return Err(::fidl_next::DecodeError::VectorTooLong {
30142                                size: value.len() as u64,
30143                                limit: 1024,
30144                            });
30145                        }
30146
30147                        Ok(())
30148                    }
30149
30150                    9 => {
30151                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
30152                            slot.as_mut(),
30153                            decoder,
30154                            (),
30155                        )?;
30156
30157                        Ok(())
30158                    }
30159
30160                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
30161                }
30162            })
30163        }
30164    }
30165
30166    impl<'de> OfferService<'de> {
30167        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30168            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30169        }
30170
30171        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30172            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30173        }
30174
30175        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30176            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30177        }
30178
30179        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30180            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30181        }
30182
30183        pub fn source_instance_filter(
30184            &self,
30185        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, ::fidl_next::WireString<'de>>>
30186        {
30187            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30188        }
30189
30190        pub fn renamed_instances(
30191            &self,
30192        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::NameMapping<'de>>>
30193        {
30194            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30195        }
30196
30197        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30198            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
30199        }
30200
30201        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30202            unsafe { Some(self.table.get(8)?.deref_unchecked()) }
30203        }
30204
30205        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
30206            unsafe { Some(self.table.get(9)?.deref_unchecked()) }
30207        }
30208    }
30209
30210    impl<'de> ::core::fmt::Debug for OfferService<'de> {
30211        fn fmt(
30212            &self,
30213            f: &mut ::core::fmt::Formatter<'_>,
30214        ) -> ::core::result::Result<(), ::core::fmt::Error> {
30215            f.debug_struct("OfferService")
30216                .field("source", &self.source())
30217                .field("source_name", &self.source_name())
30218                .field("target", &self.target())
30219                .field("target_name", &self.target_name())
30220                .field("source_instance_filter", &self.source_instance_filter())
30221                .field("renamed_instances", &self.renamed_instances())
30222                .field("availability", &self.availability())
30223                .field("source_dictionary", &self.source_dictionary())
30224                .field("dependency_type", &self.dependency_type())
30225                .finish()
30226        }
30227    }
30228
30229    impl<'de> ::fidl_next::IntoNatural for OfferService<'de> {
30230        type Natural = crate::natural::OfferService;
30231    }
30232
30233    impl ::fidl_next::Unconstrained for OfferService<'_> {}
30234
30235    /// The wire type corresponding to [`OfferProtocol`].
30236    #[repr(C)]
30237    pub struct OfferProtocol<'de> {
30238        pub(crate) table: ::fidl_next::WireTable<'de>,
30239    }
30240
30241    impl<'de> Drop for OfferProtocol<'de> {
30242        fn drop(&mut self) {
30243            let _ = self
30244                .table
30245                .get(1)
30246                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30247
30248            let _ = self.table.get(2).map(|envelope| unsafe {
30249                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30250            });
30251
30252            let _ = self
30253                .table
30254                .get(3)
30255                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30256
30257            let _ = self.table.get(4).map(|envelope| unsafe {
30258                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30259            });
30260
30261            let _ = self.table.get(5).map(|envelope| unsafe {
30262                envelope.read_unchecked::<crate::wire::DependencyType>()
30263            });
30264
30265            let _ = self
30266                .table
30267                .get(6)
30268                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30269
30270            let _ = self.table.get(7).map(|envelope| unsafe {
30271                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30272            });
30273        }
30274    }
30275
30276    unsafe impl ::fidl_next::Wire for OfferProtocol<'static> {
30277        type Owned<'de> = OfferProtocol<'de>;
30278
30279        #[inline]
30280        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30281            ::fidl_next::munge!(let Self { table } = out);
30282            ::fidl_next::WireTable::zero_padding(table);
30283        }
30284    }
30285
30286    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferProtocol<'static>
30287    where
30288        ___D: ::fidl_next::Decoder + ?Sized,
30289    {
30290        fn decode(
30291            slot: ::fidl_next::Slot<'_, Self>,
30292            decoder: &mut ___D,
30293            _: (),
30294        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30295            ::fidl_next::munge!(let Self { table } = slot);
30296
30297            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30298                match ordinal {
30299                    0 => unsafe { ::core::hint::unreachable_unchecked() },
30300
30301                    1 => {
30302                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30303                            slot.as_mut(),
30304                            decoder,
30305                            (),
30306                        )?;
30307
30308                        Ok(())
30309                    }
30310
30311                    2 => {
30312                        ::fidl_next::WireEnvelope::decode_as::<
30313                            ___D,
30314                            ::fidl_next::WireString<'static>,
30315                        >(slot.as_mut(), decoder, 100)?;
30316
30317                        let value = unsafe {
30318                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30319                        };
30320
30321                        if value.len() > 100 {
30322                            return Err(::fidl_next::DecodeError::VectorTooLong {
30323                                size: value.len() as u64,
30324                                limit: 100,
30325                            });
30326                        }
30327
30328                        Ok(())
30329                    }
30330
30331                    3 => {
30332                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30333                            slot.as_mut(),
30334                            decoder,
30335                            (),
30336                        )?;
30337
30338                        Ok(())
30339                    }
30340
30341                    4 => {
30342                        ::fidl_next::WireEnvelope::decode_as::<
30343                            ___D,
30344                            ::fidl_next::WireString<'static>,
30345                        >(slot.as_mut(), decoder, 100)?;
30346
30347                        let value = unsafe {
30348                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30349                        };
30350
30351                        if value.len() > 100 {
30352                            return Err(::fidl_next::DecodeError::VectorTooLong {
30353                                size: value.len() as u64,
30354                                limit: 100,
30355                            });
30356                        }
30357
30358                        Ok(())
30359                    }
30360
30361                    5 => {
30362                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
30363                            slot.as_mut(),
30364                            decoder,
30365                            (),
30366                        )?;
30367
30368                        Ok(())
30369                    }
30370
30371                    6 => {
30372                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
30373                            slot.as_mut(),
30374                            decoder,
30375                            (),
30376                        )?;
30377
30378                        Ok(())
30379                    }
30380
30381                    7 => {
30382                        ::fidl_next::WireEnvelope::decode_as::<
30383                            ___D,
30384                            ::fidl_next::WireString<'static>,
30385                        >(slot.as_mut(), decoder, 1024)?;
30386
30387                        let value = unsafe {
30388                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30389                        };
30390
30391                        if value.len() > 1024 {
30392                            return Err(::fidl_next::DecodeError::VectorTooLong {
30393                                size: value.len() as u64,
30394                                limit: 1024,
30395                            });
30396                        }
30397
30398                        Ok(())
30399                    }
30400
30401                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
30402                }
30403            })
30404        }
30405    }
30406
30407    impl<'de> OfferProtocol<'de> {
30408        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30409            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30410        }
30411
30412        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30413            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30414        }
30415
30416        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30417            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30418        }
30419
30420        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30421            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30422        }
30423
30424        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
30425            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30426        }
30427
30428        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30429            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30430        }
30431
30432        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30433            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
30434        }
30435    }
30436
30437    impl<'de> ::core::fmt::Debug for OfferProtocol<'de> {
30438        fn fmt(
30439            &self,
30440            f: &mut ::core::fmt::Formatter<'_>,
30441        ) -> ::core::result::Result<(), ::core::fmt::Error> {
30442            f.debug_struct("OfferProtocol")
30443                .field("source", &self.source())
30444                .field("source_name", &self.source_name())
30445                .field("target", &self.target())
30446                .field("target_name", &self.target_name())
30447                .field("dependency_type", &self.dependency_type())
30448                .field("availability", &self.availability())
30449                .field("source_dictionary", &self.source_dictionary())
30450                .finish()
30451        }
30452    }
30453
30454    impl<'de> ::fidl_next::IntoNatural for OfferProtocol<'de> {
30455        type Natural = crate::natural::OfferProtocol;
30456    }
30457
30458    impl ::fidl_next::Unconstrained for OfferProtocol<'_> {}
30459
30460    /// The wire type corresponding to [`OfferDirectory`].
30461    #[repr(C)]
30462    pub struct OfferDirectory<'de> {
30463        pub(crate) table: ::fidl_next::WireTable<'de>,
30464    }
30465
30466    impl<'de> Drop for OfferDirectory<'de> {
30467        fn drop(&mut self) {
30468            let _ = self
30469                .table
30470                .get(1)
30471                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30472
30473            let _ = self.table.get(2).map(|envelope| unsafe {
30474                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30475            });
30476
30477            let _ = self
30478                .table
30479                .get(3)
30480                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30481
30482            let _ = self.table.get(4).map(|envelope| unsafe {
30483                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30484            });
30485
30486            let _ = self.table.get(5).map(|envelope| unsafe {
30487                envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
30488            });
30489
30490            let _ = self.table.get(6).map(|envelope| unsafe {
30491                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30492            });
30493
30494            let _ = self.table.get(7).map(|envelope| unsafe {
30495                envelope.read_unchecked::<crate::wire::DependencyType>()
30496            });
30497
30498            let _ = self
30499                .table
30500                .get(8)
30501                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30502
30503            let _ = self.table.get(9).map(|envelope| unsafe {
30504                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30505            });
30506        }
30507    }
30508
30509    unsafe impl ::fidl_next::Wire for OfferDirectory<'static> {
30510        type Owned<'de> = OfferDirectory<'de>;
30511
30512        #[inline]
30513        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30514            ::fidl_next::munge!(let Self { table } = out);
30515            ::fidl_next::WireTable::zero_padding(table);
30516        }
30517    }
30518
30519    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferDirectory<'static>
30520    where
30521        ___D: ::fidl_next::Decoder + ?Sized,
30522    {
30523        fn decode(
30524            slot: ::fidl_next::Slot<'_, Self>,
30525            decoder: &mut ___D,
30526            _: (),
30527        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30528            ::fidl_next::munge!(let Self { table } = slot);
30529
30530            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30531                match ordinal {
30532                    0 => unsafe { ::core::hint::unreachable_unchecked() },
30533
30534                    1 => {
30535                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30536                            slot.as_mut(),
30537                            decoder,
30538                            (),
30539                        )?;
30540
30541                        Ok(())
30542                    }
30543
30544                    2 => {
30545                        ::fidl_next::WireEnvelope::decode_as::<
30546                            ___D,
30547                            ::fidl_next::WireString<'static>,
30548                        >(slot.as_mut(), decoder, 100)?;
30549
30550                        let value = unsafe {
30551                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30552                        };
30553
30554                        if value.len() > 100 {
30555                            return Err(::fidl_next::DecodeError::VectorTooLong {
30556                                size: value.len() as u64,
30557                                limit: 100,
30558                            });
30559                        }
30560
30561                        Ok(())
30562                    }
30563
30564                    3 => {
30565                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30566                            slot.as_mut(),
30567                            decoder,
30568                            (),
30569                        )?;
30570
30571                        Ok(())
30572                    }
30573
30574                    4 => {
30575                        ::fidl_next::WireEnvelope::decode_as::<
30576                            ___D,
30577                            ::fidl_next::WireString<'static>,
30578                        >(slot.as_mut(), decoder, 100)?;
30579
30580                        let value = unsafe {
30581                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30582                        };
30583
30584                        if value.len() > 100 {
30585                            return Err(::fidl_next::DecodeError::VectorTooLong {
30586                                size: value.len() as u64,
30587                                limit: 100,
30588                            });
30589                        }
30590
30591                        Ok(())
30592                    }
30593
30594                    5 => {
30595                        ::fidl_next::WireEnvelope::decode_as::<
30596                            ___D,
30597                            ::fidl_next_common_fuchsia_io::wire::Operations,
30598                        >(slot.as_mut(), decoder, ())?;
30599
30600                        Ok(())
30601                    }
30602
30603                    6 => {
30604                        ::fidl_next::WireEnvelope::decode_as::<
30605                            ___D,
30606                            ::fidl_next::WireString<'static>,
30607                        >(slot.as_mut(), decoder, 1024)?;
30608
30609                        let value = unsafe {
30610                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30611                        };
30612
30613                        if value.len() > 1024 {
30614                            return Err(::fidl_next::DecodeError::VectorTooLong {
30615                                size: value.len() as u64,
30616                                limit: 1024,
30617                            });
30618                        }
30619
30620                        Ok(())
30621                    }
30622
30623                    7 => {
30624                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
30625                            slot.as_mut(),
30626                            decoder,
30627                            (),
30628                        )?;
30629
30630                        Ok(())
30631                    }
30632
30633                    8 => {
30634                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
30635                            slot.as_mut(),
30636                            decoder,
30637                            (),
30638                        )?;
30639
30640                        Ok(())
30641                    }
30642
30643                    9 => {
30644                        ::fidl_next::WireEnvelope::decode_as::<
30645                            ___D,
30646                            ::fidl_next::WireString<'static>,
30647                        >(slot.as_mut(), decoder, 1024)?;
30648
30649                        let value = unsafe {
30650                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30651                        };
30652
30653                        if value.len() > 1024 {
30654                            return Err(::fidl_next::DecodeError::VectorTooLong {
30655                                size: value.len() as u64,
30656                                limit: 1024,
30657                            });
30658                        }
30659
30660                        Ok(())
30661                    }
30662
30663                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
30664                }
30665            })
30666        }
30667    }
30668
30669    impl<'de> OfferDirectory<'de> {
30670        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30671            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30672        }
30673
30674        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30675            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30676        }
30677
30678        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30679            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30680        }
30681
30682        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30683            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30684        }
30685
30686        pub fn rights(
30687            &self,
30688        ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
30689            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30690        }
30691
30692        pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30693            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30694        }
30695
30696        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
30697            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
30698        }
30699
30700        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30701            unsafe { Some(self.table.get(8)?.deref_unchecked()) }
30702        }
30703
30704        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30705            unsafe { Some(self.table.get(9)?.deref_unchecked()) }
30706        }
30707    }
30708
30709    impl<'de> ::core::fmt::Debug for OfferDirectory<'de> {
30710        fn fmt(
30711            &self,
30712            f: &mut ::core::fmt::Formatter<'_>,
30713        ) -> ::core::result::Result<(), ::core::fmt::Error> {
30714            f.debug_struct("OfferDirectory")
30715                .field("source", &self.source())
30716                .field("source_name", &self.source_name())
30717                .field("target", &self.target())
30718                .field("target_name", &self.target_name())
30719                .field("rights", &self.rights())
30720                .field("subdir", &self.subdir())
30721                .field("dependency_type", &self.dependency_type())
30722                .field("availability", &self.availability())
30723                .field("source_dictionary", &self.source_dictionary())
30724                .finish()
30725        }
30726    }
30727
30728    impl<'de> ::fidl_next::IntoNatural for OfferDirectory<'de> {
30729        type Natural = crate::natural::OfferDirectory;
30730    }
30731
30732    impl ::fidl_next::Unconstrained for OfferDirectory<'_> {}
30733
30734    /// The wire type corresponding to [`OfferStorage`].
30735    #[repr(C)]
30736    pub struct OfferStorage<'de> {
30737        pub(crate) table: ::fidl_next::WireTable<'de>,
30738    }
30739
30740    impl<'de> Drop for OfferStorage<'de> {
30741        fn drop(&mut self) {
30742            let _ = self.table.get(1).map(|envelope| unsafe {
30743                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30744            });
30745
30746            let _ = self
30747                .table
30748                .get(2)
30749                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30750
30751            let _ = self
30752                .table
30753                .get(3)
30754                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30755
30756            let _ = self.table.get(4).map(|envelope| unsafe {
30757                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30758            });
30759
30760            let _ = self
30761                .table
30762                .get(5)
30763                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30764        }
30765    }
30766
30767    unsafe impl ::fidl_next::Wire for OfferStorage<'static> {
30768        type Owned<'de> = OfferStorage<'de>;
30769
30770        #[inline]
30771        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30772            ::fidl_next::munge!(let Self { table } = out);
30773            ::fidl_next::WireTable::zero_padding(table);
30774        }
30775    }
30776
30777    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferStorage<'static>
30778    where
30779        ___D: ::fidl_next::Decoder + ?Sized,
30780    {
30781        fn decode(
30782            slot: ::fidl_next::Slot<'_, Self>,
30783            decoder: &mut ___D,
30784            _: (),
30785        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30786            ::fidl_next::munge!(let Self { table } = slot);
30787
30788            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30789                match ordinal {
30790                    0 => unsafe { ::core::hint::unreachable_unchecked() },
30791
30792                    1 => {
30793                        ::fidl_next::WireEnvelope::decode_as::<
30794                            ___D,
30795                            ::fidl_next::WireString<'static>,
30796                        >(slot.as_mut(), decoder, 100)?;
30797
30798                        let value = unsafe {
30799                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30800                        };
30801
30802                        if value.len() > 100 {
30803                            return Err(::fidl_next::DecodeError::VectorTooLong {
30804                                size: value.len() as u64,
30805                                limit: 100,
30806                            });
30807                        }
30808
30809                        Ok(())
30810                    }
30811
30812                    2 => {
30813                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30814                            slot.as_mut(),
30815                            decoder,
30816                            (),
30817                        )?;
30818
30819                        Ok(())
30820                    }
30821
30822                    3 => {
30823                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30824                            slot.as_mut(),
30825                            decoder,
30826                            (),
30827                        )?;
30828
30829                        Ok(())
30830                    }
30831
30832                    4 => {
30833                        ::fidl_next::WireEnvelope::decode_as::<
30834                            ___D,
30835                            ::fidl_next::WireString<'static>,
30836                        >(slot.as_mut(), decoder, 100)?;
30837
30838                        let value = unsafe {
30839                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30840                        };
30841
30842                        if value.len() > 100 {
30843                            return Err(::fidl_next::DecodeError::VectorTooLong {
30844                                size: value.len() as u64,
30845                                limit: 100,
30846                            });
30847                        }
30848
30849                        Ok(())
30850                    }
30851
30852                    5 => {
30853                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
30854                            slot.as_mut(),
30855                            decoder,
30856                            (),
30857                        )?;
30858
30859                        Ok(())
30860                    }
30861
30862                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
30863                }
30864            })
30865        }
30866    }
30867
30868    impl<'de> OfferStorage<'de> {
30869        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30870            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30871        }
30872
30873        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30874            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30875        }
30876
30877        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30878            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30879        }
30880
30881        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
30882            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30883        }
30884
30885        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30886            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30887        }
30888    }
30889
30890    impl<'de> ::core::fmt::Debug for OfferStorage<'de> {
30891        fn fmt(
30892            &self,
30893            f: &mut ::core::fmt::Formatter<'_>,
30894        ) -> ::core::result::Result<(), ::core::fmt::Error> {
30895            f.debug_struct("OfferStorage")
30896                .field("source_name", &self.source_name())
30897                .field("source", &self.source())
30898                .field("target", &self.target())
30899                .field("target_name", &self.target_name())
30900                .field("availability", &self.availability())
30901                .finish()
30902        }
30903    }
30904
30905    impl<'de> ::fidl_next::IntoNatural for OfferStorage<'de> {
30906        type Natural = crate::natural::OfferStorage;
30907    }
30908
30909    impl ::fidl_next::Unconstrained for OfferStorage<'_> {}
30910
30911    /// The wire type corresponding to [`OfferRunner`].
30912    #[repr(C)]
30913    pub struct OfferRunner<'de> {
30914        pub(crate) table: ::fidl_next::WireTable<'de>,
30915    }
30916
30917    impl<'de> Drop for OfferRunner<'de> {
30918        fn drop(&mut self) {
30919            let _ = self
30920                .table
30921                .get(1)
30922                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30923
30924            let _ = self.table.get(2).map(|envelope| unsafe {
30925                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30926            });
30927
30928            let _ = self
30929                .table
30930                .get(3)
30931                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30932
30933            let _ = self.table.get(4).map(|envelope| unsafe {
30934                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30935            });
30936
30937            let _ = self.table.get(5).map(|envelope| unsafe {
30938                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
30939            });
30940        }
30941    }
30942
30943    unsafe impl ::fidl_next::Wire for OfferRunner<'static> {
30944        type Owned<'de> = OfferRunner<'de>;
30945
30946        #[inline]
30947        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30948            ::fidl_next::munge!(let Self { table } = out);
30949            ::fidl_next::WireTable::zero_padding(table);
30950        }
30951    }
30952
30953    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferRunner<'static>
30954    where
30955        ___D: ::fidl_next::Decoder + ?Sized,
30956    {
30957        fn decode(
30958            slot: ::fidl_next::Slot<'_, Self>,
30959            decoder: &mut ___D,
30960            _: (),
30961        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30962            ::fidl_next::munge!(let Self { table } = slot);
30963
30964            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30965                match ordinal {
30966                    0 => unsafe { ::core::hint::unreachable_unchecked() },
30967
30968                    1 => {
30969                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
30970                            slot.as_mut(),
30971                            decoder,
30972                            (),
30973                        )?;
30974
30975                        Ok(())
30976                    }
30977
30978                    2 => {
30979                        ::fidl_next::WireEnvelope::decode_as::<
30980                            ___D,
30981                            ::fidl_next::WireString<'static>,
30982                        >(slot.as_mut(), decoder, 100)?;
30983
30984                        let value = unsafe {
30985                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
30986                        };
30987
30988                        if value.len() > 100 {
30989                            return Err(::fidl_next::DecodeError::VectorTooLong {
30990                                size: value.len() as u64,
30991                                limit: 100,
30992                            });
30993                        }
30994
30995                        Ok(())
30996                    }
30997
30998                    3 => {
30999                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31000                            slot.as_mut(),
31001                            decoder,
31002                            (),
31003                        )?;
31004
31005                        Ok(())
31006                    }
31007
31008                    4 => {
31009                        ::fidl_next::WireEnvelope::decode_as::<
31010                            ___D,
31011                            ::fidl_next::WireString<'static>,
31012                        >(slot.as_mut(), decoder, 100)?;
31013
31014                        let value = unsafe {
31015                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31016                        };
31017
31018                        if value.len() > 100 {
31019                            return Err(::fidl_next::DecodeError::VectorTooLong {
31020                                size: value.len() as u64,
31021                                limit: 100,
31022                            });
31023                        }
31024
31025                        Ok(())
31026                    }
31027
31028                    5 => {
31029                        ::fidl_next::WireEnvelope::decode_as::<
31030                            ___D,
31031                            ::fidl_next::WireString<'static>,
31032                        >(slot.as_mut(), decoder, 1024)?;
31033
31034                        let value = unsafe {
31035                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31036                        };
31037
31038                        if value.len() > 1024 {
31039                            return Err(::fidl_next::DecodeError::VectorTooLong {
31040                                size: value.len() as u64,
31041                                limit: 1024,
31042                            });
31043                        }
31044
31045                        Ok(())
31046                    }
31047
31048                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
31049                }
31050            })
31051        }
31052    }
31053
31054    impl<'de> OfferRunner<'de> {
31055        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31056            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31057        }
31058
31059        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31060            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31061        }
31062
31063        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31064            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31065        }
31066
31067        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31068            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31069        }
31070
31071        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31072            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31073        }
31074    }
31075
31076    impl<'de> ::core::fmt::Debug for OfferRunner<'de> {
31077        fn fmt(
31078            &self,
31079            f: &mut ::core::fmt::Formatter<'_>,
31080        ) -> ::core::result::Result<(), ::core::fmt::Error> {
31081            f.debug_struct("OfferRunner")
31082                .field("source", &self.source())
31083                .field("source_name", &self.source_name())
31084                .field("target", &self.target())
31085                .field("target_name", &self.target_name())
31086                .field("source_dictionary", &self.source_dictionary())
31087                .finish()
31088        }
31089    }
31090
31091    impl<'de> ::fidl_next::IntoNatural for OfferRunner<'de> {
31092        type Natural = crate::natural::OfferRunner;
31093    }
31094
31095    impl ::fidl_next::Unconstrained for OfferRunner<'_> {}
31096
31097    /// The wire type corresponding to [`OfferResolver`].
31098    #[repr(C)]
31099    pub struct OfferResolver<'de> {
31100        pub(crate) table: ::fidl_next::WireTable<'de>,
31101    }
31102
31103    impl<'de> Drop for OfferResolver<'de> {
31104        fn drop(&mut self) {
31105            let _ = self
31106                .table
31107                .get(1)
31108                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31109
31110            let _ = self.table.get(2).map(|envelope| unsafe {
31111                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31112            });
31113
31114            let _ = self
31115                .table
31116                .get(3)
31117                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31118
31119            let _ = self.table.get(4).map(|envelope| unsafe {
31120                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31121            });
31122
31123            let _ = self.table.get(5).map(|envelope| unsafe {
31124                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31125            });
31126        }
31127    }
31128
31129    unsafe impl ::fidl_next::Wire for OfferResolver<'static> {
31130        type Owned<'de> = OfferResolver<'de>;
31131
31132        #[inline]
31133        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31134            ::fidl_next::munge!(let Self { table } = out);
31135            ::fidl_next::WireTable::zero_padding(table);
31136        }
31137    }
31138
31139    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferResolver<'static>
31140    where
31141        ___D: ::fidl_next::Decoder + ?Sized,
31142    {
31143        fn decode(
31144            slot: ::fidl_next::Slot<'_, Self>,
31145            decoder: &mut ___D,
31146            _: (),
31147        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31148            ::fidl_next::munge!(let Self { table } = slot);
31149
31150            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31151                match ordinal {
31152                    0 => unsafe { ::core::hint::unreachable_unchecked() },
31153
31154                    1 => {
31155                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31156                            slot.as_mut(),
31157                            decoder,
31158                            (),
31159                        )?;
31160
31161                        Ok(())
31162                    }
31163
31164                    2 => {
31165                        ::fidl_next::WireEnvelope::decode_as::<
31166                            ___D,
31167                            ::fidl_next::WireString<'static>,
31168                        >(slot.as_mut(), decoder, 100)?;
31169
31170                        let value = unsafe {
31171                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31172                        };
31173
31174                        if value.len() > 100 {
31175                            return Err(::fidl_next::DecodeError::VectorTooLong {
31176                                size: value.len() as u64,
31177                                limit: 100,
31178                            });
31179                        }
31180
31181                        Ok(())
31182                    }
31183
31184                    3 => {
31185                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31186                            slot.as_mut(),
31187                            decoder,
31188                            (),
31189                        )?;
31190
31191                        Ok(())
31192                    }
31193
31194                    4 => {
31195                        ::fidl_next::WireEnvelope::decode_as::<
31196                            ___D,
31197                            ::fidl_next::WireString<'static>,
31198                        >(slot.as_mut(), decoder, 100)?;
31199
31200                        let value = unsafe {
31201                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31202                        };
31203
31204                        if value.len() > 100 {
31205                            return Err(::fidl_next::DecodeError::VectorTooLong {
31206                                size: value.len() as u64,
31207                                limit: 100,
31208                            });
31209                        }
31210
31211                        Ok(())
31212                    }
31213
31214                    5 => {
31215                        ::fidl_next::WireEnvelope::decode_as::<
31216                            ___D,
31217                            ::fidl_next::WireString<'static>,
31218                        >(slot.as_mut(), decoder, 1024)?;
31219
31220                        let value = unsafe {
31221                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31222                        };
31223
31224                        if value.len() > 1024 {
31225                            return Err(::fidl_next::DecodeError::VectorTooLong {
31226                                size: value.len() as u64,
31227                                limit: 1024,
31228                            });
31229                        }
31230
31231                        Ok(())
31232                    }
31233
31234                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
31235                }
31236            })
31237        }
31238    }
31239
31240    impl<'de> OfferResolver<'de> {
31241        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31242            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31243        }
31244
31245        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31246            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31247        }
31248
31249        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31250            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31251        }
31252
31253        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31254            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31255        }
31256
31257        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31258            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31259        }
31260    }
31261
31262    impl<'de> ::core::fmt::Debug for OfferResolver<'de> {
31263        fn fmt(
31264            &self,
31265            f: &mut ::core::fmt::Formatter<'_>,
31266        ) -> ::core::result::Result<(), ::core::fmt::Error> {
31267            f.debug_struct("OfferResolver")
31268                .field("source", &self.source())
31269                .field("source_name", &self.source_name())
31270                .field("target", &self.target())
31271                .field("target_name", &self.target_name())
31272                .field("source_dictionary", &self.source_dictionary())
31273                .finish()
31274        }
31275    }
31276
31277    impl<'de> ::fidl_next::IntoNatural for OfferResolver<'de> {
31278        type Natural = crate::natural::OfferResolver;
31279    }
31280
31281    impl ::fidl_next::Unconstrained for OfferResolver<'_> {}
31282
31283    /// The wire type corresponding to [`OfferEventStream`].
31284    #[repr(C)]
31285    pub struct OfferEventStream<'de> {
31286        pub(crate) table: ::fidl_next::WireTable<'de>,
31287    }
31288
31289    impl<'de> Drop for OfferEventStream<'de> {
31290        fn drop(&mut self) {
31291            let _ = self
31292                .table
31293                .get(1)
31294                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31295
31296            let _ = self.table.get(2).map(|envelope| unsafe {
31297                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31298            });
31299
31300            let _ = self.table.get(3).map(|envelope| unsafe {
31301                envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Ref<'de>>>()
31302            });
31303
31304            let _ = self
31305                .table
31306                .get(4)
31307                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31308
31309            let _ = self.table.get(5).map(|envelope| unsafe {
31310                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31311            });
31312
31313            let _ = self
31314                .table
31315                .get(7)
31316                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31317        }
31318    }
31319
31320    unsafe impl ::fidl_next::Wire for OfferEventStream<'static> {
31321        type Owned<'de> = OfferEventStream<'de>;
31322
31323        #[inline]
31324        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31325            ::fidl_next::munge!(let Self { table } = out);
31326            ::fidl_next::WireTable::zero_padding(table);
31327        }
31328    }
31329
31330    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferEventStream<'static>
31331    where
31332        ___D: ::fidl_next::Decoder + ?Sized,
31333    {
31334        fn decode(
31335            slot: ::fidl_next::Slot<'_, Self>,
31336            decoder: &mut ___D,
31337            _: (),
31338        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31339            ::fidl_next::munge!(let Self { table } = slot);
31340
31341            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31342                match ordinal {
31343                    0 => unsafe { ::core::hint::unreachable_unchecked() },
31344
31345                    1 => {
31346                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31347                            slot.as_mut(),
31348                            decoder,
31349                            (),
31350                        )?;
31351
31352                        Ok(())
31353                    }
31354
31355                    2 => {
31356                        ::fidl_next::WireEnvelope::decode_as::<
31357                            ___D,
31358                            ::fidl_next::WireString<'static>,
31359                        >(slot.as_mut(), decoder, 100)?;
31360
31361                        let value = unsafe {
31362                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31363                        };
31364
31365                        if value.len() > 100 {
31366                            return Err(::fidl_next::DecodeError::VectorTooLong {
31367                                size: value.len() as u64,
31368                                limit: 100,
31369                            });
31370                        }
31371
31372                        Ok(())
31373                    }
31374
31375                    3 => {
31376                        ::fidl_next::WireEnvelope::decode_as::<
31377                            ___D,
31378                            ::fidl_next::WireVector<'static, crate::wire::Ref<'static>>,
31379                        >(slot.as_mut(), decoder, (4294967295, ()))?;
31380
31381                        Ok(())
31382                    }
31383
31384                    4 => {
31385                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31386                            slot.as_mut(),
31387                            decoder,
31388                            (),
31389                        )?;
31390
31391                        Ok(())
31392                    }
31393
31394                    5 => {
31395                        ::fidl_next::WireEnvelope::decode_as::<
31396                            ___D,
31397                            ::fidl_next::WireString<'static>,
31398                        >(slot.as_mut(), decoder, 100)?;
31399
31400                        let value = unsafe {
31401                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31402                        };
31403
31404                        if value.len() > 100 {
31405                            return Err(::fidl_next::DecodeError::VectorTooLong {
31406                                size: value.len() as u64,
31407                                limit: 100,
31408                            });
31409                        }
31410
31411                        Ok(())
31412                    }
31413
31414                    7 => {
31415                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
31416                            slot.as_mut(),
31417                            decoder,
31418                            (),
31419                        )?;
31420
31421                        Ok(())
31422                    }
31423
31424                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
31425                }
31426            })
31427        }
31428    }
31429
31430    impl<'de> OfferEventStream<'de> {
31431        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31432            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31433        }
31434
31435        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31436            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31437        }
31438
31439        pub fn scope(
31440            &self,
31441        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Ref<'de>>> {
31442            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31443        }
31444
31445        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31446            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31447        }
31448
31449        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31450            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31451        }
31452
31453        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31454            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31455        }
31456    }
31457
31458    impl<'de> ::core::fmt::Debug for OfferEventStream<'de> {
31459        fn fmt(
31460            &self,
31461            f: &mut ::core::fmt::Formatter<'_>,
31462        ) -> ::core::result::Result<(), ::core::fmt::Error> {
31463            f.debug_struct("OfferEventStream")
31464                .field("source", &self.source())
31465                .field("source_name", &self.source_name())
31466                .field("scope", &self.scope())
31467                .field("target", &self.target())
31468                .field("target_name", &self.target_name())
31469                .field("availability", &self.availability())
31470                .finish()
31471        }
31472    }
31473
31474    impl<'de> ::fidl_next::IntoNatural for OfferEventStream<'de> {
31475        type Natural = crate::natural::OfferEventStream;
31476    }
31477
31478    impl ::fidl_next::Unconstrained for OfferEventStream<'_> {}
31479
31480    /// The wire type corresponding to [`OfferDictionary`].
31481    #[repr(C)]
31482    pub struct OfferDictionary<'de> {
31483        pub(crate) table: ::fidl_next::WireTable<'de>,
31484    }
31485
31486    impl<'de> Drop for OfferDictionary<'de> {
31487        fn drop(&mut self) {
31488            let _ = self
31489                .table
31490                .get(1)
31491                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31492
31493            let _ = self.table.get(2).map(|envelope| unsafe {
31494                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31495            });
31496
31497            let _ = self
31498                .table
31499                .get(3)
31500                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31501
31502            let _ = self.table.get(4).map(|envelope| unsafe {
31503                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31504            });
31505
31506            let _ = self.table.get(5).map(|envelope| unsafe {
31507                envelope.read_unchecked::<crate::wire::DependencyType>()
31508            });
31509
31510            let _ = self
31511                .table
31512                .get(6)
31513                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31514
31515            let _ = self.table.get(7).map(|envelope| unsafe {
31516                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31517            });
31518        }
31519    }
31520
31521    unsafe impl ::fidl_next::Wire for OfferDictionary<'static> {
31522        type Owned<'de> = OfferDictionary<'de>;
31523
31524        #[inline]
31525        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31526            ::fidl_next::munge!(let Self { table } = out);
31527            ::fidl_next::WireTable::zero_padding(table);
31528        }
31529    }
31530
31531    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferDictionary<'static>
31532    where
31533        ___D: ::fidl_next::Decoder + ?Sized,
31534    {
31535        fn decode(
31536            slot: ::fidl_next::Slot<'_, Self>,
31537            decoder: &mut ___D,
31538            _: (),
31539        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31540            ::fidl_next::munge!(let Self { table } = slot);
31541
31542            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31543                match ordinal {
31544                    0 => unsafe { ::core::hint::unreachable_unchecked() },
31545
31546                    1 => {
31547                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31548                            slot.as_mut(),
31549                            decoder,
31550                            (),
31551                        )?;
31552
31553                        Ok(())
31554                    }
31555
31556                    2 => {
31557                        ::fidl_next::WireEnvelope::decode_as::<
31558                            ___D,
31559                            ::fidl_next::WireString<'static>,
31560                        >(slot.as_mut(), decoder, 100)?;
31561
31562                        let value = unsafe {
31563                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31564                        };
31565
31566                        if value.len() > 100 {
31567                            return Err(::fidl_next::DecodeError::VectorTooLong {
31568                                size: value.len() as u64,
31569                                limit: 100,
31570                            });
31571                        }
31572
31573                        Ok(())
31574                    }
31575
31576                    3 => {
31577                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31578                            slot.as_mut(),
31579                            decoder,
31580                            (),
31581                        )?;
31582
31583                        Ok(())
31584                    }
31585
31586                    4 => {
31587                        ::fidl_next::WireEnvelope::decode_as::<
31588                            ___D,
31589                            ::fidl_next::WireString<'static>,
31590                        >(slot.as_mut(), decoder, 100)?;
31591
31592                        let value = unsafe {
31593                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31594                        };
31595
31596                        if value.len() > 100 {
31597                            return Err(::fidl_next::DecodeError::VectorTooLong {
31598                                size: value.len() as u64,
31599                                limit: 100,
31600                            });
31601                        }
31602
31603                        Ok(())
31604                    }
31605
31606                    5 => {
31607                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::DependencyType>(
31608                            slot.as_mut(),
31609                            decoder,
31610                            (),
31611                        )?;
31612
31613                        Ok(())
31614                    }
31615
31616                    6 => {
31617                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
31618                            slot.as_mut(),
31619                            decoder,
31620                            (),
31621                        )?;
31622
31623                        Ok(())
31624                    }
31625
31626                    7 => {
31627                        ::fidl_next::WireEnvelope::decode_as::<
31628                            ___D,
31629                            ::fidl_next::WireString<'static>,
31630                        >(slot.as_mut(), decoder, 1024)?;
31631
31632                        let value = unsafe {
31633                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31634                        };
31635
31636                        if value.len() > 1024 {
31637                            return Err(::fidl_next::DecodeError::VectorTooLong {
31638                                size: value.len() as u64,
31639                                limit: 1024,
31640                            });
31641                        }
31642
31643                        Ok(())
31644                    }
31645
31646                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
31647                }
31648            })
31649        }
31650    }
31651
31652    impl<'de> OfferDictionary<'de> {
31653        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31654            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31655        }
31656
31657        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31658            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31659        }
31660
31661        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31662            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31663        }
31664
31665        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31666            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31667        }
31668
31669        pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
31670            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31671        }
31672
31673        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31674            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31675        }
31676
31677        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31678            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31679        }
31680    }
31681
31682    impl<'de> ::core::fmt::Debug for OfferDictionary<'de> {
31683        fn fmt(
31684            &self,
31685            f: &mut ::core::fmt::Formatter<'_>,
31686        ) -> ::core::result::Result<(), ::core::fmt::Error> {
31687            f.debug_struct("OfferDictionary")
31688                .field("source", &self.source())
31689                .field("source_name", &self.source_name())
31690                .field("target", &self.target())
31691                .field("target_name", &self.target_name())
31692                .field("dependency_type", &self.dependency_type())
31693                .field("availability", &self.availability())
31694                .field("source_dictionary", &self.source_dictionary())
31695                .finish()
31696        }
31697    }
31698
31699    impl<'de> ::fidl_next::IntoNatural for OfferDictionary<'de> {
31700        type Natural = crate::natural::OfferDictionary;
31701    }
31702
31703    impl ::fidl_next::Unconstrained for OfferDictionary<'_> {}
31704
31705    /// The wire type corresponding to [`OfferConfiguration`].
31706    #[repr(C)]
31707    pub struct OfferConfiguration<'de> {
31708        pub(crate) table: ::fidl_next::WireTable<'de>,
31709    }
31710
31711    impl<'de> Drop for OfferConfiguration<'de> {
31712        fn drop(&mut self) {
31713            let _ = self
31714                .table
31715                .get(1)
31716                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31717
31718            let _ = self.table.get(2).map(|envelope| unsafe {
31719                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31720            });
31721
31722            let _ = self
31723                .table
31724                .get(3)
31725                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31726
31727            let _ = self.table.get(4).map(|envelope| unsafe {
31728                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31729            });
31730
31731            let _ = self
31732                .table
31733                .get(5)
31734                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31735
31736            let _ = self.table.get(6).map(|envelope| unsafe {
31737                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
31738            });
31739        }
31740    }
31741
31742    unsafe impl ::fidl_next::Wire for OfferConfiguration<'static> {
31743        type Owned<'de> = OfferConfiguration<'de>;
31744
31745        #[inline]
31746        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31747            ::fidl_next::munge!(let Self { table } = out);
31748            ::fidl_next::WireTable::zero_padding(table);
31749        }
31750    }
31751
31752    unsafe impl<___D> ::fidl_next::Decode<___D> for OfferConfiguration<'static>
31753    where
31754        ___D: ::fidl_next::Decoder + ?Sized,
31755    {
31756        fn decode(
31757            slot: ::fidl_next::Slot<'_, Self>,
31758            decoder: &mut ___D,
31759            _: (),
31760        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31761            ::fidl_next::munge!(let Self { table } = slot);
31762
31763            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31764                match ordinal {
31765                    0 => unsafe { ::core::hint::unreachable_unchecked() },
31766
31767                    1 => {
31768                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31769                            slot.as_mut(),
31770                            decoder,
31771                            (),
31772                        )?;
31773
31774                        Ok(())
31775                    }
31776
31777                    2 => {
31778                        ::fidl_next::WireEnvelope::decode_as::<
31779                            ___D,
31780                            ::fidl_next::WireString<'static>,
31781                        >(slot.as_mut(), decoder, 100)?;
31782
31783                        let value = unsafe {
31784                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31785                        };
31786
31787                        if value.len() > 100 {
31788                            return Err(::fidl_next::DecodeError::VectorTooLong {
31789                                size: value.len() as u64,
31790                                limit: 100,
31791                            });
31792                        }
31793
31794                        Ok(())
31795                    }
31796
31797                    3 => {
31798                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
31799                            slot.as_mut(),
31800                            decoder,
31801                            (),
31802                        )?;
31803
31804                        Ok(())
31805                    }
31806
31807                    4 => {
31808                        ::fidl_next::WireEnvelope::decode_as::<
31809                            ___D,
31810                            ::fidl_next::WireString<'static>,
31811                        >(slot.as_mut(), decoder, 100)?;
31812
31813                        let value = unsafe {
31814                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31815                        };
31816
31817                        if value.len() > 100 {
31818                            return Err(::fidl_next::DecodeError::VectorTooLong {
31819                                size: value.len() as u64,
31820                                limit: 100,
31821                            });
31822                        }
31823
31824                        Ok(())
31825                    }
31826
31827                    5 => {
31828                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Availability>(
31829                            slot.as_mut(),
31830                            decoder,
31831                            (),
31832                        )?;
31833
31834                        Ok(())
31835                    }
31836
31837                    6 => {
31838                        ::fidl_next::WireEnvelope::decode_as::<
31839                            ___D,
31840                            ::fidl_next::WireString<'static>,
31841                        >(slot.as_mut(), decoder, 1024)?;
31842
31843                        let value = unsafe {
31844                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
31845                        };
31846
31847                        if value.len() > 1024 {
31848                            return Err(::fidl_next::DecodeError::VectorTooLong {
31849                                size: value.len() as u64,
31850                                limit: 1024,
31851                            });
31852                        }
31853
31854                        Ok(())
31855                    }
31856
31857                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
31858                }
31859            })
31860        }
31861    }
31862
31863    impl<'de> OfferConfiguration<'de> {
31864        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31865            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31866        }
31867
31868        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31869            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31870        }
31871
31872        pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31873            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31874        }
31875
31876        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31877            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31878        }
31879
31880        pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31881            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31882        }
31883
31884        pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
31885            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31886        }
31887    }
31888
31889    impl<'de> ::core::fmt::Debug for OfferConfiguration<'de> {
31890        fn fmt(
31891            &self,
31892            f: &mut ::core::fmt::Formatter<'_>,
31893        ) -> ::core::result::Result<(), ::core::fmt::Error> {
31894            f.debug_struct("OfferConfiguration")
31895                .field("source", &self.source())
31896                .field("source_name", &self.source_name())
31897                .field("target", &self.target())
31898                .field("target_name", &self.target_name())
31899                .field("availability", &self.availability())
31900                .field("source_dictionary", &self.source_dictionary())
31901                .finish()
31902        }
31903    }
31904
31905    impl<'de> ::fidl_next::IntoNatural for OfferConfiguration<'de> {
31906        type Natural = crate::natural::OfferConfiguration;
31907    }
31908
31909    impl ::fidl_next::Unconstrained for OfferConfiguration<'_> {}
31910
31911    /// The wire type corresponding to [`Offer`].
31912    #[repr(transparent)]
31913    pub struct Offer<'de> {
31914        pub(crate) raw: ::fidl_next::RawWireUnion,
31915        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
31916    }
31917
31918    impl<'de> Drop for Offer<'de> {
31919        fn drop(&mut self) {
31920            match self.raw.ordinal() {
31921                1 => {
31922                    let _ = unsafe {
31923                        self.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
31924                    };
31925                }
31926
31927                2 => {
31928                    let _ = unsafe {
31929                        self.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
31930                    };
31931                }
31932
31933                3 => {
31934                    let _ = unsafe {
31935                        self.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
31936                    };
31937                }
31938
31939                4 => {
31940                    let _ = unsafe {
31941                        self.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
31942                    };
31943                }
31944
31945                5 => {
31946                    let _ =
31947                        unsafe { self.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>() };
31948                }
31949
31950                6 => {
31951                    let _ = unsafe {
31952                        self.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
31953                    };
31954                }
31955
31956                8 => {
31957                    let _ = unsafe {
31958                        self.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
31959                    };
31960                }
31961
31962                9 => {
31963                    let _ = unsafe {
31964                        self.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
31965                    };
31966                }
31967
31968                10 => {
31969                    let _ = unsafe {
31970                        self.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
31971                    };
31972                }
31973
31974                _ => (),
31975            }
31976        }
31977    }
31978
31979    unsafe impl ::fidl_next::Wire for Offer<'static> {
31980        type Owned<'de> = Offer<'de>;
31981
31982        #[inline]
31983        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31984            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
31985            ::fidl_next::RawWireUnion::zero_padding(raw);
31986        }
31987    }
31988
31989    pub mod offer {
31990        pub enum Ref<'de> {
31991            Service(&'de crate::wire::OfferService<'de>),
31992
31993            Protocol(&'de crate::wire::OfferProtocol<'de>),
31994
31995            Directory(&'de crate::wire::OfferDirectory<'de>),
31996
31997            Storage(&'de crate::wire::OfferStorage<'de>),
31998
31999            Runner(&'de crate::wire::OfferRunner<'de>),
32000
32001            Resolver(&'de crate::wire::OfferResolver<'de>),
32002
32003            EventStream(&'de crate::wire::OfferEventStream<'de>),
32004
32005            Dictionary(&'de crate::wire::OfferDictionary<'de>),
32006
32007            Config(&'de crate::wire::OfferConfiguration<'de>),
32008
32009            UnknownOrdinal_(u64),
32010        }
32011    }
32012
32013    impl<'de> Offer<'de> {
32014        pub fn as_ref(&self) -> crate::wire::offer::Ref<'_> {
32015            match self.raw.ordinal() {
32016                1 => crate::wire::offer::Ref::Service(unsafe {
32017                    self.raw.get().deref_unchecked::<crate::wire::OfferService<'_>>()
32018                }),
32019
32020                2 => crate::wire::offer::Ref::Protocol(unsafe {
32021                    self.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'_>>()
32022                }),
32023
32024                3 => crate::wire::offer::Ref::Directory(unsafe {
32025                    self.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'_>>()
32026                }),
32027
32028                4 => crate::wire::offer::Ref::Storage(unsafe {
32029                    self.raw.get().deref_unchecked::<crate::wire::OfferStorage<'_>>()
32030                }),
32031
32032                5 => crate::wire::offer::Ref::Runner(unsafe {
32033                    self.raw.get().deref_unchecked::<crate::wire::OfferRunner<'_>>()
32034                }),
32035
32036                6 => crate::wire::offer::Ref::Resolver(unsafe {
32037                    self.raw.get().deref_unchecked::<crate::wire::OfferResolver<'_>>()
32038                }),
32039
32040                8 => crate::wire::offer::Ref::EventStream(unsafe {
32041                    self.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'_>>()
32042                }),
32043
32044                9 => crate::wire::offer::Ref::Dictionary(unsafe {
32045                    self.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'_>>()
32046                }),
32047
32048                10 => crate::wire::offer::Ref::Config(unsafe {
32049                    self.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'_>>()
32050                }),
32051
32052                unknown => crate::wire::offer::Ref::UnknownOrdinal_(unknown),
32053            }
32054        }
32055    }
32056
32057    unsafe impl<___D> ::fidl_next::Decode<___D> for Offer<'static>
32058    where
32059        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
32060        ___D: ::fidl_next::Decoder,
32061    {
32062        fn decode(
32063            mut slot: ::fidl_next::Slot<'_, Self>,
32064            decoder: &mut ___D,
32065            _: (),
32066        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32067            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
32068            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
32069                1 => ::fidl_next::RawWireUnion::decode_as::<
32070                    ___D,
32071                    crate::wire::OfferService<'static>,
32072                >(raw, decoder, ())?,
32073
32074                2 => ::fidl_next::RawWireUnion::decode_as::<
32075                    ___D,
32076                    crate::wire::OfferProtocol<'static>,
32077                >(raw, decoder, ())?,
32078
32079                3 => ::fidl_next::RawWireUnion::decode_as::<
32080                    ___D,
32081                    crate::wire::OfferDirectory<'static>,
32082                >(raw, decoder, ())?,
32083
32084                4 => ::fidl_next::RawWireUnion::decode_as::<
32085                    ___D,
32086                    crate::wire::OfferStorage<'static>,
32087                >(raw, decoder, ())?,
32088
32089                5 => {
32090                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::OfferRunner<'static>>(
32091                        raw,
32092                        decoder,
32093                        (),
32094                    )?
32095                }
32096
32097                6 => ::fidl_next::RawWireUnion::decode_as::<
32098                    ___D,
32099                    crate::wire::OfferResolver<'static>,
32100                >(raw, decoder, ())?,
32101
32102                8 => ::fidl_next::RawWireUnion::decode_as::<
32103                    ___D,
32104                    crate::wire::OfferEventStream<'static>,
32105                >(raw, decoder, ())?,
32106
32107                9 => ::fidl_next::RawWireUnion::decode_as::<
32108                    ___D,
32109                    crate::wire::OfferDictionary<'static>,
32110                >(raw, decoder, ())?,
32111
32112                10 => ::fidl_next::RawWireUnion::decode_as::<
32113                    ___D,
32114                    crate::wire::OfferConfiguration<'static>,
32115                >(raw, decoder, ())?,
32116
32117                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
32118            }
32119
32120            Ok(())
32121        }
32122    }
32123
32124    impl<'de> ::core::fmt::Debug for Offer<'de> {
32125        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32126            match self.raw.ordinal() {
32127                1 => unsafe {
32128                    self.raw.get().deref_unchecked::<crate::wire::OfferService<'_>>().fmt(f)
32129                },
32130                2 => unsafe {
32131                    self.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'_>>().fmt(f)
32132                },
32133                3 => unsafe {
32134                    self.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'_>>().fmt(f)
32135                },
32136                4 => unsafe {
32137                    self.raw.get().deref_unchecked::<crate::wire::OfferStorage<'_>>().fmt(f)
32138                },
32139                5 => unsafe {
32140                    self.raw.get().deref_unchecked::<crate::wire::OfferRunner<'_>>().fmt(f)
32141                },
32142                6 => unsafe {
32143                    self.raw.get().deref_unchecked::<crate::wire::OfferResolver<'_>>().fmt(f)
32144                },
32145                8 => unsafe {
32146                    self.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'_>>().fmt(f)
32147                },
32148                9 => unsafe {
32149                    self.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'_>>().fmt(f)
32150                },
32151                10 => unsafe {
32152                    self.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'_>>().fmt(f)
32153                },
32154                _ => unsafe { ::core::hint::unreachable_unchecked() },
32155            }
32156        }
32157    }
32158
32159    impl<'de> ::fidl_next::IntoNatural for Offer<'de> {
32160        type Natural = crate::natural::Offer;
32161    }
32162
32163    impl ::fidl_next::Unconstrained for Offer<'static> {}
32164
32165    /// The wire type corresponding to [`RunnerRegistration`].
32166    #[repr(C)]
32167    pub struct RunnerRegistration<'de> {
32168        pub(crate) table: ::fidl_next::WireTable<'de>,
32169    }
32170
32171    impl<'de> Drop for RunnerRegistration<'de> {
32172        fn drop(&mut self) {
32173            let _ = self.table.get(1).map(|envelope| unsafe {
32174                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
32175            });
32176
32177            let _ = self
32178                .table
32179                .get(2)
32180                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32181
32182            let _ = self.table.get(3).map(|envelope| unsafe {
32183                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
32184            });
32185        }
32186    }
32187
32188    unsafe impl ::fidl_next::Wire for RunnerRegistration<'static> {
32189        type Owned<'de> = RunnerRegistration<'de>;
32190
32191        #[inline]
32192        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32193            ::fidl_next::munge!(let Self { table } = out);
32194            ::fidl_next::WireTable::zero_padding(table);
32195        }
32196    }
32197
32198    unsafe impl<___D> ::fidl_next::Decode<___D> for RunnerRegistration<'static>
32199    where
32200        ___D: ::fidl_next::Decoder + ?Sized,
32201    {
32202        fn decode(
32203            slot: ::fidl_next::Slot<'_, Self>,
32204            decoder: &mut ___D,
32205            _: (),
32206        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32207            ::fidl_next::munge!(let Self { table } = slot);
32208
32209            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32210                match ordinal {
32211                    0 => unsafe { ::core::hint::unreachable_unchecked() },
32212
32213                    1 => {
32214                        ::fidl_next::WireEnvelope::decode_as::<
32215                            ___D,
32216                            ::fidl_next::WireString<'static>,
32217                        >(slot.as_mut(), decoder, 100)?;
32218
32219                        let value = unsafe {
32220                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
32221                        };
32222
32223                        if value.len() > 100 {
32224                            return Err(::fidl_next::DecodeError::VectorTooLong {
32225                                size: value.len() as u64,
32226                                limit: 100,
32227                            });
32228                        }
32229
32230                        Ok(())
32231                    }
32232
32233                    2 => {
32234                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
32235                            slot.as_mut(),
32236                            decoder,
32237                            (),
32238                        )?;
32239
32240                        Ok(())
32241                    }
32242
32243                    3 => {
32244                        ::fidl_next::WireEnvelope::decode_as::<
32245                            ___D,
32246                            ::fidl_next::WireString<'static>,
32247                        >(slot.as_mut(), decoder, 100)?;
32248
32249                        let value = unsafe {
32250                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
32251                        };
32252
32253                        if value.len() > 100 {
32254                            return Err(::fidl_next::DecodeError::VectorTooLong {
32255                                size: value.len() as u64,
32256                                limit: 100,
32257                            });
32258                        }
32259
32260                        Ok(())
32261                    }
32262
32263                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
32264                }
32265            })
32266        }
32267    }
32268
32269    impl<'de> RunnerRegistration<'de> {
32270        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
32271            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32272        }
32273
32274        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32275            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32276        }
32277
32278        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
32279            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32280        }
32281    }
32282
32283    impl<'de> ::core::fmt::Debug for RunnerRegistration<'de> {
32284        fn fmt(
32285            &self,
32286            f: &mut ::core::fmt::Formatter<'_>,
32287        ) -> ::core::result::Result<(), ::core::fmt::Error> {
32288            f.debug_struct("RunnerRegistration")
32289                .field("source_name", &self.source_name())
32290                .field("source", &self.source())
32291                .field("target_name", &self.target_name())
32292                .finish()
32293        }
32294    }
32295
32296    impl<'de> ::fidl_next::IntoNatural for RunnerRegistration<'de> {
32297        type Natural = crate::natural::RunnerRegistration;
32298    }
32299
32300    impl ::fidl_next::Unconstrained for RunnerRegistration<'_> {}
32301
32302    /// The wire type corresponding to [`ResolverRegistration`].
32303    #[repr(C)]
32304    pub struct ResolverRegistration<'de> {
32305        pub(crate) table: ::fidl_next::WireTable<'de>,
32306    }
32307
32308    impl<'de> Drop for ResolverRegistration<'de> {
32309        fn drop(&mut self) {
32310            let _ = self.table.get(1).map(|envelope| unsafe {
32311                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
32312            });
32313
32314            let _ = self
32315                .table
32316                .get(2)
32317                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32318
32319            let _ = self.table.get(3).map(|envelope| unsafe {
32320                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
32321            });
32322        }
32323    }
32324
32325    unsafe impl ::fidl_next::Wire for ResolverRegistration<'static> {
32326        type Owned<'de> = ResolverRegistration<'de>;
32327
32328        #[inline]
32329        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32330            ::fidl_next::munge!(let Self { table } = out);
32331            ::fidl_next::WireTable::zero_padding(table);
32332        }
32333    }
32334
32335    unsafe impl<___D> ::fidl_next::Decode<___D> for ResolverRegistration<'static>
32336    where
32337        ___D: ::fidl_next::Decoder + ?Sized,
32338    {
32339        fn decode(
32340            slot: ::fidl_next::Slot<'_, Self>,
32341            decoder: &mut ___D,
32342            _: (),
32343        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32344            ::fidl_next::munge!(let Self { table } = slot);
32345
32346            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32347                match ordinal {
32348                    0 => unsafe { ::core::hint::unreachable_unchecked() },
32349
32350                    1 => {
32351                        ::fidl_next::WireEnvelope::decode_as::<
32352                            ___D,
32353                            ::fidl_next::WireString<'static>,
32354                        >(slot.as_mut(), decoder, 100)?;
32355
32356                        let value = unsafe {
32357                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
32358                        };
32359
32360                        if value.len() > 100 {
32361                            return Err(::fidl_next::DecodeError::VectorTooLong {
32362                                size: value.len() as u64,
32363                                limit: 100,
32364                            });
32365                        }
32366
32367                        Ok(())
32368                    }
32369
32370                    2 => {
32371                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
32372                            slot.as_mut(),
32373                            decoder,
32374                            (),
32375                        )?;
32376
32377                        Ok(())
32378                    }
32379
32380                    3 => {
32381                        ::fidl_next::WireEnvelope::decode_as::<
32382                            ___D,
32383                            ::fidl_next::WireString<'static>,
32384                        >(slot.as_mut(), decoder, 100)?;
32385
32386                        let value = unsafe {
32387                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
32388                        };
32389
32390                        if value.len() > 100 {
32391                            return Err(::fidl_next::DecodeError::VectorTooLong {
32392                                size: value.len() as u64,
32393                                limit: 100,
32394                            });
32395                        }
32396
32397                        Ok(())
32398                    }
32399
32400                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
32401                }
32402            })
32403        }
32404    }
32405
32406    impl<'de> ResolverRegistration<'de> {
32407        pub fn resolver(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
32408            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32409        }
32410
32411        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32412            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32413        }
32414
32415        pub fn scheme(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
32416            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32417        }
32418    }
32419
32420    impl<'de> ::core::fmt::Debug for ResolverRegistration<'de> {
32421        fn fmt(
32422            &self,
32423            f: &mut ::core::fmt::Formatter<'_>,
32424        ) -> ::core::result::Result<(), ::core::fmt::Error> {
32425            f.debug_struct("ResolverRegistration")
32426                .field("resolver", &self.resolver())
32427                .field("source", &self.source())
32428                .field("scheme", &self.scheme())
32429                .finish()
32430        }
32431    }
32432
32433    impl<'de> ::fidl_next::IntoNatural for ResolverRegistration<'de> {
32434        type Natural = crate::natural::ResolverRegistration;
32435    }
32436
32437    impl ::fidl_next::Unconstrained for ResolverRegistration<'_> {}
32438
32439    /// The wire type corresponding to [`DebugProtocolRegistration`].
32440    #[repr(C)]
32441    pub struct DebugProtocolRegistration<'de> {
32442        pub(crate) table: ::fidl_next::WireTable<'de>,
32443    }
32444
32445    impl<'de> Drop for DebugProtocolRegistration<'de> {
32446        fn drop(&mut self) {
32447            let _ = self
32448                .table
32449                .get(1)
32450                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32451
32452            let _ = self.table.get(2).map(|envelope| unsafe {
32453                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
32454            });
32455
32456            let _ = self.table.get(3).map(|envelope| unsafe {
32457                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
32458            });
32459        }
32460    }
32461
32462    unsafe impl ::fidl_next::Wire for DebugProtocolRegistration<'static> {
32463        type Owned<'de> = DebugProtocolRegistration<'de>;
32464
32465        #[inline]
32466        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32467            ::fidl_next::munge!(let Self { table } = out);
32468            ::fidl_next::WireTable::zero_padding(table);
32469        }
32470    }
32471
32472    unsafe impl<___D> ::fidl_next::Decode<___D> for DebugProtocolRegistration<'static>
32473    where
32474        ___D: ::fidl_next::Decoder + ?Sized,
32475    {
32476        fn decode(
32477            slot: ::fidl_next::Slot<'_, Self>,
32478            decoder: &mut ___D,
32479            _: (),
32480        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32481            ::fidl_next::munge!(let Self { table } = slot);
32482
32483            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32484                match ordinal {
32485                    0 => unsafe { ::core::hint::unreachable_unchecked() },
32486
32487                    1 => {
32488                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Ref<'static>>(
32489                            slot.as_mut(),
32490                            decoder,
32491                            (),
32492                        )?;
32493
32494                        Ok(())
32495                    }
32496
32497                    2 => {
32498                        ::fidl_next::WireEnvelope::decode_as::<
32499                            ___D,
32500                            ::fidl_next::WireString<'static>,
32501                        >(slot.as_mut(), decoder, 100)?;
32502
32503                        let value = unsafe {
32504                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
32505                        };
32506
32507                        if value.len() > 100 {
32508                            return Err(::fidl_next::DecodeError::VectorTooLong {
32509                                size: value.len() as u64,
32510                                limit: 100,
32511                            });
32512                        }
32513
32514                        Ok(())
32515                    }
32516
32517                    3 => {
32518                        ::fidl_next::WireEnvelope::decode_as::<
32519                            ___D,
32520                            ::fidl_next::WireString<'static>,
32521                        >(slot.as_mut(), decoder, 100)?;
32522
32523                        let value = unsafe {
32524                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
32525                        };
32526
32527                        if value.len() > 100 {
32528                            return Err(::fidl_next::DecodeError::VectorTooLong {
32529                                size: value.len() as u64,
32530                                limit: 100,
32531                            });
32532                        }
32533
32534                        Ok(())
32535                    }
32536
32537                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
32538                }
32539            })
32540        }
32541    }
32542
32543    impl<'de> DebugProtocolRegistration<'de> {
32544        pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32545            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32546        }
32547
32548        pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
32549            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32550        }
32551
32552        pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
32553            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32554        }
32555    }
32556
32557    impl<'de> ::core::fmt::Debug for DebugProtocolRegistration<'de> {
32558        fn fmt(
32559            &self,
32560            f: &mut ::core::fmt::Formatter<'_>,
32561        ) -> ::core::result::Result<(), ::core::fmt::Error> {
32562            f.debug_struct("DebugProtocolRegistration")
32563                .field("source", &self.source())
32564                .field("source_name", &self.source_name())
32565                .field("target_name", &self.target_name())
32566                .finish()
32567        }
32568    }
32569
32570    impl<'de> ::fidl_next::IntoNatural for DebugProtocolRegistration<'de> {
32571        type Natural = crate::natural::DebugProtocolRegistration;
32572    }
32573
32574    impl ::fidl_next::Unconstrained for DebugProtocolRegistration<'_> {}
32575
32576    /// The wire type corresponding to [`DebugRegistration`].
32577    #[repr(transparent)]
32578    pub struct DebugRegistration<'de> {
32579        pub(crate) raw: ::fidl_next::RawWireUnion,
32580        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
32581    }
32582
32583    impl<'de> Drop for DebugRegistration<'de> {
32584        fn drop(&mut self) {
32585            match self.raw.ordinal() {
32586                1 => {
32587                    let _ = unsafe {
32588                        self.raw
32589                            .get()
32590                            .read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
32591                    };
32592                }
32593
32594                _ => (),
32595            }
32596        }
32597    }
32598
32599    unsafe impl ::fidl_next::Wire for DebugRegistration<'static> {
32600        type Owned<'de> = DebugRegistration<'de>;
32601
32602        #[inline]
32603        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32604            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
32605            ::fidl_next::RawWireUnion::zero_padding(raw);
32606        }
32607    }
32608
32609    pub mod debug_registration {
32610        pub enum Ref<'de> {
32611            Protocol(&'de crate::wire::DebugProtocolRegistration<'de>),
32612
32613            UnknownOrdinal_(u64),
32614        }
32615    }
32616
32617    impl<'de> DebugRegistration<'de> {
32618        pub fn as_ref(&self) -> crate::wire::debug_registration::Ref<'_> {
32619            match self.raw.ordinal() {
32620                1 => crate::wire::debug_registration::Ref::Protocol(unsafe {
32621                    self.raw.get().deref_unchecked::<crate::wire::DebugProtocolRegistration<'_>>()
32622                }),
32623
32624                unknown => crate::wire::debug_registration::Ref::UnknownOrdinal_(unknown),
32625            }
32626        }
32627    }
32628
32629    unsafe impl<___D> ::fidl_next::Decode<___D> for DebugRegistration<'static>
32630    where
32631        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
32632        ___D: ::fidl_next::Decoder,
32633    {
32634        fn decode(
32635            mut slot: ::fidl_next::Slot<'_, Self>,
32636            decoder: &mut ___D,
32637            _: (),
32638        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32639            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
32640            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
32641                1 => ::fidl_next::RawWireUnion::decode_as::<
32642                    ___D,
32643                    crate::wire::DebugProtocolRegistration<'static>,
32644                >(raw, decoder, ())?,
32645
32646                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
32647            }
32648
32649            Ok(())
32650        }
32651    }
32652
32653    impl<'de> ::core::fmt::Debug for DebugRegistration<'de> {
32654        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32655            match self.raw.ordinal() {
32656                1 => unsafe {
32657                    self.raw
32658                        .get()
32659                        .deref_unchecked::<crate::wire::DebugProtocolRegistration<'_>>()
32660                        .fmt(f)
32661                },
32662                _ => unsafe { ::core::hint::unreachable_unchecked() },
32663            }
32664        }
32665    }
32666
32667    impl<'de> ::fidl_next::IntoNatural for DebugRegistration<'de> {
32668        type Natural = crate::natural::DebugRegistration;
32669    }
32670
32671    impl ::fidl_next::Unconstrained for DebugRegistration<'static> {}
32672
32673    /// The wire type corresponding to [`Environment`].
32674    #[repr(C)]
32675    pub struct Environment<'de> {
32676        pub(crate) table: ::fidl_next::WireTable<'de>,
32677    }
32678
32679    impl<'de> Drop for Environment<'de> {
32680        fn drop(&mut self) {
32681            let _ = self.table.get(1).map(|envelope| unsafe {
32682                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
32683            });
32684
32685            let _ = self.table.get(2).map(|envelope| unsafe {
32686                envelope.read_unchecked::<crate::wire::EnvironmentExtends>()
32687            });
32688
32689            let _ = self.table.get(3)
32690                .map(|envelope| unsafe {
32691                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::RunnerRegistration<'de>>>()
32692                });
32693
32694            let _ = self.table.get(4)
32695                .map(|envelope| unsafe {
32696                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ResolverRegistration<'de>>>()
32697                });
32698
32699            let _ = self.table.get(5)
32700                .map(|envelope| unsafe {
32701                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::DebugRegistration<'de>>>()
32702                });
32703
32704            let _ = self
32705                .table
32706                .get(6)
32707                .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::WireU32>() });
32708        }
32709    }
32710
32711    unsafe impl ::fidl_next::Wire for Environment<'static> {
32712        type Owned<'de> = Environment<'de>;
32713
32714        #[inline]
32715        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32716            ::fidl_next::munge!(let Self { table } = out);
32717            ::fidl_next::WireTable::zero_padding(table);
32718        }
32719    }
32720
32721    unsafe impl<___D> ::fidl_next::Decode<___D> for Environment<'static>
32722    where
32723        ___D: ::fidl_next::Decoder + ?Sized,
32724    {
32725        fn decode(
32726            slot: ::fidl_next::Slot<'_, Self>,
32727            decoder: &mut ___D,
32728            _: (),
32729        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32730            ::fidl_next::munge!(let Self { table } = slot);
32731
32732            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32733                match ordinal {
32734                    0 => unsafe { ::core::hint::unreachable_unchecked() },
32735
32736                    1 => {
32737                        ::fidl_next::WireEnvelope::decode_as::<
32738                            ___D,
32739                            ::fidl_next::WireString<'static>,
32740                        >(slot.as_mut(), decoder, 100)?;
32741
32742                        let value = unsafe {
32743                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
32744                        };
32745
32746                        if value.len() > 100 {
32747                            return Err(::fidl_next::DecodeError::VectorTooLong {
32748                                size: value.len() as u64,
32749                                limit: 100,
32750                            });
32751                        }
32752
32753                        Ok(())
32754                    }
32755
32756                    2 => {
32757                        ::fidl_next::WireEnvelope::decode_as::<
32758                            ___D,
32759                            crate::wire::EnvironmentExtends,
32760                        >(slot.as_mut(), decoder, ())?;
32761
32762                        Ok(())
32763                    }
32764
32765                    3 => {
32766                        ::fidl_next::WireEnvelope::decode_as::<
32767                            ___D,
32768                            ::fidl_next::WireVector<
32769                                'static,
32770                                crate::wire::RunnerRegistration<'static>,
32771                            >,
32772                        >(slot.as_mut(), decoder, (4294967295, ()))?;
32773
32774                        Ok(())
32775                    }
32776
32777                    4 => {
32778                        ::fidl_next::WireEnvelope::decode_as::<
32779                            ___D,
32780                            ::fidl_next::WireVector<
32781                                'static,
32782                                crate::wire::ResolverRegistration<'static>,
32783                            >,
32784                        >(slot.as_mut(), decoder, (4294967295, ()))?;
32785
32786                        Ok(())
32787                    }
32788
32789                    5 => {
32790                        ::fidl_next::WireEnvelope::decode_as::<
32791                            ___D,
32792                            ::fidl_next::WireVector<
32793                                'static,
32794                                crate::wire::DebugRegistration<'static>,
32795                            >,
32796                        >(slot.as_mut(), decoder, (4294967295, ()))?;
32797
32798                        Ok(())
32799                    }
32800
32801                    6 => {
32802                        ::fidl_next::WireEnvelope::decode_as::<___D, ::fidl_next::WireU32>(
32803                            slot.as_mut(),
32804                            decoder,
32805                            (),
32806                        )?;
32807
32808                        Ok(())
32809                    }
32810
32811                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
32812                }
32813            })
32814        }
32815    }
32816
32817    impl<'de> Environment<'de> {
32818        pub fn name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
32819            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32820        }
32821
32822        pub fn extends(&self) -> ::core::option::Option<&crate::wire::EnvironmentExtends> {
32823            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32824        }
32825
32826        pub fn runners(
32827            &self,
32828        ) -> ::core::option::Option<
32829            &::fidl_next::WireVector<'de, crate::wire::RunnerRegistration<'de>>,
32830        > {
32831            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32832        }
32833
32834        pub fn resolvers(
32835            &self,
32836        ) -> ::core::option::Option<
32837            &::fidl_next::WireVector<'de, crate::wire::ResolverRegistration<'de>>,
32838        > {
32839            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32840        }
32841
32842        pub fn debug_capabilities(
32843            &self,
32844        ) -> ::core::option::Option<
32845            &::fidl_next::WireVector<'de, crate::wire::DebugRegistration<'de>>,
32846        > {
32847            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32848        }
32849
32850        pub fn stop_timeout_ms(&self) -> ::core::option::Option<&::fidl_next::WireU32> {
32851            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
32852        }
32853    }
32854
32855    impl<'de> ::core::fmt::Debug for Environment<'de> {
32856        fn fmt(
32857            &self,
32858            f: &mut ::core::fmt::Formatter<'_>,
32859        ) -> ::core::result::Result<(), ::core::fmt::Error> {
32860            f.debug_struct("Environment")
32861                .field("name", &self.name())
32862                .field("extends", &self.extends())
32863                .field("runners", &self.runners())
32864                .field("resolvers", &self.resolvers())
32865                .field("debug_capabilities", &self.debug_capabilities())
32866                .field("stop_timeout_ms", &self.stop_timeout_ms())
32867                .finish()
32868        }
32869    }
32870
32871    impl<'de> ::fidl_next::IntoNatural for Environment<'de> {
32872        type Natural = crate::natural::Environment;
32873    }
32874
32875    impl ::fidl_next::Unconstrained for Environment<'_> {}
32876
32877    /// The wire type corresponding to [`ConfigSourceCapabilities`].
32878    #[repr(C)]
32879    pub struct ConfigSourceCapabilities<'de> {
32880        pub(crate) table: ::fidl_next::WireTable<'de>,
32881    }
32882
32883    impl<'de> Drop for ConfigSourceCapabilities<'de> {
32884        fn drop(&mut self) {}
32885    }
32886
32887    unsafe impl ::fidl_next::Wire for ConfigSourceCapabilities<'static> {
32888        type Owned<'de> = ConfigSourceCapabilities<'de>;
32889
32890        #[inline]
32891        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32892            ::fidl_next::munge!(let Self { table } = out);
32893            ::fidl_next::WireTable::zero_padding(table);
32894        }
32895    }
32896
32897    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigSourceCapabilities<'static>
32898    where
32899        ___D: ::fidl_next::Decoder + ?Sized,
32900    {
32901        fn decode(
32902            slot: ::fidl_next::Slot<'_, Self>,
32903            decoder: &mut ___D,
32904            _: (),
32905        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32906            ::fidl_next::munge!(let Self { table } = slot);
32907
32908            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32909                match ordinal {
32910                    0 => unsafe { ::core::hint::unreachable_unchecked() },
32911
32912                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
32913                }
32914            })
32915        }
32916    }
32917
32918    impl<'de> ConfigSourceCapabilities<'de> {}
32919
32920    impl<'de> ::core::fmt::Debug for ConfigSourceCapabilities<'de> {
32921        fn fmt(
32922            &self,
32923            f: &mut ::core::fmt::Formatter<'_>,
32924        ) -> ::core::result::Result<(), ::core::fmt::Error> {
32925            f.debug_struct("ConfigSourceCapabilities").finish()
32926        }
32927    }
32928
32929    impl<'de> ::fidl_next::IntoNatural for ConfigSourceCapabilities<'de> {
32930        type Natural = crate::natural::ConfigSourceCapabilities;
32931    }
32932
32933    impl ::fidl_next::Unconstrained for ConfigSourceCapabilities<'_> {}
32934
32935    /// The wire type corresponding to [`ConfigValueSource`].
32936    #[repr(transparent)]
32937    pub struct ConfigValueSource<'de> {
32938        pub(crate) raw: ::fidl_next::RawWireUnion,
32939        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
32940    }
32941
32942    impl<'de> Drop for ConfigValueSource<'de> {
32943        fn drop(&mut self) {
32944            match self.raw.ordinal() {
32945                1 => {
32946                    let _ =
32947                        unsafe { self.raw.get().read_unchecked::<::fidl_next::WireString<'de>>() };
32948                }
32949
32950                2 => {
32951                    let _ = unsafe {
32952                        self.raw
32953                            .get()
32954                            .read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
32955                    };
32956                }
32957
32958                _ => (),
32959            }
32960        }
32961    }
32962
32963    unsafe impl ::fidl_next::Wire for ConfigValueSource<'static> {
32964        type Owned<'de> = ConfigValueSource<'de>;
32965
32966        #[inline]
32967        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32968            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
32969            ::fidl_next::RawWireUnion::zero_padding(raw);
32970        }
32971    }
32972
32973    pub mod config_value_source {
32974        pub enum Ref<'de> {
32975            PackagePath(&'de ::fidl_next::WireString<'de>),
32976
32977            Capabilities(&'de crate::wire::ConfigSourceCapabilities<'de>),
32978
32979            UnknownOrdinal_(u64),
32980        }
32981    }
32982
32983    impl<'de> ConfigValueSource<'de> {
32984        pub fn as_ref(&self) -> crate::wire::config_value_source::Ref<'_> {
32985            match self.raw.ordinal() {
32986                1 => crate::wire::config_value_source::Ref::PackagePath(unsafe {
32987                    self.raw.get().deref_unchecked::<::fidl_next::WireString<'_>>()
32988                }),
32989
32990                2 => crate::wire::config_value_source::Ref::Capabilities(unsafe {
32991                    self.raw.get().deref_unchecked::<crate::wire::ConfigSourceCapabilities<'_>>()
32992                }),
32993
32994                unknown => crate::wire::config_value_source::Ref::UnknownOrdinal_(unknown),
32995            }
32996        }
32997    }
32998
32999    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigValueSource<'static>
33000    where
33001        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
33002        ___D: ::fidl_next::Decoder,
33003    {
33004        fn decode(
33005            mut slot: ::fidl_next::Slot<'_, Self>,
33006            decoder: &mut ___D,
33007            _: (),
33008        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33009            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
33010            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
33011                1 => {
33012                    ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireString<'static>>(
33013                        raw, decoder, 4294967295,
33014                    )?
33015                }
33016
33017                2 => ::fidl_next::RawWireUnion::decode_as::<
33018                    ___D,
33019                    crate::wire::ConfigSourceCapabilities<'static>,
33020                >(raw, decoder, ())?,
33021
33022                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
33023            }
33024
33025            Ok(())
33026        }
33027    }
33028
33029    impl<'de> ::core::fmt::Debug for ConfigValueSource<'de> {
33030        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33031            match self.raw.ordinal() {
33032                1 => unsafe {
33033                    self.raw.get().deref_unchecked::<::fidl_next::WireString<'_>>().fmt(f)
33034                },
33035                2 => unsafe {
33036                    self.raw
33037                        .get()
33038                        .deref_unchecked::<crate::wire::ConfigSourceCapabilities<'_>>()
33039                        .fmt(f)
33040                },
33041                _ => unsafe { ::core::hint::unreachable_unchecked() },
33042            }
33043        }
33044    }
33045
33046    impl<'de> ::fidl_next::IntoNatural for ConfigValueSource<'de> {
33047        type Natural = crate::natural::ConfigValueSource;
33048    }
33049
33050    impl ::fidl_next::Unconstrained for ConfigValueSource<'static> {}
33051
33052    /// The wire type corresponding to [`ConfigSchema`].
33053    #[repr(C)]
33054    pub struct ConfigSchema<'de> {
33055        pub(crate) table: ::fidl_next::WireTable<'de>,
33056    }
33057
33058    impl<'de> Drop for ConfigSchema<'de> {
33059        fn drop(&mut self) {
33060            let _ = self.table.get(1)
33061                .map(|envelope| unsafe {
33062                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigField<'de>>>()
33063                });
33064
33065            let _ = self.table.get(2).map(|envelope| unsafe {
33066                envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>()
33067            });
33068
33069            let _ = self.table.get(3).map(|envelope| unsafe {
33070                envelope.read_unchecked::<crate::wire::ConfigValueSource<'de>>()
33071            });
33072        }
33073    }
33074
33075    unsafe impl ::fidl_next::Wire for ConfigSchema<'static> {
33076        type Owned<'de> = ConfigSchema<'de>;
33077
33078        #[inline]
33079        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33080            ::fidl_next::munge!(let Self { table } = out);
33081            ::fidl_next::WireTable::zero_padding(table);
33082        }
33083    }
33084
33085    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigSchema<'static>
33086    where
33087        ___D: ::fidl_next::Decoder + ?Sized,
33088    {
33089        fn decode(
33090            slot: ::fidl_next::Slot<'_, Self>,
33091            decoder: &mut ___D,
33092            _: (),
33093        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33094            ::fidl_next::munge!(let Self { table } = slot);
33095
33096            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33097                match ordinal {
33098                    0 => unsafe { ::core::hint::unreachable_unchecked() },
33099
33100                    1 => {
33101                        ::fidl_next::WireEnvelope::decode_as::<
33102                            ___D,
33103                            ::fidl_next::WireVector<'static, crate::wire::ConfigField<'static>>,
33104                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33105
33106                        Ok(())
33107                    }
33108
33109                    2 => {
33110                        ::fidl_next::WireEnvelope::decode_as::<
33111                            ___D,
33112                            crate::wire::ConfigChecksum<'static>,
33113                        >(slot.as_mut(), decoder, ())?;
33114
33115                        Ok(())
33116                    }
33117
33118                    3 => {
33119                        ::fidl_next::WireEnvelope::decode_as::<
33120                            ___D,
33121                            crate::wire::ConfigValueSource<'static>,
33122                        >(slot.as_mut(), decoder, ())?;
33123
33124                        Ok(())
33125                    }
33126
33127                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
33128                }
33129            })
33130        }
33131    }
33132
33133    impl<'de> ConfigSchema<'de> {
33134        pub fn fields(
33135            &self,
33136        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::ConfigField<'de>>>
33137        {
33138            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33139        }
33140
33141        pub fn checksum(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
33142            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33143        }
33144
33145        pub fn value_source(&self) -> ::core::option::Option<&crate::wire::ConfigValueSource<'de>> {
33146            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33147        }
33148    }
33149
33150    impl<'de> ::core::fmt::Debug for ConfigSchema<'de> {
33151        fn fmt(
33152            &self,
33153            f: &mut ::core::fmt::Formatter<'_>,
33154        ) -> ::core::result::Result<(), ::core::fmt::Error> {
33155            f.debug_struct("ConfigSchema")
33156                .field("fields", &self.fields())
33157                .field("checksum", &self.checksum())
33158                .field("value_source", &self.value_source())
33159                .finish()
33160        }
33161    }
33162
33163    impl<'de> ::fidl_next::IntoNatural for ConfigSchema<'de> {
33164        type Natural = crate::natural::ConfigSchema;
33165    }
33166
33167    impl ::fidl_next::Unconstrained for ConfigSchema<'_> {}
33168
33169    /// The wire type corresponding to [`Component`].
33170    #[repr(C)]
33171    pub struct Component<'de> {
33172        pub(crate) table: ::fidl_next::WireTable<'de>,
33173    }
33174
33175    impl<'de> Drop for Component<'de> {
33176        fn drop(&mut self) {
33177            let _ = self
33178                .table
33179                .get(1)
33180                .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Program<'de>>() });
33181
33182            let _ = self.table.get(2).map(|envelope| unsafe {
33183                envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Use<'de>>>()
33184            });
33185
33186            let _ = self.table.get(3).map(|envelope| unsafe {
33187                envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Expose<'de>>>()
33188            });
33189
33190            let _ = self.table.get(4).map(|envelope| unsafe {
33191                envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Offer<'de>>>()
33192            });
33193
33194            let _ = self.table.get(5)
33195                .map(|envelope| unsafe {
33196                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Capability<'de>>>()
33197                });
33198
33199            let _ = self.table.get(6).map(|envelope| unsafe {
33200                envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Child<'de>>>()
33201            });
33202
33203            let _ = self.table.get(7)
33204                .map(|envelope| unsafe {
33205                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Collection<'de>>>()
33206                });
33207
33208            let _ = self.table.get(8)
33209                .map(|envelope| unsafe {
33210                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::Environment<'de>>>()
33211                });
33212
33213            let _ = self.table.get(9).map(|envelope| unsafe {
33214                envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
33215            });
33216
33217            let _ = self.table.get(10).map(|envelope| unsafe {
33218                envelope.read_unchecked::<crate::wire::ConfigSchema<'de>>()
33219            });
33220
33221            let _ = self.table.get(11).map(|envelope| unsafe {
33222                envelope.read_unchecked::<crate::wire::DebugInfo<'de>>()
33223            });
33224        }
33225    }
33226
33227    unsafe impl ::fidl_next::Wire for Component<'static> {
33228        type Owned<'de> = Component<'de>;
33229
33230        #[inline]
33231        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33232            ::fidl_next::munge!(let Self { table } = out);
33233            ::fidl_next::WireTable::zero_padding(table);
33234        }
33235    }
33236
33237    unsafe impl<___D> ::fidl_next::Decode<___D> for Component<'static>
33238    where
33239        ___D: ::fidl_next::Decoder + ?Sized,
33240    {
33241        fn decode(
33242            slot: ::fidl_next::Slot<'_, Self>,
33243            decoder: &mut ___D,
33244            _: (),
33245        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33246            ::fidl_next::munge!(let Self { table } = slot);
33247
33248            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33249                match ordinal {
33250                    0 => unsafe { ::core::hint::unreachable_unchecked() },
33251
33252                    1 => {
33253                        ::fidl_next::WireEnvelope::decode_as::<___D, crate::wire::Program<'static>>(
33254                            slot.as_mut(),
33255                            decoder,
33256                            (),
33257                        )?;
33258
33259                        Ok(())
33260                    }
33261
33262                    2 => {
33263                        ::fidl_next::WireEnvelope::decode_as::<
33264                            ___D,
33265                            ::fidl_next::WireVector<'static, crate::wire::Use<'static>>,
33266                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33267
33268                        Ok(())
33269                    }
33270
33271                    3 => {
33272                        ::fidl_next::WireEnvelope::decode_as::<
33273                            ___D,
33274                            ::fidl_next::WireVector<'static, crate::wire::Expose<'static>>,
33275                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33276
33277                        Ok(())
33278                    }
33279
33280                    4 => {
33281                        ::fidl_next::WireEnvelope::decode_as::<
33282                            ___D,
33283                            ::fidl_next::WireVector<'static, crate::wire::Offer<'static>>,
33284                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33285
33286                        Ok(())
33287                    }
33288
33289                    5 => {
33290                        ::fidl_next::WireEnvelope::decode_as::<
33291                            ___D,
33292                            ::fidl_next::WireVector<'static, crate::wire::Capability<'static>>,
33293                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33294
33295                        Ok(())
33296                    }
33297
33298                    6 => {
33299                        ::fidl_next::WireEnvelope::decode_as::<
33300                            ___D,
33301                            ::fidl_next::WireVector<'static, crate::wire::Child<'static>>,
33302                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33303
33304                        Ok(())
33305                    }
33306
33307                    7 => {
33308                        ::fidl_next::WireEnvelope::decode_as::<
33309                            ___D,
33310                            ::fidl_next::WireVector<'static, crate::wire::Collection<'static>>,
33311                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33312
33313                        Ok(())
33314                    }
33315
33316                    8 => {
33317                        ::fidl_next::WireEnvelope::decode_as::<
33318                            ___D,
33319                            ::fidl_next::WireVector<'static, crate::wire::Environment<'static>>,
33320                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33321
33322                        Ok(())
33323                    }
33324
33325                    9 => {
33326                        ::fidl_next::WireEnvelope::decode_as::<
33327                            ___D,
33328                            ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
33329                        >(slot.as_mut(), decoder, ())?;
33330
33331                        Ok(())
33332                    }
33333
33334                    10 => {
33335                        ::fidl_next::WireEnvelope::decode_as::<
33336                            ___D,
33337                            crate::wire::ConfigSchema<'static>,
33338                        >(slot.as_mut(), decoder, ())?;
33339
33340                        Ok(())
33341                    }
33342
33343                    11 => {
33344                        ::fidl_next::WireEnvelope::decode_as::<
33345                            ___D,
33346                            crate::wire::DebugInfo<'static>,
33347                        >(slot.as_mut(), decoder, ())?;
33348
33349                        Ok(())
33350                    }
33351
33352                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
33353                }
33354            })
33355        }
33356    }
33357
33358    impl<'de> Component<'de> {
33359        pub fn program(&self) -> ::core::option::Option<&crate::wire::Program<'de>> {
33360            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33361        }
33362
33363        pub fn uses(
33364            &self,
33365        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Use<'de>>> {
33366            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33367        }
33368
33369        pub fn exposes(
33370            &self,
33371        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Expose<'de>>>
33372        {
33373            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33374        }
33375
33376        pub fn offers(
33377            &self,
33378        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Offer<'de>>>
33379        {
33380            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
33381        }
33382
33383        pub fn capabilities(
33384            &self,
33385        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Capability<'de>>>
33386        {
33387            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
33388        }
33389
33390        pub fn children(
33391            &self,
33392        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Child<'de>>>
33393        {
33394            unsafe { Some(self.table.get(6)?.deref_unchecked()) }
33395        }
33396
33397        pub fn collections(
33398            &self,
33399        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Collection<'de>>>
33400        {
33401            unsafe { Some(self.table.get(7)?.deref_unchecked()) }
33402        }
33403
33404        pub fn environments(
33405            &self,
33406        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::Environment<'de>>>
33407        {
33408            unsafe { Some(self.table.get(8)?.deref_unchecked()) }
33409        }
33410
33411        pub fn facets(
33412            &self,
33413        ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
33414        {
33415            unsafe { Some(self.table.get(9)?.deref_unchecked()) }
33416        }
33417
33418        pub fn config(&self) -> ::core::option::Option<&crate::wire::ConfigSchema<'de>> {
33419            unsafe { Some(self.table.get(10)?.deref_unchecked()) }
33420        }
33421
33422        pub fn debug_info(&self) -> ::core::option::Option<&crate::wire::DebugInfo<'de>> {
33423            unsafe { Some(self.table.get(11)?.deref_unchecked()) }
33424        }
33425    }
33426
33427    impl<'de> ::core::fmt::Debug for Component<'de> {
33428        fn fmt(
33429            &self,
33430            f: &mut ::core::fmt::Formatter<'_>,
33431        ) -> ::core::result::Result<(), ::core::fmt::Error> {
33432            f.debug_struct("Component")
33433                .field("program", &self.program())
33434                .field("uses", &self.uses())
33435                .field("exposes", &self.exposes())
33436                .field("offers", &self.offers())
33437                .field("capabilities", &self.capabilities())
33438                .field("children", &self.children())
33439                .field("collections", &self.collections())
33440                .field("environments", &self.environments())
33441                .field("facets", &self.facets())
33442                .field("config", &self.config())
33443                .field("debug_info", &self.debug_info())
33444                .finish()
33445        }
33446    }
33447
33448    impl<'de> ::fidl_next::IntoNatural for Component<'de> {
33449        type Natural = crate::natural::Component;
33450    }
33451
33452    impl ::fidl_next::Unconstrained for Component<'_> {}
33453
33454    /// The wire type corresponding to [`ConfigValueSpec`].
33455    #[repr(C)]
33456    pub struct ConfigValueSpec<'de> {
33457        pub(crate) table: ::fidl_next::WireTable<'de>,
33458    }
33459
33460    impl<'de> Drop for ConfigValueSpec<'de> {
33461        fn drop(&mut self) {
33462            let _ = self.table.get(1).map(|envelope| unsafe {
33463                envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
33464            });
33465        }
33466    }
33467
33468    unsafe impl ::fidl_next::Wire for ConfigValueSpec<'static> {
33469        type Owned<'de> = ConfigValueSpec<'de>;
33470
33471        #[inline]
33472        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33473            ::fidl_next::munge!(let Self { table } = out);
33474            ::fidl_next::WireTable::zero_padding(table);
33475        }
33476    }
33477
33478    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigValueSpec<'static>
33479    where
33480        ___D: ::fidl_next::Decoder + ?Sized,
33481    {
33482        fn decode(
33483            slot: ::fidl_next::Slot<'_, Self>,
33484            decoder: &mut ___D,
33485            _: (),
33486        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33487            ::fidl_next::munge!(let Self { table } = slot);
33488
33489            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33490                match ordinal {
33491                    0 => unsafe { ::core::hint::unreachable_unchecked() },
33492
33493                    1 => {
33494                        ::fidl_next::WireEnvelope::decode_as::<
33495                            ___D,
33496                            crate::wire::ConfigValue<'static>,
33497                        >(slot.as_mut(), decoder, ())?;
33498
33499                        Ok(())
33500                    }
33501
33502                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
33503                }
33504            })
33505        }
33506    }
33507
33508    impl<'de> ConfigValueSpec<'de> {
33509        pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
33510            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33511        }
33512    }
33513
33514    impl<'de> ::core::fmt::Debug for ConfigValueSpec<'de> {
33515        fn fmt(
33516            &self,
33517            f: &mut ::core::fmt::Formatter<'_>,
33518        ) -> ::core::result::Result<(), ::core::fmt::Error> {
33519            f.debug_struct("ConfigValueSpec").field("value", &self.value()).finish()
33520        }
33521    }
33522
33523    impl<'de> ::fidl_next::IntoNatural for ConfigValueSpec<'de> {
33524        type Natural = crate::natural::ConfigValueSpec;
33525    }
33526
33527    impl ::fidl_next::Unconstrained for ConfigValueSpec<'_> {}
33528
33529    /// The wire type corresponding to [`ConfigValuesData`].
33530    #[repr(C)]
33531    pub struct ConfigValuesData<'de> {
33532        pub(crate) table: ::fidl_next::WireTable<'de>,
33533    }
33534
33535    impl<'de> Drop for ConfigValuesData<'de> {
33536        fn drop(&mut self) {
33537            let _ = self.table.get(1)
33538                .map(|envelope| unsafe {
33539                    envelope.read_unchecked::<::fidl_next::WireVector<'de, crate::wire::ConfigValueSpec<'de>>>()
33540                });
33541
33542            let _ = self.table.get(2).map(|envelope| unsafe {
33543                envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>()
33544            });
33545        }
33546    }
33547
33548    unsafe impl ::fidl_next::Wire for ConfigValuesData<'static> {
33549        type Owned<'de> = ConfigValuesData<'de>;
33550
33551        #[inline]
33552        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33553            ::fidl_next::munge!(let Self { table } = out);
33554            ::fidl_next::WireTable::zero_padding(table);
33555        }
33556    }
33557
33558    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigValuesData<'static>
33559    where
33560        ___D: ::fidl_next::Decoder + ?Sized,
33561    {
33562        fn decode(
33563            slot: ::fidl_next::Slot<'_, Self>,
33564            decoder: &mut ___D,
33565            _: (),
33566        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33567            ::fidl_next::munge!(let Self { table } = slot);
33568
33569            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33570                match ordinal {
33571                    0 => unsafe { ::core::hint::unreachable_unchecked() },
33572
33573                    1 => {
33574                        ::fidl_next::WireEnvelope::decode_as::<
33575                            ___D,
33576                            ::fidl_next::WireVector<'static, crate::wire::ConfigValueSpec<'static>>,
33577                        >(slot.as_mut(), decoder, (4294967295, ()))?;
33578
33579                        Ok(())
33580                    }
33581
33582                    2 => {
33583                        ::fidl_next::WireEnvelope::decode_as::<
33584                            ___D,
33585                            crate::wire::ConfigChecksum<'static>,
33586                        >(slot.as_mut(), decoder, ())?;
33587
33588                        Ok(())
33589                    }
33590
33591                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
33592                }
33593            })
33594        }
33595    }
33596
33597    impl<'de> ConfigValuesData<'de> {
33598        pub fn values(
33599            &self,
33600        ) -> ::core::option::Option<&::fidl_next::WireVector<'de, crate::wire::ConfigValueSpec<'de>>>
33601        {
33602            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33603        }
33604
33605        pub fn checksum(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
33606            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33607        }
33608    }
33609
33610    impl<'de> ::core::fmt::Debug for ConfigValuesData<'de> {
33611        fn fmt(
33612            &self,
33613            f: &mut ::core::fmt::Formatter<'_>,
33614        ) -> ::core::result::Result<(), ::core::fmt::Error> {
33615            f.debug_struct("ConfigValuesData")
33616                .field("values", &self.values())
33617                .field("checksum", &self.checksum())
33618                .finish()
33619        }
33620    }
33621
33622    impl<'de> ::fidl_next::IntoNatural for ConfigValuesData<'de> {
33623        type Natural = crate::natural::ConfigValuesData;
33624    }
33625
33626    impl ::fidl_next::Unconstrained for ConfigValuesData<'_> {}
33627
33628    /// The wire type corresponding to [`EventSubscription`].
33629    #[repr(C)]
33630    pub struct EventSubscription<'de> {
33631        pub(crate) table: ::fidl_next::WireTable<'de>,
33632    }
33633
33634    impl<'de> Drop for EventSubscription<'de> {
33635        fn drop(&mut self) {
33636            let _ = self.table.get(1).map(|envelope| unsafe {
33637                envelope.read_unchecked::<::fidl_next::WireString<'de>>()
33638            });
33639        }
33640    }
33641
33642    unsafe impl ::fidl_next::Wire for EventSubscription<'static> {
33643        type Owned<'de> = EventSubscription<'de>;
33644
33645        #[inline]
33646        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33647            ::fidl_next::munge!(let Self { table } = out);
33648            ::fidl_next::WireTable::zero_padding(table);
33649        }
33650    }
33651
33652    unsafe impl<___D> ::fidl_next::Decode<___D> for EventSubscription<'static>
33653    where
33654        ___D: ::fidl_next::Decoder + ?Sized,
33655    {
33656        fn decode(
33657            slot: ::fidl_next::Slot<'_, Self>,
33658            decoder: &mut ___D,
33659            _: (),
33660        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33661            ::fidl_next::munge!(let Self { table } = slot);
33662
33663            ::fidl_next::WireTable::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33664                match ordinal {
33665                    0 => unsafe { ::core::hint::unreachable_unchecked() },
33666
33667                    1 => {
33668                        ::fidl_next::WireEnvelope::decode_as::<
33669                            ___D,
33670                            ::fidl_next::WireString<'static>,
33671                        >(slot.as_mut(), decoder, 100)?;
33672
33673                        let value = unsafe {
33674                            slot.deref_unchecked().deref_unchecked::<::fidl_next::WireString<'_>>()
33675                        };
33676
33677                        if value.len() > 100 {
33678                            return Err(::fidl_next::DecodeError::VectorTooLong {
33679                                size: value.len() as u64,
33680                                limit: 100,
33681                            });
33682                        }
33683
33684                        Ok(())
33685                    }
33686
33687                    _ => ::fidl_next::WireEnvelope::decode_unknown(slot, decoder),
33688                }
33689            })
33690        }
33691    }
33692
33693    impl<'de> EventSubscription<'de> {
33694        pub fn event_name(&self) -> ::core::option::Option<&::fidl_next::WireString<'de>> {
33695            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33696        }
33697    }
33698
33699    impl<'de> ::core::fmt::Debug for EventSubscription<'de> {
33700        fn fmt(
33701            &self,
33702            f: &mut ::core::fmt::Formatter<'_>,
33703        ) -> ::core::result::Result<(), ::core::fmt::Error> {
33704            f.debug_struct("EventSubscription").field("event_name", &self.event_name()).finish()
33705        }
33706    }
33707
33708    impl<'de> ::fidl_next::IntoNatural for EventSubscription<'de> {
33709        type Natural = crate::natural::EventSubscription;
33710    }
33711
33712    impl ::fidl_next::Unconstrained for EventSubscription<'_> {}
33713
33714    /// The wire type corresponding to [`LayoutParameter`].
33715    #[repr(transparent)]
33716    pub struct LayoutParameter<'de> {
33717        pub(crate) raw: ::fidl_next::RawWireUnion,
33718        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
33719    }
33720
33721    impl<'de> Drop for LayoutParameter<'de> {
33722        fn drop(&mut self) {
33723            match self.raw.ordinal() {
33724                1 => {
33725                    let _ =
33726                        unsafe { self.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>() };
33727                }
33728
33729                _ => (),
33730            }
33731        }
33732    }
33733
33734    unsafe impl ::fidl_next::Wire for LayoutParameter<'static> {
33735        type Owned<'de> = LayoutParameter<'de>;
33736
33737        #[inline]
33738        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33739            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
33740            ::fidl_next::RawWireUnion::zero_padding(raw);
33741        }
33742    }
33743
33744    pub mod layout_parameter {
33745        pub enum Ref<'de> {
33746            NestedType(&'de crate::wire::ConfigType<'de>),
33747
33748            UnknownOrdinal_(u64),
33749        }
33750    }
33751
33752    impl<'de> LayoutParameter<'de> {
33753        pub fn as_ref(&self) -> crate::wire::layout_parameter::Ref<'_> {
33754            match self.raw.ordinal() {
33755                1 => crate::wire::layout_parameter::Ref::NestedType(unsafe {
33756                    self.raw.get().deref_unchecked::<crate::wire::ConfigType<'_>>()
33757                }),
33758
33759                unknown => crate::wire::layout_parameter::Ref::UnknownOrdinal_(unknown),
33760            }
33761        }
33762    }
33763
33764    unsafe impl<___D> ::fidl_next::Decode<___D> for LayoutParameter<'static>
33765    where
33766        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
33767        ___D: ::fidl_next::Decoder,
33768    {
33769        fn decode(
33770            mut slot: ::fidl_next::Slot<'_, Self>,
33771            decoder: &mut ___D,
33772            _: (),
33773        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33774            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
33775            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
33776                1 => {
33777                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::ConfigType<'static>>(
33778                        raw,
33779                        decoder,
33780                        (),
33781                    )?
33782                }
33783
33784                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
33785            }
33786
33787            Ok(())
33788        }
33789    }
33790
33791    impl<'de> ::core::fmt::Debug for LayoutParameter<'de> {
33792        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33793            match self.raw.ordinal() {
33794                1 => unsafe {
33795                    self.raw.get().deref_unchecked::<crate::wire::ConfigType<'_>>().fmt(f)
33796                },
33797                _ => unsafe { ::core::hint::unreachable_unchecked() },
33798            }
33799        }
33800    }
33801
33802    impl<'de> ::fidl_next::IntoNatural for LayoutParameter<'de> {
33803        type Natural = crate::natural::LayoutParameter;
33804    }
33805
33806    impl ::fidl_next::Unconstrained for LayoutParameter<'static> {}
33807
33808    /// The wire type corresponding to [`ResolvedConfigField`].
33809    #[derive(Debug)]
33810    #[repr(C)]
33811    pub struct ResolvedConfigField<'de> {
33812        pub key: ::fidl_next::WireString<'de>,
33813
33814        pub value: crate::wire::ConfigValue<'de>,
33815    }
33816
33817    static_assertions::const_assert_eq!(std::mem::size_of::<ResolvedConfigField<'_>>(), 32);
33818    static_assertions::const_assert_eq!(std::mem::align_of::<ResolvedConfigField<'_>>(), 8);
33819
33820    static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfigField<'_>, key), 0);
33821
33822    static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfigField<'_>, value), 16);
33823
33824    unsafe impl ::fidl_next::Wire for ResolvedConfigField<'static> {
33825        type Owned<'de> = ResolvedConfigField<'de>;
33826
33827        #[inline]
33828        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
33829            ::fidl_next::munge! {
33830                let Self {
33831
33832                    key,
33833                    value,
33834
33835                } = &mut *out_;
33836            }
33837
33838            ::fidl_next::Wire::zero_padding(key);
33839
33840            ::fidl_next::Wire::zero_padding(value);
33841        }
33842    }
33843
33844    unsafe impl<___D> ::fidl_next::Decode<___D> for ResolvedConfigField<'static>
33845    where
33846        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
33847        ___D: ::fidl_next::Decoder,
33848    {
33849        fn decode(
33850            slot_: ::fidl_next::Slot<'_, Self>,
33851            decoder_: &mut ___D,
33852            _: (),
33853        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33854            ::fidl_next::munge! {
33855                let Self {
33856
33857                    mut key,
33858                    mut value,
33859
33860                } = slot_;
33861            }
33862
33863            let _field = key.as_mut();
33864            ::fidl_next::Constrained::validate(_field, 4294967295)?;
33865            ::fidl_next::Decode::decode(key.as_mut(), decoder_, 4294967295)?;
33866
33867            let _field = value.as_mut();
33868
33869            ::fidl_next::Decode::decode(value.as_mut(), decoder_, ())?;
33870
33871            Ok(())
33872        }
33873    }
33874
33875    impl<'de> ::fidl_next::IntoNatural for ResolvedConfigField<'de> {
33876        type Natural = crate::natural::ResolvedConfigField;
33877    }
33878
33879    impl ::fidl_next::Unconstrained for ResolvedConfigField<'static> {}
33880
33881    /// The wire type corresponding to [`ResolvedConfig`].
33882    #[derive(Debug)]
33883    #[repr(C)]
33884    pub struct ResolvedConfig<'de> {
33885        pub fields: ::fidl_next::WireVector<'de, crate::wire::ResolvedConfigField<'de>>,
33886
33887        pub checksum: crate::wire::ConfigChecksum<'de>,
33888    }
33889
33890    static_assertions::const_assert_eq!(std::mem::size_of::<ResolvedConfig<'_>>(), 32);
33891    static_assertions::const_assert_eq!(std::mem::align_of::<ResolvedConfig<'_>>(), 8);
33892
33893    static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfig<'_>, fields), 0);
33894
33895    static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfig<'_>, checksum), 16);
33896
33897    unsafe impl ::fidl_next::Wire for ResolvedConfig<'static> {
33898        type Owned<'de> = ResolvedConfig<'de>;
33899
33900        #[inline]
33901        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
33902            ::fidl_next::munge! {
33903                let Self {
33904
33905                    fields,
33906                    checksum,
33907
33908                } = &mut *out_;
33909            }
33910
33911            ::fidl_next::Wire::zero_padding(fields);
33912
33913            ::fidl_next::Wire::zero_padding(checksum);
33914        }
33915    }
33916
33917    unsafe impl<___D> ::fidl_next::Decode<___D> for ResolvedConfig<'static>
33918    where
33919        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
33920        ___D: ::fidl_next::Decoder,
33921    {
33922        fn decode(
33923            slot_: ::fidl_next::Slot<'_, Self>,
33924            decoder_: &mut ___D,
33925            _: (),
33926        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33927            ::fidl_next::munge! {
33928                let Self {
33929
33930                    mut fields,
33931                    mut checksum,
33932
33933                } = slot_;
33934            }
33935
33936            let _field = fields.as_mut();
33937            ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
33938            ::fidl_next::Decode::decode(fields.as_mut(), decoder_, (4294967295, ()))?;
33939
33940            let _field = checksum.as_mut();
33941
33942            ::fidl_next::Decode::decode(checksum.as_mut(), decoder_, ())?;
33943
33944            Ok(())
33945        }
33946    }
33947
33948    impl<'de> ::fidl_next::IntoNatural for ResolvedConfig<'de> {
33949        type Natural = crate::natural::ResolvedConfig;
33950    }
33951
33952    impl ::fidl_next::Unconstrained for ResolvedConfig<'static> {}
33953}
33954
33955pub mod wire_optional {
33956
33957    #[repr(transparent)]
33958    pub struct ConfigSingleValue<'de> {
33959        pub(crate) raw: ::fidl_next::RawWireUnion,
33960        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
33961    }
33962
33963    unsafe impl ::fidl_next::Wire for ConfigSingleValue<'static> {
33964        type Owned<'de> = ConfigSingleValue<'de>;
33965
33966        #[inline]
33967        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33968            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
33969            ::fidl_next::RawWireUnion::zero_padding(raw);
33970        }
33971    }
33972
33973    impl<'de> ConfigSingleValue<'de> {
33974        pub fn is_some(&self) -> bool {
33975            self.raw.is_some()
33976        }
33977
33978        pub fn is_none(&self) -> bool {
33979            self.raw.is_none()
33980        }
33981
33982        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigSingleValue<'de>> {
33983            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
33984        }
33985
33986        pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigSingleValue<'de>> {
33987            if self.is_some() {
33988                Some(crate::wire::ConfigSingleValue {
33989                    raw: self.raw,
33990                    _phantom: ::core::marker::PhantomData,
33991                })
33992            } else {
33993                None
33994            }
33995        }
33996    }
33997
33998    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigSingleValue<'static>
33999    where
34000        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34001        ___D: ::fidl_next::Decoder,
34002    {
34003        fn decode(
34004            mut slot: ::fidl_next::Slot<'_, Self>,
34005            decoder: &mut ___D,
34006            _: (),
34007        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34008            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34009            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34010                1 => ::fidl_next::RawWireUnion::decode_as::<___D, bool>(raw, decoder, ())?,
34011
34012                2 => ::fidl_next::RawWireUnion::decode_as::<___D, u8>(raw, decoder, ())?,
34013
34014                3 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU16>(
34015                    raw,
34016                    decoder,
34017                    (),
34018                )?,
34019
34020                4 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU32>(
34021                    raw,
34022                    decoder,
34023                    (),
34024                )?,
34025
34026                5 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU64>(
34027                    raw,
34028                    decoder,
34029                    (),
34030                )?,
34031
34032                6 => ::fidl_next::RawWireUnion::decode_as::<___D, i8>(raw, decoder, ())?,
34033
34034                7 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireI16>(
34035                    raw,
34036                    decoder,
34037                    (),
34038                )?,
34039
34040                8 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireI32>(
34041                    raw,
34042                    decoder,
34043                    (),
34044                )?,
34045
34046                9 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireI64>(
34047                    raw,
34048                    decoder,
34049                    (),
34050                )?,
34051
34052                10 => {
34053                    ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireString<'static>>(
34054                        raw, decoder, 4294967295,
34055                    )?
34056                }
34057
34058                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34059                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34060            }
34061
34062            Ok(())
34063        }
34064    }
34065
34066    impl<'de> ::core::fmt::Debug for ConfigSingleValue<'de> {
34067        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34068            self.as_ref().fmt(f)
34069        }
34070    }
34071
34072    impl<'de> ::fidl_next::IntoNatural for ConfigSingleValue<'de> {
34073        type Natural = ::core::option::Option<crate::natural::ConfigSingleValue>;
34074    }
34075
34076    impl ::fidl_next::Unconstrained for ConfigSingleValue<'static> {}
34077
34078    #[repr(transparent)]
34079    pub struct ConfigVectorValue<'de> {
34080        pub(crate) raw: ::fidl_next::RawWireUnion,
34081        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34082    }
34083
34084    unsafe impl ::fidl_next::Wire for ConfigVectorValue<'static> {
34085        type Owned<'de> = ConfigVectorValue<'de>;
34086
34087        #[inline]
34088        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34089            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34090            ::fidl_next::RawWireUnion::zero_padding(raw);
34091        }
34092    }
34093
34094    impl<'de> ConfigVectorValue<'de> {
34095        pub fn is_some(&self) -> bool {
34096            self.raw.is_some()
34097        }
34098
34099        pub fn is_none(&self) -> bool {
34100            self.raw.is_none()
34101        }
34102
34103        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigVectorValue<'de>> {
34104            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34105        }
34106
34107        pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigVectorValue<'de>> {
34108            if self.is_some() {
34109                Some(crate::wire::ConfigVectorValue {
34110                    raw: self.raw,
34111                    _phantom: ::core::marker::PhantomData,
34112                })
34113            } else {
34114                None
34115            }
34116        }
34117    }
34118
34119    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigVectorValue<'static>
34120    where
34121        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34122        ___D: ::fidl_next::Decoder,
34123    {
34124        fn decode(
34125            mut slot: ::fidl_next::Slot<'_, Self>,
34126            decoder: &mut ___D,
34127            _: (),
34128        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34129            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34130            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34131                1 => ::fidl_next::RawWireUnion::decode_as::<
34132                    ___D,
34133                    ::fidl_next::WireVector<'static, bool>,
34134                >(raw, decoder, (4294967295, ()))?,
34135
34136                2 => ::fidl_next::RawWireUnion::decode_as::<
34137                    ___D,
34138                    ::fidl_next::WireVector<'static, u8>,
34139                >(raw, decoder, (4294967295, ()))?,
34140
34141                3 => ::fidl_next::RawWireUnion::decode_as::<
34142                    ___D,
34143                    ::fidl_next::WireVector<'static, ::fidl_next::WireU16>,
34144                >(raw, decoder, (4294967295, ()))?,
34145
34146                4 => ::fidl_next::RawWireUnion::decode_as::<
34147                    ___D,
34148                    ::fidl_next::WireVector<'static, ::fidl_next::WireU32>,
34149                >(raw, decoder, (4294967295, ()))?,
34150
34151                5 => ::fidl_next::RawWireUnion::decode_as::<
34152                    ___D,
34153                    ::fidl_next::WireVector<'static, ::fidl_next::WireU64>,
34154                >(raw, decoder, (4294967295, ()))?,
34155
34156                6 => ::fidl_next::RawWireUnion::decode_as::<
34157                    ___D,
34158                    ::fidl_next::WireVector<'static, i8>,
34159                >(raw, decoder, (4294967295, ()))?,
34160
34161                7 => ::fidl_next::RawWireUnion::decode_as::<
34162                    ___D,
34163                    ::fidl_next::WireVector<'static, ::fidl_next::WireI16>,
34164                >(raw, decoder, (4294967295, ()))?,
34165
34166                8 => ::fidl_next::RawWireUnion::decode_as::<
34167                    ___D,
34168                    ::fidl_next::WireVector<'static, ::fidl_next::WireI32>,
34169                >(raw, decoder, (4294967295, ()))?,
34170
34171                9 => ::fidl_next::RawWireUnion::decode_as::<
34172                    ___D,
34173                    ::fidl_next::WireVector<'static, ::fidl_next::WireI64>,
34174                >(raw, decoder, (4294967295, ()))?,
34175
34176                10 => ::fidl_next::RawWireUnion::decode_as::<
34177                    ___D,
34178                    ::fidl_next::WireVector<'static, ::fidl_next::WireString<'static>>,
34179                >(raw, decoder, (4294967295, 4294967295))?,
34180
34181                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34182                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34183            }
34184
34185            Ok(())
34186        }
34187    }
34188
34189    impl<'de> ::core::fmt::Debug for ConfigVectorValue<'de> {
34190        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34191            self.as_ref().fmt(f)
34192        }
34193    }
34194
34195    impl<'de> ::fidl_next::IntoNatural for ConfigVectorValue<'de> {
34196        type Natural = ::core::option::Option<crate::natural::ConfigVectorValue>;
34197    }
34198
34199    impl ::fidl_next::Unconstrained for ConfigVectorValue<'static> {}
34200
34201    #[repr(transparent)]
34202    pub struct ConfigValue<'de> {
34203        pub(crate) raw: ::fidl_next::RawWireUnion,
34204        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34205    }
34206
34207    unsafe impl ::fidl_next::Wire for ConfigValue<'static> {
34208        type Owned<'de> = ConfigValue<'de>;
34209
34210        #[inline]
34211        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34212            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34213            ::fidl_next::RawWireUnion::zero_padding(raw);
34214        }
34215    }
34216
34217    impl<'de> ConfigValue<'de> {
34218        pub fn is_some(&self) -> bool {
34219            self.raw.is_some()
34220        }
34221
34222        pub fn is_none(&self) -> bool {
34223            self.raw.is_none()
34224        }
34225
34226        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
34227            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34228        }
34229
34230        pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
34231            if self.is_some() {
34232                Some(crate::wire::ConfigValue {
34233                    raw: self.raw,
34234                    _phantom: ::core::marker::PhantomData,
34235                })
34236            } else {
34237                None
34238            }
34239        }
34240    }
34241
34242    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigValue<'static>
34243    where
34244        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34245        ___D: ::fidl_next::Decoder,
34246    {
34247        fn decode(
34248            mut slot: ::fidl_next::Slot<'_, Self>,
34249            decoder: &mut ___D,
34250            _: (),
34251        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34252            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34253            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34254                1 => ::fidl_next::RawWireUnion::decode_as::<
34255                    ___D,
34256                    crate::wire::ConfigSingleValue<'static>,
34257                >(raw, decoder, ())?,
34258
34259                2 => ::fidl_next::RawWireUnion::decode_as::<
34260                    ___D,
34261                    crate::wire::ConfigVectorValue<'static>,
34262                >(raw, decoder, ())?,
34263
34264                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34265                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34266            }
34267
34268            Ok(())
34269        }
34270    }
34271
34272    impl<'de> ::core::fmt::Debug for ConfigValue<'de> {
34273        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34274            self.as_ref().fmt(f)
34275        }
34276    }
34277
34278    impl<'de> ::fidl_next::IntoNatural for ConfigValue<'de> {
34279        type Natural = ::core::option::Option<crate::natural::ConfigValue>;
34280    }
34281
34282    impl ::fidl_next::Unconstrained for ConfigValue<'static> {}
34283
34284    #[repr(transparent)]
34285    pub struct Ref<'de> {
34286        pub(crate) raw: ::fidl_next::RawWireUnion,
34287        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34288    }
34289
34290    unsafe impl ::fidl_next::Wire for Ref<'static> {
34291        type Owned<'de> = Ref<'de>;
34292
34293        #[inline]
34294        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34295            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34296            ::fidl_next::RawWireUnion::zero_padding(raw);
34297        }
34298    }
34299
34300    impl<'de> Ref<'de> {
34301        pub fn is_some(&self) -> bool {
34302            self.raw.is_some()
34303        }
34304
34305        pub fn is_none(&self) -> bool {
34306            self.raw.is_none()
34307        }
34308
34309        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
34310            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34311        }
34312
34313        pub fn into_option(self) -> ::core::option::Option<crate::wire::Ref<'de>> {
34314            if self.is_some() {
34315                Some(crate::wire::Ref { raw: self.raw, _phantom: ::core::marker::PhantomData })
34316            } else {
34317                None
34318            }
34319        }
34320    }
34321
34322    unsafe impl<___D> ::fidl_next::Decode<___D> for Ref<'static>
34323    where
34324        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34325        ___D: ::fidl_next::Decoder,
34326    {
34327        fn decode(
34328            mut slot: ::fidl_next::Slot<'_, Self>,
34329            decoder: &mut ___D,
34330            _: (),
34331        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34332            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34333            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34334                1 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::ParentRef>(
34335                    raw,
34336                    decoder,
34337                    (),
34338                )?,
34339
34340                2 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::SelfRef>(
34341                    raw,
34342                    decoder,
34343                    (),
34344                )?,
34345
34346                3 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::ChildRef<'static>>(
34347                    raw,
34348                    decoder,
34349                    (),
34350                )?,
34351
34352                4 => ::fidl_next::RawWireUnion::decode_as::<
34353                    ___D,
34354                    crate::wire::CollectionRef<'static>,
34355                >(raw, decoder, ())?,
34356
34357                5 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::FrameworkRef>(
34358                    raw,
34359                    decoder,
34360                    (),
34361                )?,
34362
34363                6 => ::fidl_next::RawWireUnion::decode_as::<
34364                    ___D,
34365                    crate::wire::CapabilityRef<'static>,
34366                >(raw, decoder, ())?,
34367
34368                7 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::DebugRef>(
34369                    raw,
34370                    decoder,
34371                    (),
34372                )?,
34373
34374                8 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::VoidRef>(
34375                    raw,
34376                    decoder,
34377                    (),
34378                )?,
34379
34380                9 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::EnvironmentRef>(
34381                    raw,
34382                    decoder,
34383                    (),
34384                )?,
34385
34386                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34387                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34388            }
34389
34390            Ok(())
34391        }
34392    }
34393
34394    impl<'de> ::core::fmt::Debug for Ref<'de> {
34395        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34396            self.as_ref().fmt(f)
34397        }
34398    }
34399
34400    impl<'de> ::fidl_next::IntoNatural for Ref<'de> {
34401        type Natural = ::core::option::Option<crate::natural::Ref>;
34402    }
34403
34404    impl ::fidl_next::Unconstrained for Ref<'static> {}
34405
34406    #[repr(transparent)]
34407    pub struct Capability<'de> {
34408        pub(crate) raw: ::fidl_next::RawWireUnion,
34409        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34410    }
34411
34412    unsafe impl ::fidl_next::Wire for Capability<'static> {
34413        type Owned<'de> = Capability<'de>;
34414
34415        #[inline]
34416        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34417            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34418            ::fidl_next::RawWireUnion::zero_padding(raw);
34419        }
34420    }
34421
34422    impl<'de> Capability<'de> {
34423        pub fn is_some(&self) -> bool {
34424            self.raw.is_some()
34425        }
34426
34427        pub fn is_none(&self) -> bool {
34428            self.raw.is_none()
34429        }
34430
34431        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Capability<'de>> {
34432            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34433        }
34434
34435        pub fn into_option(self) -> ::core::option::Option<crate::wire::Capability<'de>> {
34436            if self.is_some() {
34437                Some(crate::wire::Capability {
34438                    raw: self.raw,
34439                    _phantom: ::core::marker::PhantomData,
34440                })
34441            } else {
34442                None
34443            }
34444        }
34445    }
34446
34447    unsafe impl<___D> ::fidl_next::Decode<___D> for Capability<'static>
34448    where
34449        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34450        ___D: ::fidl_next::Decoder,
34451    {
34452        fn decode(
34453            mut slot: ::fidl_next::Slot<'_, Self>,
34454            decoder: &mut ___D,
34455            _: (),
34456        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34457            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34458            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34459                1 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Service<'static>>(
34460                    raw,
34461                    decoder,
34462                    (),
34463                )?,
34464
34465                2 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Protocol<'static>>(
34466                    raw,
34467                    decoder,
34468                    (),
34469                )?,
34470
34471                3 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Directory<'static>>(
34472                    raw,
34473                    decoder,
34474                    (),
34475                )?,
34476
34477                4 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Storage<'static>>(
34478                    raw,
34479                    decoder,
34480                    (),
34481                )?,
34482
34483                5 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Runner<'static>>(
34484                    raw,
34485                    decoder,
34486                    (),
34487                )?,
34488
34489                6 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Resolver<'static>>(
34490                    raw,
34491                    decoder,
34492                    (),
34493                )?,
34494
34495                8 => {
34496                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::EventStream<'static>>(
34497                        raw,
34498                        decoder,
34499                        (),
34500                    )?
34501                }
34502
34503                9 => {
34504                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::Dictionary<'static>>(
34505                        raw,
34506                        decoder,
34507                        (),
34508                    )?
34509                }
34510
34511                10 => ::fidl_next::RawWireUnion::decode_as::<
34512                    ___D,
34513                    crate::wire::Configuration<'static>,
34514                >(raw, decoder, ())?,
34515
34516                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34517                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34518            }
34519
34520            Ok(())
34521        }
34522    }
34523
34524    impl<'de> ::core::fmt::Debug for Capability<'de> {
34525        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34526            self.as_ref().fmt(f)
34527        }
34528    }
34529
34530    impl<'de> ::fidl_next::IntoNatural for Capability<'de> {
34531        type Natural = ::core::option::Option<crate::natural::Capability>;
34532    }
34533
34534    impl ::fidl_next::Unconstrained for Capability<'static> {}
34535
34536    #[repr(transparent)]
34537    pub struct LayoutConstraint<'de> {
34538        pub(crate) raw: ::fidl_next::RawWireUnion,
34539        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34540    }
34541
34542    unsafe impl ::fidl_next::Wire for LayoutConstraint<'static> {
34543        type Owned<'de> = LayoutConstraint<'de>;
34544
34545        #[inline]
34546        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34547            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34548            ::fidl_next::RawWireUnion::zero_padding(raw);
34549        }
34550    }
34551
34552    impl<'de> LayoutConstraint<'de> {
34553        pub fn is_some(&self) -> bool {
34554            self.raw.is_some()
34555        }
34556
34557        pub fn is_none(&self) -> bool {
34558            self.raw.is_none()
34559        }
34560
34561        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::LayoutConstraint<'de>> {
34562            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34563        }
34564
34565        pub fn into_option(self) -> ::core::option::Option<crate::wire::LayoutConstraint<'de>> {
34566            if self.is_some() {
34567                Some(crate::wire::LayoutConstraint {
34568                    raw: self.raw,
34569                    _phantom: ::core::marker::PhantomData,
34570                })
34571            } else {
34572                None
34573            }
34574        }
34575    }
34576
34577    unsafe impl<___D> ::fidl_next::Decode<___D> for LayoutConstraint<'static>
34578    where
34579        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34580        ___D: ::fidl_next::Decoder,
34581    {
34582        fn decode(
34583            mut slot: ::fidl_next::Slot<'_, Self>,
34584            decoder: &mut ___D,
34585            _: (),
34586        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34587            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34588            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34589                1 => ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireU32>(
34590                    raw,
34591                    decoder,
34592                    (),
34593                )?,
34594
34595                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34596                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34597            }
34598
34599            Ok(())
34600        }
34601    }
34602
34603    impl<'de> ::core::fmt::Debug for LayoutConstraint<'de> {
34604        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34605            self.as_ref().fmt(f)
34606        }
34607    }
34608
34609    impl<'de> ::fidl_next::IntoNatural for LayoutConstraint<'de> {
34610        type Natural = ::core::option::Option<crate::natural::LayoutConstraint>;
34611    }
34612
34613    impl ::fidl_next::Unconstrained for LayoutConstraint<'static> {}
34614
34615    #[repr(transparent)]
34616    pub struct ConfigChecksum<'de> {
34617        pub(crate) raw: ::fidl_next::RawWireUnion,
34618        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34619    }
34620
34621    unsafe impl ::fidl_next::Wire for ConfigChecksum<'static> {
34622        type Owned<'de> = ConfigChecksum<'de>;
34623
34624        #[inline]
34625        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34626            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34627            ::fidl_next::RawWireUnion::zero_padding(raw);
34628        }
34629    }
34630
34631    impl<'de> ConfigChecksum<'de> {
34632        pub fn is_some(&self) -> bool {
34633            self.raw.is_some()
34634        }
34635
34636        pub fn is_none(&self) -> bool {
34637            self.raw.is_none()
34638        }
34639
34640        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
34641            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34642        }
34643
34644        pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigChecksum<'de>> {
34645            if self.is_some() {
34646                Some(crate::wire::ConfigChecksum {
34647                    raw: self.raw,
34648                    _phantom: ::core::marker::PhantomData,
34649                })
34650            } else {
34651                None
34652            }
34653        }
34654    }
34655
34656    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigChecksum<'static>
34657    where
34658        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34659        ___D: ::fidl_next::Decoder,
34660    {
34661        fn decode(
34662            mut slot: ::fidl_next::Slot<'_, Self>,
34663            decoder: &mut ___D,
34664            _: (),
34665        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34666            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34667            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34668                1 => ::fidl_next::RawWireUnion::decode_as::<___D, [u8; 32]>(raw, decoder, ())?,
34669
34670                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34671                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34672            }
34673
34674            Ok(())
34675        }
34676    }
34677
34678    impl<'de> ::core::fmt::Debug for ConfigChecksum<'de> {
34679        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34680            self.as_ref().fmt(f)
34681        }
34682    }
34683
34684    impl<'de> ::fidl_next::IntoNatural for ConfigChecksum<'de> {
34685        type Natural = ::core::option::Option<crate::natural::ConfigChecksum>;
34686    }
34687
34688    impl ::fidl_next::Unconstrained for ConfigChecksum<'static> {}
34689
34690    #[repr(transparent)]
34691    pub struct Use<'de> {
34692        pub(crate) raw: ::fidl_next::RawWireUnion,
34693        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34694    }
34695
34696    unsafe impl ::fidl_next::Wire for Use<'static> {
34697        type Owned<'de> = Use<'de>;
34698
34699        #[inline]
34700        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34701            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34702            ::fidl_next::RawWireUnion::zero_padding(raw);
34703        }
34704    }
34705
34706    impl<'de> Use<'de> {
34707        pub fn is_some(&self) -> bool {
34708            self.raw.is_some()
34709        }
34710
34711        pub fn is_none(&self) -> bool {
34712            self.raw.is_none()
34713        }
34714
34715        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Use<'de>> {
34716            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34717        }
34718
34719        pub fn into_option(self) -> ::core::option::Option<crate::wire::Use<'de>> {
34720            if self.is_some() {
34721                Some(crate::wire::Use { raw: self.raw, _phantom: ::core::marker::PhantomData })
34722            } else {
34723                None
34724            }
34725        }
34726    }
34727
34728    unsafe impl<___D> ::fidl_next::Decode<___D> for Use<'static>
34729    where
34730        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34731        ___D: ::fidl_next::Decoder,
34732    {
34733        fn decode(
34734            mut slot: ::fidl_next::Slot<'_, Self>,
34735            decoder: &mut ___D,
34736            _: (),
34737        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34738            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34739            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34740                1 => {
34741                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseService<'static>>(
34742                        raw,
34743                        decoder,
34744                        (),
34745                    )?
34746                }
34747
34748                2 => {
34749                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseProtocol<'static>>(
34750                        raw,
34751                        decoder,
34752                        (),
34753                    )?
34754                }
34755
34756                3 => ::fidl_next::RawWireUnion::decode_as::<
34757                    ___D,
34758                    crate::wire::UseDirectory<'static>,
34759                >(raw, decoder, ())?,
34760
34761                4 => {
34762                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseStorage<'static>>(
34763                        raw,
34764                        decoder,
34765                        (),
34766                    )?
34767                }
34768
34769                7 => ::fidl_next::RawWireUnion::decode_as::<
34770                    ___D,
34771                    crate::wire::UseEventStream<'static>,
34772                >(raw, decoder, ())?,
34773
34774                8 => ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::UseRunner<'static>>(
34775                    raw,
34776                    decoder,
34777                    (),
34778                )?,
34779
34780                9 => ::fidl_next::RawWireUnion::decode_as::<
34781                    ___D,
34782                    crate::wire::UseConfiguration<'static>,
34783                >(raw, decoder, ())?,
34784
34785                10 => ::fidl_next::RawWireUnion::decode_as::<
34786                    ___D,
34787                    crate::wire::UseDictionary<'static>,
34788                >(raw, decoder, ())?,
34789
34790                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34791                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34792            }
34793
34794            Ok(())
34795        }
34796    }
34797
34798    impl<'de> ::core::fmt::Debug for Use<'de> {
34799        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34800            self.as_ref().fmt(f)
34801        }
34802    }
34803
34804    impl<'de> ::fidl_next::IntoNatural for Use<'de> {
34805        type Natural = ::core::option::Option<crate::natural::Use>;
34806    }
34807
34808    impl ::fidl_next::Unconstrained for Use<'static> {}
34809
34810    #[repr(transparent)]
34811    pub struct Expose<'de> {
34812        pub(crate) raw: ::fidl_next::RawWireUnion,
34813        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34814    }
34815
34816    unsafe impl ::fidl_next::Wire for Expose<'static> {
34817        type Owned<'de> = Expose<'de>;
34818
34819        #[inline]
34820        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34821            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34822            ::fidl_next::RawWireUnion::zero_padding(raw);
34823        }
34824    }
34825
34826    impl<'de> Expose<'de> {
34827        pub fn is_some(&self) -> bool {
34828            self.raw.is_some()
34829        }
34830
34831        pub fn is_none(&self) -> bool {
34832            self.raw.is_none()
34833        }
34834
34835        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Expose<'de>> {
34836            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34837        }
34838
34839        pub fn into_option(self) -> ::core::option::Option<crate::wire::Expose<'de>> {
34840            if self.is_some() {
34841                Some(crate::wire::Expose { raw: self.raw, _phantom: ::core::marker::PhantomData })
34842            } else {
34843                None
34844            }
34845        }
34846    }
34847
34848    unsafe impl<___D> ::fidl_next::Decode<___D> for Expose<'static>
34849    where
34850        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34851        ___D: ::fidl_next::Decoder,
34852    {
34853        fn decode(
34854            mut slot: ::fidl_next::Slot<'_, Self>,
34855            decoder: &mut ___D,
34856            _: (),
34857        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34858            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34859            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34860                1 => ::fidl_next::RawWireUnion::decode_as::<
34861                    ___D,
34862                    crate::wire::ExposeService<'static>,
34863                >(raw, decoder, ())?,
34864
34865                2 => ::fidl_next::RawWireUnion::decode_as::<
34866                    ___D,
34867                    crate::wire::ExposeProtocol<'static>,
34868                >(raw, decoder, ())?,
34869
34870                3 => ::fidl_next::RawWireUnion::decode_as::<
34871                    ___D,
34872                    crate::wire::ExposeDirectory<'static>,
34873                >(raw, decoder, ())?,
34874
34875                4 => ::fidl_next::RawWireUnion::decode_as::<
34876                    ___D,
34877                    crate::wire::ExposeRunner<'static>,
34878                >(raw, decoder, ())?,
34879
34880                5 => ::fidl_next::RawWireUnion::decode_as::<
34881                    ___D,
34882                    crate::wire::ExposeResolver<'static>,
34883                >(raw, decoder, ())?,
34884
34885                7 => ::fidl_next::RawWireUnion::decode_as::<
34886                    ___D,
34887                    crate::wire::ExposeDictionary<'static>,
34888                >(raw, decoder, ())?,
34889
34890                8 => ::fidl_next::RawWireUnion::decode_as::<
34891                    ___D,
34892                    crate::wire::ExposeConfiguration<'static>,
34893                >(raw, decoder, ())?,
34894
34895                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
34896                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
34897            }
34898
34899            Ok(())
34900        }
34901    }
34902
34903    impl<'de> ::core::fmt::Debug for Expose<'de> {
34904        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34905            self.as_ref().fmt(f)
34906        }
34907    }
34908
34909    impl<'de> ::fidl_next::IntoNatural for Expose<'de> {
34910        type Natural = ::core::option::Option<crate::natural::Expose>;
34911    }
34912
34913    impl ::fidl_next::Unconstrained for Expose<'static> {}
34914
34915    #[repr(transparent)]
34916    pub struct Offer<'de> {
34917        pub(crate) raw: ::fidl_next::RawWireUnion,
34918        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34919    }
34920
34921    unsafe impl ::fidl_next::Wire for Offer<'static> {
34922        type Owned<'de> = Offer<'de>;
34923
34924        #[inline]
34925        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34926            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34927            ::fidl_next::RawWireUnion::zero_padding(raw);
34928        }
34929    }
34930
34931    impl<'de> Offer<'de> {
34932        pub fn is_some(&self) -> bool {
34933            self.raw.is_some()
34934        }
34935
34936        pub fn is_none(&self) -> bool {
34937            self.raw.is_none()
34938        }
34939
34940        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Offer<'de>> {
34941            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
34942        }
34943
34944        pub fn into_option(self) -> ::core::option::Option<crate::wire::Offer<'de>> {
34945            if self.is_some() {
34946                Some(crate::wire::Offer { raw: self.raw, _phantom: ::core::marker::PhantomData })
34947            } else {
34948                None
34949            }
34950        }
34951    }
34952
34953    unsafe impl<___D> ::fidl_next::Decode<___D> for Offer<'static>
34954    where
34955        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34956        ___D: ::fidl_next::Decoder,
34957    {
34958        fn decode(
34959            mut slot: ::fidl_next::Slot<'_, Self>,
34960            decoder: &mut ___D,
34961            _: (),
34962        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34963            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34964            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
34965                1 => ::fidl_next::RawWireUnion::decode_as::<
34966                    ___D,
34967                    crate::wire::OfferService<'static>,
34968                >(raw, decoder, ())?,
34969
34970                2 => ::fidl_next::RawWireUnion::decode_as::<
34971                    ___D,
34972                    crate::wire::OfferProtocol<'static>,
34973                >(raw, decoder, ())?,
34974
34975                3 => ::fidl_next::RawWireUnion::decode_as::<
34976                    ___D,
34977                    crate::wire::OfferDirectory<'static>,
34978                >(raw, decoder, ())?,
34979
34980                4 => ::fidl_next::RawWireUnion::decode_as::<
34981                    ___D,
34982                    crate::wire::OfferStorage<'static>,
34983                >(raw, decoder, ())?,
34984
34985                5 => {
34986                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::OfferRunner<'static>>(
34987                        raw,
34988                        decoder,
34989                        (),
34990                    )?
34991                }
34992
34993                6 => ::fidl_next::RawWireUnion::decode_as::<
34994                    ___D,
34995                    crate::wire::OfferResolver<'static>,
34996                >(raw, decoder, ())?,
34997
34998                8 => ::fidl_next::RawWireUnion::decode_as::<
34999                    ___D,
35000                    crate::wire::OfferEventStream<'static>,
35001                >(raw, decoder, ())?,
35002
35003                9 => ::fidl_next::RawWireUnion::decode_as::<
35004                    ___D,
35005                    crate::wire::OfferDictionary<'static>,
35006                >(raw, decoder, ())?,
35007
35008                10 => ::fidl_next::RawWireUnion::decode_as::<
35009                    ___D,
35010                    crate::wire::OfferConfiguration<'static>,
35011                >(raw, decoder, ())?,
35012
35013                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
35014                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
35015            }
35016
35017            Ok(())
35018        }
35019    }
35020
35021    impl<'de> ::core::fmt::Debug for Offer<'de> {
35022        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35023            self.as_ref().fmt(f)
35024        }
35025    }
35026
35027    impl<'de> ::fidl_next::IntoNatural for Offer<'de> {
35028        type Natural = ::core::option::Option<crate::natural::Offer>;
35029    }
35030
35031    impl ::fidl_next::Unconstrained for Offer<'static> {}
35032
35033    #[repr(transparent)]
35034    pub struct DebugRegistration<'de> {
35035        pub(crate) raw: ::fidl_next::RawWireUnion,
35036        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35037    }
35038
35039    unsafe impl ::fidl_next::Wire for DebugRegistration<'static> {
35040        type Owned<'de> = DebugRegistration<'de>;
35041
35042        #[inline]
35043        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35044            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35045            ::fidl_next::RawWireUnion::zero_padding(raw);
35046        }
35047    }
35048
35049    impl<'de> DebugRegistration<'de> {
35050        pub fn is_some(&self) -> bool {
35051            self.raw.is_some()
35052        }
35053
35054        pub fn is_none(&self) -> bool {
35055            self.raw.is_none()
35056        }
35057
35058        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::DebugRegistration<'de>> {
35059            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35060        }
35061
35062        pub fn into_option(self) -> ::core::option::Option<crate::wire::DebugRegistration<'de>> {
35063            if self.is_some() {
35064                Some(crate::wire::DebugRegistration {
35065                    raw: self.raw,
35066                    _phantom: ::core::marker::PhantomData,
35067                })
35068            } else {
35069                None
35070            }
35071        }
35072    }
35073
35074    unsafe impl<___D> ::fidl_next::Decode<___D> for DebugRegistration<'static>
35075    where
35076        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35077        ___D: ::fidl_next::Decoder,
35078    {
35079        fn decode(
35080            mut slot: ::fidl_next::Slot<'_, Self>,
35081            decoder: &mut ___D,
35082            _: (),
35083        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35084            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35085            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
35086                1 => ::fidl_next::RawWireUnion::decode_as::<
35087                    ___D,
35088                    crate::wire::DebugProtocolRegistration<'static>,
35089                >(raw, decoder, ())?,
35090
35091                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
35092                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
35093            }
35094
35095            Ok(())
35096        }
35097    }
35098
35099    impl<'de> ::core::fmt::Debug for DebugRegistration<'de> {
35100        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35101            self.as_ref().fmt(f)
35102        }
35103    }
35104
35105    impl<'de> ::fidl_next::IntoNatural for DebugRegistration<'de> {
35106        type Natural = ::core::option::Option<crate::natural::DebugRegistration>;
35107    }
35108
35109    impl ::fidl_next::Unconstrained for DebugRegistration<'static> {}
35110
35111    #[repr(transparent)]
35112    pub struct ConfigValueSource<'de> {
35113        pub(crate) raw: ::fidl_next::RawWireUnion,
35114        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35115    }
35116
35117    unsafe impl ::fidl_next::Wire for ConfigValueSource<'static> {
35118        type Owned<'de> = ConfigValueSource<'de>;
35119
35120        #[inline]
35121        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35122            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35123            ::fidl_next::RawWireUnion::zero_padding(raw);
35124        }
35125    }
35126
35127    impl<'de> ConfigValueSource<'de> {
35128        pub fn is_some(&self) -> bool {
35129            self.raw.is_some()
35130        }
35131
35132        pub fn is_none(&self) -> bool {
35133            self.raw.is_none()
35134        }
35135
35136        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigValueSource<'de>> {
35137            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35138        }
35139
35140        pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigValueSource<'de>> {
35141            if self.is_some() {
35142                Some(crate::wire::ConfigValueSource {
35143                    raw: self.raw,
35144                    _phantom: ::core::marker::PhantomData,
35145                })
35146            } else {
35147                None
35148            }
35149        }
35150    }
35151
35152    unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigValueSource<'static>
35153    where
35154        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35155        ___D: ::fidl_next::Decoder,
35156    {
35157        fn decode(
35158            mut slot: ::fidl_next::Slot<'_, Self>,
35159            decoder: &mut ___D,
35160            _: (),
35161        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35162            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35163            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
35164                1 => {
35165                    ::fidl_next::RawWireUnion::decode_as::<___D, ::fidl_next::WireString<'static>>(
35166                        raw, decoder, 4294967295,
35167                    )?
35168                }
35169
35170                2 => ::fidl_next::RawWireUnion::decode_as::<
35171                    ___D,
35172                    crate::wire::ConfigSourceCapabilities<'static>,
35173                >(raw, decoder, ())?,
35174
35175                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
35176                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
35177            }
35178
35179            Ok(())
35180        }
35181    }
35182
35183    impl<'de> ::core::fmt::Debug for ConfigValueSource<'de> {
35184        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35185            self.as_ref().fmt(f)
35186        }
35187    }
35188
35189    impl<'de> ::fidl_next::IntoNatural for ConfigValueSource<'de> {
35190        type Natural = ::core::option::Option<crate::natural::ConfigValueSource>;
35191    }
35192
35193    impl ::fidl_next::Unconstrained for ConfigValueSource<'static> {}
35194
35195    #[repr(transparent)]
35196    pub struct LayoutParameter<'de> {
35197        pub(crate) raw: ::fidl_next::RawWireUnion,
35198        pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35199    }
35200
35201    unsafe impl ::fidl_next::Wire for LayoutParameter<'static> {
35202        type Owned<'de> = LayoutParameter<'de>;
35203
35204        #[inline]
35205        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35206            ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35207            ::fidl_next::RawWireUnion::zero_padding(raw);
35208        }
35209    }
35210
35211    impl<'de> LayoutParameter<'de> {
35212        pub fn is_some(&self) -> bool {
35213            self.raw.is_some()
35214        }
35215
35216        pub fn is_none(&self) -> bool {
35217            self.raw.is_none()
35218        }
35219
35220        pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::LayoutParameter<'de>> {
35221            if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35222        }
35223
35224        pub fn into_option(self) -> ::core::option::Option<crate::wire::LayoutParameter<'de>> {
35225            if self.is_some() {
35226                Some(crate::wire::LayoutParameter {
35227                    raw: self.raw,
35228                    _phantom: ::core::marker::PhantomData,
35229                })
35230            } else {
35231                None
35232            }
35233        }
35234    }
35235
35236    unsafe impl<___D> ::fidl_next::Decode<___D> for LayoutParameter<'static>
35237    where
35238        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35239        ___D: ::fidl_next::Decoder,
35240    {
35241        fn decode(
35242            mut slot: ::fidl_next::Slot<'_, Self>,
35243            decoder: &mut ___D,
35244            _: (),
35245        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35246            ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35247            match ::fidl_next::RawWireUnion::encoded_ordinal(raw.as_mut()) {
35248                1 => {
35249                    ::fidl_next::RawWireUnion::decode_as::<___D, crate::wire::ConfigType<'static>>(
35250                        raw,
35251                        decoder,
35252                        (),
35253                    )?
35254                }
35255
35256                0 => ::fidl_next::RawWireUnion::decode_absent(raw)?,
35257                _ => ::fidl_next::RawWireUnion::decode_unknown(raw, decoder)?,
35258            }
35259
35260            Ok(())
35261        }
35262    }
35263
35264    impl<'de> ::core::fmt::Debug for LayoutParameter<'de> {
35265        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35266            self.as_ref().fmt(f)
35267        }
35268    }
35269
35270    impl<'de> ::fidl_next::IntoNatural for LayoutParameter<'de> {
35271        type Natural = ::core::option::Option<crate::natural::LayoutParameter>;
35272    }
35273
35274    impl ::fidl_next::Unconstrained for LayoutParameter<'static> {}
35275}
35276
35277pub mod generic {
35278
35279    pub struct ParentRef {}
35280
35281    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ParentRef, ___E> for ParentRef
35282    where
35283        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35284    {
35285        #[inline]
35286        fn encode(
35287            self,
35288            encoder_: &mut ___E,
35289            out_: &mut ::core::mem::MaybeUninit<crate::wire::ParentRef>,
35290            _: (),
35291        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35292            ::fidl_next::munge! {
35293                let crate::wire::ParentRef {
35294
35295                        _empty,
35296
35297
35298                } = out_;
35299            }
35300
35301            Ok(())
35302        }
35303    }
35304
35305    pub struct SelfRef {}
35306
35307    unsafe impl<___E> ::fidl_next::Encode<crate::wire::SelfRef, ___E> for SelfRef
35308    where
35309        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35310    {
35311        #[inline]
35312        fn encode(
35313            self,
35314            encoder_: &mut ___E,
35315            out_: &mut ::core::mem::MaybeUninit<crate::wire::SelfRef>,
35316            _: (),
35317        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35318            ::fidl_next::munge! {
35319                let crate::wire::SelfRef {
35320
35321                        _empty,
35322
35323
35324                } = out_;
35325            }
35326
35327            Ok(())
35328        }
35329    }
35330
35331    pub struct ChildRef<T0, T1> {
35332        pub name: T0,
35333
35334        pub collection: T1,
35335    }
35336
35337    unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>
35338        for ChildRef<T0, T1>
35339    where
35340        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35341        ___E: ::fidl_next::Encoder,
35342        T0: ::fidl_next::Encode<::fidl_next::WireString<'static>, ___E>,
35343        T1: ::fidl_next::Encode<::fidl_next::WireOptionalString<'static>, ___E>,
35344    {
35345        #[inline]
35346        fn encode(
35347            self,
35348            encoder_: &mut ___E,
35349            out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
35350            _: (),
35351        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35352            ::fidl_next::munge! {
35353                let crate::wire::ChildRef {
35354
35355                    name,
35356                    collection,
35357
35358                } = out_;
35359            }
35360
35361            ::fidl_next::Encode::encode(self.name, encoder_, name, 1024)?;
35362
35363            ::fidl_next::Encode::encode(self.collection, encoder_, collection, 100)?;
35364
35365            Ok(())
35366        }
35367    }
35368
35369    pub struct CollectionRef<T0> {
35370        pub name: T0,
35371    }
35372
35373    unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>
35374        for CollectionRef<T0>
35375    where
35376        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35377        ___E: ::fidl_next::Encoder,
35378        T0: ::fidl_next::Encode<::fidl_next::WireString<'static>, ___E>,
35379    {
35380        #[inline]
35381        fn encode(
35382            self,
35383            encoder_: &mut ___E,
35384            out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
35385            _: (),
35386        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35387            ::fidl_next::munge! {
35388                let crate::wire::CollectionRef {
35389
35390                    name,
35391
35392                } = out_;
35393            }
35394
35395            ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
35396
35397            Ok(())
35398        }
35399    }
35400
35401    pub struct FrameworkRef {}
35402
35403    unsafe impl<___E> ::fidl_next::Encode<crate::wire::FrameworkRef, ___E> for FrameworkRef
35404    where
35405        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35406    {
35407        #[inline]
35408        fn encode(
35409            self,
35410            encoder_: &mut ___E,
35411            out_: &mut ::core::mem::MaybeUninit<crate::wire::FrameworkRef>,
35412            _: (),
35413        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35414            ::fidl_next::munge! {
35415                let crate::wire::FrameworkRef {
35416
35417                        _empty,
35418
35419
35420                } = out_;
35421            }
35422
35423            Ok(())
35424        }
35425    }
35426
35427    pub struct CapabilityRef<T0> {
35428        pub name: T0,
35429    }
35430
35431    unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>
35432        for CapabilityRef<T0>
35433    where
35434        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35435        ___E: ::fidl_next::Encoder,
35436        T0: ::fidl_next::Encode<::fidl_next::WireString<'static>, ___E>,
35437    {
35438        #[inline]
35439        fn encode(
35440            self,
35441            encoder_: &mut ___E,
35442            out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
35443            _: (),
35444        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35445            ::fidl_next::munge! {
35446                let crate::wire::CapabilityRef {
35447
35448                    name,
35449
35450                } = out_;
35451            }
35452
35453            ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
35454
35455            Ok(())
35456        }
35457    }
35458
35459    pub struct DebugRef {}
35460
35461    unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugRef, ___E> for DebugRef
35462    where
35463        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35464    {
35465        #[inline]
35466        fn encode(
35467            self,
35468            encoder_: &mut ___E,
35469            out_: &mut ::core::mem::MaybeUninit<crate::wire::DebugRef>,
35470            _: (),
35471        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35472            ::fidl_next::munge! {
35473                let crate::wire::DebugRef {
35474
35475                        _empty,
35476
35477
35478                } = out_;
35479            }
35480
35481            Ok(())
35482        }
35483    }
35484
35485    pub struct VoidRef {}
35486
35487    unsafe impl<___E> ::fidl_next::Encode<crate::wire::VoidRef, ___E> for VoidRef
35488    where
35489        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35490    {
35491        #[inline]
35492        fn encode(
35493            self,
35494            encoder_: &mut ___E,
35495            out_: &mut ::core::mem::MaybeUninit<crate::wire::VoidRef>,
35496            _: (),
35497        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35498            ::fidl_next::munge! {
35499                let crate::wire::VoidRef {
35500
35501                        _empty,
35502
35503
35504                } = out_;
35505            }
35506
35507            Ok(())
35508        }
35509    }
35510
35511    pub struct EnvironmentRef {}
35512
35513    unsafe impl<___E> ::fidl_next::Encode<crate::wire::EnvironmentRef, ___E> for EnvironmentRef
35514    where
35515        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35516    {
35517        #[inline]
35518        fn encode(
35519            self,
35520            encoder_: &mut ___E,
35521            out_: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentRef>,
35522            _: (),
35523        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35524            ::fidl_next::munge! {
35525                let crate::wire::EnvironmentRef {
35526
35527                        _empty,
35528
35529
35530                } = out_;
35531            }
35532
35533            Ok(())
35534        }
35535    }
35536
35537    pub struct NameMapping<T0, T1> {
35538        pub source_name: T0,
35539
35540        pub target_name: T1,
35541    }
35542
35543    unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>
35544        for NameMapping<T0, T1>
35545    where
35546        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35547        ___E: ::fidl_next::Encoder,
35548        T0: ::fidl_next::Encode<::fidl_next::WireString<'static>, ___E>,
35549        T1: ::fidl_next::Encode<::fidl_next::WireString<'static>, ___E>,
35550    {
35551        #[inline]
35552        fn encode(
35553            self,
35554            encoder_: &mut ___E,
35555            out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
35556            _: (),
35557        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35558            ::fidl_next::munge! {
35559                let crate::wire::NameMapping {
35560
35561                    source_name,
35562                    target_name,
35563
35564                } = out_;
35565            }
35566
35567            ::fidl_next::Encode::encode(self.source_name, encoder_, source_name, 100)?;
35568
35569            ::fidl_next::Encode::encode(self.target_name, encoder_, target_name, 100)?;
35570
35571            Ok(())
35572        }
35573    }
35574
35575    pub struct ConfigType<T0, T1, T2> {
35576        pub layout: T0,
35577
35578        pub parameters: T1,
35579
35580        pub constraints: T2,
35581    }
35582
35583    unsafe impl<___E, T0, T1, T2> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>
35584        for ConfigType<T0, T1, T2>
35585    where
35586        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35587        ___E: ::fidl_next::Encoder,
35588        T0: ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E>,
35589        T1: ::fidl_next::Encode<
35590                ::fidl_next::WireOptionalVector<'static, crate::wire::LayoutParameter<'static>>,
35591                ___E,
35592            >,
35593        T2: ::fidl_next::Encode<
35594                ::fidl_next::WireVector<'static, crate::wire::LayoutConstraint<'static>>,
35595                ___E,
35596            >,
35597    {
35598        #[inline]
35599        fn encode(
35600            self,
35601            encoder_: &mut ___E,
35602            out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
35603            _: (),
35604        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35605            ::fidl_next::munge! {
35606                let crate::wire::ConfigType {
35607
35608                    layout,
35609                    parameters,
35610                    constraints,
35611
35612                } = out_;
35613            }
35614
35615            ::fidl_next::Encode::encode(self.layout, encoder_, layout, ())?;
35616
35617            ::fidl_next::Encode::encode(self.parameters, encoder_, parameters, (4294967295, ()))?;
35618
35619            ::fidl_next::Encode::encode(self.constraints, encoder_, constraints, (4294967295, ()))?;
35620
35621            Ok(())
35622        }
35623    }
35624
35625    pub struct ResolvedConfigField<T0, T1> {
35626        pub key: T0,
35627
35628        pub value: T1,
35629    }
35630
35631    unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
35632        for ResolvedConfigField<T0, T1>
35633    where
35634        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35635        ___E: ::fidl_next::Encoder,
35636        T0: ::fidl_next::Encode<::fidl_next::WireString<'static>, ___E>,
35637        T1: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
35638    {
35639        #[inline]
35640        fn encode(
35641            self,
35642            encoder_: &mut ___E,
35643            out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
35644            _: (),
35645        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35646            ::fidl_next::munge! {
35647                let crate::wire::ResolvedConfigField {
35648
35649                    key,
35650                    value,
35651
35652                } = out_;
35653            }
35654
35655            ::fidl_next::Encode::encode(self.key, encoder_, key, 4294967295)?;
35656
35657            ::fidl_next::Encode::encode(self.value, encoder_, value, ())?;
35658
35659            Ok(())
35660        }
35661    }
35662
35663    pub struct ResolvedConfig<T0, T1> {
35664        pub fields: T0,
35665
35666        pub checksum: T1,
35667    }
35668
35669    unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>
35670        for ResolvedConfig<T0, T1>
35671    where
35672        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
35673        ___E: ::fidl_next::Encoder,
35674        T0: ::fidl_next::Encode<
35675                ::fidl_next::WireVector<'static, crate::wire::ResolvedConfigField<'static>>,
35676                ___E,
35677            >,
35678        T1: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
35679    {
35680        #[inline]
35681        fn encode(
35682            self,
35683            encoder_: &mut ___E,
35684            out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
35685            _: (),
35686        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
35687            ::fidl_next::munge! {
35688                let crate::wire::ResolvedConfig {
35689
35690                    fields,
35691                    checksum,
35692
35693                } = out_;
35694            }
35695
35696            ::fidl_next::Encode::encode(self.fields, encoder_, fields, (4294967295, ()))?;
35697
35698            ::fidl_next::Encode::encode(self.checksum, encoder_, checksum, ())?;
35699
35700            Ok(())
35701        }
35702    }
35703}
35704
35705pub use self::natural::*;
35706
35707#[doc = " Config keys can only consist of these many bytes\n"]
35708pub const CONFIG_KEY_MAX_SIZE: u32 = 64 as u32;
35709
35710pub const MAX_NAME_LENGTH: u32 = 100 as u32;
35711
35712pub const MAX_PATH_LENGTH: u32 = 1024 as u32;
35713
35714pub const MAX_CHILD_NAME_LENGTH: u32 = 1024 as u32;
35715
35716pub const MAX_URL_SCHEME_LENGTH: u32 = 100 as u32;
35717
35718pub const MAX_MONIKER_LENGTH: u32 = 4096 as u32;
35719
35720#[doc = " The maximum number of EventSubscriptions in an EventStream.\n"]
35721pub const MAX_NUM_EVENT_STREAM_SUBSCRIPTIONS: u64 = 100 as u64;
35722
35723/// Compatibility shims which mimic some API surfaces of the current Rust bindings.
35724pub mod compat {
35725
35726    impl ::fidl_next::CompatFrom<crate::AllowedOffers>
35727        for ::fidl_fuchsia_component_decl::AllowedOffers
35728    {
35729        fn compat_from(value: crate::AllowedOffers) -> Self {
35730            match value {
35731                crate::AllowedOffers::StaticOnly => Self::StaticOnly,
35732
35733                crate::AllowedOffers::StaticAndDynamic => Self::StaticAndDynamic,
35734            }
35735        }
35736    }
35737
35738    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::AllowedOffers>
35739        for crate::AllowedOffers
35740    {
35741        fn compat_from(value: ::fidl_fuchsia_component_decl::AllowedOffers) -> Self {
35742            match value {
35743                ::fidl_fuchsia_component_decl::AllowedOffers::StaticOnly => Self::StaticOnly,
35744
35745                ::fidl_fuchsia_component_decl::AllowedOffers::StaticAndDynamic => {
35746                    Self::StaticAndDynamic
35747                }
35748            }
35749        }
35750    }
35751
35752    impl ::fidl_next::CompatFrom<crate::Availability> for ::fidl_fuchsia_component_decl::Availability {
35753        fn compat_from(value: crate::Availability) -> Self {
35754            match value {
35755                crate::Availability::Required => Self::Required,
35756
35757                crate::Availability::Optional => Self::Optional,
35758
35759                crate::Availability::SameAsTarget => Self::SameAsTarget,
35760
35761                crate::Availability::Transitional => Self::Transitional,
35762            }
35763        }
35764    }
35765
35766    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Availability> for crate::Availability {
35767        fn compat_from(value: ::fidl_fuchsia_component_decl::Availability) -> Self {
35768            match value {
35769                ::fidl_fuchsia_component_decl::Availability::Required => Self::Required,
35770
35771                ::fidl_fuchsia_component_decl::Availability::Optional => Self::Optional,
35772
35773                ::fidl_fuchsia_component_decl::Availability::SameAsTarget => Self::SameAsTarget,
35774
35775                ::fidl_fuchsia_component_decl::Availability::Transitional => Self::Transitional,
35776            }
35777        }
35778    }
35779
35780    impl ::fidl_next::CompatFrom<crate::Service> for ::fidl_fuchsia_component_decl::Service {
35781        fn compat_from(value: crate::Service) -> Self {
35782            Self {
35783                name: ::fidl_next::CompatFrom::compat_from(value.name),
35784
35785                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
35786
35787                __source_breaking: ::fidl::marker::SourceBreaking,
35788            }
35789        }
35790    }
35791
35792    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Service> for crate::Service {
35793        fn compat_from(value: ::fidl_fuchsia_component_decl::Service) -> Self {
35794            Self {
35795                name: ::fidl_next::CompatFrom::compat_from(value.name),
35796
35797                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
35798            }
35799        }
35800    }
35801
35802    impl ::fidl_next::CompatFrom<crate::Directory> for ::fidl_fuchsia_component_decl::Directory {
35803        fn compat_from(value: crate::Directory) -> Self {
35804            Self {
35805                name: ::fidl_next::CompatFrom::compat_from(value.name),
35806
35807                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
35808
35809                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
35810
35811                __source_breaking: ::fidl::marker::SourceBreaking,
35812            }
35813        }
35814    }
35815
35816    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Directory> for crate::Directory {
35817        fn compat_from(value: ::fidl_fuchsia_component_decl::Directory) -> Self {
35818            Self {
35819                name: ::fidl_next::CompatFrom::compat_from(value.name),
35820
35821                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
35822
35823                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
35824            }
35825        }
35826    }
35827
35828    impl ::fidl_next::CompatFrom<crate::ParentRef> for ::fidl_fuchsia_component_decl::ParentRef {
35829        #[inline]
35830        fn compat_from(value: crate::ParentRef) -> Self {
35831            Self {}
35832        }
35833    }
35834
35835    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ParentRef> for crate::ParentRef {
35836        #[inline]
35837        fn compat_from(value: ::fidl_fuchsia_component_decl::ParentRef) -> Self {
35838            Self {}
35839        }
35840    }
35841
35842    impl ::fidl_next::CompatFrom<crate::SelfRef> for ::fidl_fuchsia_component_decl::SelfRef {
35843        #[inline]
35844        fn compat_from(value: crate::SelfRef) -> Self {
35845            Self {}
35846        }
35847    }
35848
35849    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::SelfRef> for crate::SelfRef {
35850        #[inline]
35851        fn compat_from(value: ::fidl_fuchsia_component_decl::SelfRef) -> Self {
35852            Self {}
35853        }
35854    }
35855
35856    impl ::fidl_next::CompatFrom<crate::ChildRef> for ::fidl_fuchsia_component_decl::ChildRef {
35857        #[inline]
35858        fn compat_from(value: crate::ChildRef) -> Self {
35859            Self {
35860                name: ::fidl_next::CompatFrom::compat_from(value.name),
35861
35862                collection: ::fidl_next::CompatFrom::compat_from(value.collection),
35863            }
35864        }
35865    }
35866
35867    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ChildRef> for crate::ChildRef {
35868        #[inline]
35869        fn compat_from(value: ::fidl_fuchsia_component_decl::ChildRef) -> Self {
35870            Self {
35871                name: ::fidl_next::CompatFrom::compat_from(value.name),
35872
35873                collection: ::fidl_next::CompatFrom::compat_from(value.collection),
35874            }
35875        }
35876    }
35877
35878    impl ::fidl_next::CompatFrom<crate::CollectionRef>
35879        for ::fidl_fuchsia_component_decl::CollectionRef
35880    {
35881        #[inline]
35882        fn compat_from(value: crate::CollectionRef) -> Self {
35883            Self { name: ::fidl_next::CompatFrom::compat_from(value.name) }
35884        }
35885    }
35886
35887    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::CollectionRef>
35888        for crate::CollectionRef
35889    {
35890        #[inline]
35891        fn compat_from(value: ::fidl_fuchsia_component_decl::CollectionRef) -> Self {
35892            Self { name: ::fidl_next::CompatFrom::compat_from(value.name) }
35893        }
35894    }
35895
35896    impl ::fidl_next::CompatFrom<crate::FrameworkRef> for ::fidl_fuchsia_component_decl::FrameworkRef {
35897        #[inline]
35898        fn compat_from(value: crate::FrameworkRef) -> Self {
35899            Self {}
35900        }
35901    }
35902
35903    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::FrameworkRef> for crate::FrameworkRef {
35904        #[inline]
35905        fn compat_from(value: ::fidl_fuchsia_component_decl::FrameworkRef) -> Self {
35906            Self {}
35907        }
35908    }
35909
35910    impl ::fidl_next::CompatFrom<crate::CapabilityRef>
35911        for ::fidl_fuchsia_component_decl::CapabilityRef
35912    {
35913        #[inline]
35914        fn compat_from(value: crate::CapabilityRef) -> Self {
35915            Self { name: ::fidl_next::CompatFrom::compat_from(value.name) }
35916        }
35917    }
35918
35919    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::CapabilityRef>
35920        for crate::CapabilityRef
35921    {
35922        #[inline]
35923        fn compat_from(value: ::fidl_fuchsia_component_decl::CapabilityRef) -> Self {
35924            Self { name: ::fidl_next::CompatFrom::compat_from(value.name) }
35925        }
35926    }
35927
35928    impl ::fidl_next::CompatFrom<crate::DebugRef> for ::fidl_fuchsia_component_decl::DebugRef {
35929        #[inline]
35930        fn compat_from(value: crate::DebugRef) -> Self {
35931            Self {}
35932        }
35933    }
35934
35935    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::DebugRef> for crate::DebugRef {
35936        #[inline]
35937        fn compat_from(value: ::fidl_fuchsia_component_decl::DebugRef) -> Self {
35938            Self {}
35939        }
35940    }
35941
35942    impl ::fidl_next::CompatFrom<crate::VoidRef> for ::fidl_fuchsia_component_decl::VoidRef {
35943        #[inline]
35944        fn compat_from(value: crate::VoidRef) -> Self {
35945            Self {}
35946        }
35947    }
35948
35949    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::VoidRef> for crate::VoidRef {
35950        #[inline]
35951        fn compat_from(value: ::fidl_fuchsia_component_decl::VoidRef) -> Self {
35952            Self {}
35953        }
35954    }
35955
35956    impl ::fidl_next::CompatFrom<crate::StorageId> for ::fidl_fuchsia_component_decl::StorageId {
35957        fn compat_from(value: crate::StorageId) -> Self {
35958            match value {
35959                crate::StorageId::StaticInstanceId => Self::StaticInstanceId,
35960
35961                crate::StorageId::StaticInstanceIdOrMoniker => Self::StaticInstanceIdOrMoniker,
35962            }
35963        }
35964    }
35965
35966    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::StorageId> for crate::StorageId {
35967        fn compat_from(value: ::fidl_fuchsia_component_decl::StorageId) -> Self {
35968            match value {
35969                ::fidl_fuchsia_component_decl::StorageId::StaticInstanceId => {
35970                    Self::StaticInstanceId
35971                }
35972
35973                ::fidl_fuchsia_component_decl::StorageId::StaticInstanceIdOrMoniker => {
35974                    Self::StaticInstanceIdOrMoniker
35975                }
35976            }
35977        }
35978    }
35979
35980    impl ::fidl_next::CompatFrom<crate::Runner> for ::fidl_fuchsia_component_decl::Runner {
35981        fn compat_from(value: crate::Runner) -> Self {
35982            Self {
35983                name: ::fidl_next::CompatFrom::compat_from(value.name),
35984
35985                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
35986
35987                __source_breaking: ::fidl::marker::SourceBreaking,
35988            }
35989        }
35990    }
35991
35992    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Runner> for crate::Runner {
35993        fn compat_from(value: ::fidl_fuchsia_component_decl::Runner) -> Self {
35994            Self {
35995                name: ::fidl_next::CompatFrom::compat_from(value.name),
35996
35997                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
35998            }
35999        }
36000    }
36001
36002    impl ::fidl_next::CompatFrom<crate::Resolver> for ::fidl_fuchsia_component_decl::Resolver {
36003        fn compat_from(value: crate::Resolver) -> Self {
36004            Self {
36005                name: ::fidl_next::CompatFrom::compat_from(value.name),
36006
36007                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
36008
36009                __source_breaking: ::fidl::marker::SourceBreaking,
36010            }
36011        }
36012    }
36013
36014    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Resolver> for crate::Resolver {
36015        fn compat_from(value: ::fidl_fuchsia_component_decl::Resolver) -> Self {
36016            Self {
36017                name: ::fidl_next::CompatFrom::compat_from(value.name),
36018
36019                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
36020            }
36021        }
36022    }
36023
36024    impl ::fidl_next::CompatFrom<crate::EventStream> for ::fidl_fuchsia_component_decl::EventStream {
36025        fn compat_from(value: crate::EventStream) -> Self {
36026            Self {
36027                name: ::fidl_next::CompatFrom::compat_from(value.name),
36028
36029                __source_breaking: ::fidl::marker::SourceBreaking,
36030            }
36031        }
36032    }
36033
36034    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::EventStream> for crate::EventStream {
36035        fn compat_from(value: ::fidl_fuchsia_component_decl::EventStream) -> Self {
36036            Self { name: ::fidl_next::CompatFrom::compat_from(value.name) }
36037        }
36038    }
36039
36040    impl ::fidl_next::CompatFrom<crate::ConfigSingleValue>
36041        for ::fidl_fuchsia_component_decl::ConfigSingleValue
36042    {
36043        fn compat_from(value: crate::ConfigSingleValue) -> Self {
36044            match value {
36045                crate::ConfigSingleValue::Bool(value) => {
36046                    Self::Bool(::fidl_next::CompatFrom::compat_from(value))
36047                }
36048
36049                crate::ConfigSingleValue::Uint8(value) => {
36050                    Self::Uint8(::fidl_next::CompatFrom::compat_from(value))
36051                }
36052
36053                crate::ConfigSingleValue::Uint16(value) => {
36054                    Self::Uint16(::fidl_next::CompatFrom::compat_from(value))
36055                }
36056
36057                crate::ConfigSingleValue::Uint32(value) => {
36058                    Self::Uint32(::fidl_next::CompatFrom::compat_from(value))
36059                }
36060
36061                crate::ConfigSingleValue::Uint64(value) => {
36062                    Self::Uint64(::fidl_next::CompatFrom::compat_from(value))
36063                }
36064
36065                crate::ConfigSingleValue::Int8(value) => {
36066                    Self::Int8(::fidl_next::CompatFrom::compat_from(value))
36067                }
36068
36069                crate::ConfigSingleValue::Int16(value) => {
36070                    Self::Int16(::fidl_next::CompatFrom::compat_from(value))
36071                }
36072
36073                crate::ConfigSingleValue::Int32(value) => {
36074                    Self::Int32(::fidl_next::CompatFrom::compat_from(value))
36075                }
36076
36077                crate::ConfigSingleValue::Int64(value) => {
36078                    Self::Int64(::fidl_next::CompatFrom::compat_from(value))
36079                }
36080
36081                crate::ConfigSingleValue::String(value) => {
36082                    Self::String(::fidl_next::CompatFrom::compat_from(value))
36083                }
36084
36085                crate::ConfigSingleValue::UnknownOrdinal_(unknown_ordinal) => {
36086                    Self::__SourceBreaking { unknown_ordinal }
36087                }
36088            }
36089        }
36090    }
36091
36092    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigSingleValue>
36093        for crate::ConfigSingleValue
36094    {
36095        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigSingleValue) -> Self {
36096            match value {
36097                ::fidl_fuchsia_component_decl::ConfigSingleValue::Bool(value) => {
36098                    Self::Bool(::fidl_next::CompatFrom::compat_from(value))
36099                }
36100
36101                ::fidl_fuchsia_component_decl::ConfigSingleValue::Uint8(value) => {
36102                    Self::Uint8(::fidl_next::CompatFrom::compat_from(value))
36103                }
36104
36105                ::fidl_fuchsia_component_decl::ConfigSingleValue::Uint16(value) => {
36106                    Self::Uint16(::fidl_next::CompatFrom::compat_from(value))
36107                }
36108
36109                ::fidl_fuchsia_component_decl::ConfigSingleValue::Uint32(value) => {
36110                    Self::Uint32(::fidl_next::CompatFrom::compat_from(value))
36111                }
36112
36113                ::fidl_fuchsia_component_decl::ConfigSingleValue::Uint64(value) => {
36114                    Self::Uint64(::fidl_next::CompatFrom::compat_from(value))
36115                }
36116
36117                ::fidl_fuchsia_component_decl::ConfigSingleValue::Int8(value) => {
36118                    Self::Int8(::fidl_next::CompatFrom::compat_from(value))
36119                }
36120
36121                ::fidl_fuchsia_component_decl::ConfigSingleValue::Int16(value) => {
36122                    Self::Int16(::fidl_next::CompatFrom::compat_from(value))
36123                }
36124
36125                ::fidl_fuchsia_component_decl::ConfigSingleValue::Int32(value) => {
36126                    Self::Int32(::fidl_next::CompatFrom::compat_from(value))
36127                }
36128
36129                ::fidl_fuchsia_component_decl::ConfigSingleValue::Int64(value) => {
36130                    Self::Int64(::fidl_next::CompatFrom::compat_from(value))
36131                }
36132
36133                ::fidl_fuchsia_component_decl::ConfigSingleValue::String(value) => {
36134                    Self::String(::fidl_next::CompatFrom::compat_from(value))
36135                }
36136
36137                ::fidl_fuchsia_component_decl::ConfigSingleValue::__SourceBreaking {
36138                    unknown_ordinal,
36139                } => Self::UnknownOrdinal_(unknown_ordinal),
36140            }
36141        }
36142    }
36143
36144    impl ::fidl_next::CompatFrom<crate::ConfigVectorValue>
36145        for ::fidl_fuchsia_component_decl::ConfigVectorValue
36146    {
36147        fn compat_from(value: crate::ConfigVectorValue) -> Self {
36148            match value {
36149                crate::ConfigVectorValue::BoolVector(value) => {
36150                    Self::BoolVector(::fidl_next::CompatFrom::compat_from(value))
36151                }
36152
36153                crate::ConfigVectorValue::Uint8Vector(value) => {
36154                    Self::Uint8Vector(::fidl_next::CompatFrom::compat_from(value))
36155                }
36156
36157                crate::ConfigVectorValue::Uint16Vector(value) => {
36158                    Self::Uint16Vector(::fidl_next::CompatFrom::compat_from(value))
36159                }
36160
36161                crate::ConfigVectorValue::Uint32Vector(value) => {
36162                    Self::Uint32Vector(::fidl_next::CompatFrom::compat_from(value))
36163                }
36164
36165                crate::ConfigVectorValue::Uint64Vector(value) => {
36166                    Self::Uint64Vector(::fidl_next::CompatFrom::compat_from(value))
36167                }
36168
36169                crate::ConfigVectorValue::Int8Vector(value) => {
36170                    Self::Int8Vector(::fidl_next::CompatFrom::compat_from(value))
36171                }
36172
36173                crate::ConfigVectorValue::Int16Vector(value) => {
36174                    Self::Int16Vector(::fidl_next::CompatFrom::compat_from(value))
36175                }
36176
36177                crate::ConfigVectorValue::Int32Vector(value) => {
36178                    Self::Int32Vector(::fidl_next::CompatFrom::compat_from(value))
36179                }
36180
36181                crate::ConfigVectorValue::Int64Vector(value) => {
36182                    Self::Int64Vector(::fidl_next::CompatFrom::compat_from(value))
36183                }
36184
36185                crate::ConfigVectorValue::StringVector(value) => {
36186                    Self::StringVector(::fidl_next::CompatFrom::compat_from(value))
36187                }
36188
36189                crate::ConfigVectorValue::UnknownOrdinal_(unknown_ordinal) => {
36190                    Self::__SourceBreaking { unknown_ordinal }
36191                }
36192            }
36193        }
36194    }
36195
36196    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigVectorValue>
36197        for crate::ConfigVectorValue
36198    {
36199        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigVectorValue) -> Self {
36200            match value {
36201                ::fidl_fuchsia_component_decl::ConfigVectorValue::BoolVector(value) => {
36202                    Self::BoolVector(::fidl_next::CompatFrom::compat_from(value))
36203                }
36204
36205                ::fidl_fuchsia_component_decl::ConfigVectorValue::Uint8Vector(value) => {
36206                    Self::Uint8Vector(::fidl_next::CompatFrom::compat_from(value))
36207                }
36208
36209                ::fidl_fuchsia_component_decl::ConfigVectorValue::Uint16Vector(value) => {
36210                    Self::Uint16Vector(::fidl_next::CompatFrom::compat_from(value))
36211                }
36212
36213                ::fidl_fuchsia_component_decl::ConfigVectorValue::Uint32Vector(value) => {
36214                    Self::Uint32Vector(::fidl_next::CompatFrom::compat_from(value))
36215                }
36216
36217                ::fidl_fuchsia_component_decl::ConfigVectorValue::Uint64Vector(value) => {
36218                    Self::Uint64Vector(::fidl_next::CompatFrom::compat_from(value))
36219                }
36220
36221                ::fidl_fuchsia_component_decl::ConfigVectorValue::Int8Vector(value) => {
36222                    Self::Int8Vector(::fidl_next::CompatFrom::compat_from(value))
36223                }
36224
36225                ::fidl_fuchsia_component_decl::ConfigVectorValue::Int16Vector(value) => {
36226                    Self::Int16Vector(::fidl_next::CompatFrom::compat_from(value))
36227                }
36228
36229                ::fidl_fuchsia_component_decl::ConfigVectorValue::Int32Vector(value) => {
36230                    Self::Int32Vector(::fidl_next::CompatFrom::compat_from(value))
36231                }
36232
36233                ::fidl_fuchsia_component_decl::ConfigVectorValue::Int64Vector(value) => {
36234                    Self::Int64Vector(::fidl_next::CompatFrom::compat_from(value))
36235                }
36236
36237                ::fidl_fuchsia_component_decl::ConfigVectorValue::StringVector(value) => {
36238                    Self::StringVector(::fidl_next::CompatFrom::compat_from(value))
36239                }
36240
36241                ::fidl_fuchsia_component_decl::ConfigVectorValue::__SourceBreaking {
36242                    unknown_ordinal,
36243                } => Self::UnknownOrdinal_(unknown_ordinal),
36244            }
36245        }
36246    }
36247
36248    impl ::fidl_next::CompatFrom<crate::ConfigValue> for ::fidl_fuchsia_component_decl::ConfigValue {
36249        fn compat_from(value: crate::ConfigValue) -> Self {
36250            match value {
36251                crate::ConfigValue::Single(value) => {
36252                    Self::Single(::fidl_next::CompatFrom::compat_from(value))
36253                }
36254
36255                crate::ConfigValue::Vector(value) => {
36256                    Self::Vector(::fidl_next::CompatFrom::compat_from(value))
36257                }
36258
36259                crate::ConfigValue::UnknownOrdinal_(unknown_ordinal) => {
36260                    Self::__SourceBreaking { unknown_ordinal }
36261                }
36262            }
36263        }
36264    }
36265
36266    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigValue> for crate::ConfigValue {
36267        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigValue) -> Self {
36268            match value {
36269                ::fidl_fuchsia_component_decl::ConfigValue::Single(value) => {
36270                    Self::Single(::fidl_next::CompatFrom::compat_from(value))
36271                }
36272
36273                ::fidl_fuchsia_component_decl::ConfigValue::Vector(value) => {
36274                    Self::Vector(::fidl_next::CompatFrom::compat_from(value))
36275                }
36276
36277                ::fidl_fuchsia_component_decl::ConfigValue::__SourceBreaking {
36278                    unknown_ordinal,
36279                } => Self::UnknownOrdinal_(unknown_ordinal),
36280            }
36281        }
36282    }
36283
36284    impl ::fidl_next::CompatFrom<crate::Configuration>
36285        for ::fidl_fuchsia_component_decl::Configuration
36286    {
36287        fn compat_from(value: crate::Configuration) -> Self {
36288            Self {
36289                name: ::fidl_next::CompatFrom::compat_from(value.name),
36290
36291                value: ::fidl_next::CompatFrom::compat_from(value.value),
36292
36293                __source_breaking: ::fidl::marker::SourceBreaking,
36294            }
36295        }
36296    }
36297
36298    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Configuration>
36299        for crate::Configuration
36300    {
36301        fn compat_from(value: ::fidl_fuchsia_component_decl::Configuration) -> Self {
36302            Self {
36303                name: ::fidl_next::CompatFrom::compat_from(value.name),
36304
36305                value: ::fidl_next::CompatFrom::compat_from(value.value),
36306            }
36307        }
36308    }
36309
36310    impl ::fidl_next::CompatFrom<crate::DeliveryType> for ::fidl_fuchsia_component_decl::DeliveryType {
36311        fn compat_from(value: crate::DeliveryType) -> Self {
36312            match value {
36313                crate::DeliveryType::Immediate => Self::Immediate,
36314
36315                crate::DeliveryType::OnReadable => Self::OnReadable,
36316
36317                crate::DeliveryType::UnknownOrdinal_(unknown_ordinal) => {
36318                    Self::__SourceBreaking { unknown_ordinal }
36319                }
36320            }
36321        }
36322    }
36323
36324    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::DeliveryType> for crate::DeliveryType {
36325        fn compat_from(value: ::fidl_fuchsia_component_decl::DeliveryType) -> Self {
36326            match value {
36327                ::fidl_fuchsia_component_decl::DeliveryType::Immediate => Self::Immediate,
36328
36329                ::fidl_fuchsia_component_decl::DeliveryType::OnReadable => Self::OnReadable,
36330
36331                ::fidl_fuchsia_component_decl::DeliveryType::__SourceBreaking {
36332                    unknown_ordinal: value,
36333                } => Self::UnknownOrdinal_(value),
36334            }
36335        }
36336    }
36337
36338    impl ::fidl_next::CompatFrom<crate::Protocol> for ::fidl_fuchsia_component_decl::Protocol {
36339        fn compat_from(value: crate::Protocol) -> Self {
36340            Self {
36341                name: ::fidl_next::CompatFrom::compat_from(value.name),
36342
36343                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
36344
36345                delivery: ::fidl_next::CompatFrom::compat_from(value.delivery),
36346
36347                __source_breaking: ::fidl::marker::SourceBreaking,
36348            }
36349        }
36350    }
36351
36352    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Protocol> for crate::Protocol {
36353        fn compat_from(value: ::fidl_fuchsia_component_decl::Protocol) -> Self {
36354            Self {
36355                name: ::fidl_next::CompatFrom::compat_from(value.name),
36356
36357                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
36358
36359                delivery: ::fidl_next::CompatFrom::compat_from(value.delivery),
36360            }
36361        }
36362    }
36363
36364    impl ::fidl_next::CompatFrom<crate::EnvironmentRef>
36365        for ::fidl_fuchsia_component_decl::EnvironmentRef
36366    {
36367        #[inline]
36368        fn compat_from(value: crate::EnvironmentRef) -> Self {
36369            Self {}
36370        }
36371    }
36372
36373    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::EnvironmentRef>
36374        for crate::EnvironmentRef
36375    {
36376        #[inline]
36377        fn compat_from(value: ::fidl_fuchsia_component_decl::EnvironmentRef) -> Self {
36378            Self {}
36379        }
36380    }
36381
36382    impl ::fidl_next::CompatFrom<crate::Ref> for ::fidl_fuchsia_component_decl::Ref {
36383        fn compat_from(value: crate::Ref) -> Self {
36384            match value {
36385                crate::Ref::Parent(value) => {
36386                    Self::Parent(::fidl_next::CompatFrom::compat_from(value))
36387                }
36388
36389                crate::Ref::Self_(value) => {
36390                    Self::Self_(::fidl_next::CompatFrom::compat_from(value))
36391                }
36392
36393                crate::Ref::Child(value) => {
36394                    Self::Child(::fidl_next::CompatFrom::compat_from(value))
36395                }
36396
36397                crate::Ref::Collection(value) => {
36398                    Self::Collection(::fidl_next::CompatFrom::compat_from(value))
36399                }
36400
36401                crate::Ref::Framework(value) => {
36402                    Self::Framework(::fidl_next::CompatFrom::compat_from(value))
36403                }
36404
36405                crate::Ref::Capability(value) => {
36406                    Self::Capability(::fidl_next::CompatFrom::compat_from(value))
36407                }
36408
36409                crate::Ref::Debug(value) => {
36410                    Self::Debug(::fidl_next::CompatFrom::compat_from(value))
36411                }
36412
36413                crate::Ref::VoidType(value) => {
36414                    Self::VoidType(::fidl_next::CompatFrom::compat_from(value))
36415                }
36416
36417                crate::Ref::Environment(value) => {
36418                    Self::Environment(::fidl_next::CompatFrom::compat_from(value))
36419                }
36420
36421                crate::Ref::UnknownOrdinal_(unknown_ordinal) => {
36422                    Self::__SourceBreaking { unknown_ordinal }
36423                }
36424            }
36425        }
36426    }
36427
36428    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Ref> for crate::Ref {
36429        fn compat_from(value: ::fidl_fuchsia_component_decl::Ref) -> Self {
36430            match value {
36431                ::fidl_fuchsia_component_decl::Ref::Parent(value) => {
36432                    Self::Parent(::fidl_next::CompatFrom::compat_from(value))
36433                }
36434
36435                ::fidl_fuchsia_component_decl::Ref::Self_(value) => {
36436                    Self::Self_(::fidl_next::CompatFrom::compat_from(value))
36437                }
36438
36439                ::fidl_fuchsia_component_decl::Ref::Child(value) => {
36440                    Self::Child(::fidl_next::CompatFrom::compat_from(value))
36441                }
36442
36443                ::fidl_fuchsia_component_decl::Ref::Collection(value) => {
36444                    Self::Collection(::fidl_next::CompatFrom::compat_from(value))
36445                }
36446
36447                ::fidl_fuchsia_component_decl::Ref::Framework(value) => {
36448                    Self::Framework(::fidl_next::CompatFrom::compat_from(value))
36449                }
36450
36451                ::fidl_fuchsia_component_decl::Ref::Capability(value) => {
36452                    Self::Capability(::fidl_next::CompatFrom::compat_from(value))
36453                }
36454
36455                ::fidl_fuchsia_component_decl::Ref::Debug(value) => {
36456                    Self::Debug(::fidl_next::CompatFrom::compat_from(value))
36457                }
36458
36459                ::fidl_fuchsia_component_decl::Ref::VoidType(value) => {
36460                    Self::VoidType(::fidl_next::CompatFrom::compat_from(value))
36461                }
36462
36463                ::fidl_fuchsia_component_decl::Ref::Environment(value) => {
36464                    Self::Environment(::fidl_next::CompatFrom::compat_from(value))
36465                }
36466
36467                ::fidl_fuchsia_component_decl::Ref::__SourceBreaking { unknown_ordinal } => {
36468                    Self::UnknownOrdinal_(unknown_ordinal)
36469                }
36470            }
36471        }
36472    }
36473
36474    impl ::fidl_next::CompatFrom<crate::Storage> for ::fidl_fuchsia_component_decl::Storage {
36475        fn compat_from(value: crate::Storage) -> Self {
36476            Self {
36477                name: ::fidl_next::CompatFrom::compat_from(value.name),
36478
36479                source: ::fidl_next::CompatFrom::compat_from(value.source),
36480
36481                backing_dir: ::fidl_next::CompatFrom::compat_from(value.backing_dir),
36482
36483                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
36484
36485                storage_id: ::fidl_next::CompatFrom::compat_from(value.storage_id),
36486
36487                __source_breaking: ::fidl::marker::SourceBreaking,
36488            }
36489        }
36490    }
36491
36492    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Storage> for crate::Storage {
36493        fn compat_from(value: ::fidl_fuchsia_component_decl::Storage) -> Self {
36494            Self {
36495                name: ::fidl_next::CompatFrom::compat_from(value.name),
36496
36497                source: ::fidl_next::CompatFrom::compat_from(value.source),
36498
36499                backing_dir: ::fidl_next::CompatFrom::compat_from(value.backing_dir),
36500
36501                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
36502
36503                storage_id: ::fidl_next::CompatFrom::compat_from(value.storage_id),
36504            }
36505        }
36506    }
36507
36508    impl ::fidl_next::CompatFrom<crate::Dictionary> for ::fidl_fuchsia_component_decl::Dictionary {
36509        fn compat_from(value: crate::Dictionary) -> Self {
36510            Self {
36511                name: ::fidl_next::CompatFrom::compat_from(value.name),
36512
36513                source: ::fidl_next::CompatFrom::compat_from(value.source),
36514
36515                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
36516
36517                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
36518
36519                __source_breaking: ::fidl::marker::SourceBreaking,
36520            }
36521        }
36522    }
36523
36524    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Dictionary> for crate::Dictionary {
36525        fn compat_from(value: ::fidl_fuchsia_component_decl::Dictionary) -> Self {
36526            Self {
36527                name: ::fidl_next::CompatFrom::compat_from(value.name),
36528
36529                source: ::fidl_next::CompatFrom::compat_from(value.source),
36530
36531                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
36532
36533                source_path: ::fidl_next::CompatFrom::compat_from(value.source_path),
36534            }
36535        }
36536    }
36537
36538    impl ::fidl_next::CompatFrom<crate::Capability> for ::fidl_fuchsia_component_decl::Capability {
36539        fn compat_from(value: crate::Capability) -> Self {
36540            match value {
36541                crate::Capability::Service(value) => {
36542                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
36543                }
36544
36545                crate::Capability::Protocol(value) => {
36546                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
36547                }
36548
36549                crate::Capability::Directory(value) => {
36550                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
36551                }
36552
36553                crate::Capability::Storage(value) => {
36554                    Self::Storage(::fidl_next::CompatFrom::compat_from(value))
36555                }
36556
36557                crate::Capability::Runner(value) => {
36558                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
36559                }
36560
36561                crate::Capability::Resolver(value) => {
36562                    Self::Resolver(::fidl_next::CompatFrom::compat_from(value))
36563                }
36564
36565                crate::Capability::EventStream(value) => {
36566                    Self::EventStream(::fidl_next::CompatFrom::compat_from(value))
36567                }
36568
36569                crate::Capability::Dictionary(value) => {
36570                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
36571                }
36572
36573                crate::Capability::Config(value) => {
36574                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
36575                }
36576
36577                crate::Capability::UnknownOrdinal_(unknown_ordinal) => {
36578                    Self::__SourceBreaking { unknown_ordinal }
36579                }
36580            }
36581        }
36582    }
36583
36584    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Capability> for crate::Capability {
36585        fn compat_from(value: ::fidl_fuchsia_component_decl::Capability) -> Self {
36586            match value {
36587                ::fidl_fuchsia_component_decl::Capability::Service(value) => {
36588                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
36589                }
36590
36591                ::fidl_fuchsia_component_decl::Capability::Protocol(value) => {
36592                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
36593                }
36594
36595                ::fidl_fuchsia_component_decl::Capability::Directory(value) => {
36596                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
36597                }
36598
36599                ::fidl_fuchsia_component_decl::Capability::Storage(value) => {
36600                    Self::Storage(::fidl_next::CompatFrom::compat_from(value))
36601                }
36602
36603                ::fidl_fuchsia_component_decl::Capability::Runner(value) => {
36604                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
36605                }
36606
36607                ::fidl_fuchsia_component_decl::Capability::Resolver(value) => {
36608                    Self::Resolver(::fidl_next::CompatFrom::compat_from(value))
36609                }
36610
36611                ::fidl_fuchsia_component_decl::Capability::EventStream(value) => {
36612                    Self::EventStream(::fidl_next::CompatFrom::compat_from(value))
36613                }
36614
36615                ::fidl_fuchsia_component_decl::Capability::Dictionary(value) => {
36616                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
36617                }
36618
36619                ::fidl_fuchsia_component_decl::Capability::Config(value) => {
36620                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
36621                }
36622
36623                ::fidl_fuchsia_component_decl::Capability::__SourceBreaking { unknown_ordinal } => {
36624                    Self::UnknownOrdinal_(unknown_ordinal)
36625                }
36626            }
36627        }
36628    }
36629
36630    impl ::fidl_next::CompatFrom<crate::StartupMode> for ::fidl_fuchsia_component_decl::StartupMode {
36631        fn compat_from(value: crate::StartupMode) -> Self {
36632            match value {
36633                crate::StartupMode::Lazy => Self::Lazy,
36634
36635                crate::StartupMode::Eager => Self::Eager,
36636            }
36637        }
36638    }
36639
36640    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::StartupMode> for crate::StartupMode {
36641        fn compat_from(value: ::fidl_fuchsia_component_decl::StartupMode) -> Self {
36642            match value {
36643                ::fidl_fuchsia_component_decl::StartupMode::Lazy => Self::Lazy,
36644
36645                ::fidl_fuchsia_component_decl::StartupMode::Eager => Self::Eager,
36646            }
36647        }
36648    }
36649
36650    impl ::fidl_next::CompatFrom<crate::OnTerminate> for ::fidl_fuchsia_component_decl::OnTerminate {
36651        fn compat_from(value: crate::OnTerminate) -> Self {
36652            match value {
36653                crate::OnTerminate::None => Self::None,
36654
36655                crate::OnTerminate::Reboot => Self::Reboot,
36656            }
36657        }
36658    }
36659
36660    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OnTerminate> for crate::OnTerminate {
36661        fn compat_from(value: ::fidl_fuchsia_component_decl::OnTerminate) -> Self {
36662            match value {
36663                ::fidl_fuchsia_component_decl::OnTerminate::None => Self::None,
36664
36665                ::fidl_fuchsia_component_decl::OnTerminate::Reboot => Self::Reboot,
36666            }
36667        }
36668    }
36669
36670    impl ::fidl_next::CompatFrom<crate::ConfigOverride>
36671        for ::fidl_fuchsia_component_decl::ConfigOverride
36672    {
36673        fn compat_from(value: crate::ConfigOverride) -> Self {
36674            Self {
36675                key: ::fidl_next::CompatFrom::compat_from(value.key),
36676
36677                value: ::fidl_next::CompatFrom::compat_from(value.value),
36678
36679                __source_breaking: ::fidl::marker::SourceBreaking,
36680            }
36681        }
36682    }
36683
36684    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigOverride>
36685        for crate::ConfigOverride
36686    {
36687        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigOverride) -> Self {
36688            Self {
36689                key: ::fidl_next::CompatFrom::compat_from(value.key),
36690
36691                value: ::fidl_next::CompatFrom::compat_from(value.value),
36692            }
36693        }
36694    }
36695
36696    impl ::fidl_next::CompatFrom<crate::Child> for ::fidl_fuchsia_component_decl::Child {
36697        fn compat_from(value: crate::Child) -> Self {
36698            Self {
36699                name: ::fidl_next::CompatFrom::compat_from(value.name),
36700
36701                url: ::fidl_next::CompatFrom::compat_from(value.url),
36702
36703                startup: ::fidl_next::CompatFrom::compat_from(value.startup),
36704
36705                environment: ::fidl_next::CompatFrom::compat_from(value.environment),
36706
36707                on_terminate: ::fidl_next::CompatFrom::compat_from(value.on_terminate),
36708
36709                config_overrides: ::fidl_next::CompatFrom::compat_from(value.config_overrides),
36710
36711                __source_breaking: ::fidl::marker::SourceBreaking,
36712            }
36713        }
36714    }
36715
36716    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Child> for crate::Child {
36717        fn compat_from(value: ::fidl_fuchsia_component_decl::Child) -> Self {
36718            Self {
36719                name: ::fidl_next::CompatFrom::compat_from(value.name),
36720
36721                url: ::fidl_next::CompatFrom::compat_from(value.url),
36722
36723                startup: ::fidl_next::CompatFrom::compat_from(value.startup),
36724
36725                environment: ::fidl_next::CompatFrom::compat_from(value.environment),
36726
36727                on_terminate: ::fidl_next::CompatFrom::compat_from(value.on_terminate),
36728
36729                config_overrides: ::fidl_next::CompatFrom::compat_from(value.config_overrides),
36730            }
36731        }
36732    }
36733
36734    impl ::fidl_next::CompatFrom<crate::Durability> for ::fidl_fuchsia_component_decl::Durability {
36735        fn compat_from(value: crate::Durability) -> Self {
36736            match value {
36737                crate::Durability::Transient => Self::Transient,
36738
36739                crate::Durability::SingleRun => Self::SingleRun,
36740            }
36741        }
36742    }
36743
36744    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Durability> for crate::Durability {
36745        fn compat_from(value: ::fidl_fuchsia_component_decl::Durability) -> Self {
36746            match value {
36747                ::fidl_fuchsia_component_decl::Durability::Transient => Self::Transient,
36748
36749                ::fidl_fuchsia_component_decl::Durability::SingleRun => Self::SingleRun,
36750            }
36751        }
36752    }
36753
36754    impl ::fidl_next::CompatFrom<crate::Collection> for ::fidl_fuchsia_component_decl::Collection {
36755        fn compat_from(value: crate::Collection) -> Self {
36756            Self {
36757                name: ::fidl_next::CompatFrom::compat_from(value.name),
36758
36759                durability: ::fidl_next::CompatFrom::compat_from(value.durability),
36760
36761                environment: ::fidl_next::CompatFrom::compat_from(value.environment),
36762
36763                allowed_offers: ::fidl_next::CompatFrom::compat_from(value.allowed_offers),
36764
36765                allow_long_names: ::fidl_next::CompatFrom::compat_from(value.allow_long_names),
36766
36767                persistent_storage: ::fidl_next::CompatFrom::compat_from(value.persistent_storage),
36768
36769                __source_breaking: ::fidl::marker::SourceBreaking,
36770            }
36771        }
36772    }
36773
36774    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Collection> for crate::Collection {
36775        fn compat_from(value: ::fidl_fuchsia_component_decl::Collection) -> Self {
36776            Self {
36777                name: ::fidl_next::CompatFrom::compat_from(value.name),
36778
36779                durability: ::fidl_next::CompatFrom::compat_from(value.durability),
36780
36781                environment: ::fidl_next::CompatFrom::compat_from(value.environment),
36782
36783                allowed_offers: ::fidl_next::CompatFrom::compat_from(value.allowed_offers),
36784
36785                allow_long_names: ::fidl_next::CompatFrom::compat_from(value.allow_long_names),
36786
36787                persistent_storage: ::fidl_next::CompatFrom::compat_from(value.persistent_storage),
36788            }
36789        }
36790    }
36791
36792    impl ::fidl_next::CompatFrom<crate::DependencyType>
36793        for ::fidl_fuchsia_component_decl::DependencyType
36794    {
36795        fn compat_from(value: crate::DependencyType) -> Self {
36796            match value {
36797                crate::DependencyType::Strong => Self::Strong,
36798
36799                crate::DependencyType::Weak => Self::Weak,
36800            }
36801        }
36802    }
36803
36804    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::DependencyType>
36805        for crate::DependencyType
36806    {
36807        fn compat_from(value: ::fidl_fuchsia_component_decl::DependencyType) -> Self {
36808            match value {
36809                ::fidl_fuchsia_component_decl::DependencyType::Strong => Self::Strong,
36810
36811                ::fidl_fuchsia_component_decl::DependencyType::Weak => Self::Weak,
36812            }
36813        }
36814    }
36815
36816    impl ::fidl_next::CompatFrom<crate::NameMapping> for ::fidl_fuchsia_component_decl::NameMapping {
36817        #[inline]
36818        fn compat_from(value: crate::NameMapping) -> Self {
36819            Self {
36820                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
36821
36822                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
36823            }
36824        }
36825    }
36826
36827    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::NameMapping> for crate::NameMapping {
36828        #[inline]
36829        fn compat_from(value: ::fidl_fuchsia_component_decl::NameMapping) -> Self {
36830            Self {
36831                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
36832
36833                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
36834            }
36835        }
36836    }
36837
36838    impl ::fidl_next::CompatFrom<crate::EnvironmentExtends>
36839        for ::fidl_fuchsia_component_decl::EnvironmentExtends
36840    {
36841        fn compat_from(value: crate::EnvironmentExtends) -> Self {
36842            match value {
36843                crate::EnvironmentExtends::None => Self::None,
36844
36845                crate::EnvironmentExtends::Realm => Self::Realm,
36846            }
36847        }
36848    }
36849
36850    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::EnvironmentExtends>
36851        for crate::EnvironmentExtends
36852    {
36853        fn compat_from(value: ::fidl_fuchsia_component_decl::EnvironmentExtends) -> Self {
36854            match value {
36855                ::fidl_fuchsia_component_decl::EnvironmentExtends::None => Self::None,
36856
36857                ::fidl_fuchsia_component_decl::EnvironmentExtends::Realm => Self::Realm,
36858            }
36859        }
36860    }
36861
36862    impl ::fidl_next::CompatFrom<crate::ConfigTypeLayout>
36863        for ::fidl_fuchsia_component_decl::ConfigTypeLayout
36864    {
36865        fn compat_from(value: crate::ConfigTypeLayout) -> Self {
36866            match value {
36867                crate::ConfigTypeLayout::Bool => Self::Bool,
36868
36869                crate::ConfigTypeLayout::Uint8 => Self::Uint8,
36870
36871                crate::ConfigTypeLayout::Uint16 => Self::Uint16,
36872
36873                crate::ConfigTypeLayout::Uint32 => Self::Uint32,
36874
36875                crate::ConfigTypeLayout::Uint64 => Self::Uint64,
36876
36877                crate::ConfigTypeLayout::Int8 => Self::Int8,
36878
36879                crate::ConfigTypeLayout::Int16 => Self::Int16,
36880
36881                crate::ConfigTypeLayout::Int32 => Self::Int32,
36882
36883                crate::ConfigTypeLayout::Int64 => Self::Int64,
36884
36885                crate::ConfigTypeLayout::String => Self::String,
36886
36887                crate::ConfigTypeLayout::Vector => Self::Vector,
36888
36889                crate::ConfigTypeLayout::UnknownOrdinal_(unknown_ordinal) => {
36890                    Self::__SourceBreaking { unknown_ordinal }
36891                }
36892            }
36893        }
36894    }
36895
36896    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigTypeLayout>
36897        for crate::ConfigTypeLayout
36898    {
36899        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigTypeLayout) -> Self {
36900            match value {
36901                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Bool => Self::Bool,
36902
36903                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Uint8 => Self::Uint8,
36904
36905                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Uint16 => Self::Uint16,
36906
36907                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Uint32 => Self::Uint32,
36908
36909                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Uint64 => Self::Uint64,
36910
36911                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Int8 => Self::Int8,
36912
36913                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Int16 => Self::Int16,
36914
36915                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Int32 => Self::Int32,
36916
36917                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Int64 => Self::Int64,
36918
36919                ::fidl_fuchsia_component_decl::ConfigTypeLayout::String => Self::String,
36920
36921                ::fidl_fuchsia_component_decl::ConfigTypeLayout::Vector => Self::Vector,
36922
36923                ::fidl_fuchsia_component_decl::ConfigTypeLayout::__SourceBreaking {
36924                    unknown_ordinal: value,
36925                } => Self::UnknownOrdinal_(value),
36926            }
36927        }
36928    }
36929
36930    impl ::fidl_next::CompatFrom<crate::LayoutConstraint>
36931        for ::fidl_fuchsia_component_decl::LayoutConstraint
36932    {
36933        fn compat_from(value: crate::LayoutConstraint) -> Self {
36934            match value {
36935                crate::LayoutConstraint::MaxSize(value) => {
36936                    Self::MaxSize(::fidl_next::CompatFrom::compat_from(value))
36937                }
36938
36939                crate::LayoutConstraint::UnknownOrdinal_(unknown_ordinal) => {
36940                    Self::__SourceBreaking { unknown_ordinal }
36941                }
36942            }
36943        }
36944    }
36945
36946    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::LayoutConstraint>
36947        for crate::LayoutConstraint
36948    {
36949        fn compat_from(value: ::fidl_fuchsia_component_decl::LayoutConstraint) -> Self {
36950            match value {
36951                ::fidl_fuchsia_component_decl::LayoutConstraint::MaxSize(value) => {
36952                    Self::MaxSize(::fidl_next::CompatFrom::compat_from(value))
36953                }
36954
36955                ::fidl_fuchsia_component_decl::LayoutConstraint::__SourceBreaking {
36956                    unknown_ordinal,
36957                } => Self::UnknownOrdinal_(unknown_ordinal),
36958            }
36959        }
36960    }
36961
36962    impl ::fidl_next::CompatFrom<crate::ConfigType> for ::fidl_fuchsia_component_decl::ConfigType {
36963        #[inline]
36964        fn compat_from(value: crate::ConfigType) -> Self {
36965            Self {
36966                layout: ::fidl_next::CompatFrom::compat_from(value.layout),
36967
36968                parameters: ::fidl_next::CompatFrom::compat_from(value.parameters),
36969
36970                constraints: ::fidl_next::CompatFrom::compat_from(value.constraints),
36971            }
36972        }
36973    }
36974
36975    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigType> for crate::ConfigType {
36976        #[inline]
36977        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigType) -> Self {
36978            Self {
36979                layout: ::fidl_next::CompatFrom::compat_from(value.layout),
36980
36981                parameters: ::fidl_next::CompatFrom::compat_from(value.parameters),
36982
36983                constraints: ::fidl_next::CompatFrom::compat_from(value.constraints),
36984            }
36985        }
36986    }
36987
36988    impl ::fidl_next::CompatFrom<crate::ConfigChecksum>
36989        for ::fidl_fuchsia_component_decl::ConfigChecksum
36990    {
36991        fn compat_from(value: crate::ConfigChecksum) -> Self {
36992            match value {
36993                crate::ConfigChecksum::Sha256(value) => {
36994                    Self::Sha256(::fidl_next::CompatFrom::compat_from(value))
36995                }
36996
36997                crate::ConfigChecksum::UnknownOrdinal_(unknown_ordinal) => {
36998                    Self::__SourceBreaking { unknown_ordinal }
36999                }
37000            }
37001        }
37002    }
37003
37004    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigChecksum>
37005        for crate::ConfigChecksum
37006    {
37007        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigChecksum) -> Self {
37008            match value {
37009                ::fidl_fuchsia_component_decl::ConfigChecksum::Sha256(value) => {
37010                    Self::Sha256(::fidl_next::CompatFrom::compat_from(value))
37011                }
37012
37013                ::fidl_fuchsia_component_decl::ConfigChecksum::__SourceBreaking {
37014                    unknown_ordinal,
37015                } => Self::UnknownOrdinal_(unknown_ordinal),
37016            }
37017        }
37018    }
37019
37020    impl ::fidl_next::CompatFrom<crate::UseStorage> for ::fidl_fuchsia_component_decl::UseStorage {
37021        fn compat_from(value: crate::UseStorage) -> Self {
37022            Self {
37023                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37024
37025                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37026
37027                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37028
37029                __source_breaking: ::fidl::marker::SourceBreaking,
37030            }
37031        }
37032    }
37033
37034    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseStorage> for crate::UseStorage {
37035        fn compat_from(value: ::fidl_fuchsia_component_decl::UseStorage) -> Self {
37036            Self {
37037                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37038
37039                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37040
37041                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37042            }
37043        }
37044    }
37045
37046    impl ::fidl_next::CompatFrom<crate::ConfigMutability>
37047        for ::fidl_fuchsia_component_decl::ConfigMutability
37048    {
37049        fn compat_from(value: crate::ConfigMutability) -> Self {
37050            Self::from_bits_retain(value.bits())
37051        }
37052    }
37053
37054    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigMutability>
37055        for crate::ConfigMutability
37056    {
37057        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigMutability) -> Self {
37058            Self::from_bits_retain(value.bits())
37059        }
37060    }
37061
37062    impl ::fidl_next::CompatFrom<crate::ConfigField> for ::fidl_fuchsia_component_decl::ConfigField {
37063        fn compat_from(value: crate::ConfigField) -> Self {
37064            Self {
37065                key: ::fidl_next::CompatFrom::compat_from(value.key),
37066
37067                type_: ::fidl_next::CompatFrom::compat_from(value.type_),
37068
37069                mutability: ::fidl_next::CompatFrom::compat_from(value.mutability),
37070
37071                __source_breaking: ::fidl::marker::SourceBreaking,
37072            }
37073        }
37074    }
37075
37076    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigField> for crate::ConfigField {
37077        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigField) -> Self {
37078            Self {
37079                key: ::fidl_next::CompatFrom::compat_from(value.key),
37080
37081                type_: ::fidl_next::CompatFrom::compat_from(value.type_),
37082
37083                mutability: ::fidl_next::CompatFrom::compat_from(value.mutability),
37084            }
37085        }
37086    }
37087
37088    impl ::fidl_next::CompatFrom<crate::Program> for ::fidl_fuchsia_component_decl::Program {
37089        fn compat_from(value: crate::Program) -> Self {
37090            Self {
37091                runner: ::fidl_next::CompatFrom::compat_from(value.runner),
37092
37093                info: ::fidl_next::CompatFrom::compat_from(value.info),
37094
37095                __source_breaking: ::fidl::marker::SourceBreaking,
37096            }
37097        }
37098    }
37099
37100    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Program> for crate::Program {
37101        fn compat_from(value: ::fidl_fuchsia_component_decl::Program) -> Self {
37102            Self {
37103                runner: ::fidl_next::CompatFrom::compat_from(value.runner),
37104
37105                info: ::fidl_next::CompatFrom::compat_from(value.info),
37106            }
37107        }
37108    }
37109
37110    impl ::fidl_next::CompatFrom<crate::DebugInfo> for ::fidl_fuchsia_component_decl::DebugInfo {
37111        fn compat_from(value: crate::DebugInfo) -> Self {
37112            Self {
37113                manifest_sources: ::fidl_next::CompatFrom::compat_from(value.manifest_sources),
37114
37115                __source_breaking: ::fidl::marker::SourceBreaking,
37116            }
37117        }
37118    }
37119
37120    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::DebugInfo> for crate::DebugInfo {
37121        fn compat_from(value: ::fidl_fuchsia_component_decl::DebugInfo) -> Self {
37122            Self { manifest_sources: ::fidl_next::CompatFrom::compat_from(value.manifest_sources) }
37123        }
37124    }
37125
37126    impl ::fidl_next::CompatFrom<crate::UseService> for ::fidl_fuchsia_component_decl::UseService {
37127        fn compat_from(value: crate::UseService) -> Self {
37128            Self {
37129                source: ::fidl_next::CompatFrom::compat_from(value.source),
37130
37131                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37132
37133                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37134
37135                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37136
37137                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37138
37139                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37140
37141                __source_breaking: ::fidl::marker::SourceBreaking,
37142            }
37143        }
37144    }
37145
37146    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseService> for crate::UseService {
37147        fn compat_from(value: ::fidl_fuchsia_component_decl::UseService) -> Self {
37148            Self {
37149                source: ::fidl_next::CompatFrom::compat_from(value.source),
37150
37151                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37152
37153                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37154
37155                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37156
37157                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37158
37159                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37160            }
37161        }
37162    }
37163
37164    impl ::fidl_next::CompatFrom<crate::UseProtocol> for ::fidl_fuchsia_component_decl::UseProtocol {
37165        fn compat_from(value: crate::UseProtocol) -> Self {
37166            Self {
37167                source: ::fidl_next::CompatFrom::compat_from(value.source),
37168
37169                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37170
37171                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37172
37173                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37174
37175                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37176
37177                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37178
37179                numbered_handle: ::fidl_next::CompatFrom::compat_from(value.numbered_handle),
37180
37181                __source_breaking: ::fidl::marker::SourceBreaking,
37182            }
37183        }
37184    }
37185
37186    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseProtocol> for crate::UseProtocol {
37187        fn compat_from(value: ::fidl_fuchsia_component_decl::UseProtocol) -> Self {
37188            Self {
37189                source: ::fidl_next::CompatFrom::compat_from(value.source),
37190
37191                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37192
37193                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37194
37195                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37196
37197                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37198
37199                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37200
37201                numbered_handle: ::fidl_next::CompatFrom::compat_from(value.numbered_handle),
37202            }
37203        }
37204    }
37205
37206    impl ::fidl_next::CompatFrom<crate::UseDirectory> for ::fidl_fuchsia_component_decl::UseDirectory {
37207        fn compat_from(value: crate::UseDirectory) -> Self {
37208            Self {
37209                source: ::fidl_next::CompatFrom::compat_from(value.source),
37210
37211                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37212
37213                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37214
37215                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
37216
37217                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
37218
37219                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37220
37221                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37222
37223                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37224
37225                __source_breaking: ::fidl::marker::SourceBreaking,
37226            }
37227        }
37228    }
37229
37230    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseDirectory> for crate::UseDirectory {
37231        fn compat_from(value: ::fidl_fuchsia_component_decl::UseDirectory) -> Self {
37232            Self {
37233                source: ::fidl_next::CompatFrom::compat_from(value.source),
37234
37235                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37236
37237                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37238
37239                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
37240
37241                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
37242
37243                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37244
37245                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37246
37247                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37248            }
37249        }
37250    }
37251
37252    impl ::fidl_next::CompatFrom<crate::UseEventStream>
37253        for ::fidl_fuchsia_component_decl::UseEventStream
37254    {
37255        fn compat_from(value: crate::UseEventStream) -> Self {
37256            Self {
37257                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37258
37259                source: ::fidl_next::CompatFrom::compat_from(value.source),
37260
37261                scope: ::fidl_next::CompatFrom::compat_from(value.scope),
37262
37263                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37264
37265                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37266
37267                filter: ::fidl_next::CompatFrom::compat_from(value.filter),
37268
37269                __source_breaking: ::fidl::marker::SourceBreaking,
37270            }
37271        }
37272    }
37273
37274    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseEventStream>
37275        for crate::UseEventStream
37276    {
37277        fn compat_from(value: ::fidl_fuchsia_component_decl::UseEventStream) -> Self {
37278            Self {
37279                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37280
37281                source: ::fidl_next::CompatFrom::compat_from(value.source),
37282
37283                scope: ::fidl_next::CompatFrom::compat_from(value.scope),
37284
37285                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37286
37287                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37288
37289                filter: ::fidl_next::CompatFrom::compat_from(value.filter),
37290            }
37291        }
37292    }
37293
37294    impl ::fidl_next::CompatFrom<crate::UseRunner> for ::fidl_fuchsia_component_decl::UseRunner {
37295        fn compat_from(value: crate::UseRunner) -> Self {
37296            Self {
37297                source: ::fidl_next::CompatFrom::compat_from(value.source),
37298
37299                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37300
37301                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37302
37303                __source_breaking: ::fidl::marker::SourceBreaking,
37304            }
37305        }
37306    }
37307
37308    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseRunner> for crate::UseRunner {
37309        fn compat_from(value: ::fidl_fuchsia_component_decl::UseRunner) -> Self {
37310            Self {
37311                source: ::fidl_next::CompatFrom::compat_from(value.source),
37312
37313                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37314
37315                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37316            }
37317        }
37318    }
37319
37320    impl ::fidl_next::CompatFrom<crate::UseConfiguration>
37321        for ::fidl_fuchsia_component_decl::UseConfiguration
37322    {
37323        fn compat_from(value: crate::UseConfiguration) -> Self {
37324            Self {
37325                source: ::fidl_next::CompatFrom::compat_from(value.source),
37326
37327                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37328
37329                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37330
37331                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37332
37333                type_: ::fidl_next::CompatFrom::compat_from(value.type_),
37334
37335                default: ::fidl_next::CompatFrom::compat_from(value.default),
37336
37337                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37338
37339                __source_breaking: ::fidl::marker::SourceBreaking,
37340            }
37341        }
37342    }
37343
37344    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseConfiguration>
37345        for crate::UseConfiguration
37346    {
37347        fn compat_from(value: ::fidl_fuchsia_component_decl::UseConfiguration) -> Self {
37348            Self {
37349                source: ::fidl_next::CompatFrom::compat_from(value.source),
37350
37351                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37352
37353                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37354
37355                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37356
37357                type_: ::fidl_next::CompatFrom::compat_from(value.type_),
37358
37359                default: ::fidl_next::CompatFrom::compat_from(value.default),
37360
37361                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37362            }
37363        }
37364    }
37365
37366    impl ::fidl_next::CompatFrom<crate::UseDictionary>
37367        for ::fidl_fuchsia_component_decl::UseDictionary
37368    {
37369        fn compat_from(value: crate::UseDictionary) -> Self {
37370            Self {
37371                source: ::fidl_next::CompatFrom::compat_from(value.source),
37372
37373                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37374
37375                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37376
37377                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37378
37379                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37380
37381                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37382
37383                __source_breaking: ::fidl::marker::SourceBreaking,
37384            }
37385        }
37386    }
37387
37388    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::UseDictionary>
37389        for crate::UseDictionary
37390    {
37391        fn compat_from(value: ::fidl_fuchsia_component_decl::UseDictionary) -> Self {
37392            Self {
37393                source: ::fidl_next::CompatFrom::compat_from(value.source),
37394
37395                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37396
37397                target_path: ::fidl_next::CompatFrom::compat_from(value.target_path),
37398
37399                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37400
37401                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37402
37403                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37404            }
37405        }
37406    }
37407
37408    impl ::fidl_next::CompatFrom<crate::Use> for ::fidl_fuchsia_component_decl::Use {
37409        fn compat_from(value: crate::Use) -> Self {
37410            match value {
37411                crate::Use::Service(value) => {
37412                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
37413                }
37414
37415                crate::Use::Protocol(value) => {
37416                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
37417                }
37418
37419                crate::Use::Directory(value) => {
37420                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
37421                }
37422
37423                crate::Use::Storage(value) => {
37424                    Self::Storage(::fidl_next::CompatFrom::compat_from(value))
37425                }
37426
37427                crate::Use::EventStream(value) => {
37428                    Self::EventStream(::fidl_next::CompatFrom::compat_from(value))
37429                }
37430
37431                crate::Use::Runner(value) => {
37432                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
37433                }
37434
37435                crate::Use::Config(value) => {
37436                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
37437                }
37438
37439                crate::Use::Dictionary(value) => {
37440                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
37441                }
37442
37443                crate::Use::UnknownOrdinal_(unknown_ordinal) => {
37444                    Self::__SourceBreaking { unknown_ordinal }
37445                }
37446            }
37447        }
37448    }
37449
37450    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Use> for crate::Use {
37451        fn compat_from(value: ::fidl_fuchsia_component_decl::Use) -> Self {
37452            match value {
37453                ::fidl_fuchsia_component_decl::Use::Service(value) => {
37454                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
37455                }
37456
37457                ::fidl_fuchsia_component_decl::Use::Protocol(value) => {
37458                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
37459                }
37460
37461                ::fidl_fuchsia_component_decl::Use::Directory(value) => {
37462                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
37463                }
37464
37465                ::fidl_fuchsia_component_decl::Use::Storage(value) => {
37466                    Self::Storage(::fidl_next::CompatFrom::compat_from(value))
37467                }
37468
37469                ::fidl_fuchsia_component_decl::Use::EventStream(value) => {
37470                    Self::EventStream(::fidl_next::CompatFrom::compat_from(value))
37471                }
37472
37473                ::fidl_fuchsia_component_decl::Use::Runner(value) => {
37474                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
37475                }
37476
37477                ::fidl_fuchsia_component_decl::Use::Config(value) => {
37478                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
37479                }
37480
37481                ::fidl_fuchsia_component_decl::Use::Dictionary(value) => {
37482                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
37483                }
37484
37485                ::fidl_fuchsia_component_decl::Use::__SourceBreaking { unknown_ordinal } => {
37486                    Self::UnknownOrdinal_(unknown_ordinal)
37487                }
37488            }
37489        }
37490    }
37491
37492    impl ::fidl_next::CompatFrom<crate::ExposeService>
37493        for ::fidl_fuchsia_component_decl::ExposeService
37494    {
37495        fn compat_from(value: crate::ExposeService) -> Self {
37496            Self {
37497                source: ::fidl_next::CompatFrom::compat_from(value.source),
37498
37499                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37500
37501                target: ::fidl_next::CompatFrom::compat_from(value.target),
37502
37503                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37504
37505                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37506
37507                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37508
37509                __source_breaking: ::fidl::marker::SourceBreaking,
37510            }
37511        }
37512    }
37513
37514    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ExposeService>
37515        for crate::ExposeService
37516    {
37517        fn compat_from(value: ::fidl_fuchsia_component_decl::ExposeService) -> Self {
37518            Self {
37519                source: ::fidl_next::CompatFrom::compat_from(value.source),
37520
37521                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37522
37523                target: ::fidl_next::CompatFrom::compat_from(value.target),
37524
37525                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37526
37527                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37528
37529                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37530            }
37531        }
37532    }
37533
37534    impl ::fidl_next::CompatFrom<crate::ExposeProtocol>
37535        for ::fidl_fuchsia_component_decl::ExposeProtocol
37536    {
37537        fn compat_from(value: crate::ExposeProtocol) -> Self {
37538            Self {
37539                source: ::fidl_next::CompatFrom::compat_from(value.source),
37540
37541                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37542
37543                target: ::fidl_next::CompatFrom::compat_from(value.target),
37544
37545                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37546
37547                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37548
37549                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37550
37551                __source_breaking: ::fidl::marker::SourceBreaking,
37552            }
37553        }
37554    }
37555
37556    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ExposeProtocol>
37557        for crate::ExposeProtocol
37558    {
37559        fn compat_from(value: ::fidl_fuchsia_component_decl::ExposeProtocol) -> Self {
37560            Self {
37561                source: ::fidl_next::CompatFrom::compat_from(value.source),
37562
37563                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37564
37565                target: ::fidl_next::CompatFrom::compat_from(value.target),
37566
37567                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37568
37569                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37570
37571                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37572            }
37573        }
37574    }
37575
37576    impl ::fidl_next::CompatFrom<crate::ExposeDirectory>
37577        for ::fidl_fuchsia_component_decl::ExposeDirectory
37578    {
37579        fn compat_from(value: crate::ExposeDirectory) -> Self {
37580            Self {
37581                source: ::fidl_next::CompatFrom::compat_from(value.source),
37582
37583                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37584
37585                target: ::fidl_next::CompatFrom::compat_from(value.target),
37586
37587                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37588
37589                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
37590
37591                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
37592
37593                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37594
37595                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37596
37597                __source_breaking: ::fidl::marker::SourceBreaking,
37598            }
37599        }
37600    }
37601
37602    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ExposeDirectory>
37603        for crate::ExposeDirectory
37604    {
37605        fn compat_from(value: ::fidl_fuchsia_component_decl::ExposeDirectory) -> Self {
37606            Self {
37607                source: ::fidl_next::CompatFrom::compat_from(value.source),
37608
37609                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37610
37611                target: ::fidl_next::CompatFrom::compat_from(value.target),
37612
37613                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37614
37615                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
37616
37617                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
37618
37619                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37620
37621                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37622            }
37623        }
37624    }
37625
37626    impl ::fidl_next::CompatFrom<crate::ExposeRunner> for ::fidl_fuchsia_component_decl::ExposeRunner {
37627        fn compat_from(value: crate::ExposeRunner) -> Self {
37628            Self {
37629                source: ::fidl_next::CompatFrom::compat_from(value.source),
37630
37631                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37632
37633                target: ::fidl_next::CompatFrom::compat_from(value.target),
37634
37635                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37636
37637                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37638
37639                __source_breaking: ::fidl::marker::SourceBreaking,
37640            }
37641        }
37642    }
37643
37644    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ExposeRunner> for crate::ExposeRunner {
37645        fn compat_from(value: ::fidl_fuchsia_component_decl::ExposeRunner) -> Self {
37646            Self {
37647                source: ::fidl_next::CompatFrom::compat_from(value.source),
37648
37649                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37650
37651                target: ::fidl_next::CompatFrom::compat_from(value.target),
37652
37653                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37654
37655                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37656            }
37657        }
37658    }
37659
37660    impl ::fidl_next::CompatFrom<crate::ExposeResolver>
37661        for ::fidl_fuchsia_component_decl::ExposeResolver
37662    {
37663        fn compat_from(value: crate::ExposeResolver) -> Self {
37664            Self {
37665                source: ::fidl_next::CompatFrom::compat_from(value.source),
37666
37667                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37668
37669                target: ::fidl_next::CompatFrom::compat_from(value.target),
37670
37671                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37672
37673                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37674
37675                __source_breaking: ::fidl::marker::SourceBreaking,
37676            }
37677        }
37678    }
37679
37680    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ExposeResolver>
37681        for crate::ExposeResolver
37682    {
37683        fn compat_from(value: ::fidl_fuchsia_component_decl::ExposeResolver) -> Self {
37684            Self {
37685                source: ::fidl_next::CompatFrom::compat_from(value.source),
37686
37687                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37688
37689                target: ::fidl_next::CompatFrom::compat_from(value.target),
37690
37691                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37692
37693                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37694            }
37695        }
37696    }
37697
37698    impl ::fidl_next::CompatFrom<crate::ExposeDictionary>
37699        for ::fidl_fuchsia_component_decl::ExposeDictionary
37700    {
37701        fn compat_from(value: crate::ExposeDictionary) -> Self {
37702            Self {
37703                source: ::fidl_next::CompatFrom::compat_from(value.source),
37704
37705                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37706
37707                target: ::fidl_next::CompatFrom::compat_from(value.target),
37708
37709                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37710
37711                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37712
37713                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37714
37715                __source_breaking: ::fidl::marker::SourceBreaking,
37716            }
37717        }
37718    }
37719
37720    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ExposeDictionary>
37721        for crate::ExposeDictionary
37722    {
37723        fn compat_from(value: ::fidl_fuchsia_component_decl::ExposeDictionary) -> Self {
37724            Self {
37725                source: ::fidl_next::CompatFrom::compat_from(value.source),
37726
37727                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37728
37729                target: ::fidl_next::CompatFrom::compat_from(value.target),
37730
37731                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37732
37733                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37734
37735                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37736            }
37737        }
37738    }
37739
37740    impl ::fidl_next::CompatFrom<crate::ExposeConfiguration>
37741        for ::fidl_fuchsia_component_decl::ExposeConfiguration
37742    {
37743        fn compat_from(value: crate::ExposeConfiguration) -> Self {
37744            Self {
37745                source: ::fidl_next::CompatFrom::compat_from(value.source),
37746
37747                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37748
37749                target: ::fidl_next::CompatFrom::compat_from(value.target),
37750
37751                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37752
37753                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37754
37755                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37756
37757                __source_breaking: ::fidl::marker::SourceBreaking,
37758            }
37759        }
37760    }
37761
37762    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ExposeConfiguration>
37763        for crate::ExposeConfiguration
37764    {
37765        fn compat_from(value: ::fidl_fuchsia_component_decl::ExposeConfiguration) -> Self {
37766            Self {
37767                source: ::fidl_next::CompatFrom::compat_from(value.source),
37768
37769                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37770
37771                target: ::fidl_next::CompatFrom::compat_from(value.target),
37772
37773                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37774
37775                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37776
37777                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37778            }
37779        }
37780    }
37781
37782    impl ::fidl_next::CompatFrom<crate::Expose> for ::fidl_fuchsia_component_decl::Expose {
37783        fn compat_from(value: crate::Expose) -> Self {
37784            match value {
37785                crate::Expose::Service(value) => {
37786                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
37787                }
37788
37789                crate::Expose::Protocol(value) => {
37790                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
37791                }
37792
37793                crate::Expose::Directory(value) => {
37794                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
37795                }
37796
37797                crate::Expose::Runner(value) => {
37798                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
37799                }
37800
37801                crate::Expose::Resolver(value) => {
37802                    Self::Resolver(::fidl_next::CompatFrom::compat_from(value))
37803                }
37804
37805                crate::Expose::Dictionary(value) => {
37806                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
37807                }
37808
37809                crate::Expose::Config(value) => {
37810                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
37811                }
37812
37813                crate::Expose::UnknownOrdinal_(unknown_ordinal) => {
37814                    Self::__SourceBreaking { unknown_ordinal }
37815                }
37816            }
37817        }
37818    }
37819
37820    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Expose> for crate::Expose {
37821        fn compat_from(value: ::fidl_fuchsia_component_decl::Expose) -> Self {
37822            match value {
37823                ::fidl_fuchsia_component_decl::Expose::Service(value) => {
37824                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
37825                }
37826
37827                ::fidl_fuchsia_component_decl::Expose::Protocol(value) => {
37828                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
37829                }
37830
37831                ::fidl_fuchsia_component_decl::Expose::Directory(value) => {
37832                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
37833                }
37834
37835                ::fidl_fuchsia_component_decl::Expose::Runner(value) => {
37836                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
37837                }
37838
37839                ::fidl_fuchsia_component_decl::Expose::Resolver(value) => {
37840                    Self::Resolver(::fidl_next::CompatFrom::compat_from(value))
37841                }
37842
37843                ::fidl_fuchsia_component_decl::Expose::Dictionary(value) => {
37844                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
37845                }
37846
37847                ::fidl_fuchsia_component_decl::Expose::Config(value) => {
37848                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
37849                }
37850
37851                ::fidl_fuchsia_component_decl::Expose::__SourceBreaking { unknown_ordinal } => {
37852                    Self::UnknownOrdinal_(unknown_ordinal)
37853                }
37854            }
37855        }
37856    }
37857
37858    impl ::fidl_next::CompatFrom<crate::OfferService> for ::fidl_fuchsia_component_decl::OfferService {
37859        fn compat_from(value: crate::OfferService) -> Self {
37860            Self {
37861                source: ::fidl_next::CompatFrom::compat_from(value.source),
37862
37863                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37864
37865                target: ::fidl_next::CompatFrom::compat_from(value.target),
37866
37867                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37868
37869                source_instance_filter: ::fidl_next::CompatFrom::compat_from(
37870                    value.source_instance_filter,
37871                ),
37872
37873                renamed_instances: ::fidl_next::CompatFrom::compat_from(value.renamed_instances),
37874
37875                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37876
37877                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37878
37879                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37880
37881                __source_breaking: ::fidl::marker::SourceBreaking,
37882            }
37883        }
37884    }
37885
37886    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferService> for crate::OfferService {
37887        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferService) -> Self {
37888            Self {
37889                source: ::fidl_next::CompatFrom::compat_from(value.source),
37890
37891                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37892
37893                target: ::fidl_next::CompatFrom::compat_from(value.target),
37894
37895                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37896
37897                source_instance_filter: ::fidl_next::CompatFrom::compat_from(
37898                    value.source_instance_filter,
37899                ),
37900
37901                renamed_instances: ::fidl_next::CompatFrom::compat_from(value.renamed_instances),
37902
37903                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37904
37905                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37906
37907                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37908            }
37909        }
37910    }
37911
37912    impl ::fidl_next::CompatFrom<crate::OfferProtocol>
37913        for ::fidl_fuchsia_component_decl::OfferProtocol
37914    {
37915        fn compat_from(value: crate::OfferProtocol) -> Self {
37916            Self {
37917                source: ::fidl_next::CompatFrom::compat_from(value.source),
37918
37919                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37920
37921                target: ::fidl_next::CompatFrom::compat_from(value.target),
37922
37923                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37924
37925                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37926
37927                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37928
37929                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37930
37931                __source_breaking: ::fidl::marker::SourceBreaking,
37932            }
37933        }
37934    }
37935
37936    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferProtocol>
37937        for crate::OfferProtocol
37938    {
37939        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferProtocol) -> Self {
37940            Self {
37941                source: ::fidl_next::CompatFrom::compat_from(value.source),
37942
37943                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37944
37945                target: ::fidl_next::CompatFrom::compat_from(value.target),
37946
37947                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37948
37949                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37950
37951                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37952
37953                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37954            }
37955        }
37956    }
37957
37958    impl ::fidl_next::CompatFrom<crate::OfferDirectory>
37959        for ::fidl_fuchsia_component_decl::OfferDirectory
37960    {
37961        fn compat_from(value: crate::OfferDirectory) -> Self {
37962            Self {
37963                source: ::fidl_next::CompatFrom::compat_from(value.source),
37964
37965                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37966
37967                target: ::fidl_next::CompatFrom::compat_from(value.target),
37968
37969                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37970
37971                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
37972
37973                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
37974
37975                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
37976
37977                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
37978
37979                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
37980
37981                __source_breaking: ::fidl::marker::SourceBreaking,
37982            }
37983        }
37984    }
37985
37986    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferDirectory>
37987        for crate::OfferDirectory
37988    {
37989        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferDirectory) -> Self {
37990            Self {
37991                source: ::fidl_next::CompatFrom::compat_from(value.source),
37992
37993                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
37994
37995                target: ::fidl_next::CompatFrom::compat_from(value.target),
37996
37997                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
37998
37999                rights: ::fidl_next::CompatFrom::compat_from(value.rights),
38000
38001                subdir: ::fidl_next::CompatFrom::compat_from(value.subdir),
38002
38003                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
38004
38005                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38006
38007                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38008            }
38009        }
38010    }
38011
38012    impl ::fidl_next::CompatFrom<crate::OfferStorage> for ::fidl_fuchsia_component_decl::OfferStorage {
38013        fn compat_from(value: crate::OfferStorage) -> Self {
38014            Self {
38015                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38016
38017                source: ::fidl_next::CompatFrom::compat_from(value.source),
38018
38019                target: ::fidl_next::CompatFrom::compat_from(value.target),
38020
38021                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38022
38023                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38024
38025                __source_breaking: ::fidl::marker::SourceBreaking,
38026            }
38027        }
38028    }
38029
38030    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferStorage> for crate::OfferStorage {
38031        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferStorage) -> Self {
38032            Self {
38033                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38034
38035                source: ::fidl_next::CompatFrom::compat_from(value.source),
38036
38037                target: ::fidl_next::CompatFrom::compat_from(value.target),
38038
38039                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38040
38041                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38042            }
38043        }
38044    }
38045
38046    impl ::fidl_next::CompatFrom<crate::OfferRunner> for ::fidl_fuchsia_component_decl::OfferRunner {
38047        fn compat_from(value: crate::OfferRunner) -> Self {
38048            Self {
38049                source: ::fidl_next::CompatFrom::compat_from(value.source),
38050
38051                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38052
38053                target: ::fidl_next::CompatFrom::compat_from(value.target),
38054
38055                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38056
38057                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38058
38059                __source_breaking: ::fidl::marker::SourceBreaking,
38060            }
38061        }
38062    }
38063
38064    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferRunner> for crate::OfferRunner {
38065        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferRunner) -> Self {
38066            Self {
38067                source: ::fidl_next::CompatFrom::compat_from(value.source),
38068
38069                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38070
38071                target: ::fidl_next::CompatFrom::compat_from(value.target),
38072
38073                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38074
38075                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38076            }
38077        }
38078    }
38079
38080    impl ::fidl_next::CompatFrom<crate::OfferResolver>
38081        for ::fidl_fuchsia_component_decl::OfferResolver
38082    {
38083        fn compat_from(value: crate::OfferResolver) -> Self {
38084            Self {
38085                source: ::fidl_next::CompatFrom::compat_from(value.source),
38086
38087                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38088
38089                target: ::fidl_next::CompatFrom::compat_from(value.target),
38090
38091                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38092
38093                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38094
38095                __source_breaking: ::fidl::marker::SourceBreaking,
38096            }
38097        }
38098    }
38099
38100    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferResolver>
38101        for crate::OfferResolver
38102    {
38103        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferResolver) -> Self {
38104            Self {
38105                source: ::fidl_next::CompatFrom::compat_from(value.source),
38106
38107                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38108
38109                target: ::fidl_next::CompatFrom::compat_from(value.target),
38110
38111                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38112
38113                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38114            }
38115        }
38116    }
38117
38118    impl ::fidl_next::CompatFrom<crate::OfferEventStream>
38119        for ::fidl_fuchsia_component_decl::OfferEventStream
38120    {
38121        fn compat_from(value: crate::OfferEventStream) -> Self {
38122            Self {
38123                source: ::fidl_next::CompatFrom::compat_from(value.source),
38124
38125                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38126
38127                scope: ::fidl_next::CompatFrom::compat_from(value.scope),
38128
38129                target: ::fidl_next::CompatFrom::compat_from(value.target),
38130
38131                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38132
38133                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38134
38135                __source_breaking: ::fidl::marker::SourceBreaking,
38136            }
38137        }
38138    }
38139
38140    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferEventStream>
38141        for crate::OfferEventStream
38142    {
38143        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferEventStream) -> Self {
38144            Self {
38145                source: ::fidl_next::CompatFrom::compat_from(value.source),
38146
38147                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38148
38149                scope: ::fidl_next::CompatFrom::compat_from(value.scope),
38150
38151                target: ::fidl_next::CompatFrom::compat_from(value.target),
38152
38153                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38154
38155                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38156            }
38157        }
38158    }
38159
38160    impl ::fidl_next::CompatFrom<crate::OfferDictionary>
38161        for ::fidl_fuchsia_component_decl::OfferDictionary
38162    {
38163        fn compat_from(value: crate::OfferDictionary) -> Self {
38164            Self {
38165                source: ::fidl_next::CompatFrom::compat_from(value.source),
38166
38167                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38168
38169                target: ::fidl_next::CompatFrom::compat_from(value.target),
38170
38171                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38172
38173                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
38174
38175                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38176
38177                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38178
38179                __source_breaking: ::fidl::marker::SourceBreaking,
38180            }
38181        }
38182    }
38183
38184    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferDictionary>
38185        for crate::OfferDictionary
38186    {
38187        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferDictionary) -> Self {
38188            Self {
38189                source: ::fidl_next::CompatFrom::compat_from(value.source),
38190
38191                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38192
38193                target: ::fidl_next::CompatFrom::compat_from(value.target),
38194
38195                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38196
38197                dependency_type: ::fidl_next::CompatFrom::compat_from(value.dependency_type),
38198
38199                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38200
38201                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38202            }
38203        }
38204    }
38205
38206    impl ::fidl_next::CompatFrom<crate::OfferConfiguration>
38207        for ::fidl_fuchsia_component_decl::OfferConfiguration
38208    {
38209        fn compat_from(value: crate::OfferConfiguration) -> Self {
38210            Self {
38211                source: ::fidl_next::CompatFrom::compat_from(value.source),
38212
38213                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38214
38215                target: ::fidl_next::CompatFrom::compat_from(value.target),
38216
38217                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38218
38219                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38220
38221                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38222
38223                __source_breaking: ::fidl::marker::SourceBreaking,
38224            }
38225        }
38226    }
38227
38228    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::OfferConfiguration>
38229        for crate::OfferConfiguration
38230    {
38231        fn compat_from(value: ::fidl_fuchsia_component_decl::OfferConfiguration) -> Self {
38232            Self {
38233                source: ::fidl_next::CompatFrom::compat_from(value.source),
38234
38235                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38236
38237                target: ::fidl_next::CompatFrom::compat_from(value.target),
38238
38239                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38240
38241                availability: ::fidl_next::CompatFrom::compat_from(value.availability),
38242
38243                source_dictionary: ::fidl_next::CompatFrom::compat_from(value.source_dictionary),
38244            }
38245        }
38246    }
38247
38248    impl ::fidl_next::CompatFrom<crate::Offer> for ::fidl_fuchsia_component_decl::Offer {
38249        fn compat_from(value: crate::Offer) -> Self {
38250            match value {
38251                crate::Offer::Service(value) => {
38252                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
38253                }
38254
38255                crate::Offer::Protocol(value) => {
38256                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
38257                }
38258
38259                crate::Offer::Directory(value) => {
38260                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
38261                }
38262
38263                crate::Offer::Storage(value) => {
38264                    Self::Storage(::fidl_next::CompatFrom::compat_from(value))
38265                }
38266
38267                crate::Offer::Runner(value) => {
38268                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
38269                }
38270
38271                crate::Offer::Resolver(value) => {
38272                    Self::Resolver(::fidl_next::CompatFrom::compat_from(value))
38273                }
38274
38275                crate::Offer::EventStream(value) => {
38276                    Self::EventStream(::fidl_next::CompatFrom::compat_from(value))
38277                }
38278
38279                crate::Offer::Dictionary(value) => {
38280                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
38281                }
38282
38283                crate::Offer::Config(value) => {
38284                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
38285                }
38286
38287                crate::Offer::UnknownOrdinal_(unknown_ordinal) => {
38288                    Self::__SourceBreaking { unknown_ordinal }
38289                }
38290            }
38291        }
38292    }
38293
38294    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Offer> for crate::Offer {
38295        fn compat_from(value: ::fidl_fuchsia_component_decl::Offer) -> Self {
38296            match value {
38297                ::fidl_fuchsia_component_decl::Offer::Service(value) => {
38298                    Self::Service(::fidl_next::CompatFrom::compat_from(value))
38299                }
38300
38301                ::fidl_fuchsia_component_decl::Offer::Protocol(value) => {
38302                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
38303                }
38304
38305                ::fidl_fuchsia_component_decl::Offer::Directory(value) => {
38306                    Self::Directory(::fidl_next::CompatFrom::compat_from(value))
38307                }
38308
38309                ::fidl_fuchsia_component_decl::Offer::Storage(value) => {
38310                    Self::Storage(::fidl_next::CompatFrom::compat_from(value))
38311                }
38312
38313                ::fidl_fuchsia_component_decl::Offer::Runner(value) => {
38314                    Self::Runner(::fidl_next::CompatFrom::compat_from(value))
38315                }
38316
38317                ::fidl_fuchsia_component_decl::Offer::Resolver(value) => {
38318                    Self::Resolver(::fidl_next::CompatFrom::compat_from(value))
38319                }
38320
38321                ::fidl_fuchsia_component_decl::Offer::EventStream(value) => {
38322                    Self::EventStream(::fidl_next::CompatFrom::compat_from(value))
38323                }
38324
38325                ::fidl_fuchsia_component_decl::Offer::Dictionary(value) => {
38326                    Self::Dictionary(::fidl_next::CompatFrom::compat_from(value))
38327                }
38328
38329                ::fidl_fuchsia_component_decl::Offer::Config(value) => {
38330                    Self::Config(::fidl_next::CompatFrom::compat_from(value))
38331                }
38332
38333                ::fidl_fuchsia_component_decl::Offer::__SourceBreaking { unknown_ordinal } => {
38334                    Self::UnknownOrdinal_(unknown_ordinal)
38335                }
38336            }
38337        }
38338    }
38339
38340    impl ::fidl_next::CompatFrom<crate::RunnerRegistration>
38341        for ::fidl_fuchsia_component_decl::RunnerRegistration
38342    {
38343        fn compat_from(value: crate::RunnerRegistration) -> Self {
38344            Self {
38345                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38346
38347                source: ::fidl_next::CompatFrom::compat_from(value.source),
38348
38349                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38350
38351                __source_breaking: ::fidl::marker::SourceBreaking,
38352            }
38353        }
38354    }
38355
38356    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::RunnerRegistration>
38357        for crate::RunnerRegistration
38358    {
38359        fn compat_from(value: ::fidl_fuchsia_component_decl::RunnerRegistration) -> Self {
38360            Self {
38361                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38362
38363                source: ::fidl_next::CompatFrom::compat_from(value.source),
38364
38365                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38366            }
38367        }
38368    }
38369
38370    impl ::fidl_next::CompatFrom<crate::ResolverRegistration>
38371        for ::fidl_fuchsia_component_decl::ResolverRegistration
38372    {
38373        fn compat_from(value: crate::ResolverRegistration) -> Self {
38374            Self {
38375                resolver: ::fidl_next::CompatFrom::compat_from(value.resolver),
38376
38377                source: ::fidl_next::CompatFrom::compat_from(value.source),
38378
38379                scheme: ::fidl_next::CompatFrom::compat_from(value.scheme),
38380
38381                __source_breaking: ::fidl::marker::SourceBreaking,
38382            }
38383        }
38384    }
38385
38386    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ResolverRegistration>
38387        for crate::ResolverRegistration
38388    {
38389        fn compat_from(value: ::fidl_fuchsia_component_decl::ResolverRegistration) -> Self {
38390            Self {
38391                resolver: ::fidl_next::CompatFrom::compat_from(value.resolver),
38392
38393                source: ::fidl_next::CompatFrom::compat_from(value.source),
38394
38395                scheme: ::fidl_next::CompatFrom::compat_from(value.scheme),
38396            }
38397        }
38398    }
38399
38400    impl ::fidl_next::CompatFrom<crate::DebugProtocolRegistration>
38401        for ::fidl_fuchsia_component_decl::DebugProtocolRegistration
38402    {
38403        fn compat_from(value: crate::DebugProtocolRegistration) -> Self {
38404            Self {
38405                source: ::fidl_next::CompatFrom::compat_from(value.source),
38406
38407                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38408
38409                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38410
38411                __source_breaking: ::fidl::marker::SourceBreaking,
38412            }
38413        }
38414    }
38415
38416    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::DebugProtocolRegistration>
38417        for crate::DebugProtocolRegistration
38418    {
38419        fn compat_from(value: ::fidl_fuchsia_component_decl::DebugProtocolRegistration) -> Self {
38420            Self {
38421                source: ::fidl_next::CompatFrom::compat_from(value.source),
38422
38423                source_name: ::fidl_next::CompatFrom::compat_from(value.source_name),
38424
38425                target_name: ::fidl_next::CompatFrom::compat_from(value.target_name),
38426            }
38427        }
38428    }
38429
38430    impl ::fidl_next::CompatFrom<crate::DebugRegistration>
38431        for ::fidl_fuchsia_component_decl::DebugRegistration
38432    {
38433        fn compat_from(value: crate::DebugRegistration) -> Self {
38434            match value {
38435                crate::DebugRegistration::Protocol(value) => {
38436                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
38437                }
38438
38439                crate::DebugRegistration::UnknownOrdinal_(unknown_ordinal) => {
38440                    Self::__SourceBreaking { unknown_ordinal }
38441                }
38442            }
38443        }
38444    }
38445
38446    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::DebugRegistration>
38447        for crate::DebugRegistration
38448    {
38449        fn compat_from(value: ::fidl_fuchsia_component_decl::DebugRegistration) -> Self {
38450            match value {
38451                ::fidl_fuchsia_component_decl::DebugRegistration::Protocol(value) => {
38452                    Self::Protocol(::fidl_next::CompatFrom::compat_from(value))
38453                }
38454
38455                ::fidl_fuchsia_component_decl::DebugRegistration::__SourceBreaking {
38456                    unknown_ordinal,
38457                } => Self::UnknownOrdinal_(unknown_ordinal),
38458            }
38459        }
38460    }
38461
38462    impl ::fidl_next::CompatFrom<crate::Environment> for ::fidl_fuchsia_component_decl::Environment {
38463        fn compat_from(value: crate::Environment) -> Self {
38464            Self {
38465                name: ::fidl_next::CompatFrom::compat_from(value.name),
38466
38467                extends: ::fidl_next::CompatFrom::compat_from(value.extends),
38468
38469                runners: ::fidl_next::CompatFrom::compat_from(value.runners),
38470
38471                resolvers: ::fidl_next::CompatFrom::compat_from(value.resolvers),
38472
38473                debug_capabilities: ::fidl_next::CompatFrom::compat_from(value.debug_capabilities),
38474
38475                stop_timeout_ms: ::fidl_next::CompatFrom::compat_from(value.stop_timeout_ms),
38476
38477                __source_breaking: ::fidl::marker::SourceBreaking,
38478            }
38479        }
38480    }
38481
38482    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Environment> for crate::Environment {
38483        fn compat_from(value: ::fidl_fuchsia_component_decl::Environment) -> Self {
38484            Self {
38485                name: ::fidl_next::CompatFrom::compat_from(value.name),
38486
38487                extends: ::fidl_next::CompatFrom::compat_from(value.extends),
38488
38489                runners: ::fidl_next::CompatFrom::compat_from(value.runners),
38490
38491                resolvers: ::fidl_next::CompatFrom::compat_from(value.resolvers),
38492
38493                debug_capabilities: ::fidl_next::CompatFrom::compat_from(value.debug_capabilities),
38494
38495                stop_timeout_ms: ::fidl_next::CompatFrom::compat_from(value.stop_timeout_ms),
38496            }
38497        }
38498    }
38499
38500    impl ::fidl_next::CompatFrom<crate::ConfigSourceCapabilities>
38501        for ::fidl_fuchsia_component_decl::ConfigSourceCapabilities
38502    {
38503        fn compat_from(value: crate::ConfigSourceCapabilities) -> Self {
38504            Self { __source_breaking: ::fidl::marker::SourceBreaking }
38505        }
38506    }
38507
38508    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigSourceCapabilities>
38509        for crate::ConfigSourceCapabilities
38510    {
38511        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigSourceCapabilities) -> Self {
38512            Self {}
38513        }
38514    }
38515
38516    impl ::fidl_next::CompatFrom<crate::ConfigValueSource>
38517        for ::fidl_fuchsia_component_decl::ConfigValueSource
38518    {
38519        fn compat_from(value: crate::ConfigValueSource) -> Self {
38520            match value {
38521                crate::ConfigValueSource::PackagePath(value) => {
38522                    Self::PackagePath(::fidl_next::CompatFrom::compat_from(value))
38523                }
38524
38525                crate::ConfigValueSource::Capabilities(value) => {
38526                    Self::Capabilities(::fidl_next::CompatFrom::compat_from(value))
38527                }
38528
38529                crate::ConfigValueSource::UnknownOrdinal_(unknown_ordinal) => {
38530                    Self::__SourceBreaking { unknown_ordinal }
38531                }
38532            }
38533        }
38534    }
38535
38536    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigValueSource>
38537        for crate::ConfigValueSource
38538    {
38539        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigValueSource) -> Self {
38540            match value {
38541                ::fidl_fuchsia_component_decl::ConfigValueSource::PackagePath(value) => {
38542                    Self::PackagePath(::fidl_next::CompatFrom::compat_from(value))
38543                }
38544
38545                ::fidl_fuchsia_component_decl::ConfigValueSource::Capabilities(value) => {
38546                    Self::Capabilities(::fidl_next::CompatFrom::compat_from(value))
38547                }
38548
38549                ::fidl_fuchsia_component_decl::ConfigValueSource::__SourceBreaking {
38550                    unknown_ordinal,
38551                } => Self::UnknownOrdinal_(unknown_ordinal),
38552            }
38553        }
38554    }
38555
38556    impl ::fidl_next::CompatFrom<crate::ConfigSchema> for ::fidl_fuchsia_component_decl::ConfigSchema {
38557        fn compat_from(value: crate::ConfigSchema) -> Self {
38558            Self {
38559                fields: ::fidl_next::CompatFrom::compat_from(value.fields),
38560
38561                checksum: ::fidl_next::CompatFrom::compat_from(value.checksum),
38562
38563                value_source: ::fidl_next::CompatFrom::compat_from(value.value_source),
38564
38565                __source_breaking: ::fidl::marker::SourceBreaking,
38566            }
38567        }
38568    }
38569
38570    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigSchema> for crate::ConfigSchema {
38571        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigSchema) -> Self {
38572            Self {
38573                fields: ::fidl_next::CompatFrom::compat_from(value.fields),
38574
38575                checksum: ::fidl_next::CompatFrom::compat_from(value.checksum),
38576
38577                value_source: ::fidl_next::CompatFrom::compat_from(value.value_source),
38578            }
38579        }
38580    }
38581
38582    impl ::fidl_next::CompatFrom<crate::Component> for ::fidl_fuchsia_component_decl::Component {
38583        fn compat_from(value: crate::Component) -> Self {
38584            Self {
38585                program: ::fidl_next::CompatFrom::compat_from(value.program),
38586
38587                uses: ::fidl_next::CompatFrom::compat_from(value.uses),
38588
38589                exposes: ::fidl_next::CompatFrom::compat_from(value.exposes),
38590
38591                offers: ::fidl_next::CompatFrom::compat_from(value.offers),
38592
38593                capabilities: ::fidl_next::CompatFrom::compat_from(value.capabilities),
38594
38595                children: ::fidl_next::CompatFrom::compat_from(value.children),
38596
38597                collections: ::fidl_next::CompatFrom::compat_from(value.collections),
38598
38599                environments: ::fidl_next::CompatFrom::compat_from(value.environments),
38600
38601                facets: ::fidl_next::CompatFrom::compat_from(value.facets),
38602
38603                config: ::fidl_next::CompatFrom::compat_from(value.config),
38604
38605                debug_info: ::fidl_next::CompatFrom::compat_from(value.debug_info),
38606
38607                __source_breaking: ::fidl::marker::SourceBreaking,
38608            }
38609        }
38610    }
38611
38612    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::Component> for crate::Component {
38613        fn compat_from(value: ::fidl_fuchsia_component_decl::Component) -> Self {
38614            Self {
38615                program: ::fidl_next::CompatFrom::compat_from(value.program),
38616
38617                uses: ::fidl_next::CompatFrom::compat_from(value.uses),
38618
38619                exposes: ::fidl_next::CompatFrom::compat_from(value.exposes),
38620
38621                offers: ::fidl_next::CompatFrom::compat_from(value.offers),
38622
38623                capabilities: ::fidl_next::CompatFrom::compat_from(value.capabilities),
38624
38625                children: ::fidl_next::CompatFrom::compat_from(value.children),
38626
38627                collections: ::fidl_next::CompatFrom::compat_from(value.collections),
38628
38629                environments: ::fidl_next::CompatFrom::compat_from(value.environments),
38630
38631                facets: ::fidl_next::CompatFrom::compat_from(value.facets),
38632
38633                config: ::fidl_next::CompatFrom::compat_from(value.config),
38634
38635                debug_info: ::fidl_next::CompatFrom::compat_from(value.debug_info),
38636            }
38637        }
38638    }
38639
38640    impl ::fidl_next::CompatFrom<crate::ConfigValueSpec>
38641        for ::fidl_fuchsia_component_decl::ConfigValueSpec
38642    {
38643        fn compat_from(value: crate::ConfigValueSpec) -> Self {
38644            Self {
38645                value: ::fidl_next::CompatFrom::compat_from(value.value),
38646
38647                __source_breaking: ::fidl::marker::SourceBreaking,
38648            }
38649        }
38650    }
38651
38652    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigValueSpec>
38653        for crate::ConfigValueSpec
38654    {
38655        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigValueSpec) -> Self {
38656            Self { value: ::fidl_next::CompatFrom::compat_from(value.value) }
38657        }
38658    }
38659
38660    impl ::fidl_next::CompatFrom<crate::ConfigValuesData>
38661        for ::fidl_fuchsia_component_decl::ConfigValuesData
38662    {
38663        fn compat_from(value: crate::ConfigValuesData) -> Self {
38664            Self {
38665                values: ::fidl_next::CompatFrom::compat_from(value.values),
38666
38667                checksum: ::fidl_next::CompatFrom::compat_from(value.checksum),
38668
38669                __source_breaking: ::fidl::marker::SourceBreaking,
38670            }
38671        }
38672    }
38673
38674    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ConfigValuesData>
38675        for crate::ConfigValuesData
38676    {
38677        fn compat_from(value: ::fidl_fuchsia_component_decl::ConfigValuesData) -> Self {
38678            Self {
38679                values: ::fidl_next::CompatFrom::compat_from(value.values),
38680
38681                checksum: ::fidl_next::CompatFrom::compat_from(value.checksum),
38682            }
38683        }
38684    }
38685
38686    impl ::fidl_next::CompatFrom<crate::EventSubscription>
38687        for ::fidl_fuchsia_component_decl::EventSubscription
38688    {
38689        fn compat_from(value: crate::EventSubscription) -> Self {
38690            Self {
38691                event_name: ::fidl_next::CompatFrom::compat_from(value.event_name),
38692
38693                __source_breaking: ::fidl::marker::SourceBreaking,
38694            }
38695        }
38696    }
38697
38698    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::EventSubscription>
38699        for crate::EventSubscription
38700    {
38701        fn compat_from(value: ::fidl_fuchsia_component_decl::EventSubscription) -> Self {
38702            Self { event_name: ::fidl_next::CompatFrom::compat_from(value.event_name) }
38703        }
38704    }
38705
38706    impl ::fidl_next::CompatFrom<crate::LayoutParameter>
38707        for ::fidl_fuchsia_component_decl::LayoutParameter
38708    {
38709        fn compat_from(value: crate::LayoutParameter) -> Self {
38710            match value {
38711                crate::LayoutParameter::NestedType(value) => {
38712                    Self::NestedType(::fidl_next::CompatFrom::compat_from(value))
38713                }
38714
38715                crate::LayoutParameter::UnknownOrdinal_(unknown_ordinal) => {
38716                    Self::__SourceBreaking { unknown_ordinal }
38717                }
38718            }
38719        }
38720    }
38721
38722    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::LayoutParameter>
38723        for crate::LayoutParameter
38724    {
38725        fn compat_from(value: ::fidl_fuchsia_component_decl::LayoutParameter) -> Self {
38726            match value {
38727                ::fidl_fuchsia_component_decl::LayoutParameter::NestedType(value) => {
38728                    Self::NestedType(::fidl_next::CompatFrom::compat_from(value))
38729                }
38730
38731                ::fidl_fuchsia_component_decl::LayoutParameter::__SourceBreaking {
38732                    unknown_ordinal,
38733                } => Self::UnknownOrdinal_(unknown_ordinal),
38734            }
38735        }
38736    }
38737
38738    impl ::fidl_next::CompatFrom<crate::ResolvedConfigField>
38739        for ::fidl_fuchsia_component_decl::ResolvedConfigField
38740    {
38741        #[inline]
38742        fn compat_from(value: crate::ResolvedConfigField) -> Self {
38743            Self {
38744                key: ::fidl_next::CompatFrom::compat_from(value.key),
38745
38746                value: ::fidl_next::CompatFrom::compat_from(value.value),
38747            }
38748        }
38749    }
38750
38751    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ResolvedConfigField>
38752        for crate::ResolvedConfigField
38753    {
38754        #[inline]
38755        fn compat_from(value: ::fidl_fuchsia_component_decl::ResolvedConfigField) -> Self {
38756            Self {
38757                key: ::fidl_next::CompatFrom::compat_from(value.key),
38758
38759                value: ::fidl_next::CompatFrom::compat_from(value.value),
38760            }
38761        }
38762    }
38763
38764    impl ::fidl_next::CompatFrom<crate::ResolvedConfig>
38765        for ::fidl_fuchsia_component_decl::ResolvedConfig
38766    {
38767        #[inline]
38768        fn compat_from(value: crate::ResolvedConfig) -> Self {
38769            Self {
38770                fields: ::fidl_next::CompatFrom::compat_from(value.fields),
38771
38772                checksum: ::fidl_next::CompatFrom::compat_from(value.checksum),
38773            }
38774        }
38775    }
38776
38777    impl ::fidl_next::CompatFrom<::fidl_fuchsia_component_decl::ResolvedConfig>
38778        for crate::ResolvedConfig
38779    {
38780        #[inline]
38781        fn compat_from(value: ::fidl_fuchsia_component_decl::ResolvedConfig) -> Self {
38782            Self {
38783                fields: ::fidl_next::CompatFrom::compat_from(value.fields),
38784
38785                checksum: ::fidl_next::CompatFrom::compat_from(value.checksum),
38786            }
38787        }
38788    }
38789}