1#![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::wire::Uint32::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::wire::Uint32::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::wire::Envelope>::uninit();
227 ::fidl_next::Wire::zero_padding(&mut out);
228
229 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
230 ::fidl_next::wire::Envelope,
231 >(encoder, max_ord);
232
233 for i in 1..=max_ord {
234 match i {
235 2 => {
236 if let Some(value) = self.source_path.take() {
237 ::fidl_next::wire::Envelope::encode_value::<
238 ::fidl_next::wire::String<'static>,
239 ___E,
240 >(
241 value, preallocated.encoder, &mut out, 1024
242 )?;
243 } else {
244 ::fidl_next::wire::Envelope::encode_zero(&mut out)
245 }
246 }
247
248 1 => {
249 if let Some(value) = self.name.take() {
250 ::fidl_next::wire::Envelope::encode_value::<
251 ::fidl_next::wire::String<'static>,
252 ___E,
253 >(
254 value, preallocated.encoder, &mut out, 100
255 )?;
256 } else {
257 ::fidl_next::wire::Envelope::encode_zero(&mut out)
258 }
259 }
260
261 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
262 }
263 unsafe {
264 preallocated.write_next(out.assume_init_ref());
265 }
266 }
267
268 ::fidl_next::wire::Table::encode_len(table, max_ord);
269
270 Ok(())
271 }
272 }
273
274 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Service<'static>, ___E> for &'a Service
275 where
276 ___E: ::fidl_next::Encoder + ?Sized,
277 {
278 #[inline]
279 fn encode(
280 self,
281 encoder: &mut ___E,
282 out: &mut ::core::mem::MaybeUninit<crate::wire::Service<'static>>,
283 _: (),
284 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
285 ::fidl_next::munge!(let crate::wire::Service { table } = out);
286
287 let max_ord = self.__max_ordinal();
288
289 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
290 ::fidl_next::Wire::zero_padding(&mut out);
291
292 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
293 ::fidl_next::wire::Envelope,
294 >(encoder, max_ord);
295
296 for i in 1..=max_ord {
297 match i {
298 2 => {
299 if let Some(value) = &self.source_path {
300 ::fidl_next::wire::Envelope::encode_value::<
301 ::fidl_next::wire::String<'static>,
302 ___E,
303 >(
304 value, preallocated.encoder, &mut out, 1024
305 )?;
306 } else {
307 ::fidl_next::wire::Envelope::encode_zero(&mut out)
308 }
309 }
310
311 1 => {
312 if let Some(value) = &self.name {
313 ::fidl_next::wire::Envelope::encode_value::<
314 ::fidl_next::wire::String<'static>,
315 ___E,
316 >(
317 value, preallocated.encoder, &mut out, 100
318 )?;
319 } else {
320 ::fidl_next::wire::Envelope::encode_zero(&mut out)
321 }
322 }
323
324 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
325 }
326 unsafe {
327 preallocated.write_next(out.assume_init_ref());
328 }
329 }
330
331 ::fidl_next::wire::Table::encode_len(table, max_ord);
332
333 Ok(())
334 }
335 }
336
337 impl<'de> ::fidl_next::FromWire<crate::wire::Service<'de>> for Service {
338 #[inline]
339 fn from_wire(wire_: crate::wire::Service<'de>) -> Self {
340 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
341
342 let name = wire_.table.get(1);
343
344 let source_path = wire_.table.get(2);
345
346 Self {
347 name: name.map(|envelope| {
348 ::fidl_next::FromWire::from_wire(unsafe {
349 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
350 })
351 }),
352
353 source_path: source_path.map(|envelope| {
354 ::fidl_next::FromWire::from_wire(unsafe {
355 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
356 })
357 }),
358 }
359 }
360 }
361
362 impl<'de> ::fidl_next::FromWireRef<crate::wire::Service<'de>> for Service {
363 #[inline]
364 fn from_wire_ref(wire: &crate::wire::Service<'de>) -> Self {
365 Self {
366 name: wire.table.get(1).map(|envelope| {
367 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
368 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
369 })
370 }),
371
372 source_path: wire.table.get(2).map(|envelope| {
373 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
374 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
375 })
376 }),
377 }
378 }
379 }
380
381 #[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"]
382 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
383 pub struct Directory {
384 pub name: ::core::option::Option<::std::string::String>,
385
386 pub source_path: ::core::option::Option<::std::string::String>,
387
388 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
389 }
390
391 impl Directory {
392 fn __max_ordinal(&self) -> usize {
393 if self.rights.is_some() {
394 return 3;
395 }
396
397 if self.source_path.is_some() {
398 return 2;
399 }
400
401 if self.name.is_some() {
402 return 1;
403 }
404
405 0
406 }
407 }
408
409 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Directory<'static>, ___E> for Directory
410 where
411 ___E: ::fidl_next::Encoder + ?Sized,
412 {
413 #[inline]
414 fn encode(
415 mut self,
416 encoder: &mut ___E,
417 out: &mut ::core::mem::MaybeUninit<crate::wire::Directory<'static>>,
418 _: (),
419 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
420 ::fidl_next::munge!(let crate::wire::Directory { table } = out);
421
422 let max_ord = self.__max_ordinal();
423
424 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
425 ::fidl_next::Wire::zero_padding(&mut out);
426
427 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
428 ::fidl_next::wire::Envelope,
429 >(encoder, max_ord);
430
431 for i in 1..=max_ord {
432 match i {
433 3 => {
434 if let Some(value) = self.rights.take() {
435 ::fidl_next::wire::Envelope::encode_value::<
436 ::fidl_next_common_fuchsia_io::wire::Operations,
437 ___E,
438 >(
439 value, preallocated.encoder, &mut out, ()
440 )?;
441 } else {
442 ::fidl_next::wire::Envelope::encode_zero(&mut out)
443 }
444 }
445
446 2 => {
447 if let Some(value) = self.source_path.take() {
448 ::fidl_next::wire::Envelope::encode_value::<
449 ::fidl_next::wire::String<'static>,
450 ___E,
451 >(
452 value, preallocated.encoder, &mut out, 1024
453 )?;
454 } else {
455 ::fidl_next::wire::Envelope::encode_zero(&mut out)
456 }
457 }
458
459 1 => {
460 if let Some(value) = self.name.take() {
461 ::fidl_next::wire::Envelope::encode_value::<
462 ::fidl_next::wire::String<'static>,
463 ___E,
464 >(
465 value, preallocated.encoder, &mut out, 100
466 )?;
467 } else {
468 ::fidl_next::wire::Envelope::encode_zero(&mut out)
469 }
470 }
471
472 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
473 }
474 unsafe {
475 preallocated.write_next(out.assume_init_ref());
476 }
477 }
478
479 ::fidl_next::wire::Table::encode_len(table, max_ord);
480
481 Ok(())
482 }
483 }
484
485 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Directory<'static>, ___E> for &'a Directory
486 where
487 ___E: ::fidl_next::Encoder + ?Sized,
488 {
489 #[inline]
490 fn encode(
491 self,
492 encoder: &mut ___E,
493 out: &mut ::core::mem::MaybeUninit<crate::wire::Directory<'static>>,
494 _: (),
495 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
496 ::fidl_next::munge!(let crate::wire::Directory { table } = out);
497
498 let max_ord = self.__max_ordinal();
499
500 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
501 ::fidl_next::Wire::zero_padding(&mut out);
502
503 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
504 ::fidl_next::wire::Envelope,
505 >(encoder, max_ord);
506
507 for i in 1..=max_ord {
508 match i {
509 3 => {
510 if let Some(value) = &self.rights {
511 ::fidl_next::wire::Envelope::encode_value::<
512 ::fidl_next_common_fuchsia_io::wire::Operations,
513 ___E,
514 >(
515 value, preallocated.encoder, &mut out, ()
516 )?;
517 } else {
518 ::fidl_next::wire::Envelope::encode_zero(&mut out)
519 }
520 }
521
522 2 => {
523 if let Some(value) = &self.source_path {
524 ::fidl_next::wire::Envelope::encode_value::<
525 ::fidl_next::wire::String<'static>,
526 ___E,
527 >(
528 value, preallocated.encoder, &mut out, 1024
529 )?;
530 } else {
531 ::fidl_next::wire::Envelope::encode_zero(&mut out)
532 }
533 }
534
535 1 => {
536 if let Some(value) = &self.name {
537 ::fidl_next::wire::Envelope::encode_value::<
538 ::fidl_next::wire::String<'static>,
539 ___E,
540 >(
541 value, preallocated.encoder, &mut out, 100
542 )?;
543 } else {
544 ::fidl_next::wire::Envelope::encode_zero(&mut out)
545 }
546 }
547
548 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
549 }
550 unsafe {
551 preallocated.write_next(out.assume_init_ref());
552 }
553 }
554
555 ::fidl_next::wire::Table::encode_len(table, max_ord);
556
557 Ok(())
558 }
559 }
560
561 impl<'de> ::fidl_next::FromWire<crate::wire::Directory<'de>> for Directory {
562 #[inline]
563 fn from_wire(wire_: crate::wire::Directory<'de>) -> Self {
564 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
565
566 let name = wire_.table.get(1);
567
568 let source_path = wire_.table.get(2);
569
570 let rights = wire_.table.get(3);
571
572 Self {
573 name: name.map(|envelope| {
574 ::fidl_next::FromWire::from_wire(unsafe {
575 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
576 })
577 }),
578
579 source_path: source_path.map(|envelope| {
580 ::fidl_next::FromWire::from_wire(unsafe {
581 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
582 })
583 }),
584
585 rights: rights.map(|envelope| {
586 ::fidl_next::FromWire::from_wire(unsafe {
587 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
588 })
589 }),
590 }
591 }
592 }
593
594 impl<'de> ::fidl_next::FromWireRef<crate::wire::Directory<'de>> for Directory {
595 #[inline]
596 fn from_wire_ref(wire: &crate::wire::Directory<'de>) -> Self {
597 Self {
598 name: wire.table.get(1).map(|envelope| {
599 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
600 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
601 })
602 }),
603
604 source_path: wire.table.get(2).map(|envelope| {
605 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
606 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
607 })
608 }),
609
610 rights: wire.table.get(3).map(|envelope| {
611 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
612 envelope
613 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
614 })
615 }),
616 }
617 }
618 }
619
620 #[doc = " A reference to a component\'s parent instance.\n"]
621 pub type ParentRef = ();
622
623 #[doc = " A reference to the component itself.\n"]
624 pub type SelfRef = ();
625
626 pub type ChildName = ::std::string::String;
627
628 #[doc = " A reference to one of the component\'s child instances.\n"]
629 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
630 pub struct ChildRef {
631 pub name: ::std::string::String,
632
633 pub collection: ::core::option::Option<::std::string::String>,
634 }
635
636 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E> for ChildRef
637 where
638 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
639 ___E: ::fidl_next::Encoder,
640 {
641 #[inline]
642 fn encode(
643 self,
644 encoder_: &mut ___E,
645 out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
646 _: (),
647 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
648 ::fidl_next::munge! {
649 let crate::wire::ChildRef {
650 name,
651 collection,
652
653 } = out_;
654 }
655
656 ::fidl_next::Encode::encode(self.name, encoder_, name, 1024)?;
657
658 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
659 ::fidl_next::Constrained::validate(_field, 1024)?;
660
661 ::fidl_next::Encode::encode(self.collection, encoder_, collection, 100)?;
662
663 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(collection.as_mut_ptr()) };
664 ::fidl_next::Constrained::validate(_field, 100)?;
665
666 Ok(())
667 }
668 }
669
670 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E> for &'a ChildRef
671 where
672 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
673 ___E: ::fidl_next::Encoder,
674 {
675 #[inline]
676 fn encode(
677 self,
678 encoder_: &mut ___E,
679 out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
680 _: (),
681 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
682 ::fidl_next::munge! {
683 let crate::wire::ChildRef {
684 name,
685 collection,
686
687 } = out_;
688 }
689
690 ::fidl_next::Encode::encode(&self.name, encoder_, name, 1024)?;
691
692 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
693 ::fidl_next::Constrained::validate(_field, 1024)?;
694
695 ::fidl_next::Encode::encode(&self.collection, encoder_, collection, 100)?;
696
697 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(collection.as_mut_ptr()) };
698 ::fidl_next::Constrained::validate(_field, 100)?;
699
700 Ok(())
701 }
702 }
703
704 unsafe impl<___E>
705 ::fidl_next::EncodeOption<
706 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
707 ___E,
708 > for ChildRef
709 where
710 ___E: ::fidl_next::Encoder + ?Sized,
711 ChildRef: ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>,
712 {
713 #[inline]
714 fn encode_option(
715 this: ::core::option::Option<Self>,
716 encoder: &mut ___E,
717 out: &mut ::core::mem::MaybeUninit<
718 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
719 >,
720 _: (),
721 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
722 if let Some(inner) = this {
723 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
724 ::fidl_next::wire::Box::encode_present(out);
725 } else {
726 ::fidl_next::wire::Box::encode_absent(out);
727 }
728
729 Ok(())
730 }
731 }
732
733 unsafe impl<'a, ___E>
734 ::fidl_next::EncodeOption<
735 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
736 ___E,
737 > for &'a ChildRef
738 where
739 ___E: ::fidl_next::Encoder + ?Sized,
740 &'a ChildRef: ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>,
741 {
742 #[inline]
743 fn encode_option(
744 this: ::core::option::Option<Self>,
745 encoder: &mut ___E,
746 out: &mut ::core::mem::MaybeUninit<
747 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
748 >,
749 _: (),
750 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
751 if let Some(inner) = this {
752 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
753 ::fidl_next::wire::Box::encode_present(out);
754 } else {
755 ::fidl_next::wire::Box::encode_absent(out);
756 }
757
758 Ok(())
759 }
760 }
761
762 impl<'de> ::fidl_next::FromWire<crate::wire::ChildRef<'de>> for ChildRef {
763 #[inline]
764 fn from_wire(wire: crate::wire::ChildRef<'de>) -> Self {
765 Self {
766 name: ::fidl_next::FromWire::from_wire(wire.name),
767
768 collection: ::fidl_next::FromWire::from_wire(wire.collection),
769 }
770 }
771 }
772
773 impl<'de> ::fidl_next::FromWireRef<crate::wire::ChildRef<'de>> for ChildRef {
774 #[inline]
775 fn from_wire_ref(wire: &crate::wire::ChildRef<'de>) -> Self {
776 Self {
777 name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name),
778
779 collection: ::fidl_next::FromWireRef::from_wire_ref(&wire.collection),
780 }
781 }
782 }
783
784 #[doc = " A reference to one of the component\'s collections.\n"]
785 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
786 pub struct CollectionRef {
787 pub name: ::std::string::String,
788 }
789
790 unsafe impl<___E> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E> for CollectionRef
791 where
792 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
793 ___E: ::fidl_next::Encoder,
794 {
795 #[inline]
796 fn encode(
797 self,
798 encoder_: &mut ___E,
799 out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
800 _: (),
801 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
802 ::fidl_next::munge! {
803 let crate::wire::CollectionRef {
804 name,
805
806 } = out_;
807 }
808
809 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
810
811 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
812 ::fidl_next::Constrained::validate(_field, 100)?;
813
814 Ok(())
815 }
816 }
817
818 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>
819 for &'a CollectionRef
820 where
821 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
822 ___E: ::fidl_next::Encoder,
823 {
824 #[inline]
825 fn encode(
826 self,
827 encoder_: &mut ___E,
828 out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
829 _: (),
830 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
831 ::fidl_next::munge! {
832 let crate::wire::CollectionRef {
833 name,
834
835 } = out_;
836 }
837
838 ::fidl_next::Encode::encode(&self.name, encoder_, name, 100)?;
839
840 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
841 ::fidl_next::Constrained::validate(_field, 100)?;
842
843 Ok(())
844 }
845 }
846
847 unsafe impl<___E>
848 ::fidl_next::EncodeOption<
849 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
850 ___E,
851 > for CollectionRef
852 where
853 ___E: ::fidl_next::Encoder + ?Sized,
854 CollectionRef: ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>,
855 {
856 #[inline]
857 fn encode_option(
858 this: ::core::option::Option<Self>,
859 encoder: &mut ___E,
860 out: &mut ::core::mem::MaybeUninit<
861 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
862 >,
863 _: (),
864 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
865 if let Some(inner) = this {
866 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
867 ::fidl_next::wire::Box::encode_present(out);
868 } else {
869 ::fidl_next::wire::Box::encode_absent(out);
870 }
871
872 Ok(())
873 }
874 }
875
876 unsafe impl<'a, ___E>
877 ::fidl_next::EncodeOption<
878 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
879 ___E,
880 > for &'a CollectionRef
881 where
882 ___E: ::fidl_next::Encoder + ?Sized,
883 &'a CollectionRef: ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>,
884 {
885 #[inline]
886 fn encode_option(
887 this: ::core::option::Option<Self>,
888 encoder: &mut ___E,
889 out: &mut ::core::mem::MaybeUninit<
890 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
891 >,
892 _: (),
893 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
894 if let Some(inner) = this {
895 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
896 ::fidl_next::wire::Box::encode_present(out);
897 } else {
898 ::fidl_next::wire::Box::encode_absent(out);
899 }
900
901 Ok(())
902 }
903 }
904
905 impl<'de> ::fidl_next::FromWire<crate::wire::CollectionRef<'de>> for CollectionRef {
906 #[inline]
907 fn from_wire(wire: crate::wire::CollectionRef<'de>) -> Self {
908 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
909 }
910 }
911
912 impl<'de> ::fidl_next::FromWireRef<crate::wire::CollectionRef<'de>> for CollectionRef {
913 #[inline]
914 fn from_wire_ref(wire: &crate::wire::CollectionRef<'de>) -> Self {
915 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
916 }
917 }
918
919 #[doc = " A reference to the component framework itself.\n"]
920 pub type FrameworkRef = ();
921
922 #[doc = " A reference to a capability declared in this component.\n"]
923 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
924 pub struct CapabilityRef {
925 pub name: ::std::string::String,
926 }
927
928 unsafe impl<___E> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E> for CapabilityRef
929 where
930 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
931 ___E: ::fidl_next::Encoder,
932 {
933 #[inline]
934 fn encode(
935 self,
936 encoder_: &mut ___E,
937 out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
938 _: (),
939 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
940 ::fidl_next::munge! {
941 let crate::wire::CapabilityRef {
942 name,
943
944 } = out_;
945 }
946
947 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
948
949 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
950 ::fidl_next::Constrained::validate(_field, 100)?;
951
952 Ok(())
953 }
954 }
955
956 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>
957 for &'a CapabilityRef
958 where
959 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
960 ___E: ::fidl_next::Encoder,
961 {
962 #[inline]
963 fn encode(
964 self,
965 encoder_: &mut ___E,
966 out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
967 _: (),
968 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
969 ::fidl_next::munge! {
970 let crate::wire::CapabilityRef {
971 name,
972
973 } = out_;
974 }
975
976 ::fidl_next::Encode::encode(&self.name, encoder_, name, 100)?;
977
978 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
979 ::fidl_next::Constrained::validate(_field, 100)?;
980
981 Ok(())
982 }
983 }
984
985 unsafe impl<___E>
986 ::fidl_next::EncodeOption<
987 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
988 ___E,
989 > for CapabilityRef
990 where
991 ___E: ::fidl_next::Encoder + ?Sized,
992 CapabilityRef: ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>,
993 {
994 #[inline]
995 fn encode_option(
996 this: ::core::option::Option<Self>,
997 encoder: &mut ___E,
998 out: &mut ::core::mem::MaybeUninit<
999 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
1000 >,
1001 _: (),
1002 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1003 if let Some(inner) = this {
1004 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1005 ::fidl_next::wire::Box::encode_present(out);
1006 } else {
1007 ::fidl_next::wire::Box::encode_absent(out);
1008 }
1009
1010 Ok(())
1011 }
1012 }
1013
1014 unsafe impl<'a, ___E>
1015 ::fidl_next::EncodeOption<
1016 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
1017 ___E,
1018 > for &'a CapabilityRef
1019 where
1020 ___E: ::fidl_next::Encoder + ?Sized,
1021 &'a CapabilityRef: ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>,
1022 {
1023 #[inline]
1024 fn encode_option(
1025 this: ::core::option::Option<Self>,
1026 encoder: &mut ___E,
1027 out: &mut ::core::mem::MaybeUninit<
1028 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
1029 >,
1030 _: (),
1031 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1032 if let Some(inner) = this {
1033 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1034 ::fidl_next::wire::Box::encode_present(out);
1035 } else {
1036 ::fidl_next::wire::Box::encode_absent(out);
1037 }
1038
1039 Ok(())
1040 }
1041 }
1042
1043 impl<'de> ::fidl_next::FromWire<crate::wire::CapabilityRef<'de>> for CapabilityRef {
1044 #[inline]
1045 fn from_wire(wire: crate::wire::CapabilityRef<'de>) -> Self {
1046 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
1047 }
1048 }
1049
1050 impl<'de> ::fidl_next::FromWireRef<crate::wire::CapabilityRef<'de>> for CapabilityRef {
1051 #[inline]
1052 fn from_wire_ref(wire: &crate::wire::CapabilityRef<'de>) -> Self {
1053 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
1054 }
1055 }
1056
1057 #[doc = " A reference to the environment\'s debug capabilities.\n"]
1058 pub type DebugRef = ();
1059
1060 #[doc = " A reference to an intentionally missing offer source.\n"]
1061 pub type VoidRef = ();
1062
1063 #[doc = " Declares which identifier to use to key a component\'s isolated storage\n directory.\n"]
1064 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1065 #[repr(u32)]
1066 pub enum StorageId {
1067 StaticInstanceId = 1,
1068 StaticInstanceIdOrMoniker = 2,
1069 }
1070 impl ::core::convert::TryFrom<u32> for StorageId {
1071 type Error = ::fidl_next::UnknownStrictEnumMemberError;
1072 fn try_from(
1073 value: u32,
1074 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
1075 match value {
1076 1 => Ok(Self::StaticInstanceId),
1077 2 => Ok(Self::StaticInstanceIdOrMoniker),
1078
1079 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
1080 }
1081 }
1082 }
1083
1084 unsafe impl<___E> ::fidl_next::Encode<crate::wire::StorageId, ___E> for StorageId
1085 where
1086 ___E: ?Sized,
1087 {
1088 #[inline]
1089 fn encode(
1090 self,
1091 encoder: &mut ___E,
1092 out: &mut ::core::mem::MaybeUninit<crate::wire::StorageId>,
1093 _: (),
1094 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1095 ::fidl_next::Encode::encode(&self, encoder, out, ())
1096 }
1097 }
1098
1099 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::StorageId, ___E> for &'a StorageId
1100 where
1101 ___E: ?Sized,
1102 {
1103 #[inline]
1104 fn encode(
1105 self,
1106 encoder: &mut ___E,
1107 out: &mut ::core::mem::MaybeUninit<crate::wire::StorageId>,
1108 _: (),
1109 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1110 ::fidl_next::munge!(let crate::wire::StorageId { value } = out);
1111 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
1112 StorageId::StaticInstanceId => 1,
1113
1114 StorageId::StaticInstanceIdOrMoniker => 2,
1115 }));
1116
1117 Ok(())
1118 }
1119 }
1120
1121 impl ::core::convert::From<crate::wire::StorageId> for StorageId {
1122 fn from(wire: crate::wire::StorageId) -> Self {
1123 match u32::from(wire.value) {
1124 1 => Self::StaticInstanceId,
1125
1126 2 => Self::StaticInstanceIdOrMoniker,
1127
1128 _ => unsafe { ::core::hint::unreachable_unchecked() },
1129 }
1130 }
1131 }
1132
1133 impl ::fidl_next::FromWire<crate::wire::StorageId> for StorageId {
1134 #[inline]
1135 fn from_wire(wire: crate::wire::StorageId) -> Self {
1136 Self::from(wire)
1137 }
1138 }
1139
1140 impl ::fidl_next::FromWireRef<crate::wire::StorageId> for StorageId {
1141 #[inline]
1142 fn from_wire_ref(wire: &crate::wire::StorageId) -> Self {
1143 Self::from(*wire)
1144 }
1145 }
1146
1147 #[doc = " Declares a runner capability backed by a service.\n"]
1148 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1149 pub struct Runner {
1150 pub name: ::core::option::Option<::std::string::String>,
1151
1152 pub source_path: ::core::option::Option<::std::string::String>,
1153 }
1154
1155 impl Runner {
1156 fn __max_ordinal(&self) -> usize {
1157 if self.source_path.is_some() {
1158 return 2;
1159 }
1160
1161 if self.name.is_some() {
1162 return 1;
1163 }
1164
1165 0
1166 }
1167 }
1168
1169 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Runner<'static>, ___E> for Runner
1170 where
1171 ___E: ::fidl_next::Encoder + ?Sized,
1172 {
1173 #[inline]
1174 fn encode(
1175 mut self,
1176 encoder: &mut ___E,
1177 out: &mut ::core::mem::MaybeUninit<crate::wire::Runner<'static>>,
1178 _: (),
1179 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1180 ::fidl_next::munge!(let crate::wire::Runner { table } = out);
1181
1182 let max_ord = self.__max_ordinal();
1183
1184 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1185 ::fidl_next::Wire::zero_padding(&mut out);
1186
1187 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1188 ::fidl_next::wire::Envelope,
1189 >(encoder, max_ord);
1190
1191 for i in 1..=max_ord {
1192 match i {
1193 2 => {
1194 if let Some(value) = self.source_path.take() {
1195 ::fidl_next::wire::Envelope::encode_value::<
1196 ::fidl_next::wire::String<'static>,
1197 ___E,
1198 >(
1199 value, preallocated.encoder, &mut out, 1024
1200 )?;
1201 } else {
1202 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1203 }
1204 }
1205
1206 1 => {
1207 if let Some(value) = self.name.take() {
1208 ::fidl_next::wire::Envelope::encode_value::<
1209 ::fidl_next::wire::String<'static>,
1210 ___E,
1211 >(
1212 value, preallocated.encoder, &mut out, 100
1213 )?;
1214 } else {
1215 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1216 }
1217 }
1218
1219 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1220 }
1221 unsafe {
1222 preallocated.write_next(out.assume_init_ref());
1223 }
1224 }
1225
1226 ::fidl_next::wire::Table::encode_len(table, max_ord);
1227
1228 Ok(())
1229 }
1230 }
1231
1232 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Runner<'static>, ___E> for &'a Runner
1233 where
1234 ___E: ::fidl_next::Encoder + ?Sized,
1235 {
1236 #[inline]
1237 fn encode(
1238 self,
1239 encoder: &mut ___E,
1240 out: &mut ::core::mem::MaybeUninit<crate::wire::Runner<'static>>,
1241 _: (),
1242 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1243 ::fidl_next::munge!(let crate::wire::Runner { table } = out);
1244
1245 let max_ord = self.__max_ordinal();
1246
1247 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1248 ::fidl_next::Wire::zero_padding(&mut out);
1249
1250 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1251 ::fidl_next::wire::Envelope,
1252 >(encoder, max_ord);
1253
1254 for i in 1..=max_ord {
1255 match i {
1256 2 => {
1257 if let Some(value) = &self.source_path {
1258 ::fidl_next::wire::Envelope::encode_value::<
1259 ::fidl_next::wire::String<'static>,
1260 ___E,
1261 >(
1262 value, preallocated.encoder, &mut out, 1024
1263 )?;
1264 } else {
1265 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1266 }
1267 }
1268
1269 1 => {
1270 if let Some(value) = &self.name {
1271 ::fidl_next::wire::Envelope::encode_value::<
1272 ::fidl_next::wire::String<'static>,
1273 ___E,
1274 >(
1275 value, preallocated.encoder, &mut out, 100
1276 )?;
1277 } else {
1278 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1279 }
1280 }
1281
1282 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1283 }
1284 unsafe {
1285 preallocated.write_next(out.assume_init_ref());
1286 }
1287 }
1288
1289 ::fidl_next::wire::Table::encode_len(table, max_ord);
1290
1291 Ok(())
1292 }
1293 }
1294
1295 impl<'de> ::fidl_next::FromWire<crate::wire::Runner<'de>> for Runner {
1296 #[inline]
1297 fn from_wire(wire_: crate::wire::Runner<'de>) -> Self {
1298 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
1299
1300 let name = wire_.table.get(1);
1301
1302 let source_path = wire_.table.get(2);
1303
1304 Self {
1305 name: name.map(|envelope| {
1306 ::fidl_next::FromWire::from_wire(unsafe {
1307 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1308 })
1309 }),
1310
1311 source_path: source_path.map(|envelope| {
1312 ::fidl_next::FromWire::from_wire(unsafe {
1313 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1314 })
1315 }),
1316 }
1317 }
1318 }
1319
1320 impl<'de> ::fidl_next::FromWireRef<crate::wire::Runner<'de>> for Runner {
1321 #[inline]
1322 fn from_wire_ref(wire: &crate::wire::Runner<'de>) -> Self {
1323 Self {
1324 name: wire.table.get(1).map(|envelope| {
1325 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1326 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1327 })
1328 }),
1329
1330 source_path: wire.table.get(2).map(|envelope| {
1331 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1332 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1333 })
1334 }),
1335 }
1336 }
1337 }
1338
1339 #[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"]
1340 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1341 pub struct Resolver {
1342 pub name: ::core::option::Option<::std::string::String>,
1343
1344 pub source_path: ::core::option::Option<::std::string::String>,
1345 }
1346
1347 impl Resolver {
1348 fn __max_ordinal(&self) -> usize {
1349 if self.source_path.is_some() {
1350 return 2;
1351 }
1352
1353 if self.name.is_some() {
1354 return 1;
1355 }
1356
1357 0
1358 }
1359 }
1360
1361 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Resolver<'static>, ___E> for Resolver
1362 where
1363 ___E: ::fidl_next::Encoder + ?Sized,
1364 {
1365 #[inline]
1366 fn encode(
1367 mut self,
1368 encoder: &mut ___E,
1369 out: &mut ::core::mem::MaybeUninit<crate::wire::Resolver<'static>>,
1370 _: (),
1371 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1372 ::fidl_next::munge!(let crate::wire::Resolver { table } = out);
1373
1374 let max_ord = self.__max_ordinal();
1375
1376 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1377 ::fidl_next::Wire::zero_padding(&mut out);
1378
1379 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1380 ::fidl_next::wire::Envelope,
1381 >(encoder, max_ord);
1382
1383 for i in 1..=max_ord {
1384 match i {
1385 2 => {
1386 if let Some(value) = self.source_path.take() {
1387 ::fidl_next::wire::Envelope::encode_value::<
1388 ::fidl_next::wire::String<'static>,
1389 ___E,
1390 >(
1391 value, preallocated.encoder, &mut out, 1024
1392 )?;
1393 } else {
1394 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1395 }
1396 }
1397
1398 1 => {
1399 if let Some(value) = self.name.take() {
1400 ::fidl_next::wire::Envelope::encode_value::<
1401 ::fidl_next::wire::String<'static>,
1402 ___E,
1403 >(
1404 value, preallocated.encoder, &mut out, 100
1405 )?;
1406 } else {
1407 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1408 }
1409 }
1410
1411 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1412 }
1413 unsafe {
1414 preallocated.write_next(out.assume_init_ref());
1415 }
1416 }
1417
1418 ::fidl_next::wire::Table::encode_len(table, max_ord);
1419
1420 Ok(())
1421 }
1422 }
1423
1424 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Resolver<'static>, ___E> for &'a Resolver
1425 where
1426 ___E: ::fidl_next::Encoder + ?Sized,
1427 {
1428 #[inline]
1429 fn encode(
1430 self,
1431 encoder: &mut ___E,
1432 out: &mut ::core::mem::MaybeUninit<crate::wire::Resolver<'static>>,
1433 _: (),
1434 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1435 ::fidl_next::munge!(let crate::wire::Resolver { table } = out);
1436
1437 let max_ord = self.__max_ordinal();
1438
1439 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1440 ::fidl_next::Wire::zero_padding(&mut out);
1441
1442 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1443 ::fidl_next::wire::Envelope,
1444 >(encoder, max_ord);
1445
1446 for i in 1..=max_ord {
1447 match i {
1448 2 => {
1449 if let Some(value) = &self.source_path {
1450 ::fidl_next::wire::Envelope::encode_value::<
1451 ::fidl_next::wire::String<'static>,
1452 ___E,
1453 >(
1454 value, preallocated.encoder, &mut out, 1024
1455 )?;
1456 } else {
1457 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1458 }
1459 }
1460
1461 1 => {
1462 if let Some(value) = &self.name {
1463 ::fidl_next::wire::Envelope::encode_value::<
1464 ::fidl_next::wire::String<'static>,
1465 ___E,
1466 >(
1467 value, preallocated.encoder, &mut out, 100
1468 )?;
1469 } else {
1470 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1471 }
1472 }
1473
1474 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1475 }
1476 unsafe {
1477 preallocated.write_next(out.assume_init_ref());
1478 }
1479 }
1480
1481 ::fidl_next::wire::Table::encode_len(table, max_ord);
1482
1483 Ok(())
1484 }
1485 }
1486
1487 impl<'de> ::fidl_next::FromWire<crate::wire::Resolver<'de>> for Resolver {
1488 #[inline]
1489 fn from_wire(wire_: crate::wire::Resolver<'de>) -> Self {
1490 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
1491
1492 let name = wire_.table.get(1);
1493
1494 let source_path = wire_.table.get(2);
1495
1496 Self {
1497 name: name.map(|envelope| {
1498 ::fidl_next::FromWire::from_wire(unsafe {
1499 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1500 })
1501 }),
1502
1503 source_path: source_path.map(|envelope| {
1504 ::fidl_next::FromWire::from_wire(unsafe {
1505 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1506 })
1507 }),
1508 }
1509 }
1510 }
1511
1512 impl<'de> ::fidl_next::FromWireRef<crate::wire::Resolver<'de>> for Resolver {
1513 #[inline]
1514 fn from_wire_ref(wire: &crate::wire::Resolver<'de>) -> Self {
1515 Self {
1516 name: wire.table.get(1).map(|envelope| {
1517 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1518 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1519 })
1520 }),
1521
1522 source_path: wire.table.get(2).map(|envelope| {
1523 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1524 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1525 })
1526 }),
1527 }
1528 }
1529 }
1530
1531 #[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"]
1532 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1533 pub struct EventStream {
1534 pub name: ::core::option::Option<::std::string::String>,
1535 }
1536
1537 impl EventStream {
1538 fn __max_ordinal(&self) -> usize {
1539 if self.name.is_some() {
1540 return 1;
1541 }
1542
1543 0
1544 }
1545 }
1546
1547 unsafe impl<___E> ::fidl_next::Encode<crate::wire::EventStream<'static>, ___E> for EventStream
1548 where
1549 ___E: ::fidl_next::Encoder + ?Sized,
1550 {
1551 #[inline]
1552 fn encode(
1553 mut self,
1554 encoder: &mut ___E,
1555 out: &mut ::core::mem::MaybeUninit<crate::wire::EventStream<'static>>,
1556 _: (),
1557 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1558 ::fidl_next::munge!(let crate::wire::EventStream { table } = out);
1559
1560 let max_ord = self.__max_ordinal();
1561
1562 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1563 ::fidl_next::Wire::zero_padding(&mut out);
1564
1565 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1566 ::fidl_next::wire::Envelope,
1567 >(encoder, max_ord);
1568
1569 for i in 1..=max_ord {
1570 match i {
1571 1 => {
1572 if let Some(value) = self.name.take() {
1573 ::fidl_next::wire::Envelope::encode_value::<
1574 ::fidl_next::wire::String<'static>,
1575 ___E,
1576 >(
1577 value, preallocated.encoder, &mut out, 100
1578 )?;
1579 } else {
1580 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1581 }
1582 }
1583
1584 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1585 }
1586 unsafe {
1587 preallocated.write_next(out.assume_init_ref());
1588 }
1589 }
1590
1591 ::fidl_next::wire::Table::encode_len(table, max_ord);
1592
1593 Ok(())
1594 }
1595 }
1596
1597 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EventStream<'static>, ___E>
1598 for &'a EventStream
1599 where
1600 ___E: ::fidl_next::Encoder + ?Sized,
1601 {
1602 #[inline]
1603 fn encode(
1604 self,
1605 encoder: &mut ___E,
1606 out: &mut ::core::mem::MaybeUninit<crate::wire::EventStream<'static>>,
1607 _: (),
1608 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1609 ::fidl_next::munge!(let crate::wire::EventStream { table } = out);
1610
1611 let max_ord = self.__max_ordinal();
1612
1613 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1614 ::fidl_next::Wire::zero_padding(&mut out);
1615
1616 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1617 ::fidl_next::wire::Envelope,
1618 >(encoder, max_ord);
1619
1620 for i in 1..=max_ord {
1621 match i {
1622 1 => {
1623 if let Some(value) = &self.name {
1624 ::fidl_next::wire::Envelope::encode_value::<
1625 ::fidl_next::wire::String<'static>,
1626 ___E,
1627 >(
1628 value, preallocated.encoder, &mut out, 100
1629 )?;
1630 } else {
1631 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1632 }
1633 }
1634
1635 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1636 }
1637 unsafe {
1638 preallocated.write_next(out.assume_init_ref());
1639 }
1640 }
1641
1642 ::fidl_next::wire::Table::encode_len(table, max_ord);
1643
1644 Ok(())
1645 }
1646 }
1647
1648 impl<'de> ::fidl_next::FromWire<crate::wire::EventStream<'de>> for EventStream {
1649 #[inline]
1650 fn from_wire(wire_: crate::wire::EventStream<'de>) -> Self {
1651 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
1652
1653 let name = wire_.table.get(1);
1654
1655 Self {
1656 name: name.map(|envelope| {
1657 ::fidl_next::FromWire::from_wire(unsafe {
1658 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1659 })
1660 }),
1661 }
1662 }
1663 }
1664
1665 impl<'de> ::fidl_next::FromWireRef<crate::wire::EventStream<'de>> for EventStream {
1666 #[inline]
1667 fn from_wire_ref(wire: &crate::wire::EventStream<'de>) -> Self {
1668 Self {
1669 name: wire.table.get(1).map(|envelope| {
1670 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1671 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1672 })
1673 }),
1674 }
1675 }
1676 }
1677
1678 #[doc = " A single configuration value.\n"]
1679 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1680 pub enum ConfigSingleValue {
1681 Bool(bool),
1682
1683 Uint8(u8),
1684
1685 Uint16(u16),
1686
1687 Uint32(u32),
1688
1689 Uint64(u64),
1690
1691 Int8(i8),
1692
1693 Int16(i16),
1694
1695 Int32(i32),
1696
1697 Int64(i64),
1698
1699 String(::std::string::String),
1700
1701 UnknownOrdinal_(u64),
1702 }
1703
1704 impl ConfigSingleValue {
1705 pub fn is_unknown(&self) -> bool {
1706 #[allow(unreachable_patterns)]
1707 match self {
1708 Self::UnknownOrdinal_(_) => true,
1709 _ => false,
1710 }
1711 }
1712 }
1713
1714 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>
1715 for ConfigSingleValue
1716 where
1717 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1718 ___E: ::fidl_next::Encoder,
1719 {
1720 #[inline]
1721 fn encode(
1722 self,
1723 encoder: &mut ___E,
1724 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSingleValue<'static>>,
1725 _: (),
1726 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1727 ::fidl_next::munge!(let crate::wire::ConfigSingleValue { raw, _phantom: _ } = out);
1728
1729 match self {
1730 Self::Bool(value) => {
1731 ::fidl_next::wire::Union::encode_as::<___E, bool>(value, 1, encoder, raw, ())?
1732 }
1733
1734 Self::Uint8(value) => {
1735 ::fidl_next::wire::Union::encode_as::<___E, u8>(value, 2, encoder, raw, ())?
1736 }
1737
1738 Self::Uint16(value) => ::fidl_next::wire::Union::encode_as::<
1739 ___E,
1740 ::fidl_next::wire::Uint16,
1741 >(value, 3, encoder, raw, ())?,
1742
1743 Self::Uint32(value) => ::fidl_next::wire::Union::encode_as::<
1744 ___E,
1745 ::fidl_next::wire::Uint32,
1746 >(value, 4, encoder, raw, ())?,
1747
1748 Self::Uint64(value) => ::fidl_next::wire::Union::encode_as::<
1749 ___E,
1750 ::fidl_next::wire::Uint64,
1751 >(value, 5, encoder, raw, ())?,
1752
1753 Self::Int8(value) => {
1754 ::fidl_next::wire::Union::encode_as::<___E, i8>(value, 6, encoder, raw, ())?
1755 }
1756
1757 Self::Int16(value) => ::fidl_next::wire::Union::encode_as::<
1758 ___E,
1759 ::fidl_next::wire::Int16,
1760 >(value, 7, encoder, raw, ())?,
1761
1762 Self::Int32(value) => ::fidl_next::wire::Union::encode_as::<
1763 ___E,
1764 ::fidl_next::wire::Int32,
1765 >(value, 8, encoder, raw, ())?,
1766
1767 Self::Int64(value) => ::fidl_next::wire::Union::encode_as::<
1768 ___E,
1769 ::fidl_next::wire::Int64,
1770 >(value, 9, encoder, raw, ())?,
1771
1772 Self::String(value) => ::fidl_next::wire::Union::encode_as::<
1773 ___E,
1774 ::fidl_next::wire::String<'static>,
1775 >(value, 10, encoder, raw, 4294967295)?,
1776
1777 Self::UnknownOrdinal_(ordinal) => {
1778 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
1779 }
1780 }
1781
1782 Ok(())
1783 }
1784 }
1785
1786 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>
1787 for &'a ConfigSingleValue
1788 where
1789 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1790 ___E: ::fidl_next::Encoder,
1791 {
1792 #[inline]
1793 fn encode(
1794 self,
1795 encoder: &mut ___E,
1796 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSingleValue<'static>>,
1797 _: (),
1798 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1799 ::fidl_next::munge!(let crate::wire::ConfigSingleValue { raw, _phantom: _ } = out);
1800
1801 match self {
1802 ConfigSingleValue::Bool(value) => {
1803 ::fidl_next::wire::Union::encode_as::<___E, bool>(value, 1, encoder, raw, ())?
1804 }
1805
1806 ConfigSingleValue::Uint8(value) => {
1807 ::fidl_next::wire::Union::encode_as::<___E, u8>(value, 2, encoder, raw, ())?
1808 }
1809
1810 ConfigSingleValue::Uint16(value) => ::fidl_next::wire::Union::encode_as::<
1811 ___E,
1812 ::fidl_next::wire::Uint16,
1813 >(value, 3, encoder, raw, ())?,
1814
1815 ConfigSingleValue::Uint32(value) => ::fidl_next::wire::Union::encode_as::<
1816 ___E,
1817 ::fidl_next::wire::Uint32,
1818 >(value, 4, encoder, raw, ())?,
1819
1820 ConfigSingleValue::Uint64(value) => ::fidl_next::wire::Union::encode_as::<
1821 ___E,
1822 ::fidl_next::wire::Uint64,
1823 >(value, 5, encoder, raw, ())?,
1824
1825 ConfigSingleValue::Int8(value) => {
1826 ::fidl_next::wire::Union::encode_as::<___E, i8>(value, 6, encoder, raw, ())?
1827 }
1828
1829 ConfigSingleValue::Int16(value) => ::fidl_next::wire::Union::encode_as::<
1830 ___E,
1831 ::fidl_next::wire::Int16,
1832 >(value, 7, encoder, raw, ())?,
1833
1834 ConfigSingleValue::Int32(value) => ::fidl_next::wire::Union::encode_as::<
1835 ___E,
1836 ::fidl_next::wire::Int32,
1837 >(value, 8, encoder, raw, ())?,
1838
1839 ConfigSingleValue::Int64(value) => ::fidl_next::wire::Union::encode_as::<
1840 ___E,
1841 ::fidl_next::wire::Int64,
1842 >(value, 9, encoder, raw, ())?,
1843
1844 ConfigSingleValue::String(value) => {
1845 ::fidl_next::wire::Union::encode_as::<___E, ::fidl_next::wire::String<'static>>(
1846 value, 10, encoder, raw, 4294967295,
1847 )?
1848 }
1849
1850 ConfigSingleValue::UnknownOrdinal_(ordinal) => {
1851 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
1852 }
1853 }
1854
1855 Ok(())
1856 }
1857 }
1858
1859 unsafe impl<___E>
1860 ::fidl_next::EncodeOption<crate::wire_optional::ConfigSingleValue<'static>, ___E>
1861 for ConfigSingleValue
1862 where
1863 ___E: ?Sized,
1864 ConfigSingleValue: ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>,
1865 {
1866 #[inline]
1867 fn encode_option(
1868 this: ::core::option::Option<Self>,
1869 encoder: &mut ___E,
1870 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigSingleValue<'static>>,
1871 _: (),
1872 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1873 ::fidl_next::munge!(let crate::wire_optional::ConfigSingleValue { raw, _phantom: _ } = &mut *out);
1874
1875 if let Some(inner) = this {
1876 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
1877 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
1878 } else {
1879 ::fidl_next::wire::Union::encode_absent(raw);
1880 }
1881
1882 Ok(())
1883 }
1884 }
1885
1886 unsafe impl<'a, ___E>
1887 ::fidl_next::EncodeOption<crate::wire_optional::ConfigSingleValue<'static>, ___E>
1888 for &'a ConfigSingleValue
1889 where
1890 ___E: ?Sized,
1891 &'a ConfigSingleValue: ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>,
1892 {
1893 #[inline]
1894 fn encode_option(
1895 this: ::core::option::Option<Self>,
1896 encoder: &mut ___E,
1897 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigSingleValue<'static>>,
1898 _: (),
1899 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1900 ::fidl_next::munge!(let crate::wire_optional::ConfigSingleValue { raw, _phantom: _ } = &mut *out);
1901
1902 if let Some(inner) = this {
1903 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
1904 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
1905 } else {
1906 ::fidl_next::wire::Union::encode_absent(raw);
1907 }
1908
1909 Ok(())
1910 }
1911 }
1912
1913 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSingleValue<'de>> for ConfigSingleValue {
1914 #[inline]
1915 fn from_wire(wire: crate::wire::ConfigSingleValue<'de>) -> Self {
1916 let wire = ::core::mem::ManuallyDrop::new(wire);
1917 match wire.raw.ordinal() {
1918 1 => Self::Bool(::fidl_next::FromWire::from_wire(unsafe {
1919 wire.raw.get().read_unchecked::<bool>()
1920 })),
1921
1922 2 => Self::Uint8(::fidl_next::FromWire::from_wire(unsafe {
1923 wire.raw.get().read_unchecked::<u8>()
1924 })),
1925
1926 3 => Self::Uint16(::fidl_next::FromWire::from_wire(unsafe {
1927 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint16>()
1928 })),
1929
1930 4 => Self::Uint32(::fidl_next::FromWire::from_wire(unsafe {
1931 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
1932 })),
1933
1934 5 => Self::Uint64(::fidl_next::FromWire::from_wire(unsafe {
1935 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint64>()
1936 })),
1937
1938 6 => Self::Int8(::fidl_next::FromWire::from_wire(unsafe {
1939 wire.raw.get().read_unchecked::<i8>()
1940 })),
1941
1942 7 => Self::Int16(::fidl_next::FromWire::from_wire(unsafe {
1943 wire.raw.get().read_unchecked::<::fidl_next::wire::Int16>()
1944 })),
1945
1946 8 => Self::Int32(::fidl_next::FromWire::from_wire(unsafe {
1947 wire.raw.get().read_unchecked::<::fidl_next::wire::Int32>()
1948 })),
1949
1950 9 => Self::Int64(::fidl_next::FromWire::from_wire(unsafe {
1951 wire.raw.get().read_unchecked::<::fidl_next::wire::Int64>()
1952 })),
1953
1954 10 => Self::String(::fidl_next::FromWire::from_wire(unsafe {
1955 wire.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
1956 })),
1957
1958 ord => return Self::UnknownOrdinal_(ord as u64),
1959 }
1960 }
1961 }
1962
1963 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSingleValue<'de>> for ConfigSingleValue {
1964 #[inline]
1965 fn from_wire_ref(wire: &crate::wire::ConfigSingleValue<'de>) -> Self {
1966 match wire.raw.ordinal() {
1967 1 => Self::Bool(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1968 wire.raw.get().deref_unchecked::<bool>()
1969 })),
1970
1971 2 => Self::Uint8(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1972 wire.raw.get().deref_unchecked::<u8>()
1973 })),
1974
1975 3 => Self::Uint16(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1976 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint16>()
1977 })),
1978
1979 4 => Self::Uint32(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1980 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
1981 })),
1982
1983 5 => Self::Uint64(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1984 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint64>()
1985 })),
1986
1987 6 => Self::Int8(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1988 wire.raw.get().deref_unchecked::<i8>()
1989 })),
1990
1991 7 => Self::Int16(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1992 wire.raw.get().deref_unchecked::<::fidl_next::wire::Int16>()
1993 })),
1994
1995 8 => Self::Int32(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1996 wire.raw.get().deref_unchecked::<::fidl_next::wire::Int32>()
1997 })),
1998
1999 9 => Self::Int64(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2000 wire.raw.get().deref_unchecked::<::fidl_next::wire::Int64>()
2001 })),
2002
2003 10 => Self::String(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2004 wire.raw.get().deref_unchecked::<::fidl_next::wire::String<'de>>()
2005 })),
2006
2007 ord => return Self::UnknownOrdinal_(ord as u64),
2008 }
2009 }
2010 }
2011
2012 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigSingleValue<'de>>
2013 for ConfigSingleValue
2014 {
2015 #[inline]
2016 fn from_wire_option(
2017 wire: crate::wire_optional::ConfigSingleValue<'de>,
2018 ) -> ::core::option::Option<Self> {
2019 if let Some(inner) = wire.into_option() {
2020 Some(::fidl_next::FromWire::from_wire(inner))
2021 } else {
2022 None
2023 }
2024 }
2025 }
2026
2027 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigSingleValue<'de>>
2028 for Box<ConfigSingleValue>
2029 {
2030 #[inline]
2031 fn from_wire_option(
2032 wire: crate::wire_optional::ConfigSingleValue<'de>,
2033 ) -> ::core::option::Option<Self> {
2034 <ConfigSingleValue as ::fidl_next::FromWireOption<
2035 crate::wire_optional::ConfigSingleValue<'de>,
2036 >>::from_wire_option(wire)
2037 .map(Box::new)
2038 }
2039 }
2040
2041 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigSingleValue<'de>>
2042 for Box<ConfigSingleValue>
2043 {
2044 #[inline]
2045 fn from_wire_option_ref(
2046 wire: &crate::wire_optional::ConfigSingleValue<'de>,
2047 ) -> ::core::option::Option<Self> {
2048 if let Some(inner) = wire.as_ref() {
2049 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
2050 } else {
2051 None
2052 }
2053 }
2054 }
2055
2056 #[doc = " A vector configuration value.\n"]
2057 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2058 pub enum ConfigVectorValue {
2059 BoolVector(::std::vec::Vec<bool>),
2060
2061 Uint8Vector(::std::vec::Vec<u8>),
2062
2063 Uint16Vector(::std::vec::Vec<u16>),
2064
2065 Uint32Vector(::std::vec::Vec<u32>),
2066
2067 Uint64Vector(::std::vec::Vec<u64>),
2068
2069 Int8Vector(::std::vec::Vec<i8>),
2070
2071 Int16Vector(::std::vec::Vec<i16>),
2072
2073 Int32Vector(::std::vec::Vec<i32>),
2074
2075 Int64Vector(::std::vec::Vec<i64>),
2076
2077 StringVector(::std::vec::Vec<::std::string::String>),
2078
2079 UnknownOrdinal_(u64),
2080 }
2081
2082 impl ConfigVectorValue {
2083 pub fn is_unknown(&self) -> bool {
2084 #[allow(unreachable_patterns)]
2085 match self {
2086 Self::UnknownOrdinal_(_) => true,
2087 _ => false,
2088 }
2089 }
2090 }
2091
2092 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>
2093 for ConfigVectorValue
2094 where
2095 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2096 ___E: ::fidl_next::Encoder,
2097 {
2098 #[inline]
2099 fn encode(
2100 self,
2101 encoder: &mut ___E,
2102 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigVectorValue<'static>>,
2103 _: (),
2104 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2105 ::fidl_next::munge!(let crate::wire::ConfigVectorValue { raw, _phantom: _ } = out);
2106
2107 match self {
2108 Self::BoolVector(value) => {
2109 ::fidl_next::wire::Union::encode_as::<
2110 ___E,
2111 ::fidl_next::wire::Vector<'static, bool>,
2112 >(value, 1, encoder, raw, (4294967295, ()))?
2113 }
2114
2115 Self::Uint8Vector(value) => {
2116 ::fidl_next::wire::Union::encode_as::<
2117 ___E,
2118 ::fidl_next::wire::Vector<'static, u8>,
2119 >(value, 2, encoder, raw, (4294967295, ()))?
2120 }
2121
2122 Self::Uint16Vector(value) => {
2123 ::fidl_next::wire::Union::encode_as::<
2124 ___E,
2125 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint16>,
2126 >(value, 3, encoder, raw, (4294967295, ()))?
2127 }
2128
2129 Self::Uint32Vector(value) => {
2130 ::fidl_next::wire::Union::encode_as::<
2131 ___E,
2132 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>,
2133 >(value, 4, encoder, raw, (4294967295, ()))?
2134 }
2135
2136 Self::Uint64Vector(value) => {
2137 ::fidl_next::wire::Union::encode_as::<
2138 ___E,
2139 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint64>,
2140 >(value, 5, encoder, raw, (4294967295, ()))?
2141 }
2142
2143 Self::Int8Vector(value) => {
2144 ::fidl_next::wire::Union::encode_as::<
2145 ___E,
2146 ::fidl_next::wire::Vector<'static, i8>,
2147 >(value, 6, encoder, raw, (4294967295, ()))?
2148 }
2149
2150 Self::Int16Vector(value) => {
2151 ::fidl_next::wire::Union::encode_as::<
2152 ___E,
2153 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int16>,
2154 >(value, 7, encoder, raw, (4294967295, ()))?
2155 }
2156
2157 Self::Int32Vector(value) => {
2158 ::fidl_next::wire::Union::encode_as::<
2159 ___E,
2160 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int32>,
2161 >(value, 8, encoder, raw, (4294967295, ()))?
2162 }
2163
2164 Self::Int64Vector(value) => {
2165 ::fidl_next::wire::Union::encode_as::<
2166 ___E,
2167 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int64>,
2168 >(value, 9, encoder, raw, (4294967295, ()))?
2169 }
2170
2171 Self::StringVector(value) => {
2172 ::fidl_next::wire::Union::encode_as::<
2173 ___E,
2174 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::String<'static>>,
2175 >(value, 10, encoder, raw, (4294967295, 4294967295))?
2176 }
2177
2178 Self::UnknownOrdinal_(ordinal) => {
2179 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
2180 }
2181 }
2182
2183 Ok(())
2184 }
2185 }
2186
2187 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>
2188 for &'a ConfigVectorValue
2189 where
2190 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2191 ___E: ::fidl_next::Encoder,
2192 {
2193 #[inline]
2194 fn encode(
2195 self,
2196 encoder: &mut ___E,
2197 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigVectorValue<'static>>,
2198 _: (),
2199 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2200 ::fidl_next::munge!(let crate::wire::ConfigVectorValue { raw, _phantom: _ } = out);
2201
2202 match self {
2203 ConfigVectorValue::BoolVector(value) => {
2204 ::fidl_next::wire::Union::encode_as::<
2205 ___E,
2206 ::fidl_next::wire::Vector<'static, bool>,
2207 >(value, 1, encoder, raw, (4294967295, ()))?
2208 }
2209
2210 ConfigVectorValue::Uint8Vector(value) => {
2211 ::fidl_next::wire::Union::encode_as::<
2212 ___E,
2213 ::fidl_next::wire::Vector<'static, u8>,
2214 >(value, 2, encoder, raw, (4294967295, ()))?
2215 }
2216
2217 ConfigVectorValue::Uint16Vector(value) => {
2218 ::fidl_next::wire::Union::encode_as::<
2219 ___E,
2220 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint16>,
2221 >(value, 3, encoder, raw, (4294967295, ()))?
2222 }
2223
2224 ConfigVectorValue::Uint32Vector(value) => {
2225 ::fidl_next::wire::Union::encode_as::<
2226 ___E,
2227 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>,
2228 >(value, 4, encoder, raw, (4294967295, ()))?
2229 }
2230
2231 ConfigVectorValue::Uint64Vector(value) => {
2232 ::fidl_next::wire::Union::encode_as::<
2233 ___E,
2234 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint64>,
2235 >(value, 5, encoder, raw, (4294967295, ()))?
2236 }
2237
2238 ConfigVectorValue::Int8Vector(value) => {
2239 ::fidl_next::wire::Union::encode_as::<
2240 ___E,
2241 ::fidl_next::wire::Vector<'static, i8>,
2242 >(value, 6, encoder, raw, (4294967295, ()))?
2243 }
2244
2245 ConfigVectorValue::Int16Vector(value) => {
2246 ::fidl_next::wire::Union::encode_as::<
2247 ___E,
2248 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int16>,
2249 >(value, 7, encoder, raw, (4294967295, ()))?
2250 }
2251
2252 ConfigVectorValue::Int32Vector(value) => {
2253 ::fidl_next::wire::Union::encode_as::<
2254 ___E,
2255 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int32>,
2256 >(value, 8, encoder, raw, (4294967295, ()))?
2257 }
2258
2259 ConfigVectorValue::Int64Vector(value) => {
2260 ::fidl_next::wire::Union::encode_as::<
2261 ___E,
2262 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int64>,
2263 >(value, 9, encoder, raw, (4294967295, ()))?
2264 }
2265
2266 ConfigVectorValue::StringVector(value) => {
2267 ::fidl_next::wire::Union::encode_as::<
2268 ___E,
2269 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::String<'static>>,
2270 >(value, 10, encoder, raw, (4294967295, 4294967295))?
2271 }
2272
2273 ConfigVectorValue::UnknownOrdinal_(ordinal) => {
2274 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
2275 }
2276 }
2277
2278 Ok(())
2279 }
2280 }
2281
2282 unsafe impl<___E>
2283 ::fidl_next::EncodeOption<crate::wire_optional::ConfigVectorValue<'static>, ___E>
2284 for ConfigVectorValue
2285 where
2286 ___E: ?Sized,
2287 ConfigVectorValue: ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>,
2288 {
2289 #[inline]
2290 fn encode_option(
2291 this: ::core::option::Option<Self>,
2292 encoder: &mut ___E,
2293 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigVectorValue<'static>>,
2294 _: (),
2295 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2296 ::fidl_next::munge!(let crate::wire_optional::ConfigVectorValue { raw, _phantom: _ } = &mut *out);
2297
2298 if let Some(inner) = this {
2299 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2300 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2301 } else {
2302 ::fidl_next::wire::Union::encode_absent(raw);
2303 }
2304
2305 Ok(())
2306 }
2307 }
2308
2309 unsafe impl<'a, ___E>
2310 ::fidl_next::EncodeOption<crate::wire_optional::ConfigVectorValue<'static>, ___E>
2311 for &'a ConfigVectorValue
2312 where
2313 ___E: ?Sized,
2314 &'a ConfigVectorValue: ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>,
2315 {
2316 #[inline]
2317 fn encode_option(
2318 this: ::core::option::Option<Self>,
2319 encoder: &mut ___E,
2320 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigVectorValue<'static>>,
2321 _: (),
2322 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2323 ::fidl_next::munge!(let crate::wire_optional::ConfigVectorValue { raw, _phantom: _ } = &mut *out);
2324
2325 if let Some(inner) = this {
2326 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2327 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2328 } else {
2329 ::fidl_next::wire::Union::encode_absent(raw);
2330 }
2331
2332 Ok(())
2333 }
2334 }
2335
2336 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigVectorValue<'de>> for ConfigVectorValue {
2337 #[inline]
2338 fn from_wire(wire: crate::wire::ConfigVectorValue<'de>) -> Self {
2339 let wire = ::core::mem::ManuallyDrop::new(wire);
2340 match wire.raw.ordinal() {
2341 1 => Self::BoolVector(::fidl_next::FromWire::from_wire(unsafe {
2342 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
2343 })),
2344
2345 2 => Self::Uint8Vector(::fidl_next::FromWire::from_wire(unsafe {
2346 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
2347 })),
2348
2349 3 => Self::Uint16Vector(::fidl_next::FromWire::from_wire(unsafe {
2350 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
2351 })),
2352
2353 4 => Self::Uint32Vector(::fidl_next::FromWire::from_wire(unsafe {
2354 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
2355 })),
2356
2357 5 => Self::Uint64Vector(::fidl_next::FromWire::from_wire(unsafe {
2358 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
2359 })),
2360
2361 6 => Self::Int8Vector(::fidl_next::FromWire::from_wire(unsafe {
2362 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
2363 })),
2364
2365 7 => {
2366 Self::Int16Vector(::fidl_next::FromWire::from_wire(unsafe {
2367 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
2368 }))
2369 }
2370
2371 8 => {
2372 Self::Int32Vector(::fidl_next::FromWire::from_wire(unsafe {
2373 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
2374 }))
2375 }
2376
2377 9 => {
2378 Self::Int64Vector(::fidl_next::FromWire::from_wire(unsafe {
2379 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
2380 }))
2381 }
2382
2383 10 => Self::StringVector(::fidl_next::FromWire::from_wire(unsafe {
2384 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
2385 })),
2386
2387 ord => return Self::UnknownOrdinal_(ord as u64),
2388 }
2389 }
2390 }
2391
2392 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigVectorValue<'de>> for ConfigVectorValue {
2393 #[inline]
2394 fn from_wire_ref(wire: &crate::wire::ConfigVectorValue<'de>) -> Self {
2395 match wire.raw.ordinal() {
2396 1 => Self::BoolVector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2397 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
2398 })),
2399
2400 2 => Self::Uint8Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2401 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
2402 })),
2403
2404 3 => Self::Uint16Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2405 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
2406 })),
2407
2408 4 => Self::Uint32Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2409 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
2410 })),
2411
2412 5 => Self::Uint64Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2413 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
2414 })),
2415
2416 6 => Self::Int8Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2417 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
2418 })),
2419
2420 7 => Self::Int16Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2421 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
2422 })),
2423
2424 8 => Self::Int32Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2425 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
2426 })),
2427
2428 9 => Self::Int64Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2429 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
2430 })),
2431
2432 10 => Self::StringVector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2433 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
2434 })),
2435
2436 ord => return Self::UnknownOrdinal_(ord as u64),
2437 }
2438 }
2439 }
2440
2441 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigVectorValue<'de>>
2442 for ConfigVectorValue
2443 {
2444 #[inline]
2445 fn from_wire_option(
2446 wire: crate::wire_optional::ConfigVectorValue<'de>,
2447 ) -> ::core::option::Option<Self> {
2448 if let Some(inner) = wire.into_option() {
2449 Some(::fidl_next::FromWire::from_wire(inner))
2450 } else {
2451 None
2452 }
2453 }
2454 }
2455
2456 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigVectorValue<'de>>
2457 for Box<ConfigVectorValue>
2458 {
2459 #[inline]
2460 fn from_wire_option(
2461 wire: crate::wire_optional::ConfigVectorValue<'de>,
2462 ) -> ::core::option::Option<Self> {
2463 <ConfigVectorValue as ::fidl_next::FromWireOption<
2464 crate::wire_optional::ConfigVectorValue<'de>,
2465 >>::from_wire_option(wire)
2466 .map(Box::new)
2467 }
2468 }
2469
2470 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigVectorValue<'de>>
2471 for Box<ConfigVectorValue>
2472 {
2473 #[inline]
2474 fn from_wire_option_ref(
2475 wire: &crate::wire_optional::ConfigVectorValue<'de>,
2476 ) -> ::core::option::Option<Self> {
2477 if let Some(inner) = wire.as_ref() {
2478 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
2479 } else {
2480 None
2481 }
2482 }
2483 }
2484
2485 #[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"]
2486 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2487 pub enum ConfigValue {
2488 Single(crate::natural::ConfigSingleValue),
2489
2490 Vector(crate::natural::ConfigVectorValue),
2491
2492 UnknownOrdinal_(u64),
2493 }
2494
2495 impl ConfigValue {
2496 pub fn is_unknown(&self) -> bool {
2497 #[allow(unreachable_patterns)]
2498 match self {
2499 Self::UnknownOrdinal_(_) => true,
2500 _ => false,
2501 }
2502 }
2503 }
2504
2505 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E> for ConfigValue
2506 where
2507 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2508 ___E: ::fidl_next::Encoder,
2509 {
2510 #[inline]
2511 fn encode(
2512 self,
2513 encoder: &mut ___E,
2514 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValue<'static>>,
2515 _: (),
2516 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2517 ::fidl_next::munge!(let crate::wire::ConfigValue { raw, _phantom: _ } = out);
2518
2519 match self {
2520 Self::Single(value) => ::fidl_next::wire::Union::encode_as::<
2521 ___E,
2522 crate::wire::ConfigSingleValue<'static>,
2523 >(value, 1, encoder, raw, ())?,
2524
2525 Self::Vector(value) => ::fidl_next::wire::Union::encode_as::<
2526 ___E,
2527 crate::wire::ConfigVectorValue<'static>,
2528 >(value, 2, encoder, raw, ())?,
2529
2530 Self::UnknownOrdinal_(ordinal) => {
2531 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
2532 }
2533 }
2534
2535 Ok(())
2536 }
2537 }
2538
2539 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>
2540 for &'a ConfigValue
2541 where
2542 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2543 ___E: ::fidl_next::Encoder,
2544 {
2545 #[inline]
2546 fn encode(
2547 self,
2548 encoder: &mut ___E,
2549 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValue<'static>>,
2550 _: (),
2551 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2552 ::fidl_next::munge!(let crate::wire::ConfigValue { raw, _phantom: _ } = out);
2553
2554 match self {
2555 ConfigValue::Single(value) => ::fidl_next::wire::Union::encode_as::<
2556 ___E,
2557 crate::wire::ConfigSingleValue<'static>,
2558 >(value, 1, encoder, raw, ())?,
2559
2560 ConfigValue::Vector(value) => ::fidl_next::wire::Union::encode_as::<
2561 ___E,
2562 crate::wire::ConfigVectorValue<'static>,
2563 >(value, 2, encoder, raw, ())?,
2564
2565 ConfigValue::UnknownOrdinal_(ordinal) => {
2566 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
2567 }
2568 }
2569
2570 Ok(())
2571 }
2572 }
2573
2574 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::ConfigValue<'static>, ___E>
2575 for ConfigValue
2576 where
2577 ___E: ?Sized,
2578 ConfigValue: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
2579 {
2580 #[inline]
2581 fn encode_option(
2582 this: ::core::option::Option<Self>,
2583 encoder: &mut ___E,
2584 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValue<'static>>,
2585 _: (),
2586 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2587 ::fidl_next::munge!(let crate::wire_optional::ConfigValue { raw, _phantom: _ } = &mut *out);
2588
2589 if let Some(inner) = this {
2590 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2591 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2592 } else {
2593 ::fidl_next::wire::Union::encode_absent(raw);
2594 }
2595
2596 Ok(())
2597 }
2598 }
2599
2600 unsafe impl<'a, ___E>
2601 ::fidl_next::EncodeOption<crate::wire_optional::ConfigValue<'static>, ___E>
2602 for &'a ConfigValue
2603 where
2604 ___E: ?Sized,
2605 &'a ConfigValue: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
2606 {
2607 #[inline]
2608 fn encode_option(
2609 this: ::core::option::Option<Self>,
2610 encoder: &mut ___E,
2611 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValue<'static>>,
2612 _: (),
2613 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2614 ::fidl_next::munge!(let crate::wire_optional::ConfigValue { raw, _phantom: _ } = &mut *out);
2615
2616 if let Some(inner) = this {
2617 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2618 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2619 } else {
2620 ::fidl_next::wire::Union::encode_absent(raw);
2621 }
2622
2623 Ok(())
2624 }
2625 }
2626
2627 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValue<'de>> for ConfigValue {
2628 #[inline]
2629 fn from_wire(wire: crate::wire::ConfigValue<'de>) -> Self {
2630 let wire = ::core::mem::ManuallyDrop::new(wire);
2631 match wire.raw.ordinal() {
2632 1 => Self::Single(::fidl_next::FromWire::from_wire(unsafe {
2633 wire.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
2634 })),
2635
2636 2 => Self::Vector(::fidl_next::FromWire::from_wire(unsafe {
2637 wire.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
2638 })),
2639
2640 ord => return Self::UnknownOrdinal_(ord as u64),
2641 }
2642 }
2643 }
2644
2645 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValue<'de>> for ConfigValue {
2646 #[inline]
2647 fn from_wire_ref(wire: &crate::wire::ConfigValue<'de>) -> Self {
2648 match wire.raw.ordinal() {
2649 1 => Self::Single(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2650 wire.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'de>>()
2651 })),
2652
2653 2 => Self::Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2654 wire.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'de>>()
2655 })),
2656
2657 ord => return Self::UnknownOrdinal_(ord as u64),
2658 }
2659 }
2660 }
2661
2662 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>> for ConfigValue {
2663 #[inline]
2664 fn from_wire_option(
2665 wire: crate::wire_optional::ConfigValue<'de>,
2666 ) -> ::core::option::Option<Self> {
2667 if let Some(inner) = wire.into_option() {
2668 Some(::fidl_next::FromWire::from_wire(inner))
2669 } else {
2670 None
2671 }
2672 }
2673 }
2674
2675 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>> for Box<ConfigValue> {
2676 #[inline]
2677 fn from_wire_option(
2678 wire: crate::wire_optional::ConfigValue<'de>,
2679 ) -> ::core::option::Option<Self> {
2680 <
2681 ConfigValue as ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>>
2682 >::from_wire_option(wire).map(Box::new)
2683 }
2684 }
2685
2686 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigValue<'de>>
2687 for Box<ConfigValue>
2688 {
2689 #[inline]
2690 fn from_wire_option_ref(
2691 wire: &crate::wire_optional::ConfigValue<'de>,
2692 ) -> ::core::option::Option<Self> {
2693 if let Some(inner) = wire.as_ref() {
2694 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
2695 } else {
2696 None
2697 }
2698 }
2699 }
2700
2701 #[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"]
2702 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2703 pub struct Configuration {
2704 pub name: ::core::option::Option<::std::string::String>,
2705
2706 pub value: ::core::option::Option<crate::natural::ConfigValue>,
2707 }
2708
2709 impl Configuration {
2710 fn __max_ordinal(&self) -> usize {
2711 if self.value.is_some() {
2712 return 2;
2713 }
2714
2715 if self.name.is_some() {
2716 return 1;
2717 }
2718
2719 0
2720 }
2721 }
2722
2723 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Configuration<'static>, ___E> for Configuration
2724 where
2725 ___E: ::fidl_next::Encoder + ?Sized,
2726 {
2727 #[inline]
2728 fn encode(
2729 mut self,
2730 encoder: &mut ___E,
2731 out: &mut ::core::mem::MaybeUninit<crate::wire::Configuration<'static>>,
2732 _: (),
2733 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2734 ::fidl_next::munge!(let crate::wire::Configuration { table } = out);
2735
2736 let max_ord = self.__max_ordinal();
2737
2738 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2739 ::fidl_next::Wire::zero_padding(&mut out);
2740
2741 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2742 ::fidl_next::wire::Envelope,
2743 >(encoder, max_ord);
2744
2745 for i in 1..=max_ord {
2746 match i {
2747 2 => {
2748 if let Some(value) = self.value.take() {
2749 ::fidl_next::wire::Envelope::encode_value::<
2750 crate::wire::ConfigValue<'static>,
2751 ___E,
2752 >(
2753 value, preallocated.encoder, &mut out, ()
2754 )?;
2755 } else {
2756 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2757 }
2758 }
2759
2760 1 => {
2761 if let Some(value) = self.name.take() {
2762 ::fidl_next::wire::Envelope::encode_value::<
2763 ::fidl_next::wire::String<'static>,
2764 ___E,
2765 >(
2766 value, preallocated.encoder, &mut out, 100
2767 )?;
2768 } else {
2769 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2770 }
2771 }
2772
2773 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2774 }
2775 unsafe {
2776 preallocated.write_next(out.assume_init_ref());
2777 }
2778 }
2779
2780 ::fidl_next::wire::Table::encode_len(table, max_ord);
2781
2782 Ok(())
2783 }
2784 }
2785
2786 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Configuration<'static>, ___E>
2787 for &'a Configuration
2788 where
2789 ___E: ::fidl_next::Encoder + ?Sized,
2790 {
2791 #[inline]
2792 fn encode(
2793 self,
2794 encoder: &mut ___E,
2795 out: &mut ::core::mem::MaybeUninit<crate::wire::Configuration<'static>>,
2796 _: (),
2797 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2798 ::fidl_next::munge!(let crate::wire::Configuration { table } = out);
2799
2800 let max_ord = self.__max_ordinal();
2801
2802 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2803 ::fidl_next::Wire::zero_padding(&mut out);
2804
2805 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2806 ::fidl_next::wire::Envelope,
2807 >(encoder, max_ord);
2808
2809 for i in 1..=max_ord {
2810 match i {
2811 2 => {
2812 if let Some(value) = &self.value {
2813 ::fidl_next::wire::Envelope::encode_value::<
2814 crate::wire::ConfigValue<'static>,
2815 ___E,
2816 >(
2817 value, preallocated.encoder, &mut out, ()
2818 )?;
2819 } else {
2820 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2821 }
2822 }
2823
2824 1 => {
2825 if let Some(value) = &self.name {
2826 ::fidl_next::wire::Envelope::encode_value::<
2827 ::fidl_next::wire::String<'static>,
2828 ___E,
2829 >(
2830 value, preallocated.encoder, &mut out, 100
2831 )?;
2832 } else {
2833 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2834 }
2835 }
2836
2837 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2838 }
2839 unsafe {
2840 preallocated.write_next(out.assume_init_ref());
2841 }
2842 }
2843
2844 ::fidl_next::wire::Table::encode_len(table, max_ord);
2845
2846 Ok(())
2847 }
2848 }
2849
2850 impl<'de> ::fidl_next::FromWire<crate::wire::Configuration<'de>> for Configuration {
2851 #[inline]
2852 fn from_wire(wire_: crate::wire::Configuration<'de>) -> Self {
2853 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
2854
2855 let name = wire_.table.get(1);
2856
2857 let value = wire_.table.get(2);
2858
2859 Self {
2860 name: name.map(|envelope| {
2861 ::fidl_next::FromWire::from_wire(unsafe {
2862 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
2863 })
2864 }),
2865
2866 value: value.map(|envelope| {
2867 ::fidl_next::FromWire::from_wire(unsafe {
2868 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
2869 })
2870 }),
2871 }
2872 }
2873 }
2874
2875 impl<'de> ::fidl_next::FromWireRef<crate::wire::Configuration<'de>> for Configuration {
2876 #[inline]
2877 fn from_wire_ref(wire: &crate::wire::Configuration<'de>) -> Self {
2878 Self {
2879 name: wire.table.get(1).map(|envelope| {
2880 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2881 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
2882 })
2883 }),
2884
2885 value: wire.table.get(2).map(|envelope| {
2886 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2887 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
2888 })
2889 }),
2890 }
2891 }
2892 }
2893
2894 #[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"]
2895 pub type DictionaryPath = ::std::string::String;
2896
2897 #[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"]
2898 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2899 #[repr(u32)]
2900 pub enum DeliveryType {
2901 Immediate = 0,
2902 OnReadable = 1,
2903 UnknownOrdinal_(u32) = 2,
2904 }
2905 impl ::std::convert::From<u32> for DeliveryType {
2906 fn from(value: u32) -> Self {
2907 match value {
2908 0 => Self::Immediate,
2909 1 => Self::OnReadable,
2910
2911 _ => Self::UnknownOrdinal_(value),
2912 }
2913 }
2914 }
2915
2916 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DeliveryType, ___E> for DeliveryType
2917 where
2918 ___E: ?Sized,
2919 {
2920 #[inline]
2921 fn encode(
2922 self,
2923 encoder: &mut ___E,
2924 out: &mut ::core::mem::MaybeUninit<crate::wire::DeliveryType>,
2925 _: (),
2926 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2927 ::fidl_next::Encode::encode(&self, encoder, out, ())
2928 }
2929 }
2930
2931 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DeliveryType, ___E> for &'a DeliveryType
2932 where
2933 ___E: ?Sized,
2934 {
2935 #[inline]
2936 fn encode(
2937 self,
2938 encoder: &mut ___E,
2939 out: &mut ::core::mem::MaybeUninit<crate::wire::DeliveryType>,
2940 _: (),
2941 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2942 ::fidl_next::munge!(let crate::wire::DeliveryType { value } = out);
2943 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
2944 DeliveryType::Immediate => 0,
2945
2946 DeliveryType::OnReadable => 1,
2947
2948 DeliveryType::UnknownOrdinal_(value) => value,
2949 }));
2950
2951 Ok(())
2952 }
2953 }
2954
2955 impl ::core::convert::From<crate::wire::DeliveryType> for DeliveryType {
2956 fn from(wire: crate::wire::DeliveryType) -> Self {
2957 match u32::from(wire.value) {
2958 0 => Self::Immediate,
2959
2960 1 => Self::OnReadable,
2961
2962 value => Self::UnknownOrdinal_(value),
2963 }
2964 }
2965 }
2966
2967 impl ::fidl_next::FromWire<crate::wire::DeliveryType> for DeliveryType {
2968 #[inline]
2969 fn from_wire(wire: crate::wire::DeliveryType) -> Self {
2970 Self::from(wire)
2971 }
2972 }
2973
2974 impl ::fidl_next::FromWireRef<crate::wire::DeliveryType> for DeliveryType {
2975 #[inline]
2976 fn from_wire_ref(wire: &crate::wire::DeliveryType) -> Self {
2977 Self::from(*wire)
2978 }
2979 }
2980
2981 #[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"]
2982 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2983 pub struct Protocol {
2984 pub name: ::core::option::Option<::std::string::String>,
2985
2986 pub source_path: ::core::option::Option<::std::string::String>,
2987
2988 pub delivery: ::core::option::Option<crate::natural::DeliveryType>,
2989 }
2990
2991 impl Protocol {
2992 fn __max_ordinal(&self) -> usize {
2993 if self.delivery.is_some() {
2994 return 3;
2995 }
2996
2997 if self.source_path.is_some() {
2998 return 2;
2999 }
3000
3001 if self.name.is_some() {
3002 return 1;
3003 }
3004
3005 0
3006 }
3007 }
3008
3009 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Protocol<'static>, ___E> for Protocol
3010 where
3011 ___E: ::fidl_next::Encoder + ?Sized,
3012 {
3013 #[inline]
3014 fn encode(
3015 mut self,
3016 encoder: &mut ___E,
3017 out: &mut ::core::mem::MaybeUninit<crate::wire::Protocol<'static>>,
3018 _: (),
3019 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3020 ::fidl_next::munge!(let crate::wire::Protocol { table } = out);
3021
3022 let max_ord = self.__max_ordinal();
3023
3024 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3025 ::fidl_next::Wire::zero_padding(&mut out);
3026
3027 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3028 ::fidl_next::wire::Envelope,
3029 >(encoder, max_ord);
3030
3031 for i in 1..=max_ord {
3032 match i {
3033 3 => {
3034 if let Some(value) = self.delivery.take() {
3035 ::fidl_next::wire::Envelope::encode_value::<
3036 crate::wire::DeliveryType,
3037 ___E,
3038 >(
3039 value, preallocated.encoder, &mut out, ()
3040 )?;
3041 } else {
3042 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3043 }
3044 }
3045
3046 2 => {
3047 if let Some(value) = self.source_path.take() {
3048 ::fidl_next::wire::Envelope::encode_value::<
3049 ::fidl_next::wire::String<'static>,
3050 ___E,
3051 >(
3052 value, preallocated.encoder, &mut out, 1024
3053 )?;
3054 } else {
3055 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3056 }
3057 }
3058
3059 1 => {
3060 if let Some(value) = self.name.take() {
3061 ::fidl_next::wire::Envelope::encode_value::<
3062 ::fidl_next::wire::String<'static>,
3063 ___E,
3064 >(
3065 value, preallocated.encoder, &mut out, 100
3066 )?;
3067 } else {
3068 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3069 }
3070 }
3071
3072 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3073 }
3074 unsafe {
3075 preallocated.write_next(out.assume_init_ref());
3076 }
3077 }
3078
3079 ::fidl_next::wire::Table::encode_len(table, max_ord);
3080
3081 Ok(())
3082 }
3083 }
3084
3085 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Protocol<'static>, ___E> for &'a Protocol
3086 where
3087 ___E: ::fidl_next::Encoder + ?Sized,
3088 {
3089 #[inline]
3090 fn encode(
3091 self,
3092 encoder: &mut ___E,
3093 out: &mut ::core::mem::MaybeUninit<crate::wire::Protocol<'static>>,
3094 _: (),
3095 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3096 ::fidl_next::munge!(let crate::wire::Protocol { table } = out);
3097
3098 let max_ord = self.__max_ordinal();
3099
3100 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3101 ::fidl_next::Wire::zero_padding(&mut out);
3102
3103 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3104 ::fidl_next::wire::Envelope,
3105 >(encoder, max_ord);
3106
3107 for i in 1..=max_ord {
3108 match i {
3109 3 => {
3110 if let Some(value) = &self.delivery {
3111 ::fidl_next::wire::Envelope::encode_value::<
3112 crate::wire::DeliveryType,
3113 ___E,
3114 >(
3115 value, preallocated.encoder, &mut out, ()
3116 )?;
3117 } else {
3118 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3119 }
3120 }
3121
3122 2 => {
3123 if let Some(value) = &self.source_path {
3124 ::fidl_next::wire::Envelope::encode_value::<
3125 ::fidl_next::wire::String<'static>,
3126 ___E,
3127 >(
3128 value, preallocated.encoder, &mut out, 1024
3129 )?;
3130 } else {
3131 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3132 }
3133 }
3134
3135 1 => {
3136 if let Some(value) = &self.name {
3137 ::fidl_next::wire::Envelope::encode_value::<
3138 ::fidl_next::wire::String<'static>,
3139 ___E,
3140 >(
3141 value, preallocated.encoder, &mut out, 100
3142 )?;
3143 } else {
3144 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3145 }
3146 }
3147
3148 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3149 }
3150 unsafe {
3151 preallocated.write_next(out.assume_init_ref());
3152 }
3153 }
3154
3155 ::fidl_next::wire::Table::encode_len(table, max_ord);
3156
3157 Ok(())
3158 }
3159 }
3160
3161 impl<'de> ::fidl_next::FromWire<crate::wire::Protocol<'de>> for Protocol {
3162 #[inline]
3163 fn from_wire(wire_: crate::wire::Protocol<'de>) -> Self {
3164 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
3165
3166 let name = wire_.table.get(1);
3167
3168 let source_path = wire_.table.get(2);
3169
3170 let delivery = wire_.table.get(3);
3171
3172 Self {
3173 name: name.map(|envelope| {
3174 ::fidl_next::FromWire::from_wire(unsafe {
3175 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3176 })
3177 }),
3178
3179 source_path: source_path.map(|envelope| {
3180 ::fidl_next::FromWire::from_wire(unsafe {
3181 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3182 })
3183 }),
3184
3185 delivery: delivery.map(|envelope| {
3186 ::fidl_next::FromWire::from_wire(unsafe {
3187 envelope.read_unchecked::<crate::wire::DeliveryType>()
3188 })
3189 }),
3190 }
3191 }
3192 }
3193
3194 impl<'de> ::fidl_next::FromWireRef<crate::wire::Protocol<'de>> for Protocol {
3195 #[inline]
3196 fn from_wire_ref(wire: &crate::wire::Protocol<'de>) -> Self {
3197 Self {
3198 name: wire.table.get(1).map(|envelope| {
3199 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3200 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3201 })
3202 }),
3203
3204 source_path: wire.table.get(2).map(|envelope| {
3205 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3206 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3207 })
3208 }),
3209
3210 delivery: wire.table.get(3).map(|envelope| {
3211 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3212 envelope.deref_unchecked::<crate::wire::DeliveryType>()
3213 })
3214 }),
3215 }
3216 }
3217 }
3218
3219 #[doc = " A reference to the environment.\n"]
3220 pub type EnvironmentRef = ();
3221
3222 #[doc = " A reference to a capability source or destination relative to this\n component.\n"]
3223 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3224 pub enum Ref {
3225 Parent(crate::natural::ParentRef),
3226
3227 Self_(crate::natural::SelfRef),
3228
3229 Child(crate::natural::ChildRef),
3230
3231 Collection(crate::natural::CollectionRef),
3232
3233 Framework(crate::natural::FrameworkRef),
3234
3235 Capability(crate::natural::CapabilityRef),
3236
3237 Debug(crate::natural::DebugRef),
3238
3239 VoidType(crate::natural::VoidRef),
3240
3241 Environment(crate::natural::EnvironmentRef),
3242
3243 UnknownOrdinal_(u64),
3244 }
3245
3246 impl Ref {
3247 pub fn is_unknown(&self) -> bool {
3248 #[allow(unreachable_patterns)]
3249 match self {
3250 Self::UnknownOrdinal_(_) => true,
3251 _ => false,
3252 }
3253 }
3254 }
3255
3256 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Ref<'static>, ___E> for Ref
3257 where
3258 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3259 ___E: ::fidl_next::Encoder,
3260 {
3261 #[inline]
3262 fn encode(
3263 self,
3264 encoder: &mut ___E,
3265 out: &mut ::core::mem::MaybeUninit<crate::wire::Ref<'static>>,
3266 _: (),
3267 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3268 ::fidl_next::munge!(let crate::wire::Ref { raw, _phantom: _ } = out);
3269
3270 match self {
3271 Self::Parent(value) => ::fidl_next::wire::Union::encode_as::<
3272 ___E,
3273 crate::wire::ParentRef,
3274 >(value, 1, encoder, raw, ())?,
3275
3276 Self::Self_(value) => ::fidl_next::wire::Union::encode_as::<
3277 ___E,
3278 crate::wire::SelfRef,
3279 >(value, 2, encoder, raw, ())?,
3280
3281 Self::Child(value) => ::fidl_next::wire::Union::encode_as::<
3282 ___E,
3283 crate::wire::ChildRef<'static>,
3284 >(value, 3, encoder, raw, ())?,
3285
3286 Self::Collection(value) => ::fidl_next::wire::Union::encode_as::<
3287 ___E,
3288 crate::wire::CollectionRef<'static>,
3289 >(value, 4, encoder, raw, ())?,
3290
3291 Self::Framework(value) => ::fidl_next::wire::Union::encode_as::<
3292 ___E,
3293 crate::wire::FrameworkRef,
3294 >(value, 5, encoder, raw, ())?,
3295
3296 Self::Capability(value) => ::fidl_next::wire::Union::encode_as::<
3297 ___E,
3298 crate::wire::CapabilityRef<'static>,
3299 >(value, 6, encoder, raw, ())?,
3300
3301 Self::Debug(value) => ::fidl_next::wire::Union::encode_as::<
3302 ___E,
3303 crate::wire::DebugRef,
3304 >(value, 7, encoder, raw, ())?,
3305
3306 Self::VoidType(value) => ::fidl_next::wire::Union::encode_as::<
3307 ___E,
3308 crate::wire::VoidRef,
3309 >(value, 8, encoder, raw, ())?,
3310
3311 Self::Environment(value) => ::fidl_next::wire::Union::encode_as::<
3312 ___E,
3313 crate::wire::EnvironmentRef,
3314 >(value, 9, encoder, raw, ())?,
3315
3316 Self::UnknownOrdinal_(ordinal) => {
3317 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
3318 }
3319 }
3320
3321 Ok(())
3322 }
3323 }
3324
3325 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Ref<'static>, ___E> for &'a Ref
3326 where
3327 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3328 ___E: ::fidl_next::Encoder,
3329 {
3330 #[inline]
3331 fn encode(
3332 self,
3333 encoder: &mut ___E,
3334 out: &mut ::core::mem::MaybeUninit<crate::wire::Ref<'static>>,
3335 _: (),
3336 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3337 ::fidl_next::munge!(let crate::wire::Ref { raw, _phantom: _ } = out);
3338
3339 match self {
3340 Ref::Parent(value) => ::fidl_next::wire::Union::encode_as::<
3341 ___E,
3342 crate::wire::ParentRef,
3343 >(value, 1, encoder, raw, ())?,
3344
3345 Ref::Self_(value) => ::fidl_next::wire::Union::encode_as::<
3346 ___E,
3347 crate::wire::SelfRef,
3348 >(value, 2, encoder, raw, ())?,
3349
3350 Ref::Child(value) => ::fidl_next::wire::Union::encode_as::<
3351 ___E,
3352 crate::wire::ChildRef<'static>,
3353 >(value, 3, encoder, raw, ())?,
3354
3355 Ref::Collection(value) => ::fidl_next::wire::Union::encode_as::<
3356 ___E,
3357 crate::wire::CollectionRef<'static>,
3358 >(value, 4, encoder, raw, ())?,
3359
3360 Ref::Framework(value) => ::fidl_next::wire::Union::encode_as::<
3361 ___E,
3362 crate::wire::FrameworkRef,
3363 >(value, 5, encoder, raw, ())?,
3364
3365 Ref::Capability(value) => ::fidl_next::wire::Union::encode_as::<
3366 ___E,
3367 crate::wire::CapabilityRef<'static>,
3368 >(value, 6, encoder, raw, ())?,
3369
3370 Ref::Debug(value) => ::fidl_next::wire::Union::encode_as::<
3371 ___E,
3372 crate::wire::DebugRef,
3373 >(value, 7, encoder, raw, ())?,
3374
3375 Ref::VoidType(value) => ::fidl_next::wire::Union::encode_as::<
3376 ___E,
3377 crate::wire::VoidRef,
3378 >(value, 8, encoder, raw, ())?,
3379
3380 Ref::Environment(value) => ::fidl_next::wire::Union::encode_as::<
3381 ___E,
3382 crate::wire::EnvironmentRef,
3383 >(value, 9, encoder, raw, ())?,
3384
3385 Ref::UnknownOrdinal_(ordinal) => {
3386 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
3387 }
3388 }
3389
3390 Ok(())
3391 }
3392 }
3393
3394 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Ref<'static>, ___E> for Ref
3395 where
3396 ___E: ?Sized,
3397 Ref: ::fidl_next::Encode<crate::wire::Ref<'static>, ___E>,
3398 {
3399 #[inline]
3400 fn encode_option(
3401 this: ::core::option::Option<Self>,
3402 encoder: &mut ___E,
3403 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Ref<'static>>,
3404 _: (),
3405 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3406 ::fidl_next::munge!(let crate::wire_optional::Ref { raw, _phantom: _ } = &mut *out);
3407
3408 if let Some(inner) = this {
3409 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
3410 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
3411 } else {
3412 ::fidl_next::wire::Union::encode_absent(raw);
3413 }
3414
3415 Ok(())
3416 }
3417 }
3418
3419 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Ref<'static>, ___E>
3420 for &'a Ref
3421 where
3422 ___E: ?Sized,
3423 &'a Ref: ::fidl_next::Encode<crate::wire::Ref<'static>, ___E>,
3424 {
3425 #[inline]
3426 fn encode_option(
3427 this: ::core::option::Option<Self>,
3428 encoder: &mut ___E,
3429 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Ref<'static>>,
3430 _: (),
3431 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3432 ::fidl_next::munge!(let crate::wire_optional::Ref { raw, _phantom: _ } = &mut *out);
3433
3434 if let Some(inner) = this {
3435 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
3436 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
3437 } else {
3438 ::fidl_next::wire::Union::encode_absent(raw);
3439 }
3440
3441 Ok(())
3442 }
3443 }
3444
3445 impl<'de> ::fidl_next::FromWire<crate::wire::Ref<'de>> for Ref {
3446 #[inline]
3447 fn from_wire(wire: crate::wire::Ref<'de>) -> Self {
3448 let wire = ::core::mem::ManuallyDrop::new(wire);
3449 match wire.raw.ordinal() {
3450 1 => Self::Parent(::fidl_next::FromWire::from_wire(unsafe {
3451 wire.raw.get().read_unchecked::<crate::wire::ParentRef>()
3452 })),
3453
3454 2 => Self::Self_(::fidl_next::FromWire::from_wire(unsafe {
3455 wire.raw.get().read_unchecked::<crate::wire::SelfRef>()
3456 })),
3457
3458 3 => Self::Child(::fidl_next::FromWire::from_wire(unsafe {
3459 wire.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>()
3460 })),
3461
3462 4 => Self::Collection(::fidl_next::FromWire::from_wire(unsafe {
3463 wire.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
3464 })),
3465
3466 5 => Self::Framework(::fidl_next::FromWire::from_wire(unsafe {
3467 wire.raw.get().read_unchecked::<crate::wire::FrameworkRef>()
3468 })),
3469
3470 6 => Self::Capability(::fidl_next::FromWire::from_wire(unsafe {
3471 wire.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
3472 })),
3473
3474 7 => Self::Debug(::fidl_next::FromWire::from_wire(unsafe {
3475 wire.raw.get().read_unchecked::<crate::wire::DebugRef>()
3476 })),
3477
3478 8 => Self::VoidType(::fidl_next::FromWire::from_wire(unsafe {
3479 wire.raw.get().read_unchecked::<crate::wire::VoidRef>()
3480 })),
3481
3482 9 => Self::Environment(::fidl_next::FromWire::from_wire(unsafe {
3483 wire.raw.get().read_unchecked::<crate::wire::EnvironmentRef>()
3484 })),
3485
3486 ord => return Self::UnknownOrdinal_(ord as u64),
3487 }
3488 }
3489 }
3490
3491 impl<'de> ::fidl_next::FromWireRef<crate::wire::Ref<'de>> for Ref {
3492 #[inline]
3493 fn from_wire_ref(wire: &crate::wire::Ref<'de>) -> Self {
3494 match wire.raw.ordinal() {
3495 1 => Self::Parent(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3496 wire.raw.get().deref_unchecked::<crate::wire::ParentRef>()
3497 })),
3498
3499 2 => Self::Self_(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3500 wire.raw.get().deref_unchecked::<crate::wire::SelfRef>()
3501 })),
3502
3503 3 => Self::Child(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3504 wire.raw.get().deref_unchecked::<crate::wire::ChildRef<'de>>()
3505 })),
3506
3507 4 => Self::Collection(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3508 wire.raw.get().deref_unchecked::<crate::wire::CollectionRef<'de>>()
3509 })),
3510
3511 5 => Self::Framework(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3512 wire.raw.get().deref_unchecked::<crate::wire::FrameworkRef>()
3513 })),
3514
3515 6 => Self::Capability(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3516 wire.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'de>>()
3517 })),
3518
3519 7 => Self::Debug(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3520 wire.raw.get().deref_unchecked::<crate::wire::DebugRef>()
3521 })),
3522
3523 8 => Self::VoidType(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3524 wire.raw.get().deref_unchecked::<crate::wire::VoidRef>()
3525 })),
3526
3527 9 => Self::Environment(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3528 wire.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>()
3529 })),
3530
3531 ord => return Self::UnknownOrdinal_(ord as u64),
3532 }
3533 }
3534 }
3535
3536 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>> for Ref {
3537 #[inline]
3538 fn from_wire_option(wire: crate::wire_optional::Ref<'de>) -> ::core::option::Option<Self> {
3539 if let Some(inner) = wire.into_option() {
3540 Some(::fidl_next::FromWire::from_wire(inner))
3541 } else {
3542 None
3543 }
3544 }
3545 }
3546
3547 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>> for Box<Ref> {
3548 #[inline]
3549 fn from_wire_option(wire: crate::wire_optional::Ref<'de>) -> ::core::option::Option<Self> {
3550 <Ref as ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>>>::from_wire_option(
3551 wire,
3552 )
3553 .map(Box::new)
3554 }
3555 }
3556
3557 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Ref<'de>> for Box<Ref> {
3558 #[inline]
3559 fn from_wire_option_ref(
3560 wire: &crate::wire_optional::Ref<'de>,
3561 ) -> ::core::option::Option<Self> {
3562 if let Some(inner) = wire.as_ref() {
3563 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
3564 } else {
3565 None
3566 }
3567 }
3568 }
3569
3570 #[doc = " Declares a storage capability backed by a directory from which data, cache,\n or meta storage can be offered.\n"]
3571 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3572 pub struct Storage {
3573 pub name: ::core::option::Option<::std::string::String>,
3574
3575 pub source: ::core::option::Option<crate::natural::Ref>,
3576
3577 pub backing_dir: ::core::option::Option<::std::string::String>,
3578
3579 pub subdir: ::core::option::Option<::std::string::String>,
3580
3581 pub storage_id: ::core::option::Option<crate::natural::StorageId>,
3582 }
3583
3584 impl Storage {
3585 fn __max_ordinal(&self) -> usize {
3586 if self.storage_id.is_some() {
3587 return 5;
3588 }
3589
3590 if self.subdir.is_some() {
3591 return 4;
3592 }
3593
3594 if self.backing_dir.is_some() {
3595 return 3;
3596 }
3597
3598 if self.source.is_some() {
3599 return 2;
3600 }
3601
3602 if self.name.is_some() {
3603 return 1;
3604 }
3605
3606 0
3607 }
3608 }
3609
3610 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Storage<'static>, ___E> for Storage
3611 where
3612 ___E: ::fidl_next::Encoder + ?Sized,
3613 {
3614 #[inline]
3615 fn encode(
3616 mut self,
3617 encoder: &mut ___E,
3618 out: &mut ::core::mem::MaybeUninit<crate::wire::Storage<'static>>,
3619 _: (),
3620 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3621 ::fidl_next::munge!(let crate::wire::Storage { table } = out);
3622
3623 let max_ord = self.__max_ordinal();
3624
3625 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3626 ::fidl_next::Wire::zero_padding(&mut out);
3627
3628 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3629 ::fidl_next::wire::Envelope,
3630 >(encoder, max_ord);
3631
3632 for i in 1..=max_ord {
3633 match i {
3634 5 => {
3635 if let Some(value) = self.storage_id.take() {
3636 ::fidl_next::wire::Envelope::encode_value::<
3637 crate::wire::StorageId,
3638 ___E,
3639 >(
3640 value, preallocated.encoder, &mut out, ()
3641 )?;
3642 } else {
3643 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3644 }
3645 }
3646
3647 4 => {
3648 if let Some(value) = self.subdir.take() {
3649 ::fidl_next::wire::Envelope::encode_value::<
3650 ::fidl_next::wire::String<'static>,
3651 ___E,
3652 >(
3653 value, preallocated.encoder, &mut out, 1024
3654 )?;
3655 } else {
3656 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3657 }
3658 }
3659
3660 3 => {
3661 if let Some(value) = self.backing_dir.take() {
3662 ::fidl_next::wire::Envelope::encode_value::<
3663 ::fidl_next::wire::String<'static>,
3664 ___E,
3665 >(
3666 value, preallocated.encoder, &mut out, 100
3667 )?;
3668 } else {
3669 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3670 }
3671 }
3672
3673 2 => {
3674 if let Some(value) = self.source.take() {
3675 ::fidl_next::wire::Envelope::encode_value::<
3676 crate::wire::Ref<'static>,
3677 ___E,
3678 >(
3679 value, preallocated.encoder, &mut out, ()
3680 )?;
3681 } else {
3682 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3683 }
3684 }
3685
3686 1 => {
3687 if let Some(value) = self.name.take() {
3688 ::fidl_next::wire::Envelope::encode_value::<
3689 ::fidl_next::wire::String<'static>,
3690 ___E,
3691 >(
3692 value, preallocated.encoder, &mut out, 100
3693 )?;
3694 } else {
3695 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3696 }
3697 }
3698
3699 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3700 }
3701 unsafe {
3702 preallocated.write_next(out.assume_init_ref());
3703 }
3704 }
3705
3706 ::fidl_next::wire::Table::encode_len(table, max_ord);
3707
3708 Ok(())
3709 }
3710 }
3711
3712 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Storage<'static>, ___E> for &'a Storage
3713 where
3714 ___E: ::fidl_next::Encoder + ?Sized,
3715 {
3716 #[inline]
3717 fn encode(
3718 self,
3719 encoder: &mut ___E,
3720 out: &mut ::core::mem::MaybeUninit<crate::wire::Storage<'static>>,
3721 _: (),
3722 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3723 ::fidl_next::munge!(let crate::wire::Storage { table } = out);
3724
3725 let max_ord = self.__max_ordinal();
3726
3727 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3728 ::fidl_next::Wire::zero_padding(&mut out);
3729
3730 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3731 ::fidl_next::wire::Envelope,
3732 >(encoder, max_ord);
3733
3734 for i in 1..=max_ord {
3735 match i {
3736 5 => {
3737 if let Some(value) = &self.storage_id {
3738 ::fidl_next::wire::Envelope::encode_value::<
3739 crate::wire::StorageId,
3740 ___E,
3741 >(
3742 value, preallocated.encoder, &mut out, ()
3743 )?;
3744 } else {
3745 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3746 }
3747 }
3748
3749 4 => {
3750 if let Some(value) = &self.subdir {
3751 ::fidl_next::wire::Envelope::encode_value::<
3752 ::fidl_next::wire::String<'static>,
3753 ___E,
3754 >(
3755 value, preallocated.encoder, &mut out, 1024
3756 )?;
3757 } else {
3758 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3759 }
3760 }
3761
3762 3 => {
3763 if let Some(value) = &self.backing_dir {
3764 ::fidl_next::wire::Envelope::encode_value::<
3765 ::fidl_next::wire::String<'static>,
3766 ___E,
3767 >(
3768 value, preallocated.encoder, &mut out, 100
3769 )?;
3770 } else {
3771 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3772 }
3773 }
3774
3775 2 => {
3776 if let Some(value) = &self.source {
3777 ::fidl_next::wire::Envelope::encode_value::<
3778 crate::wire::Ref<'static>,
3779 ___E,
3780 >(
3781 value, preallocated.encoder, &mut out, ()
3782 )?;
3783 } else {
3784 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3785 }
3786 }
3787
3788 1 => {
3789 if let Some(value) = &self.name {
3790 ::fidl_next::wire::Envelope::encode_value::<
3791 ::fidl_next::wire::String<'static>,
3792 ___E,
3793 >(
3794 value, preallocated.encoder, &mut out, 100
3795 )?;
3796 } else {
3797 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3798 }
3799 }
3800
3801 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3802 }
3803 unsafe {
3804 preallocated.write_next(out.assume_init_ref());
3805 }
3806 }
3807
3808 ::fidl_next::wire::Table::encode_len(table, max_ord);
3809
3810 Ok(())
3811 }
3812 }
3813
3814 impl<'de> ::fidl_next::FromWire<crate::wire::Storage<'de>> for Storage {
3815 #[inline]
3816 fn from_wire(wire_: crate::wire::Storage<'de>) -> Self {
3817 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
3818
3819 let name = wire_.table.get(1);
3820
3821 let source = wire_.table.get(2);
3822
3823 let backing_dir = wire_.table.get(3);
3824
3825 let subdir = wire_.table.get(4);
3826
3827 let storage_id = wire_.table.get(5);
3828
3829 Self {
3830 name: name.map(|envelope| {
3831 ::fidl_next::FromWire::from_wire(unsafe {
3832 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3833 })
3834 }),
3835
3836 source: source.map(|envelope| {
3837 ::fidl_next::FromWire::from_wire(unsafe {
3838 envelope.read_unchecked::<crate::wire::Ref<'de>>()
3839 })
3840 }),
3841
3842 backing_dir: backing_dir.map(|envelope| {
3843 ::fidl_next::FromWire::from_wire(unsafe {
3844 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3845 })
3846 }),
3847
3848 subdir: subdir.map(|envelope| {
3849 ::fidl_next::FromWire::from_wire(unsafe {
3850 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3851 })
3852 }),
3853
3854 storage_id: storage_id.map(|envelope| {
3855 ::fidl_next::FromWire::from_wire(unsafe {
3856 envelope.read_unchecked::<crate::wire::StorageId>()
3857 })
3858 }),
3859 }
3860 }
3861 }
3862
3863 impl<'de> ::fidl_next::FromWireRef<crate::wire::Storage<'de>> for Storage {
3864 #[inline]
3865 fn from_wire_ref(wire: &crate::wire::Storage<'de>) -> Self {
3866 Self {
3867 name: wire.table.get(1).map(|envelope| {
3868 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3869 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3870 })
3871 }),
3872
3873 source: wire.table.get(2).map(|envelope| {
3874 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3875 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
3876 })
3877 }),
3878
3879 backing_dir: wire.table.get(3).map(|envelope| {
3880 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3881 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3882 })
3883 }),
3884
3885 subdir: wire.table.get(4).map(|envelope| {
3886 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3887 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3888 })
3889 }),
3890
3891 storage_id: wire.table.get(5).map(|envelope| {
3892 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3893 envelope.deref_unchecked::<crate::wire::StorageId>()
3894 })
3895 }),
3896 }
3897 }
3898 }
3899
3900 #[doc = " Declares a dictionary capability.\n"]
3901 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3902 pub struct Dictionary {
3903 pub name: ::core::option::Option<::std::string::String>,
3904
3905 pub source: ::core::option::Option<crate::natural::Ref>,
3906
3907 pub source_dictionary: ::core::option::Option<::std::string::String>,
3908
3909 pub source_path: ::core::option::Option<::std::string::String>,
3910 }
3911
3912 impl Dictionary {
3913 fn __max_ordinal(&self) -> usize {
3914 if self.source_path.is_some() {
3915 return 4;
3916 }
3917
3918 if self.source_dictionary.is_some() {
3919 return 3;
3920 }
3921
3922 if self.source.is_some() {
3923 return 2;
3924 }
3925
3926 if self.name.is_some() {
3927 return 1;
3928 }
3929
3930 0
3931 }
3932 }
3933
3934 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Dictionary<'static>, ___E> for Dictionary
3935 where
3936 ___E: ::fidl_next::Encoder + ?Sized,
3937 {
3938 #[inline]
3939 fn encode(
3940 mut self,
3941 encoder: &mut ___E,
3942 out: &mut ::core::mem::MaybeUninit<crate::wire::Dictionary<'static>>,
3943 _: (),
3944 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3945 ::fidl_next::munge!(let crate::wire::Dictionary { table } = out);
3946
3947 let max_ord = self.__max_ordinal();
3948
3949 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3950 ::fidl_next::Wire::zero_padding(&mut out);
3951
3952 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3953 ::fidl_next::wire::Envelope,
3954 >(encoder, max_ord);
3955
3956 for i in 1..=max_ord {
3957 match i {
3958 4 => {
3959 if let Some(value) = self.source_path.take() {
3960 ::fidl_next::wire::Envelope::encode_value::<
3961 ::fidl_next::wire::String<'static>,
3962 ___E,
3963 >(
3964 value, preallocated.encoder, &mut out, 1024
3965 )?;
3966 } else {
3967 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3968 }
3969 }
3970
3971 3 => {
3972 if let Some(value) = self.source_dictionary.take() {
3973 ::fidl_next::wire::Envelope::encode_value::<
3974 ::fidl_next::wire::String<'static>,
3975 ___E,
3976 >(
3977 value, preallocated.encoder, &mut out, 1024
3978 )?;
3979 } else {
3980 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3981 }
3982 }
3983
3984 2 => {
3985 if let Some(value) = self.source.take() {
3986 ::fidl_next::wire::Envelope::encode_value::<
3987 crate::wire::Ref<'static>,
3988 ___E,
3989 >(
3990 value, preallocated.encoder, &mut out, ()
3991 )?;
3992 } else {
3993 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3994 }
3995 }
3996
3997 1 => {
3998 if let Some(value) = self.name.take() {
3999 ::fidl_next::wire::Envelope::encode_value::<
4000 ::fidl_next::wire::String<'static>,
4001 ___E,
4002 >(
4003 value, preallocated.encoder, &mut out, 100
4004 )?;
4005 } else {
4006 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4007 }
4008 }
4009
4010 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4011 }
4012 unsafe {
4013 preallocated.write_next(out.assume_init_ref());
4014 }
4015 }
4016
4017 ::fidl_next::wire::Table::encode_len(table, max_ord);
4018
4019 Ok(())
4020 }
4021 }
4022
4023 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Dictionary<'static>, ___E> for &'a Dictionary
4024 where
4025 ___E: ::fidl_next::Encoder + ?Sized,
4026 {
4027 #[inline]
4028 fn encode(
4029 self,
4030 encoder: &mut ___E,
4031 out: &mut ::core::mem::MaybeUninit<crate::wire::Dictionary<'static>>,
4032 _: (),
4033 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4034 ::fidl_next::munge!(let crate::wire::Dictionary { table } = out);
4035
4036 let max_ord = self.__max_ordinal();
4037
4038 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4039 ::fidl_next::Wire::zero_padding(&mut out);
4040
4041 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4042 ::fidl_next::wire::Envelope,
4043 >(encoder, max_ord);
4044
4045 for i in 1..=max_ord {
4046 match i {
4047 4 => {
4048 if let Some(value) = &self.source_path {
4049 ::fidl_next::wire::Envelope::encode_value::<
4050 ::fidl_next::wire::String<'static>,
4051 ___E,
4052 >(
4053 value, preallocated.encoder, &mut out, 1024
4054 )?;
4055 } else {
4056 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4057 }
4058 }
4059
4060 3 => {
4061 if let Some(value) = &self.source_dictionary {
4062 ::fidl_next::wire::Envelope::encode_value::<
4063 ::fidl_next::wire::String<'static>,
4064 ___E,
4065 >(
4066 value, preallocated.encoder, &mut out, 1024
4067 )?;
4068 } else {
4069 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4070 }
4071 }
4072
4073 2 => {
4074 if let Some(value) = &self.source {
4075 ::fidl_next::wire::Envelope::encode_value::<
4076 crate::wire::Ref<'static>,
4077 ___E,
4078 >(
4079 value, preallocated.encoder, &mut out, ()
4080 )?;
4081 } else {
4082 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4083 }
4084 }
4085
4086 1 => {
4087 if let Some(value) = &self.name {
4088 ::fidl_next::wire::Envelope::encode_value::<
4089 ::fidl_next::wire::String<'static>,
4090 ___E,
4091 >(
4092 value, preallocated.encoder, &mut out, 100
4093 )?;
4094 } else {
4095 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4096 }
4097 }
4098
4099 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4100 }
4101 unsafe {
4102 preallocated.write_next(out.assume_init_ref());
4103 }
4104 }
4105
4106 ::fidl_next::wire::Table::encode_len(table, max_ord);
4107
4108 Ok(())
4109 }
4110 }
4111
4112 impl<'de> ::fidl_next::FromWire<crate::wire::Dictionary<'de>> for Dictionary {
4113 #[inline]
4114 fn from_wire(wire_: crate::wire::Dictionary<'de>) -> Self {
4115 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
4116
4117 let name = wire_.table.get(1);
4118
4119 let source = wire_.table.get(2);
4120
4121 let source_dictionary = wire_.table.get(3);
4122
4123 let source_path = wire_.table.get(4);
4124
4125 Self {
4126 name: name.map(|envelope| {
4127 ::fidl_next::FromWire::from_wire(unsafe {
4128 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4129 })
4130 }),
4131
4132 source: source.map(|envelope| {
4133 ::fidl_next::FromWire::from_wire(unsafe {
4134 envelope.read_unchecked::<crate::wire::Ref<'de>>()
4135 })
4136 }),
4137
4138 source_dictionary: source_dictionary.map(|envelope| {
4139 ::fidl_next::FromWire::from_wire(unsafe {
4140 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4141 })
4142 }),
4143
4144 source_path: source_path.map(|envelope| {
4145 ::fidl_next::FromWire::from_wire(unsafe {
4146 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4147 })
4148 }),
4149 }
4150 }
4151 }
4152
4153 impl<'de> ::fidl_next::FromWireRef<crate::wire::Dictionary<'de>> for Dictionary {
4154 #[inline]
4155 fn from_wire_ref(wire: &crate::wire::Dictionary<'de>) -> Self {
4156 Self {
4157 name: wire.table.get(1).map(|envelope| {
4158 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4159 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4160 })
4161 }),
4162
4163 source: wire.table.get(2).map(|envelope| {
4164 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4165 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
4166 })
4167 }),
4168
4169 source_dictionary: wire.table.get(3).map(|envelope| {
4170 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4171 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4172 })
4173 }),
4174
4175 source_path: wire.table.get(4).map(|envelope| {
4176 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4177 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4178 })
4179 }),
4180 }
4181 }
4182 }
4183
4184 #[doc = " Declares a capability defined by this component.\n"]
4185 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4186 pub enum Capability {
4187 Service(crate::natural::Service),
4188
4189 Protocol(crate::natural::Protocol),
4190
4191 Directory(crate::natural::Directory),
4192
4193 Storage(crate::natural::Storage),
4194
4195 Runner(crate::natural::Runner),
4196
4197 Resolver(crate::natural::Resolver),
4198
4199 EventStream(crate::natural::EventStream),
4200
4201 Dictionary(crate::natural::Dictionary),
4202
4203 Config(crate::natural::Configuration),
4204
4205 UnknownOrdinal_(u64),
4206 }
4207
4208 impl Capability {
4209 pub fn is_unknown(&self) -> bool {
4210 #[allow(unreachable_patterns)]
4211 match self {
4212 Self::UnknownOrdinal_(_) => true,
4213 _ => false,
4214 }
4215 }
4216 }
4217
4218 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Capability<'static>, ___E> for Capability
4219 where
4220 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4221 ___E: ::fidl_next::Encoder,
4222 {
4223 #[inline]
4224 fn encode(
4225 self,
4226 encoder: &mut ___E,
4227 out: &mut ::core::mem::MaybeUninit<crate::wire::Capability<'static>>,
4228 _: (),
4229 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4230 ::fidl_next::munge!(let crate::wire::Capability { raw, _phantom: _ } = out);
4231
4232 match self {
4233 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
4234 ___E,
4235 crate::wire::Service<'static>,
4236 >(value, 1, encoder, raw, ())?,
4237
4238 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
4239 ___E,
4240 crate::wire::Protocol<'static>,
4241 >(value, 2, encoder, raw, ())?,
4242
4243 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
4244 ___E,
4245 crate::wire::Directory<'static>,
4246 >(value, 3, encoder, raw, ())?,
4247
4248 Self::Storage(value) => ::fidl_next::wire::Union::encode_as::<
4249 ___E,
4250 crate::wire::Storage<'static>,
4251 >(value, 4, encoder, raw, ())?,
4252
4253 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
4254 ___E,
4255 crate::wire::Runner<'static>,
4256 >(value, 5, encoder, raw, ())?,
4257
4258 Self::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
4259 ___E,
4260 crate::wire::Resolver<'static>,
4261 >(value, 6, encoder, raw, ())?,
4262
4263 Self::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
4264 ___E,
4265 crate::wire::EventStream<'static>,
4266 >(value, 8, encoder, raw, ())?,
4267
4268 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
4269 ___E,
4270 crate::wire::Dictionary<'static>,
4271 >(value, 9, encoder, raw, ())?,
4272
4273 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
4274 ___E,
4275 crate::wire::Configuration<'static>,
4276 >(value, 10, encoder, raw, ())?,
4277
4278 Self::UnknownOrdinal_(ordinal) => {
4279 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
4280 }
4281 }
4282
4283 Ok(())
4284 }
4285 }
4286
4287 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Capability<'static>, ___E> for &'a Capability
4288 where
4289 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4290 ___E: ::fidl_next::Encoder,
4291 {
4292 #[inline]
4293 fn encode(
4294 self,
4295 encoder: &mut ___E,
4296 out: &mut ::core::mem::MaybeUninit<crate::wire::Capability<'static>>,
4297 _: (),
4298 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4299 ::fidl_next::munge!(let crate::wire::Capability { raw, _phantom: _ } = out);
4300
4301 match self {
4302 Capability::Service(value) => ::fidl_next::wire::Union::encode_as::<
4303 ___E,
4304 crate::wire::Service<'static>,
4305 >(value, 1, encoder, raw, ())?,
4306
4307 Capability::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
4308 ___E,
4309 crate::wire::Protocol<'static>,
4310 >(value, 2, encoder, raw, ())?,
4311
4312 Capability::Directory(value) => ::fidl_next::wire::Union::encode_as::<
4313 ___E,
4314 crate::wire::Directory<'static>,
4315 >(value, 3, encoder, raw, ())?,
4316
4317 Capability::Storage(value) => ::fidl_next::wire::Union::encode_as::<
4318 ___E,
4319 crate::wire::Storage<'static>,
4320 >(value, 4, encoder, raw, ())?,
4321
4322 Capability::Runner(value) => ::fidl_next::wire::Union::encode_as::<
4323 ___E,
4324 crate::wire::Runner<'static>,
4325 >(value, 5, encoder, raw, ())?,
4326
4327 Capability::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
4328 ___E,
4329 crate::wire::Resolver<'static>,
4330 >(value, 6, encoder, raw, ())?,
4331
4332 Capability::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
4333 ___E,
4334 crate::wire::EventStream<'static>,
4335 >(value, 8, encoder, raw, ())?,
4336
4337 Capability::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
4338 ___E,
4339 crate::wire::Dictionary<'static>,
4340 >(value, 9, encoder, raw, ())?,
4341
4342 Capability::Config(value) => ::fidl_next::wire::Union::encode_as::<
4343 ___E,
4344 crate::wire::Configuration<'static>,
4345 >(value, 10, encoder, raw, ())?,
4346
4347 Capability::UnknownOrdinal_(ordinal) => {
4348 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
4349 }
4350 }
4351
4352 Ok(())
4353 }
4354 }
4355
4356 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Capability<'static>, ___E>
4357 for Capability
4358 where
4359 ___E: ?Sized,
4360 Capability: ::fidl_next::Encode<crate::wire::Capability<'static>, ___E>,
4361 {
4362 #[inline]
4363 fn encode_option(
4364 this: ::core::option::Option<Self>,
4365 encoder: &mut ___E,
4366 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Capability<'static>>,
4367 _: (),
4368 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4369 ::fidl_next::munge!(let crate::wire_optional::Capability { raw, _phantom: _ } = &mut *out);
4370
4371 if let Some(inner) = this {
4372 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4373 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4374 } else {
4375 ::fidl_next::wire::Union::encode_absent(raw);
4376 }
4377
4378 Ok(())
4379 }
4380 }
4381
4382 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Capability<'static>, ___E>
4383 for &'a Capability
4384 where
4385 ___E: ?Sized,
4386 &'a Capability: ::fidl_next::Encode<crate::wire::Capability<'static>, ___E>,
4387 {
4388 #[inline]
4389 fn encode_option(
4390 this: ::core::option::Option<Self>,
4391 encoder: &mut ___E,
4392 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Capability<'static>>,
4393 _: (),
4394 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4395 ::fidl_next::munge!(let crate::wire_optional::Capability { raw, _phantom: _ } = &mut *out);
4396
4397 if let Some(inner) = this {
4398 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4399 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4400 } else {
4401 ::fidl_next::wire::Union::encode_absent(raw);
4402 }
4403
4404 Ok(())
4405 }
4406 }
4407
4408 impl<'de> ::fidl_next::FromWire<crate::wire::Capability<'de>> for Capability {
4409 #[inline]
4410 fn from_wire(wire: crate::wire::Capability<'de>) -> Self {
4411 let wire = ::core::mem::ManuallyDrop::new(wire);
4412 match wire.raw.ordinal() {
4413 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
4414 wire.raw.get().read_unchecked::<crate::wire::Service<'de>>()
4415 })),
4416
4417 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
4418 wire.raw.get().read_unchecked::<crate::wire::Protocol<'de>>()
4419 })),
4420
4421 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
4422 wire.raw.get().read_unchecked::<crate::wire::Directory<'de>>()
4423 })),
4424
4425 4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
4426 wire.raw.get().read_unchecked::<crate::wire::Storage<'de>>()
4427 })),
4428
4429 5 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
4430 wire.raw.get().read_unchecked::<crate::wire::Runner<'de>>()
4431 })),
4432
4433 6 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
4434 wire.raw.get().read_unchecked::<crate::wire::Resolver<'de>>()
4435 })),
4436
4437 8 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
4438 wire.raw.get().read_unchecked::<crate::wire::EventStream<'de>>()
4439 })),
4440
4441 9 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
4442 wire.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>()
4443 })),
4444
4445 10 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
4446 wire.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
4447 })),
4448
4449 ord => return Self::UnknownOrdinal_(ord as u64),
4450 }
4451 }
4452 }
4453
4454 impl<'de> ::fidl_next::FromWireRef<crate::wire::Capability<'de>> for Capability {
4455 #[inline]
4456 fn from_wire_ref(wire: &crate::wire::Capability<'de>) -> Self {
4457 match wire.raw.ordinal() {
4458 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4459 wire.raw.get().deref_unchecked::<crate::wire::Service<'de>>()
4460 })),
4461
4462 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4463 wire.raw.get().deref_unchecked::<crate::wire::Protocol<'de>>()
4464 })),
4465
4466 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4467 wire.raw.get().deref_unchecked::<crate::wire::Directory<'de>>()
4468 })),
4469
4470 4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4471 wire.raw.get().deref_unchecked::<crate::wire::Storage<'de>>()
4472 })),
4473
4474 5 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4475 wire.raw.get().deref_unchecked::<crate::wire::Runner<'de>>()
4476 })),
4477
4478 6 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4479 wire.raw.get().deref_unchecked::<crate::wire::Resolver<'de>>()
4480 })),
4481
4482 8 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4483 wire.raw.get().deref_unchecked::<crate::wire::EventStream<'de>>()
4484 })),
4485
4486 9 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4487 wire.raw.get().deref_unchecked::<crate::wire::Dictionary<'de>>()
4488 })),
4489
4490 10 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4491 wire.raw.get().deref_unchecked::<crate::wire::Configuration<'de>>()
4492 })),
4493
4494 ord => return Self::UnknownOrdinal_(ord as u64),
4495 }
4496 }
4497 }
4498
4499 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>> for Capability {
4500 #[inline]
4501 fn from_wire_option(
4502 wire: crate::wire_optional::Capability<'de>,
4503 ) -> ::core::option::Option<Self> {
4504 if let Some(inner) = wire.into_option() {
4505 Some(::fidl_next::FromWire::from_wire(inner))
4506 } else {
4507 None
4508 }
4509 }
4510 }
4511
4512 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>> for Box<Capability> {
4513 #[inline]
4514 fn from_wire_option(
4515 wire: crate::wire_optional::Capability<'de>,
4516 ) -> ::core::option::Option<Self> {
4517 <
4518 Capability as ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>>
4519 >::from_wire_option(wire).map(Box::new)
4520 }
4521 }
4522
4523 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Capability<'de>>
4524 for Box<Capability>
4525 {
4526 #[inline]
4527 fn from_wire_option_ref(
4528 wire: &crate::wire_optional::Capability<'de>,
4529 ) -> ::core::option::Option<Self> {
4530 if let Some(inner) = wire.as_ref() {
4531 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
4532 } else {
4533 None
4534 }
4535 }
4536 }
4537
4538 #[doc = " Describes under what conditions the component may be started.\n"]
4539 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4540 #[repr(u32)]
4541 pub enum StartupMode {
4542 Lazy = 0,
4543 Eager = 1,
4544 }
4545 impl ::core::convert::TryFrom<u32> for StartupMode {
4546 type Error = ::fidl_next::UnknownStrictEnumMemberError;
4547 fn try_from(
4548 value: u32,
4549 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
4550 match value {
4551 0 => Ok(Self::Lazy),
4552 1 => Ok(Self::Eager),
4553
4554 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
4555 }
4556 }
4557 }
4558
4559 unsafe impl<___E> ::fidl_next::Encode<crate::wire::StartupMode, ___E> for StartupMode
4560 where
4561 ___E: ?Sized,
4562 {
4563 #[inline]
4564 fn encode(
4565 self,
4566 encoder: &mut ___E,
4567 out: &mut ::core::mem::MaybeUninit<crate::wire::StartupMode>,
4568 _: (),
4569 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4570 ::fidl_next::Encode::encode(&self, encoder, out, ())
4571 }
4572 }
4573
4574 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::StartupMode, ___E> for &'a StartupMode
4575 where
4576 ___E: ?Sized,
4577 {
4578 #[inline]
4579 fn encode(
4580 self,
4581 encoder: &mut ___E,
4582 out: &mut ::core::mem::MaybeUninit<crate::wire::StartupMode>,
4583 _: (),
4584 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4585 ::fidl_next::munge!(let crate::wire::StartupMode { value } = out);
4586 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
4587 StartupMode::Lazy => 0,
4588
4589 StartupMode::Eager => 1,
4590 }));
4591
4592 Ok(())
4593 }
4594 }
4595
4596 impl ::core::convert::From<crate::wire::StartupMode> for StartupMode {
4597 fn from(wire: crate::wire::StartupMode) -> Self {
4598 match u32::from(wire.value) {
4599 0 => Self::Lazy,
4600
4601 1 => Self::Eager,
4602
4603 _ => unsafe { ::core::hint::unreachable_unchecked() },
4604 }
4605 }
4606 }
4607
4608 impl ::fidl_next::FromWire<crate::wire::StartupMode> for StartupMode {
4609 #[inline]
4610 fn from_wire(wire: crate::wire::StartupMode) -> Self {
4611 Self::from(wire)
4612 }
4613 }
4614
4615 impl ::fidl_next::FromWireRef<crate::wire::StartupMode> for StartupMode {
4616 #[inline]
4617 fn from_wire_ref(wire: &crate::wire::StartupMode) -> Self {
4618 Self::from(*wire)
4619 }
4620 }
4621
4622 #[doc = " Describes the action to take if this component instance terminates\n unexpectedly.\n"]
4623 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4624 #[repr(u32)]
4625 pub enum OnTerminate {
4626 None = 0,
4627 Reboot = 1,
4628 }
4629 impl ::core::convert::TryFrom<u32> for OnTerminate {
4630 type Error = ::fidl_next::UnknownStrictEnumMemberError;
4631 fn try_from(
4632 value: u32,
4633 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
4634 match value {
4635 0 => Ok(Self::None),
4636 1 => Ok(Self::Reboot),
4637
4638 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
4639 }
4640 }
4641 }
4642
4643 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OnTerminate, ___E> for OnTerminate
4644 where
4645 ___E: ?Sized,
4646 {
4647 #[inline]
4648 fn encode(
4649 self,
4650 encoder: &mut ___E,
4651 out: &mut ::core::mem::MaybeUninit<crate::wire::OnTerminate>,
4652 _: (),
4653 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4654 ::fidl_next::Encode::encode(&self, encoder, out, ())
4655 }
4656 }
4657
4658 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OnTerminate, ___E> for &'a OnTerminate
4659 where
4660 ___E: ?Sized,
4661 {
4662 #[inline]
4663 fn encode(
4664 self,
4665 encoder: &mut ___E,
4666 out: &mut ::core::mem::MaybeUninit<crate::wire::OnTerminate>,
4667 _: (),
4668 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4669 ::fidl_next::munge!(let crate::wire::OnTerminate { value } = out);
4670 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
4671 OnTerminate::None => 0,
4672
4673 OnTerminate::Reboot => 1,
4674 }));
4675
4676 Ok(())
4677 }
4678 }
4679
4680 impl ::core::convert::From<crate::wire::OnTerminate> for OnTerminate {
4681 fn from(wire: crate::wire::OnTerminate) -> Self {
4682 match u32::from(wire.value) {
4683 0 => Self::None,
4684
4685 1 => Self::Reboot,
4686
4687 _ => unsafe { ::core::hint::unreachable_unchecked() },
4688 }
4689 }
4690 }
4691
4692 impl ::fidl_next::FromWire<crate::wire::OnTerminate> for OnTerminate {
4693 #[inline]
4694 fn from_wire(wire: crate::wire::OnTerminate) -> Self {
4695 Self::from(wire)
4696 }
4697 }
4698
4699 impl ::fidl_next::FromWireRef<crate::wire::OnTerminate> for OnTerminate {
4700 #[inline]
4701 fn from_wire_ref(wire: &crate::wire::OnTerminate) -> Self {
4702 Self::from(*wire)
4703 }
4704 }
4705
4706 #[doc = " The string identifier for a config field.\n"]
4707 pub type ConfigKey = ::std::string::String;
4708
4709 #[doc = " A directive to override the value of a particular configuration field in the child.\n"]
4710 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4711 pub struct ConfigOverride {
4712 pub key: ::core::option::Option<::std::string::String>,
4713
4714 pub value: ::core::option::Option<crate::natural::ConfigValue>,
4715 }
4716
4717 impl ConfigOverride {
4718 fn __max_ordinal(&self) -> usize {
4719 if self.value.is_some() {
4720 return 2;
4721 }
4722
4723 if self.key.is_some() {
4724 return 1;
4725 }
4726
4727 0
4728 }
4729 }
4730
4731 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigOverride<'static>, ___E> for ConfigOverride
4732 where
4733 ___E: ::fidl_next::Encoder + ?Sized,
4734 {
4735 #[inline]
4736 fn encode(
4737 mut self,
4738 encoder: &mut ___E,
4739 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigOverride<'static>>,
4740 _: (),
4741 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4742 ::fidl_next::munge!(let crate::wire::ConfigOverride { table } = out);
4743
4744 let max_ord = self.__max_ordinal();
4745
4746 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4747 ::fidl_next::Wire::zero_padding(&mut out);
4748
4749 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4750 ::fidl_next::wire::Envelope,
4751 >(encoder, max_ord);
4752
4753 for i in 1..=max_ord {
4754 match i {
4755 2 => {
4756 if let Some(value) = self.value.take() {
4757 ::fidl_next::wire::Envelope::encode_value::<
4758 crate::wire::ConfigValue<'static>,
4759 ___E,
4760 >(
4761 value, preallocated.encoder, &mut out, ()
4762 )?;
4763 } else {
4764 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4765 }
4766 }
4767
4768 1 => {
4769 if let Some(value) = self.key.take() {
4770 ::fidl_next::wire::Envelope::encode_value::<
4771 ::fidl_next::wire::String<'static>,
4772 ___E,
4773 >(
4774 value, preallocated.encoder, &mut out, 64
4775 )?;
4776 } else {
4777 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4778 }
4779 }
4780
4781 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4782 }
4783 unsafe {
4784 preallocated.write_next(out.assume_init_ref());
4785 }
4786 }
4787
4788 ::fidl_next::wire::Table::encode_len(table, max_ord);
4789
4790 Ok(())
4791 }
4792 }
4793
4794 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigOverride<'static>, ___E>
4795 for &'a ConfigOverride
4796 where
4797 ___E: ::fidl_next::Encoder + ?Sized,
4798 {
4799 #[inline]
4800 fn encode(
4801 self,
4802 encoder: &mut ___E,
4803 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigOverride<'static>>,
4804 _: (),
4805 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4806 ::fidl_next::munge!(let crate::wire::ConfigOverride { table } = out);
4807
4808 let max_ord = self.__max_ordinal();
4809
4810 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4811 ::fidl_next::Wire::zero_padding(&mut out);
4812
4813 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4814 ::fidl_next::wire::Envelope,
4815 >(encoder, max_ord);
4816
4817 for i in 1..=max_ord {
4818 match i {
4819 2 => {
4820 if let Some(value) = &self.value {
4821 ::fidl_next::wire::Envelope::encode_value::<
4822 crate::wire::ConfigValue<'static>,
4823 ___E,
4824 >(
4825 value, preallocated.encoder, &mut out, ()
4826 )?;
4827 } else {
4828 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4829 }
4830 }
4831
4832 1 => {
4833 if let Some(value) = &self.key {
4834 ::fidl_next::wire::Envelope::encode_value::<
4835 ::fidl_next::wire::String<'static>,
4836 ___E,
4837 >(
4838 value, preallocated.encoder, &mut out, 64
4839 )?;
4840 } else {
4841 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4842 }
4843 }
4844
4845 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4846 }
4847 unsafe {
4848 preallocated.write_next(out.assume_init_ref());
4849 }
4850 }
4851
4852 ::fidl_next::wire::Table::encode_len(table, max_ord);
4853
4854 Ok(())
4855 }
4856 }
4857
4858 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigOverride<'de>> for ConfigOverride {
4859 #[inline]
4860 fn from_wire(wire_: crate::wire::ConfigOverride<'de>) -> Self {
4861 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
4862
4863 let key = wire_.table.get(1);
4864
4865 let value = wire_.table.get(2);
4866
4867 Self {
4868 key: key.map(|envelope| {
4869 ::fidl_next::FromWire::from_wire(unsafe {
4870 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4871 })
4872 }),
4873
4874 value: value.map(|envelope| {
4875 ::fidl_next::FromWire::from_wire(unsafe {
4876 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
4877 })
4878 }),
4879 }
4880 }
4881 }
4882
4883 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigOverride<'de>> for ConfigOverride {
4884 #[inline]
4885 fn from_wire_ref(wire: &crate::wire::ConfigOverride<'de>) -> Self {
4886 Self {
4887 key: wire.table.get(1).map(|envelope| {
4888 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4889 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4890 })
4891 }),
4892
4893 value: wire.table.get(2).map(|envelope| {
4894 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4895 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
4896 })
4897 }),
4898 }
4899 }
4900 }
4901
4902 #[doc = " Statically declares a child component instance.\n"]
4903 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4904 pub struct Child {
4905 pub name: ::core::option::Option<::std::string::String>,
4906
4907 pub url: ::core::option::Option<::std::string::String>,
4908
4909 pub startup: ::core::option::Option<crate::natural::StartupMode>,
4910
4911 pub environment: ::core::option::Option<::std::string::String>,
4912
4913 pub on_terminate: ::core::option::Option<crate::natural::OnTerminate>,
4914
4915 pub config_overrides:
4916 ::core::option::Option<::std::vec::Vec<crate::natural::ConfigOverride>>,
4917 }
4918
4919 impl Child {
4920 fn __max_ordinal(&self) -> usize {
4921 if self.config_overrides.is_some() {
4922 return 6;
4923 }
4924
4925 if self.on_terminate.is_some() {
4926 return 5;
4927 }
4928
4929 if self.environment.is_some() {
4930 return 4;
4931 }
4932
4933 if self.startup.is_some() {
4934 return 3;
4935 }
4936
4937 if self.url.is_some() {
4938 return 2;
4939 }
4940
4941 if self.name.is_some() {
4942 return 1;
4943 }
4944
4945 0
4946 }
4947 }
4948
4949 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Child<'static>, ___E> for Child
4950 where
4951 ___E: ::fidl_next::Encoder + ?Sized,
4952 {
4953 #[inline]
4954 fn encode(
4955 mut self,
4956 encoder: &mut ___E,
4957 out: &mut ::core::mem::MaybeUninit<crate::wire::Child<'static>>,
4958 _: (),
4959 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4960 ::fidl_next::munge!(let crate::wire::Child { table } = out);
4961
4962 let max_ord = self.__max_ordinal();
4963
4964 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4965 ::fidl_next::Wire::zero_padding(&mut out);
4966
4967 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4968 ::fidl_next::wire::Envelope,
4969 >(encoder, max_ord);
4970
4971 for i in 1..=max_ord {
4972 match i {
4973 6 => {
4974 if let Some(value) = self.config_overrides.take() {
4975 ::fidl_next::wire::Envelope::encode_value::<
4976 ::fidl_next::wire::Vector<
4977 'static,
4978 crate::wire::ConfigOverride<'static>,
4979 >,
4980 ___E,
4981 >(
4982 value, preallocated.encoder, &mut out, (4294967295, ())
4983 )?;
4984 } else {
4985 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4986 }
4987 }
4988
4989 5 => {
4990 if let Some(value) = self.on_terminate.take() {
4991 ::fidl_next::wire::Envelope::encode_value::<
4992 crate::wire::OnTerminate,
4993 ___E,
4994 >(
4995 value, preallocated.encoder, &mut out, ()
4996 )?;
4997 } else {
4998 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4999 }
5000 }
5001
5002 4 => {
5003 if let Some(value) = self.environment.take() {
5004 ::fidl_next::wire::Envelope::encode_value::<
5005 ::fidl_next::wire::String<'static>,
5006 ___E,
5007 >(
5008 value, preallocated.encoder, &mut out, 100
5009 )?;
5010 } else {
5011 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5012 }
5013 }
5014
5015 3 => {
5016 if let Some(value) = self.startup.take() {
5017 ::fidl_next::wire::Envelope::encode_value::<
5018 crate::wire::StartupMode,
5019 ___E,
5020 >(
5021 value, preallocated.encoder, &mut out, ()
5022 )?;
5023 } else {
5024 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5025 }
5026 }
5027
5028 2 => {
5029 if let Some(value) = self.url.take() {
5030 ::fidl_next::wire::Envelope::encode_value::<
5031 ::fidl_next::wire::String<'static>,
5032 ___E,
5033 >(
5034 value, preallocated.encoder, &mut out, 4096
5035 )?;
5036 } else {
5037 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5038 }
5039 }
5040
5041 1 => {
5042 if let Some(value) = self.name.take() {
5043 ::fidl_next::wire::Envelope::encode_value::<
5044 ::fidl_next::wire::String<'static>,
5045 ___E,
5046 >(
5047 value, preallocated.encoder, &mut out, 1024
5048 )?;
5049 } else {
5050 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5051 }
5052 }
5053
5054 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5055 }
5056 unsafe {
5057 preallocated.write_next(out.assume_init_ref());
5058 }
5059 }
5060
5061 ::fidl_next::wire::Table::encode_len(table, max_ord);
5062
5063 Ok(())
5064 }
5065 }
5066
5067 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Child<'static>, ___E> for &'a Child
5068 where
5069 ___E: ::fidl_next::Encoder + ?Sized,
5070 {
5071 #[inline]
5072 fn encode(
5073 self,
5074 encoder: &mut ___E,
5075 out: &mut ::core::mem::MaybeUninit<crate::wire::Child<'static>>,
5076 _: (),
5077 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5078 ::fidl_next::munge!(let crate::wire::Child { table } = out);
5079
5080 let max_ord = self.__max_ordinal();
5081
5082 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5083 ::fidl_next::Wire::zero_padding(&mut out);
5084
5085 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5086 ::fidl_next::wire::Envelope,
5087 >(encoder, max_ord);
5088
5089 for i in 1..=max_ord {
5090 match i {
5091 6 => {
5092 if let Some(value) = &self.config_overrides {
5093 ::fidl_next::wire::Envelope::encode_value::<
5094 ::fidl_next::wire::Vector<
5095 'static,
5096 crate::wire::ConfigOverride<'static>,
5097 >,
5098 ___E,
5099 >(
5100 value, preallocated.encoder, &mut out, (4294967295, ())
5101 )?;
5102 } else {
5103 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5104 }
5105 }
5106
5107 5 => {
5108 if let Some(value) = &self.on_terminate {
5109 ::fidl_next::wire::Envelope::encode_value::<
5110 crate::wire::OnTerminate,
5111 ___E,
5112 >(
5113 value, preallocated.encoder, &mut out, ()
5114 )?;
5115 } else {
5116 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5117 }
5118 }
5119
5120 4 => {
5121 if let Some(value) = &self.environment {
5122 ::fidl_next::wire::Envelope::encode_value::<
5123 ::fidl_next::wire::String<'static>,
5124 ___E,
5125 >(
5126 value, preallocated.encoder, &mut out, 100
5127 )?;
5128 } else {
5129 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5130 }
5131 }
5132
5133 3 => {
5134 if let Some(value) = &self.startup {
5135 ::fidl_next::wire::Envelope::encode_value::<
5136 crate::wire::StartupMode,
5137 ___E,
5138 >(
5139 value, preallocated.encoder, &mut out, ()
5140 )?;
5141 } else {
5142 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5143 }
5144 }
5145
5146 2 => {
5147 if let Some(value) = &self.url {
5148 ::fidl_next::wire::Envelope::encode_value::<
5149 ::fidl_next::wire::String<'static>,
5150 ___E,
5151 >(
5152 value, preallocated.encoder, &mut out, 4096
5153 )?;
5154 } else {
5155 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5156 }
5157 }
5158
5159 1 => {
5160 if let Some(value) = &self.name {
5161 ::fidl_next::wire::Envelope::encode_value::<
5162 ::fidl_next::wire::String<'static>,
5163 ___E,
5164 >(
5165 value, preallocated.encoder, &mut out, 1024
5166 )?;
5167 } else {
5168 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5169 }
5170 }
5171
5172 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5173 }
5174 unsafe {
5175 preallocated.write_next(out.assume_init_ref());
5176 }
5177 }
5178
5179 ::fidl_next::wire::Table::encode_len(table, max_ord);
5180
5181 Ok(())
5182 }
5183 }
5184
5185 impl<'de> ::fidl_next::FromWire<crate::wire::Child<'de>> for Child {
5186 #[inline]
5187 fn from_wire(wire_: crate::wire::Child<'de>) -> Self {
5188 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5189
5190 let name = wire_.table.get(1);
5191
5192 let url = wire_.table.get(2);
5193
5194 let startup = wire_.table.get(3);
5195
5196 let environment = wire_.table.get(4);
5197
5198 let on_terminate = wire_.table.get(5);
5199
5200 let config_overrides = wire_.table.get(6);
5201
5202 Self {
5203
5204
5205 name: name.map(|envelope| ::fidl_next::FromWire::from_wire(
5206 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
5207 )),
5208
5209
5210 url: url.map(|envelope| ::fidl_next::FromWire::from_wire(
5211 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
5212 )),
5213
5214
5215 startup: startup.map(|envelope| ::fidl_next::FromWire::from_wire(
5216 unsafe { envelope.read_unchecked::<crate::wire::StartupMode>() }
5217 )),
5218
5219
5220 environment: environment.map(|envelope| ::fidl_next::FromWire::from_wire(
5221 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
5222 )),
5223
5224
5225 on_terminate: on_terminate.map(|envelope| ::fidl_next::FromWire::from_wire(
5226 unsafe { envelope.read_unchecked::<crate::wire::OnTerminate>() }
5227 )),
5228
5229
5230 config_overrides: config_overrides.map(|envelope| ::fidl_next::FromWire::from_wire(
5231 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>() }
5232 )),
5233
5234 }
5235 }
5236 }
5237
5238 impl<'de> ::fidl_next::FromWireRef<crate::wire::Child<'de>> for Child {
5239 #[inline]
5240 fn from_wire_ref(wire: &crate::wire::Child<'de>) -> Self {
5241 Self {
5242
5243
5244 name: wire.table.get(1)
5245 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5246 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
5247 )),
5248
5249
5250 url: wire.table.get(2)
5251 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5252 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
5253 )),
5254
5255
5256 startup: wire.table.get(3)
5257 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5258 unsafe { envelope.deref_unchecked::<crate::wire::StartupMode>() }
5259 )),
5260
5261
5262 environment: wire.table.get(4)
5263 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5264 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
5265 )),
5266
5267
5268 on_terminate: wire.table.get(5)
5269 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5270 unsafe { envelope.deref_unchecked::<crate::wire::OnTerminate>() }
5271 )),
5272
5273
5274 config_overrides: wire.table.get(6)
5275 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5276 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>() }
5277 )),
5278
5279 }
5280 }
5281 }
5282
5283 #[doc = " The durability of component instances created in a collection.\n"]
5284 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5285 #[repr(u32)]
5286 pub enum Durability {
5287 Transient = 2,
5288 SingleRun = 3,
5289 }
5290 impl ::core::convert::TryFrom<u32> for Durability {
5291 type Error = ::fidl_next::UnknownStrictEnumMemberError;
5292 fn try_from(
5293 value: u32,
5294 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5295 match value {
5296 2 => Ok(Self::Transient),
5297 3 => Ok(Self::SingleRun),
5298
5299 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5300 }
5301 }
5302 }
5303
5304 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Durability, ___E> for Durability
5305 where
5306 ___E: ?Sized,
5307 {
5308 #[inline]
5309 fn encode(
5310 self,
5311 encoder: &mut ___E,
5312 out: &mut ::core::mem::MaybeUninit<crate::wire::Durability>,
5313 _: (),
5314 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5315 ::fidl_next::Encode::encode(&self, encoder, out, ())
5316 }
5317 }
5318
5319 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Durability, ___E> for &'a Durability
5320 where
5321 ___E: ?Sized,
5322 {
5323 #[inline]
5324 fn encode(
5325 self,
5326 encoder: &mut ___E,
5327 out: &mut ::core::mem::MaybeUninit<crate::wire::Durability>,
5328 _: (),
5329 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5330 ::fidl_next::munge!(let crate::wire::Durability { value } = out);
5331 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
5332 Durability::Transient => 2,
5333
5334 Durability::SingleRun => 3,
5335 }));
5336
5337 Ok(())
5338 }
5339 }
5340
5341 impl ::core::convert::From<crate::wire::Durability> for Durability {
5342 fn from(wire: crate::wire::Durability) -> Self {
5343 match u32::from(wire.value) {
5344 2 => Self::Transient,
5345
5346 3 => Self::SingleRun,
5347
5348 _ => unsafe { ::core::hint::unreachable_unchecked() },
5349 }
5350 }
5351 }
5352
5353 impl ::fidl_next::FromWire<crate::wire::Durability> for Durability {
5354 #[inline]
5355 fn from_wire(wire: crate::wire::Durability) -> Self {
5356 Self::from(wire)
5357 }
5358 }
5359
5360 impl ::fidl_next::FromWireRef<crate::wire::Durability> for Durability {
5361 #[inline]
5362 fn from_wire_ref(wire: &crate::wire::Durability) -> Self {
5363 Self::from(*wire)
5364 }
5365 }
5366
5367 #[doc = " Statically declares a component instance collection.\n"]
5368 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5369 pub struct Collection {
5370 pub name: ::core::option::Option<::std::string::String>,
5371
5372 pub durability: ::core::option::Option<crate::natural::Durability>,
5373
5374 pub environment: ::core::option::Option<::std::string::String>,
5375
5376 pub allowed_offers: ::core::option::Option<crate::natural::AllowedOffers>,
5377
5378 pub allow_long_names: ::core::option::Option<bool>,
5379
5380 pub persistent_storage: ::core::option::Option<bool>,
5381 }
5382
5383 impl Collection {
5384 fn __max_ordinal(&self) -> usize {
5385 if self.persistent_storage.is_some() {
5386 return 6;
5387 }
5388
5389 if self.allow_long_names.is_some() {
5390 return 5;
5391 }
5392
5393 if self.allowed_offers.is_some() {
5394 return 4;
5395 }
5396
5397 if self.environment.is_some() {
5398 return 3;
5399 }
5400
5401 if self.durability.is_some() {
5402 return 2;
5403 }
5404
5405 if self.name.is_some() {
5406 return 1;
5407 }
5408
5409 0
5410 }
5411 }
5412
5413 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Collection<'static>, ___E> for Collection
5414 where
5415 ___E: ::fidl_next::Encoder + ?Sized,
5416 {
5417 #[inline]
5418 fn encode(
5419 mut self,
5420 encoder: &mut ___E,
5421 out: &mut ::core::mem::MaybeUninit<crate::wire::Collection<'static>>,
5422 _: (),
5423 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5424 ::fidl_next::munge!(let crate::wire::Collection { table } = out);
5425
5426 let max_ord = self.__max_ordinal();
5427
5428 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5429 ::fidl_next::Wire::zero_padding(&mut out);
5430
5431 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5432 ::fidl_next::wire::Envelope,
5433 >(encoder, max_ord);
5434
5435 for i in 1..=max_ord {
5436 match i {
5437 6 => {
5438 if let Some(value) = self.persistent_storage.take() {
5439 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5440 value,
5441 preallocated.encoder,
5442 &mut out,
5443 (),
5444 )?;
5445 } else {
5446 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5447 }
5448 }
5449
5450 5 => {
5451 if let Some(value) = self.allow_long_names.take() {
5452 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5453 value,
5454 preallocated.encoder,
5455 &mut out,
5456 (),
5457 )?;
5458 } else {
5459 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5460 }
5461 }
5462
5463 4 => {
5464 if let Some(value) = self.allowed_offers.take() {
5465 ::fidl_next::wire::Envelope::encode_value::<
5466 crate::wire::AllowedOffers,
5467 ___E,
5468 >(
5469 value, preallocated.encoder, &mut out, ()
5470 )?;
5471 } else {
5472 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5473 }
5474 }
5475
5476 3 => {
5477 if let Some(value) = self.environment.take() {
5478 ::fidl_next::wire::Envelope::encode_value::<
5479 ::fidl_next::wire::String<'static>,
5480 ___E,
5481 >(
5482 value, preallocated.encoder, &mut out, 100
5483 )?;
5484 } else {
5485 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5486 }
5487 }
5488
5489 2 => {
5490 if let Some(value) = self.durability.take() {
5491 ::fidl_next::wire::Envelope::encode_value::<
5492 crate::wire::Durability,
5493 ___E,
5494 >(
5495 value, preallocated.encoder, &mut out, ()
5496 )?;
5497 } else {
5498 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5499 }
5500 }
5501
5502 1 => {
5503 if let Some(value) = self.name.take() {
5504 ::fidl_next::wire::Envelope::encode_value::<
5505 ::fidl_next::wire::String<'static>,
5506 ___E,
5507 >(
5508 value, preallocated.encoder, &mut out, 100
5509 )?;
5510 } else {
5511 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5512 }
5513 }
5514
5515 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5516 }
5517 unsafe {
5518 preallocated.write_next(out.assume_init_ref());
5519 }
5520 }
5521
5522 ::fidl_next::wire::Table::encode_len(table, max_ord);
5523
5524 Ok(())
5525 }
5526 }
5527
5528 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Collection<'static>, ___E> for &'a Collection
5529 where
5530 ___E: ::fidl_next::Encoder + ?Sized,
5531 {
5532 #[inline]
5533 fn encode(
5534 self,
5535 encoder: &mut ___E,
5536 out: &mut ::core::mem::MaybeUninit<crate::wire::Collection<'static>>,
5537 _: (),
5538 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5539 ::fidl_next::munge!(let crate::wire::Collection { table } = out);
5540
5541 let max_ord = self.__max_ordinal();
5542
5543 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5544 ::fidl_next::Wire::zero_padding(&mut out);
5545
5546 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5547 ::fidl_next::wire::Envelope,
5548 >(encoder, max_ord);
5549
5550 for i in 1..=max_ord {
5551 match i {
5552 6 => {
5553 if let Some(value) = &self.persistent_storage {
5554 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5555 value,
5556 preallocated.encoder,
5557 &mut out,
5558 (),
5559 )?;
5560 } else {
5561 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5562 }
5563 }
5564
5565 5 => {
5566 if let Some(value) = &self.allow_long_names {
5567 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5568 value,
5569 preallocated.encoder,
5570 &mut out,
5571 (),
5572 )?;
5573 } else {
5574 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5575 }
5576 }
5577
5578 4 => {
5579 if let Some(value) = &self.allowed_offers {
5580 ::fidl_next::wire::Envelope::encode_value::<
5581 crate::wire::AllowedOffers,
5582 ___E,
5583 >(
5584 value, preallocated.encoder, &mut out, ()
5585 )?;
5586 } else {
5587 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5588 }
5589 }
5590
5591 3 => {
5592 if let Some(value) = &self.environment {
5593 ::fidl_next::wire::Envelope::encode_value::<
5594 ::fidl_next::wire::String<'static>,
5595 ___E,
5596 >(
5597 value, preallocated.encoder, &mut out, 100
5598 )?;
5599 } else {
5600 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5601 }
5602 }
5603
5604 2 => {
5605 if let Some(value) = &self.durability {
5606 ::fidl_next::wire::Envelope::encode_value::<
5607 crate::wire::Durability,
5608 ___E,
5609 >(
5610 value, preallocated.encoder, &mut out, ()
5611 )?;
5612 } else {
5613 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5614 }
5615 }
5616
5617 1 => {
5618 if let Some(value) = &self.name {
5619 ::fidl_next::wire::Envelope::encode_value::<
5620 ::fidl_next::wire::String<'static>,
5621 ___E,
5622 >(
5623 value, preallocated.encoder, &mut out, 100
5624 )?;
5625 } else {
5626 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5627 }
5628 }
5629
5630 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5631 }
5632 unsafe {
5633 preallocated.write_next(out.assume_init_ref());
5634 }
5635 }
5636
5637 ::fidl_next::wire::Table::encode_len(table, max_ord);
5638
5639 Ok(())
5640 }
5641 }
5642
5643 impl<'de> ::fidl_next::FromWire<crate::wire::Collection<'de>> for Collection {
5644 #[inline]
5645 fn from_wire(wire_: crate::wire::Collection<'de>) -> Self {
5646 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5647
5648 let name = wire_.table.get(1);
5649
5650 let durability = wire_.table.get(2);
5651
5652 let environment = wire_.table.get(3);
5653
5654 let allowed_offers = wire_.table.get(4);
5655
5656 let allow_long_names = wire_.table.get(5);
5657
5658 let persistent_storage = wire_.table.get(6);
5659
5660 Self {
5661 name: name.map(|envelope| {
5662 ::fidl_next::FromWire::from_wire(unsafe {
5663 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
5664 })
5665 }),
5666
5667 durability: durability.map(|envelope| {
5668 ::fidl_next::FromWire::from_wire(unsafe {
5669 envelope.read_unchecked::<crate::wire::Durability>()
5670 })
5671 }),
5672
5673 environment: environment.map(|envelope| {
5674 ::fidl_next::FromWire::from_wire(unsafe {
5675 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
5676 })
5677 }),
5678
5679 allowed_offers: allowed_offers.map(|envelope| {
5680 ::fidl_next::FromWire::from_wire(unsafe {
5681 envelope.read_unchecked::<crate::wire::AllowedOffers>()
5682 })
5683 }),
5684
5685 allow_long_names: allow_long_names.map(|envelope| {
5686 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
5687 }),
5688
5689 persistent_storage: persistent_storage.map(|envelope| {
5690 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
5691 }),
5692 }
5693 }
5694 }
5695
5696 impl<'de> ::fidl_next::FromWireRef<crate::wire::Collection<'de>> for Collection {
5697 #[inline]
5698 fn from_wire_ref(wire: &crate::wire::Collection<'de>) -> Self {
5699 Self {
5700 name: wire.table.get(1).map(|envelope| {
5701 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5702 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
5703 })
5704 }),
5705
5706 durability: wire.table.get(2).map(|envelope| {
5707 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5708 envelope.deref_unchecked::<crate::wire::Durability>()
5709 })
5710 }),
5711
5712 environment: wire.table.get(3).map(|envelope| {
5713 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5714 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
5715 })
5716 }),
5717
5718 allowed_offers: wire.table.get(4).map(|envelope| {
5719 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5720 envelope.deref_unchecked::<crate::wire::AllowedOffers>()
5721 })
5722 }),
5723
5724 allow_long_names: wire.table.get(5).map(|envelope| {
5725 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5726 envelope.deref_unchecked::<bool>()
5727 })
5728 }),
5729
5730 persistent_storage: wire.table.get(6).map(|envelope| {
5731 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5732 envelope.deref_unchecked::<bool>()
5733 })
5734 }),
5735 }
5736 }
5737 }
5738
5739 #[doc = " Describes the type of dependency implied by the capability.\n"]
5740 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5741 #[repr(u32)]
5742 pub enum DependencyType {
5743 Strong = 1,
5744 Weak = 2,
5745 }
5746 impl ::core::convert::TryFrom<u32> for DependencyType {
5747 type Error = ::fidl_next::UnknownStrictEnumMemberError;
5748 fn try_from(
5749 value: u32,
5750 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5751 match value {
5752 1 => Ok(Self::Strong),
5753 2 => Ok(Self::Weak),
5754
5755 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5756 }
5757 }
5758 }
5759
5760 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DependencyType, ___E> for DependencyType
5761 where
5762 ___E: ?Sized,
5763 {
5764 #[inline]
5765 fn encode(
5766 self,
5767 encoder: &mut ___E,
5768 out: &mut ::core::mem::MaybeUninit<crate::wire::DependencyType>,
5769 _: (),
5770 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5771 ::fidl_next::Encode::encode(&self, encoder, out, ())
5772 }
5773 }
5774
5775 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DependencyType, ___E> for &'a DependencyType
5776 where
5777 ___E: ?Sized,
5778 {
5779 #[inline]
5780 fn encode(
5781 self,
5782 encoder: &mut ___E,
5783 out: &mut ::core::mem::MaybeUninit<crate::wire::DependencyType>,
5784 _: (),
5785 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5786 ::fidl_next::munge!(let crate::wire::DependencyType { value } = out);
5787 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
5788 DependencyType::Strong => 1,
5789
5790 DependencyType::Weak => 2,
5791 }));
5792
5793 Ok(())
5794 }
5795 }
5796
5797 impl ::core::convert::From<crate::wire::DependencyType> for DependencyType {
5798 fn from(wire: crate::wire::DependencyType) -> Self {
5799 match u32::from(wire.value) {
5800 1 => Self::Strong,
5801
5802 2 => Self::Weak,
5803
5804 _ => unsafe { ::core::hint::unreachable_unchecked() },
5805 }
5806 }
5807 }
5808
5809 impl ::fidl_next::FromWire<crate::wire::DependencyType> for DependencyType {
5810 #[inline]
5811 fn from_wire(wire: crate::wire::DependencyType) -> Self {
5812 Self::from(wire)
5813 }
5814 }
5815
5816 impl ::fidl_next::FromWireRef<crate::wire::DependencyType> for DependencyType {
5817 #[inline]
5818 fn from_wire_ref(wire: &crate::wire::DependencyType) -> Self {
5819 Self::from(*wire)
5820 }
5821 }
5822
5823 #[doc = " Type used to create a mapping between 2 names. Used to rename service or component instances\n in FIDL declarations.\n"]
5824 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5825 pub struct NameMapping {
5826 pub source_name: ::std::string::String,
5827
5828 pub target_name: ::std::string::String,
5829 }
5830
5831 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E> for NameMapping
5832 where
5833 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
5834 ___E: ::fidl_next::Encoder,
5835 {
5836 #[inline]
5837 fn encode(
5838 self,
5839 encoder_: &mut ___E,
5840 out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
5841 _: (),
5842 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5843 ::fidl_next::munge! {
5844 let crate::wire::NameMapping {
5845 source_name,
5846 target_name,
5847
5848 } = out_;
5849 }
5850
5851 ::fidl_next::Encode::encode(self.source_name, encoder_, source_name, 100)?;
5852
5853 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(source_name.as_mut_ptr()) };
5854 ::fidl_next::Constrained::validate(_field, 100)?;
5855
5856 ::fidl_next::Encode::encode(self.target_name, encoder_, target_name, 100)?;
5857
5858 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target_name.as_mut_ptr()) };
5859 ::fidl_next::Constrained::validate(_field, 100)?;
5860
5861 Ok(())
5862 }
5863 }
5864
5865 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>
5866 for &'a NameMapping
5867 where
5868 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
5869 ___E: ::fidl_next::Encoder,
5870 {
5871 #[inline]
5872 fn encode(
5873 self,
5874 encoder_: &mut ___E,
5875 out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
5876 _: (),
5877 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5878 ::fidl_next::munge! {
5879 let crate::wire::NameMapping {
5880 source_name,
5881 target_name,
5882
5883 } = out_;
5884 }
5885
5886 ::fidl_next::Encode::encode(&self.source_name, encoder_, source_name, 100)?;
5887
5888 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(source_name.as_mut_ptr()) };
5889 ::fidl_next::Constrained::validate(_field, 100)?;
5890
5891 ::fidl_next::Encode::encode(&self.target_name, encoder_, target_name, 100)?;
5892
5893 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target_name.as_mut_ptr()) };
5894 ::fidl_next::Constrained::validate(_field, 100)?;
5895
5896 Ok(())
5897 }
5898 }
5899
5900 unsafe impl<___E>
5901 ::fidl_next::EncodeOption<
5902 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
5903 ___E,
5904 > for NameMapping
5905 where
5906 ___E: ::fidl_next::Encoder + ?Sized,
5907 NameMapping: ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>,
5908 {
5909 #[inline]
5910 fn encode_option(
5911 this: ::core::option::Option<Self>,
5912 encoder: &mut ___E,
5913 out: &mut ::core::mem::MaybeUninit<
5914 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
5915 >,
5916 _: (),
5917 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5918 if let Some(inner) = this {
5919 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
5920 ::fidl_next::wire::Box::encode_present(out);
5921 } else {
5922 ::fidl_next::wire::Box::encode_absent(out);
5923 }
5924
5925 Ok(())
5926 }
5927 }
5928
5929 unsafe impl<'a, ___E>
5930 ::fidl_next::EncodeOption<
5931 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
5932 ___E,
5933 > for &'a NameMapping
5934 where
5935 ___E: ::fidl_next::Encoder + ?Sized,
5936 &'a NameMapping: ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>,
5937 {
5938 #[inline]
5939 fn encode_option(
5940 this: ::core::option::Option<Self>,
5941 encoder: &mut ___E,
5942 out: &mut ::core::mem::MaybeUninit<
5943 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
5944 >,
5945 _: (),
5946 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5947 if let Some(inner) = this {
5948 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
5949 ::fidl_next::wire::Box::encode_present(out);
5950 } else {
5951 ::fidl_next::wire::Box::encode_absent(out);
5952 }
5953
5954 Ok(())
5955 }
5956 }
5957
5958 impl<'de> ::fidl_next::FromWire<crate::wire::NameMapping<'de>> for NameMapping {
5959 #[inline]
5960 fn from_wire(wire: crate::wire::NameMapping<'de>) -> Self {
5961 Self {
5962 source_name: ::fidl_next::FromWire::from_wire(wire.source_name),
5963
5964 target_name: ::fidl_next::FromWire::from_wire(wire.target_name),
5965 }
5966 }
5967 }
5968
5969 impl<'de> ::fidl_next::FromWireRef<crate::wire::NameMapping<'de>> for NameMapping {
5970 #[inline]
5971 fn from_wire_ref(wire: &crate::wire::NameMapping<'de>) -> Self {
5972 Self {
5973 source_name: ::fidl_next::FromWireRef::from_wire_ref(&wire.source_name),
5974
5975 target_name: ::fidl_next::FromWireRef::from_wire_ref(&wire.target_name),
5976 }
5977 }
5978 }
5979
5980 #[doc = " Specifies how a declared environment\'s initial set of properties are assigned.\n"]
5981 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5982 #[repr(u32)]
5983 pub enum EnvironmentExtends {
5984 None = 0,
5985 Realm = 1,
5986 }
5987 impl ::core::convert::TryFrom<u32> for EnvironmentExtends {
5988 type Error = ::fidl_next::UnknownStrictEnumMemberError;
5989 fn try_from(
5990 value: u32,
5991 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5992 match value {
5993 0 => Ok(Self::None),
5994 1 => Ok(Self::Realm),
5995
5996 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5997 }
5998 }
5999 }
6000
6001 unsafe impl<___E> ::fidl_next::Encode<crate::wire::EnvironmentExtends, ___E> for EnvironmentExtends
6002 where
6003 ___E: ?Sized,
6004 {
6005 #[inline]
6006 fn encode(
6007 self,
6008 encoder: &mut ___E,
6009 out: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentExtends>,
6010 _: (),
6011 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6012 ::fidl_next::Encode::encode(&self, encoder, out, ())
6013 }
6014 }
6015
6016 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EnvironmentExtends, ___E>
6017 for &'a EnvironmentExtends
6018 where
6019 ___E: ?Sized,
6020 {
6021 #[inline]
6022 fn encode(
6023 self,
6024 encoder: &mut ___E,
6025 out: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentExtends>,
6026 _: (),
6027 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6028 ::fidl_next::munge!(let crate::wire::EnvironmentExtends { value } = out);
6029 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
6030 EnvironmentExtends::None => 0,
6031
6032 EnvironmentExtends::Realm => 1,
6033 }));
6034
6035 Ok(())
6036 }
6037 }
6038
6039 impl ::core::convert::From<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6040 fn from(wire: crate::wire::EnvironmentExtends) -> Self {
6041 match u32::from(wire.value) {
6042 0 => Self::None,
6043
6044 1 => Self::Realm,
6045
6046 _ => unsafe { ::core::hint::unreachable_unchecked() },
6047 }
6048 }
6049 }
6050
6051 impl ::fidl_next::FromWire<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6052 #[inline]
6053 fn from_wire(wire: crate::wire::EnvironmentExtends) -> Self {
6054 Self::from(wire)
6055 }
6056 }
6057
6058 impl ::fidl_next::FromWireRef<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6059 #[inline]
6060 fn from_wire_ref(wire: &crate::wire::EnvironmentExtends) -> Self {
6061 Self::from(*wire)
6062 }
6063 }
6064
6065 pub type UrlScheme = ::std::string::String;
6066
6067 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6068 #[repr(u32)]
6069 pub enum ConfigTypeLayout {
6070 Bool = 1,
6071 Uint8 = 2,
6072 Uint16 = 3,
6073 Uint32 = 4,
6074 Uint64 = 5,
6075 Int8 = 6,
6076 Int16 = 7,
6077 Int32 = 8,
6078 Int64 = 9,
6079 String = 10,
6080 Vector = 11,
6081 UnknownOrdinal_(u32) = 12,
6082 }
6083 impl ::std::convert::From<u32> for ConfigTypeLayout {
6084 fn from(value: u32) -> Self {
6085 match value {
6086 1 => Self::Bool,
6087 2 => Self::Uint8,
6088 3 => Self::Uint16,
6089 4 => Self::Uint32,
6090 5 => Self::Uint64,
6091 6 => Self::Int8,
6092 7 => Self::Int16,
6093 8 => Self::Int32,
6094 9 => Self::Int64,
6095 10 => Self::String,
6096 11 => Self::Vector,
6097
6098 _ => Self::UnknownOrdinal_(value),
6099 }
6100 }
6101 }
6102
6103 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E> for ConfigTypeLayout
6104 where
6105 ___E: ?Sized,
6106 {
6107 #[inline]
6108 fn encode(
6109 self,
6110 encoder: &mut ___E,
6111 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigTypeLayout>,
6112 _: (),
6113 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6114 ::fidl_next::Encode::encode(&self, encoder, out, ())
6115 }
6116 }
6117
6118 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E>
6119 for &'a ConfigTypeLayout
6120 where
6121 ___E: ?Sized,
6122 {
6123 #[inline]
6124 fn encode(
6125 self,
6126 encoder: &mut ___E,
6127 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigTypeLayout>,
6128 _: (),
6129 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6130 ::fidl_next::munge!(let crate::wire::ConfigTypeLayout { value } = out);
6131 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
6132 ConfigTypeLayout::Bool => 1,
6133
6134 ConfigTypeLayout::Uint8 => 2,
6135
6136 ConfigTypeLayout::Uint16 => 3,
6137
6138 ConfigTypeLayout::Uint32 => 4,
6139
6140 ConfigTypeLayout::Uint64 => 5,
6141
6142 ConfigTypeLayout::Int8 => 6,
6143
6144 ConfigTypeLayout::Int16 => 7,
6145
6146 ConfigTypeLayout::Int32 => 8,
6147
6148 ConfigTypeLayout::Int64 => 9,
6149
6150 ConfigTypeLayout::String => 10,
6151
6152 ConfigTypeLayout::Vector => 11,
6153
6154 ConfigTypeLayout::UnknownOrdinal_(value) => value,
6155 }));
6156
6157 Ok(())
6158 }
6159 }
6160
6161 impl ::core::convert::From<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6162 fn from(wire: crate::wire::ConfigTypeLayout) -> Self {
6163 match u32::from(wire.value) {
6164 1 => Self::Bool,
6165
6166 2 => Self::Uint8,
6167
6168 3 => Self::Uint16,
6169
6170 4 => Self::Uint32,
6171
6172 5 => Self::Uint64,
6173
6174 6 => Self::Int8,
6175
6176 7 => Self::Int16,
6177
6178 8 => Self::Int32,
6179
6180 9 => Self::Int64,
6181
6182 10 => Self::String,
6183
6184 11 => Self::Vector,
6185
6186 value => Self::UnknownOrdinal_(value),
6187 }
6188 }
6189 }
6190
6191 impl ::fidl_next::FromWire<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6192 #[inline]
6193 fn from_wire(wire: crate::wire::ConfigTypeLayout) -> Self {
6194 Self::from(wire)
6195 }
6196 }
6197
6198 impl ::fidl_next::FromWireRef<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6199 #[inline]
6200 fn from_wire_ref(wire: &crate::wire::ConfigTypeLayout) -> Self {
6201 Self::from(*wire)
6202 }
6203 }
6204
6205 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6206 pub enum LayoutConstraint {
6207 MaxSize(u32),
6208
6209 UnknownOrdinal_(u64),
6210 }
6211
6212 impl LayoutConstraint {
6213 pub fn is_unknown(&self) -> bool {
6214 #[allow(unreachable_patterns)]
6215 match self {
6216 Self::UnknownOrdinal_(_) => true,
6217 _ => false,
6218 }
6219 }
6220 }
6221
6222 unsafe impl<___E> ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>
6223 for LayoutConstraint
6224 where
6225 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6226 ___E: ::fidl_next::Encoder,
6227 {
6228 #[inline]
6229 fn encode(
6230 self,
6231 encoder: &mut ___E,
6232 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutConstraint<'static>>,
6233 _: (),
6234 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6235 ::fidl_next::munge!(let crate::wire::LayoutConstraint { raw, _phantom: _ } = out);
6236
6237 match self {
6238 Self::MaxSize(value) => ::fidl_next::wire::Union::encode_as::<
6239 ___E,
6240 ::fidl_next::wire::Uint32,
6241 >(value, 1, encoder, raw, ())?,
6242
6243 Self::UnknownOrdinal_(ordinal) => {
6244 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
6245 }
6246 }
6247
6248 Ok(())
6249 }
6250 }
6251
6252 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>
6253 for &'a LayoutConstraint
6254 where
6255 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6256 ___E: ::fidl_next::Encoder,
6257 {
6258 #[inline]
6259 fn encode(
6260 self,
6261 encoder: &mut ___E,
6262 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutConstraint<'static>>,
6263 _: (),
6264 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6265 ::fidl_next::munge!(let crate::wire::LayoutConstraint { raw, _phantom: _ } = out);
6266
6267 match self {
6268 LayoutConstraint::MaxSize(value) => ::fidl_next::wire::Union::encode_as::<
6269 ___E,
6270 ::fidl_next::wire::Uint32,
6271 >(value, 1, encoder, raw, ())?,
6272
6273 LayoutConstraint::UnknownOrdinal_(ordinal) => {
6274 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
6275 }
6276 }
6277
6278 Ok(())
6279 }
6280 }
6281
6282 unsafe impl<___E>
6283 ::fidl_next::EncodeOption<crate::wire_optional::LayoutConstraint<'static>, ___E>
6284 for LayoutConstraint
6285 where
6286 ___E: ?Sized,
6287 LayoutConstraint: ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>,
6288 {
6289 #[inline]
6290 fn encode_option(
6291 this: ::core::option::Option<Self>,
6292 encoder: &mut ___E,
6293 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutConstraint<'static>>,
6294 _: (),
6295 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6296 ::fidl_next::munge!(let crate::wire_optional::LayoutConstraint { raw, _phantom: _ } = &mut *out);
6297
6298 if let Some(inner) = this {
6299 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6300 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6301 } else {
6302 ::fidl_next::wire::Union::encode_absent(raw);
6303 }
6304
6305 Ok(())
6306 }
6307 }
6308
6309 unsafe impl<'a, ___E>
6310 ::fidl_next::EncodeOption<crate::wire_optional::LayoutConstraint<'static>, ___E>
6311 for &'a LayoutConstraint
6312 where
6313 ___E: ?Sized,
6314 &'a LayoutConstraint: ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>,
6315 {
6316 #[inline]
6317 fn encode_option(
6318 this: ::core::option::Option<Self>,
6319 encoder: &mut ___E,
6320 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutConstraint<'static>>,
6321 _: (),
6322 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6323 ::fidl_next::munge!(let crate::wire_optional::LayoutConstraint { raw, _phantom: _ } = &mut *out);
6324
6325 if let Some(inner) = this {
6326 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6327 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6328 } else {
6329 ::fidl_next::wire::Union::encode_absent(raw);
6330 }
6331
6332 Ok(())
6333 }
6334 }
6335
6336 impl<'de> ::fidl_next::FromWire<crate::wire::LayoutConstraint<'de>> for LayoutConstraint {
6337 #[inline]
6338 fn from_wire(wire: crate::wire::LayoutConstraint<'de>) -> Self {
6339 let wire = ::core::mem::ManuallyDrop::new(wire);
6340 match wire.raw.ordinal() {
6341 1 => Self::MaxSize(::fidl_next::FromWire::from_wire(unsafe {
6342 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
6343 })),
6344
6345 ord => return Self::UnknownOrdinal_(ord as u64),
6346 }
6347 }
6348 }
6349
6350 impl<'de> ::fidl_next::FromWireRef<crate::wire::LayoutConstraint<'de>> for LayoutConstraint {
6351 #[inline]
6352 fn from_wire_ref(wire: &crate::wire::LayoutConstraint<'de>) -> Self {
6353 match wire.raw.ordinal() {
6354 1 => Self::MaxSize(::fidl_next::FromWireRef::from_wire_ref(unsafe {
6355 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
6356 })),
6357
6358 ord => return Self::UnknownOrdinal_(ord as u64),
6359 }
6360 }
6361 }
6362
6363 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutConstraint<'de>>
6364 for LayoutConstraint
6365 {
6366 #[inline]
6367 fn from_wire_option(
6368 wire: crate::wire_optional::LayoutConstraint<'de>,
6369 ) -> ::core::option::Option<Self> {
6370 if let Some(inner) = wire.into_option() {
6371 Some(::fidl_next::FromWire::from_wire(inner))
6372 } else {
6373 None
6374 }
6375 }
6376 }
6377
6378 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutConstraint<'de>>
6379 for Box<LayoutConstraint>
6380 {
6381 #[inline]
6382 fn from_wire_option(
6383 wire: crate::wire_optional::LayoutConstraint<'de>,
6384 ) -> ::core::option::Option<Self> {
6385 <LayoutConstraint as ::fidl_next::FromWireOption<
6386 crate::wire_optional::LayoutConstraint<'de>,
6387 >>::from_wire_option(wire)
6388 .map(Box::new)
6389 }
6390 }
6391
6392 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::LayoutConstraint<'de>>
6393 for Box<LayoutConstraint>
6394 {
6395 #[inline]
6396 fn from_wire_option_ref(
6397 wire: &crate::wire_optional::LayoutConstraint<'de>,
6398 ) -> ::core::option::Option<Self> {
6399 if let Some(inner) = wire.as_ref() {
6400 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
6401 } else {
6402 None
6403 }
6404 }
6405 }
6406
6407 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6408 pub struct ConfigType {
6409 pub layout: crate::natural::ConfigTypeLayout,
6410
6411 pub parameters: ::core::option::Option<::std::vec::Vec<crate::natural::LayoutParameter>>,
6412
6413 pub constraints: ::std::vec::Vec<crate::natural::LayoutConstraint>,
6414 }
6415
6416 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E> for ConfigType
6417 where
6418 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6419 ___E: ::fidl_next::Encoder,
6420 {
6421 #[inline]
6422 fn encode(
6423 self,
6424 encoder_: &mut ___E,
6425 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
6426 _: (),
6427 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6428 ::fidl_next::munge! {
6429 let crate::wire::ConfigType {
6430 layout,
6431 parameters,
6432 constraints,
6433
6434 } = out_;
6435 }
6436
6437 ::fidl_next::Encode::encode(self.layout, encoder_, layout, ())?;
6438
6439 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(layout.as_mut_ptr()) };
6440
6441 ::fidl_next::Encode::encode(self.parameters, encoder_, parameters, (4294967295, ()))?;
6442
6443 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(parameters.as_mut_ptr()) };
6444 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6445
6446 ::fidl_next::Encode::encode(self.constraints, encoder_, constraints, (4294967295, ()))?;
6447
6448 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(constraints.as_mut_ptr()) };
6449 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6450
6451 Ok(())
6452 }
6453 }
6454
6455 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E> for &'a ConfigType
6456 where
6457 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6458 ___E: ::fidl_next::Encoder,
6459 {
6460 #[inline]
6461 fn encode(
6462 self,
6463 encoder_: &mut ___E,
6464 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
6465 _: (),
6466 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6467 ::fidl_next::munge! {
6468 let crate::wire::ConfigType {
6469 layout,
6470 parameters,
6471 constraints,
6472
6473 } = out_;
6474 }
6475
6476 ::fidl_next::Encode::encode(&self.layout, encoder_, layout, ())?;
6477
6478 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(layout.as_mut_ptr()) };
6479
6480 ::fidl_next::Encode::encode(&self.parameters, encoder_, parameters, (4294967295, ()))?;
6481
6482 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(parameters.as_mut_ptr()) };
6483 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6484
6485 ::fidl_next::Encode::encode(
6486 &self.constraints,
6487 encoder_,
6488 constraints,
6489 (4294967295, ()),
6490 )?;
6491
6492 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(constraints.as_mut_ptr()) };
6493 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6494
6495 Ok(())
6496 }
6497 }
6498
6499 unsafe impl<___E>
6500 ::fidl_next::EncodeOption<
6501 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6502 ___E,
6503 > for ConfigType
6504 where
6505 ___E: ::fidl_next::Encoder + ?Sized,
6506 ConfigType: ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>,
6507 {
6508 #[inline]
6509 fn encode_option(
6510 this: ::core::option::Option<Self>,
6511 encoder: &mut ___E,
6512 out: &mut ::core::mem::MaybeUninit<
6513 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6514 >,
6515 _: (),
6516 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6517 if let Some(inner) = this {
6518 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6519 ::fidl_next::wire::Box::encode_present(out);
6520 } else {
6521 ::fidl_next::wire::Box::encode_absent(out);
6522 }
6523
6524 Ok(())
6525 }
6526 }
6527
6528 unsafe impl<'a, ___E>
6529 ::fidl_next::EncodeOption<
6530 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6531 ___E,
6532 > for &'a ConfigType
6533 where
6534 ___E: ::fidl_next::Encoder + ?Sized,
6535 &'a ConfigType: ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>,
6536 {
6537 #[inline]
6538 fn encode_option(
6539 this: ::core::option::Option<Self>,
6540 encoder: &mut ___E,
6541 out: &mut ::core::mem::MaybeUninit<
6542 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6543 >,
6544 _: (),
6545 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6546 if let Some(inner) = this {
6547 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6548 ::fidl_next::wire::Box::encode_present(out);
6549 } else {
6550 ::fidl_next::wire::Box::encode_absent(out);
6551 }
6552
6553 Ok(())
6554 }
6555 }
6556
6557 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigType<'de>> for ConfigType {
6558 #[inline]
6559 fn from_wire(wire: crate::wire::ConfigType<'de>) -> Self {
6560 Self {
6561 layout: ::fidl_next::FromWire::from_wire(wire.layout),
6562
6563 parameters: ::fidl_next::FromWire::from_wire(wire.parameters),
6564
6565 constraints: ::fidl_next::FromWire::from_wire(wire.constraints),
6566 }
6567 }
6568 }
6569
6570 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigType<'de>> for ConfigType {
6571 #[inline]
6572 fn from_wire_ref(wire: &crate::wire::ConfigType<'de>) -> Self {
6573 Self {
6574 layout: ::fidl_next::FromWireRef::from_wire_ref(&wire.layout),
6575
6576 parameters: ::fidl_next::FromWireRef::from_wire_ref(&wire.parameters),
6577
6578 constraints: ::fidl_next::FromWireRef::from_wire_ref(&wire.constraints),
6579 }
6580 }
6581 }
6582
6583 #[doc = " The checksum produced for a configuration interface.\n Two configuration interfaces are the same if their checksums are the same.\n"]
6584 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6585 pub enum ConfigChecksum {
6586 Sha256([u8; 32]),
6587
6588 UnknownOrdinal_(u64),
6589 }
6590
6591 impl ConfigChecksum {
6592 pub fn is_unknown(&self) -> bool {
6593 #[allow(unreachable_patterns)]
6594 match self {
6595 Self::UnknownOrdinal_(_) => true,
6596 _ => false,
6597 }
6598 }
6599 }
6600
6601 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E> for ConfigChecksum
6602 where
6603 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6604 ___E: ::fidl_next::Encoder,
6605 {
6606 #[inline]
6607 fn encode(
6608 self,
6609 encoder: &mut ___E,
6610 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigChecksum<'static>>,
6611 _: (),
6612 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6613 ::fidl_next::munge!(let crate::wire::ConfigChecksum { raw, _phantom: _ } = out);
6614
6615 match self {
6616 Self::Sha256(value) => ::fidl_next::wire::Union::encode_as::<___E, [u8; 32]>(
6617 value,
6618 1,
6619 encoder,
6620 raw,
6621 (),
6622 )?,
6623
6624 Self::UnknownOrdinal_(ordinal) => {
6625 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
6626 }
6627 }
6628
6629 Ok(())
6630 }
6631 }
6632
6633 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>
6634 for &'a ConfigChecksum
6635 where
6636 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6637 ___E: ::fidl_next::Encoder,
6638 {
6639 #[inline]
6640 fn encode(
6641 self,
6642 encoder: &mut ___E,
6643 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigChecksum<'static>>,
6644 _: (),
6645 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6646 ::fidl_next::munge!(let crate::wire::ConfigChecksum { raw, _phantom: _ } = out);
6647
6648 match self {
6649 ConfigChecksum::Sha256(value) => ::fidl_next::wire::Union::encode_as::<
6650 ___E,
6651 [u8; 32],
6652 >(value, 1, encoder, raw, ())?,
6653
6654 ConfigChecksum::UnknownOrdinal_(ordinal) => {
6655 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
6656 }
6657 }
6658
6659 Ok(())
6660 }
6661 }
6662
6663 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::ConfigChecksum<'static>, ___E>
6664 for ConfigChecksum
6665 where
6666 ___E: ?Sized,
6667 ConfigChecksum: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
6668 {
6669 #[inline]
6670 fn encode_option(
6671 this: ::core::option::Option<Self>,
6672 encoder: &mut ___E,
6673 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigChecksum<'static>>,
6674 _: (),
6675 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6676 ::fidl_next::munge!(let crate::wire_optional::ConfigChecksum { raw, _phantom: _ } = &mut *out);
6677
6678 if let Some(inner) = this {
6679 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6680 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6681 } else {
6682 ::fidl_next::wire::Union::encode_absent(raw);
6683 }
6684
6685 Ok(())
6686 }
6687 }
6688
6689 unsafe impl<'a, ___E>
6690 ::fidl_next::EncodeOption<crate::wire_optional::ConfigChecksum<'static>, ___E>
6691 for &'a ConfigChecksum
6692 where
6693 ___E: ?Sized,
6694 &'a ConfigChecksum: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
6695 {
6696 #[inline]
6697 fn encode_option(
6698 this: ::core::option::Option<Self>,
6699 encoder: &mut ___E,
6700 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigChecksum<'static>>,
6701 _: (),
6702 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6703 ::fidl_next::munge!(let crate::wire_optional::ConfigChecksum { raw, _phantom: _ } = &mut *out);
6704
6705 if let Some(inner) = this {
6706 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6707 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6708 } else {
6709 ::fidl_next::wire::Union::encode_absent(raw);
6710 }
6711
6712 Ok(())
6713 }
6714 }
6715
6716 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigChecksum<'de>> for ConfigChecksum {
6717 #[inline]
6718 fn from_wire(wire: crate::wire::ConfigChecksum<'de>) -> Self {
6719 let wire = ::core::mem::ManuallyDrop::new(wire);
6720 match wire.raw.ordinal() {
6721 1 => Self::Sha256(::fidl_next::FromWire::from_wire(unsafe {
6722 wire.raw.get().read_unchecked::<[u8; 32]>()
6723 })),
6724
6725 ord => return Self::UnknownOrdinal_(ord as u64),
6726 }
6727 }
6728 }
6729
6730 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigChecksum<'de>> for ConfigChecksum {
6731 #[inline]
6732 fn from_wire_ref(wire: &crate::wire::ConfigChecksum<'de>) -> Self {
6733 match wire.raw.ordinal() {
6734 1 => Self::Sha256(::fidl_next::FromWireRef::from_wire_ref(unsafe {
6735 wire.raw.get().deref_unchecked::<[u8; 32]>()
6736 })),
6737
6738 ord => return Self::UnknownOrdinal_(ord as u64),
6739 }
6740 }
6741 }
6742
6743 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigChecksum<'de>>
6744 for ConfigChecksum
6745 {
6746 #[inline]
6747 fn from_wire_option(
6748 wire: crate::wire_optional::ConfigChecksum<'de>,
6749 ) -> ::core::option::Option<Self> {
6750 if let Some(inner) = wire.into_option() {
6751 Some(::fidl_next::FromWire::from_wire(inner))
6752 } else {
6753 None
6754 }
6755 }
6756 }
6757
6758 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigChecksum<'de>>
6759 for Box<ConfigChecksum>
6760 {
6761 #[inline]
6762 fn from_wire_option(
6763 wire: crate::wire_optional::ConfigChecksum<'de>,
6764 ) -> ::core::option::Option<Self> {
6765 <ConfigChecksum as ::fidl_next::FromWireOption<
6766 crate::wire_optional::ConfigChecksum<'de>,
6767 >>::from_wire_option(wire)
6768 .map(Box::new)
6769 }
6770 }
6771
6772 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigChecksum<'de>>
6773 for Box<ConfigChecksum>
6774 {
6775 #[inline]
6776 fn from_wire_option_ref(
6777 wire: &crate::wire_optional::ConfigChecksum<'de>,
6778 ) -> ::core::option::Option<Self> {
6779 if let Some(inner) = wire.as_ref() {
6780 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
6781 } else {
6782 None
6783 }
6784 }
6785 }
6786
6787 #[doc = " Declares storage used by a component, which was offered to it.\n"]
6788 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6789 pub struct UseStorage {
6790 pub source_name: ::core::option::Option<::std::string::String>,
6791
6792 pub target_path: ::core::option::Option<::std::string::String>,
6793
6794 pub availability: ::core::option::Option<crate::natural::Availability>,
6795 }
6796
6797 impl UseStorage {
6798 fn __max_ordinal(&self) -> usize {
6799 if self.availability.is_some() {
6800 return 3;
6801 }
6802
6803 if self.target_path.is_some() {
6804 return 2;
6805 }
6806
6807 if self.source_name.is_some() {
6808 return 1;
6809 }
6810
6811 0
6812 }
6813 }
6814
6815 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseStorage<'static>, ___E> for UseStorage
6816 where
6817 ___E: ::fidl_next::Encoder + ?Sized,
6818 {
6819 #[inline]
6820 fn encode(
6821 mut self,
6822 encoder: &mut ___E,
6823 out: &mut ::core::mem::MaybeUninit<crate::wire::UseStorage<'static>>,
6824 _: (),
6825 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6826 ::fidl_next::munge!(let crate::wire::UseStorage { table } = out);
6827
6828 let max_ord = self.__max_ordinal();
6829
6830 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6831 ::fidl_next::Wire::zero_padding(&mut out);
6832
6833 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6834 ::fidl_next::wire::Envelope,
6835 >(encoder, max_ord);
6836
6837 for i in 1..=max_ord {
6838 match i {
6839 3 => {
6840 if let Some(value) = self.availability.take() {
6841 ::fidl_next::wire::Envelope::encode_value::<
6842 crate::wire::Availability,
6843 ___E,
6844 >(
6845 value, preallocated.encoder, &mut out, ()
6846 )?;
6847 } else {
6848 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6849 }
6850 }
6851
6852 2 => {
6853 if let Some(value) = self.target_path.take() {
6854 ::fidl_next::wire::Envelope::encode_value::<
6855 ::fidl_next::wire::String<'static>,
6856 ___E,
6857 >(
6858 value, preallocated.encoder, &mut out, 1024
6859 )?;
6860 } else {
6861 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6862 }
6863 }
6864
6865 1 => {
6866 if let Some(value) = self.source_name.take() {
6867 ::fidl_next::wire::Envelope::encode_value::<
6868 ::fidl_next::wire::String<'static>,
6869 ___E,
6870 >(
6871 value, preallocated.encoder, &mut out, 100
6872 )?;
6873 } else {
6874 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6875 }
6876 }
6877
6878 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6879 }
6880 unsafe {
6881 preallocated.write_next(out.assume_init_ref());
6882 }
6883 }
6884
6885 ::fidl_next::wire::Table::encode_len(table, max_ord);
6886
6887 Ok(())
6888 }
6889 }
6890
6891 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseStorage<'static>, ___E> for &'a UseStorage
6892 where
6893 ___E: ::fidl_next::Encoder + ?Sized,
6894 {
6895 #[inline]
6896 fn encode(
6897 self,
6898 encoder: &mut ___E,
6899 out: &mut ::core::mem::MaybeUninit<crate::wire::UseStorage<'static>>,
6900 _: (),
6901 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6902 ::fidl_next::munge!(let crate::wire::UseStorage { table } = out);
6903
6904 let max_ord = self.__max_ordinal();
6905
6906 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6907 ::fidl_next::Wire::zero_padding(&mut out);
6908
6909 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6910 ::fidl_next::wire::Envelope,
6911 >(encoder, max_ord);
6912
6913 for i in 1..=max_ord {
6914 match i {
6915 3 => {
6916 if let Some(value) = &self.availability {
6917 ::fidl_next::wire::Envelope::encode_value::<
6918 crate::wire::Availability,
6919 ___E,
6920 >(
6921 value, preallocated.encoder, &mut out, ()
6922 )?;
6923 } else {
6924 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6925 }
6926 }
6927
6928 2 => {
6929 if let Some(value) = &self.target_path {
6930 ::fidl_next::wire::Envelope::encode_value::<
6931 ::fidl_next::wire::String<'static>,
6932 ___E,
6933 >(
6934 value, preallocated.encoder, &mut out, 1024
6935 )?;
6936 } else {
6937 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6938 }
6939 }
6940
6941 1 => {
6942 if let Some(value) = &self.source_name {
6943 ::fidl_next::wire::Envelope::encode_value::<
6944 ::fidl_next::wire::String<'static>,
6945 ___E,
6946 >(
6947 value, preallocated.encoder, &mut out, 100
6948 )?;
6949 } else {
6950 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6951 }
6952 }
6953
6954 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6955 }
6956 unsafe {
6957 preallocated.write_next(out.assume_init_ref());
6958 }
6959 }
6960
6961 ::fidl_next::wire::Table::encode_len(table, max_ord);
6962
6963 Ok(())
6964 }
6965 }
6966
6967 impl<'de> ::fidl_next::FromWire<crate::wire::UseStorage<'de>> for UseStorage {
6968 #[inline]
6969 fn from_wire(wire_: crate::wire::UseStorage<'de>) -> Self {
6970 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
6971
6972 let source_name = wire_.table.get(1);
6973
6974 let target_path = wire_.table.get(2);
6975
6976 let availability = wire_.table.get(3);
6977
6978 Self {
6979 source_name: source_name.map(|envelope| {
6980 ::fidl_next::FromWire::from_wire(unsafe {
6981 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
6982 })
6983 }),
6984
6985 target_path: target_path.map(|envelope| {
6986 ::fidl_next::FromWire::from_wire(unsafe {
6987 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
6988 })
6989 }),
6990
6991 availability: availability.map(|envelope| {
6992 ::fidl_next::FromWire::from_wire(unsafe {
6993 envelope.read_unchecked::<crate::wire::Availability>()
6994 })
6995 }),
6996 }
6997 }
6998 }
6999
7000 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseStorage<'de>> for UseStorage {
7001 #[inline]
7002 fn from_wire_ref(wire: &crate::wire::UseStorage<'de>) -> Self {
7003 Self {
7004 source_name: wire.table.get(1).map(|envelope| {
7005 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7006 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
7007 })
7008 }),
7009
7010 target_path: wire.table.get(2).map(|envelope| {
7011 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7012 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
7013 })
7014 }),
7015
7016 availability: wire.table.get(3).map(|envelope| {
7017 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7018 envelope.deref_unchecked::<crate::wire::Availability>()
7019 })
7020 }),
7021 }
7022 }
7023 }
7024
7025 ::fidl_next::bitflags::bitflags! {
7026 #[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 {
7027 #[doc = " Allow parent components to provide overrides for the configuration field.\n"]const PARENT = 1;
7028 const _ = !0;
7029 }
7030 }
7031
7032 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigMutability, ___E> for ConfigMutability
7033 where
7034 ___E: ?Sized,
7035 {
7036 #[inline]
7037 fn encode(
7038 self,
7039 encoder: &mut ___E,
7040 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigMutability>,
7041 _: (),
7042 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7043 ::fidl_next::Encode::encode(&self, encoder, out, ())
7044 }
7045 }
7046
7047 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigMutability, ___E>
7048 for &'a ConfigMutability
7049 where
7050 ___E: ?Sized,
7051 {
7052 #[inline]
7053 fn encode(
7054 self,
7055 _: &mut ___E,
7056 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigMutability>,
7057 _: (),
7058 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7059 ::fidl_next::munge!(let crate::wire::ConfigMutability { value } = out);
7060
7061 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
7062 Ok(())
7063 }
7064 }
7065
7066 impl ::core::convert::From<crate::wire::ConfigMutability> for ConfigMutability {
7067 fn from(wire: crate::wire::ConfigMutability) -> Self {
7068 Self::from_bits_retain(u32::from(wire.value))
7069 }
7070 }
7071
7072 impl ::fidl_next::FromWire<crate::wire::ConfigMutability> for ConfigMutability {
7073 #[inline]
7074 fn from_wire(wire: crate::wire::ConfigMutability) -> Self {
7075 Self::from(wire)
7076 }
7077 }
7078
7079 impl ::fidl_next::FromWireRef<crate::wire::ConfigMutability> for ConfigMutability {
7080 #[inline]
7081 fn from_wire_ref(wire: &crate::wire::ConfigMutability) -> Self {
7082 Self::from(*wire)
7083 }
7084 }
7085
7086 #[doc = " Declares a single config field (key + type)\n"]
7087 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7088 pub struct ConfigField {
7089 pub key: ::core::option::Option<::std::string::String>,
7090
7091 pub type_: ::core::option::Option<crate::natural::ConfigType>,
7092
7093 pub mutability: ::core::option::Option<crate::natural::ConfigMutability>,
7094 }
7095
7096 impl ConfigField {
7097 fn __max_ordinal(&self) -> usize {
7098 if self.mutability.is_some() {
7099 return 3;
7100 }
7101
7102 if self.type_.is_some() {
7103 return 2;
7104 }
7105
7106 if self.key.is_some() {
7107 return 1;
7108 }
7109
7110 0
7111 }
7112 }
7113
7114 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigField<'static>, ___E> for ConfigField
7115 where
7116 ___E: ::fidl_next::Encoder + ?Sized,
7117 {
7118 #[inline]
7119 fn encode(
7120 mut self,
7121 encoder: &mut ___E,
7122 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigField<'static>>,
7123 _: (),
7124 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7125 ::fidl_next::munge!(let crate::wire::ConfigField { table } = out);
7126
7127 let max_ord = self.__max_ordinal();
7128
7129 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7130 ::fidl_next::Wire::zero_padding(&mut out);
7131
7132 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7133 ::fidl_next::wire::Envelope,
7134 >(encoder, max_ord);
7135
7136 for i in 1..=max_ord {
7137 match i {
7138 3 => {
7139 if let Some(value) = self.mutability.take() {
7140 ::fidl_next::wire::Envelope::encode_value::<
7141 crate::wire::ConfigMutability,
7142 ___E,
7143 >(
7144 value, preallocated.encoder, &mut out, ()
7145 )?;
7146 } else {
7147 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7148 }
7149 }
7150
7151 2 => {
7152 if let Some(value) = self.type_.take() {
7153 ::fidl_next::wire::Envelope::encode_value::<
7154 crate::wire::ConfigType<'static>,
7155 ___E,
7156 >(
7157 value, preallocated.encoder, &mut out, ()
7158 )?;
7159 } else {
7160 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7161 }
7162 }
7163
7164 1 => {
7165 if let Some(value) = self.key.take() {
7166 ::fidl_next::wire::Envelope::encode_value::<
7167 ::fidl_next::wire::String<'static>,
7168 ___E,
7169 >(
7170 value, preallocated.encoder, &mut out, 64
7171 )?;
7172 } else {
7173 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7174 }
7175 }
7176
7177 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7178 }
7179 unsafe {
7180 preallocated.write_next(out.assume_init_ref());
7181 }
7182 }
7183
7184 ::fidl_next::wire::Table::encode_len(table, max_ord);
7185
7186 Ok(())
7187 }
7188 }
7189
7190 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigField<'static>, ___E>
7191 for &'a ConfigField
7192 where
7193 ___E: ::fidl_next::Encoder + ?Sized,
7194 {
7195 #[inline]
7196 fn encode(
7197 self,
7198 encoder: &mut ___E,
7199 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigField<'static>>,
7200 _: (),
7201 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7202 ::fidl_next::munge!(let crate::wire::ConfigField { table } = out);
7203
7204 let max_ord = self.__max_ordinal();
7205
7206 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7207 ::fidl_next::Wire::zero_padding(&mut out);
7208
7209 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7210 ::fidl_next::wire::Envelope,
7211 >(encoder, max_ord);
7212
7213 for i in 1..=max_ord {
7214 match i {
7215 3 => {
7216 if let Some(value) = &self.mutability {
7217 ::fidl_next::wire::Envelope::encode_value::<
7218 crate::wire::ConfigMutability,
7219 ___E,
7220 >(
7221 value, preallocated.encoder, &mut out, ()
7222 )?;
7223 } else {
7224 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7225 }
7226 }
7227
7228 2 => {
7229 if let Some(value) = &self.type_ {
7230 ::fidl_next::wire::Envelope::encode_value::<
7231 crate::wire::ConfigType<'static>,
7232 ___E,
7233 >(
7234 value, preallocated.encoder, &mut out, ()
7235 )?;
7236 } else {
7237 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7238 }
7239 }
7240
7241 1 => {
7242 if let Some(value) = &self.key {
7243 ::fidl_next::wire::Envelope::encode_value::<
7244 ::fidl_next::wire::String<'static>,
7245 ___E,
7246 >(
7247 value, preallocated.encoder, &mut out, 64
7248 )?;
7249 } else {
7250 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7251 }
7252 }
7253
7254 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7255 }
7256 unsafe {
7257 preallocated.write_next(out.assume_init_ref());
7258 }
7259 }
7260
7261 ::fidl_next::wire::Table::encode_len(table, max_ord);
7262
7263 Ok(())
7264 }
7265 }
7266
7267 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigField<'de>> for ConfigField {
7268 #[inline]
7269 fn from_wire(wire_: crate::wire::ConfigField<'de>) -> Self {
7270 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7271
7272 let key = wire_.table.get(1);
7273
7274 let type_ = wire_.table.get(2);
7275
7276 let mutability = wire_.table.get(3);
7277
7278 Self {
7279 key: key.map(|envelope| {
7280 ::fidl_next::FromWire::from_wire(unsafe {
7281 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
7282 })
7283 }),
7284
7285 type_: type_.map(|envelope| {
7286 ::fidl_next::FromWire::from_wire(unsafe {
7287 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
7288 })
7289 }),
7290
7291 mutability: mutability.map(|envelope| {
7292 ::fidl_next::FromWire::from_wire(unsafe {
7293 envelope.read_unchecked::<crate::wire::ConfigMutability>()
7294 })
7295 }),
7296 }
7297 }
7298 }
7299
7300 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigField<'de>> for ConfigField {
7301 #[inline]
7302 fn from_wire_ref(wire: &crate::wire::ConfigField<'de>) -> Self {
7303 Self {
7304 key: wire.table.get(1).map(|envelope| {
7305 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7306 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
7307 })
7308 }),
7309
7310 type_: wire.table.get(2).map(|envelope| {
7311 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7312 envelope.deref_unchecked::<crate::wire::ConfigType<'de>>()
7313 })
7314 }),
7315
7316 mutability: wire.table.get(3).map(|envelope| {
7317 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7318 envelope.deref_unchecked::<crate::wire::ConfigMutability>()
7319 })
7320 }),
7321 }
7322 }
7323 }
7324
7325 #[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"]
7326 #[derive(Debug, Default, Clone, PartialEq)]
7327 pub struct Program {
7328 pub runner: ::core::option::Option<::std::string::String>,
7329
7330 pub info: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
7331 }
7332
7333 impl Program {
7334 fn __max_ordinal(&self) -> usize {
7335 if self.info.is_some() {
7336 return 2;
7337 }
7338
7339 if self.runner.is_some() {
7340 return 1;
7341 }
7342
7343 0
7344 }
7345 }
7346
7347 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Program<'static>, ___E> for Program
7348 where
7349 ___E: ::fidl_next::Encoder + ?Sized,
7350 {
7351 #[inline]
7352 fn encode(
7353 mut self,
7354 encoder: &mut ___E,
7355 out: &mut ::core::mem::MaybeUninit<crate::wire::Program<'static>>,
7356 _: (),
7357 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7358 ::fidl_next::munge!(let crate::wire::Program { table } = out);
7359
7360 let max_ord = self.__max_ordinal();
7361
7362 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7363 ::fidl_next::Wire::zero_padding(&mut out);
7364
7365 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7366 ::fidl_next::wire::Envelope,
7367 >(encoder, max_ord);
7368
7369 for i in 1..=max_ord {
7370 match i {
7371 2 => {
7372 if let Some(value) = self.info.take() {
7373 ::fidl_next::wire::Envelope::encode_value::<
7374 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
7375 ___E,
7376 >(
7377 value, preallocated.encoder, &mut out, ()
7378 )?;
7379 } else {
7380 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7381 }
7382 }
7383
7384 1 => {
7385 if let Some(value) = self.runner.take() {
7386 ::fidl_next::wire::Envelope::encode_value::<
7387 ::fidl_next::wire::String<'static>,
7388 ___E,
7389 >(
7390 value, preallocated.encoder, &mut out, 100
7391 )?;
7392 } else {
7393 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7394 }
7395 }
7396
7397 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7398 }
7399 unsafe {
7400 preallocated.write_next(out.assume_init_ref());
7401 }
7402 }
7403
7404 ::fidl_next::wire::Table::encode_len(table, max_ord);
7405
7406 Ok(())
7407 }
7408 }
7409
7410 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Program<'static>, ___E> for &'a Program
7411 where
7412 ___E: ::fidl_next::Encoder + ?Sized,
7413 {
7414 #[inline]
7415 fn encode(
7416 self,
7417 encoder: &mut ___E,
7418 out: &mut ::core::mem::MaybeUninit<crate::wire::Program<'static>>,
7419 _: (),
7420 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7421 ::fidl_next::munge!(let crate::wire::Program { table } = out);
7422
7423 let max_ord = self.__max_ordinal();
7424
7425 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7426 ::fidl_next::Wire::zero_padding(&mut out);
7427
7428 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7429 ::fidl_next::wire::Envelope,
7430 >(encoder, max_ord);
7431
7432 for i in 1..=max_ord {
7433 match i {
7434 2 => {
7435 if let Some(value) = &self.info {
7436 ::fidl_next::wire::Envelope::encode_value::<
7437 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
7438 ___E,
7439 >(
7440 value, preallocated.encoder, &mut out, ()
7441 )?;
7442 } else {
7443 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7444 }
7445 }
7446
7447 1 => {
7448 if let Some(value) = &self.runner {
7449 ::fidl_next::wire::Envelope::encode_value::<
7450 ::fidl_next::wire::String<'static>,
7451 ___E,
7452 >(
7453 value, preallocated.encoder, &mut out, 100
7454 )?;
7455 } else {
7456 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7457 }
7458 }
7459
7460 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7461 }
7462 unsafe {
7463 preallocated.write_next(out.assume_init_ref());
7464 }
7465 }
7466
7467 ::fidl_next::wire::Table::encode_len(table, max_ord);
7468
7469 Ok(())
7470 }
7471 }
7472
7473 impl<'de> ::fidl_next::FromWire<crate::wire::Program<'de>> for Program {
7474 #[inline]
7475 fn from_wire(wire_: crate::wire::Program<'de>) -> Self {
7476 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7477
7478 let runner = wire_.table.get(1);
7479
7480 let info = wire_.table.get(2);
7481
7482 Self {
7483
7484
7485 runner: runner.map(|envelope| ::fidl_next::FromWire::from_wire(
7486 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
7487 )),
7488
7489
7490 info: info.map(|envelope| ::fidl_next::FromWire::from_wire(
7491 unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
7492 )),
7493
7494 }
7495 }
7496 }
7497
7498 impl<'de> ::fidl_next::FromWireRef<crate::wire::Program<'de>> for Program {
7499 #[inline]
7500 fn from_wire_ref(wire: &crate::wire::Program<'de>) -> Self {
7501 Self {
7502
7503
7504 runner: wire.table.get(1)
7505 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
7506 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
7507 )),
7508
7509
7510 info: wire.table.get(2)
7511 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
7512 unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
7513 )),
7514
7515 }
7516 }
7517 }
7518
7519 #[doc = " Debug information about the component.\n"]
7520 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7521 pub struct DebugInfo {
7522 pub manifest_sources: ::core::option::Option<::std::vec::Vec<::std::string::String>>,
7523 }
7524
7525 impl DebugInfo {
7526 fn __max_ordinal(&self) -> usize {
7527 if self.manifest_sources.is_some() {
7528 return 1;
7529 }
7530
7531 0
7532 }
7533 }
7534
7535 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugInfo<'static>, ___E> for DebugInfo
7536 where
7537 ___E: ::fidl_next::Encoder + ?Sized,
7538 {
7539 #[inline]
7540 fn encode(
7541 mut self,
7542 encoder: &mut ___E,
7543 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugInfo<'static>>,
7544 _: (),
7545 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7546 ::fidl_next::munge!(let crate::wire::DebugInfo { table } = out);
7547
7548 let max_ord = self.__max_ordinal();
7549
7550 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7551 ::fidl_next::Wire::zero_padding(&mut out);
7552
7553 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7554 ::fidl_next::wire::Envelope,
7555 >(encoder, max_ord);
7556
7557 for i in 1..=max_ord {
7558 match i {
7559 1 => {
7560 if let Some(value) = self.manifest_sources.take() {
7561 ::fidl_next::wire::Envelope::encode_value::<
7562 ::fidl_next::wire::Vector<
7563 'static,
7564 ::fidl_next::wire::String<'static>,
7565 >,
7566 ___E,
7567 >(
7568 value, preallocated.encoder, &mut out, (4294967295, 4294967295)
7569 )?;
7570 } else {
7571 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7572 }
7573 }
7574
7575 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7576 }
7577 unsafe {
7578 preallocated.write_next(out.assume_init_ref());
7579 }
7580 }
7581
7582 ::fidl_next::wire::Table::encode_len(table, max_ord);
7583
7584 Ok(())
7585 }
7586 }
7587
7588 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugInfo<'static>, ___E> for &'a DebugInfo
7589 where
7590 ___E: ::fidl_next::Encoder + ?Sized,
7591 {
7592 #[inline]
7593 fn encode(
7594 self,
7595 encoder: &mut ___E,
7596 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugInfo<'static>>,
7597 _: (),
7598 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7599 ::fidl_next::munge!(let crate::wire::DebugInfo { table } = out);
7600
7601 let max_ord = self.__max_ordinal();
7602
7603 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7604 ::fidl_next::Wire::zero_padding(&mut out);
7605
7606 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7607 ::fidl_next::wire::Envelope,
7608 >(encoder, max_ord);
7609
7610 for i in 1..=max_ord {
7611 match i {
7612 1 => {
7613 if let Some(value) = &self.manifest_sources {
7614 ::fidl_next::wire::Envelope::encode_value::<
7615 ::fidl_next::wire::Vector<
7616 'static,
7617 ::fidl_next::wire::String<'static>,
7618 >,
7619 ___E,
7620 >(
7621 value, preallocated.encoder, &mut out, (4294967295, 4294967295)
7622 )?;
7623 } else {
7624 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7625 }
7626 }
7627
7628 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7629 }
7630 unsafe {
7631 preallocated.write_next(out.assume_init_ref());
7632 }
7633 }
7634
7635 ::fidl_next::wire::Table::encode_len(table, max_ord);
7636
7637 Ok(())
7638 }
7639 }
7640
7641 impl<'de> ::fidl_next::FromWire<crate::wire::DebugInfo<'de>> for DebugInfo {
7642 #[inline]
7643 fn from_wire(wire_: crate::wire::DebugInfo<'de>) -> Self {
7644 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7645
7646 let manifest_sources = wire_.table.get(1);
7647
7648 Self {
7649
7650
7651 manifest_sources: manifest_sources.map(|envelope| ::fidl_next::FromWire::from_wire(
7652 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
7653 )),
7654
7655 }
7656 }
7657 }
7658
7659 impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugInfo<'de>> for DebugInfo {
7660 #[inline]
7661 fn from_wire_ref(wire: &crate::wire::DebugInfo<'de>) -> Self {
7662 Self {
7663
7664
7665 manifest_sources: wire.table.get(1)
7666 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
7667 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
7668 )),
7669
7670 }
7671 }
7672 }
7673
7674 #[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"]
7675 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7676 pub struct UseService {
7677 pub source: ::core::option::Option<crate::natural::Ref>,
7678
7679 pub source_name: ::core::option::Option<::std::string::String>,
7680
7681 pub target_path: ::core::option::Option<::std::string::String>,
7682
7683 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
7684
7685 pub availability: ::core::option::Option<crate::natural::Availability>,
7686
7687 pub source_dictionary: ::core::option::Option<::std::string::String>,
7688 }
7689
7690 impl UseService {
7691 fn __max_ordinal(&self) -> usize {
7692 if self.source_dictionary.is_some() {
7693 return 6;
7694 }
7695
7696 if self.availability.is_some() {
7697 return 5;
7698 }
7699
7700 if self.dependency_type.is_some() {
7701 return 4;
7702 }
7703
7704 if self.target_path.is_some() {
7705 return 3;
7706 }
7707
7708 if self.source_name.is_some() {
7709 return 2;
7710 }
7711
7712 if self.source.is_some() {
7713 return 1;
7714 }
7715
7716 0
7717 }
7718 }
7719
7720 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseService<'static>, ___E> for UseService
7721 where
7722 ___E: ::fidl_next::Encoder + ?Sized,
7723 {
7724 #[inline]
7725 fn encode(
7726 mut self,
7727 encoder: &mut ___E,
7728 out: &mut ::core::mem::MaybeUninit<crate::wire::UseService<'static>>,
7729 _: (),
7730 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7731 ::fidl_next::munge!(let crate::wire::UseService { table } = out);
7732
7733 let max_ord = self.__max_ordinal();
7734
7735 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7736 ::fidl_next::Wire::zero_padding(&mut out);
7737
7738 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7739 ::fidl_next::wire::Envelope,
7740 >(encoder, max_ord);
7741
7742 for i in 1..=max_ord {
7743 match i {
7744 6 => {
7745 if let Some(value) = self.source_dictionary.take() {
7746 ::fidl_next::wire::Envelope::encode_value::<
7747 ::fidl_next::wire::String<'static>,
7748 ___E,
7749 >(
7750 value, preallocated.encoder, &mut out, 1024
7751 )?;
7752 } else {
7753 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7754 }
7755 }
7756
7757 5 => {
7758 if let Some(value) = self.availability.take() {
7759 ::fidl_next::wire::Envelope::encode_value::<
7760 crate::wire::Availability,
7761 ___E,
7762 >(
7763 value, preallocated.encoder, &mut out, ()
7764 )?;
7765 } else {
7766 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7767 }
7768 }
7769
7770 4 => {
7771 if let Some(value) = self.dependency_type.take() {
7772 ::fidl_next::wire::Envelope::encode_value::<
7773 crate::wire::DependencyType,
7774 ___E,
7775 >(
7776 value, preallocated.encoder, &mut out, ()
7777 )?;
7778 } else {
7779 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7780 }
7781 }
7782
7783 3 => {
7784 if let Some(value) = self.target_path.take() {
7785 ::fidl_next::wire::Envelope::encode_value::<
7786 ::fidl_next::wire::String<'static>,
7787 ___E,
7788 >(
7789 value, preallocated.encoder, &mut out, 1024
7790 )?;
7791 } else {
7792 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7793 }
7794 }
7795
7796 2 => {
7797 if let Some(value) = self.source_name.take() {
7798 ::fidl_next::wire::Envelope::encode_value::<
7799 ::fidl_next::wire::String<'static>,
7800 ___E,
7801 >(
7802 value, preallocated.encoder, &mut out, 100
7803 )?;
7804 } else {
7805 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7806 }
7807 }
7808
7809 1 => {
7810 if let Some(value) = self.source.take() {
7811 ::fidl_next::wire::Envelope::encode_value::<
7812 crate::wire::Ref<'static>,
7813 ___E,
7814 >(
7815 value, preallocated.encoder, &mut out, ()
7816 )?;
7817 } else {
7818 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7819 }
7820 }
7821
7822 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7823 }
7824 unsafe {
7825 preallocated.write_next(out.assume_init_ref());
7826 }
7827 }
7828
7829 ::fidl_next::wire::Table::encode_len(table, max_ord);
7830
7831 Ok(())
7832 }
7833 }
7834
7835 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseService<'static>, ___E> for &'a UseService
7836 where
7837 ___E: ::fidl_next::Encoder + ?Sized,
7838 {
7839 #[inline]
7840 fn encode(
7841 self,
7842 encoder: &mut ___E,
7843 out: &mut ::core::mem::MaybeUninit<crate::wire::UseService<'static>>,
7844 _: (),
7845 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7846 ::fidl_next::munge!(let crate::wire::UseService { table } = out);
7847
7848 let max_ord = self.__max_ordinal();
7849
7850 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7851 ::fidl_next::Wire::zero_padding(&mut out);
7852
7853 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7854 ::fidl_next::wire::Envelope,
7855 >(encoder, max_ord);
7856
7857 for i in 1..=max_ord {
7858 match i {
7859 6 => {
7860 if let Some(value) = &self.source_dictionary {
7861 ::fidl_next::wire::Envelope::encode_value::<
7862 ::fidl_next::wire::String<'static>,
7863 ___E,
7864 >(
7865 value, preallocated.encoder, &mut out, 1024
7866 )?;
7867 } else {
7868 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7869 }
7870 }
7871
7872 5 => {
7873 if let Some(value) = &self.availability {
7874 ::fidl_next::wire::Envelope::encode_value::<
7875 crate::wire::Availability,
7876 ___E,
7877 >(
7878 value, preallocated.encoder, &mut out, ()
7879 )?;
7880 } else {
7881 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7882 }
7883 }
7884
7885 4 => {
7886 if let Some(value) = &self.dependency_type {
7887 ::fidl_next::wire::Envelope::encode_value::<
7888 crate::wire::DependencyType,
7889 ___E,
7890 >(
7891 value, preallocated.encoder, &mut out, ()
7892 )?;
7893 } else {
7894 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7895 }
7896 }
7897
7898 3 => {
7899 if let Some(value) = &self.target_path {
7900 ::fidl_next::wire::Envelope::encode_value::<
7901 ::fidl_next::wire::String<'static>,
7902 ___E,
7903 >(
7904 value, preallocated.encoder, &mut out, 1024
7905 )?;
7906 } else {
7907 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7908 }
7909 }
7910
7911 2 => {
7912 if let Some(value) = &self.source_name {
7913 ::fidl_next::wire::Envelope::encode_value::<
7914 ::fidl_next::wire::String<'static>,
7915 ___E,
7916 >(
7917 value, preallocated.encoder, &mut out, 100
7918 )?;
7919 } else {
7920 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7921 }
7922 }
7923
7924 1 => {
7925 if let Some(value) = &self.source {
7926 ::fidl_next::wire::Envelope::encode_value::<
7927 crate::wire::Ref<'static>,
7928 ___E,
7929 >(
7930 value, preallocated.encoder, &mut out, ()
7931 )?;
7932 } else {
7933 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7934 }
7935 }
7936
7937 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7938 }
7939 unsafe {
7940 preallocated.write_next(out.assume_init_ref());
7941 }
7942 }
7943
7944 ::fidl_next::wire::Table::encode_len(table, max_ord);
7945
7946 Ok(())
7947 }
7948 }
7949
7950 impl<'de> ::fidl_next::FromWire<crate::wire::UseService<'de>> for UseService {
7951 #[inline]
7952 fn from_wire(wire_: crate::wire::UseService<'de>) -> Self {
7953 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7954
7955 let source = wire_.table.get(1);
7956
7957 let source_name = wire_.table.get(2);
7958
7959 let target_path = wire_.table.get(3);
7960
7961 let dependency_type = wire_.table.get(4);
7962
7963 let availability = wire_.table.get(5);
7964
7965 let source_dictionary = wire_.table.get(6);
7966
7967 Self {
7968 source: source.map(|envelope| {
7969 ::fidl_next::FromWire::from_wire(unsafe {
7970 envelope.read_unchecked::<crate::wire::Ref<'de>>()
7971 })
7972 }),
7973
7974 source_name: source_name.map(|envelope| {
7975 ::fidl_next::FromWire::from_wire(unsafe {
7976 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
7977 })
7978 }),
7979
7980 target_path: target_path.map(|envelope| {
7981 ::fidl_next::FromWire::from_wire(unsafe {
7982 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
7983 })
7984 }),
7985
7986 dependency_type: dependency_type.map(|envelope| {
7987 ::fidl_next::FromWire::from_wire(unsafe {
7988 envelope.read_unchecked::<crate::wire::DependencyType>()
7989 })
7990 }),
7991
7992 availability: availability.map(|envelope| {
7993 ::fidl_next::FromWire::from_wire(unsafe {
7994 envelope.read_unchecked::<crate::wire::Availability>()
7995 })
7996 }),
7997
7998 source_dictionary: source_dictionary.map(|envelope| {
7999 ::fidl_next::FromWire::from_wire(unsafe {
8000 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8001 })
8002 }),
8003 }
8004 }
8005 }
8006
8007 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseService<'de>> for UseService {
8008 #[inline]
8009 fn from_wire_ref(wire: &crate::wire::UseService<'de>) -> Self {
8010 Self {
8011 source: wire.table.get(1).map(|envelope| {
8012 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8013 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
8014 })
8015 }),
8016
8017 source_name: wire.table.get(2).map(|envelope| {
8018 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8019 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8020 })
8021 }),
8022
8023 target_path: wire.table.get(3).map(|envelope| {
8024 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8025 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8026 })
8027 }),
8028
8029 dependency_type: wire.table.get(4).map(|envelope| {
8030 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8031 envelope.deref_unchecked::<crate::wire::DependencyType>()
8032 })
8033 }),
8034
8035 availability: wire.table.get(5).map(|envelope| {
8036 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8037 envelope.deref_unchecked::<crate::wire::Availability>()
8038 })
8039 }),
8040
8041 source_dictionary: wire.table.get(6).map(|envelope| {
8042 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8043 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8044 })
8045 }),
8046 }
8047 }
8048 }
8049
8050 #[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"]
8051 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8052 pub struct UseProtocol {
8053 pub source: ::core::option::Option<crate::natural::Ref>,
8054
8055 pub source_name: ::core::option::Option<::std::string::String>,
8056
8057 pub target_path: ::core::option::Option<::std::string::String>,
8058
8059 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
8060
8061 pub availability: ::core::option::Option<crate::natural::Availability>,
8062
8063 pub source_dictionary: ::core::option::Option<::std::string::String>,
8064
8065 pub numbered_handle: ::core::option::Option<u8>,
8066 }
8067
8068 impl UseProtocol {
8069 fn __max_ordinal(&self) -> usize {
8070 if self.numbered_handle.is_some() {
8071 return 7;
8072 }
8073
8074 if self.source_dictionary.is_some() {
8075 return 6;
8076 }
8077
8078 if self.availability.is_some() {
8079 return 5;
8080 }
8081
8082 if self.dependency_type.is_some() {
8083 return 4;
8084 }
8085
8086 if self.target_path.is_some() {
8087 return 3;
8088 }
8089
8090 if self.source_name.is_some() {
8091 return 2;
8092 }
8093
8094 if self.source.is_some() {
8095 return 1;
8096 }
8097
8098 0
8099 }
8100 }
8101
8102 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseProtocol<'static>, ___E> for UseProtocol
8103 where
8104 ___E: ::fidl_next::Encoder + ?Sized,
8105 {
8106 #[inline]
8107 fn encode(
8108 mut self,
8109 encoder: &mut ___E,
8110 out: &mut ::core::mem::MaybeUninit<crate::wire::UseProtocol<'static>>,
8111 _: (),
8112 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8113 ::fidl_next::munge!(let crate::wire::UseProtocol { table } = out);
8114
8115 let max_ord = self.__max_ordinal();
8116
8117 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8118 ::fidl_next::Wire::zero_padding(&mut out);
8119
8120 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8121 ::fidl_next::wire::Envelope,
8122 >(encoder, max_ord);
8123
8124 for i in 1..=max_ord {
8125 match i {
8126 7 => {
8127 if let Some(value) = self.numbered_handle.take() {
8128 ::fidl_next::wire::Envelope::encode_value::<u8, ___E>(
8129 value,
8130 preallocated.encoder,
8131 &mut out,
8132 (),
8133 )?;
8134 } else {
8135 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8136 }
8137 }
8138
8139 6 => {
8140 if let Some(value) = self.source_dictionary.take() {
8141 ::fidl_next::wire::Envelope::encode_value::<
8142 ::fidl_next::wire::String<'static>,
8143 ___E,
8144 >(
8145 value, preallocated.encoder, &mut out, 1024
8146 )?;
8147 } else {
8148 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8149 }
8150 }
8151
8152 5 => {
8153 if let Some(value) = self.availability.take() {
8154 ::fidl_next::wire::Envelope::encode_value::<
8155 crate::wire::Availability,
8156 ___E,
8157 >(
8158 value, preallocated.encoder, &mut out, ()
8159 )?;
8160 } else {
8161 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8162 }
8163 }
8164
8165 4 => {
8166 if let Some(value) = self.dependency_type.take() {
8167 ::fidl_next::wire::Envelope::encode_value::<
8168 crate::wire::DependencyType,
8169 ___E,
8170 >(
8171 value, preallocated.encoder, &mut out, ()
8172 )?;
8173 } else {
8174 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8175 }
8176 }
8177
8178 3 => {
8179 if let Some(value) = self.target_path.take() {
8180 ::fidl_next::wire::Envelope::encode_value::<
8181 ::fidl_next::wire::String<'static>,
8182 ___E,
8183 >(
8184 value, preallocated.encoder, &mut out, 1024
8185 )?;
8186 } else {
8187 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8188 }
8189 }
8190
8191 2 => {
8192 if let Some(value) = self.source_name.take() {
8193 ::fidl_next::wire::Envelope::encode_value::<
8194 ::fidl_next::wire::String<'static>,
8195 ___E,
8196 >(
8197 value, preallocated.encoder, &mut out, 100
8198 )?;
8199 } else {
8200 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8201 }
8202 }
8203
8204 1 => {
8205 if let Some(value) = self.source.take() {
8206 ::fidl_next::wire::Envelope::encode_value::<
8207 crate::wire::Ref<'static>,
8208 ___E,
8209 >(
8210 value, preallocated.encoder, &mut out, ()
8211 )?;
8212 } else {
8213 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8214 }
8215 }
8216
8217 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8218 }
8219 unsafe {
8220 preallocated.write_next(out.assume_init_ref());
8221 }
8222 }
8223
8224 ::fidl_next::wire::Table::encode_len(table, max_ord);
8225
8226 Ok(())
8227 }
8228 }
8229
8230 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseProtocol<'static>, ___E>
8231 for &'a UseProtocol
8232 where
8233 ___E: ::fidl_next::Encoder + ?Sized,
8234 {
8235 #[inline]
8236 fn encode(
8237 self,
8238 encoder: &mut ___E,
8239 out: &mut ::core::mem::MaybeUninit<crate::wire::UseProtocol<'static>>,
8240 _: (),
8241 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8242 ::fidl_next::munge!(let crate::wire::UseProtocol { table } = out);
8243
8244 let max_ord = self.__max_ordinal();
8245
8246 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8247 ::fidl_next::Wire::zero_padding(&mut out);
8248
8249 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8250 ::fidl_next::wire::Envelope,
8251 >(encoder, max_ord);
8252
8253 for i in 1..=max_ord {
8254 match i {
8255 7 => {
8256 if let Some(value) = &self.numbered_handle {
8257 ::fidl_next::wire::Envelope::encode_value::<u8, ___E>(
8258 value,
8259 preallocated.encoder,
8260 &mut out,
8261 (),
8262 )?;
8263 } else {
8264 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8265 }
8266 }
8267
8268 6 => {
8269 if let Some(value) = &self.source_dictionary {
8270 ::fidl_next::wire::Envelope::encode_value::<
8271 ::fidl_next::wire::String<'static>,
8272 ___E,
8273 >(
8274 value, preallocated.encoder, &mut out, 1024
8275 )?;
8276 } else {
8277 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8278 }
8279 }
8280
8281 5 => {
8282 if let Some(value) = &self.availability {
8283 ::fidl_next::wire::Envelope::encode_value::<
8284 crate::wire::Availability,
8285 ___E,
8286 >(
8287 value, preallocated.encoder, &mut out, ()
8288 )?;
8289 } else {
8290 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8291 }
8292 }
8293
8294 4 => {
8295 if let Some(value) = &self.dependency_type {
8296 ::fidl_next::wire::Envelope::encode_value::<
8297 crate::wire::DependencyType,
8298 ___E,
8299 >(
8300 value, preallocated.encoder, &mut out, ()
8301 )?;
8302 } else {
8303 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8304 }
8305 }
8306
8307 3 => {
8308 if let Some(value) = &self.target_path {
8309 ::fidl_next::wire::Envelope::encode_value::<
8310 ::fidl_next::wire::String<'static>,
8311 ___E,
8312 >(
8313 value, preallocated.encoder, &mut out, 1024
8314 )?;
8315 } else {
8316 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8317 }
8318 }
8319
8320 2 => {
8321 if let Some(value) = &self.source_name {
8322 ::fidl_next::wire::Envelope::encode_value::<
8323 ::fidl_next::wire::String<'static>,
8324 ___E,
8325 >(
8326 value, preallocated.encoder, &mut out, 100
8327 )?;
8328 } else {
8329 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8330 }
8331 }
8332
8333 1 => {
8334 if let Some(value) = &self.source {
8335 ::fidl_next::wire::Envelope::encode_value::<
8336 crate::wire::Ref<'static>,
8337 ___E,
8338 >(
8339 value, preallocated.encoder, &mut out, ()
8340 )?;
8341 } else {
8342 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8343 }
8344 }
8345
8346 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8347 }
8348 unsafe {
8349 preallocated.write_next(out.assume_init_ref());
8350 }
8351 }
8352
8353 ::fidl_next::wire::Table::encode_len(table, max_ord);
8354
8355 Ok(())
8356 }
8357 }
8358
8359 impl<'de> ::fidl_next::FromWire<crate::wire::UseProtocol<'de>> for UseProtocol {
8360 #[inline]
8361 fn from_wire(wire_: crate::wire::UseProtocol<'de>) -> Self {
8362 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8363
8364 let source = wire_.table.get(1);
8365
8366 let source_name = wire_.table.get(2);
8367
8368 let target_path = wire_.table.get(3);
8369
8370 let dependency_type = wire_.table.get(4);
8371
8372 let availability = wire_.table.get(5);
8373
8374 let source_dictionary = wire_.table.get(6);
8375
8376 let numbered_handle = wire_.table.get(7);
8377
8378 Self {
8379 source: source.map(|envelope| {
8380 ::fidl_next::FromWire::from_wire(unsafe {
8381 envelope.read_unchecked::<crate::wire::Ref<'de>>()
8382 })
8383 }),
8384
8385 source_name: source_name.map(|envelope| {
8386 ::fidl_next::FromWire::from_wire(unsafe {
8387 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8388 })
8389 }),
8390
8391 target_path: target_path.map(|envelope| {
8392 ::fidl_next::FromWire::from_wire(unsafe {
8393 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8394 })
8395 }),
8396
8397 dependency_type: dependency_type.map(|envelope| {
8398 ::fidl_next::FromWire::from_wire(unsafe {
8399 envelope.read_unchecked::<crate::wire::DependencyType>()
8400 })
8401 }),
8402
8403 availability: availability.map(|envelope| {
8404 ::fidl_next::FromWire::from_wire(unsafe {
8405 envelope.read_unchecked::<crate::wire::Availability>()
8406 })
8407 }),
8408
8409 source_dictionary: source_dictionary.map(|envelope| {
8410 ::fidl_next::FromWire::from_wire(unsafe {
8411 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8412 })
8413 }),
8414
8415 numbered_handle: numbered_handle.map(|envelope| {
8416 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<u8>() })
8417 }),
8418 }
8419 }
8420 }
8421
8422 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseProtocol<'de>> for UseProtocol {
8423 #[inline]
8424 fn from_wire_ref(wire: &crate::wire::UseProtocol<'de>) -> Self {
8425 Self {
8426 source: wire.table.get(1).map(|envelope| {
8427 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8428 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
8429 })
8430 }),
8431
8432 source_name: wire.table.get(2).map(|envelope| {
8433 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8434 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8435 })
8436 }),
8437
8438 target_path: wire.table.get(3).map(|envelope| {
8439 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8440 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8441 })
8442 }),
8443
8444 dependency_type: wire.table.get(4).map(|envelope| {
8445 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8446 envelope.deref_unchecked::<crate::wire::DependencyType>()
8447 })
8448 }),
8449
8450 availability: wire.table.get(5).map(|envelope| {
8451 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8452 envelope.deref_unchecked::<crate::wire::Availability>()
8453 })
8454 }),
8455
8456 source_dictionary: wire.table.get(6).map(|envelope| {
8457 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8458 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8459 })
8460 }),
8461
8462 numbered_handle: wire.table.get(7).map(|envelope| {
8463 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8464 envelope.deref_unchecked::<u8>()
8465 })
8466 }),
8467 }
8468 }
8469 }
8470
8471 #[doc = " Declares a directory used by a component, which was offered to it.\n"]
8472 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8473 pub struct UseDirectory {
8474 pub source: ::core::option::Option<crate::natural::Ref>,
8475
8476 pub source_name: ::core::option::Option<::std::string::String>,
8477
8478 pub target_path: ::core::option::Option<::std::string::String>,
8479
8480 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
8481
8482 pub subdir: ::core::option::Option<::std::string::String>,
8483
8484 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
8485
8486 pub availability: ::core::option::Option<crate::natural::Availability>,
8487
8488 pub source_dictionary: ::core::option::Option<::std::string::String>,
8489 }
8490
8491 impl UseDirectory {
8492 fn __max_ordinal(&self) -> usize {
8493 if self.source_dictionary.is_some() {
8494 return 8;
8495 }
8496
8497 if self.availability.is_some() {
8498 return 7;
8499 }
8500
8501 if self.dependency_type.is_some() {
8502 return 6;
8503 }
8504
8505 if self.subdir.is_some() {
8506 return 5;
8507 }
8508
8509 if self.rights.is_some() {
8510 return 4;
8511 }
8512
8513 if self.target_path.is_some() {
8514 return 3;
8515 }
8516
8517 if self.source_name.is_some() {
8518 return 2;
8519 }
8520
8521 if self.source.is_some() {
8522 return 1;
8523 }
8524
8525 0
8526 }
8527 }
8528
8529 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseDirectory<'static>, ___E> for UseDirectory
8530 where
8531 ___E: ::fidl_next::Encoder + ?Sized,
8532 {
8533 #[inline]
8534 fn encode(
8535 mut self,
8536 encoder: &mut ___E,
8537 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDirectory<'static>>,
8538 _: (),
8539 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8540 ::fidl_next::munge!(let crate::wire::UseDirectory { table } = out);
8541
8542 let max_ord = self.__max_ordinal();
8543
8544 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8545 ::fidl_next::Wire::zero_padding(&mut out);
8546
8547 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8548 ::fidl_next::wire::Envelope,
8549 >(encoder, max_ord);
8550
8551 for i in 1..=max_ord {
8552 match i {
8553 8 => {
8554 if let Some(value) = self.source_dictionary.take() {
8555 ::fidl_next::wire::Envelope::encode_value::<
8556 ::fidl_next::wire::String<'static>,
8557 ___E,
8558 >(
8559 value, preallocated.encoder, &mut out, 1024
8560 )?;
8561 } else {
8562 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8563 }
8564 }
8565
8566 7 => {
8567 if let Some(value) = self.availability.take() {
8568 ::fidl_next::wire::Envelope::encode_value::<
8569 crate::wire::Availability,
8570 ___E,
8571 >(
8572 value, preallocated.encoder, &mut out, ()
8573 )?;
8574 } else {
8575 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8576 }
8577 }
8578
8579 6 => {
8580 if let Some(value) = self.dependency_type.take() {
8581 ::fidl_next::wire::Envelope::encode_value::<
8582 crate::wire::DependencyType,
8583 ___E,
8584 >(
8585 value, preallocated.encoder, &mut out, ()
8586 )?;
8587 } else {
8588 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8589 }
8590 }
8591
8592 5 => {
8593 if let Some(value) = self.subdir.take() {
8594 ::fidl_next::wire::Envelope::encode_value::<
8595 ::fidl_next::wire::String<'static>,
8596 ___E,
8597 >(
8598 value, preallocated.encoder, &mut out, 1024
8599 )?;
8600 } else {
8601 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8602 }
8603 }
8604
8605 4 => {
8606 if let Some(value) = self.rights.take() {
8607 ::fidl_next::wire::Envelope::encode_value::<
8608 ::fidl_next_common_fuchsia_io::wire::Operations,
8609 ___E,
8610 >(
8611 value, preallocated.encoder, &mut out, ()
8612 )?;
8613 } else {
8614 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8615 }
8616 }
8617
8618 3 => {
8619 if let Some(value) = self.target_path.take() {
8620 ::fidl_next::wire::Envelope::encode_value::<
8621 ::fidl_next::wire::String<'static>,
8622 ___E,
8623 >(
8624 value, preallocated.encoder, &mut out, 1024
8625 )?;
8626 } else {
8627 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8628 }
8629 }
8630
8631 2 => {
8632 if let Some(value) = self.source_name.take() {
8633 ::fidl_next::wire::Envelope::encode_value::<
8634 ::fidl_next::wire::String<'static>,
8635 ___E,
8636 >(
8637 value, preallocated.encoder, &mut out, 100
8638 )?;
8639 } else {
8640 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8641 }
8642 }
8643
8644 1 => {
8645 if let Some(value) = self.source.take() {
8646 ::fidl_next::wire::Envelope::encode_value::<
8647 crate::wire::Ref<'static>,
8648 ___E,
8649 >(
8650 value, preallocated.encoder, &mut out, ()
8651 )?;
8652 } else {
8653 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8654 }
8655 }
8656
8657 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8658 }
8659 unsafe {
8660 preallocated.write_next(out.assume_init_ref());
8661 }
8662 }
8663
8664 ::fidl_next::wire::Table::encode_len(table, max_ord);
8665
8666 Ok(())
8667 }
8668 }
8669
8670 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseDirectory<'static>, ___E>
8671 for &'a UseDirectory
8672 where
8673 ___E: ::fidl_next::Encoder + ?Sized,
8674 {
8675 #[inline]
8676 fn encode(
8677 self,
8678 encoder: &mut ___E,
8679 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDirectory<'static>>,
8680 _: (),
8681 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8682 ::fidl_next::munge!(let crate::wire::UseDirectory { table } = out);
8683
8684 let max_ord = self.__max_ordinal();
8685
8686 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8687 ::fidl_next::Wire::zero_padding(&mut out);
8688
8689 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8690 ::fidl_next::wire::Envelope,
8691 >(encoder, max_ord);
8692
8693 for i in 1..=max_ord {
8694 match i {
8695 8 => {
8696 if let Some(value) = &self.source_dictionary {
8697 ::fidl_next::wire::Envelope::encode_value::<
8698 ::fidl_next::wire::String<'static>,
8699 ___E,
8700 >(
8701 value, preallocated.encoder, &mut out, 1024
8702 )?;
8703 } else {
8704 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8705 }
8706 }
8707
8708 7 => {
8709 if let Some(value) = &self.availability {
8710 ::fidl_next::wire::Envelope::encode_value::<
8711 crate::wire::Availability,
8712 ___E,
8713 >(
8714 value, preallocated.encoder, &mut out, ()
8715 )?;
8716 } else {
8717 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8718 }
8719 }
8720
8721 6 => {
8722 if let Some(value) = &self.dependency_type {
8723 ::fidl_next::wire::Envelope::encode_value::<
8724 crate::wire::DependencyType,
8725 ___E,
8726 >(
8727 value, preallocated.encoder, &mut out, ()
8728 )?;
8729 } else {
8730 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8731 }
8732 }
8733
8734 5 => {
8735 if let Some(value) = &self.subdir {
8736 ::fidl_next::wire::Envelope::encode_value::<
8737 ::fidl_next::wire::String<'static>,
8738 ___E,
8739 >(
8740 value, preallocated.encoder, &mut out, 1024
8741 )?;
8742 } else {
8743 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8744 }
8745 }
8746
8747 4 => {
8748 if let Some(value) = &self.rights {
8749 ::fidl_next::wire::Envelope::encode_value::<
8750 ::fidl_next_common_fuchsia_io::wire::Operations,
8751 ___E,
8752 >(
8753 value, preallocated.encoder, &mut out, ()
8754 )?;
8755 } else {
8756 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8757 }
8758 }
8759
8760 3 => {
8761 if let Some(value) = &self.target_path {
8762 ::fidl_next::wire::Envelope::encode_value::<
8763 ::fidl_next::wire::String<'static>,
8764 ___E,
8765 >(
8766 value, preallocated.encoder, &mut out, 1024
8767 )?;
8768 } else {
8769 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8770 }
8771 }
8772
8773 2 => {
8774 if let Some(value) = &self.source_name {
8775 ::fidl_next::wire::Envelope::encode_value::<
8776 ::fidl_next::wire::String<'static>,
8777 ___E,
8778 >(
8779 value, preallocated.encoder, &mut out, 100
8780 )?;
8781 } else {
8782 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8783 }
8784 }
8785
8786 1 => {
8787 if let Some(value) = &self.source {
8788 ::fidl_next::wire::Envelope::encode_value::<
8789 crate::wire::Ref<'static>,
8790 ___E,
8791 >(
8792 value, preallocated.encoder, &mut out, ()
8793 )?;
8794 } else {
8795 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8796 }
8797 }
8798
8799 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8800 }
8801 unsafe {
8802 preallocated.write_next(out.assume_init_ref());
8803 }
8804 }
8805
8806 ::fidl_next::wire::Table::encode_len(table, max_ord);
8807
8808 Ok(())
8809 }
8810 }
8811
8812 impl<'de> ::fidl_next::FromWire<crate::wire::UseDirectory<'de>> for UseDirectory {
8813 #[inline]
8814 fn from_wire(wire_: crate::wire::UseDirectory<'de>) -> Self {
8815 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8816
8817 let source = wire_.table.get(1);
8818
8819 let source_name = wire_.table.get(2);
8820
8821 let target_path = wire_.table.get(3);
8822
8823 let rights = wire_.table.get(4);
8824
8825 let subdir = wire_.table.get(5);
8826
8827 let dependency_type = wire_.table.get(6);
8828
8829 let availability = wire_.table.get(7);
8830
8831 let source_dictionary = wire_.table.get(8);
8832
8833 Self {
8834 source: source.map(|envelope| {
8835 ::fidl_next::FromWire::from_wire(unsafe {
8836 envelope.read_unchecked::<crate::wire::Ref<'de>>()
8837 })
8838 }),
8839
8840 source_name: source_name.map(|envelope| {
8841 ::fidl_next::FromWire::from_wire(unsafe {
8842 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8843 })
8844 }),
8845
8846 target_path: target_path.map(|envelope| {
8847 ::fidl_next::FromWire::from_wire(unsafe {
8848 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8849 })
8850 }),
8851
8852 rights: rights.map(|envelope| {
8853 ::fidl_next::FromWire::from_wire(unsafe {
8854 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
8855 })
8856 }),
8857
8858 subdir: subdir.map(|envelope| {
8859 ::fidl_next::FromWire::from_wire(unsafe {
8860 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8861 })
8862 }),
8863
8864 dependency_type: dependency_type.map(|envelope| {
8865 ::fidl_next::FromWire::from_wire(unsafe {
8866 envelope.read_unchecked::<crate::wire::DependencyType>()
8867 })
8868 }),
8869
8870 availability: availability.map(|envelope| {
8871 ::fidl_next::FromWire::from_wire(unsafe {
8872 envelope.read_unchecked::<crate::wire::Availability>()
8873 })
8874 }),
8875
8876 source_dictionary: source_dictionary.map(|envelope| {
8877 ::fidl_next::FromWire::from_wire(unsafe {
8878 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8879 })
8880 }),
8881 }
8882 }
8883 }
8884
8885 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseDirectory<'de>> for UseDirectory {
8886 #[inline]
8887 fn from_wire_ref(wire: &crate::wire::UseDirectory<'de>) -> Self {
8888 Self {
8889 source: wire.table.get(1).map(|envelope| {
8890 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8891 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
8892 })
8893 }),
8894
8895 source_name: wire.table.get(2).map(|envelope| {
8896 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8897 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8898 })
8899 }),
8900
8901 target_path: wire.table.get(3).map(|envelope| {
8902 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8903 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8904 })
8905 }),
8906
8907 rights: wire.table.get(4).map(|envelope| {
8908 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8909 envelope
8910 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
8911 })
8912 }),
8913
8914 subdir: wire.table.get(5).map(|envelope| {
8915 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8916 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8917 })
8918 }),
8919
8920 dependency_type: wire.table.get(6).map(|envelope| {
8921 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8922 envelope.deref_unchecked::<crate::wire::DependencyType>()
8923 })
8924 }),
8925
8926 availability: wire.table.get(7).map(|envelope| {
8927 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8928 envelope.deref_unchecked::<crate::wire::Availability>()
8929 })
8930 }),
8931
8932 source_dictionary: wire.table.get(8).map(|envelope| {
8933 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8934 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8935 })
8936 }),
8937 }
8938 }
8939 }
8940
8941 #[doc = " Declares an EventStream used by a component.\n"]
8942 #[derive(Debug, Default, Clone, PartialEq)]
8943 pub struct UseEventStream {
8944 pub source_name: ::core::option::Option<::std::string::String>,
8945
8946 pub source: ::core::option::Option<crate::natural::Ref>,
8947
8948 pub scope: ::core::option::Option<::std::vec::Vec<crate::natural::Ref>>,
8949
8950 pub target_path: ::core::option::Option<::std::string::String>,
8951
8952 pub availability: ::core::option::Option<crate::natural::Availability>,
8953
8954 pub filter: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
8955 }
8956
8957 impl UseEventStream {
8958 fn __max_ordinal(&self) -> usize {
8959 if self.filter.is_some() {
8960 return 6;
8961 }
8962
8963 if self.availability.is_some() {
8964 return 5;
8965 }
8966
8967 if self.target_path.is_some() {
8968 return 4;
8969 }
8970
8971 if self.scope.is_some() {
8972 return 3;
8973 }
8974
8975 if self.source.is_some() {
8976 return 2;
8977 }
8978
8979 if self.source_name.is_some() {
8980 return 1;
8981 }
8982
8983 0
8984 }
8985 }
8986
8987 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseEventStream<'static>, ___E> for UseEventStream
8988 where
8989 ___E: ::fidl_next::Encoder + ?Sized,
8990 {
8991 #[inline]
8992 fn encode(
8993 mut self,
8994 encoder: &mut ___E,
8995 out: &mut ::core::mem::MaybeUninit<crate::wire::UseEventStream<'static>>,
8996 _: (),
8997 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8998 ::fidl_next::munge!(let crate::wire::UseEventStream { table } = out);
8999
9000 let max_ord = self.__max_ordinal();
9001
9002 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9003 ::fidl_next::Wire::zero_padding(&mut out);
9004
9005 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9006 ::fidl_next::wire::Envelope,
9007 >(encoder, max_ord);
9008
9009 for i in 1..=max_ord {
9010 match i {
9011 6 => {
9012 if let Some(value) = self.filter.take() {
9013 ::fidl_next::wire::Envelope::encode_value::<
9014 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
9015 ___E,
9016 >(
9017 value, preallocated.encoder, &mut out, ()
9018 )?;
9019 } else {
9020 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9021 }
9022 }
9023
9024 5 => {
9025 if let Some(value) = self.availability.take() {
9026 ::fidl_next::wire::Envelope::encode_value::<
9027 crate::wire::Availability,
9028 ___E,
9029 >(
9030 value, preallocated.encoder, &mut out, ()
9031 )?;
9032 } else {
9033 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9034 }
9035 }
9036
9037 4 => {
9038 if let Some(value) = self.target_path.take() {
9039 ::fidl_next::wire::Envelope::encode_value::<
9040 ::fidl_next::wire::String<'static>,
9041 ___E,
9042 >(
9043 value, preallocated.encoder, &mut out, 100
9044 )?;
9045 } else {
9046 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9047 }
9048 }
9049
9050 3 => {
9051 if let Some(value) = self.scope.take() {
9052 ::fidl_next::wire::Envelope::encode_value::<
9053 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
9054 ___E,
9055 >(
9056 value, preallocated.encoder, &mut out, (4294967295, ())
9057 )?;
9058 } else {
9059 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9060 }
9061 }
9062
9063 2 => {
9064 if let Some(value) = self.source.take() {
9065 ::fidl_next::wire::Envelope::encode_value::<
9066 crate::wire::Ref<'static>,
9067 ___E,
9068 >(
9069 value, preallocated.encoder, &mut out, ()
9070 )?;
9071 } else {
9072 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9073 }
9074 }
9075
9076 1 => {
9077 if let Some(value) = self.source_name.take() {
9078 ::fidl_next::wire::Envelope::encode_value::<
9079 ::fidl_next::wire::String<'static>,
9080 ___E,
9081 >(
9082 value, preallocated.encoder, &mut out, 100
9083 )?;
9084 } else {
9085 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9086 }
9087 }
9088
9089 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9090 }
9091 unsafe {
9092 preallocated.write_next(out.assume_init_ref());
9093 }
9094 }
9095
9096 ::fidl_next::wire::Table::encode_len(table, max_ord);
9097
9098 Ok(())
9099 }
9100 }
9101
9102 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseEventStream<'static>, ___E>
9103 for &'a UseEventStream
9104 where
9105 ___E: ::fidl_next::Encoder + ?Sized,
9106 {
9107 #[inline]
9108 fn encode(
9109 self,
9110 encoder: &mut ___E,
9111 out: &mut ::core::mem::MaybeUninit<crate::wire::UseEventStream<'static>>,
9112 _: (),
9113 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9114 ::fidl_next::munge!(let crate::wire::UseEventStream { table } = out);
9115
9116 let max_ord = self.__max_ordinal();
9117
9118 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9119 ::fidl_next::Wire::zero_padding(&mut out);
9120
9121 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9122 ::fidl_next::wire::Envelope,
9123 >(encoder, max_ord);
9124
9125 for i in 1..=max_ord {
9126 match i {
9127 6 => {
9128 if let Some(value) = &self.filter {
9129 ::fidl_next::wire::Envelope::encode_value::<
9130 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
9131 ___E,
9132 >(
9133 value, preallocated.encoder, &mut out, ()
9134 )?;
9135 } else {
9136 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9137 }
9138 }
9139
9140 5 => {
9141 if let Some(value) = &self.availability {
9142 ::fidl_next::wire::Envelope::encode_value::<
9143 crate::wire::Availability,
9144 ___E,
9145 >(
9146 value, preallocated.encoder, &mut out, ()
9147 )?;
9148 } else {
9149 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9150 }
9151 }
9152
9153 4 => {
9154 if let Some(value) = &self.target_path {
9155 ::fidl_next::wire::Envelope::encode_value::<
9156 ::fidl_next::wire::String<'static>,
9157 ___E,
9158 >(
9159 value, preallocated.encoder, &mut out, 100
9160 )?;
9161 } else {
9162 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9163 }
9164 }
9165
9166 3 => {
9167 if let Some(value) = &self.scope {
9168 ::fidl_next::wire::Envelope::encode_value::<
9169 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
9170 ___E,
9171 >(
9172 value, preallocated.encoder, &mut out, (4294967295, ())
9173 )?;
9174 } else {
9175 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9176 }
9177 }
9178
9179 2 => {
9180 if let Some(value) = &self.source {
9181 ::fidl_next::wire::Envelope::encode_value::<
9182 crate::wire::Ref<'static>,
9183 ___E,
9184 >(
9185 value, preallocated.encoder, &mut out, ()
9186 )?;
9187 } else {
9188 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9189 }
9190 }
9191
9192 1 => {
9193 if let Some(value) = &self.source_name {
9194 ::fidl_next::wire::Envelope::encode_value::<
9195 ::fidl_next::wire::String<'static>,
9196 ___E,
9197 >(
9198 value, preallocated.encoder, &mut out, 100
9199 )?;
9200 } else {
9201 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9202 }
9203 }
9204
9205 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9206 }
9207 unsafe {
9208 preallocated.write_next(out.assume_init_ref());
9209 }
9210 }
9211
9212 ::fidl_next::wire::Table::encode_len(table, max_ord);
9213
9214 Ok(())
9215 }
9216 }
9217
9218 impl<'de> ::fidl_next::FromWire<crate::wire::UseEventStream<'de>> for UseEventStream {
9219 #[inline]
9220 fn from_wire(wire_: crate::wire::UseEventStream<'de>) -> Self {
9221 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9222
9223 let source_name = wire_.table.get(1);
9224
9225 let source = wire_.table.get(2);
9226
9227 let scope = wire_.table.get(3);
9228
9229 let target_path = wire_.table.get(4);
9230
9231 let availability = wire_.table.get(5);
9232
9233 let filter = wire_.table.get(6);
9234
9235 Self {
9236
9237
9238 source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
9239 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
9240 )),
9241
9242
9243 source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
9244 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
9245 )),
9246
9247
9248 scope: scope.map(|envelope| ::fidl_next::FromWire::from_wire(
9249 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
9250 )),
9251
9252
9253 target_path: target_path.map(|envelope| ::fidl_next::FromWire::from_wire(
9254 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
9255 )),
9256
9257
9258 availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
9259 unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
9260 )),
9261
9262
9263 filter: filter.map(|envelope| ::fidl_next::FromWire::from_wire(
9264 unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
9265 )),
9266
9267 }
9268 }
9269 }
9270
9271 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseEventStream<'de>> for UseEventStream {
9272 #[inline]
9273 fn from_wire_ref(wire: &crate::wire::UseEventStream<'de>) -> Self {
9274 Self {
9275
9276
9277 source_name: wire.table.get(1)
9278 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9279 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
9280 )),
9281
9282
9283 source: wire.table.get(2)
9284 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9285 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
9286 )),
9287
9288
9289 scope: wire.table.get(3)
9290 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9291 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
9292 )),
9293
9294
9295 target_path: wire.table.get(4)
9296 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9297 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
9298 )),
9299
9300
9301 availability: wire.table.get(5)
9302 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9303 unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
9304 )),
9305
9306
9307 filter: wire.table.get(6)
9308 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9309 unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
9310 )),
9311
9312 }
9313 }
9314 }
9315
9316 #[doc = " Declares runner used by a component.\n"]
9317 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9318 pub struct UseRunner {
9319 pub source: ::core::option::Option<crate::natural::Ref>,
9320
9321 pub source_name: ::core::option::Option<::std::string::String>,
9322
9323 pub source_dictionary: ::core::option::Option<::std::string::String>,
9324 }
9325
9326 impl UseRunner {
9327 fn __max_ordinal(&self) -> usize {
9328 if self.source_dictionary.is_some() {
9329 return 3;
9330 }
9331
9332 if self.source_name.is_some() {
9333 return 2;
9334 }
9335
9336 if self.source.is_some() {
9337 return 1;
9338 }
9339
9340 0
9341 }
9342 }
9343
9344 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseRunner<'static>, ___E> for UseRunner
9345 where
9346 ___E: ::fidl_next::Encoder + ?Sized,
9347 {
9348 #[inline]
9349 fn encode(
9350 mut self,
9351 encoder: &mut ___E,
9352 out: &mut ::core::mem::MaybeUninit<crate::wire::UseRunner<'static>>,
9353 _: (),
9354 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9355 ::fidl_next::munge!(let crate::wire::UseRunner { table } = out);
9356
9357 let max_ord = self.__max_ordinal();
9358
9359 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9360 ::fidl_next::Wire::zero_padding(&mut out);
9361
9362 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9363 ::fidl_next::wire::Envelope,
9364 >(encoder, max_ord);
9365
9366 for i in 1..=max_ord {
9367 match i {
9368 3 => {
9369 if let Some(value) = self.source_dictionary.take() {
9370 ::fidl_next::wire::Envelope::encode_value::<
9371 ::fidl_next::wire::String<'static>,
9372 ___E,
9373 >(
9374 value, preallocated.encoder, &mut out, 1024
9375 )?;
9376 } else {
9377 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9378 }
9379 }
9380
9381 2 => {
9382 if let Some(value) = self.source_name.take() {
9383 ::fidl_next::wire::Envelope::encode_value::<
9384 ::fidl_next::wire::String<'static>,
9385 ___E,
9386 >(
9387 value, preallocated.encoder, &mut out, 100
9388 )?;
9389 } else {
9390 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9391 }
9392 }
9393
9394 1 => {
9395 if let Some(value) = self.source.take() {
9396 ::fidl_next::wire::Envelope::encode_value::<
9397 crate::wire::Ref<'static>,
9398 ___E,
9399 >(
9400 value, preallocated.encoder, &mut out, ()
9401 )?;
9402 } else {
9403 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9404 }
9405 }
9406
9407 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9408 }
9409 unsafe {
9410 preallocated.write_next(out.assume_init_ref());
9411 }
9412 }
9413
9414 ::fidl_next::wire::Table::encode_len(table, max_ord);
9415
9416 Ok(())
9417 }
9418 }
9419
9420 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseRunner<'static>, ___E> for &'a UseRunner
9421 where
9422 ___E: ::fidl_next::Encoder + ?Sized,
9423 {
9424 #[inline]
9425 fn encode(
9426 self,
9427 encoder: &mut ___E,
9428 out: &mut ::core::mem::MaybeUninit<crate::wire::UseRunner<'static>>,
9429 _: (),
9430 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9431 ::fidl_next::munge!(let crate::wire::UseRunner { table } = out);
9432
9433 let max_ord = self.__max_ordinal();
9434
9435 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9436 ::fidl_next::Wire::zero_padding(&mut out);
9437
9438 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9439 ::fidl_next::wire::Envelope,
9440 >(encoder, max_ord);
9441
9442 for i in 1..=max_ord {
9443 match i {
9444 3 => {
9445 if let Some(value) = &self.source_dictionary {
9446 ::fidl_next::wire::Envelope::encode_value::<
9447 ::fidl_next::wire::String<'static>,
9448 ___E,
9449 >(
9450 value, preallocated.encoder, &mut out, 1024
9451 )?;
9452 } else {
9453 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9454 }
9455 }
9456
9457 2 => {
9458 if let Some(value) = &self.source_name {
9459 ::fidl_next::wire::Envelope::encode_value::<
9460 ::fidl_next::wire::String<'static>,
9461 ___E,
9462 >(
9463 value, preallocated.encoder, &mut out, 100
9464 )?;
9465 } else {
9466 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9467 }
9468 }
9469
9470 1 => {
9471 if let Some(value) = &self.source {
9472 ::fidl_next::wire::Envelope::encode_value::<
9473 crate::wire::Ref<'static>,
9474 ___E,
9475 >(
9476 value, preallocated.encoder, &mut out, ()
9477 )?;
9478 } else {
9479 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9480 }
9481 }
9482
9483 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9484 }
9485 unsafe {
9486 preallocated.write_next(out.assume_init_ref());
9487 }
9488 }
9489
9490 ::fidl_next::wire::Table::encode_len(table, max_ord);
9491
9492 Ok(())
9493 }
9494 }
9495
9496 impl<'de> ::fidl_next::FromWire<crate::wire::UseRunner<'de>> for UseRunner {
9497 #[inline]
9498 fn from_wire(wire_: crate::wire::UseRunner<'de>) -> Self {
9499 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9500
9501 let source = wire_.table.get(1);
9502
9503 let source_name = wire_.table.get(2);
9504
9505 let source_dictionary = wire_.table.get(3);
9506
9507 Self {
9508 source: source.map(|envelope| {
9509 ::fidl_next::FromWire::from_wire(unsafe {
9510 envelope.read_unchecked::<crate::wire::Ref<'de>>()
9511 })
9512 }),
9513
9514 source_name: source_name.map(|envelope| {
9515 ::fidl_next::FromWire::from_wire(unsafe {
9516 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9517 })
9518 }),
9519
9520 source_dictionary: source_dictionary.map(|envelope| {
9521 ::fidl_next::FromWire::from_wire(unsafe {
9522 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9523 })
9524 }),
9525 }
9526 }
9527 }
9528
9529 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseRunner<'de>> for UseRunner {
9530 #[inline]
9531 fn from_wire_ref(wire: &crate::wire::UseRunner<'de>) -> Self {
9532 Self {
9533 source: wire.table.get(1).map(|envelope| {
9534 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9535 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
9536 })
9537 }),
9538
9539 source_name: wire.table.get(2).map(|envelope| {
9540 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9541 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9542 })
9543 }),
9544
9545 source_dictionary: wire.table.get(3).map(|envelope| {
9546 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9547 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9548 })
9549 }),
9550 }
9551 }
9552 }
9553
9554 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9555 pub struct UseConfiguration {
9556 pub source: ::core::option::Option<crate::natural::Ref>,
9557
9558 pub source_name: ::core::option::Option<::std::string::String>,
9559
9560 pub target_name: ::core::option::Option<::std::string::String>,
9561
9562 pub availability: ::core::option::Option<crate::natural::Availability>,
9563
9564 pub type_: ::core::option::Option<crate::natural::ConfigType>,
9565
9566 pub default: ::core::option::Option<crate::natural::ConfigValue>,
9567
9568 pub source_dictionary: ::core::option::Option<::std::string::String>,
9569 }
9570
9571 impl UseConfiguration {
9572 fn __max_ordinal(&self) -> usize {
9573 if self.source_dictionary.is_some() {
9574 return 7;
9575 }
9576
9577 if self.default.is_some() {
9578 return 6;
9579 }
9580
9581 if self.type_.is_some() {
9582 return 5;
9583 }
9584
9585 if self.availability.is_some() {
9586 return 4;
9587 }
9588
9589 if self.target_name.is_some() {
9590 return 3;
9591 }
9592
9593 if self.source_name.is_some() {
9594 return 2;
9595 }
9596
9597 if self.source.is_some() {
9598 return 1;
9599 }
9600
9601 0
9602 }
9603 }
9604
9605 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseConfiguration<'static>, ___E>
9606 for UseConfiguration
9607 where
9608 ___E: ::fidl_next::Encoder + ?Sized,
9609 {
9610 #[inline]
9611 fn encode(
9612 mut self,
9613 encoder: &mut ___E,
9614 out: &mut ::core::mem::MaybeUninit<crate::wire::UseConfiguration<'static>>,
9615 _: (),
9616 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9617 ::fidl_next::munge!(let crate::wire::UseConfiguration { table } = out);
9618
9619 let max_ord = self.__max_ordinal();
9620
9621 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9622 ::fidl_next::Wire::zero_padding(&mut out);
9623
9624 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9625 ::fidl_next::wire::Envelope,
9626 >(encoder, max_ord);
9627
9628 for i in 1..=max_ord {
9629 match i {
9630 7 => {
9631 if let Some(value) = self.source_dictionary.take() {
9632 ::fidl_next::wire::Envelope::encode_value::<
9633 ::fidl_next::wire::String<'static>,
9634 ___E,
9635 >(
9636 value, preallocated.encoder, &mut out, 1024
9637 )?;
9638 } else {
9639 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9640 }
9641 }
9642
9643 6 => {
9644 if let Some(value) = self.default.take() {
9645 ::fidl_next::wire::Envelope::encode_value::<
9646 crate::wire::ConfigValue<'static>,
9647 ___E,
9648 >(
9649 value, preallocated.encoder, &mut out, ()
9650 )?;
9651 } else {
9652 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9653 }
9654 }
9655
9656 5 => {
9657 if let Some(value) = self.type_.take() {
9658 ::fidl_next::wire::Envelope::encode_value::<
9659 crate::wire::ConfigType<'static>,
9660 ___E,
9661 >(
9662 value, preallocated.encoder, &mut out, ()
9663 )?;
9664 } else {
9665 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9666 }
9667 }
9668
9669 4 => {
9670 if let Some(value) = self.availability.take() {
9671 ::fidl_next::wire::Envelope::encode_value::<
9672 crate::wire::Availability,
9673 ___E,
9674 >(
9675 value, preallocated.encoder, &mut out, ()
9676 )?;
9677 } else {
9678 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9679 }
9680 }
9681
9682 3 => {
9683 if let Some(value) = self.target_name.take() {
9684 ::fidl_next::wire::Envelope::encode_value::<
9685 ::fidl_next::wire::String<'static>,
9686 ___E,
9687 >(
9688 value, preallocated.encoder, &mut out, 100
9689 )?;
9690 } else {
9691 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9692 }
9693 }
9694
9695 2 => {
9696 if let Some(value) = self.source_name.take() {
9697 ::fidl_next::wire::Envelope::encode_value::<
9698 ::fidl_next::wire::String<'static>,
9699 ___E,
9700 >(
9701 value, preallocated.encoder, &mut out, 100
9702 )?;
9703 } else {
9704 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9705 }
9706 }
9707
9708 1 => {
9709 if let Some(value) = self.source.take() {
9710 ::fidl_next::wire::Envelope::encode_value::<
9711 crate::wire::Ref<'static>,
9712 ___E,
9713 >(
9714 value, preallocated.encoder, &mut out, ()
9715 )?;
9716 } else {
9717 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9718 }
9719 }
9720
9721 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9722 }
9723 unsafe {
9724 preallocated.write_next(out.assume_init_ref());
9725 }
9726 }
9727
9728 ::fidl_next::wire::Table::encode_len(table, max_ord);
9729
9730 Ok(())
9731 }
9732 }
9733
9734 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseConfiguration<'static>, ___E>
9735 for &'a UseConfiguration
9736 where
9737 ___E: ::fidl_next::Encoder + ?Sized,
9738 {
9739 #[inline]
9740 fn encode(
9741 self,
9742 encoder: &mut ___E,
9743 out: &mut ::core::mem::MaybeUninit<crate::wire::UseConfiguration<'static>>,
9744 _: (),
9745 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9746 ::fidl_next::munge!(let crate::wire::UseConfiguration { table } = out);
9747
9748 let max_ord = self.__max_ordinal();
9749
9750 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9751 ::fidl_next::Wire::zero_padding(&mut out);
9752
9753 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9754 ::fidl_next::wire::Envelope,
9755 >(encoder, max_ord);
9756
9757 for i in 1..=max_ord {
9758 match i {
9759 7 => {
9760 if let Some(value) = &self.source_dictionary {
9761 ::fidl_next::wire::Envelope::encode_value::<
9762 ::fidl_next::wire::String<'static>,
9763 ___E,
9764 >(
9765 value, preallocated.encoder, &mut out, 1024
9766 )?;
9767 } else {
9768 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9769 }
9770 }
9771
9772 6 => {
9773 if let Some(value) = &self.default {
9774 ::fidl_next::wire::Envelope::encode_value::<
9775 crate::wire::ConfigValue<'static>,
9776 ___E,
9777 >(
9778 value, preallocated.encoder, &mut out, ()
9779 )?;
9780 } else {
9781 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9782 }
9783 }
9784
9785 5 => {
9786 if let Some(value) = &self.type_ {
9787 ::fidl_next::wire::Envelope::encode_value::<
9788 crate::wire::ConfigType<'static>,
9789 ___E,
9790 >(
9791 value, preallocated.encoder, &mut out, ()
9792 )?;
9793 } else {
9794 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9795 }
9796 }
9797
9798 4 => {
9799 if let Some(value) = &self.availability {
9800 ::fidl_next::wire::Envelope::encode_value::<
9801 crate::wire::Availability,
9802 ___E,
9803 >(
9804 value, preallocated.encoder, &mut out, ()
9805 )?;
9806 } else {
9807 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9808 }
9809 }
9810
9811 3 => {
9812 if let Some(value) = &self.target_name {
9813 ::fidl_next::wire::Envelope::encode_value::<
9814 ::fidl_next::wire::String<'static>,
9815 ___E,
9816 >(
9817 value, preallocated.encoder, &mut out, 100
9818 )?;
9819 } else {
9820 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9821 }
9822 }
9823
9824 2 => {
9825 if let Some(value) = &self.source_name {
9826 ::fidl_next::wire::Envelope::encode_value::<
9827 ::fidl_next::wire::String<'static>,
9828 ___E,
9829 >(
9830 value, preallocated.encoder, &mut out, 100
9831 )?;
9832 } else {
9833 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9834 }
9835 }
9836
9837 1 => {
9838 if let Some(value) = &self.source {
9839 ::fidl_next::wire::Envelope::encode_value::<
9840 crate::wire::Ref<'static>,
9841 ___E,
9842 >(
9843 value, preallocated.encoder, &mut out, ()
9844 )?;
9845 } else {
9846 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9847 }
9848 }
9849
9850 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9851 }
9852 unsafe {
9853 preallocated.write_next(out.assume_init_ref());
9854 }
9855 }
9856
9857 ::fidl_next::wire::Table::encode_len(table, max_ord);
9858
9859 Ok(())
9860 }
9861 }
9862
9863 impl<'de> ::fidl_next::FromWire<crate::wire::UseConfiguration<'de>> for UseConfiguration {
9864 #[inline]
9865 fn from_wire(wire_: crate::wire::UseConfiguration<'de>) -> Self {
9866 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9867
9868 let source = wire_.table.get(1);
9869
9870 let source_name = wire_.table.get(2);
9871
9872 let target_name = wire_.table.get(3);
9873
9874 let availability = wire_.table.get(4);
9875
9876 let type_ = wire_.table.get(5);
9877
9878 let default = wire_.table.get(6);
9879
9880 let source_dictionary = wire_.table.get(7);
9881
9882 Self {
9883 source: source.map(|envelope| {
9884 ::fidl_next::FromWire::from_wire(unsafe {
9885 envelope.read_unchecked::<crate::wire::Ref<'de>>()
9886 })
9887 }),
9888
9889 source_name: source_name.map(|envelope| {
9890 ::fidl_next::FromWire::from_wire(unsafe {
9891 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9892 })
9893 }),
9894
9895 target_name: target_name.map(|envelope| {
9896 ::fidl_next::FromWire::from_wire(unsafe {
9897 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9898 })
9899 }),
9900
9901 availability: availability.map(|envelope| {
9902 ::fidl_next::FromWire::from_wire(unsafe {
9903 envelope.read_unchecked::<crate::wire::Availability>()
9904 })
9905 }),
9906
9907 type_: type_.map(|envelope| {
9908 ::fidl_next::FromWire::from_wire(unsafe {
9909 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
9910 })
9911 }),
9912
9913 default: default.map(|envelope| {
9914 ::fidl_next::FromWire::from_wire(unsafe {
9915 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
9916 })
9917 }),
9918
9919 source_dictionary: source_dictionary.map(|envelope| {
9920 ::fidl_next::FromWire::from_wire(unsafe {
9921 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9922 })
9923 }),
9924 }
9925 }
9926 }
9927
9928 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseConfiguration<'de>> for UseConfiguration {
9929 #[inline]
9930 fn from_wire_ref(wire: &crate::wire::UseConfiguration<'de>) -> Self {
9931 Self {
9932 source: wire.table.get(1).map(|envelope| {
9933 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9934 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
9935 })
9936 }),
9937
9938 source_name: wire.table.get(2).map(|envelope| {
9939 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9940 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9941 })
9942 }),
9943
9944 target_name: wire.table.get(3).map(|envelope| {
9945 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9946 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9947 })
9948 }),
9949
9950 availability: wire.table.get(4).map(|envelope| {
9951 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9952 envelope.deref_unchecked::<crate::wire::Availability>()
9953 })
9954 }),
9955
9956 type_: wire.table.get(5).map(|envelope| {
9957 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9958 envelope.deref_unchecked::<crate::wire::ConfigType<'de>>()
9959 })
9960 }),
9961
9962 default: wire.table.get(6).map(|envelope| {
9963 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9964 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
9965 })
9966 }),
9967
9968 source_dictionary: wire.table.get(7).map(|envelope| {
9969 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9970 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9971 })
9972 }),
9973 }
9974 }
9975 }
9976
9977 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9978 pub struct UseDictionary {
9979 pub source: ::core::option::Option<crate::natural::Ref>,
9980
9981 pub source_name: ::core::option::Option<::std::string::String>,
9982
9983 pub target_path: ::core::option::Option<::std::string::String>,
9984
9985 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
9986
9987 pub availability: ::core::option::Option<crate::natural::Availability>,
9988
9989 pub source_dictionary: ::core::option::Option<::std::string::String>,
9990 }
9991
9992 impl UseDictionary {
9993 fn __max_ordinal(&self) -> usize {
9994 if self.source_dictionary.is_some() {
9995 return 8;
9996 }
9997
9998 if self.availability.is_some() {
9999 return 7;
10000 }
10001
10002 if self.dependency_type.is_some() {
10003 return 6;
10004 }
10005
10006 if self.target_path.is_some() {
10007 return 3;
10008 }
10009
10010 if self.source_name.is_some() {
10011 return 2;
10012 }
10013
10014 if self.source.is_some() {
10015 return 1;
10016 }
10017
10018 0
10019 }
10020 }
10021
10022 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseDictionary<'static>, ___E> for UseDictionary
10023 where
10024 ___E: ::fidl_next::Encoder + ?Sized,
10025 {
10026 #[inline]
10027 fn encode(
10028 mut self,
10029 encoder: &mut ___E,
10030 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDictionary<'static>>,
10031 _: (),
10032 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10033 ::fidl_next::munge!(let crate::wire::UseDictionary { table } = out);
10034
10035 let max_ord = self.__max_ordinal();
10036
10037 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10038 ::fidl_next::Wire::zero_padding(&mut out);
10039
10040 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10041 ::fidl_next::wire::Envelope,
10042 >(encoder, max_ord);
10043
10044 for i in 1..=max_ord {
10045 match i {
10046 8 => {
10047 if let Some(value) = self.source_dictionary.take() {
10048 ::fidl_next::wire::Envelope::encode_value::<
10049 ::fidl_next::wire::String<'static>,
10050 ___E,
10051 >(
10052 value, preallocated.encoder, &mut out, 1024
10053 )?;
10054 } else {
10055 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10056 }
10057 }
10058
10059 7 => {
10060 if let Some(value) = self.availability.take() {
10061 ::fidl_next::wire::Envelope::encode_value::<
10062 crate::wire::Availability,
10063 ___E,
10064 >(
10065 value, preallocated.encoder, &mut out, ()
10066 )?;
10067 } else {
10068 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10069 }
10070 }
10071
10072 6 => {
10073 if let Some(value) = self.dependency_type.take() {
10074 ::fidl_next::wire::Envelope::encode_value::<
10075 crate::wire::DependencyType,
10076 ___E,
10077 >(
10078 value, preallocated.encoder, &mut out, ()
10079 )?;
10080 } else {
10081 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10082 }
10083 }
10084
10085 3 => {
10086 if let Some(value) = self.target_path.take() {
10087 ::fidl_next::wire::Envelope::encode_value::<
10088 ::fidl_next::wire::String<'static>,
10089 ___E,
10090 >(
10091 value, preallocated.encoder, &mut out, 1024
10092 )?;
10093 } else {
10094 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10095 }
10096 }
10097
10098 2 => {
10099 if let Some(value) = self.source_name.take() {
10100 ::fidl_next::wire::Envelope::encode_value::<
10101 ::fidl_next::wire::String<'static>,
10102 ___E,
10103 >(
10104 value, preallocated.encoder, &mut out, 100
10105 )?;
10106 } else {
10107 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10108 }
10109 }
10110
10111 1 => {
10112 if let Some(value) = self.source.take() {
10113 ::fidl_next::wire::Envelope::encode_value::<
10114 crate::wire::Ref<'static>,
10115 ___E,
10116 >(
10117 value, preallocated.encoder, &mut out, ()
10118 )?;
10119 } else {
10120 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10121 }
10122 }
10123
10124 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
10125 }
10126 unsafe {
10127 preallocated.write_next(out.assume_init_ref());
10128 }
10129 }
10130
10131 ::fidl_next::wire::Table::encode_len(table, max_ord);
10132
10133 Ok(())
10134 }
10135 }
10136
10137 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseDictionary<'static>, ___E>
10138 for &'a UseDictionary
10139 where
10140 ___E: ::fidl_next::Encoder + ?Sized,
10141 {
10142 #[inline]
10143 fn encode(
10144 self,
10145 encoder: &mut ___E,
10146 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDictionary<'static>>,
10147 _: (),
10148 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10149 ::fidl_next::munge!(let crate::wire::UseDictionary { table } = out);
10150
10151 let max_ord = self.__max_ordinal();
10152
10153 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10154 ::fidl_next::Wire::zero_padding(&mut out);
10155
10156 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10157 ::fidl_next::wire::Envelope,
10158 >(encoder, max_ord);
10159
10160 for i in 1..=max_ord {
10161 match i {
10162 8 => {
10163 if let Some(value) = &self.source_dictionary {
10164 ::fidl_next::wire::Envelope::encode_value::<
10165 ::fidl_next::wire::String<'static>,
10166 ___E,
10167 >(
10168 value, preallocated.encoder, &mut out, 1024
10169 )?;
10170 } else {
10171 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10172 }
10173 }
10174
10175 7 => {
10176 if let Some(value) = &self.availability {
10177 ::fidl_next::wire::Envelope::encode_value::<
10178 crate::wire::Availability,
10179 ___E,
10180 >(
10181 value, preallocated.encoder, &mut out, ()
10182 )?;
10183 } else {
10184 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10185 }
10186 }
10187
10188 6 => {
10189 if let Some(value) = &self.dependency_type {
10190 ::fidl_next::wire::Envelope::encode_value::<
10191 crate::wire::DependencyType,
10192 ___E,
10193 >(
10194 value, preallocated.encoder, &mut out, ()
10195 )?;
10196 } else {
10197 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10198 }
10199 }
10200
10201 3 => {
10202 if let Some(value) = &self.target_path {
10203 ::fidl_next::wire::Envelope::encode_value::<
10204 ::fidl_next::wire::String<'static>,
10205 ___E,
10206 >(
10207 value, preallocated.encoder, &mut out, 1024
10208 )?;
10209 } else {
10210 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10211 }
10212 }
10213
10214 2 => {
10215 if let Some(value) = &self.source_name {
10216 ::fidl_next::wire::Envelope::encode_value::<
10217 ::fidl_next::wire::String<'static>,
10218 ___E,
10219 >(
10220 value, preallocated.encoder, &mut out, 100
10221 )?;
10222 } else {
10223 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10224 }
10225 }
10226
10227 1 => {
10228 if let Some(value) = &self.source {
10229 ::fidl_next::wire::Envelope::encode_value::<
10230 crate::wire::Ref<'static>,
10231 ___E,
10232 >(
10233 value, preallocated.encoder, &mut out, ()
10234 )?;
10235 } else {
10236 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10237 }
10238 }
10239
10240 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
10241 }
10242 unsafe {
10243 preallocated.write_next(out.assume_init_ref());
10244 }
10245 }
10246
10247 ::fidl_next::wire::Table::encode_len(table, max_ord);
10248
10249 Ok(())
10250 }
10251 }
10252
10253 impl<'de> ::fidl_next::FromWire<crate::wire::UseDictionary<'de>> for UseDictionary {
10254 #[inline]
10255 fn from_wire(wire_: crate::wire::UseDictionary<'de>) -> Self {
10256 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
10257
10258 let source = wire_.table.get(1);
10259
10260 let source_name = wire_.table.get(2);
10261
10262 let target_path = wire_.table.get(3);
10263
10264 let dependency_type = wire_.table.get(6);
10265
10266 let availability = wire_.table.get(7);
10267
10268 let source_dictionary = wire_.table.get(8);
10269
10270 Self {
10271 source: source.map(|envelope| {
10272 ::fidl_next::FromWire::from_wire(unsafe {
10273 envelope.read_unchecked::<crate::wire::Ref<'de>>()
10274 })
10275 }),
10276
10277 source_name: source_name.map(|envelope| {
10278 ::fidl_next::FromWire::from_wire(unsafe {
10279 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10280 })
10281 }),
10282
10283 target_path: target_path.map(|envelope| {
10284 ::fidl_next::FromWire::from_wire(unsafe {
10285 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10286 })
10287 }),
10288
10289 dependency_type: dependency_type.map(|envelope| {
10290 ::fidl_next::FromWire::from_wire(unsafe {
10291 envelope.read_unchecked::<crate::wire::DependencyType>()
10292 })
10293 }),
10294
10295 availability: availability.map(|envelope| {
10296 ::fidl_next::FromWire::from_wire(unsafe {
10297 envelope.read_unchecked::<crate::wire::Availability>()
10298 })
10299 }),
10300
10301 source_dictionary: source_dictionary.map(|envelope| {
10302 ::fidl_next::FromWire::from_wire(unsafe {
10303 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10304 })
10305 }),
10306 }
10307 }
10308 }
10309
10310 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseDictionary<'de>> for UseDictionary {
10311 #[inline]
10312 fn from_wire_ref(wire: &crate::wire::UseDictionary<'de>) -> Self {
10313 Self {
10314 source: wire.table.get(1).map(|envelope| {
10315 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10316 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
10317 })
10318 }),
10319
10320 source_name: wire.table.get(2).map(|envelope| {
10321 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10322 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10323 })
10324 }),
10325
10326 target_path: wire.table.get(3).map(|envelope| {
10327 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10328 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10329 })
10330 }),
10331
10332 dependency_type: wire.table.get(6).map(|envelope| {
10333 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10334 envelope.deref_unchecked::<crate::wire::DependencyType>()
10335 })
10336 }),
10337
10338 availability: wire.table.get(7).map(|envelope| {
10339 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10340 envelope.deref_unchecked::<crate::wire::Availability>()
10341 })
10342 }),
10343
10344 source_dictionary: wire.table.get(8).map(|envelope| {
10345 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10346 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10347 })
10348 }),
10349 }
10350 }
10351 }
10352
10353 #[doc = " Declares a capability used by a component, which was offered to it.\n"]
10354 #[derive(Debug, Clone, PartialEq)]
10355 pub enum Use {
10356 Service(crate::natural::UseService),
10357
10358 Protocol(crate::natural::UseProtocol),
10359
10360 Directory(crate::natural::UseDirectory),
10361
10362 Storage(crate::natural::UseStorage),
10363
10364 EventStream(crate::natural::UseEventStream),
10365
10366 Runner(crate::natural::UseRunner),
10367
10368 Config(crate::natural::UseConfiguration),
10369
10370 Dictionary(crate::natural::UseDictionary),
10371
10372 UnknownOrdinal_(u64),
10373 }
10374
10375 impl Use {
10376 pub fn is_unknown(&self) -> bool {
10377 #[allow(unreachable_patterns)]
10378 match self {
10379 Self::UnknownOrdinal_(_) => true,
10380 _ => false,
10381 }
10382 }
10383 }
10384
10385 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Use<'static>, ___E> for Use
10386 where
10387 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10388 ___E: ::fidl_next::Encoder,
10389 {
10390 #[inline]
10391 fn encode(
10392 self,
10393 encoder: &mut ___E,
10394 out: &mut ::core::mem::MaybeUninit<crate::wire::Use<'static>>,
10395 _: (),
10396 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10397 ::fidl_next::munge!(let crate::wire::Use { raw, _phantom: _ } = out);
10398
10399 match self {
10400 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
10401 ___E,
10402 crate::wire::UseService<'static>,
10403 >(value, 1, encoder, raw, ())?,
10404
10405 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
10406 ___E,
10407 crate::wire::UseProtocol<'static>,
10408 >(value, 2, encoder, raw, ())?,
10409
10410 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
10411 ___E,
10412 crate::wire::UseDirectory<'static>,
10413 >(value, 3, encoder, raw, ())?,
10414
10415 Self::Storage(value) => ::fidl_next::wire::Union::encode_as::<
10416 ___E,
10417 crate::wire::UseStorage<'static>,
10418 >(value, 4, encoder, raw, ())?,
10419
10420 Self::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
10421 ___E,
10422 crate::wire::UseEventStream<'static>,
10423 >(value, 7, encoder, raw, ())?,
10424
10425 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
10426 ___E,
10427 crate::wire::UseRunner<'static>,
10428 >(value, 8, encoder, raw, ())?,
10429
10430 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
10431 ___E,
10432 crate::wire::UseConfiguration<'static>,
10433 >(value, 9, encoder, raw, ())?,
10434
10435 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
10436 ___E,
10437 crate::wire::UseDictionary<'static>,
10438 >(value, 10, encoder, raw, ())?,
10439
10440 Self::UnknownOrdinal_(ordinal) => {
10441 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
10442 }
10443 }
10444
10445 Ok(())
10446 }
10447 }
10448
10449 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Use<'static>, ___E> for &'a Use
10450 where
10451 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10452 ___E: ::fidl_next::Encoder,
10453 {
10454 #[inline]
10455 fn encode(
10456 self,
10457 encoder: &mut ___E,
10458 out: &mut ::core::mem::MaybeUninit<crate::wire::Use<'static>>,
10459 _: (),
10460 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10461 ::fidl_next::munge!(let crate::wire::Use { raw, _phantom: _ } = out);
10462
10463 match self {
10464 Use::Service(value) => ::fidl_next::wire::Union::encode_as::<
10465 ___E,
10466 crate::wire::UseService<'static>,
10467 >(value, 1, encoder, raw, ())?,
10468
10469 Use::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
10470 ___E,
10471 crate::wire::UseProtocol<'static>,
10472 >(value, 2, encoder, raw, ())?,
10473
10474 Use::Directory(value) => ::fidl_next::wire::Union::encode_as::<
10475 ___E,
10476 crate::wire::UseDirectory<'static>,
10477 >(value, 3, encoder, raw, ())?,
10478
10479 Use::Storage(value) => ::fidl_next::wire::Union::encode_as::<
10480 ___E,
10481 crate::wire::UseStorage<'static>,
10482 >(value, 4, encoder, raw, ())?,
10483
10484 Use::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
10485 ___E,
10486 crate::wire::UseEventStream<'static>,
10487 >(value, 7, encoder, raw, ())?,
10488
10489 Use::Runner(value) => ::fidl_next::wire::Union::encode_as::<
10490 ___E,
10491 crate::wire::UseRunner<'static>,
10492 >(value, 8, encoder, raw, ())?,
10493
10494 Use::Config(value) => ::fidl_next::wire::Union::encode_as::<
10495 ___E,
10496 crate::wire::UseConfiguration<'static>,
10497 >(value, 9, encoder, raw, ())?,
10498
10499 Use::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
10500 ___E,
10501 crate::wire::UseDictionary<'static>,
10502 >(value, 10, encoder, raw, ())?,
10503
10504 Use::UnknownOrdinal_(ordinal) => {
10505 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
10506 }
10507 }
10508
10509 Ok(())
10510 }
10511 }
10512
10513 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Use<'static>, ___E> for Use
10514 where
10515 ___E: ?Sized,
10516 Use: ::fidl_next::Encode<crate::wire::Use<'static>, ___E>,
10517 {
10518 #[inline]
10519 fn encode_option(
10520 this: ::core::option::Option<Self>,
10521 encoder: &mut ___E,
10522 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Use<'static>>,
10523 _: (),
10524 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10525 ::fidl_next::munge!(let crate::wire_optional::Use { raw, _phantom: _ } = &mut *out);
10526
10527 if let Some(inner) = this {
10528 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
10529 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
10530 } else {
10531 ::fidl_next::wire::Union::encode_absent(raw);
10532 }
10533
10534 Ok(())
10535 }
10536 }
10537
10538 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Use<'static>, ___E>
10539 for &'a Use
10540 where
10541 ___E: ?Sized,
10542 &'a Use: ::fidl_next::Encode<crate::wire::Use<'static>, ___E>,
10543 {
10544 #[inline]
10545 fn encode_option(
10546 this: ::core::option::Option<Self>,
10547 encoder: &mut ___E,
10548 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Use<'static>>,
10549 _: (),
10550 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10551 ::fidl_next::munge!(let crate::wire_optional::Use { raw, _phantom: _ } = &mut *out);
10552
10553 if let Some(inner) = this {
10554 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
10555 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
10556 } else {
10557 ::fidl_next::wire::Union::encode_absent(raw);
10558 }
10559
10560 Ok(())
10561 }
10562 }
10563
10564 impl<'de> ::fidl_next::FromWire<crate::wire::Use<'de>> for Use {
10565 #[inline]
10566 fn from_wire(wire: crate::wire::Use<'de>) -> Self {
10567 let wire = ::core::mem::ManuallyDrop::new(wire);
10568 match wire.raw.ordinal() {
10569 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
10570 wire.raw.get().read_unchecked::<crate::wire::UseService<'de>>()
10571 })),
10572
10573 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
10574 wire.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>()
10575 })),
10576
10577 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
10578 wire.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
10579 })),
10580
10581 4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
10582 wire.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>()
10583 })),
10584
10585 7 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
10586 wire.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
10587 })),
10588
10589 8 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
10590 wire.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>()
10591 })),
10592
10593 9 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
10594 wire.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
10595 })),
10596
10597 10 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
10598 wire.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
10599 })),
10600
10601 ord => return Self::UnknownOrdinal_(ord as u64),
10602 }
10603 }
10604 }
10605
10606 impl<'de> ::fidl_next::FromWireRef<crate::wire::Use<'de>> for Use {
10607 #[inline]
10608 fn from_wire_ref(wire: &crate::wire::Use<'de>) -> Self {
10609 match wire.raw.ordinal() {
10610 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10611 wire.raw.get().deref_unchecked::<crate::wire::UseService<'de>>()
10612 })),
10613
10614 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10615 wire.raw.get().deref_unchecked::<crate::wire::UseProtocol<'de>>()
10616 })),
10617
10618 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10619 wire.raw.get().deref_unchecked::<crate::wire::UseDirectory<'de>>()
10620 })),
10621
10622 4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10623 wire.raw.get().deref_unchecked::<crate::wire::UseStorage<'de>>()
10624 })),
10625
10626 7 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10627 wire.raw.get().deref_unchecked::<crate::wire::UseEventStream<'de>>()
10628 })),
10629
10630 8 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10631 wire.raw.get().deref_unchecked::<crate::wire::UseRunner<'de>>()
10632 })),
10633
10634 9 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10635 wire.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'de>>()
10636 })),
10637
10638 10 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10639 wire.raw.get().deref_unchecked::<crate::wire::UseDictionary<'de>>()
10640 })),
10641
10642 ord => return Self::UnknownOrdinal_(ord as u64),
10643 }
10644 }
10645 }
10646
10647 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>> for Use {
10648 #[inline]
10649 fn from_wire_option(wire: crate::wire_optional::Use<'de>) -> ::core::option::Option<Self> {
10650 if let Some(inner) = wire.into_option() {
10651 Some(::fidl_next::FromWire::from_wire(inner))
10652 } else {
10653 None
10654 }
10655 }
10656 }
10657
10658 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>> for Box<Use> {
10659 #[inline]
10660 fn from_wire_option(wire: crate::wire_optional::Use<'de>) -> ::core::option::Option<Self> {
10661 <Use as ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>>>::from_wire_option(
10662 wire,
10663 )
10664 .map(Box::new)
10665 }
10666 }
10667
10668 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Use<'de>> for Box<Use> {
10669 #[inline]
10670 fn from_wire_option_ref(
10671 wire: &crate::wire_optional::Use<'de>,
10672 ) -> ::core::option::Option<Self> {
10673 if let Some(inner) = wire.as_ref() {
10674 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
10675 } else {
10676 None
10677 }
10678 }
10679 }
10680
10681 #[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"]
10682 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10683 pub struct ExposeService {
10684 pub source: ::core::option::Option<crate::natural::Ref>,
10685
10686 pub source_name: ::core::option::Option<::std::string::String>,
10687
10688 pub target: ::core::option::Option<crate::natural::Ref>,
10689
10690 pub target_name: ::core::option::Option<::std::string::String>,
10691
10692 pub availability: ::core::option::Option<crate::natural::Availability>,
10693
10694 pub source_dictionary: ::core::option::Option<::std::string::String>,
10695 }
10696
10697 impl ExposeService {
10698 fn __max_ordinal(&self) -> usize {
10699 if self.source_dictionary.is_some() {
10700 return 6;
10701 }
10702
10703 if self.availability.is_some() {
10704 return 5;
10705 }
10706
10707 if self.target_name.is_some() {
10708 return 4;
10709 }
10710
10711 if self.target.is_some() {
10712 return 3;
10713 }
10714
10715 if self.source_name.is_some() {
10716 return 2;
10717 }
10718
10719 if self.source.is_some() {
10720 return 1;
10721 }
10722
10723 0
10724 }
10725 }
10726
10727 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeService<'static>, ___E> for ExposeService
10728 where
10729 ___E: ::fidl_next::Encoder + ?Sized,
10730 {
10731 #[inline]
10732 fn encode(
10733 mut self,
10734 encoder: &mut ___E,
10735 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeService<'static>>,
10736 _: (),
10737 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10738 ::fidl_next::munge!(let crate::wire::ExposeService { table } = out);
10739
10740 let max_ord = self.__max_ordinal();
10741
10742 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10743 ::fidl_next::Wire::zero_padding(&mut out);
10744
10745 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10746 ::fidl_next::wire::Envelope,
10747 >(encoder, max_ord);
10748
10749 for i in 1..=max_ord {
10750 match i {
10751 6 => {
10752 if let Some(value) = self.source_dictionary.take() {
10753 ::fidl_next::wire::Envelope::encode_value::<
10754 ::fidl_next::wire::String<'static>,
10755 ___E,
10756 >(
10757 value, preallocated.encoder, &mut out, 1024
10758 )?;
10759 } else {
10760 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10761 }
10762 }
10763
10764 5 => {
10765 if let Some(value) = self.availability.take() {
10766 ::fidl_next::wire::Envelope::encode_value::<
10767 crate::wire::Availability,
10768 ___E,
10769 >(
10770 value, preallocated.encoder, &mut out, ()
10771 )?;
10772 } else {
10773 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10774 }
10775 }
10776
10777 4 => {
10778 if let Some(value) = self.target_name.take() {
10779 ::fidl_next::wire::Envelope::encode_value::<
10780 ::fidl_next::wire::String<'static>,
10781 ___E,
10782 >(
10783 value, preallocated.encoder, &mut out, 100
10784 )?;
10785 } else {
10786 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10787 }
10788 }
10789
10790 3 => {
10791 if let Some(value) = self.target.take() {
10792 ::fidl_next::wire::Envelope::encode_value::<
10793 crate::wire::Ref<'static>,
10794 ___E,
10795 >(
10796 value, preallocated.encoder, &mut out, ()
10797 )?;
10798 } else {
10799 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10800 }
10801 }
10802
10803 2 => {
10804 if let Some(value) = self.source_name.take() {
10805 ::fidl_next::wire::Envelope::encode_value::<
10806 ::fidl_next::wire::String<'static>,
10807 ___E,
10808 >(
10809 value, preallocated.encoder, &mut out, 100
10810 )?;
10811 } else {
10812 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10813 }
10814 }
10815
10816 1 => {
10817 if let Some(value) = self.source.take() {
10818 ::fidl_next::wire::Envelope::encode_value::<
10819 crate::wire::Ref<'static>,
10820 ___E,
10821 >(
10822 value, preallocated.encoder, &mut out, ()
10823 )?;
10824 } else {
10825 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10826 }
10827 }
10828
10829 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
10830 }
10831 unsafe {
10832 preallocated.write_next(out.assume_init_ref());
10833 }
10834 }
10835
10836 ::fidl_next::wire::Table::encode_len(table, max_ord);
10837
10838 Ok(())
10839 }
10840 }
10841
10842 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeService<'static>, ___E>
10843 for &'a ExposeService
10844 where
10845 ___E: ::fidl_next::Encoder + ?Sized,
10846 {
10847 #[inline]
10848 fn encode(
10849 self,
10850 encoder: &mut ___E,
10851 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeService<'static>>,
10852 _: (),
10853 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10854 ::fidl_next::munge!(let crate::wire::ExposeService { table } = out);
10855
10856 let max_ord = self.__max_ordinal();
10857
10858 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10859 ::fidl_next::Wire::zero_padding(&mut out);
10860
10861 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10862 ::fidl_next::wire::Envelope,
10863 >(encoder, max_ord);
10864
10865 for i in 1..=max_ord {
10866 match i {
10867 6 => {
10868 if let Some(value) = &self.source_dictionary {
10869 ::fidl_next::wire::Envelope::encode_value::<
10870 ::fidl_next::wire::String<'static>,
10871 ___E,
10872 >(
10873 value, preallocated.encoder, &mut out, 1024
10874 )?;
10875 } else {
10876 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10877 }
10878 }
10879
10880 5 => {
10881 if let Some(value) = &self.availability {
10882 ::fidl_next::wire::Envelope::encode_value::<
10883 crate::wire::Availability,
10884 ___E,
10885 >(
10886 value, preallocated.encoder, &mut out, ()
10887 )?;
10888 } else {
10889 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10890 }
10891 }
10892
10893 4 => {
10894 if let Some(value) = &self.target_name {
10895 ::fidl_next::wire::Envelope::encode_value::<
10896 ::fidl_next::wire::String<'static>,
10897 ___E,
10898 >(
10899 value, preallocated.encoder, &mut out, 100
10900 )?;
10901 } else {
10902 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10903 }
10904 }
10905
10906 3 => {
10907 if let Some(value) = &self.target {
10908 ::fidl_next::wire::Envelope::encode_value::<
10909 crate::wire::Ref<'static>,
10910 ___E,
10911 >(
10912 value, preallocated.encoder, &mut out, ()
10913 )?;
10914 } else {
10915 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10916 }
10917 }
10918
10919 2 => {
10920 if let Some(value) = &self.source_name {
10921 ::fidl_next::wire::Envelope::encode_value::<
10922 ::fidl_next::wire::String<'static>,
10923 ___E,
10924 >(
10925 value, preallocated.encoder, &mut out, 100
10926 )?;
10927 } else {
10928 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10929 }
10930 }
10931
10932 1 => {
10933 if let Some(value) = &self.source {
10934 ::fidl_next::wire::Envelope::encode_value::<
10935 crate::wire::Ref<'static>,
10936 ___E,
10937 >(
10938 value, preallocated.encoder, &mut out, ()
10939 )?;
10940 } else {
10941 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10942 }
10943 }
10944
10945 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
10946 }
10947 unsafe {
10948 preallocated.write_next(out.assume_init_ref());
10949 }
10950 }
10951
10952 ::fidl_next::wire::Table::encode_len(table, max_ord);
10953
10954 Ok(())
10955 }
10956 }
10957
10958 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeService<'de>> for ExposeService {
10959 #[inline]
10960 fn from_wire(wire_: crate::wire::ExposeService<'de>) -> Self {
10961 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
10962
10963 let source = wire_.table.get(1);
10964
10965 let source_name = wire_.table.get(2);
10966
10967 let target = wire_.table.get(3);
10968
10969 let target_name = wire_.table.get(4);
10970
10971 let availability = wire_.table.get(5);
10972
10973 let source_dictionary = wire_.table.get(6);
10974
10975 Self {
10976 source: source.map(|envelope| {
10977 ::fidl_next::FromWire::from_wire(unsafe {
10978 envelope.read_unchecked::<crate::wire::Ref<'de>>()
10979 })
10980 }),
10981
10982 source_name: source_name.map(|envelope| {
10983 ::fidl_next::FromWire::from_wire(unsafe {
10984 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10985 })
10986 }),
10987
10988 target: target.map(|envelope| {
10989 ::fidl_next::FromWire::from_wire(unsafe {
10990 envelope.read_unchecked::<crate::wire::Ref<'de>>()
10991 })
10992 }),
10993
10994 target_name: target_name.map(|envelope| {
10995 ::fidl_next::FromWire::from_wire(unsafe {
10996 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10997 })
10998 }),
10999
11000 availability: availability.map(|envelope| {
11001 ::fidl_next::FromWire::from_wire(unsafe {
11002 envelope.read_unchecked::<crate::wire::Availability>()
11003 })
11004 }),
11005
11006 source_dictionary: source_dictionary.map(|envelope| {
11007 ::fidl_next::FromWire::from_wire(unsafe {
11008 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11009 })
11010 }),
11011 }
11012 }
11013 }
11014
11015 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeService<'de>> for ExposeService {
11016 #[inline]
11017 fn from_wire_ref(wire: &crate::wire::ExposeService<'de>) -> Self {
11018 Self {
11019 source: wire.table.get(1).map(|envelope| {
11020 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11021 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11022 })
11023 }),
11024
11025 source_name: wire.table.get(2).map(|envelope| {
11026 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11027 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11028 })
11029 }),
11030
11031 target: wire.table.get(3).map(|envelope| {
11032 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11033 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11034 })
11035 }),
11036
11037 target_name: wire.table.get(4).map(|envelope| {
11038 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11039 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11040 })
11041 }),
11042
11043 availability: wire.table.get(5).map(|envelope| {
11044 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11045 envelope.deref_unchecked::<crate::wire::Availability>()
11046 })
11047 }),
11048
11049 source_dictionary: wire.table.get(6).map(|envelope| {
11050 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11051 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11052 })
11053 }),
11054 }
11055 }
11056 }
11057
11058 #[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"]
11059 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
11060 pub struct ExposeProtocol {
11061 pub source: ::core::option::Option<crate::natural::Ref>,
11062
11063 pub source_name: ::core::option::Option<::std::string::String>,
11064
11065 pub target: ::core::option::Option<crate::natural::Ref>,
11066
11067 pub target_name: ::core::option::Option<::std::string::String>,
11068
11069 pub availability: ::core::option::Option<crate::natural::Availability>,
11070
11071 pub source_dictionary: ::core::option::Option<::std::string::String>,
11072 }
11073
11074 impl ExposeProtocol {
11075 fn __max_ordinal(&self) -> usize {
11076 if self.source_dictionary.is_some() {
11077 return 6;
11078 }
11079
11080 if self.availability.is_some() {
11081 return 5;
11082 }
11083
11084 if self.target_name.is_some() {
11085 return 4;
11086 }
11087
11088 if self.target.is_some() {
11089 return 3;
11090 }
11091
11092 if self.source_name.is_some() {
11093 return 2;
11094 }
11095
11096 if self.source.is_some() {
11097 return 1;
11098 }
11099
11100 0
11101 }
11102 }
11103
11104 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeProtocol<'static>, ___E> for ExposeProtocol
11105 where
11106 ___E: ::fidl_next::Encoder + ?Sized,
11107 {
11108 #[inline]
11109 fn encode(
11110 mut self,
11111 encoder: &mut ___E,
11112 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeProtocol<'static>>,
11113 _: (),
11114 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11115 ::fidl_next::munge!(let crate::wire::ExposeProtocol { table } = out);
11116
11117 let max_ord = self.__max_ordinal();
11118
11119 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11120 ::fidl_next::Wire::zero_padding(&mut out);
11121
11122 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11123 ::fidl_next::wire::Envelope,
11124 >(encoder, max_ord);
11125
11126 for i in 1..=max_ord {
11127 match i {
11128 6 => {
11129 if let Some(value) = self.source_dictionary.take() {
11130 ::fidl_next::wire::Envelope::encode_value::<
11131 ::fidl_next::wire::String<'static>,
11132 ___E,
11133 >(
11134 value, preallocated.encoder, &mut out, 1024
11135 )?;
11136 } else {
11137 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11138 }
11139 }
11140
11141 5 => {
11142 if let Some(value) = self.availability.take() {
11143 ::fidl_next::wire::Envelope::encode_value::<
11144 crate::wire::Availability,
11145 ___E,
11146 >(
11147 value, preallocated.encoder, &mut out, ()
11148 )?;
11149 } else {
11150 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11151 }
11152 }
11153
11154 4 => {
11155 if let Some(value) = self.target_name.take() {
11156 ::fidl_next::wire::Envelope::encode_value::<
11157 ::fidl_next::wire::String<'static>,
11158 ___E,
11159 >(
11160 value, preallocated.encoder, &mut out, 100
11161 )?;
11162 } else {
11163 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11164 }
11165 }
11166
11167 3 => {
11168 if let Some(value) = self.target.take() {
11169 ::fidl_next::wire::Envelope::encode_value::<
11170 crate::wire::Ref<'static>,
11171 ___E,
11172 >(
11173 value, preallocated.encoder, &mut out, ()
11174 )?;
11175 } else {
11176 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11177 }
11178 }
11179
11180 2 => {
11181 if let Some(value) = self.source_name.take() {
11182 ::fidl_next::wire::Envelope::encode_value::<
11183 ::fidl_next::wire::String<'static>,
11184 ___E,
11185 >(
11186 value, preallocated.encoder, &mut out, 100
11187 )?;
11188 } else {
11189 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11190 }
11191 }
11192
11193 1 => {
11194 if let Some(value) = self.source.take() {
11195 ::fidl_next::wire::Envelope::encode_value::<
11196 crate::wire::Ref<'static>,
11197 ___E,
11198 >(
11199 value, preallocated.encoder, &mut out, ()
11200 )?;
11201 } else {
11202 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11203 }
11204 }
11205
11206 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11207 }
11208 unsafe {
11209 preallocated.write_next(out.assume_init_ref());
11210 }
11211 }
11212
11213 ::fidl_next::wire::Table::encode_len(table, max_ord);
11214
11215 Ok(())
11216 }
11217 }
11218
11219 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeProtocol<'static>, ___E>
11220 for &'a ExposeProtocol
11221 where
11222 ___E: ::fidl_next::Encoder + ?Sized,
11223 {
11224 #[inline]
11225 fn encode(
11226 self,
11227 encoder: &mut ___E,
11228 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeProtocol<'static>>,
11229 _: (),
11230 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11231 ::fidl_next::munge!(let crate::wire::ExposeProtocol { table } = out);
11232
11233 let max_ord = self.__max_ordinal();
11234
11235 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11236 ::fidl_next::Wire::zero_padding(&mut out);
11237
11238 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11239 ::fidl_next::wire::Envelope,
11240 >(encoder, max_ord);
11241
11242 for i in 1..=max_ord {
11243 match i {
11244 6 => {
11245 if let Some(value) = &self.source_dictionary {
11246 ::fidl_next::wire::Envelope::encode_value::<
11247 ::fidl_next::wire::String<'static>,
11248 ___E,
11249 >(
11250 value, preallocated.encoder, &mut out, 1024
11251 )?;
11252 } else {
11253 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11254 }
11255 }
11256
11257 5 => {
11258 if let Some(value) = &self.availability {
11259 ::fidl_next::wire::Envelope::encode_value::<
11260 crate::wire::Availability,
11261 ___E,
11262 >(
11263 value, preallocated.encoder, &mut out, ()
11264 )?;
11265 } else {
11266 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11267 }
11268 }
11269
11270 4 => {
11271 if let Some(value) = &self.target_name {
11272 ::fidl_next::wire::Envelope::encode_value::<
11273 ::fidl_next::wire::String<'static>,
11274 ___E,
11275 >(
11276 value, preallocated.encoder, &mut out, 100
11277 )?;
11278 } else {
11279 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11280 }
11281 }
11282
11283 3 => {
11284 if let Some(value) = &self.target {
11285 ::fidl_next::wire::Envelope::encode_value::<
11286 crate::wire::Ref<'static>,
11287 ___E,
11288 >(
11289 value, preallocated.encoder, &mut out, ()
11290 )?;
11291 } else {
11292 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11293 }
11294 }
11295
11296 2 => {
11297 if let Some(value) = &self.source_name {
11298 ::fidl_next::wire::Envelope::encode_value::<
11299 ::fidl_next::wire::String<'static>,
11300 ___E,
11301 >(
11302 value, preallocated.encoder, &mut out, 100
11303 )?;
11304 } else {
11305 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11306 }
11307 }
11308
11309 1 => {
11310 if let Some(value) = &self.source {
11311 ::fidl_next::wire::Envelope::encode_value::<
11312 crate::wire::Ref<'static>,
11313 ___E,
11314 >(
11315 value, preallocated.encoder, &mut out, ()
11316 )?;
11317 } else {
11318 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11319 }
11320 }
11321
11322 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11323 }
11324 unsafe {
11325 preallocated.write_next(out.assume_init_ref());
11326 }
11327 }
11328
11329 ::fidl_next::wire::Table::encode_len(table, max_ord);
11330
11331 Ok(())
11332 }
11333 }
11334
11335 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeProtocol<'de>> for ExposeProtocol {
11336 #[inline]
11337 fn from_wire(wire_: crate::wire::ExposeProtocol<'de>) -> Self {
11338 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
11339
11340 let source = wire_.table.get(1);
11341
11342 let source_name = wire_.table.get(2);
11343
11344 let target = wire_.table.get(3);
11345
11346 let target_name = wire_.table.get(4);
11347
11348 let availability = wire_.table.get(5);
11349
11350 let source_dictionary = wire_.table.get(6);
11351
11352 Self {
11353 source: source.map(|envelope| {
11354 ::fidl_next::FromWire::from_wire(unsafe {
11355 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11356 })
11357 }),
11358
11359 source_name: source_name.map(|envelope| {
11360 ::fidl_next::FromWire::from_wire(unsafe {
11361 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11362 })
11363 }),
11364
11365 target: target.map(|envelope| {
11366 ::fidl_next::FromWire::from_wire(unsafe {
11367 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11368 })
11369 }),
11370
11371 target_name: target_name.map(|envelope| {
11372 ::fidl_next::FromWire::from_wire(unsafe {
11373 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11374 })
11375 }),
11376
11377 availability: availability.map(|envelope| {
11378 ::fidl_next::FromWire::from_wire(unsafe {
11379 envelope.read_unchecked::<crate::wire::Availability>()
11380 })
11381 }),
11382
11383 source_dictionary: source_dictionary.map(|envelope| {
11384 ::fidl_next::FromWire::from_wire(unsafe {
11385 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11386 })
11387 }),
11388 }
11389 }
11390 }
11391
11392 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeProtocol<'de>> for ExposeProtocol {
11393 #[inline]
11394 fn from_wire_ref(wire: &crate::wire::ExposeProtocol<'de>) -> Self {
11395 Self {
11396 source: wire.table.get(1).map(|envelope| {
11397 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11398 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11399 })
11400 }),
11401
11402 source_name: wire.table.get(2).map(|envelope| {
11403 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11404 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11405 })
11406 }),
11407
11408 target: wire.table.get(3).map(|envelope| {
11409 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11410 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11411 })
11412 }),
11413
11414 target_name: wire.table.get(4).map(|envelope| {
11415 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11416 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11417 })
11418 }),
11419
11420 availability: wire.table.get(5).map(|envelope| {
11421 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11422 envelope.deref_unchecked::<crate::wire::Availability>()
11423 })
11424 }),
11425
11426 source_dictionary: wire.table.get(6).map(|envelope| {
11427 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11428 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11429 })
11430 }),
11431 }
11432 }
11433 }
11434
11435 #[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"]
11436 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
11437 pub struct ExposeDirectory {
11438 pub source: ::core::option::Option<crate::natural::Ref>,
11439
11440 pub source_name: ::core::option::Option<::std::string::String>,
11441
11442 pub target: ::core::option::Option<crate::natural::Ref>,
11443
11444 pub target_name: ::core::option::Option<::std::string::String>,
11445
11446 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
11447
11448 pub subdir: ::core::option::Option<::std::string::String>,
11449
11450 pub availability: ::core::option::Option<crate::natural::Availability>,
11451
11452 pub source_dictionary: ::core::option::Option<::std::string::String>,
11453 }
11454
11455 impl ExposeDirectory {
11456 fn __max_ordinal(&self) -> usize {
11457 if self.source_dictionary.is_some() {
11458 return 8;
11459 }
11460
11461 if self.availability.is_some() {
11462 return 7;
11463 }
11464
11465 if self.subdir.is_some() {
11466 return 6;
11467 }
11468
11469 if self.rights.is_some() {
11470 return 5;
11471 }
11472
11473 if self.target_name.is_some() {
11474 return 4;
11475 }
11476
11477 if self.target.is_some() {
11478 return 3;
11479 }
11480
11481 if self.source_name.is_some() {
11482 return 2;
11483 }
11484
11485 if self.source.is_some() {
11486 return 1;
11487 }
11488
11489 0
11490 }
11491 }
11492
11493 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeDirectory<'static>, ___E>
11494 for ExposeDirectory
11495 where
11496 ___E: ::fidl_next::Encoder + ?Sized,
11497 {
11498 #[inline]
11499 fn encode(
11500 mut self,
11501 encoder: &mut ___E,
11502 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDirectory<'static>>,
11503 _: (),
11504 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11505 ::fidl_next::munge!(let crate::wire::ExposeDirectory { table } = out);
11506
11507 let max_ord = self.__max_ordinal();
11508
11509 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11510 ::fidl_next::Wire::zero_padding(&mut out);
11511
11512 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11513 ::fidl_next::wire::Envelope,
11514 >(encoder, max_ord);
11515
11516 for i in 1..=max_ord {
11517 match i {
11518 8 => {
11519 if let Some(value) = self.source_dictionary.take() {
11520 ::fidl_next::wire::Envelope::encode_value::<
11521 ::fidl_next::wire::String<'static>,
11522 ___E,
11523 >(
11524 value, preallocated.encoder, &mut out, 1024
11525 )?;
11526 } else {
11527 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11528 }
11529 }
11530
11531 7 => {
11532 if let Some(value) = self.availability.take() {
11533 ::fidl_next::wire::Envelope::encode_value::<
11534 crate::wire::Availability,
11535 ___E,
11536 >(
11537 value, preallocated.encoder, &mut out, ()
11538 )?;
11539 } else {
11540 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11541 }
11542 }
11543
11544 6 => {
11545 if let Some(value) = self.subdir.take() {
11546 ::fidl_next::wire::Envelope::encode_value::<
11547 ::fidl_next::wire::String<'static>,
11548 ___E,
11549 >(
11550 value, preallocated.encoder, &mut out, 1024
11551 )?;
11552 } else {
11553 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11554 }
11555 }
11556
11557 5 => {
11558 if let Some(value) = self.rights.take() {
11559 ::fidl_next::wire::Envelope::encode_value::<
11560 ::fidl_next_common_fuchsia_io::wire::Operations,
11561 ___E,
11562 >(
11563 value, preallocated.encoder, &mut out, ()
11564 )?;
11565 } else {
11566 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11567 }
11568 }
11569
11570 4 => {
11571 if let Some(value) = self.target_name.take() {
11572 ::fidl_next::wire::Envelope::encode_value::<
11573 ::fidl_next::wire::String<'static>,
11574 ___E,
11575 >(
11576 value, preallocated.encoder, &mut out, 100
11577 )?;
11578 } else {
11579 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11580 }
11581 }
11582
11583 3 => {
11584 if let Some(value) = self.target.take() {
11585 ::fidl_next::wire::Envelope::encode_value::<
11586 crate::wire::Ref<'static>,
11587 ___E,
11588 >(
11589 value, preallocated.encoder, &mut out, ()
11590 )?;
11591 } else {
11592 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11593 }
11594 }
11595
11596 2 => {
11597 if let Some(value) = self.source_name.take() {
11598 ::fidl_next::wire::Envelope::encode_value::<
11599 ::fidl_next::wire::String<'static>,
11600 ___E,
11601 >(
11602 value, preallocated.encoder, &mut out, 100
11603 )?;
11604 } else {
11605 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11606 }
11607 }
11608
11609 1 => {
11610 if let Some(value) = self.source.take() {
11611 ::fidl_next::wire::Envelope::encode_value::<
11612 crate::wire::Ref<'static>,
11613 ___E,
11614 >(
11615 value, preallocated.encoder, &mut out, ()
11616 )?;
11617 } else {
11618 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11619 }
11620 }
11621
11622 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11623 }
11624 unsafe {
11625 preallocated.write_next(out.assume_init_ref());
11626 }
11627 }
11628
11629 ::fidl_next::wire::Table::encode_len(table, max_ord);
11630
11631 Ok(())
11632 }
11633 }
11634
11635 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeDirectory<'static>, ___E>
11636 for &'a ExposeDirectory
11637 where
11638 ___E: ::fidl_next::Encoder + ?Sized,
11639 {
11640 #[inline]
11641 fn encode(
11642 self,
11643 encoder: &mut ___E,
11644 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDirectory<'static>>,
11645 _: (),
11646 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11647 ::fidl_next::munge!(let crate::wire::ExposeDirectory { table } = out);
11648
11649 let max_ord = self.__max_ordinal();
11650
11651 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11652 ::fidl_next::Wire::zero_padding(&mut out);
11653
11654 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11655 ::fidl_next::wire::Envelope,
11656 >(encoder, max_ord);
11657
11658 for i in 1..=max_ord {
11659 match i {
11660 8 => {
11661 if let Some(value) = &self.source_dictionary {
11662 ::fidl_next::wire::Envelope::encode_value::<
11663 ::fidl_next::wire::String<'static>,
11664 ___E,
11665 >(
11666 value, preallocated.encoder, &mut out, 1024
11667 )?;
11668 } else {
11669 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11670 }
11671 }
11672
11673 7 => {
11674 if let Some(value) = &self.availability {
11675 ::fidl_next::wire::Envelope::encode_value::<
11676 crate::wire::Availability,
11677 ___E,
11678 >(
11679 value, preallocated.encoder, &mut out, ()
11680 )?;
11681 } else {
11682 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11683 }
11684 }
11685
11686 6 => {
11687 if let Some(value) = &self.subdir {
11688 ::fidl_next::wire::Envelope::encode_value::<
11689 ::fidl_next::wire::String<'static>,
11690 ___E,
11691 >(
11692 value, preallocated.encoder, &mut out, 1024
11693 )?;
11694 } else {
11695 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11696 }
11697 }
11698
11699 5 => {
11700 if let Some(value) = &self.rights {
11701 ::fidl_next::wire::Envelope::encode_value::<
11702 ::fidl_next_common_fuchsia_io::wire::Operations,
11703 ___E,
11704 >(
11705 value, preallocated.encoder, &mut out, ()
11706 )?;
11707 } else {
11708 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11709 }
11710 }
11711
11712 4 => {
11713 if let Some(value) = &self.target_name {
11714 ::fidl_next::wire::Envelope::encode_value::<
11715 ::fidl_next::wire::String<'static>,
11716 ___E,
11717 >(
11718 value, preallocated.encoder, &mut out, 100
11719 )?;
11720 } else {
11721 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11722 }
11723 }
11724
11725 3 => {
11726 if let Some(value) = &self.target {
11727 ::fidl_next::wire::Envelope::encode_value::<
11728 crate::wire::Ref<'static>,
11729 ___E,
11730 >(
11731 value, preallocated.encoder, &mut out, ()
11732 )?;
11733 } else {
11734 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11735 }
11736 }
11737
11738 2 => {
11739 if let Some(value) = &self.source_name {
11740 ::fidl_next::wire::Envelope::encode_value::<
11741 ::fidl_next::wire::String<'static>,
11742 ___E,
11743 >(
11744 value, preallocated.encoder, &mut out, 100
11745 )?;
11746 } else {
11747 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11748 }
11749 }
11750
11751 1 => {
11752 if let Some(value) = &self.source {
11753 ::fidl_next::wire::Envelope::encode_value::<
11754 crate::wire::Ref<'static>,
11755 ___E,
11756 >(
11757 value, preallocated.encoder, &mut out, ()
11758 )?;
11759 } else {
11760 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11761 }
11762 }
11763
11764 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11765 }
11766 unsafe {
11767 preallocated.write_next(out.assume_init_ref());
11768 }
11769 }
11770
11771 ::fidl_next::wire::Table::encode_len(table, max_ord);
11772
11773 Ok(())
11774 }
11775 }
11776
11777 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeDirectory<'de>> for ExposeDirectory {
11778 #[inline]
11779 fn from_wire(wire_: crate::wire::ExposeDirectory<'de>) -> Self {
11780 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
11781
11782 let source = wire_.table.get(1);
11783
11784 let source_name = wire_.table.get(2);
11785
11786 let target = wire_.table.get(3);
11787
11788 let target_name = wire_.table.get(4);
11789
11790 let rights = wire_.table.get(5);
11791
11792 let subdir = wire_.table.get(6);
11793
11794 let availability = wire_.table.get(7);
11795
11796 let source_dictionary = wire_.table.get(8);
11797
11798 Self {
11799 source: source.map(|envelope| {
11800 ::fidl_next::FromWire::from_wire(unsafe {
11801 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11802 })
11803 }),
11804
11805 source_name: source_name.map(|envelope| {
11806 ::fidl_next::FromWire::from_wire(unsafe {
11807 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11808 })
11809 }),
11810
11811 target: target.map(|envelope| {
11812 ::fidl_next::FromWire::from_wire(unsafe {
11813 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11814 })
11815 }),
11816
11817 target_name: target_name.map(|envelope| {
11818 ::fidl_next::FromWire::from_wire(unsafe {
11819 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11820 })
11821 }),
11822
11823 rights: rights.map(|envelope| {
11824 ::fidl_next::FromWire::from_wire(unsafe {
11825 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
11826 })
11827 }),
11828
11829 subdir: subdir.map(|envelope| {
11830 ::fidl_next::FromWire::from_wire(unsafe {
11831 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11832 })
11833 }),
11834
11835 availability: availability.map(|envelope| {
11836 ::fidl_next::FromWire::from_wire(unsafe {
11837 envelope.read_unchecked::<crate::wire::Availability>()
11838 })
11839 }),
11840
11841 source_dictionary: source_dictionary.map(|envelope| {
11842 ::fidl_next::FromWire::from_wire(unsafe {
11843 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11844 })
11845 }),
11846 }
11847 }
11848 }
11849
11850 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeDirectory<'de>> for ExposeDirectory {
11851 #[inline]
11852 fn from_wire_ref(wire: &crate::wire::ExposeDirectory<'de>) -> Self {
11853 Self {
11854 source: wire.table.get(1).map(|envelope| {
11855 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11856 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11857 })
11858 }),
11859
11860 source_name: wire.table.get(2).map(|envelope| {
11861 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11862 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11863 })
11864 }),
11865
11866 target: wire.table.get(3).map(|envelope| {
11867 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11868 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11869 })
11870 }),
11871
11872 target_name: wire.table.get(4).map(|envelope| {
11873 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11874 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11875 })
11876 }),
11877
11878 rights: wire.table.get(5).map(|envelope| {
11879 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11880 envelope
11881 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
11882 })
11883 }),
11884
11885 subdir: wire.table.get(6).map(|envelope| {
11886 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11887 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11888 })
11889 }),
11890
11891 availability: wire.table.get(7).map(|envelope| {
11892 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11893 envelope.deref_unchecked::<crate::wire::Availability>()
11894 })
11895 }),
11896
11897 source_dictionary: wire.table.get(8).map(|envelope| {
11898 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11899 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11900 })
11901 }),
11902 }
11903 }
11904 }
11905
11906 #[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"]
11907 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
11908 pub struct ExposeRunner {
11909 pub source: ::core::option::Option<crate::natural::Ref>,
11910
11911 pub source_name: ::core::option::Option<::std::string::String>,
11912
11913 pub target: ::core::option::Option<crate::natural::Ref>,
11914
11915 pub target_name: ::core::option::Option<::std::string::String>,
11916
11917 pub source_dictionary: ::core::option::Option<::std::string::String>,
11918 }
11919
11920 impl ExposeRunner {
11921 fn __max_ordinal(&self) -> usize {
11922 if self.source_dictionary.is_some() {
11923 return 6;
11924 }
11925
11926 if self.target_name.is_some() {
11927 return 4;
11928 }
11929
11930 if self.target.is_some() {
11931 return 3;
11932 }
11933
11934 if self.source_name.is_some() {
11935 return 2;
11936 }
11937
11938 if self.source.is_some() {
11939 return 1;
11940 }
11941
11942 0
11943 }
11944 }
11945
11946 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeRunner<'static>, ___E> for ExposeRunner
11947 where
11948 ___E: ::fidl_next::Encoder + ?Sized,
11949 {
11950 #[inline]
11951 fn encode(
11952 mut self,
11953 encoder: &mut ___E,
11954 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeRunner<'static>>,
11955 _: (),
11956 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11957 ::fidl_next::munge!(let crate::wire::ExposeRunner { table } = out);
11958
11959 let max_ord = self.__max_ordinal();
11960
11961 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11962 ::fidl_next::Wire::zero_padding(&mut out);
11963
11964 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11965 ::fidl_next::wire::Envelope,
11966 >(encoder, max_ord);
11967
11968 for i in 1..=max_ord {
11969 match i {
11970 6 => {
11971 if let Some(value) = self.source_dictionary.take() {
11972 ::fidl_next::wire::Envelope::encode_value::<
11973 ::fidl_next::wire::String<'static>,
11974 ___E,
11975 >(
11976 value, preallocated.encoder, &mut out, 1024
11977 )?;
11978 } else {
11979 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11980 }
11981 }
11982
11983 4 => {
11984 if let Some(value) = self.target_name.take() {
11985 ::fidl_next::wire::Envelope::encode_value::<
11986 ::fidl_next::wire::String<'static>,
11987 ___E,
11988 >(
11989 value, preallocated.encoder, &mut out, 100
11990 )?;
11991 } else {
11992 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11993 }
11994 }
11995
11996 3 => {
11997 if let Some(value) = self.target.take() {
11998 ::fidl_next::wire::Envelope::encode_value::<
11999 crate::wire::Ref<'static>,
12000 ___E,
12001 >(
12002 value, preallocated.encoder, &mut out, ()
12003 )?;
12004 } else {
12005 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12006 }
12007 }
12008
12009 2 => {
12010 if let Some(value) = self.source_name.take() {
12011 ::fidl_next::wire::Envelope::encode_value::<
12012 ::fidl_next::wire::String<'static>,
12013 ___E,
12014 >(
12015 value, preallocated.encoder, &mut out, 100
12016 )?;
12017 } else {
12018 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12019 }
12020 }
12021
12022 1 => {
12023 if let Some(value) = self.source.take() {
12024 ::fidl_next::wire::Envelope::encode_value::<
12025 crate::wire::Ref<'static>,
12026 ___E,
12027 >(
12028 value, preallocated.encoder, &mut out, ()
12029 )?;
12030 } else {
12031 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12032 }
12033 }
12034
12035 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12036 }
12037 unsafe {
12038 preallocated.write_next(out.assume_init_ref());
12039 }
12040 }
12041
12042 ::fidl_next::wire::Table::encode_len(table, max_ord);
12043
12044 Ok(())
12045 }
12046 }
12047
12048 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeRunner<'static>, ___E>
12049 for &'a ExposeRunner
12050 where
12051 ___E: ::fidl_next::Encoder + ?Sized,
12052 {
12053 #[inline]
12054 fn encode(
12055 self,
12056 encoder: &mut ___E,
12057 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeRunner<'static>>,
12058 _: (),
12059 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12060 ::fidl_next::munge!(let crate::wire::ExposeRunner { table } = out);
12061
12062 let max_ord = self.__max_ordinal();
12063
12064 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12065 ::fidl_next::Wire::zero_padding(&mut out);
12066
12067 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12068 ::fidl_next::wire::Envelope,
12069 >(encoder, max_ord);
12070
12071 for i in 1..=max_ord {
12072 match i {
12073 6 => {
12074 if let Some(value) = &self.source_dictionary {
12075 ::fidl_next::wire::Envelope::encode_value::<
12076 ::fidl_next::wire::String<'static>,
12077 ___E,
12078 >(
12079 value, preallocated.encoder, &mut out, 1024
12080 )?;
12081 } else {
12082 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12083 }
12084 }
12085
12086 4 => {
12087 if let Some(value) = &self.target_name {
12088 ::fidl_next::wire::Envelope::encode_value::<
12089 ::fidl_next::wire::String<'static>,
12090 ___E,
12091 >(
12092 value, preallocated.encoder, &mut out, 100
12093 )?;
12094 } else {
12095 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12096 }
12097 }
12098
12099 3 => {
12100 if let Some(value) = &self.target {
12101 ::fidl_next::wire::Envelope::encode_value::<
12102 crate::wire::Ref<'static>,
12103 ___E,
12104 >(
12105 value, preallocated.encoder, &mut out, ()
12106 )?;
12107 } else {
12108 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12109 }
12110 }
12111
12112 2 => {
12113 if let Some(value) = &self.source_name {
12114 ::fidl_next::wire::Envelope::encode_value::<
12115 ::fidl_next::wire::String<'static>,
12116 ___E,
12117 >(
12118 value, preallocated.encoder, &mut out, 100
12119 )?;
12120 } else {
12121 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12122 }
12123 }
12124
12125 1 => {
12126 if let Some(value) = &self.source {
12127 ::fidl_next::wire::Envelope::encode_value::<
12128 crate::wire::Ref<'static>,
12129 ___E,
12130 >(
12131 value, preallocated.encoder, &mut out, ()
12132 )?;
12133 } else {
12134 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12135 }
12136 }
12137
12138 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12139 }
12140 unsafe {
12141 preallocated.write_next(out.assume_init_ref());
12142 }
12143 }
12144
12145 ::fidl_next::wire::Table::encode_len(table, max_ord);
12146
12147 Ok(())
12148 }
12149 }
12150
12151 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeRunner<'de>> for ExposeRunner {
12152 #[inline]
12153 fn from_wire(wire_: crate::wire::ExposeRunner<'de>) -> Self {
12154 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12155
12156 let source = wire_.table.get(1);
12157
12158 let source_name = wire_.table.get(2);
12159
12160 let target = wire_.table.get(3);
12161
12162 let target_name = wire_.table.get(4);
12163
12164 let source_dictionary = wire_.table.get(6);
12165
12166 Self {
12167 source: source.map(|envelope| {
12168 ::fidl_next::FromWire::from_wire(unsafe {
12169 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12170 })
12171 }),
12172
12173 source_name: source_name.map(|envelope| {
12174 ::fidl_next::FromWire::from_wire(unsafe {
12175 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12176 })
12177 }),
12178
12179 target: target.map(|envelope| {
12180 ::fidl_next::FromWire::from_wire(unsafe {
12181 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12182 })
12183 }),
12184
12185 target_name: target_name.map(|envelope| {
12186 ::fidl_next::FromWire::from_wire(unsafe {
12187 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12188 })
12189 }),
12190
12191 source_dictionary: source_dictionary.map(|envelope| {
12192 ::fidl_next::FromWire::from_wire(unsafe {
12193 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12194 })
12195 }),
12196 }
12197 }
12198 }
12199
12200 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeRunner<'de>> for ExposeRunner {
12201 #[inline]
12202 fn from_wire_ref(wire: &crate::wire::ExposeRunner<'de>) -> Self {
12203 Self {
12204 source: wire.table.get(1).map(|envelope| {
12205 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12206 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12207 })
12208 }),
12209
12210 source_name: wire.table.get(2).map(|envelope| {
12211 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12212 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12213 })
12214 }),
12215
12216 target: wire.table.get(3).map(|envelope| {
12217 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12218 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12219 })
12220 }),
12221
12222 target_name: wire.table.get(4).map(|envelope| {
12223 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12224 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12225 })
12226 }),
12227
12228 source_dictionary: wire.table.get(6).map(|envelope| {
12229 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12230 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12231 })
12232 }),
12233 }
12234 }
12235 }
12236
12237 #[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"]
12238 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12239 pub struct ExposeResolver {
12240 pub source: ::core::option::Option<crate::natural::Ref>,
12241
12242 pub source_name: ::core::option::Option<::std::string::String>,
12243
12244 pub target: ::core::option::Option<crate::natural::Ref>,
12245
12246 pub target_name: ::core::option::Option<::std::string::String>,
12247
12248 pub source_dictionary: ::core::option::Option<::std::string::String>,
12249 }
12250
12251 impl ExposeResolver {
12252 fn __max_ordinal(&self) -> usize {
12253 if self.source_dictionary.is_some() {
12254 return 6;
12255 }
12256
12257 if self.target_name.is_some() {
12258 return 4;
12259 }
12260
12261 if self.target.is_some() {
12262 return 3;
12263 }
12264
12265 if self.source_name.is_some() {
12266 return 2;
12267 }
12268
12269 if self.source.is_some() {
12270 return 1;
12271 }
12272
12273 0
12274 }
12275 }
12276
12277 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeResolver<'static>, ___E> for ExposeResolver
12278 where
12279 ___E: ::fidl_next::Encoder + ?Sized,
12280 {
12281 #[inline]
12282 fn encode(
12283 mut self,
12284 encoder: &mut ___E,
12285 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeResolver<'static>>,
12286 _: (),
12287 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12288 ::fidl_next::munge!(let crate::wire::ExposeResolver { table } = out);
12289
12290 let max_ord = self.__max_ordinal();
12291
12292 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12293 ::fidl_next::Wire::zero_padding(&mut out);
12294
12295 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12296 ::fidl_next::wire::Envelope,
12297 >(encoder, max_ord);
12298
12299 for i in 1..=max_ord {
12300 match i {
12301 6 => {
12302 if let Some(value) = self.source_dictionary.take() {
12303 ::fidl_next::wire::Envelope::encode_value::<
12304 ::fidl_next::wire::String<'static>,
12305 ___E,
12306 >(
12307 value, preallocated.encoder, &mut out, 1024
12308 )?;
12309 } else {
12310 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12311 }
12312 }
12313
12314 4 => {
12315 if let Some(value) = self.target_name.take() {
12316 ::fidl_next::wire::Envelope::encode_value::<
12317 ::fidl_next::wire::String<'static>,
12318 ___E,
12319 >(
12320 value, preallocated.encoder, &mut out, 100
12321 )?;
12322 } else {
12323 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12324 }
12325 }
12326
12327 3 => {
12328 if let Some(value) = self.target.take() {
12329 ::fidl_next::wire::Envelope::encode_value::<
12330 crate::wire::Ref<'static>,
12331 ___E,
12332 >(
12333 value, preallocated.encoder, &mut out, ()
12334 )?;
12335 } else {
12336 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12337 }
12338 }
12339
12340 2 => {
12341 if let Some(value) = self.source_name.take() {
12342 ::fidl_next::wire::Envelope::encode_value::<
12343 ::fidl_next::wire::String<'static>,
12344 ___E,
12345 >(
12346 value, preallocated.encoder, &mut out, 100
12347 )?;
12348 } else {
12349 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12350 }
12351 }
12352
12353 1 => {
12354 if let Some(value) = self.source.take() {
12355 ::fidl_next::wire::Envelope::encode_value::<
12356 crate::wire::Ref<'static>,
12357 ___E,
12358 >(
12359 value, preallocated.encoder, &mut out, ()
12360 )?;
12361 } else {
12362 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12363 }
12364 }
12365
12366 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12367 }
12368 unsafe {
12369 preallocated.write_next(out.assume_init_ref());
12370 }
12371 }
12372
12373 ::fidl_next::wire::Table::encode_len(table, max_ord);
12374
12375 Ok(())
12376 }
12377 }
12378
12379 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeResolver<'static>, ___E>
12380 for &'a ExposeResolver
12381 where
12382 ___E: ::fidl_next::Encoder + ?Sized,
12383 {
12384 #[inline]
12385 fn encode(
12386 self,
12387 encoder: &mut ___E,
12388 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeResolver<'static>>,
12389 _: (),
12390 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12391 ::fidl_next::munge!(let crate::wire::ExposeResolver { table } = out);
12392
12393 let max_ord = self.__max_ordinal();
12394
12395 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12396 ::fidl_next::Wire::zero_padding(&mut out);
12397
12398 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12399 ::fidl_next::wire::Envelope,
12400 >(encoder, max_ord);
12401
12402 for i in 1..=max_ord {
12403 match i {
12404 6 => {
12405 if let Some(value) = &self.source_dictionary {
12406 ::fidl_next::wire::Envelope::encode_value::<
12407 ::fidl_next::wire::String<'static>,
12408 ___E,
12409 >(
12410 value, preallocated.encoder, &mut out, 1024
12411 )?;
12412 } else {
12413 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12414 }
12415 }
12416
12417 4 => {
12418 if let Some(value) = &self.target_name {
12419 ::fidl_next::wire::Envelope::encode_value::<
12420 ::fidl_next::wire::String<'static>,
12421 ___E,
12422 >(
12423 value, preallocated.encoder, &mut out, 100
12424 )?;
12425 } else {
12426 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12427 }
12428 }
12429
12430 3 => {
12431 if let Some(value) = &self.target {
12432 ::fidl_next::wire::Envelope::encode_value::<
12433 crate::wire::Ref<'static>,
12434 ___E,
12435 >(
12436 value, preallocated.encoder, &mut out, ()
12437 )?;
12438 } else {
12439 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12440 }
12441 }
12442
12443 2 => {
12444 if let Some(value) = &self.source_name {
12445 ::fidl_next::wire::Envelope::encode_value::<
12446 ::fidl_next::wire::String<'static>,
12447 ___E,
12448 >(
12449 value, preallocated.encoder, &mut out, 100
12450 )?;
12451 } else {
12452 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12453 }
12454 }
12455
12456 1 => {
12457 if let Some(value) = &self.source {
12458 ::fidl_next::wire::Envelope::encode_value::<
12459 crate::wire::Ref<'static>,
12460 ___E,
12461 >(
12462 value, preallocated.encoder, &mut out, ()
12463 )?;
12464 } else {
12465 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12466 }
12467 }
12468
12469 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12470 }
12471 unsafe {
12472 preallocated.write_next(out.assume_init_ref());
12473 }
12474 }
12475
12476 ::fidl_next::wire::Table::encode_len(table, max_ord);
12477
12478 Ok(())
12479 }
12480 }
12481
12482 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeResolver<'de>> for ExposeResolver {
12483 #[inline]
12484 fn from_wire(wire_: crate::wire::ExposeResolver<'de>) -> Self {
12485 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12486
12487 let source = wire_.table.get(1);
12488
12489 let source_name = wire_.table.get(2);
12490
12491 let target = wire_.table.get(3);
12492
12493 let target_name = wire_.table.get(4);
12494
12495 let source_dictionary = wire_.table.get(6);
12496
12497 Self {
12498 source: source.map(|envelope| {
12499 ::fidl_next::FromWire::from_wire(unsafe {
12500 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12501 })
12502 }),
12503
12504 source_name: source_name.map(|envelope| {
12505 ::fidl_next::FromWire::from_wire(unsafe {
12506 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12507 })
12508 }),
12509
12510 target: target.map(|envelope| {
12511 ::fidl_next::FromWire::from_wire(unsafe {
12512 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12513 })
12514 }),
12515
12516 target_name: target_name.map(|envelope| {
12517 ::fidl_next::FromWire::from_wire(unsafe {
12518 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12519 })
12520 }),
12521
12522 source_dictionary: source_dictionary.map(|envelope| {
12523 ::fidl_next::FromWire::from_wire(unsafe {
12524 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12525 })
12526 }),
12527 }
12528 }
12529 }
12530
12531 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeResolver<'de>> for ExposeResolver {
12532 #[inline]
12533 fn from_wire_ref(wire: &crate::wire::ExposeResolver<'de>) -> Self {
12534 Self {
12535 source: wire.table.get(1).map(|envelope| {
12536 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12537 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12538 })
12539 }),
12540
12541 source_name: wire.table.get(2).map(|envelope| {
12542 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12543 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12544 })
12545 }),
12546
12547 target: wire.table.get(3).map(|envelope| {
12548 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12549 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12550 })
12551 }),
12552
12553 target_name: wire.table.get(4).map(|envelope| {
12554 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12555 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12556 })
12557 }),
12558
12559 source_dictionary: wire.table.get(6).map(|envelope| {
12560 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12561 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12562 })
12563 }),
12564 }
12565 }
12566 }
12567
12568 #[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"]
12569 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12570 pub struct ExposeDictionary {
12571 pub source: ::core::option::Option<crate::natural::Ref>,
12572
12573 pub source_name: ::core::option::Option<::std::string::String>,
12574
12575 pub target: ::core::option::Option<crate::natural::Ref>,
12576
12577 pub target_name: ::core::option::Option<::std::string::String>,
12578
12579 pub availability: ::core::option::Option<crate::natural::Availability>,
12580
12581 pub source_dictionary: ::core::option::Option<::std::string::String>,
12582 }
12583
12584 impl ExposeDictionary {
12585 fn __max_ordinal(&self) -> usize {
12586 if self.source_dictionary.is_some() {
12587 return 6;
12588 }
12589
12590 if self.availability.is_some() {
12591 return 5;
12592 }
12593
12594 if self.target_name.is_some() {
12595 return 4;
12596 }
12597
12598 if self.target.is_some() {
12599 return 3;
12600 }
12601
12602 if self.source_name.is_some() {
12603 return 2;
12604 }
12605
12606 if self.source.is_some() {
12607 return 1;
12608 }
12609
12610 0
12611 }
12612 }
12613
12614 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeDictionary<'static>, ___E>
12615 for ExposeDictionary
12616 where
12617 ___E: ::fidl_next::Encoder + ?Sized,
12618 {
12619 #[inline]
12620 fn encode(
12621 mut self,
12622 encoder: &mut ___E,
12623 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDictionary<'static>>,
12624 _: (),
12625 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12626 ::fidl_next::munge!(let crate::wire::ExposeDictionary { table } = out);
12627
12628 let max_ord = self.__max_ordinal();
12629
12630 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12631 ::fidl_next::Wire::zero_padding(&mut out);
12632
12633 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12634 ::fidl_next::wire::Envelope,
12635 >(encoder, max_ord);
12636
12637 for i in 1..=max_ord {
12638 match i {
12639 6 => {
12640 if let Some(value) = self.source_dictionary.take() {
12641 ::fidl_next::wire::Envelope::encode_value::<
12642 ::fidl_next::wire::String<'static>,
12643 ___E,
12644 >(
12645 value, preallocated.encoder, &mut out, 1024
12646 )?;
12647 } else {
12648 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12649 }
12650 }
12651
12652 5 => {
12653 if let Some(value) = self.availability.take() {
12654 ::fidl_next::wire::Envelope::encode_value::<
12655 crate::wire::Availability,
12656 ___E,
12657 >(
12658 value, preallocated.encoder, &mut out, ()
12659 )?;
12660 } else {
12661 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12662 }
12663 }
12664
12665 4 => {
12666 if let Some(value) = self.target_name.take() {
12667 ::fidl_next::wire::Envelope::encode_value::<
12668 ::fidl_next::wire::String<'static>,
12669 ___E,
12670 >(
12671 value, preallocated.encoder, &mut out, 100
12672 )?;
12673 } else {
12674 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12675 }
12676 }
12677
12678 3 => {
12679 if let Some(value) = self.target.take() {
12680 ::fidl_next::wire::Envelope::encode_value::<
12681 crate::wire::Ref<'static>,
12682 ___E,
12683 >(
12684 value, preallocated.encoder, &mut out, ()
12685 )?;
12686 } else {
12687 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12688 }
12689 }
12690
12691 2 => {
12692 if let Some(value) = self.source_name.take() {
12693 ::fidl_next::wire::Envelope::encode_value::<
12694 ::fidl_next::wire::String<'static>,
12695 ___E,
12696 >(
12697 value, preallocated.encoder, &mut out, 100
12698 )?;
12699 } else {
12700 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12701 }
12702 }
12703
12704 1 => {
12705 if let Some(value) = self.source.take() {
12706 ::fidl_next::wire::Envelope::encode_value::<
12707 crate::wire::Ref<'static>,
12708 ___E,
12709 >(
12710 value, preallocated.encoder, &mut out, ()
12711 )?;
12712 } else {
12713 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12714 }
12715 }
12716
12717 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12718 }
12719 unsafe {
12720 preallocated.write_next(out.assume_init_ref());
12721 }
12722 }
12723
12724 ::fidl_next::wire::Table::encode_len(table, max_ord);
12725
12726 Ok(())
12727 }
12728 }
12729
12730 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeDictionary<'static>, ___E>
12731 for &'a ExposeDictionary
12732 where
12733 ___E: ::fidl_next::Encoder + ?Sized,
12734 {
12735 #[inline]
12736 fn encode(
12737 self,
12738 encoder: &mut ___E,
12739 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDictionary<'static>>,
12740 _: (),
12741 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12742 ::fidl_next::munge!(let crate::wire::ExposeDictionary { table } = out);
12743
12744 let max_ord = self.__max_ordinal();
12745
12746 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12747 ::fidl_next::Wire::zero_padding(&mut out);
12748
12749 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12750 ::fidl_next::wire::Envelope,
12751 >(encoder, max_ord);
12752
12753 for i in 1..=max_ord {
12754 match i {
12755 6 => {
12756 if let Some(value) = &self.source_dictionary {
12757 ::fidl_next::wire::Envelope::encode_value::<
12758 ::fidl_next::wire::String<'static>,
12759 ___E,
12760 >(
12761 value, preallocated.encoder, &mut out, 1024
12762 )?;
12763 } else {
12764 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12765 }
12766 }
12767
12768 5 => {
12769 if let Some(value) = &self.availability {
12770 ::fidl_next::wire::Envelope::encode_value::<
12771 crate::wire::Availability,
12772 ___E,
12773 >(
12774 value, preallocated.encoder, &mut out, ()
12775 )?;
12776 } else {
12777 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12778 }
12779 }
12780
12781 4 => {
12782 if let Some(value) = &self.target_name {
12783 ::fidl_next::wire::Envelope::encode_value::<
12784 ::fidl_next::wire::String<'static>,
12785 ___E,
12786 >(
12787 value, preallocated.encoder, &mut out, 100
12788 )?;
12789 } else {
12790 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12791 }
12792 }
12793
12794 3 => {
12795 if let Some(value) = &self.target {
12796 ::fidl_next::wire::Envelope::encode_value::<
12797 crate::wire::Ref<'static>,
12798 ___E,
12799 >(
12800 value, preallocated.encoder, &mut out, ()
12801 )?;
12802 } else {
12803 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12804 }
12805 }
12806
12807 2 => {
12808 if let Some(value) = &self.source_name {
12809 ::fidl_next::wire::Envelope::encode_value::<
12810 ::fidl_next::wire::String<'static>,
12811 ___E,
12812 >(
12813 value, preallocated.encoder, &mut out, 100
12814 )?;
12815 } else {
12816 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12817 }
12818 }
12819
12820 1 => {
12821 if let Some(value) = &self.source {
12822 ::fidl_next::wire::Envelope::encode_value::<
12823 crate::wire::Ref<'static>,
12824 ___E,
12825 >(
12826 value, preallocated.encoder, &mut out, ()
12827 )?;
12828 } else {
12829 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12830 }
12831 }
12832
12833 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12834 }
12835 unsafe {
12836 preallocated.write_next(out.assume_init_ref());
12837 }
12838 }
12839
12840 ::fidl_next::wire::Table::encode_len(table, max_ord);
12841
12842 Ok(())
12843 }
12844 }
12845
12846 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeDictionary<'de>> for ExposeDictionary {
12847 #[inline]
12848 fn from_wire(wire_: crate::wire::ExposeDictionary<'de>) -> Self {
12849 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12850
12851 let source = wire_.table.get(1);
12852
12853 let source_name = wire_.table.get(2);
12854
12855 let target = wire_.table.get(3);
12856
12857 let target_name = wire_.table.get(4);
12858
12859 let availability = wire_.table.get(5);
12860
12861 let source_dictionary = wire_.table.get(6);
12862
12863 Self {
12864 source: source.map(|envelope| {
12865 ::fidl_next::FromWire::from_wire(unsafe {
12866 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12867 })
12868 }),
12869
12870 source_name: source_name.map(|envelope| {
12871 ::fidl_next::FromWire::from_wire(unsafe {
12872 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12873 })
12874 }),
12875
12876 target: target.map(|envelope| {
12877 ::fidl_next::FromWire::from_wire(unsafe {
12878 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12879 })
12880 }),
12881
12882 target_name: target_name.map(|envelope| {
12883 ::fidl_next::FromWire::from_wire(unsafe {
12884 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12885 })
12886 }),
12887
12888 availability: availability.map(|envelope| {
12889 ::fidl_next::FromWire::from_wire(unsafe {
12890 envelope.read_unchecked::<crate::wire::Availability>()
12891 })
12892 }),
12893
12894 source_dictionary: source_dictionary.map(|envelope| {
12895 ::fidl_next::FromWire::from_wire(unsafe {
12896 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12897 })
12898 }),
12899 }
12900 }
12901 }
12902
12903 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeDictionary<'de>> for ExposeDictionary {
12904 #[inline]
12905 fn from_wire_ref(wire: &crate::wire::ExposeDictionary<'de>) -> Self {
12906 Self {
12907 source: wire.table.get(1).map(|envelope| {
12908 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12909 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12910 })
12911 }),
12912
12913 source_name: wire.table.get(2).map(|envelope| {
12914 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12915 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12916 })
12917 }),
12918
12919 target: wire.table.get(3).map(|envelope| {
12920 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12921 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12922 })
12923 }),
12924
12925 target_name: wire.table.get(4).map(|envelope| {
12926 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12927 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12928 })
12929 }),
12930
12931 availability: wire.table.get(5).map(|envelope| {
12932 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12933 envelope.deref_unchecked::<crate::wire::Availability>()
12934 })
12935 }),
12936
12937 source_dictionary: wire.table.get(6).map(|envelope| {
12938 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12939 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12940 })
12941 }),
12942 }
12943 }
12944 }
12945
12946 #[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"]
12947 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12948 pub struct ExposeConfiguration {
12949 pub source: ::core::option::Option<crate::natural::Ref>,
12950
12951 pub source_name: ::core::option::Option<::std::string::String>,
12952
12953 pub target: ::core::option::Option<crate::natural::Ref>,
12954
12955 pub target_name: ::core::option::Option<::std::string::String>,
12956
12957 pub availability: ::core::option::Option<crate::natural::Availability>,
12958
12959 pub source_dictionary: ::core::option::Option<::std::string::String>,
12960 }
12961
12962 impl ExposeConfiguration {
12963 fn __max_ordinal(&self) -> usize {
12964 if self.source_dictionary.is_some() {
12965 return 6;
12966 }
12967
12968 if self.availability.is_some() {
12969 return 5;
12970 }
12971
12972 if self.target_name.is_some() {
12973 return 4;
12974 }
12975
12976 if self.target.is_some() {
12977 return 3;
12978 }
12979
12980 if self.source_name.is_some() {
12981 return 2;
12982 }
12983
12984 if self.source.is_some() {
12985 return 1;
12986 }
12987
12988 0
12989 }
12990 }
12991
12992 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeConfiguration<'static>, ___E>
12993 for ExposeConfiguration
12994 where
12995 ___E: ::fidl_next::Encoder + ?Sized,
12996 {
12997 #[inline]
12998 fn encode(
12999 mut self,
13000 encoder: &mut ___E,
13001 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeConfiguration<'static>>,
13002 _: (),
13003 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13004 ::fidl_next::munge!(let crate::wire::ExposeConfiguration { table } = out);
13005
13006 let max_ord = self.__max_ordinal();
13007
13008 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13009 ::fidl_next::Wire::zero_padding(&mut out);
13010
13011 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13012 ::fidl_next::wire::Envelope,
13013 >(encoder, max_ord);
13014
13015 for i in 1..=max_ord {
13016 match i {
13017 6 => {
13018 if let Some(value) = self.source_dictionary.take() {
13019 ::fidl_next::wire::Envelope::encode_value::<
13020 ::fidl_next::wire::String<'static>,
13021 ___E,
13022 >(
13023 value, preallocated.encoder, &mut out, 1024
13024 )?;
13025 } else {
13026 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13027 }
13028 }
13029
13030 5 => {
13031 if let Some(value) = self.availability.take() {
13032 ::fidl_next::wire::Envelope::encode_value::<
13033 crate::wire::Availability,
13034 ___E,
13035 >(
13036 value, preallocated.encoder, &mut out, ()
13037 )?;
13038 } else {
13039 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13040 }
13041 }
13042
13043 4 => {
13044 if let Some(value) = self.target_name.take() {
13045 ::fidl_next::wire::Envelope::encode_value::<
13046 ::fidl_next::wire::String<'static>,
13047 ___E,
13048 >(
13049 value, preallocated.encoder, &mut out, 100
13050 )?;
13051 } else {
13052 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13053 }
13054 }
13055
13056 3 => {
13057 if let Some(value) = self.target.take() {
13058 ::fidl_next::wire::Envelope::encode_value::<
13059 crate::wire::Ref<'static>,
13060 ___E,
13061 >(
13062 value, preallocated.encoder, &mut out, ()
13063 )?;
13064 } else {
13065 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13066 }
13067 }
13068
13069 2 => {
13070 if let Some(value) = self.source_name.take() {
13071 ::fidl_next::wire::Envelope::encode_value::<
13072 ::fidl_next::wire::String<'static>,
13073 ___E,
13074 >(
13075 value, preallocated.encoder, &mut out, 100
13076 )?;
13077 } else {
13078 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13079 }
13080 }
13081
13082 1 => {
13083 if let Some(value) = self.source.take() {
13084 ::fidl_next::wire::Envelope::encode_value::<
13085 crate::wire::Ref<'static>,
13086 ___E,
13087 >(
13088 value, preallocated.encoder, &mut out, ()
13089 )?;
13090 } else {
13091 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13092 }
13093 }
13094
13095 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
13096 }
13097 unsafe {
13098 preallocated.write_next(out.assume_init_ref());
13099 }
13100 }
13101
13102 ::fidl_next::wire::Table::encode_len(table, max_ord);
13103
13104 Ok(())
13105 }
13106 }
13107
13108 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeConfiguration<'static>, ___E>
13109 for &'a ExposeConfiguration
13110 where
13111 ___E: ::fidl_next::Encoder + ?Sized,
13112 {
13113 #[inline]
13114 fn encode(
13115 self,
13116 encoder: &mut ___E,
13117 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeConfiguration<'static>>,
13118 _: (),
13119 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13120 ::fidl_next::munge!(let crate::wire::ExposeConfiguration { table } = out);
13121
13122 let max_ord = self.__max_ordinal();
13123
13124 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13125 ::fidl_next::Wire::zero_padding(&mut out);
13126
13127 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13128 ::fidl_next::wire::Envelope,
13129 >(encoder, max_ord);
13130
13131 for i in 1..=max_ord {
13132 match i {
13133 6 => {
13134 if let Some(value) = &self.source_dictionary {
13135 ::fidl_next::wire::Envelope::encode_value::<
13136 ::fidl_next::wire::String<'static>,
13137 ___E,
13138 >(
13139 value, preallocated.encoder, &mut out, 1024
13140 )?;
13141 } else {
13142 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13143 }
13144 }
13145
13146 5 => {
13147 if let Some(value) = &self.availability {
13148 ::fidl_next::wire::Envelope::encode_value::<
13149 crate::wire::Availability,
13150 ___E,
13151 >(
13152 value, preallocated.encoder, &mut out, ()
13153 )?;
13154 } else {
13155 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13156 }
13157 }
13158
13159 4 => {
13160 if let Some(value) = &self.target_name {
13161 ::fidl_next::wire::Envelope::encode_value::<
13162 ::fidl_next::wire::String<'static>,
13163 ___E,
13164 >(
13165 value, preallocated.encoder, &mut out, 100
13166 )?;
13167 } else {
13168 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13169 }
13170 }
13171
13172 3 => {
13173 if let Some(value) = &self.target {
13174 ::fidl_next::wire::Envelope::encode_value::<
13175 crate::wire::Ref<'static>,
13176 ___E,
13177 >(
13178 value, preallocated.encoder, &mut out, ()
13179 )?;
13180 } else {
13181 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13182 }
13183 }
13184
13185 2 => {
13186 if let Some(value) = &self.source_name {
13187 ::fidl_next::wire::Envelope::encode_value::<
13188 ::fidl_next::wire::String<'static>,
13189 ___E,
13190 >(
13191 value, preallocated.encoder, &mut out, 100
13192 )?;
13193 } else {
13194 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13195 }
13196 }
13197
13198 1 => {
13199 if let Some(value) = &self.source {
13200 ::fidl_next::wire::Envelope::encode_value::<
13201 crate::wire::Ref<'static>,
13202 ___E,
13203 >(
13204 value, preallocated.encoder, &mut out, ()
13205 )?;
13206 } else {
13207 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13208 }
13209 }
13210
13211 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
13212 }
13213 unsafe {
13214 preallocated.write_next(out.assume_init_ref());
13215 }
13216 }
13217
13218 ::fidl_next::wire::Table::encode_len(table, max_ord);
13219
13220 Ok(())
13221 }
13222 }
13223
13224 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeConfiguration<'de>> for ExposeConfiguration {
13225 #[inline]
13226 fn from_wire(wire_: crate::wire::ExposeConfiguration<'de>) -> Self {
13227 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
13228
13229 let source = wire_.table.get(1);
13230
13231 let source_name = wire_.table.get(2);
13232
13233 let target = wire_.table.get(3);
13234
13235 let target_name = wire_.table.get(4);
13236
13237 let availability = wire_.table.get(5);
13238
13239 let source_dictionary = wire_.table.get(6);
13240
13241 Self {
13242 source: source.map(|envelope| {
13243 ::fidl_next::FromWire::from_wire(unsafe {
13244 envelope.read_unchecked::<crate::wire::Ref<'de>>()
13245 })
13246 }),
13247
13248 source_name: source_name.map(|envelope| {
13249 ::fidl_next::FromWire::from_wire(unsafe {
13250 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
13251 })
13252 }),
13253
13254 target: target.map(|envelope| {
13255 ::fidl_next::FromWire::from_wire(unsafe {
13256 envelope.read_unchecked::<crate::wire::Ref<'de>>()
13257 })
13258 }),
13259
13260 target_name: target_name.map(|envelope| {
13261 ::fidl_next::FromWire::from_wire(unsafe {
13262 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
13263 })
13264 }),
13265
13266 availability: availability.map(|envelope| {
13267 ::fidl_next::FromWire::from_wire(unsafe {
13268 envelope.read_unchecked::<crate::wire::Availability>()
13269 })
13270 }),
13271
13272 source_dictionary: source_dictionary.map(|envelope| {
13273 ::fidl_next::FromWire::from_wire(unsafe {
13274 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
13275 })
13276 }),
13277 }
13278 }
13279 }
13280
13281 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeConfiguration<'de>> for ExposeConfiguration {
13282 #[inline]
13283 fn from_wire_ref(wire: &crate::wire::ExposeConfiguration<'de>) -> Self {
13284 Self {
13285 source: wire.table.get(1).map(|envelope| {
13286 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13287 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13288 })
13289 }),
13290
13291 source_name: wire.table.get(2).map(|envelope| {
13292 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13293 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13294 })
13295 }),
13296
13297 target: wire.table.get(3).map(|envelope| {
13298 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13299 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13300 })
13301 }),
13302
13303 target_name: wire.table.get(4).map(|envelope| {
13304 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13305 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13306 })
13307 }),
13308
13309 availability: wire.table.get(5).map(|envelope| {
13310 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13311 envelope.deref_unchecked::<crate::wire::Availability>()
13312 })
13313 }),
13314
13315 source_dictionary: wire.table.get(6).map(|envelope| {
13316 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13317 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13318 })
13319 }),
13320 }
13321 }
13322 }
13323
13324 #[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"]
13325 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13326 pub enum Expose {
13327 Service(crate::natural::ExposeService),
13328
13329 Protocol(crate::natural::ExposeProtocol),
13330
13331 Directory(crate::natural::ExposeDirectory),
13332
13333 Runner(crate::natural::ExposeRunner),
13334
13335 Resolver(crate::natural::ExposeResolver),
13336
13337 Dictionary(crate::natural::ExposeDictionary),
13338
13339 Config(crate::natural::ExposeConfiguration),
13340
13341 UnknownOrdinal_(u64),
13342 }
13343
13344 impl Expose {
13345 pub fn is_unknown(&self) -> bool {
13346 #[allow(unreachable_patterns)]
13347 match self {
13348 Self::UnknownOrdinal_(_) => true,
13349 _ => false,
13350 }
13351 }
13352 }
13353
13354 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Expose<'static>, ___E> for Expose
13355 where
13356 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
13357 ___E: ::fidl_next::Encoder,
13358 {
13359 #[inline]
13360 fn encode(
13361 self,
13362 encoder: &mut ___E,
13363 out: &mut ::core::mem::MaybeUninit<crate::wire::Expose<'static>>,
13364 _: (),
13365 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13366 ::fidl_next::munge!(let crate::wire::Expose { raw, _phantom: _ } = out);
13367
13368 match self {
13369 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
13370 ___E,
13371 crate::wire::ExposeService<'static>,
13372 >(value, 1, encoder, raw, ())?,
13373
13374 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
13375 ___E,
13376 crate::wire::ExposeProtocol<'static>,
13377 >(value, 2, encoder, raw, ())?,
13378
13379 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
13380 ___E,
13381 crate::wire::ExposeDirectory<'static>,
13382 >(value, 3, encoder, raw, ())?,
13383
13384 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
13385 ___E,
13386 crate::wire::ExposeRunner<'static>,
13387 >(value, 4, encoder, raw, ())?,
13388
13389 Self::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
13390 ___E,
13391 crate::wire::ExposeResolver<'static>,
13392 >(value, 5, encoder, raw, ())?,
13393
13394 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
13395 ___E,
13396 crate::wire::ExposeDictionary<'static>,
13397 >(value, 7, encoder, raw, ())?,
13398
13399 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
13400 ___E,
13401 crate::wire::ExposeConfiguration<'static>,
13402 >(value, 8, encoder, raw, ())?,
13403
13404 Self::UnknownOrdinal_(ordinal) => {
13405 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
13406 }
13407 }
13408
13409 Ok(())
13410 }
13411 }
13412
13413 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Expose<'static>, ___E> for &'a Expose
13414 where
13415 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
13416 ___E: ::fidl_next::Encoder,
13417 {
13418 #[inline]
13419 fn encode(
13420 self,
13421 encoder: &mut ___E,
13422 out: &mut ::core::mem::MaybeUninit<crate::wire::Expose<'static>>,
13423 _: (),
13424 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13425 ::fidl_next::munge!(let crate::wire::Expose { raw, _phantom: _ } = out);
13426
13427 match self {
13428 Expose::Service(value) => ::fidl_next::wire::Union::encode_as::<
13429 ___E,
13430 crate::wire::ExposeService<'static>,
13431 >(value, 1, encoder, raw, ())?,
13432
13433 Expose::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
13434 ___E,
13435 crate::wire::ExposeProtocol<'static>,
13436 >(value, 2, encoder, raw, ())?,
13437
13438 Expose::Directory(value) => ::fidl_next::wire::Union::encode_as::<
13439 ___E,
13440 crate::wire::ExposeDirectory<'static>,
13441 >(value, 3, encoder, raw, ())?,
13442
13443 Expose::Runner(value) => ::fidl_next::wire::Union::encode_as::<
13444 ___E,
13445 crate::wire::ExposeRunner<'static>,
13446 >(value, 4, encoder, raw, ())?,
13447
13448 Expose::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
13449 ___E,
13450 crate::wire::ExposeResolver<'static>,
13451 >(value, 5, encoder, raw, ())?,
13452
13453 Expose::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
13454 ___E,
13455 crate::wire::ExposeDictionary<'static>,
13456 >(value, 7, encoder, raw, ())?,
13457
13458 Expose::Config(value) => ::fidl_next::wire::Union::encode_as::<
13459 ___E,
13460 crate::wire::ExposeConfiguration<'static>,
13461 >(value, 8, encoder, raw, ())?,
13462
13463 Expose::UnknownOrdinal_(ordinal) => {
13464 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
13465 }
13466 }
13467
13468 Ok(())
13469 }
13470 }
13471
13472 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Expose<'static>, ___E> for Expose
13473 where
13474 ___E: ?Sized,
13475 Expose: ::fidl_next::Encode<crate::wire::Expose<'static>, ___E>,
13476 {
13477 #[inline]
13478 fn encode_option(
13479 this: ::core::option::Option<Self>,
13480 encoder: &mut ___E,
13481 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Expose<'static>>,
13482 _: (),
13483 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13484 ::fidl_next::munge!(let crate::wire_optional::Expose { raw, _phantom: _ } = &mut *out);
13485
13486 if let Some(inner) = this {
13487 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
13488 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
13489 } else {
13490 ::fidl_next::wire::Union::encode_absent(raw);
13491 }
13492
13493 Ok(())
13494 }
13495 }
13496
13497 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Expose<'static>, ___E>
13498 for &'a Expose
13499 where
13500 ___E: ?Sized,
13501 &'a Expose: ::fidl_next::Encode<crate::wire::Expose<'static>, ___E>,
13502 {
13503 #[inline]
13504 fn encode_option(
13505 this: ::core::option::Option<Self>,
13506 encoder: &mut ___E,
13507 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Expose<'static>>,
13508 _: (),
13509 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13510 ::fidl_next::munge!(let crate::wire_optional::Expose { raw, _phantom: _ } = &mut *out);
13511
13512 if let Some(inner) = this {
13513 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
13514 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
13515 } else {
13516 ::fidl_next::wire::Union::encode_absent(raw);
13517 }
13518
13519 Ok(())
13520 }
13521 }
13522
13523 impl<'de> ::fidl_next::FromWire<crate::wire::Expose<'de>> for Expose {
13524 #[inline]
13525 fn from_wire(wire: crate::wire::Expose<'de>) -> Self {
13526 let wire = ::core::mem::ManuallyDrop::new(wire);
13527 match wire.raw.ordinal() {
13528 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
13529 wire.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
13530 })),
13531
13532 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
13533 wire.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
13534 })),
13535
13536 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
13537 wire.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
13538 })),
13539
13540 4 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
13541 wire.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
13542 })),
13543
13544 5 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
13545 wire.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
13546 })),
13547
13548 7 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
13549 wire.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
13550 })),
13551
13552 8 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
13553 wire.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
13554 })),
13555
13556 ord => return Self::UnknownOrdinal_(ord as u64),
13557 }
13558 }
13559 }
13560
13561 impl<'de> ::fidl_next::FromWireRef<crate::wire::Expose<'de>> for Expose {
13562 #[inline]
13563 fn from_wire_ref(wire: &crate::wire::Expose<'de>) -> Self {
13564 match wire.raw.ordinal() {
13565 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13566 wire.raw.get().deref_unchecked::<crate::wire::ExposeService<'de>>()
13567 })),
13568
13569 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13570 wire.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'de>>()
13571 })),
13572
13573 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13574 wire.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'de>>()
13575 })),
13576
13577 4 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13578 wire.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'de>>()
13579 })),
13580
13581 5 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13582 wire.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'de>>()
13583 })),
13584
13585 7 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13586 wire.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'de>>()
13587 })),
13588
13589 8 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13590 wire.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'de>>()
13591 })),
13592
13593 ord => return Self::UnknownOrdinal_(ord as u64),
13594 }
13595 }
13596 }
13597
13598 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>> for Expose {
13599 #[inline]
13600 fn from_wire_option(
13601 wire: crate::wire_optional::Expose<'de>,
13602 ) -> ::core::option::Option<Self> {
13603 if let Some(inner) = wire.into_option() {
13604 Some(::fidl_next::FromWire::from_wire(inner))
13605 } else {
13606 None
13607 }
13608 }
13609 }
13610
13611 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>> for Box<Expose> {
13612 #[inline]
13613 fn from_wire_option(
13614 wire: crate::wire_optional::Expose<'de>,
13615 ) -> ::core::option::Option<Self> {
13616 <
13617 Expose as ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>>
13618 >::from_wire_option(wire).map(Box::new)
13619 }
13620 }
13621
13622 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Expose<'de>> for Box<Expose> {
13623 #[inline]
13624 fn from_wire_option_ref(
13625 wire: &crate::wire_optional::Expose<'de>,
13626 ) -> ::core::option::Option<Self> {
13627 if let Some(inner) = wire.as_ref() {
13628 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
13629 } else {
13630 None
13631 }
13632 }
13633 }
13634
13635 #[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"]
13636 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13637 pub struct OfferService {
13638 pub source: ::core::option::Option<crate::natural::Ref>,
13639
13640 pub source_name: ::core::option::Option<::std::string::String>,
13641
13642 pub target: ::core::option::Option<crate::natural::Ref>,
13643
13644 pub target_name: ::core::option::Option<::std::string::String>,
13645
13646 pub source_instance_filter: ::core::option::Option<::std::vec::Vec<::std::string::String>>,
13647
13648 pub renamed_instances: ::core::option::Option<::std::vec::Vec<crate::natural::NameMapping>>,
13649
13650 pub availability: ::core::option::Option<crate::natural::Availability>,
13651
13652 pub source_dictionary: ::core::option::Option<::std::string::String>,
13653
13654 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
13655 }
13656
13657 impl OfferService {
13658 fn __max_ordinal(&self) -> usize {
13659 if self.dependency_type.is_some() {
13660 return 9;
13661 }
13662
13663 if self.source_dictionary.is_some() {
13664 return 8;
13665 }
13666
13667 if self.availability.is_some() {
13668 return 7;
13669 }
13670
13671 if self.renamed_instances.is_some() {
13672 return 6;
13673 }
13674
13675 if self.source_instance_filter.is_some() {
13676 return 5;
13677 }
13678
13679 if self.target_name.is_some() {
13680 return 4;
13681 }
13682
13683 if self.target.is_some() {
13684 return 3;
13685 }
13686
13687 if self.source_name.is_some() {
13688 return 2;
13689 }
13690
13691 if self.source.is_some() {
13692 return 1;
13693 }
13694
13695 0
13696 }
13697 }
13698
13699 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferService<'static>, ___E> for OfferService
13700 where
13701 ___E: ::fidl_next::Encoder + ?Sized,
13702 {
13703 #[inline]
13704 fn encode(
13705 mut self,
13706 encoder: &mut ___E,
13707 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferService<'static>>,
13708 _: (),
13709 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13710 ::fidl_next::munge!(let crate::wire::OfferService { table } = out);
13711
13712 let max_ord = self.__max_ordinal();
13713
13714 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13715 ::fidl_next::Wire::zero_padding(&mut out);
13716
13717 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13718 ::fidl_next::wire::Envelope,
13719 >(encoder, max_ord);
13720
13721 for i in 1..=max_ord {
13722 match i {
13723 9 => {
13724 if let Some(value) = self.dependency_type.take() {
13725 ::fidl_next::wire::Envelope::encode_value::<
13726 crate::wire::DependencyType,
13727 ___E,
13728 >(
13729 value, preallocated.encoder, &mut out, ()
13730 )?;
13731 } else {
13732 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13733 }
13734 }
13735
13736 8 => {
13737 if let Some(value) = self.source_dictionary.take() {
13738 ::fidl_next::wire::Envelope::encode_value::<
13739 ::fidl_next::wire::String<'static>,
13740 ___E,
13741 >(
13742 value, preallocated.encoder, &mut out, 1024
13743 )?;
13744 } else {
13745 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13746 }
13747 }
13748
13749 7 => {
13750 if let Some(value) = self.availability.take() {
13751 ::fidl_next::wire::Envelope::encode_value::<
13752 crate::wire::Availability,
13753 ___E,
13754 >(
13755 value, preallocated.encoder, &mut out, ()
13756 )?;
13757 } else {
13758 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13759 }
13760 }
13761
13762 6 => {
13763 if let Some(value) = self.renamed_instances.take() {
13764 ::fidl_next::wire::Envelope::encode_value::<
13765 ::fidl_next::wire::Vector<
13766 'static,
13767 crate::wire::NameMapping<'static>,
13768 >,
13769 ___E,
13770 >(
13771 value, preallocated.encoder, &mut out, (4294967295, ())
13772 )?;
13773 } else {
13774 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13775 }
13776 }
13777
13778 5 => {
13779 if let Some(value) = self.source_instance_filter.take() {
13780 ::fidl_next::wire::Envelope::encode_value::<
13781 ::fidl_next::wire::Vector<
13782 'static,
13783 ::fidl_next::wire::String<'static>,
13784 >,
13785 ___E,
13786 >(
13787 value, preallocated.encoder, &mut out, (4294967295, 100)
13788 )?;
13789 } else {
13790 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13791 }
13792 }
13793
13794 4 => {
13795 if let Some(value) = self.target_name.take() {
13796 ::fidl_next::wire::Envelope::encode_value::<
13797 ::fidl_next::wire::String<'static>,
13798 ___E,
13799 >(
13800 value, preallocated.encoder, &mut out, 100
13801 )?;
13802 } else {
13803 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13804 }
13805 }
13806
13807 3 => {
13808 if let Some(value) = self.target.take() {
13809 ::fidl_next::wire::Envelope::encode_value::<
13810 crate::wire::Ref<'static>,
13811 ___E,
13812 >(
13813 value, preallocated.encoder, &mut out, ()
13814 )?;
13815 } else {
13816 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13817 }
13818 }
13819
13820 2 => {
13821 if let Some(value) = self.source_name.take() {
13822 ::fidl_next::wire::Envelope::encode_value::<
13823 ::fidl_next::wire::String<'static>,
13824 ___E,
13825 >(
13826 value, preallocated.encoder, &mut out, 100
13827 )?;
13828 } else {
13829 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13830 }
13831 }
13832
13833 1 => {
13834 if let Some(value) = self.source.take() {
13835 ::fidl_next::wire::Envelope::encode_value::<
13836 crate::wire::Ref<'static>,
13837 ___E,
13838 >(
13839 value, preallocated.encoder, &mut out, ()
13840 )?;
13841 } else {
13842 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13843 }
13844 }
13845
13846 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
13847 }
13848 unsafe {
13849 preallocated.write_next(out.assume_init_ref());
13850 }
13851 }
13852
13853 ::fidl_next::wire::Table::encode_len(table, max_ord);
13854
13855 Ok(())
13856 }
13857 }
13858
13859 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferService<'static>, ___E>
13860 for &'a OfferService
13861 where
13862 ___E: ::fidl_next::Encoder + ?Sized,
13863 {
13864 #[inline]
13865 fn encode(
13866 self,
13867 encoder: &mut ___E,
13868 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferService<'static>>,
13869 _: (),
13870 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13871 ::fidl_next::munge!(let crate::wire::OfferService { table } = out);
13872
13873 let max_ord = self.__max_ordinal();
13874
13875 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13876 ::fidl_next::Wire::zero_padding(&mut out);
13877
13878 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13879 ::fidl_next::wire::Envelope,
13880 >(encoder, max_ord);
13881
13882 for i in 1..=max_ord {
13883 match i {
13884 9 => {
13885 if let Some(value) = &self.dependency_type {
13886 ::fidl_next::wire::Envelope::encode_value::<
13887 crate::wire::DependencyType,
13888 ___E,
13889 >(
13890 value, preallocated.encoder, &mut out, ()
13891 )?;
13892 } else {
13893 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13894 }
13895 }
13896
13897 8 => {
13898 if let Some(value) = &self.source_dictionary {
13899 ::fidl_next::wire::Envelope::encode_value::<
13900 ::fidl_next::wire::String<'static>,
13901 ___E,
13902 >(
13903 value, preallocated.encoder, &mut out, 1024
13904 )?;
13905 } else {
13906 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13907 }
13908 }
13909
13910 7 => {
13911 if let Some(value) = &self.availability {
13912 ::fidl_next::wire::Envelope::encode_value::<
13913 crate::wire::Availability,
13914 ___E,
13915 >(
13916 value, preallocated.encoder, &mut out, ()
13917 )?;
13918 } else {
13919 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13920 }
13921 }
13922
13923 6 => {
13924 if let Some(value) = &self.renamed_instances {
13925 ::fidl_next::wire::Envelope::encode_value::<
13926 ::fidl_next::wire::Vector<
13927 'static,
13928 crate::wire::NameMapping<'static>,
13929 >,
13930 ___E,
13931 >(
13932 value, preallocated.encoder, &mut out, (4294967295, ())
13933 )?;
13934 } else {
13935 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13936 }
13937 }
13938
13939 5 => {
13940 if let Some(value) = &self.source_instance_filter {
13941 ::fidl_next::wire::Envelope::encode_value::<
13942 ::fidl_next::wire::Vector<
13943 'static,
13944 ::fidl_next::wire::String<'static>,
13945 >,
13946 ___E,
13947 >(
13948 value, preallocated.encoder, &mut out, (4294967295, 100)
13949 )?;
13950 } else {
13951 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13952 }
13953 }
13954
13955 4 => {
13956 if let Some(value) = &self.target_name {
13957 ::fidl_next::wire::Envelope::encode_value::<
13958 ::fidl_next::wire::String<'static>,
13959 ___E,
13960 >(
13961 value, preallocated.encoder, &mut out, 100
13962 )?;
13963 } else {
13964 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13965 }
13966 }
13967
13968 3 => {
13969 if let Some(value) = &self.target {
13970 ::fidl_next::wire::Envelope::encode_value::<
13971 crate::wire::Ref<'static>,
13972 ___E,
13973 >(
13974 value, preallocated.encoder, &mut out, ()
13975 )?;
13976 } else {
13977 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13978 }
13979 }
13980
13981 2 => {
13982 if let Some(value) = &self.source_name {
13983 ::fidl_next::wire::Envelope::encode_value::<
13984 ::fidl_next::wire::String<'static>,
13985 ___E,
13986 >(
13987 value, preallocated.encoder, &mut out, 100
13988 )?;
13989 } else {
13990 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13991 }
13992 }
13993
13994 1 => {
13995 if let Some(value) = &self.source {
13996 ::fidl_next::wire::Envelope::encode_value::<
13997 crate::wire::Ref<'static>,
13998 ___E,
13999 >(
14000 value, preallocated.encoder, &mut out, ()
14001 )?;
14002 } else {
14003 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14004 }
14005 }
14006
14007 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14008 }
14009 unsafe {
14010 preallocated.write_next(out.assume_init_ref());
14011 }
14012 }
14013
14014 ::fidl_next::wire::Table::encode_len(table, max_ord);
14015
14016 Ok(())
14017 }
14018 }
14019
14020 impl<'de> ::fidl_next::FromWire<crate::wire::OfferService<'de>> for OfferService {
14021 #[inline]
14022 fn from_wire(wire_: crate::wire::OfferService<'de>) -> Self {
14023 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
14024
14025 let source = wire_.table.get(1);
14026
14027 let source_name = wire_.table.get(2);
14028
14029 let target = wire_.table.get(3);
14030
14031 let target_name = wire_.table.get(4);
14032
14033 let source_instance_filter = wire_.table.get(5);
14034
14035 let renamed_instances = wire_.table.get(6);
14036
14037 let availability = wire_.table.get(7);
14038
14039 let source_dictionary = wire_.table.get(8);
14040
14041 let dependency_type = wire_.table.get(9);
14042
14043 Self {
14044
14045
14046 source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
14047 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
14048 )),
14049
14050
14051 source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
14052 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
14053 )),
14054
14055
14056 target: target.map(|envelope| ::fidl_next::FromWire::from_wire(
14057 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
14058 )),
14059
14060
14061 target_name: target_name.map(|envelope| ::fidl_next::FromWire::from_wire(
14062 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
14063 )),
14064
14065
14066 source_instance_filter: source_instance_filter.map(|envelope| ::fidl_next::FromWire::from_wire(
14067 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
14068 )),
14069
14070
14071 renamed_instances: renamed_instances.map(|envelope| ::fidl_next::FromWire::from_wire(
14072 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>() }
14073 )),
14074
14075
14076 availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
14077 unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
14078 )),
14079
14080
14081 source_dictionary: source_dictionary.map(|envelope| ::fidl_next::FromWire::from_wire(
14082 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
14083 )),
14084
14085
14086 dependency_type: dependency_type.map(|envelope| ::fidl_next::FromWire::from_wire(
14087 unsafe { envelope.read_unchecked::<crate::wire::DependencyType>() }
14088 )),
14089
14090 }
14091 }
14092 }
14093
14094 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferService<'de>> for OfferService {
14095 #[inline]
14096 fn from_wire_ref(wire: &crate::wire::OfferService<'de>) -> Self {
14097 Self {
14098
14099
14100 source: wire.table.get(1)
14101 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14102 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
14103 )),
14104
14105
14106 source_name: wire.table.get(2)
14107 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14108 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
14109 )),
14110
14111
14112 target: wire.table.get(3)
14113 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14114 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
14115 )),
14116
14117
14118 target_name: wire.table.get(4)
14119 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14120 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
14121 )),
14122
14123
14124 source_instance_filter: wire.table.get(5)
14125 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14126 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
14127 )),
14128
14129
14130 renamed_instances: wire.table.get(6)
14131 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14132 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>() }
14133 )),
14134
14135
14136 availability: wire.table.get(7)
14137 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14138 unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
14139 )),
14140
14141
14142 source_dictionary: wire.table.get(8)
14143 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14144 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
14145 )),
14146
14147
14148 dependency_type: wire.table.get(9)
14149 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14150 unsafe { envelope.deref_unchecked::<crate::wire::DependencyType>() }
14151 )),
14152
14153 }
14154 }
14155 }
14156
14157 #[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"]
14158 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
14159 pub struct OfferProtocol {
14160 pub source: ::core::option::Option<crate::natural::Ref>,
14161
14162 pub source_name: ::core::option::Option<::std::string::String>,
14163
14164 pub target: ::core::option::Option<crate::natural::Ref>,
14165
14166 pub target_name: ::core::option::Option<::std::string::String>,
14167
14168 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
14169
14170 pub availability: ::core::option::Option<crate::natural::Availability>,
14171
14172 pub source_dictionary: ::core::option::Option<::std::string::String>,
14173 }
14174
14175 impl OfferProtocol {
14176 fn __max_ordinal(&self) -> usize {
14177 if self.source_dictionary.is_some() {
14178 return 7;
14179 }
14180
14181 if self.availability.is_some() {
14182 return 6;
14183 }
14184
14185 if self.dependency_type.is_some() {
14186 return 5;
14187 }
14188
14189 if self.target_name.is_some() {
14190 return 4;
14191 }
14192
14193 if self.target.is_some() {
14194 return 3;
14195 }
14196
14197 if self.source_name.is_some() {
14198 return 2;
14199 }
14200
14201 if self.source.is_some() {
14202 return 1;
14203 }
14204
14205 0
14206 }
14207 }
14208
14209 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferProtocol<'static>, ___E> for OfferProtocol
14210 where
14211 ___E: ::fidl_next::Encoder + ?Sized,
14212 {
14213 #[inline]
14214 fn encode(
14215 mut self,
14216 encoder: &mut ___E,
14217 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferProtocol<'static>>,
14218 _: (),
14219 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14220 ::fidl_next::munge!(let crate::wire::OfferProtocol { table } = out);
14221
14222 let max_ord = self.__max_ordinal();
14223
14224 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14225 ::fidl_next::Wire::zero_padding(&mut out);
14226
14227 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14228 ::fidl_next::wire::Envelope,
14229 >(encoder, max_ord);
14230
14231 for i in 1..=max_ord {
14232 match i {
14233 7 => {
14234 if let Some(value) = self.source_dictionary.take() {
14235 ::fidl_next::wire::Envelope::encode_value::<
14236 ::fidl_next::wire::String<'static>,
14237 ___E,
14238 >(
14239 value, preallocated.encoder, &mut out, 1024
14240 )?;
14241 } else {
14242 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14243 }
14244 }
14245
14246 6 => {
14247 if let Some(value) = self.availability.take() {
14248 ::fidl_next::wire::Envelope::encode_value::<
14249 crate::wire::Availability,
14250 ___E,
14251 >(
14252 value, preallocated.encoder, &mut out, ()
14253 )?;
14254 } else {
14255 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14256 }
14257 }
14258
14259 5 => {
14260 if let Some(value) = self.dependency_type.take() {
14261 ::fidl_next::wire::Envelope::encode_value::<
14262 crate::wire::DependencyType,
14263 ___E,
14264 >(
14265 value, preallocated.encoder, &mut out, ()
14266 )?;
14267 } else {
14268 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14269 }
14270 }
14271
14272 4 => {
14273 if let Some(value) = self.target_name.take() {
14274 ::fidl_next::wire::Envelope::encode_value::<
14275 ::fidl_next::wire::String<'static>,
14276 ___E,
14277 >(
14278 value, preallocated.encoder, &mut out, 100
14279 )?;
14280 } else {
14281 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14282 }
14283 }
14284
14285 3 => {
14286 if let Some(value) = self.target.take() {
14287 ::fidl_next::wire::Envelope::encode_value::<
14288 crate::wire::Ref<'static>,
14289 ___E,
14290 >(
14291 value, preallocated.encoder, &mut out, ()
14292 )?;
14293 } else {
14294 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14295 }
14296 }
14297
14298 2 => {
14299 if let Some(value) = self.source_name.take() {
14300 ::fidl_next::wire::Envelope::encode_value::<
14301 ::fidl_next::wire::String<'static>,
14302 ___E,
14303 >(
14304 value, preallocated.encoder, &mut out, 100
14305 )?;
14306 } else {
14307 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14308 }
14309 }
14310
14311 1 => {
14312 if let Some(value) = self.source.take() {
14313 ::fidl_next::wire::Envelope::encode_value::<
14314 crate::wire::Ref<'static>,
14315 ___E,
14316 >(
14317 value, preallocated.encoder, &mut out, ()
14318 )?;
14319 } else {
14320 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14321 }
14322 }
14323
14324 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14325 }
14326 unsafe {
14327 preallocated.write_next(out.assume_init_ref());
14328 }
14329 }
14330
14331 ::fidl_next::wire::Table::encode_len(table, max_ord);
14332
14333 Ok(())
14334 }
14335 }
14336
14337 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferProtocol<'static>, ___E>
14338 for &'a OfferProtocol
14339 where
14340 ___E: ::fidl_next::Encoder + ?Sized,
14341 {
14342 #[inline]
14343 fn encode(
14344 self,
14345 encoder: &mut ___E,
14346 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferProtocol<'static>>,
14347 _: (),
14348 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14349 ::fidl_next::munge!(let crate::wire::OfferProtocol { table } = out);
14350
14351 let max_ord = self.__max_ordinal();
14352
14353 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14354 ::fidl_next::Wire::zero_padding(&mut out);
14355
14356 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14357 ::fidl_next::wire::Envelope,
14358 >(encoder, max_ord);
14359
14360 for i in 1..=max_ord {
14361 match i {
14362 7 => {
14363 if let Some(value) = &self.source_dictionary {
14364 ::fidl_next::wire::Envelope::encode_value::<
14365 ::fidl_next::wire::String<'static>,
14366 ___E,
14367 >(
14368 value, preallocated.encoder, &mut out, 1024
14369 )?;
14370 } else {
14371 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14372 }
14373 }
14374
14375 6 => {
14376 if let Some(value) = &self.availability {
14377 ::fidl_next::wire::Envelope::encode_value::<
14378 crate::wire::Availability,
14379 ___E,
14380 >(
14381 value, preallocated.encoder, &mut out, ()
14382 )?;
14383 } else {
14384 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14385 }
14386 }
14387
14388 5 => {
14389 if let Some(value) = &self.dependency_type {
14390 ::fidl_next::wire::Envelope::encode_value::<
14391 crate::wire::DependencyType,
14392 ___E,
14393 >(
14394 value, preallocated.encoder, &mut out, ()
14395 )?;
14396 } else {
14397 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14398 }
14399 }
14400
14401 4 => {
14402 if let Some(value) = &self.target_name {
14403 ::fidl_next::wire::Envelope::encode_value::<
14404 ::fidl_next::wire::String<'static>,
14405 ___E,
14406 >(
14407 value, preallocated.encoder, &mut out, 100
14408 )?;
14409 } else {
14410 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14411 }
14412 }
14413
14414 3 => {
14415 if let Some(value) = &self.target {
14416 ::fidl_next::wire::Envelope::encode_value::<
14417 crate::wire::Ref<'static>,
14418 ___E,
14419 >(
14420 value, preallocated.encoder, &mut out, ()
14421 )?;
14422 } else {
14423 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14424 }
14425 }
14426
14427 2 => {
14428 if let Some(value) = &self.source_name {
14429 ::fidl_next::wire::Envelope::encode_value::<
14430 ::fidl_next::wire::String<'static>,
14431 ___E,
14432 >(
14433 value, preallocated.encoder, &mut out, 100
14434 )?;
14435 } else {
14436 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14437 }
14438 }
14439
14440 1 => {
14441 if let Some(value) = &self.source {
14442 ::fidl_next::wire::Envelope::encode_value::<
14443 crate::wire::Ref<'static>,
14444 ___E,
14445 >(
14446 value, preallocated.encoder, &mut out, ()
14447 )?;
14448 } else {
14449 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14450 }
14451 }
14452
14453 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14454 }
14455 unsafe {
14456 preallocated.write_next(out.assume_init_ref());
14457 }
14458 }
14459
14460 ::fidl_next::wire::Table::encode_len(table, max_ord);
14461
14462 Ok(())
14463 }
14464 }
14465
14466 impl<'de> ::fidl_next::FromWire<crate::wire::OfferProtocol<'de>> for OfferProtocol {
14467 #[inline]
14468 fn from_wire(wire_: crate::wire::OfferProtocol<'de>) -> Self {
14469 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
14470
14471 let source = wire_.table.get(1);
14472
14473 let source_name = wire_.table.get(2);
14474
14475 let target = wire_.table.get(3);
14476
14477 let target_name = wire_.table.get(4);
14478
14479 let dependency_type = wire_.table.get(5);
14480
14481 let availability = wire_.table.get(6);
14482
14483 let source_dictionary = wire_.table.get(7);
14484
14485 Self {
14486 source: source.map(|envelope| {
14487 ::fidl_next::FromWire::from_wire(unsafe {
14488 envelope.read_unchecked::<crate::wire::Ref<'de>>()
14489 })
14490 }),
14491
14492 source_name: source_name.map(|envelope| {
14493 ::fidl_next::FromWire::from_wire(unsafe {
14494 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14495 })
14496 }),
14497
14498 target: target.map(|envelope| {
14499 ::fidl_next::FromWire::from_wire(unsafe {
14500 envelope.read_unchecked::<crate::wire::Ref<'de>>()
14501 })
14502 }),
14503
14504 target_name: target_name.map(|envelope| {
14505 ::fidl_next::FromWire::from_wire(unsafe {
14506 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14507 })
14508 }),
14509
14510 dependency_type: dependency_type.map(|envelope| {
14511 ::fidl_next::FromWire::from_wire(unsafe {
14512 envelope.read_unchecked::<crate::wire::DependencyType>()
14513 })
14514 }),
14515
14516 availability: availability.map(|envelope| {
14517 ::fidl_next::FromWire::from_wire(unsafe {
14518 envelope.read_unchecked::<crate::wire::Availability>()
14519 })
14520 }),
14521
14522 source_dictionary: source_dictionary.map(|envelope| {
14523 ::fidl_next::FromWire::from_wire(unsafe {
14524 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14525 })
14526 }),
14527 }
14528 }
14529 }
14530
14531 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferProtocol<'de>> for OfferProtocol {
14532 #[inline]
14533 fn from_wire_ref(wire: &crate::wire::OfferProtocol<'de>) -> Self {
14534 Self {
14535 source: wire.table.get(1).map(|envelope| {
14536 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14537 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
14538 })
14539 }),
14540
14541 source_name: wire.table.get(2).map(|envelope| {
14542 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14543 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
14544 })
14545 }),
14546
14547 target: wire.table.get(3).map(|envelope| {
14548 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14549 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
14550 })
14551 }),
14552
14553 target_name: wire.table.get(4).map(|envelope| {
14554 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14555 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
14556 })
14557 }),
14558
14559 dependency_type: wire.table.get(5).map(|envelope| {
14560 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14561 envelope.deref_unchecked::<crate::wire::DependencyType>()
14562 })
14563 }),
14564
14565 availability: wire.table.get(6).map(|envelope| {
14566 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14567 envelope.deref_unchecked::<crate::wire::Availability>()
14568 })
14569 }),
14570
14571 source_dictionary: wire.table.get(7).map(|envelope| {
14572 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14573 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
14574 })
14575 }),
14576 }
14577 }
14578 }
14579
14580 #[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"]
14581 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
14582 pub struct OfferDirectory {
14583 pub source: ::core::option::Option<crate::natural::Ref>,
14584
14585 pub source_name: ::core::option::Option<::std::string::String>,
14586
14587 pub target: ::core::option::Option<crate::natural::Ref>,
14588
14589 pub target_name: ::core::option::Option<::std::string::String>,
14590
14591 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
14592
14593 pub subdir: ::core::option::Option<::std::string::String>,
14594
14595 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
14596
14597 pub availability: ::core::option::Option<crate::natural::Availability>,
14598
14599 pub source_dictionary: ::core::option::Option<::std::string::String>,
14600 }
14601
14602 impl OfferDirectory {
14603 fn __max_ordinal(&self) -> usize {
14604 if self.source_dictionary.is_some() {
14605 return 9;
14606 }
14607
14608 if self.availability.is_some() {
14609 return 8;
14610 }
14611
14612 if self.dependency_type.is_some() {
14613 return 7;
14614 }
14615
14616 if self.subdir.is_some() {
14617 return 6;
14618 }
14619
14620 if self.rights.is_some() {
14621 return 5;
14622 }
14623
14624 if self.target_name.is_some() {
14625 return 4;
14626 }
14627
14628 if self.target.is_some() {
14629 return 3;
14630 }
14631
14632 if self.source_name.is_some() {
14633 return 2;
14634 }
14635
14636 if self.source.is_some() {
14637 return 1;
14638 }
14639
14640 0
14641 }
14642 }
14643
14644 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferDirectory<'static>, ___E> for OfferDirectory
14645 where
14646 ___E: ::fidl_next::Encoder + ?Sized,
14647 {
14648 #[inline]
14649 fn encode(
14650 mut self,
14651 encoder: &mut ___E,
14652 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDirectory<'static>>,
14653 _: (),
14654 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14655 ::fidl_next::munge!(let crate::wire::OfferDirectory { table } = out);
14656
14657 let max_ord = self.__max_ordinal();
14658
14659 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14660 ::fidl_next::Wire::zero_padding(&mut out);
14661
14662 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14663 ::fidl_next::wire::Envelope,
14664 >(encoder, max_ord);
14665
14666 for i in 1..=max_ord {
14667 match i {
14668 9 => {
14669 if let Some(value) = self.source_dictionary.take() {
14670 ::fidl_next::wire::Envelope::encode_value::<
14671 ::fidl_next::wire::String<'static>,
14672 ___E,
14673 >(
14674 value, preallocated.encoder, &mut out, 1024
14675 )?;
14676 } else {
14677 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14678 }
14679 }
14680
14681 8 => {
14682 if let Some(value) = self.availability.take() {
14683 ::fidl_next::wire::Envelope::encode_value::<
14684 crate::wire::Availability,
14685 ___E,
14686 >(
14687 value, preallocated.encoder, &mut out, ()
14688 )?;
14689 } else {
14690 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14691 }
14692 }
14693
14694 7 => {
14695 if let Some(value) = self.dependency_type.take() {
14696 ::fidl_next::wire::Envelope::encode_value::<
14697 crate::wire::DependencyType,
14698 ___E,
14699 >(
14700 value, preallocated.encoder, &mut out, ()
14701 )?;
14702 } else {
14703 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14704 }
14705 }
14706
14707 6 => {
14708 if let Some(value) = self.subdir.take() {
14709 ::fidl_next::wire::Envelope::encode_value::<
14710 ::fidl_next::wire::String<'static>,
14711 ___E,
14712 >(
14713 value, preallocated.encoder, &mut out, 1024
14714 )?;
14715 } else {
14716 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14717 }
14718 }
14719
14720 5 => {
14721 if let Some(value) = self.rights.take() {
14722 ::fidl_next::wire::Envelope::encode_value::<
14723 ::fidl_next_common_fuchsia_io::wire::Operations,
14724 ___E,
14725 >(
14726 value, preallocated.encoder, &mut out, ()
14727 )?;
14728 } else {
14729 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14730 }
14731 }
14732
14733 4 => {
14734 if let Some(value) = self.target_name.take() {
14735 ::fidl_next::wire::Envelope::encode_value::<
14736 ::fidl_next::wire::String<'static>,
14737 ___E,
14738 >(
14739 value, preallocated.encoder, &mut out, 100
14740 )?;
14741 } else {
14742 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14743 }
14744 }
14745
14746 3 => {
14747 if let Some(value) = self.target.take() {
14748 ::fidl_next::wire::Envelope::encode_value::<
14749 crate::wire::Ref<'static>,
14750 ___E,
14751 >(
14752 value, preallocated.encoder, &mut out, ()
14753 )?;
14754 } else {
14755 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14756 }
14757 }
14758
14759 2 => {
14760 if let Some(value) = self.source_name.take() {
14761 ::fidl_next::wire::Envelope::encode_value::<
14762 ::fidl_next::wire::String<'static>,
14763 ___E,
14764 >(
14765 value, preallocated.encoder, &mut out, 100
14766 )?;
14767 } else {
14768 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14769 }
14770 }
14771
14772 1 => {
14773 if let Some(value) = self.source.take() {
14774 ::fidl_next::wire::Envelope::encode_value::<
14775 crate::wire::Ref<'static>,
14776 ___E,
14777 >(
14778 value, preallocated.encoder, &mut out, ()
14779 )?;
14780 } else {
14781 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14782 }
14783 }
14784
14785 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14786 }
14787 unsafe {
14788 preallocated.write_next(out.assume_init_ref());
14789 }
14790 }
14791
14792 ::fidl_next::wire::Table::encode_len(table, max_ord);
14793
14794 Ok(())
14795 }
14796 }
14797
14798 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferDirectory<'static>, ___E>
14799 for &'a OfferDirectory
14800 where
14801 ___E: ::fidl_next::Encoder + ?Sized,
14802 {
14803 #[inline]
14804 fn encode(
14805 self,
14806 encoder: &mut ___E,
14807 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDirectory<'static>>,
14808 _: (),
14809 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14810 ::fidl_next::munge!(let crate::wire::OfferDirectory { table } = out);
14811
14812 let max_ord = self.__max_ordinal();
14813
14814 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14815 ::fidl_next::Wire::zero_padding(&mut out);
14816
14817 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14818 ::fidl_next::wire::Envelope,
14819 >(encoder, max_ord);
14820
14821 for i in 1..=max_ord {
14822 match i {
14823 9 => {
14824 if let Some(value) = &self.source_dictionary {
14825 ::fidl_next::wire::Envelope::encode_value::<
14826 ::fidl_next::wire::String<'static>,
14827 ___E,
14828 >(
14829 value, preallocated.encoder, &mut out, 1024
14830 )?;
14831 } else {
14832 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14833 }
14834 }
14835
14836 8 => {
14837 if let Some(value) = &self.availability {
14838 ::fidl_next::wire::Envelope::encode_value::<
14839 crate::wire::Availability,
14840 ___E,
14841 >(
14842 value, preallocated.encoder, &mut out, ()
14843 )?;
14844 } else {
14845 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14846 }
14847 }
14848
14849 7 => {
14850 if let Some(value) = &self.dependency_type {
14851 ::fidl_next::wire::Envelope::encode_value::<
14852 crate::wire::DependencyType,
14853 ___E,
14854 >(
14855 value, preallocated.encoder, &mut out, ()
14856 )?;
14857 } else {
14858 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14859 }
14860 }
14861
14862 6 => {
14863 if let Some(value) = &self.subdir {
14864 ::fidl_next::wire::Envelope::encode_value::<
14865 ::fidl_next::wire::String<'static>,
14866 ___E,
14867 >(
14868 value, preallocated.encoder, &mut out, 1024
14869 )?;
14870 } else {
14871 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14872 }
14873 }
14874
14875 5 => {
14876 if let Some(value) = &self.rights {
14877 ::fidl_next::wire::Envelope::encode_value::<
14878 ::fidl_next_common_fuchsia_io::wire::Operations,
14879 ___E,
14880 >(
14881 value, preallocated.encoder, &mut out, ()
14882 )?;
14883 } else {
14884 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14885 }
14886 }
14887
14888 4 => {
14889 if let Some(value) = &self.target_name {
14890 ::fidl_next::wire::Envelope::encode_value::<
14891 ::fidl_next::wire::String<'static>,
14892 ___E,
14893 >(
14894 value, preallocated.encoder, &mut out, 100
14895 )?;
14896 } else {
14897 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14898 }
14899 }
14900
14901 3 => {
14902 if let Some(value) = &self.target {
14903 ::fidl_next::wire::Envelope::encode_value::<
14904 crate::wire::Ref<'static>,
14905 ___E,
14906 >(
14907 value, preallocated.encoder, &mut out, ()
14908 )?;
14909 } else {
14910 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14911 }
14912 }
14913
14914 2 => {
14915 if let Some(value) = &self.source_name {
14916 ::fidl_next::wire::Envelope::encode_value::<
14917 ::fidl_next::wire::String<'static>,
14918 ___E,
14919 >(
14920 value, preallocated.encoder, &mut out, 100
14921 )?;
14922 } else {
14923 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14924 }
14925 }
14926
14927 1 => {
14928 if let Some(value) = &self.source {
14929 ::fidl_next::wire::Envelope::encode_value::<
14930 crate::wire::Ref<'static>,
14931 ___E,
14932 >(
14933 value, preallocated.encoder, &mut out, ()
14934 )?;
14935 } else {
14936 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14937 }
14938 }
14939
14940 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14941 }
14942 unsafe {
14943 preallocated.write_next(out.assume_init_ref());
14944 }
14945 }
14946
14947 ::fidl_next::wire::Table::encode_len(table, max_ord);
14948
14949 Ok(())
14950 }
14951 }
14952
14953 impl<'de> ::fidl_next::FromWire<crate::wire::OfferDirectory<'de>> for OfferDirectory {
14954 #[inline]
14955 fn from_wire(wire_: crate::wire::OfferDirectory<'de>) -> Self {
14956 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
14957
14958 let source = wire_.table.get(1);
14959
14960 let source_name = wire_.table.get(2);
14961
14962 let target = wire_.table.get(3);
14963
14964 let target_name = wire_.table.get(4);
14965
14966 let rights = wire_.table.get(5);
14967
14968 let subdir = wire_.table.get(6);
14969
14970 let dependency_type = wire_.table.get(7);
14971
14972 let availability = wire_.table.get(8);
14973
14974 let source_dictionary = wire_.table.get(9);
14975
14976 Self {
14977 source: source.map(|envelope| {
14978 ::fidl_next::FromWire::from_wire(unsafe {
14979 envelope.read_unchecked::<crate::wire::Ref<'de>>()
14980 })
14981 }),
14982
14983 source_name: source_name.map(|envelope| {
14984 ::fidl_next::FromWire::from_wire(unsafe {
14985 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14986 })
14987 }),
14988
14989 target: target.map(|envelope| {
14990 ::fidl_next::FromWire::from_wire(unsafe {
14991 envelope.read_unchecked::<crate::wire::Ref<'de>>()
14992 })
14993 }),
14994
14995 target_name: target_name.map(|envelope| {
14996 ::fidl_next::FromWire::from_wire(unsafe {
14997 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14998 })
14999 }),
15000
15001 rights: rights.map(|envelope| {
15002 ::fidl_next::FromWire::from_wire(unsafe {
15003 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
15004 })
15005 }),
15006
15007 subdir: subdir.map(|envelope| {
15008 ::fidl_next::FromWire::from_wire(unsafe {
15009 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15010 })
15011 }),
15012
15013 dependency_type: dependency_type.map(|envelope| {
15014 ::fidl_next::FromWire::from_wire(unsafe {
15015 envelope.read_unchecked::<crate::wire::DependencyType>()
15016 })
15017 }),
15018
15019 availability: availability.map(|envelope| {
15020 ::fidl_next::FromWire::from_wire(unsafe {
15021 envelope.read_unchecked::<crate::wire::Availability>()
15022 })
15023 }),
15024
15025 source_dictionary: source_dictionary.map(|envelope| {
15026 ::fidl_next::FromWire::from_wire(unsafe {
15027 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15028 })
15029 }),
15030 }
15031 }
15032 }
15033
15034 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferDirectory<'de>> for OfferDirectory {
15035 #[inline]
15036 fn from_wire_ref(wire: &crate::wire::OfferDirectory<'de>) -> Self {
15037 Self {
15038 source: wire.table.get(1).map(|envelope| {
15039 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15040 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15041 })
15042 }),
15043
15044 source_name: wire.table.get(2).map(|envelope| {
15045 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15046 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15047 })
15048 }),
15049
15050 target: wire.table.get(3).map(|envelope| {
15051 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15052 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15053 })
15054 }),
15055
15056 target_name: wire.table.get(4).map(|envelope| {
15057 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15058 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15059 })
15060 }),
15061
15062 rights: wire.table.get(5).map(|envelope| {
15063 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15064 envelope
15065 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
15066 })
15067 }),
15068
15069 subdir: wire.table.get(6).map(|envelope| {
15070 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15071 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15072 })
15073 }),
15074
15075 dependency_type: wire.table.get(7).map(|envelope| {
15076 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15077 envelope.deref_unchecked::<crate::wire::DependencyType>()
15078 })
15079 }),
15080
15081 availability: wire.table.get(8).map(|envelope| {
15082 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15083 envelope.deref_unchecked::<crate::wire::Availability>()
15084 })
15085 }),
15086
15087 source_dictionary: wire.table.get(9).map(|envelope| {
15088 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15089 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15090 })
15091 }),
15092 }
15093 }
15094 }
15095
15096 #[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"]
15097 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15098 pub struct OfferStorage {
15099 pub source_name: ::core::option::Option<::std::string::String>,
15100
15101 pub source: ::core::option::Option<crate::natural::Ref>,
15102
15103 pub target: ::core::option::Option<crate::natural::Ref>,
15104
15105 pub target_name: ::core::option::Option<::std::string::String>,
15106
15107 pub availability: ::core::option::Option<crate::natural::Availability>,
15108 }
15109
15110 impl OfferStorage {
15111 fn __max_ordinal(&self) -> usize {
15112 if self.availability.is_some() {
15113 return 5;
15114 }
15115
15116 if self.target_name.is_some() {
15117 return 4;
15118 }
15119
15120 if self.target.is_some() {
15121 return 3;
15122 }
15123
15124 if self.source.is_some() {
15125 return 2;
15126 }
15127
15128 if self.source_name.is_some() {
15129 return 1;
15130 }
15131
15132 0
15133 }
15134 }
15135
15136 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferStorage<'static>, ___E> for OfferStorage
15137 where
15138 ___E: ::fidl_next::Encoder + ?Sized,
15139 {
15140 #[inline]
15141 fn encode(
15142 mut self,
15143 encoder: &mut ___E,
15144 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferStorage<'static>>,
15145 _: (),
15146 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15147 ::fidl_next::munge!(let crate::wire::OfferStorage { table } = out);
15148
15149 let max_ord = self.__max_ordinal();
15150
15151 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15152 ::fidl_next::Wire::zero_padding(&mut out);
15153
15154 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15155 ::fidl_next::wire::Envelope,
15156 >(encoder, max_ord);
15157
15158 for i in 1..=max_ord {
15159 match i {
15160 5 => {
15161 if let Some(value) = self.availability.take() {
15162 ::fidl_next::wire::Envelope::encode_value::<
15163 crate::wire::Availability,
15164 ___E,
15165 >(
15166 value, preallocated.encoder, &mut out, ()
15167 )?;
15168 } else {
15169 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15170 }
15171 }
15172
15173 4 => {
15174 if let Some(value) = self.target_name.take() {
15175 ::fidl_next::wire::Envelope::encode_value::<
15176 ::fidl_next::wire::String<'static>,
15177 ___E,
15178 >(
15179 value, preallocated.encoder, &mut out, 100
15180 )?;
15181 } else {
15182 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15183 }
15184 }
15185
15186 3 => {
15187 if let Some(value) = self.target.take() {
15188 ::fidl_next::wire::Envelope::encode_value::<
15189 crate::wire::Ref<'static>,
15190 ___E,
15191 >(
15192 value, preallocated.encoder, &mut out, ()
15193 )?;
15194 } else {
15195 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15196 }
15197 }
15198
15199 2 => {
15200 if let Some(value) = self.source.take() {
15201 ::fidl_next::wire::Envelope::encode_value::<
15202 crate::wire::Ref<'static>,
15203 ___E,
15204 >(
15205 value, preallocated.encoder, &mut out, ()
15206 )?;
15207 } else {
15208 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15209 }
15210 }
15211
15212 1 => {
15213 if let Some(value) = self.source_name.take() {
15214 ::fidl_next::wire::Envelope::encode_value::<
15215 ::fidl_next::wire::String<'static>,
15216 ___E,
15217 >(
15218 value, preallocated.encoder, &mut out, 100
15219 )?;
15220 } else {
15221 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15222 }
15223 }
15224
15225 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15226 }
15227 unsafe {
15228 preallocated.write_next(out.assume_init_ref());
15229 }
15230 }
15231
15232 ::fidl_next::wire::Table::encode_len(table, max_ord);
15233
15234 Ok(())
15235 }
15236 }
15237
15238 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferStorage<'static>, ___E>
15239 for &'a OfferStorage
15240 where
15241 ___E: ::fidl_next::Encoder + ?Sized,
15242 {
15243 #[inline]
15244 fn encode(
15245 self,
15246 encoder: &mut ___E,
15247 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferStorage<'static>>,
15248 _: (),
15249 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15250 ::fidl_next::munge!(let crate::wire::OfferStorage { table } = out);
15251
15252 let max_ord = self.__max_ordinal();
15253
15254 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15255 ::fidl_next::Wire::zero_padding(&mut out);
15256
15257 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15258 ::fidl_next::wire::Envelope,
15259 >(encoder, max_ord);
15260
15261 for i in 1..=max_ord {
15262 match i {
15263 5 => {
15264 if let Some(value) = &self.availability {
15265 ::fidl_next::wire::Envelope::encode_value::<
15266 crate::wire::Availability,
15267 ___E,
15268 >(
15269 value, preallocated.encoder, &mut out, ()
15270 )?;
15271 } else {
15272 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15273 }
15274 }
15275
15276 4 => {
15277 if let Some(value) = &self.target_name {
15278 ::fidl_next::wire::Envelope::encode_value::<
15279 ::fidl_next::wire::String<'static>,
15280 ___E,
15281 >(
15282 value, preallocated.encoder, &mut out, 100
15283 )?;
15284 } else {
15285 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15286 }
15287 }
15288
15289 3 => {
15290 if let Some(value) = &self.target {
15291 ::fidl_next::wire::Envelope::encode_value::<
15292 crate::wire::Ref<'static>,
15293 ___E,
15294 >(
15295 value, preallocated.encoder, &mut out, ()
15296 )?;
15297 } else {
15298 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15299 }
15300 }
15301
15302 2 => {
15303 if let Some(value) = &self.source {
15304 ::fidl_next::wire::Envelope::encode_value::<
15305 crate::wire::Ref<'static>,
15306 ___E,
15307 >(
15308 value, preallocated.encoder, &mut out, ()
15309 )?;
15310 } else {
15311 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15312 }
15313 }
15314
15315 1 => {
15316 if let Some(value) = &self.source_name {
15317 ::fidl_next::wire::Envelope::encode_value::<
15318 ::fidl_next::wire::String<'static>,
15319 ___E,
15320 >(
15321 value, preallocated.encoder, &mut out, 100
15322 )?;
15323 } else {
15324 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15325 }
15326 }
15327
15328 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15329 }
15330 unsafe {
15331 preallocated.write_next(out.assume_init_ref());
15332 }
15333 }
15334
15335 ::fidl_next::wire::Table::encode_len(table, max_ord);
15336
15337 Ok(())
15338 }
15339 }
15340
15341 impl<'de> ::fidl_next::FromWire<crate::wire::OfferStorage<'de>> for OfferStorage {
15342 #[inline]
15343 fn from_wire(wire_: crate::wire::OfferStorage<'de>) -> Self {
15344 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15345
15346 let source_name = wire_.table.get(1);
15347
15348 let source = wire_.table.get(2);
15349
15350 let target = wire_.table.get(3);
15351
15352 let target_name = wire_.table.get(4);
15353
15354 let availability = wire_.table.get(5);
15355
15356 Self {
15357 source_name: source_name.map(|envelope| {
15358 ::fidl_next::FromWire::from_wire(unsafe {
15359 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15360 })
15361 }),
15362
15363 source: source.map(|envelope| {
15364 ::fidl_next::FromWire::from_wire(unsafe {
15365 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15366 })
15367 }),
15368
15369 target: target.map(|envelope| {
15370 ::fidl_next::FromWire::from_wire(unsafe {
15371 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15372 })
15373 }),
15374
15375 target_name: target_name.map(|envelope| {
15376 ::fidl_next::FromWire::from_wire(unsafe {
15377 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15378 })
15379 }),
15380
15381 availability: availability.map(|envelope| {
15382 ::fidl_next::FromWire::from_wire(unsafe {
15383 envelope.read_unchecked::<crate::wire::Availability>()
15384 })
15385 }),
15386 }
15387 }
15388 }
15389
15390 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferStorage<'de>> for OfferStorage {
15391 #[inline]
15392 fn from_wire_ref(wire: &crate::wire::OfferStorage<'de>) -> Self {
15393 Self {
15394 source_name: wire.table.get(1).map(|envelope| {
15395 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15396 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15397 })
15398 }),
15399
15400 source: wire.table.get(2).map(|envelope| {
15401 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15402 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15403 })
15404 }),
15405
15406 target: wire.table.get(3).map(|envelope| {
15407 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15408 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15409 })
15410 }),
15411
15412 target_name: wire.table.get(4).map(|envelope| {
15413 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15414 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15415 })
15416 }),
15417
15418 availability: wire.table.get(5).map(|envelope| {
15419 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15420 envelope.deref_unchecked::<crate::wire::Availability>()
15421 })
15422 }),
15423 }
15424 }
15425 }
15426
15427 #[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"]
15428 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15429 pub struct OfferRunner {
15430 pub source: ::core::option::Option<crate::natural::Ref>,
15431
15432 pub source_name: ::core::option::Option<::std::string::String>,
15433
15434 pub target: ::core::option::Option<crate::natural::Ref>,
15435
15436 pub target_name: ::core::option::Option<::std::string::String>,
15437
15438 pub source_dictionary: ::core::option::Option<::std::string::String>,
15439 }
15440
15441 impl OfferRunner {
15442 fn __max_ordinal(&self) -> usize {
15443 if self.source_dictionary.is_some() {
15444 return 5;
15445 }
15446
15447 if self.target_name.is_some() {
15448 return 4;
15449 }
15450
15451 if self.target.is_some() {
15452 return 3;
15453 }
15454
15455 if self.source_name.is_some() {
15456 return 2;
15457 }
15458
15459 if self.source.is_some() {
15460 return 1;
15461 }
15462
15463 0
15464 }
15465 }
15466
15467 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferRunner<'static>, ___E> for OfferRunner
15468 where
15469 ___E: ::fidl_next::Encoder + ?Sized,
15470 {
15471 #[inline]
15472 fn encode(
15473 mut self,
15474 encoder: &mut ___E,
15475 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferRunner<'static>>,
15476 _: (),
15477 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15478 ::fidl_next::munge!(let crate::wire::OfferRunner { table } = out);
15479
15480 let max_ord = self.__max_ordinal();
15481
15482 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15483 ::fidl_next::Wire::zero_padding(&mut out);
15484
15485 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15486 ::fidl_next::wire::Envelope,
15487 >(encoder, max_ord);
15488
15489 for i in 1..=max_ord {
15490 match i {
15491 5 => {
15492 if let Some(value) = self.source_dictionary.take() {
15493 ::fidl_next::wire::Envelope::encode_value::<
15494 ::fidl_next::wire::String<'static>,
15495 ___E,
15496 >(
15497 value, preallocated.encoder, &mut out, 1024
15498 )?;
15499 } else {
15500 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15501 }
15502 }
15503
15504 4 => {
15505 if let Some(value) = self.target_name.take() {
15506 ::fidl_next::wire::Envelope::encode_value::<
15507 ::fidl_next::wire::String<'static>,
15508 ___E,
15509 >(
15510 value, preallocated.encoder, &mut out, 100
15511 )?;
15512 } else {
15513 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15514 }
15515 }
15516
15517 3 => {
15518 if let Some(value) = self.target.take() {
15519 ::fidl_next::wire::Envelope::encode_value::<
15520 crate::wire::Ref<'static>,
15521 ___E,
15522 >(
15523 value, preallocated.encoder, &mut out, ()
15524 )?;
15525 } else {
15526 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15527 }
15528 }
15529
15530 2 => {
15531 if let Some(value) = self.source_name.take() {
15532 ::fidl_next::wire::Envelope::encode_value::<
15533 ::fidl_next::wire::String<'static>,
15534 ___E,
15535 >(
15536 value, preallocated.encoder, &mut out, 100
15537 )?;
15538 } else {
15539 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15540 }
15541 }
15542
15543 1 => {
15544 if let Some(value) = self.source.take() {
15545 ::fidl_next::wire::Envelope::encode_value::<
15546 crate::wire::Ref<'static>,
15547 ___E,
15548 >(
15549 value, preallocated.encoder, &mut out, ()
15550 )?;
15551 } else {
15552 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15553 }
15554 }
15555
15556 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15557 }
15558 unsafe {
15559 preallocated.write_next(out.assume_init_ref());
15560 }
15561 }
15562
15563 ::fidl_next::wire::Table::encode_len(table, max_ord);
15564
15565 Ok(())
15566 }
15567 }
15568
15569 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferRunner<'static>, ___E>
15570 for &'a OfferRunner
15571 where
15572 ___E: ::fidl_next::Encoder + ?Sized,
15573 {
15574 #[inline]
15575 fn encode(
15576 self,
15577 encoder: &mut ___E,
15578 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferRunner<'static>>,
15579 _: (),
15580 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15581 ::fidl_next::munge!(let crate::wire::OfferRunner { table } = out);
15582
15583 let max_ord = self.__max_ordinal();
15584
15585 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15586 ::fidl_next::Wire::zero_padding(&mut out);
15587
15588 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15589 ::fidl_next::wire::Envelope,
15590 >(encoder, max_ord);
15591
15592 for i in 1..=max_ord {
15593 match i {
15594 5 => {
15595 if let Some(value) = &self.source_dictionary {
15596 ::fidl_next::wire::Envelope::encode_value::<
15597 ::fidl_next::wire::String<'static>,
15598 ___E,
15599 >(
15600 value, preallocated.encoder, &mut out, 1024
15601 )?;
15602 } else {
15603 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15604 }
15605 }
15606
15607 4 => {
15608 if let Some(value) = &self.target_name {
15609 ::fidl_next::wire::Envelope::encode_value::<
15610 ::fidl_next::wire::String<'static>,
15611 ___E,
15612 >(
15613 value, preallocated.encoder, &mut out, 100
15614 )?;
15615 } else {
15616 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15617 }
15618 }
15619
15620 3 => {
15621 if let Some(value) = &self.target {
15622 ::fidl_next::wire::Envelope::encode_value::<
15623 crate::wire::Ref<'static>,
15624 ___E,
15625 >(
15626 value, preallocated.encoder, &mut out, ()
15627 )?;
15628 } else {
15629 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15630 }
15631 }
15632
15633 2 => {
15634 if let Some(value) = &self.source_name {
15635 ::fidl_next::wire::Envelope::encode_value::<
15636 ::fidl_next::wire::String<'static>,
15637 ___E,
15638 >(
15639 value, preallocated.encoder, &mut out, 100
15640 )?;
15641 } else {
15642 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15643 }
15644 }
15645
15646 1 => {
15647 if let Some(value) = &self.source {
15648 ::fidl_next::wire::Envelope::encode_value::<
15649 crate::wire::Ref<'static>,
15650 ___E,
15651 >(
15652 value, preallocated.encoder, &mut out, ()
15653 )?;
15654 } else {
15655 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15656 }
15657 }
15658
15659 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15660 }
15661 unsafe {
15662 preallocated.write_next(out.assume_init_ref());
15663 }
15664 }
15665
15666 ::fidl_next::wire::Table::encode_len(table, max_ord);
15667
15668 Ok(())
15669 }
15670 }
15671
15672 impl<'de> ::fidl_next::FromWire<crate::wire::OfferRunner<'de>> for OfferRunner {
15673 #[inline]
15674 fn from_wire(wire_: crate::wire::OfferRunner<'de>) -> Self {
15675 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15676
15677 let source = wire_.table.get(1);
15678
15679 let source_name = wire_.table.get(2);
15680
15681 let target = wire_.table.get(3);
15682
15683 let target_name = wire_.table.get(4);
15684
15685 let source_dictionary = wire_.table.get(5);
15686
15687 Self {
15688 source: source.map(|envelope| {
15689 ::fidl_next::FromWire::from_wire(unsafe {
15690 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15691 })
15692 }),
15693
15694 source_name: source_name.map(|envelope| {
15695 ::fidl_next::FromWire::from_wire(unsafe {
15696 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15697 })
15698 }),
15699
15700 target: target.map(|envelope| {
15701 ::fidl_next::FromWire::from_wire(unsafe {
15702 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15703 })
15704 }),
15705
15706 target_name: target_name.map(|envelope| {
15707 ::fidl_next::FromWire::from_wire(unsafe {
15708 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15709 })
15710 }),
15711
15712 source_dictionary: source_dictionary.map(|envelope| {
15713 ::fidl_next::FromWire::from_wire(unsafe {
15714 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15715 })
15716 }),
15717 }
15718 }
15719 }
15720
15721 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferRunner<'de>> for OfferRunner {
15722 #[inline]
15723 fn from_wire_ref(wire: &crate::wire::OfferRunner<'de>) -> Self {
15724 Self {
15725 source: wire.table.get(1).map(|envelope| {
15726 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15727 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15728 })
15729 }),
15730
15731 source_name: wire.table.get(2).map(|envelope| {
15732 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15733 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15734 })
15735 }),
15736
15737 target: wire.table.get(3).map(|envelope| {
15738 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15739 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15740 })
15741 }),
15742
15743 target_name: wire.table.get(4).map(|envelope| {
15744 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15745 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15746 })
15747 }),
15748
15749 source_dictionary: wire.table.get(5).map(|envelope| {
15750 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15751 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15752 })
15753 }),
15754 }
15755 }
15756 }
15757
15758 #[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"]
15759 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15760 pub struct OfferResolver {
15761 pub source: ::core::option::Option<crate::natural::Ref>,
15762
15763 pub source_name: ::core::option::Option<::std::string::String>,
15764
15765 pub target: ::core::option::Option<crate::natural::Ref>,
15766
15767 pub target_name: ::core::option::Option<::std::string::String>,
15768
15769 pub source_dictionary: ::core::option::Option<::std::string::String>,
15770 }
15771
15772 impl OfferResolver {
15773 fn __max_ordinal(&self) -> usize {
15774 if self.source_dictionary.is_some() {
15775 return 5;
15776 }
15777
15778 if self.target_name.is_some() {
15779 return 4;
15780 }
15781
15782 if self.target.is_some() {
15783 return 3;
15784 }
15785
15786 if self.source_name.is_some() {
15787 return 2;
15788 }
15789
15790 if self.source.is_some() {
15791 return 1;
15792 }
15793
15794 0
15795 }
15796 }
15797
15798 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferResolver<'static>, ___E> for OfferResolver
15799 where
15800 ___E: ::fidl_next::Encoder + ?Sized,
15801 {
15802 #[inline]
15803 fn encode(
15804 mut self,
15805 encoder: &mut ___E,
15806 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferResolver<'static>>,
15807 _: (),
15808 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15809 ::fidl_next::munge!(let crate::wire::OfferResolver { table } = out);
15810
15811 let max_ord = self.__max_ordinal();
15812
15813 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15814 ::fidl_next::Wire::zero_padding(&mut out);
15815
15816 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15817 ::fidl_next::wire::Envelope,
15818 >(encoder, max_ord);
15819
15820 for i in 1..=max_ord {
15821 match i {
15822 5 => {
15823 if let Some(value) = self.source_dictionary.take() {
15824 ::fidl_next::wire::Envelope::encode_value::<
15825 ::fidl_next::wire::String<'static>,
15826 ___E,
15827 >(
15828 value, preallocated.encoder, &mut out, 1024
15829 )?;
15830 } else {
15831 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15832 }
15833 }
15834
15835 4 => {
15836 if let Some(value) = self.target_name.take() {
15837 ::fidl_next::wire::Envelope::encode_value::<
15838 ::fidl_next::wire::String<'static>,
15839 ___E,
15840 >(
15841 value, preallocated.encoder, &mut out, 100
15842 )?;
15843 } else {
15844 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15845 }
15846 }
15847
15848 3 => {
15849 if let Some(value) = self.target.take() {
15850 ::fidl_next::wire::Envelope::encode_value::<
15851 crate::wire::Ref<'static>,
15852 ___E,
15853 >(
15854 value, preallocated.encoder, &mut out, ()
15855 )?;
15856 } else {
15857 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15858 }
15859 }
15860
15861 2 => {
15862 if let Some(value) = self.source_name.take() {
15863 ::fidl_next::wire::Envelope::encode_value::<
15864 ::fidl_next::wire::String<'static>,
15865 ___E,
15866 >(
15867 value, preallocated.encoder, &mut out, 100
15868 )?;
15869 } else {
15870 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15871 }
15872 }
15873
15874 1 => {
15875 if let Some(value) = self.source.take() {
15876 ::fidl_next::wire::Envelope::encode_value::<
15877 crate::wire::Ref<'static>,
15878 ___E,
15879 >(
15880 value, preallocated.encoder, &mut out, ()
15881 )?;
15882 } else {
15883 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15884 }
15885 }
15886
15887 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15888 }
15889 unsafe {
15890 preallocated.write_next(out.assume_init_ref());
15891 }
15892 }
15893
15894 ::fidl_next::wire::Table::encode_len(table, max_ord);
15895
15896 Ok(())
15897 }
15898 }
15899
15900 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferResolver<'static>, ___E>
15901 for &'a OfferResolver
15902 where
15903 ___E: ::fidl_next::Encoder + ?Sized,
15904 {
15905 #[inline]
15906 fn encode(
15907 self,
15908 encoder: &mut ___E,
15909 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferResolver<'static>>,
15910 _: (),
15911 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15912 ::fidl_next::munge!(let crate::wire::OfferResolver { table } = out);
15913
15914 let max_ord = self.__max_ordinal();
15915
15916 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15917 ::fidl_next::Wire::zero_padding(&mut out);
15918
15919 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15920 ::fidl_next::wire::Envelope,
15921 >(encoder, max_ord);
15922
15923 for i in 1..=max_ord {
15924 match i {
15925 5 => {
15926 if let Some(value) = &self.source_dictionary {
15927 ::fidl_next::wire::Envelope::encode_value::<
15928 ::fidl_next::wire::String<'static>,
15929 ___E,
15930 >(
15931 value, preallocated.encoder, &mut out, 1024
15932 )?;
15933 } else {
15934 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15935 }
15936 }
15937
15938 4 => {
15939 if let Some(value) = &self.target_name {
15940 ::fidl_next::wire::Envelope::encode_value::<
15941 ::fidl_next::wire::String<'static>,
15942 ___E,
15943 >(
15944 value, preallocated.encoder, &mut out, 100
15945 )?;
15946 } else {
15947 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15948 }
15949 }
15950
15951 3 => {
15952 if let Some(value) = &self.target {
15953 ::fidl_next::wire::Envelope::encode_value::<
15954 crate::wire::Ref<'static>,
15955 ___E,
15956 >(
15957 value, preallocated.encoder, &mut out, ()
15958 )?;
15959 } else {
15960 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15961 }
15962 }
15963
15964 2 => {
15965 if let Some(value) = &self.source_name {
15966 ::fidl_next::wire::Envelope::encode_value::<
15967 ::fidl_next::wire::String<'static>,
15968 ___E,
15969 >(
15970 value, preallocated.encoder, &mut out, 100
15971 )?;
15972 } else {
15973 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15974 }
15975 }
15976
15977 1 => {
15978 if let Some(value) = &self.source {
15979 ::fidl_next::wire::Envelope::encode_value::<
15980 crate::wire::Ref<'static>,
15981 ___E,
15982 >(
15983 value, preallocated.encoder, &mut out, ()
15984 )?;
15985 } else {
15986 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15987 }
15988 }
15989
15990 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15991 }
15992 unsafe {
15993 preallocated.write_next(out.assume_init_ref());
15994 }
15995 }
15996
15997 ::fidl_next::wire::Table::encode_len(table, max_ord);
15998
15999 Ok(())
16000 }
16001 }
16002
16003 impl<'de> ::fidl_next::FromWire<crate::wire::OfferResolver<'de>> for OfferResolver {
16004 #[inline]
16005 fn from_wire(wire_: crate::wire::OfferResolver<'de>) -> Self {
16006 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16007
16008 let source = wire_.table.get(1);
16009
16010 let source_name = wire_.table.get(2);
16011
16012 let target = wire_.table.get(3);
16013
16014 let target_name = wire_.table.get(4);
16015
16016 let source_dictionary = wire_.table.get(5);
16017
16018 Self {
16019 source: source.map(|envelope| {
16020 ::fidl_next::FromWire::from_wire(unsafe {
16021 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16022 })
16023 }),
16024
16025 source_name: source_name.map(|envelope| {
16026 ::fidl_next::FromWire::from_wire(unsafe {
16027 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16028 })
16029 }),
16030
16031 target: target.map(|envelope| {
16032 ::fidl_next::FromWire::from_wire(unsafe {
16033 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16034 })
16035 }),
16036
16037 target_name: target_name.map(|envelope| {
16038 ::fidl_next::FromWire::from_wire(unsafe {
16039 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16040 })
16041 }),
16042
16043 source_dictionary: source_dictionary.map(|envelope| {
16044 ::fidl_next::FromWire::from_wire(unsafe {
16045 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16046 })
16047 }),
16048 }
16049 }
16050 }
16051
16052 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferResolver<'de>> for OfferResolver {
16053 #[inline]
16054 fn from_wire_ref(wire: &crate::wire::OfferResolver<'de>) -> Self {
16055 Self {
16056 source: wire.table.get(1).map(|envelope| {
16057 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16058 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16059 })
16060 }),
16061
16062 source_name: wire.table.get(2).map(|envelope| {
16063 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16064 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16065 })
16066 }),
16067
16068 target: wire.table.get(3).map(|envelope| {
16069 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16070 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16071 })
16072 }),
16073
16074 target_name: wire.table.get(4).map(|envelope| {
16075 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16076 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16077 })
16078 }),
16079
16080 source_dictionary: wire.table.get(5).map(|envelope| {
16081 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16082 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16083 })
16084 }),
16085 }
16086 }
16087 }
16088
16089 #[doc = " Declares an event stream offered by a component.\n"]
16090 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16091 pub struct OfferEventStream {
16092 pub source: ::core::option::Option<crate::natural::Ref>,
16093
16094 pub source_name: ::core::option::Option<::std::string::String>,
16095
16096 pub scope: ::core::option::Option<::std::vec::Vec<crate::natural::Ref>>,
16097
16098 pub target: ::core::option::Option<crate::natural::Ref>,
16099
16100 pub target_name: ::core::option::Option<::std::string::String>,
16101
16102 pub availability: ::core::option::Option<crate::natural::Availability>,
16103 }
16104
16105 impl OfferEventStream {
16106 fn __max_ordinal(&self) -> usize {
16107 if self.availability.is_some() {
16108 return 7;
16109 }
16110
16111 if self.target_name.is_some() {
16112 return 5;
16113 }
16114
16115 if self.target.is_some() {
16116 return 4;
16117 }
16118
16119 if self.scope.is_some() {
16120 return 3;
16121 }
16122
16123 if self.source_name.is_some() {
16124 return 2;
16125 }
16126
16127 if self.source.is_some() {
16128 return 1;
16129 }
16130
16131 0
16132 }
16133 }
16134
16135 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferEventStream<'static>, ___E>
16136 for OfferEventStream
16137 where
16138 ___E: ::fidl_next::Encoder + ?Sized,
16139 {
16140 #[inline]
16141 fn encode(
16142 mut self,
16143 encoder: &mut ___E,
16144 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferEventStream<'static>>,
16145 _: (),
16146 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16147 ::fidl_next::munge!(let crate::wire::OfferEventStream { table } = out);
16148
16149 let max_ord = self.__max_ordinal();
16150
16151 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16152 ::fidl_next::Wire::zero_padding(&mut out);
16153
16154 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16155 ::fidl_next::wire::Envelope,
16156 >(encoder, max_ord);
16157
16158 for i in 1..=max_ord {
16159 match i {
16160 7 => {
16161 if let Some(value) = self.availability.take() {
16162 ::fidl_next::wire::Envelope::encode_value::<
16163 crate::wire::Availability,
16164 ___E,
16165 >(
16166 value, preallocated.encoder, &mut out, ()
16167 )?;
16168 } else {
16169 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16170 }
16171 }
16172
16173 5 => {
16174 if let Some(value) = self.target_name.take() {
16175 ::fidl_next::wire::Envelope::encode_value::<
16176 ::fidl_next::wire::String<'static>,
16177 ___E,
16178 >(
16179 value, preallocated.encoder, &mut out, 100
16180 )?;
16181 } else {
16182 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16183 }
16184 }
16185
16186 4 => {
16187 if let Some(value) = self.target.take() {
16188 ::fidl_next::wire::Envelope::encode_value::<
16189 crate::wire::Ref<'static>,
16190 ___E,
16191 >(
16192 value, preallocated.encoder, &mut out, ()
16193 )?;
16194 } else {
16195 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16196 }
16197 }
16198
16199 3 => {
16200 if let Some(value) = self.scope.take() {
16201 ::fidl_next::wire::Envelope::encode_value::<
16202 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
16203 ___E,
16204 >(
16205 value, preallocated.encoder, &mut out, (4294967295, ())
16206 )?;
16207 } else {
16208 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16209 }
16210 }
16211
16212 2 => {
16213 if let Some(value) = self.source_name.take() {
16214 ::fidl_next::wire::Envelope::encode_value::<
16215 ::fidl_next::wire::String<'static>,
16216 ___E,
16217 >(
16218 value, preallocated.encoder, &mut out, 100
16219 )?;
16220 } else {
16221 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16222 }
16223 }
16224
16225 1 => {
16226 if let Some(value) = self.source.take() {
16227 ::fidl_next::wire::Envelope::encode_value::<
16228 crate::wire::Ref<'static>,
16229 ___E,
16230 >(
16231 value, preallocated.encoder, &mut out, ()
16232 )?;
16233 } else {
16234 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16235 }
16236 }
16237
16238 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16239 }
16240 unsafe {
16241 preallocated.write_next(out.assume_init_ref());
16242 }
16243 }
16244
16245 ::fidl_next::wire::Table::encode_len(table, max_ord);
16246
16247 Ok(())
16248 }
16249 }
16250
16251 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferEventStream<'static>, ___E>
16252 for &'a OfferEventStream
16253 where
16254 ___E: ::fidl_next::Encoder + ?Sized,
16255 {
16256 #[inline]
16257 fn encode(
16258 self,
16259 encoder: &mut ___E,
16260 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferEventStream<'static>>,
16261 _: (),
16262 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16263 ::fidl_next::munge!(let crate::wire::OfferEventStream { table } = out);
16264
16265 let max_ord = self.__max_ordinal();
16266
16267 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16268 ::fidl_next::Wire::zero_padding(&mut out);
16269
16270 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16271 ::fidl_next::wire::Envelope,
16272 >(encoder, max_ord);
16273
16274 for i in 1..=max_ord {
16275 match i {
16276 7 => {
16277 if let Some(value) = &self.availability {
16278 ::fidl_next::wire::Envelope::encode_value::<
16279 crate::wire::Availability,
16280 ___E,
16281 >(
16282 value, preallocated.encoder, &mut out, ()
16283 )?;
16284 } else {
16285 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16286 }
16287 }
16288
16289 5 => {
16290 if let Some(value) = &self.target_name {
16291 ::fidl_next::wire::Envelope::encode_value::<
16292 ::fidl_next::wire::String<'static>,
16293 ___E,
16294 >(
16295 value, preallocated.encoder, &mut out, 100
16296 )?;
16297 } else {
16298 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16299 }
16300 }
16301
16302 4 => {
16303 if let Some(value) = &self.target {
16304 ::fidl_next::wire::Envelope::encode_value::<
16305 crate::wire::Ref<'static>,
16306 ___E,
16307 >(
16308 value, preallocated.encoder, &mut out, ()
16309 )?;
16310 } else {
16311 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16312 }
16313 }
16314
16315 3 => {
16316 if let Some(value) = &self.scope {
16317 ::fidl_next::wire::Envelope::encode_value::<
16318 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
16319 ___E,
16320 >(
16321 value, preallocated.encoder, &mut out, (4294967295, ())
16322 )?;
16323 } else {
16324 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16325 }
16326 }
16327
16328 2 => {
16329 if let Some(value) = &self.source_name {
16330 ::fidl_next::wire::Envelope::encode_value::<
16331 ::fidl_next::wire::String<'static>,
16332 ___E,
16333 >(
16334 value, preallocated.encoder, &mut out, 100
16335 )?;
16336 } else {
16337 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16338 }
16339 }
16340
16341 1 => {
16342 if let Some(value) = &self.source {
16343 ::fidl_next::wire::Envelope::encode_value::<
16344 crate::wire::Ref<'static>,
16345 ___E,
16346 >(
16347 value, preallocated.encoder, &mut out, ()
16348 )?;
16349 } else {
16350 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16351 }
16352 }
16353
16354 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16355 }
16356 unsafe {
16357 preallocated.write_next(out.assume_init_ref());
16358 }
16359 }
16360
16361 ::fidl_next::wire::Table::encode_len(table, max_ord);
16362
16363 Ok(())
16364 }
16365 }
16366
16367 impl<'de> ::fidl_next::FromWire<crate::wire::OfferEventStream<'de>> for OfferEventStream {
16368 #[inline]
16369 fn from_wire(wire_: crate::wire::OfferEventStream<'de>) -> Self {
16370 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16371
16372 let source = wire_.table.get(1);
16373
16374 let source_name = wire_.table.get(2);
16375
16376 let scope = wire_.table.get(3);
16377
16378 let target = wire_.table.get(4);
16379
16380 let target_name = wire_.table.get(5);
16381
16382 let availability = wire_.table.get(7);
16383
16384 Self {
16385
16386
16387 source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
16388 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
16389 )),
16390
16391
16392 source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
16393 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
16394 )),
16395
16396
16397 scope: scope.map(|envelope| ::fidl_next::FromWire::from_wire(
16398 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
16399 )),
16400
16401
16402 target: target.map(|envelope| ::fidl_next::FromWire::from_wire(
16403 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
16404 )),
16405
16406
16407 target_name: target_name.map(|envelope| ::fidl_next::FromWire::from_wire(
16408 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
16409 )),
16410
16411
16412 availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
16413 unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
16414 )),
16415
16416 }
16417 }
16418 }
16419
16420 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferEventStream<'de>> for OfferEventStream {
16421 #[inline]
16422 fn from_wire_ref(wire: &crate::wire::OfferEventStream<'de>) -> Self {
16423 Self {
16424
16425
16426 source: wire.table.get(1)
16427 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16428 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
16429 )),
16430
16431
16432 source_name: wire.table.get(2)
16433 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16434 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
16435 )),
16436
16437
16438 scope: wire.table.get(3)
16439 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16440 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
16441 )),
16442
16443
16444 target: wire.table.get(4)
16445 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16446 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
16447 )),
16448
16449
16450 target_name: wire.table.get(5)
16451 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16452 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
16453 )),
16454
16455
16456 availability: wire.table.get(7)
16457 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16458 unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
16459 )),
16460
16461 }
16462 }
16463 }
16464
16465 #[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"]
16466 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16467 pub struct OfferDictionary {
16468 pub source: ::core::option::Option<crate::natural::Ref>,
16469
16470 pub source_name: ::core::option::Option<::std::string::String>,
16471
16472 pub target: ::core::option::Option<crate::natural::Ref>,
16473
16474 pub target_name: ::core::option::Option<::std::string::String>,
16475
16476 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
16477
16478 pub availability: ::core::option::Option<crate::natural::Availability>,
16479
16480 pub source_dictionary: ::core::option::Option<::std::string::String>,
16481 }
16482
16483 impl OfferDictionary {
16484 fn __max_ordinal(&self) -> usize {
16485 if self.source_dictionary.is_some() {
16486 return 7;
16487 }
16488
16489 if self.availability.is_some() {
16490 return 6;
16491 }
16492
16493 if self.dependency_type.is_some() {
16494 return 5;
16495 }
16496
16497 if self.target_name.is_some() {
16498 return 4;
16499 }
16500
16501 if self.target.is_some() {
16502 return 3;
16503 }
16504
16505 if self.source_name.is_some() {
16506 return 2;
16507 }
16508
16509 if self.source.is_some() {
16510 return 1;
16511 }
16512
16513 0
16514 }
16515 }
16516
16517 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferDictionary<'static>, ___E>
16518 for OfferDictionary
16519 where
16520 ___E: ::fidl_next::Encoder + ?Sized,
16521 {
16522 #[inline]
16523 fn encode(
16524 mut self,
16525 encoder: &mut ___E,
16526 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDictionary<'static>>,
16527 _: (),
16528 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16529 ::fidl_next::munge!(let crate::wire::OfferDictionary { table } = out);
16530
16531 let max_ord = self.__max_ordinal();
16532
16533 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16534 ::fidl_next::Wire::zero_padding(&mut out);
16535
16536 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16537 ::fidl_next::wire::Envelope,
16538 >(encoder, max_ord);
16539
16540 for i in 1..=max_ord {
16541 match i {
16542 7 => {
16543 if let Some(value) = self.source_dictionary.take() {
16544 ::fidl_next::wire::Envelope::encode_value::<
16545 ::fidl_next::wire::String<'static>,
16546 ___E,
16547 >(
16548 value, preallocated.encoder, &mut out, 1024
16549 )?;
16550 } else {
16551 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16552 }
16553 }
16554
16555 6 => {
16556 if let Some(value) = self.availability.take() {
16557 ::fidl_next::wire::Envelope::encode_value::<
16558 crate::wire::Availability,
16559 ___E,
16560 >(
16561 value, preallocated.encoder, &mut out, ()
16562 )?;
16563 } else {
16564 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16565 }
16566 }
16567
16568 5 => {
16569 if let Some(value) = self.dependency_type.take() {
16570 ::fidl_next::wire::Envelope::encode_value::<
16571 crate::wire::DependencyType,
16572 ___E,
16573 >(
16574 value, preallocated.encoder, &mut out, ()
16575 )?;
16576 } else {
16577 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16578 }
16579 }
16580
16581 4 => {
16582 if let Some(value) = self.target_name.take() {
16583 ::fidl_next::wire::Envelope::encode_value::<
16584 ::fidl_next::wire::String<'static>,
16585 ___E,
16586 >(
16587 value, preallocated.encoder, &mut out, 100
16588 )?;
16589 } else {
16590 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16591 }
16592 }
16593
16594 3 => {
16595 if let Some(value) = self.target.take() {
16596 ::fidl_next::wire::Envelope::encode_value::<
16597 crate::wire::Ref<'static>,
16598 ___E,
16599 >(
16600 value, preallocated.encoder, &mut out, ()
16601 )?;
16602 } else {
16603 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16604 }
16605 }
16606
16607 2 => {
16608 if let Some(value) = self.source_name.take() {
16609 ::fidl_next::wire::Envelope::encode_value::<
16610 ::fidl_next::wire::String<'static>,
16611 ___E,
16612 >(
16613 value, preallocated.encoder, &mut out, 100
16614 )?;
16615 } else {
16616 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16617 }
16618 }
16619
16620 1 => {
16621 if let Some(value) = self.source.take() {
16622 ::fidl_next::wire::Envelope::encode_value::<
16623 crate::wire::Ref<'static>,
16624 ___E,
16625 >(
16626 value, preallocated.encoder, &mut out, ()
16627 )?;
16628 } else {
16629 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16630 }
16631 }
16632
16633 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16634 }
16635 unsafe {
16636 preallocated.write_next(out.assume_init_ref());
16637 }
16638 }
16639
16640 ::fidl_next::wire::Table::encode_len(table, max_ord);
16641
16642 Ok(())
16643 }
16644 }
16645
16646 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferDictionary<'static>, ___E>
16647 for &'a OfferDictionary
16648 where
16649 ___E: ::fidl_next::Encoder + ?Sized,
16650 {
16651 #[inline]
16652 fn encode(
16653 self,
16654 encoder: &mut ___E,
16655 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDictionary<'static>>,
16656 _: (),
16657 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16658 ::fidl_next::munge!(let crate::wire::OfferDictionary { table } = out);
16659
16660 let max_ord = self.__max_ordinal();
16661
16662 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16663 ::fidl_next::Wire::zero_padding(&mut out);
16664
16665 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16666 ::fidl_next::wire::Envelope,
16667 >(encoder, max_ord);
16668
16669 for i in 1..=max_ord {
16670 match i {
16671 7 => {
16672 if let Some(value) = &self.source_dictionary {
16673 ::fidl_next::wire::Envelope::encode_value::<
16674 ::fidl_next::wire::String<'static>,
16675 ___E,
16676 >(
16677 value, preallocated.encoder, &mut out, 1024
16678 )?;
16679 } else {
16680 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16681 }
16682 }
16683
16684 6 => {
16685 if let Some(value) = &self.availability {
16686 ::fidl_next::wire::Envelope::encode_value::<
16687 crate::wire::Availability,
16688 ___E,
16689 >(
16690 value, preallocated.encoder, &mut out, ()
16691 )?;
16692 } else {
16693 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16694 }
16695 }
16696
16697 5 => {
16698 if let Some(value) = &self.dependency_type {
16699 ::fidl_next::wire::Envelope::encode_value::<
16700 crate::wire::DependencyType,
16701 ___E,
16702 >(
16703 value, preallocated.encoder, &mut out, ()
16704 )?;
16705 } else {
16706 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16707 }
16708 }
16709
16710 4 => {
16711 if let Some(value) = &self.target_name {
16712 ::fidl_next::wire::Envelope::encode_value::<
16713 ::fidl_next::wire::String<'static>,
16714 ___E,
16715 >(
16716 value, preallocated.encoder, &mut out, 100
16717 )?;
16718 } else {
16719 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16720 }
16721 }
16722
16723 3 => {
16724 if let Some(value) = &self.target {
16725 ::fidl_next::wire::Envelope::encode_value::<
16726 crate::wire::Ref<'static>,
16727 ___E,
16728 >(
16729 value, preallocated.encoder, &mut out, ()
16730 )?;
16731 } else {
16732 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16733 }
16734 }
16735
16736 2 => {
16737 if let Some(value) = &self.source_name {
16738 ::fidl_next::wire::Envelope::encode_value::<
16739 ::fidl_next::wire::String<'static>,
16740 ___E,
16741 >(
16742 value, preallocated.encoder, &mut out, 100
16743 )?;
16744 } else {
16745 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16746 }
16747 }
16748
16749 1 => {
16750 if let Some(value) = &self.source {
16751 ::fidl_next::wire::Envelope::encode_value::<
16752 crate::wire::Ref<'static>,
16753 ___E,
16754 >(
16755 value, preallocated.encoder, &mut out, ()
16756 )?;
16757 } else {
16758 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16759 }
16760 }
16761
16762 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16763 }
16764 unsafe {
16765 preallocated.write_next(out.assume_init_ref());
16766 }
16767 }
16768
16769 ::fidl_next::wire::Table::encode_len(table, max_ord);
16770
16771 Ok(())
16772 }
16773 }
16774
16775 impl<'de> ::fidl_next::FromWire<crate::wire::OfferDictionary<'de>> for OfferDictionary {
16776 #[inline]
16777 fn from_wire(wire_: crate::wire::OfferDictionary<'de>) -> Self {
16778 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16779
16780 let source = wire_.table.get(1);
16781
16782 let source_name = wire_.table.get(2);
16783
16784 let target = wire_.table.get(3);
16785
16786 let target_name = wire_.table.get(4);
16787
16788 let dependency_type = wire_.table.get(5);
16789
16790 let availability = wire_.table.get(6);
16791
16792 let source_dictionary = wire_.table.get(7);
16793
16794 Self {
16795 source: source.map(|envelope| {
16796 ::fidl_next::FromWire::from_wire(unsafe {
16797 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16798 })
16799 }),
16800
16801 source_name: source_name.map(|envelope| {
16802 ::fidl_next::FromWire::from_wire(unsafe {
16803 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16804 })
16805 }),
16806
16807 target: target.map(|envelope| {
16808 ::fidl_next::FromWire::from_wire(unsafe {
16809 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16810 })
16811 }),
16812
16813 target_name: target_name.map(|envelope| {
16814 ::fidl_next::FromWire::from_wire(unsafe {
16815 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16816 })
16817 }),
16818
16819 dependency_type: dependency_type.map(|envelope| {
16820 ::fidl_next::FromWire::from_wire(unsafe {
16821 envelope.read_unchecked::<crate::wire::DependencyType>()
16822 })
16823 }),
16824
16825 availability: availability.map(|envelope| {
16826 ::fidl_next::FromWire::from_wire(unsafe {
16827 envelope.read_unchecked::<crate::wire::Availability>()
16828 })
16829 }),
16830
16831 source_dictionary: source_dictionary.map(|envelope| {
16832 ::fidl_next::FromWire::from_wire(unsafe {
16833 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16834 })
16835 }),
16836 }
16837 }
16838 }
16839
16840 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferDictionary<'de>> for OfferDictionary {
16841 #[inline]
16842 fn from_wire_ref(wire: &crate::wire::OfferDictionary<'de>) -> Self {
16843 Self {
16844 source: wire.table.get(1).map(|envelope| {
16845 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16846 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16847 })
16848 }),
16849
16850 source_name: wire.table.get(2).map(|envelope| {
16851 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16852 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16853 })
16854 }),
16855
16856 target: wire.table.get(3).map(|envelope| {
16857 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16858 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16859 })
16860 }),
16861
16862 target_name: wire.table.get(4).map(|envelope| {
16863 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16864 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16865 })
16866 }),
16867
16868 dependency_type: wire.table.get(5).map(|envelope| {
16869 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16870 envelope.deref_unchecked::<crate::wire::DependencyType>()
16871 })
16872 }),
16873
16874 availability: wire.table.get(6).map(|envelope| {
16875 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16876 envelope.deref_unchecked::<crate::wire::Availability>()
16877 })
16878 }),
16879
16880 source_dictionary: wire.table.get(7).map(|envelope| {
16881 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16882 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16883 })
16884 }),
16885 }
16886 }
16887 }
16888
16889 #[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"]
16890 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16891 pub struct OfferConfiguration {
16892 pub source: ::core::option::Option<crate::natural::Ref>,
16893
16894 pub source_name: ::core::option::Option<::std::string::String>,
16895
16896 pub target: ::core::option::Option<crate::natural::Ref>,
16897
16898 pub target_name: ::core::option::Option<::std::string::String>,
16899
16900 pub availability: ::core::option::Option<crate::natural::Availability>,
16901
16902 pub source_dictionary: ::core::option::Option<::std::string::String>,
16903 }
16904
16905 impl OfferConfiguration {
16906 fn __max_ordinal(&self) -> usize {
16907 if self.source_dictionary.is_some() {
16908 return 6;
16909 }
16910
16911 if self.availability.is_some() {
16912 return 5;
16913 }
16914
16915 if self.target_name.is_some() {
16916 return 4;
16917 }
16918
16919 if self.target.is_some() {
16920 return 3;
16921 }
16922
16923 if self.source_name.is_some() {
16924 return 2;
16925 }
16926
16927 if self.source.is_some() {
16928 return 1;
16929 }
16930
16931 0
16932 }
16933 }
16934
16935 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferConfiguration<'static>, ___E>
16936 for OfferConfiguration
16937 where
16938 ___E: ::fidl_next::Encoder + ?Sized,
16939 {
16940 #[inline]
16941 fn encode(
16942 mut self,
16943 encoder: &mut ___E,
16944 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferConfiguration<'static>>,
16945 _: (),
16946 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16947 ::fidl_next::munge!(let crate::wire::OfferConfiguration { table } = out);
16948
16949 let max_ord = self.__max_ordinal();
16950
16951 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16952 ::fidl_next::Wire::zero_padding(&mut out);
16953
16954 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16955 ::fidl_next::wire::Envelope,
16956 >(encoder, max_ord);
16957
16958 for i in 1..=max_ord {
16959 match i {
16960 6 => {
16961 if let Some(value) = self.source_dictionary.take() {
16962 ::fidl_next::wire::Envelope::encode_value::<
16963 ::fidl_next::wire::String<'static>,
16964 ___E,
16965 >(
16966 value, preallocated.encoder, &mut out, 1024
16967 )?;
16968 } else {
16969 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16970 }
16971 }
16972
16973 5 => {
16974 if let Some(value) = self.availability.take() {
16975 ::fidl_next::wire::Envelope::encode_value::<
16976 crate::wire::Availability,
16977 ___E,
16978 >(
16979 value, preallocated.encoder, &mut out, ()
16980 )?;
16981 } else {
16982 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16983 }
16984 }
16985
16986 4 => {
16987 if let Some(value) = self.target_name.take() {
16988 ::fidl_next::wire::Envelope::encode_value::<
16989 ::fidl_next::wire::String<'static>,
16990 ___E,
16991 >(
16992 value, preallocated.encoder, &mut out, 100
16993 )?;
16994 } else {
16995 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16996 }
16997 }
16998
16999 3 => {
17000 if let Some(value) = self.target.take() {
17001 ::fidl_next::wire::Envelope::encode_value::<
17002 crate::wire::Ref<'static>,
17003 ___E,
17004 >(
17005 value, preallocated.encoder, &mut out, ()
17006 )?;
17007 } else {
17008 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17009 }
17010 }
17011
17012 2 => {
17013 if let Some(value) = self.source_name.take() {
17014 ::fidl_next::wire::Envelope::encode_value::<
17015 ::fidl_next::wire::String<'static>,
17016 ___E,
17017 >(
17018 value, preallocated.encoder, &mut out, 100
17019 )?;
17020 } else {
17021 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17022 }
17023 }
17024
17025 1 => {
17026 if let Some(value) = self.source.take() {
17027 ::fidl_next::wire::Envelope::encode_value::<
17028 crate::wire::Ref<'static>,
17029 ___E,
17030 >(
17031 value, preallocated.encoder, &mut out, ()
17032 )?;
17033 } else {
17034 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17035 }
17036 }
17037
17038 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17039 }
17040 unsafe {
17041 preallocated.write_next(out.assume_init_ref());
17042 }
17043 }
17044
17045 ::fidl_next::wire::Table::encode_len(table, max_ord);
17046
17047 Ok(())
17048 }
17049 }
17050
17051 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferConfiguration<'static>, ___E>
17052 for &'a OfferConfiguration
17053 where
17054 ___E: ::fidl_next::Encoder + ?Sized,
17055 {
17056 #[inline]
17057 fn encode(
17058 self,
17059 encoder: &mut ___E,
17060 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferConfiguration<'static>>,
17061 _: (),
17062 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17063 ::fidl_next::munge!(let crate::wire::OfferConfiguration { table } = out);
17064
17065 let max_ord = self.__max_ordinal();
17066
17067 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17068 ::fidl_next::Wire::zero_padding(&mut out);
17069
17070 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17071 ::fidl_next::wire::Envelope,
17072 >(encoder, max_ord);
17073
17074 for i in 1..=max_ord {
17075 match i {
17076 6 => {
17077 if let Some(value) = &self.source_dictionary {
17078 ::fidl_next::wire::Envelope::encode_value::<
17079 ::fidl_next::wire::String<'static>,
17080 ___E,
17081 >(
17082 value, preallocated.encoder, &mut out, 1024
17083 )?;
17084 } else {
17085 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17086 }
17087 }
17088
17089 5 => {
17090 if let Some(value) = &self.availability {
17091 ::fidl_next::wire::Envelope::encode_value::<
17092 crate::wire::Availability,
17093 ___E,
17094 >(
17095 value, preallocated.encoder, &mut out, ()
17096 )?;
17097 } else {
17098 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17099 }
17100 }
17101
17102 4 => {
17103 if let Some(value) = &self.target_name {
17104 ::fidl_next::wire::Envelope::encode_value::<
17105 ::fidl_next::wire::String<'static>,
17106 ___E,
17107 >(
17108 value, preallocated.encoder, &mut out, 100
17109 )?;
17110 } else {
17111 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17112 }
17113 }
17114
17115 3 => {
17116 if let Some(value) = &self.target {
17117 ::fidl_next::wire::Envelope::encode_value::<
17118 crate::wire::Ref<'static>,
17119 ___E,
17120 >(
17121 value, preallocated.encoder, &mut out, ()
17122 )?;
17123 } else {
17124 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17125 }
17126 }
17127
17128 2 => {
17129 if let Some(value) = &self.source_name {
17130 ::fidl_next::wire::Envelope::encode_value::<
17131 ::fidl_next::wire::String<'static>,
17132 ___E,
17133 >(
17134 value, preallocated.encoder, &mut out, 100
17135 )?;
17136 } else {
17137 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17138 }
17139 }
17140
17141 1 => {
17142 if let Some(value) = &self.source {
17143 ::fidl_next::wire::Envelope::encode_value::<
17144 crate::wire::Ref<'static>,
17145 ___E,
17146 >(
17147 value, preallocated.encoder, &mut out, ()
17148 )?;
17149 } else {
17150 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17151 }
17152 }
17153
17154 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17155 }
17156 unsafe {
17157 preallocated.write_next(out.assume_init_ref());
17158 }
17159 }
17160
17161 ::fidl_next::wire::Table::encode_len(table, max_ord);
17162
17163 Ok(())
17164 }
17165 }
17166
17167 impl<'de> ::fidl_next::FromWire<crate::wire::OfferConfiguration<'de>> for OfferConfiguration {
17168 #[inline]
17169 fn from_wire(wire_: crate::wire::OfferConfiguration<'de>) -> Self {
17170 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
17171
17172 let source = wire_.table.get(1);
17173
17174 let source_name = wire_.table.get(2);
17175
17176 let target = wire_.table.get(3);
17177
17178 let target_name = wire_.table.get(4);
17179
17180 let availability = wire_.table.get(5);
17181
17182 let source_dictionary = wire_.table.get(6);
17183
17184 Self {
17185 source: source.map(|envelope| {
17186 ::fidl_next::FromWire::from_wire(unsafe {
17187 envelope.read_unchecked::<crate::wire::Ref<'de>>()
17188 })
17189 }),
17190
17191 source_name: source_name.map(|envelope| {
17192 ::fidl_next::FromWire::from_wire(unsafe {
17193 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17194 })
17195 }),
17196
17197 target: target.map(|envelope| {
17198 ::fidl_next::FromWire::from_wire(unsafe {
17199 envelope.read_unchecked::<crate::wire::Ref<'de>>()
17200 })
17201 }),
17202
17203 target_name: target_name.map(|envelope| {
17204 ::fidl_next::FromWire::from_wire(unsafe {
17205 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17206 })
17207 }),
17208
17209 availability: availability.map(|envelope| {
17210 ::fidl_next::FromWire::from_wire(unsafe {
17211 envelope.read_unchecked::<crate::wire::Availability>()
17212 })
17213 }),
17214
17215 source_dictionary: source_dictionary.map(|envelope| {
17216 ::fidl_next::FromWire::from_wire(unsafe {
17217 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17218 })
17219 }),
17220 }
17221 }
17222 }
17223
17224 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferConfiguration<'de>> for OfferConfiguration {
17225 #[inline]
17226 fn from_wire_ref(wire: &crate::wire::OfferConfiguration<'de>) -> Self {
17227 Self {
17228 source: wire.table.get(1).map(|envelope| {
17229 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17230 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17231 })
17232 }),
17233
17234 source_name: wire.table.get(2).map(|envelope| {
17235 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17236 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17237 })
17238 }),
17239
17240 target: wire.table.get(3).map(|envelope| {
17241 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17242 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17243 })
17244 }),
17245
17246 target_name: wire.table.get(4).map(|envelope| {
17247 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17248 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17249 })
17250 }),
17251
17252 availability: wire.table.get(5).map(|envelope| {
17253 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17254 envelope.deref_unchecked::<crate::wire::Availability>()
17255 })
17256 }),
17257
17258 source_dictionary: wire.table.get(6).map(|envelope| {
17259 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17260 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17261 })
17262 }),
17263 }
17264 }
17265 }
17266
17267 #[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"]
17268 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17269 pub enum Offer {
17270 Service(crate::natural::OfferService),
17271
17272 Protocol(crate::natural::OfferProtocol),
17273
17274 Directory(crate::natural::OfferDirectory),
17275
17276 Storage(crate::natural::OfferStorage),
17277
17278 Runner(crate::natural::OfferRunner),
17279
17280 Resolver(crate::natural::OfferResolver),
17281
17282 EventStream(crate::natural::OfferEventStream),
17283
17284 Dictionary(crate::natural::OfferDictionary),
17285
17286 Config(crate::natural::OfferConfiguration),
17287
17288 UnknownOrdinal_(u64),
17289 }
17290
17291 impl Offer {
17292 pub fn is_unknown(&self) -> bool {
17293 #[allow(unreachable_patterns)]
17294 match self {
17295 Self::UnknownOrdinal_(_) => true,
17296 _ => false,
17297 }
17298 }
17299 }
17300
17301 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Offer<'static>, ___E> for Offer
17302 where
17303 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17304 ___E: ::fidl_next::Encoder,
17305 {
17306 #[inline]
17307 fn encode(
17308 self,
17309 encoder: &mut ___E,
17310 out: &mut ::core::mem::MaybeUninit<crate::wire::Offer<'static>>,
17311 _: (),
17312 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17313 ::fidl_next::munge!(let crate::wire::Offer { raw, _phantom: _ } = out);
17314
17315 match self {
17316 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
17317 ___E,
17318 crate::wire::OfferService<'static>,
17319 >(value, 1, encoder, raw, ())?,
17320
17321 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
17322 ___E,
17323 crate::wire::OfferProtocol<'static>,
17324 >(value, 2, encoder, raw, ())?,
17325
17326 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
17327 ___E,
17328 crate::wire::OfferDirectory<'static>,
17329 >(value, 3, encoder, raw, ())?,
17330
17331 Self::Storage(value) => ::fidl_next::wire::Union::encode_as::<
17332 ___E,
17333 crate::wire::OfferStorage<'static>,
17334 >(value, 4, encoder, raw, ())?,
17335
17336 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
17337 ___E,
17338 crate::wire::OfferRunner<'static>,
17339 >(value, 5, encoder, raw, ())?,
17340
17341 Self::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
17342 ___E,
17343 crate::wire::OfferResolver<'static>,
17344 >(value, 6, encoder, raw, ())?,
17345
17346 Self::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
17347 ___E,
17348 crate::wire::OfferEventStream<'static>,
17349 >(value, 8, encoder, raw, ())?,
17350
17351 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
17352 ___E,
17353 crate::wire::OfferDictionary<'static>,
17354 >(value, 9, encoder, raw, ())?,
17355
17356 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
17357 ___E,
17358 crate::wire::OfferConfiguration<'static>,
17359 >(value, 10, encoder, raw, ())?,
17360
17361 Self::UnknownOrdinal_(ordinal) => {
17362 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
17363 }
17364 }
17365
17366 Ok(())
17367 }
17368 }
17369
17370 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Offer<'static>, ___E> for &'a Offer
17371 where
17372 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17373 ___E: ::fidl_next::Encoder,
17374 {
17375 #[inline]
17376 fn encode(
17377 self,
17378 encoder: &mut ___E,
17379 out: &mut ::core::mem::MaybeUninit<crate::wire::Offer<'static>>,
17380 _: (),
17381 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17382 ::fidl_next::munge!(let crate::wire::Offer { raw, _phantom: _ } = out);
17383
17384 match self {
17385 Offer::Service(value) => ::fidl_next::wire::Union::encode_as::<
17386 ___E,
17387 crate::wire::OfferService<'static>,
17388 >(value, 1, encoder, raw, ())?,
17389
17390 Offer::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
17391 ___E,
17392 crate::wire::OfferProtocol<'static>,
17393 >(value, 2, encoder, raw, ())?,
17394
17395 Offer::Directory(value) => ::fidl_next::wire::Union::encode_as::<
17396 ___E,
17397 crate::wire::OfferDirectory<'static>,
17398 >(value, 3, encoder, raw, ())?,
17399
17400 Offer::Storage(value) => ::fidl_next::wire::Union::encode_as::<
17401 ___E,
17402 crate::wire::OfferStorage<'static>,
17403 >(value, 4, encoder, raw, ())?,
17404
17405 Offer::Runner(value) => ::fidl_next::wire::Union::encode_as::<
17406 ___E,
17407 crate::wire::OfferRunner<'static>,
17408 >(value, 5, encoder, raw, ())?,
17409
17410 Offer::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
17411 ___E,
17412 crate::wire::OfferResolver<'static>,
17413 >(value, 6, encoder, raw, ())?,
17414
17415 Offer::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
17416 ___E,
17417 crate::wire::OfferEventStream<'static>,
17418 >(value, 8, encoder, raw, ())?,
17419
17420 Offer::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
17421 ___E,
17422 crate::wire::OfferDictionary<'static>,
17423 >(value, 9, encoder, raw, ())?,
17424
17425 Offer::Config(value) => ::fidl_next::wire::Union::encode_as::<
17426 ___E,
17427 crate::wire::OfferConfiguration<'static>,
17428 >(value, 10, encoder, raw, ())?,
17429
17430 Offer::UnknownOrdinal_(ordinal) => {
17431 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
17432 }
17433 }
17434
17435 Ok(())
17436 }
17437 }
17438
17439 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Offer<'static>, ___E> for Offer
17440 where
17441 ___E: ?Sized,
17442 Offer: ::fidl_next::Encode<crate::wire::Offer<'static>, ___E>,
17443 {
17444 #[inline]
17445 fn encode_option(
17446 this: ::core::option::Option<Self>,
17447 encoder: &mut ___E,
17448 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Offer<'static>>,
17449 _: (),
17450 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17451 ::fidl_next::munge!(let crate::wire_optional::Offer { raw, _phantom: _ } = &mut *out);
17452
17453 if let Some(inner) = this {
17454 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
17455 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
17456 } else {
17457 ::fidl_next::wire::Union::encode_absent(raw);
17458 }
17459
17460 Ok(())
17461 }
17462 }
17463
17464 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Offer<'static>, ___E>
17465 for &'a Offer
17466 where
17467 ___E: ?Sized,
17468 &'a Offer: ::fidl_next::Encode<crate::wire::Offer<'static>, ___E>,
17469 {
17470 #[inline]
17471 fn encode_option(
17472 this: ::core::option::Option<Self>,
17473 encoder: &mut ___E,
17474 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Offer<'static>>,
17475 _: (),
17476 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17477 ::fidl_next::munge!(let crate::wire_optional::Offer { raw, _phantom: _ } = &mut *out);
17478
17479 if let Some(inner) = this {
17480 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
17481 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
17482 } else {
17483 ::fidl_next::wire::Union::encode_absent(raw);
17484 }
17485
17486 Ok(())
17487 }
17488 }
17489
17490 impl<'de> ::fidl_next::FromWire<crate::wire::Offer<'de>> for Offer {
17491 #[inline]
17492 fn from_wire(wire: crate::wire::Offer<'de>) -> Self {
17493 let wire = ::core::mem::ManuallyDrop::new(wire);
17494 match wire.raw.ordinal() {
17495 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
17496 wire.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
17497 })),
17498
17499 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
17500 wire.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
17501 })),
17502
17503 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
17504 wire.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
17505 })),
17506
17507 4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
17508 wire.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
17509 })),
17510
17511 5 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
17512 wire.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>()
17513 })),
17514
17515 6 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
17516 wire.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
17517 })),
17518
17519 8 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
17520 wire.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
17521 })),
17522
17523 9 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
17524 wire.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
17525 })),
17526
17527 10 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
17528 wire.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
17529 })),
17530
17531 ord => return Self::UnknownOrdinal_(ord as u64),
17532 }
17533 }
17534 }
17535
17536 impl<'de> ::fidl_next::FromWireRef<crate::wire::Offer<'de>> for Offer {
17537 #[inline]
17538 fn from_wire_ref(wire: &crate::wire::Offer<'de>) -> Self {
17539 match wire.raw.ordinal() {
17540 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17541 wire.raw.get().deref_unchecked::<crate::wire::OfferService<'de>>()
17542 })),
17543
17544 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17545 wire.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'de>>()
17546 })),
17547
17548 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17549 wire.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'de>>()
17550 })),
17551
17552 4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17553 wire.raw.get().deref_unchecked::<crate::wire::OfferStorage<'de>>()
17554 })),
17555
17556 5 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17557 wire.raw.get().deref_unchecked::<crate::wire::OfferRunner<'de>>()
17558 })),
17559
17560 6 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17561 wire.raw.get().deref_unchecked::<crate::wire::OfferResolver<'de>>()
17562 })),
17563
17564 8 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17565 wire.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'de>>()
17566 })),
17567
17568 9 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17569 wire.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'de>>()
17570 })),
17571
17572 10 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17573 wire.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'de>>()
17574 })),
17575
17576 ord => return Self::UnknownOrdinal_(ord as u64),
17577 }
17578 }
17579 }
17580
17581 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>> for Offer {
17582 #[inline]
17583 fn from_wire_option(
17584 wire: crate::wire_optional::Offer<'de>,
17585 ) -> ::core::option::Option<Self> {
17586 if let Some(inner) = wire.into_option() {
17587 Some(::fidl_next::FromWire::from_wire(inner))
17588 } else {
17589 None
17590 }
17591 }
17592 }
17593
17594 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>> for Box<Offer> {
17595 #[inline]
17596 fn from_wire_option(
17597 wire: crate::wire_optional::Offer<'de>,
17598 ) -> ::core::option::Option<Self> {
17599 <
17600 Offer as ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>>
17601 >::from_wire_option(wire).map(Box::new)
17602 }
17603 }
17604
17605 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Offer<'de>> for Box<Offer> {
17606 #[inline]
17607 fn from_wire_option_ref(
17608 wire: &crate::wire_optional::Offer<'de>,
17609 ) -> ::core::option::Option<Self> {
17610 if let Some(inner) = wire.as_ref() {
17611 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
17612 } else {
17613 None
17614 }
17615 }
17616 }
17617
17618 #[doc = " A repository of the runners available in an environment.\n"]
17619 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17620 pub struct RunnerRegistration {
17621 pub source_name: ::core::option::Option<::std::string::String>,
17622
17623 pub source: ::core::option::Option<crate::natural::Ref>,
17624
17625 pub target_name: ::core::option::Option<::std::string::String>,
17626 }
17627
17628 impl RunnerRegistration {
17629 fn __max_ordinal(&self) -> usize {
17630 if self.target_name.is_some() {
17631 return 3;
17632 }
17633
17634 if self.source.is_some() {
17635 return 2;
17636 }
17637
17638 if self.source_name.is_some() {
17639 return 1;
17640 }
17641
17642 0
17643 }
17644 }
17645
17646 unsafe impl<___E> ::fidl_next::Encode<crate::wire::RunnerRegistration<'static>, ___E>
17647 for RunnerRegistration
17648 where
17649 ___E: ::fidl_next::Encoder + ?Sized,
17650 {
17651 #[inline]
17652 fn encode(
17653 mut self,
17654 encoder: &mut ___E,
17655 out: &mut ::core::mem::MaybeUninit<crate::wire::RunnerRegistration<'static>>,
17656 _: (),
17657 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17658 ::fidl_next::munge!(let crate::wire::RunnerRegistration { table } = out);
17659
17660 let max_ord = self.__max_ordinal();
17661
17662 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17663 ::fidl_next::Wire::zero_padding(&mut out);
17664
17665 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17666 ::fidl_next::wire::Envelope,
17667 >(encoder, max_ord);
17668
17669 for i in 1..=max_ord {
17670 match i {
17671 3 => {
17672 if let Some(value) = self.target_name.take() {
17673 ::fidl_next::wire::Envelope::encode_value::<
17674 ::fidl_next::wire::String<'static>,
17675 ___E,
17676 >(
17677 value, preallocated.encoder, &mut out, 100
17678 )?;
17679 } else {
17680 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17681 }
17682 }
17683
17684 2 => {
17685 if let Some(value) = self.source.take() {
17686 ::fidl_next::wire::Envelope::encode_value::<
17687 crate::wire::Ref<'static>,
17688 ___E,
17689 >(
17690 value, preallocated.encoder, &mut out, ()
17691 )?;
17692 } else {
17693 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17694 }
17695 }
17696
17697 1 => {
17698 if let Some(value) = self.source_name.take() {
17699 ::fidl_next::wire::Envelope::encode_value::<
17700 ::fidl_next::wire::String<'static>,
17701 ___E,
17702 >(
17703 value, preallocated.encoder, &mut out, 100
17704 )?;
17705 } else {
17706 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17707 }
17708 }
17709
17710 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17711 }
17712 unsafe {
17713 preallocated.write_next(out.assume_init_ref());
17714 }
17715 }
17716
17717 ::fidl_next::wire::Table::encode_len(table, max_ord);
17718
17719 Ok(())
17720 }
17721 }
17722
17723 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::RunnerRegistration<'static>, ___E>
17724 for &'a RunnerRegistration
17725 where
17726 ___E: ::fidl_next::Encoder + ?Sized,
17727 {
17728 #[inline]
17729 fn encode(
17730 self,
17731 encoder: &mut ___E,
17732 out: &mut ::core::mem::MaybeUninit<crate::wire::RunnerRegistration<'static>>,
17733 _: (),
17734 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17735 ::fidl_next::munge!(let crate::wire::RunnerRegistration { table } = out);
17736
17737 let max_ord = self.__max_ordinal();
17738
17739 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17740 ::fidl_next::Wire::zero_padding(&mut out);
17741
17742 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17743 ::fidl_next::wire::Envelope,
17744 >(encoder, max_ord);
17745
17746 for i in 1..=max_ord {
17747 match i {
17748 3 => {
17749 if let Some(value) = &self.target_name {
17750 ::fidl_next::wire::Envelope::encode_value::<
17751 ::fidl_next::wire::String<'static>,
17752 ___E,
17753 >(
17754 value, preallocated.encoder, &mut out, 100
17755 )?;
17756 } else {
17757 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17758 }
17759 }
17760
17761 2 => {
17762 if let Some(value) = &self.source {
17763 ::fidl_next::wire::Envelope::encode_value::<
17764 crate::wire::Ref<'static>,
17765 ___E,
17766 >(
17767 value, preallocated.encoder, &mut out, ()
17768 )?;
17769 } else {
17770 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17771 }
17772 }
17773
17774 1 => {
17775 if let Some(value) = &self.source_name {
17776 ::fidl_next::wire::Envelope::encode_value::<
17777 ::fidl_next::wire::String<'static>,
17778 ___E,
17779 >(
17780 value, preallocated.encoder, &mut out, 100
17781 )?;
17782 } else {
17783 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17784 }
17785 }
17786
17787 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17788 }
17789 unsafe {
17790 preallocated.write_next(out.assume_init_ref());
17791 }
17792 }
17793
17794 ::fidl_next::wire::Table::encode_len(table, max_ord);
17795
17796 Ok(())
17797 }
17798 }
17799
17800 impl<'de> ::fidl_next::FromWire<crate::wire::RunnerRegistration<'de>> for RunnerRegistration {
17801 #[inline]
17802 fn from_wire(wire_: crate::wire::RunnerRegistration<'de>) -> Self {
17803 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
17804
17805 let source_name = wire_.table.get(1);
17806
17807 let source = wire_.table.get(2);
17808
17809 let target_name = wire_.table.get(3);
17810
17811 Self {
17812 source_name: source_name.map(|envelope| {
17813 ::fidl_next::FromWire::from_wire(unsafe {
17814 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17815 })
17816 }),
17817
17818 source: source.map(|envelope| {
17819 ::fidl_next::FromWire::from_wire(unsafe {
17820 envelope.read_unchecked::<crate::wire::Ref<'de>>()
17821 })
17822 }),
17823
17824 target_name: target_name.map(|envelope| {
17825 ::fidl_next::FromWire::from_wire(unsafe {
17826 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17827 })
17828 }),
17829 }
17830 }
17831 }
17832
17833 impl<'de> ::fidl_next::FromWireRef<crate::wire::RunnerRegistration<'de>> for RunnerRegistration {
17834 #[inline]
17835 fn from_wire_ref(wire: &crate::wire::RunnerRegistration<'de>) -> Self {
17836 Self {
17837 source_name: wire.table.get(1).map(|envelope| {
17838 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17839 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17840 })
17841 }),
17842
17843 source: wire.table.get(2).map(|envelope| {
17844 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17845 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17846 })
17847 }),
17848
17849 target_name: wire.table.get(3).map(|envelope| {
17850 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17851 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17852 })
17853 }),
17854 }
17855 }
17856 }
17857
17858 #[doc = " A mapping of URL scheme to resolver name.\n"]
17859 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17860 pub struct ResolverRegistration {
17861 pub resolver: ::core::option::Option<::std::string::String>,
17862
17863 pub source: ::core::option::Option<crate::natural::Ref>,
17864
17865 pub scheme: ::core::option::Option<::std::string::String>,
17866 }
17867
17868 impl ResolverRegistration {
17869 fn __max_ordinal(&self) -> usize {
17870 if self.scheme.is_some() {
17871 return 3;
17872 }
17873
17874 if self.source.is_some() {
17875 return 2;
17876 }
17877
17878 if self.resolver.is_some() {
17879 return 1;
17880 }
17881
17882 0
17883 }
17884 }
17885
17886 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolverRegistration<'static>, ___E>
17887 for ResolverRegistration
17888 where
17889 ___E: ::fidl_next::Encoder + ?Sized,
17890 {
17891 #[inline]
17892 fn encode(
17893 mut self,
17894 encoder: &mut ___E,
17895 out: &mut ::core::mem::MaybeUninit<crate::wire::ResolverRegistration<'static>>,
17896 _: (),
17897 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17898 ::fidl_next::munge!(let crate::wire::ResolverRegistration { table } = out);
17899
17900 let max_ord = self.__max_ordinal();
17901
17902 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17903 ::fidl_next::Wire::zero_padding(&mut out);
17904
17905 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17906 ::fidl_next::wire::Envelope,
17907 >(encoder, max_ord);
17908
17909 for i in 1..=max_ord {
17910 match i {
17911 3 => {
17912 if let Some(value) = self.scheme.take() {
17913 ::fidl_next::wire::Envelope::encode_value::<
17914 ::fidl_next::wire::String<'static>,
17915 ___E,
17916 >(
17917 value, preallocated.encoder, &mut out, 100
17918 )?;
17919 } else {
17920 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17921 }
17922 }
17923
17924 2 => {
17925 if let Some(value) = self.source.take() {
17926 ::fidl_next::wire::Envelope::encode_value::<
17927 crate::wire::Ref<'static>,
17928 ___E,
17929 >(
17930 value, preallocated.encoder, &mut out, ()
17931 )?;
17932 } else {
17933 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17934 }
17935 }
17936
17937 1 => {
17938 if let Some(value) = self.resolver.take() {
17939 ::fidl_next::wire::Envelope::encode_value::<
17940 ::fidl_next::wire::String<'static>,
17941 ___E,
17942 >(
17943 value, preallocated.encoder, &mut out, 100
17944 )?;
17945 } else {
17946 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17947 }
17948 }
17949
17950 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17951 }
17952 unsafe {
17953 preallocated.write_next(out.assume_init_ref());
17954 }
17955 }
17956
17957 ::fidl_next::wire::Table::encode_len(table, max_ord);
17958
17959 Ok(())
17960 }
17961 }
17962
17963 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolverRegistration<'static>, ___E>
17964 for &'a ResolverRegistration
17965 where
17966 ___E: ::fidl_next::Encoder + ?Sized,
17967 {
17968 #[inline]
17969 fn encode(
17970 self,
17971 encoder: &mut ___E,
17972 out: &mut ::core::mem::MaybeUninit<crate::wire::ResolverRegistration<'static>>,
17973 _: (),
17974 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17975 ::fidl_next::munge!(let crate::wire::ResolverRegistration { table } = out);
17976
17977 let max_ord = self.__max_ordinal();
17978
17979 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17980 ::fidl_next::Wire::zero_padding(&mut out);
17981
17982 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17983 ::fidl_next::wire::Envelope,
17984 >(encoder, max_ord);
17985
17986 for i in 1..=max_ord {
17987 match i {
17988 3 => {
17989 if let Some(value) = &self.scheme {
17990 ::fidl_next::wire::Envelope::encode_value::<
17991 ::fidl_next::wire::String<'static>,
17992 ___E,
17993 >(
17994 value, preallocated.encoder, &mut out, 100
17995 )?;
17996 } else {
17997 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17998 }
17999 }
18000
18001 2 => {
18002 if let Some(value) = &self.source {
18003 ::fidl_next::wire::Envelope::encode_value::<
18004 crate::wire::Ref<'static>,
18005 ___E,
18006 >(
18007 value, preallocated.encoder, &mut out, ()
18008 )?;
18009 } else {
18010 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18011 }
18012 }
18013
18014 1 => {
18015 if let Some(value) = &self.resolver {
18016 ::fidl_next::wire::Envelope::encode_value::<
18017 ::fidl_next::wire::String<'static>,
18018 ___E,
18019 >(
18020 value, preallocated.encoder, &mut out, 100
18021 )?;
18022 } else {
18023 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18024 }
18025 }
18026
18027 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18028 }
18029 unsafe {
18030 preallocated.write_next(out.assume_init_ref());
18031 }
18032 }
18033
18034 ::fidl_next::wire::Table::encode_len(table, max_ord);
18035
18036 Ok(())
18037 }
18038 }
18039
18040 impl<'de> ::fidl_next::FromWire<crate::wire::ResolverRegistration<'de>> for ResolverRegistration {
18041 #[inline]
18042 fn from_wire(wire_: crate::wire::ResolverRegistration<'de>) -> Self {
18043 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18044
18045 let resolver = wire_.table.get(1);
18046
18047 let source = wire_.table.get(2);
18048
18049 let scheme = wire_.table.get(3);
18050
18051 Self {
18052 resolver: resolver.map(|envelope| {
18053 ::fidl_next::FromWire::from_wire(unsafe {
18054 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18055 })
18056 }),
18057
18058 source: source.map(|envelope| {
18059 ::fidl_next::FromWire::from_wire(unsafe {
18060 envelope.read_unchecked::<crate::wire::Ref<'de>>()
18061 })
18062 }),
18063
18064 scheme: scheme.map(|envelope| {
18065 ::fidl_next::FromWire::from_wire(unsafe {
18066 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18067 })
18068 }),
18069 }
18070 }
18071 }
18072
18073 impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolverRegistration<'de>>
18074 for ResolverRegistration
18075 {
18076 #[inline]
18077 fn from_wire_ref(wire: &crate::wire::ResolverRegistration<'de>) -> Self {
18078 Self {
18079 resolver: wire.table.get(1).map(|envelope| {
18080 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18081 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18082 })
18083 }),
18084
18085 source: wire.table.get(2).map(|envelope| {
18086 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18087 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
18088 })
18089 }),
18090
18091 scheme: wire.table.get(3).map(|envelope| {
18092 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18093 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18094 })
18095 }),
18096 }
18097 }
18098 }
18099
18100 #[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"]
18101 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18102 pub struct DebugProtocolRegistration {
18103 pub source: ::core::option::Option<crate::natural::Ref>,
18104
18105 pub source_name: ::core::option::Option<::std::string::String>,
18106
18107 pub target_name: ::core::option::Option<::std::string::String>,
18108 }
18109
18110 impl DebugProtocolRegistration {
18111 fn __max_ordinal(&self) -> usize {
18112 if self.target_name.is_some() {
18113 return 3;
18114 }
18115
18116 if self.source_name.is_some() {
18117 return 2;
18118 }
18119
18120 if self.source.is_some() {
18121 return 1;
18122 }
18123
18124 0
18125 }
18126 }
18127
18128 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugProtocolRegistration<'static>, ___E>
18129 for DebugProtocolRegistration
18130 where
18131 ___E: ::fidl_next::Encoder + ?Sized,
18132 {
18133 #[inline]
18134 fn encode(
18135 mut self,
18136 encoder: &mut ___E,
18137 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugProtocolRegistration<'static>>,
18138 _: (),
18139 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18140 ::fidl_next::munge!(let crate::wire::DebugProtocolRegistration { table } = out);
18141
18142 let max_ord = self.__max_ordinal();
18143
18144 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18145 ::fidl_next::Wire::zero_padding(&mut out);
18146
18147 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18148 ::fidl_next::wire::Envelope,
18149 >(encoder, max_ord);
18150
18151 for i in 1..=max_ord {
18152 match i {
18153 3 => {
18154 if let Some(value) = self.target_name.take() {
18155 ::fidl_next::wire::Envelope::encode_value::<
18156 ::fidl_next::wire::String<'static>,
18157 ___E,
18158 >(
18159 value, preallocated.encoder, &mut out, 100
18160 )?;
18161 } else {
18162 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18163 }
18164 }
18165
18166 2 => {
18167 if let Some(value) = self.source_name.take() {
18168 ::fidl_next::wire::Envelope::encode_value::<
18169 ::fidl_next::wire::String<'static>,
18170 ___E,
18171 >(
18172 value, preallocated.encoder, &mut out, 100
18173 )?;
18174 } else {
18175 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18176 }
18177 }
18178
18179 1 => {
18180 if let Some(value) = self.source.take() {
18181 ::fidl_next::wire::Envelope::encode_value::<
18182 crate::wire::Ref<'static>,
18183 ___E,
18184 >(
18185 value, preallocated.encoder, &mut out, ()
18186 )?;
18187 } else {
18188 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18189 }
18190 }
18191
18192 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18193 }
18194 unsafe {
18195 preallocated.write_next(out.assume_init_ref());
18196 }
18197 }
18198
18199 ::fidl_next::wire::Table::encode_len(table, max_ord);
18200
18201 Ok(())
18202 }
18203 }
18204
18205 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugProtocolRegistration<'static>, ___E>
18206 for &'a DebugProtocolRegistration
18207 where
18208 ___E: ::fidl_next::Encoder + ?Sized,
18209 {
18210 #[inline]
18211 fn encode(
18212 self,
18213 encoder: &mut ___E,
18214 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugProtocolRegistration<'static>>,
18215 _: (),
18216 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18217 ::fidl_next::munge!(let crate::wire::DebugProtocolRegistration { table } = out);
18218
18219 let max_ord = self.__max_ordinal();
18220
18221 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18222 ::fidl_next::Wire::zero_padding(&mut out);
18223
18224 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18225 ::fidl_next::wire::Envelope,
18226 >(encoder, max_ord);
18227
18228 for i in 1..=max_ord {
18229 match i {
18230 3 => {
18231 if let Some(value) = &self.target_name {
18232 ::fidl_next::wire::Envelope::encode_value::<
18233 ::fidl_next::wire::String<'static>,
18234 ___E,
18235 >(
18236 value, preallocated.encoder, &mut out, 100
18237 )?;
18238 } else {
18239 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18240 }
18241 }
18242
18243 2 => {
18244 if let Some(value) = &self.source_name {
18245 ::fidl_next::wire::Envelope::encode_value::<
18246 ::fidl_next::wire::String<'static>,
18247 ___E,
18248 >(
18249 value, preallocated.encoder, &mut out, 100
18250 )?;
18251 } else {
18252 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18253 }
18254 }
18255
18256 1 => {
18257 if let Some(value) = &self.source {
18258 ::fidl_next::wire::Envelope::encode_value::<
18259 crate::wire::Ref<'static>,
18260 ___E,
18261 >(
18262 value, preallocated.encoder, &mut out, ()
18263 )?;
18264 } else {
18265 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18266 }
18267 }
18268
18269 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18270 }
18271 unsafe {
18272 preallocated.write_next(out.assume_init_ref());
18273 }
18274 }
18275
18276 ::fidl_next::wire::Table::encode_len(table, max_ord);
18277
18278 Ok(())
18279 }
18280 }
18281
18282 impl<'de> ::fidl_next::FromWire<crate::wire::DebugProtocolRegistration<'de>>
18283 for DebugProtocolRegistration
18284 {
18285 #[inline]
18286 fn from_wire(wire_: crate::wire::DebugProtocolRegistration<'de>) -> Self {
18287 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18288
18289 let source = wire_.table.get(1);
18290
18291 let source_name = wire_.table.get(2);
18292
18293 let target_name = wire_.table.get(3);
18294
18295 Self {
18296 source: source.map(|envelope| {
18297 ::fidl_next::FromWire::from_wire(unsafe {
18298 envelope.read_unchecked::<crate::wire::Ref<'de>>()
18299 })
18300 }),
18301
18302 source_name: source_name.map(|envelope| {
18303 ::fidl_next::FromWire::from_wire(unsafe {
18304 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18305 })
18306 }),
18307
18308 target_name: target_name.map(|envelope| {
18309 ::fidl_next::FromWire::from_wire(unsafe {
18310 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18311 })
18312 }),
18313 }
18314 }
18315 }
18316
18317 impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugProtocolRegistration<'de>>
18318 for DebugProtocolRegistration
18319 {
18320 #[inline]
18321 fn from_wire_ref(wire: &crate::wire::DebugProtocolRegistration<'de>) -> Self {
18322 Self {
18323 source: wire.table.get(1).map(|envelope| {
18324 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18325 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
18326 })
18327 }),
18328
18329 source_name: wire.table.get(2).map(|envelope| {
18330 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18331 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18332 })
18333 }),
18334
18335 target_name: wire.table.get(3).map(|envelope| {
18336 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18337 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18338 })
18339 }),
18340 }
18341 }
18342 }
18343
18344 #[doc = " Declares a capability registered in the debug section of an environment.\n"]
18345 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18346 pub enum DebugRegistration {
18347 Protocol(crate::natural::DebugProtocolRegistration),
18348
18349 UnknownOrdinal_(u64),
18350 }
18351
18352 impl DebugRegistration {
18353 pub fn is_unknown(&self) -> bool {
18354 #[allow(unreachable_patterns)]
18355 match self {
18356 Self::UnknownOrdinal_(_) => true,
18357 _ => false,
18358 }
18359 }
18360 }
18361
18362 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>
18363 for DebugRegistration
18364 where
18365 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
18366 ___E: ::fidl_next::Encoder,
18367 {
18368 #[inline]
18369 fn encode(
18370 self,
18371 encoder: &mut ___E,
18372 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugRegistration<'static>>,
18373 _: (),
18374 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18375 ::fidl_next::munge!(let crate::wire::DebugRegistration { raw, _phantom: _ } = out);
18376
18377 match self {
18378 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
18379 ___E,
18380 crate::wire::DebugProtocolRegistration<'static>,
18381 >(value, 1, encoder, raw, ())?,
18382
18383 Self::UnknownOrdinal_(ordinal) => {
18384 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
18385 }
18386 }
18387
18388 Ok(())
18389 }
18390 }
18391
18392 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>
18393 for &'a DebugRegistration
18394 where
18395 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
18396 ___E: ::fidl_next::Encoder,
18397 {
18398 #[inline]
18399 fn encode(
18400 self,
18401 encoder: &mut ___E,
18402 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugRegistration<'static>>,
18403 _: (),
18404 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18405 ::fidl_next::munge!(let crate::wire::DebugRegistration { raw, _phantom: _ } = out);
18406
18407 match self {
18408 DebugRegistration::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
18409 ___E,
18410 crate::wire::DebugProtocolRegistration<'static>,
18411 >(value, 1, encoder, raw, ())?,
18412
18413 DebugRegistration::UnknownOrdinal_(ordinal) => {
18414 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
18415 }
18416 }
18417
18418 Ok(())
18419 }
18420 }
18421
18422 unsafe impl<___E>
18423 ::fidl_next::EncodeOption<crate::wire_optional::DebugRegistration<'static>, ___E>
18424 for DebugRegistration
18425 where
18426 ___E: ?Sized,
18427 DebugRegistration: ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>,
18428 {
18429 #[inline]
18430 fn encode_option(
18431 this: ::core::option::Option<Self>,
18432 encoder: &mut ___E,
18433 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::DebugRegistration<'static>>,
18434 _: (),
18435 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18436 ::fidl_next::munge!(let crate::wire_optional::DebugRegistration { raw, _phantom: _ } = &mut *out);
18437
18438 if let Some(inner) = this {
18439 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
18440 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
18441 } else {
18442 ::fidl_next::wire::Union::encode_absent(raw);
18443 }
18444
18445 Ok(())
18446 }
18447 }
18448
18449 unsafe impl<'a, ___E>
18450 ::fidl_next::EncodeOption<crate::wire_optional::DebugRegistration<'static>, ___E>
18451 for &'a DebugRegistration
18452 where
18453 ___E: ?Sized,
18454 &'a DebugRegistration: ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>,
18455 {
18456 #[inline]
18457 fn encode_option(
18458 this: ::core::option::Option<Self>,
18459 encoder: &mut ___E,
18460 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::DebugRegistration<'static>>,
18461 _: (),
18462 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18463 ::fidl_next::munge!(let crate::wire_optional::DebugRegistration { raw, _phantom: _ } = &mut *out);
18464
18465 if let Some(inner) = this {
18466 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
18467 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
18468 } else {
18469 ::fidl_next::wire::Union::encode_absent(raw);
18470 }
18471
18472 Ok(())
18473 }
18474 }
18475
18476 impl<'de> ::fidl_next::FromWire<crate::wire::DebugRegistration<'de>> for DebugRegistration {
18477 #[inline]
18478 fn from_wire(wire: crate::wire::DebugRegistration<'de>) -> Self {
18479 let wire = ::core::mem::ManuallyDrop::new(wire);
18480 match wire.raw.ordinal() {
18481 1 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
18482 wire.raw.get().read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
18483 })),
18484
18485 ord => return Self::UnknownOrdinal_(ord as u64),
18486 }
18487 }
18488 }
18489
18490 impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugRegistration<'de>> for DebugRegistration {
18491 #[inline]
18492 fn from_wire_ref(wire: &crate::wire::DebugRegistration<'de>) -> Self {
18493 match wire.raw.ordinal() {
18494 1 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18495 wire.raw.get().deref_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
18496 })),
18497
18498 ord => return Self::UnknownOrdinal_(ord as u64),
18499 }
18500 }
18501 }
18502
18503 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::DebugRegistration<'de>>
18504 for DebugRegistration
18505 {
18506 #[inline]
18507 fn from_wire_option(
18508 wire: crate::wire_optional::DebugRegistration<'de>,
18509 ) -> ::core::option::Option<Self> {
18510 if let Some(inner) = wire.into_option() {
18511 Some(::fidl_next::FromWire::from_wire(inner))
18512 } else {
18513 None
18514 }
18515 }
18516 }
18517
18518 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::DebugRegistration<'de>>
18519 for Box<DebugRegistration>
18520 {
18521 #[inline]
18522 fn from_wire_option(
18523 wire: crate::wire_optional::DebugRegistration<'de>,
18524 ) -> ::core::option::Option<Self> {
18525 <DebugRegistration as ::fidl_next::FromWireOption<
18526 crate::wire_optional::DebugRegistration<'de>,
18527 >>::from_wire_option(wire)
18528 .map(Box::new)
18529 }
18530 }
18531
18532 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::DebugRegistration<'de>>
18533 for Box<DebugRegistration>
18534 {
18535 #[inline]
18536 fn from_wire_option_ref(
18537 wire: &crate::wire_optional::DebugRegistration<'de>,
18538 ) -> ::core::option::Option<Self> {
18539 if let Some(inner) = wire.as_ref() {
18540 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
18541 } else {
18542 None
18543 }
18544 }
18545 }
18546
18547 #[doc = " Declares an environment which configures a realm.\n"]
18548 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18549 pub struct Environment {
18550 pub name: ::core::option::Option<::std::string::String>,
18551
18552 pub extends: ::core::option::Option<crate::natural::EnvironmentExtends>,
18553
18554 pub runners: ::core::option::Option<::std::vec::Vec<crate::natural::RunnerRegistration>>,
18555
18556 pub resolvers:
18557 ::core::option::Option<::std::vec::Vec<crate::natural::ResolverRegistration>>,
18558
18559 pub debug_capabilities:
18560 ::core::option::Option<::std::vec::Vec<crate::natural::DebugRegistration>>,
18561
18562 pub stop_timeout_ms: ::core::option::Option<u32>,
18563 }
18564
18565 impl Environment {
18566 fn __max_ordinal(&self) -> usize {
18567 if self.stop_timeout_ms.is_some() {
18568 return 6;
18569 }
18570
18571 if self.debug_capabilities.is_some() {
18572 return 5;
18573 }
18574
18575 if self.resolvers.is_some() {
18576 return 4;
18577 }
18578
18579 if self.runners.is_some() {
18580 return 3;
18581 }
18582
18583 if self.extends.is_some() {
18584 return 2;
18585 }
18586
18587 if self.name.is_some() {
18588 return 1;
18589 }
18590
18591 0
18592 }
18593 }
18594
18595 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Environment<'static>, ___E> for Environment
18596 where
18597 ___E: ::fidl_next::Encoder + ?Sized,
18598 {
18599 #[inline]
18600 fn encode(
18601 mut self,
18602 encoder: &mut ___E,
18603 out: &mut ::core::mem::MaybeUninit<crate::wire::Environment<'static>>,
18604 _: (),
18605 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18606 ::fidl_next::munge!(let crate::wire::Environment { table } = out);
18607
18608 let max_ord = self.__max_ordinal();
18609
18610 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18611 ::fidl_next::Wire::zero_padding(&mut out);
18612
18613 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18614 ::fidl_next::wire::Envelope,
18615 >(encoder, max_ord);
18616
18617 for i in 1..=max_ord {
18618 match i {
18619 6 => {
18620 if let Some(value) = self.stop_timeout_ms.take() {
18621 ::fidl_next::wire::Envelope::encode_value::<
18622 ::fidl_next::wire::Uint32,
18623 ___E,
18624 >(
18625 value, preallocated.encoder, &mut out, ()
18626 )?;
18627 } else {
18628 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18629 }
18630 }
18631
18632 5 => {
18633 if let Some(value) = self.debug_capabilities.take() {
18634 ::fidl_next::wire::Envelope::encode_value::<
18635 ::fidl_next::wire::Vector<
18636 'static,
18637 crate::wire::DebugRegistration<'static>,
18638 >,
18639 ___E,
18640 >(
18641 value, preallocated.encoder, &mut out, (4294967295, ())
18642 )?;
18643 } else {
18644 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18645 }
18646 }
18647
18648 4 => {
18649 if let Some(value) = self.resolvers.take() {
18650 ::fidl_next::wire::Envelope::encode_value::<
18651 ::fidl_next::wire::Vector<
18652 'static,
18653 crate::wire::ResolverRegistration<'static>,
18654 >,
18655 ___E,
18656 >(
18657 value, preallocated.encoder, &mut out, (4294967295, ())
18658 )?;
18659 } else {
18660 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18661 }
18662 }
18663
18664 3 => {
18665 if let Some(value) = self.runners.take() {
18666 ::fidl_next::wire::Envelope::encode_value::<
18667 ::fidl_next::wire::Vector<
18668 'static,
18669 crate::wire::RunnerRegistration<'static>,
18670 >,
18671 ___E,
18672 >(
18673 value, preallocated.encoder, &mut out, (4294967295, ())
18674 )?;
18675 } else {
18676 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18677 }
18678 }
18679
18680 2 => {
18681 if let Some(value) = self.extends.take() {
18682 ::fidl_next::wire::Envelope::encode_value::<
18683 crate::wire::EnvironmentExtends,
18684 ___E,
18685 >(
18686 value, preallocated.encoder, &mut out, ()
18687 )?;
18688 } else {
18689 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18690 }
18691 }
18692
18693 1 => {
18694 if let Some(value) = self.name.take() {
18695 ::fidl_next::wire::Envelope::encode_value::<
18696 ::fidl_next::wire::String<'static>,
18697 ___E,
18698 >(
18699 value, preallocated.encoder, &mut out, 100
18700 )?;
18701 } else {
18702 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18703 }
18704 }
18705
18706 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18707 }
18708 unsafe {
18709 preallocated.write_next(out.assume_init_ref());
18710 }
18711 }
18712
18713 ::fidl_next::wire::Table::encode_len(table, max_ord);
18714
18715 Ok(())
18716 }
18717 }
18718
18719 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Environment<'static>, ___E>
18720 for &'a Environment
18721 where
18722 ___E: ::fidl_next::Encoder + ?Sized,
18723 {
18724 #[inline]
18725 fn encode(
18726 self,
18727 encoder: &mut ___E,
18728 out: &mut ::core::mem::MaybeUninit<crate::wire::Environment<'static>>,
18729 _: (),
18730 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18731 ::fidl_next::munge!(let crate::wire::Environment { table } = out);
18732
18733 let max_ord = self.__max_ordinal();
18734
18735 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18736 ::fidl_next::Wire::zero_padding(&mut out);
18737
18738 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18739 ::fidl_next::wire::Envelope,
18740 >(encoder, max_ord);
18741
18742 for i in 1..=max_ord {
18743 match i {
18744 6 => {
18745 if let Some(value) = &self.stop_timeout_ms {
18746 ::fidl_next::wire::Envelope::encode_value::<
18747 ::fidl_next::wire::Uint32,
18748 ___E,
18749 >(
18750 value, preallocated.encoder, &mut out, ()
18751 )?;
18752 } else {
18753 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18754 }
18755 }
18756
18757 5 => {
18758 if let Some(value) = &self.debug_capabilities {
18759 ::fidl_next::wire::Envelope::encode_value::<
18760 ::fidl_next::wire::Vector<
18761 'static,
18762 crate::wire::DebugRegistration<'static>,
18763 >,
18764 ___E,
18765 >(
18766 value, preallocated.encoder, &mut out, (4294967295, ())
18767 )?;
18768 } else {
18769 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18770 }
18771 }
18772
18773 4 => {
18774 if let Some(value) = &self.resolvers {
18775 ::fidl_next::wire::Envelope::encode_value::<
18776 ::fidl_next::wire::Vector<
18777 'static,
18778 crate::wire::ResolverRegistration<'static>,
18779 >,
18780 ___E,
18781 >(
18782 value, preallocated.encoder, &mut out, (4294967295, ())
18783 )?;
18784 } else {
18785 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18786 }
18787 }
18788
18789 3 => {
18790 if let Some(value) = &self.runners {
18791 ::fidl_next::wire::Envelope::encode_value::<
18792 ::fidl_next::wire::Vector<
18793 'static,
18794 crate::wire::RunnerRegistration<'static>,
18795 >,
18796 ___E,
18797 >(
18798 value, preallocated.encoder, &mut out, (4294967295, ())
18799 )?;
18800 } else {
18801 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18802 }
18803 }
18804
18805 2 => {
18806 if let Some(value) = &self.extends {
18807 ::fidl_next::wire::Envelope::encode_value::<
18808 crate::wire::EnvironmentExtends,
18809 ___E,
18810 >(
18811 value, preallocated.encoder, &mut out, ()
18812 )?;
18813 } else {
18814 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18815 }
18816 }
18817
18818 1 => {
18819 if let Some(value) = &self.name {
18820 ::fidl_next::wire::Envelope::encode_value::<
18821 ::fidl_next::wire::String<'static>,
18822 ___E,
18823 >(
18824 value, preallocated.encoder, &mut out, 100
18825 )?;
18826 } else {
18827 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18828 }
18829 }
18830
18831 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18832 }
18833 unsafe {
18834 preallocated.write_next(out.assume_init_ref());
18835 }
18836 }
18837
18838 ::fidl_next::wire::Table::encode_len(table, max_ord);
18839
18840 Ok(())
18841 }
18842 }
18843
18844 impl<'de> ::fidl_next::FromWire<crate::wire::Environment<'de>> for Environment {
18845 #[inline]
18846 fn from_wire(wire_: crate::wire::Environment<'de>) -> Self {
18847 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18848
18849 let name = wire_.table.get(1);
18850
18851 let extends = wire_.table.get(2);
18852
18853 let runners = wire_.table.get(3);
18854
18855 let resolvers = wire_.table.get(4);
18856
18857 let debug_capabilities = wire_.table.get(5);
18858
18859 let stop_timeout_ms = wire_.table.get(6);
18860
18861 Self {
18862
18863
18864 name: name.map(|envelope| ::fidl_next::FromWire::from_wire(
18865 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
18866 )),
18867
18868
18869 extends: extends.map(|envelope| ::fidl_next::FromWire::from_wire(
18870 unsafe { envelope.read_unchecked::<crate::wire::EnvironmentExtends>() }
18871 )),
18872
18873
18874 runners: runners.map(|envelope| ::fidl_next::FromWire::from_wire(
18875 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>>() }
18876 )),
18877
18878
18879 resolvers: resolvers.map(|envelope| ::fidl_next::FromWire::from_wire(
18880 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>>() }
18881 )),
18882
18883
18884 debug_capabilities: debug_capabilities.map(|envelope| ::fidl_next::FromWire::from_wire(
18885 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>>() }
18886 )),
18887
18888
18889 stop_timeout_ms: stop_timeout_ms.map(|envelope| ::fidl_next::FromWire::from_wire(
18890 unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() }
18891 )),
18892
18893 }
18894 }
18895 }
18896
18897 impl<'de> ::fidl_next::FromWireRef<crate::wire::Environment<'de>> for Environment {
18898 #[inline]
18899 fn from_wire_ref(wire: &crate::wire::Environment<'de>) -> Self {
18900 Self {
18901
18902
18903 name: wire.table.get(1)
18904 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
18905 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
18906 )),
18907
18908
18909 extends: wire.table.get(2)
18910 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
18911 unsafe { envelope.deref_unchecked::<crate::wire::EnvironmentExtends>() }
18912 )),
18913
18914
18915 runners: wire.table.get(3)
18916 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
18917 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>>() }
18918 )),
18919
18920
18921 resolvers: wire.table.get(4)
18922 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
18923 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>>() }
18924 )),
18925
18926
18927 debug_capabilities: wire.table.get(5)
18928 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
18929 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>>() }
18930 )),
18931
18932
18933 stop_timeout_ms: wire.table.get(6)
18934 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
18935 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Uint32>() }
18936 )),
18937
18938 }
18939 }
18940 }
18941
18942 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18943 pub struct ConfigSourceCapabilities {}
18944
18945 impl ConfigSourceCapabilities {
18946 fn __max_ordinal(&self) -> usize {
18947 0
18948 }
18949 }
18950
18951 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSourceCapabilities<'static>, ___E>
18952 for ConfigSourceCapabilities
18953 where
18954 ___E: ::fidl_next::Encoder + ?Sized,
18955 {
18956 #[inline]
18957 fn encode(
18958 mut self,
18959 encoder: &mut ___E,
18960 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSourceCapabilities<'static>>,
18961 _: (),
18962 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18963 ::fidl_next::munge!(let crate::wire::ConfigSourceCapabilities { table } = out);
18964
18965 let max_ord = self.__max_ordinal();
18966
18967 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18968 ::fidl_next::Wire::zero_padding(&mut out);
18969
18970 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18971 ::fidl_next::wire::Envelope,
18972 >(encoder, max_ord);
18973
18974 for i in 1..=max_ord {
18975 match i {
18976 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18977 }
18978 unsafe {
18979 preallocated.write_next(out.assume_init_ref());
18980 }
18981 }
18982
18983 ::fidl_next::wire::Table::encode_len(table, max_ord);
18984
18985 Ok(())
18986 }
18987 }
18988
18989 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSourceCapabilities<'static>, ___E>
18990 for &'a ConfigSourceCapabilities
18991 where
18992 ___E: ::fidl_next::Encoder + ?Sized,
18993 {
18994 #[inline]
18995 fn encode(
18996 self,
18997 encoder: &mut ___E,
18998 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSourceCapabilities<'static>>,
18999 _: (),
19000 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19001 ::fidl_next::munge!(let crate::wire::ConfigSourceCapabilities { table } = out);
19002
19003 let max_ord = self.__max_ordinal();
19004
19005 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19006 ::fidl_next::Wire::zero_padding(&mut out);
19007
19008 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19009 ::fidl_next::wire::Envelope,
19010 >(encoder, max_ord);
19011
19012 for i in 1..=max_ord {
19013 match i {
19014 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19015 }
19016 unsafe {
19017 preallocated.write_next(out.assume_init_ref());
19018 }
19019 }
19020
19021 ::fidl_next::wire::Table::encode_len(table, max_ord);
19022
19023 Ok(())
19024 }
19025 }
19026
19027 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSourceCapabilities<'de>>
19028 for ConfigSourceCapabilities
19029 {
19030 #[inline]
19031 fn from_wire(wire_: crate::wire::ConfigSourceCapabilities<'de>) -> Self {
19032 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
19033
19034 Self {}
19035 }
19036 }
19037
19038 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSourceCapabilities<'de>>
19039 for ConfigSourceCapabilities
19040 {
19041 #[inline]
19042 fn from_wire_ref(wire: &crate::wire::ConfigSourceCapabilities<'de>) -> Self {
19043 Self {}
19044 }
19045 }
19046
19047 #[doc = " Strategies available for resolving configuration values.\n"]
19048 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19049 pub enum ConfigValueSource {
19050 PackagePath(::std::string::String),
19051
19052 Capabilities(crate::natural::ConfigSourceCapabilities),
19053
19054 UnknownOrdinal_(u64),
19055 }
19056
19057 impl ConfigValueSource {
19058 pub fn is_unknown(&self) -> bool {
19059 #[allow(unreachable_patterns)]
19060 match self {
19061 Self::UnknownOrdinal_(_) => true,
19062 _ => false,
19063 }
19064 }
19065 }
19066
19067 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>
19068 for ConfigValueSource
19069 where
19070 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
19071 ___E: ::fidl_next::Encoder,
19072 {
19073 #[inline]
19074 fn encode(
19075 self,
19076 encoder: &mut ___E,
19077 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSource<'static>>,
19078 _: (),
19079 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19080 ::fidl_next::munge!(let crate::wire::ConfigValueSource { raw, _phantom: _ } = out);
19081
19082 match self {
19083 Self::PackagePath(value) => ::fidl_next::wire::Union::encode_as::<
19084 ___E,
19085 ::fidl_next::wire::String<'static>,
19086 >(value, 1, encoder, raw, 4294967295)?,
19087
19088 Self::Capabilities(value) => ::fidl_next::wire::Union::encode_as::<
19089 ___E,
19090 crate::wire::ConfigSourceCapabilities<'static>,
19091 >(value, 2, encoder, raw, ())?,
19092
19093 Self::UnknownOrdinal_(ordinal) => {
19094 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
19095 }
19096 }
19097
19098 Ok(())
19099 }
19100 }
19101
19102 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>
19103 for &'a ConfigValueSource
19104 where
19105 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
19106 ___E: ::fidl_next::Encoder,
19107 {
19108 #[inline]
19109 fn encode(
19110 self,
19111 encoder: &mut ___E,
19112 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSource<'static>>,
19113 _: (),
19114 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19115 ::fidl_next::munge!(let crate::wire::ConfigValueSource { raw, _phantom: _ } = out);
19116
19117 match self {
19118 ConfigValueSource::PackagePath(value) => {
19119 ::fidl_next::wire::Union::encode_as::<___E, ::fidl_next::wire::String<'static>>(
19120 value, 1, encoder, raw, 4294967295,
19121 )?
19122 }
19123
19124 ConfigValueSource::Capabilities(value) => {
19125 ::fidl_next::wire::Union::encode_as::<
19126 ___E,
19127 crate::wire::ConfigSourceCapabilities<'static>,
19128 >(value, 2, encoder, raw, ())?
19129 }
19130
19131 ConfigValueSource::UnknownOrdinal_(ordinal) => {
19132 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
19133 }
19134 }
19135
19136 Ok(())
19137 }
19138 }
19139
19140 unsafe impl<___E>
19141 ::fidl_next::EncodeOption<crate::wire_optional::ConfigValueSource<'static>, ___E>
19142 for ConfigValueSource
19143 where
19144 ___E: ?Sized,
19145 ConfigValueSource: ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>,
19146 {
19147 #[inline]
19148 fn encode_option(
19149 this: ::core::option::Option<Self>,
19150 encoder: &mut ___E,
19151 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValueSource<'static>>,
19152 _: (),
19153 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19154 ::fidl_next::munge!(let crate::wire_optional::ConfigValueSource { raw, _phantom: _ } = &mut *out);
19155
19156 if let Some(inner) = this {
19157 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19158 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19159 } else {
19160 ::fidl_next::wire::Union::encode_absent(raw);
19161 }
19162
19163 Ok(())
19164 }
19165 }
19166
19167 unsafe impl<'a, ___E>
19168 ::fidl_next::EncodeOption<crate::wire_optional::ConfigValueSource<'static>, ___E>
19169 for &'a ConfigValueSource
19170 where
19171 ___E: ?Sized,
19172 &'a ConfigValueSource: ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>,
19173 {
19174 #[inline]
19175 fn encode_option(
19176 this: ::core::option::Option<Self>,
19177 encoder: &mut ___E,
19178 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValueSource<'static>>,
19179 _: (),
19180 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19181 ::fidl_next::munge!(let crate::wire_optional::ConfigValueSource { raw, _phantom: _ } = &mut *out);
19182
19183 if let Some(inner) = this {
19184 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19185 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19186 } else {
19187 ::fidl_next::wire::Union::encode_absent(raw);
19188 }
19189
19190 Ok(())
19191 }
19192 }
19193
19194 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValueSource<'de>> for ConfigValueSource {
19195 #[inline]
19196 fn from_wire(wire: crate::wire::ConfigValueSource<'de>) -> Self {
19197 let wire = ::core::mem::ManuallyDrop::new(wire);
19198 match wire.raw.ordinal() {
19199 1 => Self::PackagePath(::fidl_next::FromWire::from_wire(unsafe {
19200 wire.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
19201 })),
19202
19203 2 => Self::Capabilities(::fidl_next::FromWire::from_wire(unsafe {
19204 wire.raw.get().read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
19205 })),
19206
19207 ord => return Self::UnknownOrdinal_(ord as u64),
19208 }
19209 }
19210 }
19211
19212 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValueSource<'de>> for ConfigValueSource {
19213 #[inline]
19214 fn from_wire_ref(wire: &crate::wire::ConfigValueSource<'de>) -> Self {
19215 match wire.raw.ordinal() {
19216 1 => Self::PackagePath(::fidl_next::FromWireRef::from_wire_ref(unsafe {
19217 wire.raw.get().deref_unchecked::<::fidl_next::wire::String<'de>>()
19218 })),
19219
19220 2 => Self::Capabilities(::fidl_next::FromWireRef::from_wire_ref(unsafe {
19221 wire.raw.get().deref_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
19222 })),
19223
19224 ord => return Self::UnknownOrdinal_(ord as u64),
19225 }
19226 }
19227 }
19228
19229 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValueSource<'de>>
19230 for ConfigValueSource
19231 {
19232 #[inline]
19233 fn from_wire_option(
19234 wire: crate::wire_optional::ConfigValueSource<'de>,
19235 ) -> ::core::option::Option<Self> {
19236 if let Some(inner) = wire.into_option() {
19237 Some(::fidl_next::FromWire::from_wire(inner))
19238 } else {
19239 None
19240 }
19241 }
19242 }
19243
19244 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValueSource<'de>>
19245 for Box<ConfigValueSource>
19246 {
19247 #[inline]
19248 fn from_wire_option(
19249 wire: crate::wire_optional::ConfigValueSource<'de>,
19250 ) -> ::core::option::Option<Self> {
19251 <ConfigValueSource as ::fidl_next::FromWireOption<
19252 crate::wire_optional::ConfigValueSource<'de>,
19253 >>::from_wire_option(wire)
19254 .map(Box::new)
19255 }
19256 }
19257
19258 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigValueSource<'de>>
19259 for Box<ConfigValueSource>
19260 {
19261 #[inline]
19262 fn from_wire_option_ref(
19263 wire: &crate::wire_optional::ConfigValueSource<'de>,
19264 ) -> ::core::option::Option<Self> {
19265 if let Some(inner) = wire.as_ref() {
19266 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
19267 } else {
19268 None
19269 }
19270 }
19271 }
19272
19273 #[doc = " The schema of a component\'s configuration interface.\n"]
19274 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19275 pub struct ConfigSchema {
19276 pub fields: ::core::option::Option<::std::vec::Vec<crate::natural::ConfigField>>,
19277
19278 pub checksum: ::core::option::Option<crate::natural::ConfigChecksum>,
19279
19280 pub value_source: ::core::option::Option<crate::natural::ConfigValueSource>,
19281 }
19282
19283 impl ConfigSchema {
19284 fn __max_ordinal(&self) -> usize {
19285 if self.value_source.is_some() {
19286 return 3;
19287 }
19288
19289 if self.checksum.is_some() {
19290 return 2;
19291 }
19292
19293 if self.fields.is_some() {
19294 return 1;
19295 }
19296
19297 0
19298 }
19299 }
19300
19301 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSchema<'static>, ___E> for ConfigSchema
19302 where
19303 ___E: ::fidl_next::Encoder + ?Sized,
19304 {
19305 #[inline]
19306 fn encode(
19307 mut self,
19308 encoder: &mut ___E,
19309 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSchema<'static>>,
19310 _: (),
19311 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19312 ::fidl_next::munge!(let crate::wire::ConfigSchema { table } = out);
19313
19314 let max_ord = self.__max_ordinal();
19315
19316 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19317 ::fidl_next::Wire::zero_padding(&mut out);
19318
19319 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19320 ::fidl_next::wire::Envelope,
19321 >(encoder, max_ord);
19322
19323 for i in 1..=max_ord {
19324 match i {
19325 3 => {
19326 if let Some(value) = self.value_source.take() {
19327 ::fidl_next::wire::Envelope::encode_value::<
19328 crate::wire::ConfigValueSource<'static>,
19329 ___E,
19330 >(
19331 value, preallocated.encoder, &mut out, ()
19332 )?;
19333 } else {
19334 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19335 }
19336 }
19337
19338 2 => {
19339 if let Some(value) = self.checksum.take() {
19340 ::fidl_next::wire::Envelope::encode_value::<
19341 crate::wire::ConfigChecksum<'static>,
19342 ___E,
19343 >(
19344 value, preallocated.encoder, &mut out, ()
19345 )?;
19346 } else {
19347 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19348 }
19349 }
19350
19351 1 => {
19352 if let Some(value) = self.fields.take() {
19353 ::fidl_next::wire::Envelope::encode_value::<
19354 ::fidl_next::wire::Vector<
19355 'static,
19356 crate::wire::ConfigField<'static>,
19357 >,
19358 ___E,
19359 >(
19360 value, preallocated.encoder, &mut out, (4294967295, ())
19361 )?;
19362 } else {
19363 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19364 }
19365 }
19366
19367 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19368 }
19369 unsafe {
19370 preallocated.write_next(out.assume_init_ref());
19371 }
19372 }
19373
19374 ::fidl_next::wire::Table::encode_len(table, max_ord);
19375
19376 Ok(())
19377 }
19378 }
19379
19380 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSchema<'static>, ___E>
19381 for &'a ConfigSchema
19382 where
19383 ___E: ::fidl_next::Encoder + ?Sized,
19384 {
19385 #[inline]
19386 fn encode(
19387 self,
19388 encoder: &mut ___E,
19389 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSchema<'static>>,
19390 _: (),
19391 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19392 ::fidl_next::munge!(let crate::wire::ConfigSchema { table } = out);
19393
19394 let max_ord = self.__max_ordinal();
19395
19396 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19397 ::fidl_next::Wire::zero_padding(&mut out);
19398
19399 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19400 ::fidl_next::wire::Envelope,
19401 >(encoder, max_ord);
19402
19403 for i in 1..=max_ord {
19404 match i {
19405 3 => {
19406 if let Some(value) = &self.value_source {
19407 ::fidl_next::wire::Envelope::encode_value::<
19408 crate::wire::ConfigValueSource<'static>,
19409 ___E,
19410 >(
19411 value, preallocated.encoder, &mut out, ()
19412 )?;
19413 } else {
19414 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19415 }
19416 }
19417
19418 2 => {
19419 if let Some(value) = &self.checksum {
19420 ::fidl_next::wire::Envelope::encode_value::<
19421 crate::wire::ConfigChecksum<'static>,
19422 ___E,
19423 >(
19424 value, preallocated.encoder, &mut out, ()
19425 )?;
19426 } else {
19427 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19428 }
19429 }
19430
19431 1 => {
19432 if let Some(value) = &self.fields {
19433 ::fidl_next::wire::Envelope::encode_value::<
19434 ::fidl_next::wire::Vector<
19435 'static,
19436 crate::wire::ConfigField<'static>,
19437 >,
19438 ___E,
19439 >(
19440 value, preallocated.encoder, &mut out, (4294967295, ())
19441 )?;
19442 } else {
19443 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19444 }
19445 }
19446
19447 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19448 }
19449 unsafe {
19450 preallocated.write_next(out.assume_init_ref());
19451 }
19452 }
19453
19454 ::fidl_next::wire::Table::encode_len(table, max_ord);
19455
19456 Ok(())
19457 }
19458 }
19459
19460 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSchema<'de>> for ConfigSchema {
19461 #[inline]
19462 fn from_wire(wire_: crate::wire::ConfigSchema<'de>) -> Self {
19463 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
19464
19465 let fields = wire_.table.get(1);
19466
19467 let checksum = wire_.table.get(2);
19468
19469 let value_source = wire_.table.get(3);
19470
19471 Self {
19472
19473
19474 fields: fields.map(|envelope| ::fidl_next::FromWire::from_wire(
19475 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>() }
19476 )),
19477
19478
19479 checksum: checksum.map(|envelope| ::fidl_next::FromWire::from_wire(
19480 unsafe { envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>() }
19481 )),
19482
19483
19484 value_source: value_source.map(|envelope| ::fidl_next::FromWire::from_wire(
19485 unsafe { envelope.read_unchecked::<crate::wire::ConfigValueSource<'de>>() }
19486 )),
19487
19488 }
19489 }
19490 }
19491
19492 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSchema<'de>> for ConfigSchema {
19493 #[inline]
19494 fn from_wire_ref(wire: &crate::wire::ConfigSchema<'de>) -> Self {
19495 Self {
19496
19497
19498 fields: wire.table.get(1)
19499 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19500 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>() }
19501 )),
19502
19503
19504 checksum: wire.table.get(2)
19505 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19506 unsafe { envelope.deref_unchecked::<crate::wire::ConfigChecksum<'de>>() }
19507 )),
19508
19509
19510 value_source: wire.table.get(3)
19511 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19512 unsafe { envelope.deref_unchecked::<crate::wire::ConfigValueSource<'de>>() }
19513 )),
19514
19515 }
19516 }
19517 }
19518
19519 #[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"]
19520 #[derive(Debug, Default, Clone, PartialEq)]
19521 pub struct Component {
19522 pub program: ::core::option::Option<crate::natural::Program>,
19523
19524 pub uses: ::core::option::Option<::std::vec::Vec<crate::natural::Use>>,
19525
19526 pub exposes: ::core::option::Option<::std::vec::Vec<crate::natural::Expose>>,
19527
19528 pub offers: ::core::option::Option<::std::vec::Vec<crate::natural::Offer>>,
19529
19530 pub capabilities: ::core::option::Option<::std::vec::Vec<crate::natural::Capability>>,
19531
19532 pub children: ::core::option::Option<::std::vec::Vec<crate::natural::Child>>,
19533
19534 pub collections: ::core::option::Option<::std::vec::Vec<crate::natural::Collection>>,
19535
19536 pub environments: ::core::option::Option<::std::vec::Vec<crate::natural::Environment>>,
19537
19538 pub facets: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
19539
19540 pub config: ::core::option::Option<crate::natural::ConfigSchema>,
19541
19542 pub debug_info: ::core::option::Option<crate::natural::DebugInfo>,
19543 }
19544
19545 impl Component {
19546 fn __max_ordinal(&self) -> usize {
19547 if self.debug_info.is_some() {
19548 return 11;
19549 }
19550
19551 if self.config.is_some() {
19552 return 10;
19553 }
19554
19555 if self.facets.is_some() {
19556 return 9;
19557 }
19558
19559 if self.environments.is_some() {
19560 return 8;
19561 }
19562
19563 if self.collections.is_some() {
19564 return 7;
19565 }
19566
19567 if self.children.is_some() {
19568 return 6;
19569 }
19570
19571 if self.capabilities.is_some() {
19572 return 5;
19573 }
19574
19575 if self.offers.is_some() {
19576 return 4;
19577 }
19578
19579 if self.exposes.is_some() {
19580 return 3;
19581 }
19582
19583 if self.uses.is_some() {
19584 return 2;
19585 }
19586
19587 if self.program.is_some() {
19588 return 1;
19589 }
19590
19591 0
19592 }
19593 }
19594
19595 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Component<'static>, ___E> for Component
19596 where
19597 ___E: ::fidl_next::Encoder + ?Sized,
19598 {
19599 #[inline]
19600 fn encode(
19601 mut self,
19602 encoder: &mut ___E,
19603 out: &mut ::core::mem::MaybeUninit<crate::wire::Component<'static>>,
19604 _: (),
19605 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19606 ::fidl_next::munge!(let crate::wire::Component { table } = out);
19607
19608 let max_ord = self.__max_ordinal();
19609
19610 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19611 ::fidl_next::Wire::zero_padding(&mut out);
19612
19613 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19614 ::fidl_next::wire::Envelope,
19615 >(encoder, max_ord);
19616
19617 for i in 1..=max_ord {
19618 match i {
19619 11 => {
19620 if let Some(value) = self.debug_info.take() {
19621 ::fidl_next::wire::Envelope::encode_value::<
19622 crate::wire::DebugInfo<'static>,
19623 ___E,
19624 >(
19625 value, preallocated.encoder, &mut out, ()
19626 )?;
19627 } else {
19628 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19629 }
19630 }
19631
19632 10 => {
19633 if let Some(value) = self.config.take() {
19634 ::fidl_next::wire::Envelope::encode_value::<
19635 crate::wire::ConfigSchema<'static>,
19636 ___E,
19637 >(
19638 value, preallocated.encoder, &mut out, ()
19639 )?;
19640 } else {
19641 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19642 }
19643 }
19644
19645 9 => {
19646 if let Some(value) = self.facets.take() {
19647 ::fidl_next::wire::Envelope::encode_value::<
19648 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
19649 ___E,
19650 >(
19651 value, preallocated.encoder, &mut out, ()
19652 )?;
19653 } else {
19654 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19655 }
19656 }
19657
19658 8 => {
19659 if let Some(value) = self.environments.take() {
19660 ::fidl_next::wire::Envelope::encode_value::<
19661 ::fidl_next::wire::Vector<
19662 'static,
19663 crate::wire::Environment<'static>,
19664 >,
19665 ___E,
19666 >(
19667 value, preallocated.encoder, &mut out, (4294967295, ())
19668 )?;
19669 } else {
19670 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19671 }
19672 }
19673
19674 7 => {
19675 if let Some(value) = self.collections.take() {
19676 ::fidl_next::wire::Envelope::encode_value::<
19677 ::fidl_next::wire::Vector<
19678 'static,
19679 crate::wire::Collection<'static>,
19680 >,
19681 ___E,
19682 >(
19683 value, preallocated.encoder, &mut out, (4294967295, ())
19684 )?;
19685 } else {
19686 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19687 }
19688 }
19689
19690 6 => {
19691 if let Some(value) = self.children.take() {
19692 ::fidl_next::wire::Envelope::encode_value::<
19693 ::fidl_next::wire::Vector<'static, crate::wire::Child<'static>>,
19694 ___E,
19695 >(
19696 value, preallocated.encoder, &mut out, (4294967295, ())
19697 )?;
19698 } else {
19699 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19700 }
19701 }
19702
19703 5 => {
19704 if let Some(value) = self.capabilities.take() {
19705 ::fidl_next::wire::Envelope::encode_value::<
19706 ::fidl_next::wire::Vector<
19707 'static,
19708 crate::wire::Capability<'static>,
19709 >,
19710 ___E,
19711 >(
19712 value, preallocated.encoder, &mut out, (4294967295, ())
19713 )?;
19714 } else {
19715 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19716 }
19717 }
19718
19719 4 => {
19720 if let Some(value) = self.offers.take() {
19721 ::fidl_next::wire::Envelope::encode_value::<
19722 ::fidl_next::wire::Vector<'static, crate::wire::Offer<'static>>,
19723 ___E,
19724 >(
19725 value, preallocated.encoder, &mut out, (4294967295, ())
19726 )?;
19727 } else {
19728 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19729 }
19730 }
19731
19732 3 => {
19733 if let Some(value) = self.exposes.take() {
19734 ::fidl_next::wire::Envelope::encode_value::<
19735 ::fidl_next::wire::Vector<'static, crate::wire::Expose<'static>>,
19736 ___E,
19737 >(
19738 value, preallocated.encoder, &mut out, (4294967295, ())
19739 )?;
19740 } else {
19741 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19742 }
19743 }
19744
19745 2 => {
19746 if let Some(value) = self.uses.take() {
19747 ::fidl_next::wire::Envelope::encode_value::<
19748 ::fidl_next::wire::Vector<'static, crate::wire::Use<'static>>,
19749 ___E,
19750 >(
19751 value, preallocated.encoder, &mut out, (4294967295, ())
19752 )?;
19753 } else {
19754 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19755 }
19756 }
19757
19758 1 => {
19759 if let Some(value) = self.program.take() {
19760 ::fidl_next::wire::Envelope::encode_value::<
19761 crate::wire::Program<'static>,
19762 ___E,
19763 >(
19764 value, preallocated.encoder, &mut out, ()
19765 )?;
19766 } else {
19767 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19768 }
19769 }
19770
19771 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19772 }
19773 unsafe {
19774 preallocated.write_next(out.assume_init_ref());
19775 }
19776 }
19777
19778 ::fidl_next::wire::Table::encode_len(table, max_ord);
19779
19780 Ok(())
19781 }
19782 }
19783
19784 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Component<'static>, ___E> for &'a Component
19785 where
19786 ___E: ::fidl_next::Encoder + ?Sized,
19787 {
19788 #[inline]
19789 fn encode(
19790 self,
19791 encoder: &mut ___E,
19792 out: &mut ::core::mem::MaybeUninit<crate::wire::Component<'static>>,
19793 _: (),
19794 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19795 ::fidl_next::munge!(let crate::wire::Component { table } = out);
19796
19797 let max_ord = self.__max_ordinal();
19798
19799 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19800 ::fidl_next::Wire::zero_padding(&mut out);
19801
19802 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19803 ::fidl_next::wire::Envelope,
19804 >(encoder, max_ord);
19805
19806 for i in 1..=max_ord {
19807 match i {
19808 11 => {
19809 if let Some(value) = &self.debug_info {
19810 ::fidl_next::wire::Envelope::encode_value::<
19811 crate::wire::DebugInfo<'static>,
19812 ___E,
19813 >(
19814 value, preallocated.encoder, &mut out, ()
19815 )?;
19816 } else {
19817 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19818 }
19819 }
19820
19821 10 => {
19822 if let Some(value) = &self.config {
19823 ::fidl_next::wire::Envelope::encode_value::<
19824 crate::wire::ConfigSchema<'static>,
19825 ___E,
19826 >(
19827 value, preallocated.encoder, &mut out, ()
19828 )?;
19829 } else {
19830 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19831 }
19832 }
19833
19834 9 => {
19835 if let Some(value) = &self.facets {
19836 ::fidl_next::wire::Envelope::encode_value::<
19837 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
19838 ___E,
19839 >(
19840 value, preallocated.encoder, &mut out, ()
19841 )?;
19842 } else {
19843 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19844 }
19845 }
19846
19847 8 => {
19848 if let Some(value) = &self.environments {
19849 ::fidl_next::wire::Envelope::encode_value::<
19850 ::fidl_next::wire::Vector<
19851 'static,
19852 crate::wire::Environment<'static>,
19853 >,
19854 ___E,
19855 >(
19856 value, preallocated.encoder, &mut out, (4294967295, ())
19857 )?;
19858 } else {
19859 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19860 }
19861 }
19862
19863 7 => {
19864 if let Some(value) = &self.collections {
19865 ::fidl_next::wire::Envelope::encode_value::<
19866 ::fidl_next::wire::Vector<
19867 'static,
19868 crate::wire::Collection<'static>,
19869 >,
19870 ___E,
19871 >(
19872 value, preallocated.encoder, &mut out, (4294967295, ())
19873 )?;
19874 } else {
19875 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19876 }
19877 }
19878
19879 6 => {
19880 if let Some(value) = &self.children {
19881 ::fidl_next::wire::Envelope::encode_value::<
19882 ::fidl_next::wire::Vector<'static, crate::wire::Child<'static>>,
19883 ___E,
19884 >(
19885 value, preallocated.encoder, &mut out, (4294967295, ())
19886 )?;
19887 } else {
19888 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19889 }
19890 }
19891
19892 5 => {
19893 if let Some(value) = &self.capabilities {
19894 ::fidl_next::wire::Envelope::encode_value::<
19895 ::fidl_next::wire::Vector<
19896 'static,
19897 crate::wire::Capability<'static>,
19898 >,
19899 ___E,
19900 >(
19901 value, preallocated.encoder, &mut out, (4294967295, ())
19902 )?;
19903 } else {
19904 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19905 }
19906 }
19907
19908 4 => {
19909 if let Some(value) = &self.offers {
19910 ::fidl_next::wire::Envelope::encode_value::<
19911 ::fidl_next::wire::Vector<'static, crate::wire::Offer<'static>>,
19912 ___E,
19913 >(
19914 value, preallocated.encoder, &mut out, (4294967295, ())
19915 )?;
19916 } else {
19917 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19918 }
19919 }
19920
19921 3 => {
19922 if let Some(value) = &self.exposes {
19923 ::fidl_next::wire::Envelope::encode_value::<
19924 ::fidl_next::wire::Vector<'static, crate::wire::Expose<'static>>,
19925 ___E,
19926 >(
19927 value, preallocated.encoder, &mut out, (4294967295, ())
19928 )?;
19929 } else {
19930 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19931 }
19932 }
19933
19934 2 => {
19935 if let Some(value) = &self.uses {
19936 ::fidl_next::wire::Envelope::encode_value::<
19937 ::fidl_next::wire::Vector<'static, crate::wire::Use<'static>>,
19938 ___E,
19939 >(
19940 value, preallocated.encoder, &mut out, (4294967295, ())
19941 )?;
19942 } else {
19943 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19944 }
19945 }
19946
19947 1 => {
19948 if let Some(value) = &self.program {
19949 ::fidl_next::wire::Envelope::encode_value::<
19950 crate::wire::Program<'static>,
19951 ___E,
19952 >(
19953 value, preallocated.encoder, &mut out, ()
19954 )?;
19955 } else {
19956 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19957 }
19958 }
19959
19960 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19961 }
19962 unsafe {
19963 preallocated.write_next(out.assume_init_ref());
19964 }
19965 }
19966
19967 ::fidl_next::wire::Table::encode_len(table, max_ord);
19968
19969 Ok(())
19970 }
19971 }
19972
19973 impl<'de> ::fidl_next::FromWire<crate::wire::Component<'de>> for Component {
19974 #[inline]
19975 fn from_wire(wire_: crate::wire::Component<'de>) -> Self {
19976 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
19977
19978 let program = wire_.table.get(1);
19979
19980 let uses = wire_.table.get(2);
19981
19982 let exposes = wire_.table.get(3);
19983
19984 let offers = wire_.table.get(4);
19985
19986 let capabilities = wire_.table.get(5);
19987
19988 let children = wire_.table.get(6);
19989
19990 let collections = wire_.table.get(7);
19991
19992 let environments = wire_.table.get(8);
19993
19994 let facets = wire_.table.get(9);
19995
19996 let config = wire_.table.get(10);
19997
19998 let debug_info = wire_.table.get(11);
19999
20000 Self {
20001
20002
20003 program: program.map(|envelope| ::fidl_next::FromWire::from_wire(
20004 unsafe { envelope.read_unchecked::<crate::wire::Program<'de>>() }
20005 )),
20006
20007
20008 uses: uses.map(|envelope| ::fidl_next::FromWire::from_wire(
20009 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>() }
20010 )),
20011
20012
20013 exposes: exposes.map(|envelope| ::fidl_next::FromWire::from_wire(
20014 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>() }
20015 )),
20016
20017
20018 offers: offers.map(|envelope| ::fidl_next::FromWire::from_wire(
20019 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>() }
20020 )),
20021
20022
20023 capabilities: capabilities.map(|envelope| ::fidl_next::FromWire::from_wire(
20024 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>() }
20025 )),
20026
20027
20028 children: children.map(|envelope| ::fidl_next::FromWire::from_wire(
20029 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>() }
20030 )),
20031
20032
20033 collections: collections.map(|envelope| ::fidl_next::FromWire::from_wire(
20034 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>() }
20035 )),
20036
20037
20038 environments: environments.map(|envelope| ::fidl_next::FromWire::from_wire(
20039 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>() }
20040 )),
20041
20042
20043 facets: facets.map(|envelope| ::fidl_next::FromWire::from_wire(
20044 unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
20045 )),
20046
20047
20048 config: config.map(|envelope| ::fidl_next::FromWire::from_wire(
20049 unsafe { envelope.read_unchecked::<crate::wire::ConfigSchema<'de>>() }
20050 )),
20051
20052
20053 debug_info: debug_info.map(|envelope| ::fidl_next::FromWire::from_wire(
20054 unsafe { envelope.read_unchecked::<crate::wire::DebugInfo<'de>>() }
20055 )),
20056
20057 }
20058 }
20059 }
20060
20061 impl<'de> ::fidl_next::FromWireRef<crate::wire::Component<'de>> for Component {
20062 #[inline]
20063 fn from_wire_ref(wire: &crate::wire::Component<'de>) -> Self {
20064 Self {
20065
20066
20067 program: wire.table.get(1)
20068 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20069 unsafe { envelope.deref_unchecked::<crate::wire::Program<'de>>() }
20070 )),
20071
20072
20073 uses: wire.table.get(2)
20074 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20075 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>() }
20076 )),
20077
20078
20079 exposes: wire.table.get(3)
20080 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20081 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>() }
20082 )),
20083
20084
20085 offers: wire.table.get(4)
20086 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20087 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>() }
20088 )),
20089
20090
20091 capabilities: wire.table.get(5)
20092 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20093 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>() }
20094 )),
20095
20096
20097 children: wire.table.get(6)
20098 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20099 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>() }
20100 )),
20101
20102
20103 collections: wire.table.get(7)
20104 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20105 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>() }
20106 )),
20107
20108
20109 environments: wire.table.get(8)
20110 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20111 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>() }
20112 )),
20113
20114
20115 facets: wire.table.get(9)
20116 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20117 unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
20118 )),
20119
20120
20121 config: wire.table.get(10)
20122 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20123 unsafe { envelope.deref_unchecked::<crate::wire::ConfigSchema<'de>>() }
20124 )),
20125
20126
20127 debug_info: wire.table.get(11)
20128 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20129 unsafe { envelope.deref_unchecked::<crate::wire::DebugInfo<'de>>() }
20130 )),
20131
20132 }
20133 }
20134 }
20135
20136 #[doc = " An individual configuration value. It is matched against a specific configuration field based\n on its offset within `ValuesData.values`.\n"]
20137 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20138 pub struct ConfigValueSpec {
20139 pub value: ::core::option::Option<crate::natural::ConfigValue>,
20140 }
20141
20142 impl ConfigValueSpec {
20143 fn __max_ordinal(&self) -> usize {
20144 if self.value.is_some() {
20145 return 1;
20146 }
20147
20148 0
20149 }
20150 }
20151
20152 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValueSpec<'static>, ___E>
20153 for ConfigValueSpec
20154 where
20155 ___E: ::fidl_next::Encoder + ?Sized,
20156 {
20157 #[inline]
20158 fn encode(
20159 mut self,
20160 encoder: &mut ___E,
20161 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSpec<'static>>,
20162 _: (),
20163 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20164 ::fidl_next::munge!(let crate::wire::ConfigValueSpec { table } = out);
20165
20166 let max_ord = self.__max_ordinal();
20167
20168 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20169 ::fidl_next::Wire::zero_padding(&mut out);
20170
20171 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20172 ::fidl_next::wire::Envelope,
20173 >(encoder, max_ord);
20174
20175 for i in 1..=max_ord {
20176 match i {
20177 1 => {
20178 if let Some(value) = self.value.take() {
20179 ::fidl_next::wire::Envelope::encode_value::<
20180 crate::wire::ConfigValue<'static>,
20181 ___E,
20182 >(
20183 value, preallocated.encoder, &mut out, ()
20184 )?;
20185 } else {
20186 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20187 }
20188 }
20189
20190 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20191 }
20192 unsafe {
20193 preallocated.write_next(out.assume_init_ref());
20194 }
20195 }
20196
20197 ::fidl_next::wire::Table::encode_len(table, max_ord);
20198
20199 Ok(())
20200 }
20201 }
20202
20203 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValueSpec<'static>, ___E>
20204 for &'a ConfigValueSpec
20205 where
20206 ___E: ::fidl_next::Encoder + ?Sized,
20207 {
20208 #[inline]
20209 fn encode(
20210 self,
20211 encoder: &mut ___E,
20212 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSpec<'static>>,
20213 _: (),
20214 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20215 ::fidl_next::munge!(let crate::wire::ConfigValueSpec { table } = out);
20216
20217 let max_ord = self.__max_ordinal();
20218
20219 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20220 ::fidl_next::Wire::zero_padding(&mut out);
20221
20222 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20223 ::fidl_next::wire::Envelope,
20224 >(encoder, max_ord);
20225
20226 for i in 1..=max_ord {
20227 match i {
20228 1 => {
20229 if let Some(value) = &self.value {
20230 ::fidl_next::wire::Envelope::encode_value::<
20231 crate::wire::ConfigValue<'static>,
20232 ___E,
20233 >(
20234 value, preallocated.encoder, &mut out, ()
20235 )?;
20236 } else {
20237 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20238 }
20239 }
20240
20241 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20242 }
20243 unsafe {
20244 preallocated.write_next(out.assume_init_ref());
20245 }
20246 }
20247
20248 ::fidl_next::wire::Table::encode_len(table, max_ord);
20249
20250 Ok(())
20251 }
20252 }
20253
20254 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValueSpec<'de>> for ConfigValueSpec {
20255 #[inline]
20256 fn from_wire(wire_: crate::wire::ConfigValueSpec<'de>) -> Self {
20257 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20258
20259 let value = wire_.table.get(1);
20260
20261 Self {
20262 value: value.map(|envelope| {
20263 ::fidl_next::FromWire::from_wire(unsafe {
20264 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
20265 })
20266 }),
20267 }
20268 }
20269 }
20270
20271 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValueSpec<'de>> for ConfigValueSpec {
20272 #[inline]
20273 fn from_wire_ref(wire: &crate::wire::ConfigValueSpec<'de>) -> Self {
20274 Self {
20275 value: wire.table.get(1).map(|envelope| {
20276 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
20277 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
20278 })
20279 }),
20280 }
20281 }
20282 }
20283
20284 #[doc = " Contents of the configuration value file. Defines the base values for a component\'s config.\n"]
20285 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20286 pub struct ConfigValuesData {
20287 pub values: ::core::option::Option<::std::vec::Vec<crate::natural::ConfigValueSpec>>,
20288
20289 pub checksum: ::core::option::Option<crate::natural::ConfigChecksum>,
20290 }
20291
20292 impl ConfigValuesData {
20293 fn __max_ordinal(&self) -> usize {
20294 if self.checksum.is_some() {
20295 return 2;
20296 }
20297
20298 if self.values.is_some() {
20299 return 1;
20300 }
20301
20302 0
20303 }
20304 }
20305
20306 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValuesData<'static>, ___E>
20307 for ConfigValuesData
20308 where
20309 ___E: ::fidl_next::Encoder + ?Sized,
20310 {
20311 #[inline]
20312 fn encode(
20313 mut self,
20314 encoder: &mut ___E,
20315 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValuesData<'static>>,
20316 _: (),
20317 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20318 ::fidl_next::munge!(let crate::wire::ConfigValuesData { table } = out);
20319
20320 let max_ord = self.__max_ordinal();
20321
20322 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20323 ::fidl_next::Wire::zero_padding(&mut out);
20324
20325 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20326 ::fidl_next::wire::Envelope,
20327 >(encoder, max_ord);
20328
20329 for i in 1..=max_ord {
20330 match i {
20331 2 => {
20332 if let Some(value) = self.checksum.take() {
20333 ::fidl_next::wire::Envelope::encode_value::<
20334 crate::wire::ConfigChecksum<'static>,
20335 ___E,
20336 >(
20337 value, preallocated.encoder, &mut out, ()
20338 )?;
20339 } else {
20340 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20341 }
20342 }
20343
20344 1 => {
20345 if let Some(value) = self.values.take() {
20346 ::fidl_next::wire::Envelope::encode_value::<
20347 ::fidl_next::wire::Vector<
20348 'static,
20349 crate::wire::ConfigValueSpec<'static>,
20350 >,
20351 ___E,
20352 >(
20353 value, preallocated.encoder, &mut out, (4294967295, ())
20354 )?;
20355 } else {
20356 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20357 }
20358 }
20359
20360 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20361 }
20362 unsafe {
20363 preallocated.write_next(out.assume_init_ref());
20364 }
20365 }
20366
20367 ::fidl_next::wire::Table::encode_len(table, max_ord);
20368
20369 Ok(())
20370 }
20371 }
20372
20373 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValuesData<'static>, ___E>
20374 for &'a ConfigValuesData
20375 where
20376 ___E: ::fidl_next::Encoder + ?Sized,
20377 {
20378 #[inline]
20379 fn encode(
20380 self,
20381 encoder: &mut ___E,
20382 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValuesData<'static>>,
20383 _: (),
20384 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20385 ::fidl_next::munge!(let crate::wire::ConfigValuesData { table } = out);
20386
20387 let max_ord = self.__max_ordinal();
20388
20389 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20390 ::fidl_next::Wire::zero_padding(&mut out);
20391
20392 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20393 ::fidl_next::wire::Envelope,
20394 >(encoder, max_ord);
20395
20396 for i in 1..=max_ord {
20397 match i {
20398 2 => {
20399 if let Some(value) = &self.checksum {
20400 ::fidl_next::wire::Envelope::encode_value::<
20401 crate::wire::ConfigChecksum<'static>,
20402 ___E,
20403 >(
20404 value, preallocated.encoder, &mut out, ()
20405 )?;
20406 } else {
20407 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20408 }
20409 }
20410
20411 1 => {
20412 if let Some(value) = &self.values {
20413 ::fidl_next::wire::Envelope::encode_value::<
20414 ::fidl_next::wire::Vector<
20415 'static,
20416 crate::wire::ConfigValueSpec<'static>,
20417 >,
20418 ___E,
20419 >(
20420 value, preallocated.encoder, &mut out, (4294967295, ())
20421 )?;
20422 } else {
20423 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20424 }
20425 }
20426
20427 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20428 }
20429 unsafe {
20430 preallocated.write_next(out.assume_init_ref());
20431 }
20432 }
20433
20434 ::fidl_next::wire::Table::encode_len(table, max_ord);
20435
20436 Ok(())
20437 }
20438 }
20439
20440 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValuesData<'de>> for ConfigValuesData {
20441 #[inline]
20442 fn from_wire(wire_: crate::wire::ConfigValuesData<'de>) -> Self {
20443 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20444
20445 let values = wire_.table.get(1);
20446
20447 let checksum = wire_.table.get(2);
20448
20449 Self {
20450
20451
20452 values: values.map(|envelope| ::fidl_next::FromWire::from_wire(
20453 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>() }
20454 )),
20455
20456
20457 checksum: checksum.map(|envelope| ::fidl_next::FromWire::from_wire(
20458 unsafe { envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>() }
20459 )),
20460
20461 }
20462 }
20463 }
20464
20465 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValuesData<'de>> for ConfigValuesData {
20466 #[inline]
20467 fn from_wire_ref(wire: &crate::wire::ConfigValuesData<'de>) -> Self {
20468 Self {
20469
20470
20471 values: wire.table.get(1)
20472 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20473 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>() }
20474 )),
20475
20476
20477 checksum: wire.table.get(2)
20478 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20479 unsafe { envelope.deref_unchecked::<crate::wire::ConfigChecksum<'de>>() }
20480 )),
20481
20482 }
20483 }
20484 }
20485
20486 #[doc = " Indicates the event name to subscribe to with a given event mode.\n"]
20487 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20488 pub struct EventSubscription {
20489 pub event_name: ::core::option::Option<::std::string::String>,
20490 }
20491
20492 impl EventSubscription {
20493 fn __max_ordinal(&self) -> usize {
20494 if self.event_name.is_some() {
20495 return 1;
20496 }
20497
20498 0
20499 }
20500 }
20501
20502 unsafe impl<___E> ::fidl_next::Encode<crate::wire::EventSubscription<'static>, ___E>
20503 for EventSubscription
20504 where
20505 ___E: ::fidl_next::Encoder + ?Sized,
20506 {
20507 #[inline]
20508 fn encode(
20509 mut self,
20510 encoder: &mut ___E,
20511 out: &mut ::core::mem::MaybeUninit<crate::wire::EventSubscription<'static>>,
20512 _: (),
20513 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20514 ::fidl_next::munge!(let crate::wire::EventSubscription { table } = out);
20515
20516 let max_ord = self.__max_ordinal();
20517
20518 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20519 ::fidl_next::Wire::zero_padding(&mut out);
20520
20521 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20522 ::fidl_next::wire::Envelope,
20523 >(encoder, max_ord);
20524
20525 for i in 1..=max_ord {
20526 match i {
20527 1 => {
20528 if let Some(value) = self.event_name.take() {
20529 ::fidl_next::wire::Envelope::encode_value::<
20530 ::fidl_next::wire::String<'static>,
20531 ___E,
20532 >(
20533 value, preallocated.encoder, &mut out, 100
20534 )?;
20535 } else {
20536 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20537 }
20538 }
20539
20540 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20541 }
20542 unsafe {
20543 preallocated.write_next(out.assume_init_ref());
20544 }
20545 }
20546
20547 ::fidl_next::wire::Table::encode_len(table, max_ord);
20548
20549 Ok(())
20550 }
20551 }
20552
20553 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EventSubscription<'static>, ___E>
20554 for &'a EventSubscription
20555 where
20556 ___E: ::fidl_next::Encoder + ?Sized,
20557 {
20558 #[inline]
20559 fn encode(
20560 self,
20561 encoder: &mut ___E,
20562 out: &mut ::core::mem::MaybeUninit<crate::wire::EventSubscription<'static>>,
20563 _: (),
20564 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20565 ::fidl_next::munge!(let crate::wire::EventSubscription { table } = out);
20566
20567 let max_ord = self.__max_ordinal();
20568
20569 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20570 ::fidl_next::Wire::zero_padding(&mut out);
20571
20572 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20573 ::fidl_next::wire::Envelope,
20574 >(encoder, max_ord);
20575
20576 for i in 1..=max_ord {
20577 match i {
20578 1 => {
20579 if let Some(value) = &self.event_name {
20580 ::fidl_next::wire::Envelope::encode_value::<
20581 ::fidl_next::wire::String<'static>,
20582 ___E,
20583 >(
20584 value, preallocated.encoder, &mut out, 100
20585 )?;
20586 } else {
20587 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20588 }
20589 }
20590
20591 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20592 }
20593 unsafe {
20594 preallocated.write_next(out.assume_init_ref());
20595 }
20596 }
20597
20598 ::fidl_next::wire::Table::encode_len(table, max_ord);
20599
20600 Ok(())
20601 }
20602 }
20603
20604 impl<'de> ::fidl_next::FromWire<crate::wire::EventSubscription<'de>> for EventSubscription {
20605 #[inline]
20606 fn from_wire(wire_: crate::wire::EventSubscription<'de>) -> Self {
20607 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20608
20609 let event_name = wire_.table.get(1);
20610
20611 Self {
20612 event_name: event_name.map(|envelope| {
20613 ::fidl_next::FromWire::from_wire(unsafe {
20614 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
20615 })
20616 }),
20617 }
20618 }
20619 }
20620
20621 impl<'de> ::fidl_next::FromWireRef<crate::wire::EventSubscription<'de>> for EventSubscription {
20622 #[inline]
20623 fn from_wire_ref(wire: &crate::wire::EventSubscription<'de>) -> Self {
20624 Self {
20625 event_name: wire.table.get(1).map(|envelope| {
20626 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
20627 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
20628 })
20629 }),
20630 }
20631 }
20632 }
20633
20634 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20635 pub enum LayoutParameter {
20636 NestedType(crate::natural::ConfigType),
20637
20638 UnknownOrdinal_(u64),
20639 }
20640
20641 impl LayoutParameter {
20642 pub fn is_unknown(&self) -> bool {
20643 #[allow(unreachable_patterns)]
20644 match self {
20645 Self::UnknownOrdinal_(_) => true,
20646 _ => false,
20647 }
20648 }
20649 }
20650
20651 unsafe impl<___E> ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>
20652 for LayoutParameter
20653 where
20654 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20655 ___E: ::fidl_next::Encoder,
20656 {
20657 #[inline]
20658 fn encode(
20659 self,
20660 encoder: &mut ___E,
20661 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutParameter<'static>>,
20662 _: (),
20663 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20664 ::fidl_next::munge!(let crate::wire::LayoutParameter { raw, _phantom: _ } = out);
20665
20666 match self {
20667 Self::NestedType(value) => ::fidl_next::wire::Union::encode_as::<
20668 ___E,
20669 crate::wire::ConfigType<'static>,
20670 >(value, 1, encoder, raw, ())?,
20671
20672 Self::UnknownOrdinal_(ordinal) => {
20673 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
20674 }
20675 }
20676
20677 Ok(())
20678 }
20679 }
20680
20681 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>
20682 for &'a LayoutParameter
20683 where
20684 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20685 ___E: ::fidl_next::Encoder,
20686 {
20687 #[inline]
20688 fn encode(
20689 self,
20690 encoder: &mut ___E,
20691 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutParameter<'static>>,
20692 _: (),
20693 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20694 ::fidl_next::munge!(let crate::wire::LayoutParameter { raw, _phantom: _ } = out);
20695
20696 match self {
20697 LayoutParameter::NestedType(value) => ::fidl_next::wire::Union::encode_as::<
20698 ___E,
20699 crate::wire::ConfigType<'static>,
20700 >(value, 1, encoder, raw, ())?,
20701
20702 LayoutParameter::UnknownOrdinal_(ordinal) => {
20703 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
20704 }
20705 }
20706
20707 Ok(())
20708 }
20709 }
20710
20711 unsafe impl<___E>
20712 ::fidl_next::EncodeOption<crate::wire_optional::LayoutParameter<'static>, ___E>
20713 for LayoutParameter
20714 where
20715 ___E: ?Sized,
20716 LayoutParameter: ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>,
20717 {
20718 #[inline]
20719 fn encode_option(
20720 this: ::core::option::Option<Self>,
20721 encoder: &mut ___E,
20722 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutParameter<'static>>,
20723 _: (),
20724 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20725 ::fidl_next::munge!(let crate::wire_optional::LayoutParameter { raw, _phantom: _ } = &mut *out);
20726
20727 if let Some(inner) = this {
20728 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
20729 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
20730 } else {
20731 ::fidl_next::wire::Union::encode_absent(raw);
20732 }
20733
20734 Ok(())
20735 }
20736 }
20737
20738 unsafe impl<'a, ___E>
20739 ::fidl_next::EncodeOption<crate::wire_optional::LayoutParameter<'static>, ___E>
20740 for &'a LayoutParameter
20741 where
20742 ___E: ?Sized,
20743 &'a LayoutParameter: ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>,
20744 {
20745 #[inline]
20746 fn encode_option(
20747 this: ::core::option::Option<Self>,
20748 encoder: &mut ___E,
20749 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutParameter<'static>>,
20750 _: (),
20751 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20752 ::fidl_next::munge!(let crate::wire_optional::LayoutParameter { raw, _phantom: _ } = &mut *out);
20753
20754 if let Some(inner) = this {
20755 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
20756 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
20757 } else {
20758 ::fidl_next::wire::Union::encode_absent(raw);
20759 }
20760
20761 Ok(())
20762 }
20763 }
20764
20765 impl<'de> ::fidl_next::FromWire<crate::wire::LayoutParameter<'de>> for LayoutParameter {
20766 #[inline]
20767 fn from_wire(wire: crate::wire::LayoutParameter<'de>) -> Self {
20768 let wire = ::core::mem::ManuallyDrop::new(wire);
20769 match wire.raw.ordinal() {
20770 1 => Self::NestedType(::fidl_next::FromWire::from_wire(unsafe {
20771 wire.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>()
20772 })),
20773
20774 ord => return Self::UnknownOrdinal_(ord as u64),
20775 }
20776 }
20777 }
20778
20779 impl<'de> ::fidl_next::FromWireRef<crate::wire::LayoutParameter<'de>> for LayoutParameter {
20780 #[inline]
20781 fn from_wire_ref(wire: &crate::wire::LayoutParameter<'de>) -> Self {
20782 match wire.raw.ordinal() {
20783 1 => Self::NestedType(::fidl_next::FromWireRef::from_wire_ref(unsafe {
20784 wire.raw.get().deref_unchecked::<crate::wire::ConfigType<'de>>()
20785 })),
20786
20787 ord => return Self::UnknownOrdinal_(ord as u64),
20788 }
20789 }
20790 }
20791
20792 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutParameter<'de>>
20793 for LayoutParameter
20794 {
20795 #[inline]
20796 fn from_wire_option(
20797 wire: crate::wire_optional::LayoutParameter<'de>,
20798 ) -> ::core::option::Option<Self> {
20799 if let Some(inner) = wire.into_option() {
20800 Some(::fidl_next::FromWire::from_wire(inner))
20801 } else {
20802 None
20803 }
20804 }
20805 }
20806
20807 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutParameter<'de>>
20808 for Box<LayoutParameter>
20809 {
20810 #[inline]
20811 fn from_wire_option(
20812 wire: crate::wire_optional::LayoutParameter<'de>,
20813 ) -> ::core::option::Option<Self> {
20814 <LayoutParameter as ::fidl_next::FromWireOption<
20815 crate::wire_optional::LayoutParameter<'de>,
20816 >>::from_wire_option(wire)
20817 .map(Box::new)
20818 }
20819 }
20820
20821 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::LayoutParameter<'de>>
20822 for Box<LayoutParameter>
20823 {
20824 #[inline]
20825 fn from_wire_option_ref(
20826 wire: &crate::wire_optional::LayoutParameter<'de>,
20827 ) -> ::core::option::Option<Self> {
20828 if let Some(inner) = wire.as_ref() {
20829 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
20830 } else {
20831 None
20832 }
20833 }
20834 }
20835
20836 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20837 pub struct ResolvedConfigField {
20838 pub key: ::std::string::String,
20839
20840 pub value: crate::natural::ConfigValue,
20841 }
20842
20843 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
20844 for ResolvedConfigField
20845 where
20846 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20847 ___E: ::fidl_next::Encoder,
20848 {
20849 #[inline]
20850 fn encode(
20851 self,
20852 encoder_: &mut ___E,
20853 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
20854 _: (),
20855 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20856 ::fidl_next::munge! {
20857 let crate::wire::ResolvedConfigField {
20858 key,
20859 value,
20860
20861 } = out_;
20862 }
20863
20864 ::fidl_next::Encode::encode(self.key, encoder_, key, 4294967295)?;
20865
20866 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(key.as_mut_ptr()) };
20867 ::fidl_next::Constrained::validate(_field, 4294967295)?;
20868
20869 ::fidl_next::Encode::encode(self.value, encoder_, value, ())?;
20870
20871 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(value.as_mut_ptr()) };
20872
20873 Ok(())
20874 }
20875 }
20876
20877 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
20878 for &'a ResolvedConfigField
20879 where
20880 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20881 ___E: ::fidl_next::Encoder,
20882 {
20883 #[inline]
20884 fn encode(
20885 self,
20886 encoder_: &mut ___E,
20887 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
20888 _: (),
20889 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20890 ::fidl_next::munge! {
20891 let crate::wire::ResolvedConfigField {
20892 key,
20893 value,
20894
20895 } = out_;
20896 }
20897
20898 ::fidl_next::Encode::encode(&self.key, encoder_, key, 4294967295)?;
20899
20900 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(key.as_mut_ptr()) };
20901 ::fidl_next::Constrained::validate(_field, 4294967295)?;
20902
20903 ::fidl_next::Encode::encode(&self.value, encoder_, value, ())?;
20904
20905 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(value.as_mut_ptr()) };
20906
20907 Ok(())
20908 }
20909 }
20910
20911 unsafe impl<___E>
20912 ::fidl_next::EncodeOption<
20913 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
20914 ___E,
20915 > for ResolvedConfigField
20916 where
20917 ___E: ::fidl_next::Encoder + ?Sized,
20918 ResolvedConfigField: ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>,
20919 {
20920 #[inline]
20921 fn encode_option(
20922 this: ::core::option::Option<Self>,
20923 encoder: &mut ___E,
20924 out: &mut ::core::mem::MaybeUninit<
20925 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
20926 >,
20927 _: (),
20928 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20929 if let Some(inner) = this {
20930 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
20931 ::fidl_next::wire::Box::encode_present(out);
20932 } else {
20933 ::fidl_next::wire::Box::encode_absent(out);
20934 }
20935
20936 Ok(())
20937 }
20938 }
20939
20940 unsafe impl<'a, ___E>
20941 ::fidl_next::EncodeOption<
20942 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
20943 ___E,
20944 > for &'a ResolvedConfigField
20945 where
20946 ___E: ::fidl_next::Encoder + ?Sized,
20947 &'a ResolvedConfigField:
20948 ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>,
20949 {
20950 #[inline]
20951 fn encode_option(
20952 this: ::core::option::Option<Self>,
20953 encoder: &mut ___E,
20954 out: &mut ::core::mem::MaybeUninit<
20955 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
20956 >,
20957 _: (),
20958 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20959 if let Some(inner) = this {
20960 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
20961 ::fidl_next::wire::Box::encode_present(out);
20962 } else {
20963 ::fidl_next::wire::Box::encode_absent(out);
20964 }
20965
20966 Ok(())
20967 }
20968 }
20969
20970 impl<'de> ::fidl_next::FromWire<crate::wire::ResolvedConfigField<'de>> for ResolvedConfigField {
20971 #[inline]
20972 fn from_wire(wire: crate::wire::ResolvedConfigField<'de>) -> Self {
20973 Self {
20974 key: ::fidl_next::FromWire::from_wire(wire.key),
20975
20976 value: ::fidl_next::FromWire::from_wire(wire.value),
20977 }
20978 }
20979 }
20980
20981 impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolvedConfigField<'de>> for ResolvedConfigField {
20982 #[inline]
20983 fn from_wire_ref(wire: &crate::wire::ResolvedConfigField<'de>) -> Self {
20984 Self {
20985 key: ::fidl_next::FromWireRef::from_wire_ref(&wire.key),
20986
20987 value: ::fidl_next::FromWireRef::from_wire_ref(&wire.value),
20988 }
20989 }
20990 }
20991
20992 #[doc = " A configuration that has been completely resolved by component manager.\n"]
20993 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20994 pub struct ResolvedConfig {
20995 pub fields: ::std::vec::Vec<crate::natural::ResolvedConfigField>,
20996
20997 pub checksum: crate::natural::ConfigChecksum,
20998 }
20999
21000 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E> for ResolvedConfig
21001 where
21002 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21003 ___E: ::fidl_next::Encoder,
21004 {
21005 #[inline]
21006 fn encode(
21007 self,
21008 encoder_: &mut ___E,
21009 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
21010 _: (),
21011 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21012 ::fidl_next::munge! {
21013 let crate::wire::ResolvedConfig {
21014 fields,
21015 checksum,
21016
21017 } = out_;
21018 }
21019
21020 ::fidl_next::Encode::encode(self.fields, encoder_, fields, (4294967295, ()))?;
21021
21022 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fields.as_mut_ptr()) };
21023 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
21024
21025 ::fidl_next::Encode::encode(self.checksum, encoder_, checksum, ())?;
21026
21027 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(checksum.as_mut_ptr()) };
21028
21029 Ok(())
21030 }
21031 }
21032
21033 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>
21034 for &'a ResolvedConfig
21035 where
21036 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21037 ___E: ::fidl_next::Encoder,
21038 {
21039 #[inline]
21040 fn encode(
21041 self,
21042 encoder_: &mut ___E,
21043 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
21044 _: (),
21045 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21046 ::fidl_next::munge! {
21047 let crate::wire::ResolvedConfig {
21048 fields,
21049 checksum,
21050
21051 } = out_;
21052 }
21053
21054 ::fidl_next::Encode::encode(&self.fields, encoder_, fields, (4294967295, ()))?;
21055
21056 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fields.as_mut_ptr()) };
21057 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
21058
21059 ::fidl_next::Encode::encode(&self.checksum, encoder_, checksum, ())?;
21060
21061 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(checksum.as_mut_ptr()) };
21062
21063 Ok(())
21064 }
21065 }
21066
21067 unsafe impl<___E>
21068 ::fidl_next::EncodeOption<
21069 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21070 ___E,
21071 > for ResolvedConfig
21072 where
21073 ___E: ::fidl_next::Encoder + ?Sized,
21074 ResolvedConfig: ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>,
21075 {
21076 #[inline]
21077 fn encode_option(
21078 this: ::core::option::Option<Self>,
21079 encoder: &mut ___E,
21080 out: &mut ::core::mem::MaybeUninit<
21081 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21082 >,
21083 _: (),
21084 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21085 if let Some(inner) = this {
21086 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
21087 ::fidl_next::wire::Box::encode_present(out);
21088 } else {
21089 ::fidl_next::wire::Box::encode_absent(out);
21090 }
21091
21092 Ok(())
21093 }
21094 }
21095
21096 unsafe impl<'a, ___E>
21097 ::fidl_next::EncodeOption<
21098 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21099 ___E,
21100 > for &'a ResolvedConfig
21101 where
21102 ___E: ::fidl_next::Encoder + ?Sized,
21103 &'a ResolvedConfig: ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>,
21104 {
21105 #[inline]
21106 fn encode_option(
21107 this: ::core::option::Option<Self>,
21108 encoder: &mut ___E,
21109 out: &mut ::core::mem::MaybeUninit<
21110 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21111 >,
21112 _: (),
21113 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21114 if let Some(inner) = this {
21115 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
21116 ::fidl_next::wire::Box::encode_present(out);
21117 } else {
21118 ::fidl_next::wire::Box::encode_absent(out);
21119 }
21120
21121 Ok(())
21122 }
21123 }
21124
21125 impl<'de> ::fidl_next::FromWire<crate::wire::ResolvedConfig<'de>> for ResolvedConfig {
21126 #[inline]
21127 fn from_wire(wire: crate::wire::ResolvedConfig<'de>) -> Self {
21128 Self {
21129 fields: ::fidl_next::FromWire::from_wire(wire.fields),
21130
21131 checksum: ::fidl_next::FromWire::from_wire(wire.checksum),
21132 }
21133 }
21134 }
21135
21136 impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolvedConfig<'de>> for ResolvedConfig {
21137 #[inline]
21138 fn from_wire_ref(wire: &crate::wire::ResolvedConfig<'de>) -> Self {
21139 Self {
21140 fields: ::fidl_next::FromWireRef::from_wire_ref(&wire.fields),
21141
21142 checksum: ::fidl_next::FromWireRef::from_wire_ref(&wire.checksum),
21143 }
21144 }
21145 }
21146}
21147
21148pub mod wire {
21149
21150 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21152 #[repr(transparent)]
21153 pub struct AllowedOffers {
21154 pub(crate) value: ::fidl_next::wire::Uint32,
21155 }
21156
21157 impl ::fidl_next::Constrained for AllowedOffers {
21158 type Constraint = ();
21159
21160 fn validate(
21161 _: ::fidl_next::Slot<'_, Self>,
21162 _: Self::Constraint,
21163 ) -> Result<(), ::fidl_next::ValidationError> {
21164 Ok(())
21165 }
21166 }
21167
21168 unsafe impl ::fidl_next::Wire for AllowedOffers {
21169 type Narrowed<'de> = Self;
21170
21171 #[inline]
21172 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
21173 }
21175 }
21176
21177 impl AllowedOffers {
21178 pub const STATIC_ONLY: AllowedOffers =
21179 AllowedOffers { value: ::fidl_next::wire::Uint32(1) };
21180
21181 pub const STATIC_AND_DYNAMIC: AllowedOffers =
21182 AllowedOffers { value: ::fidl_next::wire::Uint32(2) };
21183 }
21184
21185 unsafe impl<___D> ::fidl_next::Decode<___D> for AllowedOffers
21186 where
21187 ___D: ?Sized,
21188 {
21189 fn decode(
21190 slot: ::fidl_next::Slot<'_, Self>,
21191 _: &mut ___D,
21192 _: (),
21193 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21194 ::fidl_next::munge!(let Self { value } = slot);
21195
21196 match u32::from(*value) {
21197 1 | 2 => (),
21198 unknown => {
21199 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
21200 }
21201 }
21202
21203 Ok(())
21204 }
21205 }
21206
21207 impl ::core::convert::From<crate::natural::AllowedOffers> for AllowedOffers {
21208 fn from(natural: crate::natural::AllowedOffers) -> Self {
21209 match natural {
21210 crate::natural::AllowedOffers::StaticOnly => AllowedOffers::STATIC_ONLY,
21211
21212 crate::natural::AllowedOffers::StaticAndDynamic => {
21213 AllowedOffers::STATIC_AND_DYNAMIC
21214 }
21215 }
21216 }
21217 }
21218
21219 impl ::fidl_next::IntoNatural for AllowedOffers {
21220 type Natural = crate::natural::AllowedOffers;
21221 }
21222
21223 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21225 #[repr(transparent)]
21226 pub struct Availability {
21227 pub(crate) value: ::fidl_next::wire::Uint32,
21228 }
21229
21230 impl ::fidl_next::Constrained for Availability {
21231 type Constraint = ();
21232
21233 fn validate(
21234 _: ::fidl_next::Slot<'_, Self>,
21235 _: Self::Constraint,
21236 ) -> Result<(), ::fidl_next::ValidationError> {
21237 Ok(())
21238 }
21239 }
21240
21241 unsafe impl ::fidl_next::Wire for Availability {
21242 type Narrowed<'de> = Self;
21243
21244 #[inline]
21245 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
21246 }
21248 }
21249
21250 impl Availability {
21251 pub const REQUIRED: Availability = Availability { value: ::fidl_next::wire::Uint32(1) };
21252
21253 pub const OPTIONAL: Availability = Availability { value: ::fidl_next::wire::Uint32(2) };
21254
21255 pub const SAME_AS_TARGET: Availability =
21256 Availability { value: ::fidl_next::wire::Uint32(3) };
21257
21258 pub const TRANSITIONAL: Availability = Availability { value: ::fidl_next::wire::Uint32(4) };
21259 }
21260
21261 unsafe impl<___D> ::fidl_next::Decode<___D> for Availability
21262 where
21263 ___D: ?Sized,
21264 {
21265 fn decode(
21266 slot: ::fidl_next::Slot<'_, Self>,
21267 _: &mut ___D,
21268 _: (),
21269 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21270 ::fidl_next::munge!(let Self { value } = slot);
21271
21272 match u32::from(*value) {
21273 1 | 2 | 3 | 4 => (),
21274 unknown => {
21275 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
21276 }
21277 }
21278
21279 Ok(())
21280 }
21281 }
21282
21283 impl ::core::convert::From<crate::natural::Availability> for Availability {
21284 fn from(natural: crate::natural::Availability) -> Self {
21285 match natural {
21286 crate::natural::Availability::Required => Availability::REQUIRED,
21287
21288 crate::natural::Availability::Optional => Availability::OPTIONAL,
21289
21290 crate::natural::Availability::SameAsTarget => Availability::SAME_AS_TARGET,
21291
21292 crate::natural::Availability::Transitional => Availability::TRANSITIONAL,
21293 }
21294 }
21295 }
21296
21297 impl ::fidl_next::IntoNatural for Availability {
21298 type Natural = crate::natural::Availability;
21299 }
21300
21301 pub type Name<'de> = ::fidl_next::wire::String<'de>;
21303
21304 #[repr(C)]
21306 pub struct Service<'de> {
21307 pub(crate) table: ::fidl_next::wire::Table<'de>,
21308 }
21309
21310 impl<'de> Drop for Service<'de> {
21311 fn drop(&mut self) {
21312 let _ = self.table.get(1).map(|envelope| unsafe {
21313 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21314 });
21315
21316 let _ = self.table.get(2).map(|envelope| unsafe {
21317 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21318 });
21319 }
21320 }
21321
21322 impl ::fidl_next::Constrained for Service<'_> {
21323 type Constraint = ();
21324
21325 fn validate(
21326 _: ::fidl_next::Slot<'_, Self>,
21327 _: Self::Constraint,
21328 ) -> Result<(), ::fidl_next::ValidationError> {
21329 Ok(())
21330 }
21331 }
21332
21333 unsafe impl ::fidl_next::Wire for Service<'static> {
21334 type Narrowed<'de> = Service<'de>;
21335
21336 #[inline]
21337 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
21338 ::fidl_next::munge!(let Self { table } = out);
21339 ::fidl_next::wire::Table::zero_padding(table);
21340 }
21341 }
21342
21343 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Service<'de>
21344 where
21345 ___D: ::fidl_next::Decoder<'de> + ?Sized,
21346 {
21347 fn decode(
21348 slot: ::fidl_next::Slot<'_, Self>,
21349 decoder: &mut ___D,
21350 _: (),
21351 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21352 ::fidl_next::munge!(let Self { table } = slot);
21353
21354 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
21355 match ordinal {
21356 0 => unsafe { ::core::hint::unreachable_unchecked() },
21357
21358 1 => {
21359 ::fidl_next::wire::Envelope::decode_as::<
21360 ___D,
21361 ::fidl_next::wire::String<'de>,
21362 >(slot.as_mut(), decoder, 100)?;
21363
21364 let value = unsafe {
21365 slot.deref_unchecked()
21366 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21367 };
21368
21369 if value.len() > 100 {
21370 return Err(::fidl_next::DecodeError::VectorTooLong {
21371 size: value.len() as u64,
21372 limit: 100,
21373 });
21374 }
21375
21376 Ok(())
21377 }
21378
21379 2 => {
21380 ::fidl_next::wire::Envelope::decode_as::<
21381 ___D,
21382 ::fidl_next::wire::String<'de>,
21383 >(slot.as_mut(), decoder, 1024)?;
21384
21385 let value = unsafe {
21386 slot.deref_unchecked()
21387 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21388 };
21389
21390 if value.len() > 1024 {
21391 return Err(::fidl_next::DecodeError::VectorTooLong {
21392 size: value.len() as u64,
21393 limit: 1024,
21394 });
21395 }
21396
21397 Ok(())
21398 }
21399
21400 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
21401 }
21402 })
21403 }
21404 }
21405
21406 impl<'de> Service<'de> {
21407 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21408 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
21409 }
21410
21411 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21412 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
21413 }
21414
21415 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21416 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
21417 }
21418
21419 pub fn take_source_path(
21420 &mut self,
21421 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21422 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
21423 }
21424 }
21425
21426 impl<'de> ::core::fmt::Debug for Service<'de> {
21427 fn fmt(
21428 &self,
21429 f: &mut ::core::fmt::Formatter<'_>,
21430 ) -> ::core::result::Result<(), ::core::fmt::Error> {
21431 f.debug_struct("Service")
21432 .field("name", &self.name())
21433 .field("source_path", &self.source_path())
21434 .finish()
21435 }
21436 }
21437
21438 impl<'de> ::fidl_next::IntoNatural for Service<'de> {
21439 type Natural = crate::natural::Service;
21440 }
21441
21442 #[repr(C)]
21444 pub struct Directory<'de> {
21445 pub(crate) table: ::fidl_next::wire::Table<'de>,
21446 }
21447
21448 impl<'de> Drop for Directory<'de> {
21449 fn drop(&mut self) {
21450 let _ = self.table.get(1).map(|envelope| unsafe {
21451 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21452 });
21453
21454 let _ = self.table.get(2).map(|envelope| unsafe {
21455 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21456 });
21457
21458 let _ = self.table.get(3).map(|envelope| unsafe {
21459 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
21460 });
21461 }
21462 }
21463
21464 impl ::fidl_next::Constrained for Directory<'_> {
21465 type Constraint = ();
21466
21467 fn validate(
21468 _: ::fidl_next::Slot<'_, Self>,
21469 _: Self::Constraint,
21470 ) -> Result<(), ::fidl_next::ValidationError> {
21471 Ok(())
21472 }
21473 }
21474
21475 unsafe impl ::fidl_next::Wire for Directory<'static> {
21476 type Narrowed<'de> = Directory<'de>;
21477
21478 #[inline]
21479 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
21480 ::fidl_next::munge!(let Self { table } = out);
21481 ::fidl_next::wire::Table::zero_padding(table);
21482 }
21483 }
21484
21485 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Directory<'de>
21486 where
21487 ___D: ::fidl_next::Decoder<'de> + ?Sized,
21488 {
21489 fn decode(
21490 slot: ::fidl_next::Slot<'_, Self>,
21491 decoder: &mut ___D,
21492 _: (),
21493 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21494 ::fidl_next::munge!(let Self { table } = slot);
21495
21496 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
21497 match ordinal {
21498 0 => unsafe { ::core::hint::unreachable_unchecked() },
21499
21500 1 => {
21501 ::fidl_next::wire::Envelope::decode_as::<
21502 ___D,
21503 ::fidl_next::wire::String<'de>,
21504 >(slot.as_mut(), decoder, 100)?;
21505
21506 let value = unsafe {
21507 slot.deref_unchecked()
21508 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21509 };
21510
21511 if value.len() > 100 {
21512 return Err(::fidl_next::DecodeError::VectorTooLong {
21513 size: value.len() as u64,
21514 limit: 100,
21515 });
21516 }
21517
21518 Ok(())
21519 }
21520
21521 2 => {
21522 ::fidl_next::wire::Envelope::decode_as::<
21523 ___D,
21524 ::fidl_next::wire::String<'de>,
21525 >(slot.as_mut(), decoder, 1024)?;
21526
21527 let value = unsafe {
21528 slot.deref_unchecked()
21529 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21530 };
21531
21532 if value.len() > 1024 {
21533 return Err(::fidl_next::DecodeError::VectorTooLong {
21534 size: value.len() as u64,
21535 limit: 1024,
21536 });
21537 }
21538
21539 Ok(())
21540 }
21541
21542 3 => {
21543 ::fidl_next::wire::Envelope::decode_as::<
21544 ___D,
21545 ::fidl_next_common_fuchsia_io::wire::Operations,
21546 >(slot.as_mut(), decoder, ())?;
21547
21548 Ok(())
21549 }
21550
21551 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
21552 }
21553 })
21554 }
21555 }
21556
21557 impl<'de> Directory<'de> {
21558 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21559 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
21560 }
21561
21562 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21563 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
21564 }
21565
21566 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21567 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
21568 }
21569
21570 pub fn take_source_path(
21571 &mut self,
21572 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21573 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
21574 }
21575
21576 pub fn rights(
21577 &self,
21578 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
21579 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
21580 }
21581
21582 pub fn take_rights(
21583 &mut self,
21584 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
21585 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
21586 }
21587 }
21588
21589 impl<'de> ::core::fmt::Debug for Directory<'de> {
21590 fn fmt(
21591 &self,
21592 f: &mut ::core::fmt::Formatter<'_>,
21593 ) -> ::core::result::Result<(), ::core::fmt::Error> {
21594 f.debug_struct("Directory")
21595 .field("name", &self.name())
21596 .field("source_path", &self.source_path())
21597 .field("rights", &self.rights())
21598 .finish()
21599 }
21600 }
21601
21602 impl<'de> ::fidl_next::IntoNatural for Directory<'de> {
21603 type Natural = crate::natural::Directory;
21604 }
21605
21606 pub type ParentRef = ::fidl_next::wire::Unit;
21608
21609 pub type SelfRef = ::fidl_next::wire::Unit;
21611
21612 pub type ChildName<'de> = ::fidl_next::wire::String<'de>;
21614
21615 #[derive(Debug)]
21617 #[repr(C)]
21618 pub struct ChildRef<'de> {
21619 pub name: ::fidl_next::wire::String<'de>,
21620
21621 pub collection: ::fidl_next::wire::OptionalString<'de>,
21622 }
21623
21624 static_assertions::const_assert_eq!(std::mem::size_of::<ChildRef<'_>>(), 32);
21625 static_assertions::const_assert_eq!(std::mem::align_of::<ChildRef<'_>>(), 8);
21626
21627 static_assertions::const_assert_eq!(std::mem::offset_of!(ChildRef<'_>, name), 0);
21628
21629 static_assertions::const_assert_eq!(std::mem::offset_of!(ChildRef<'_>, collection), 16);
21630
21631 impl ::fidl_next::Constrained for ChildRef<'_> {
21632 type Constraint = ();
21633
21634 fn validate(
21635 _: ::fidl_next::Slot<'_, Self>,
21636 _: Self::Constraint,
21637 ) -> Result<(), ::fidl_next::ValidationError> {
21638 Ok(())
21639 }
21640 }
21641
21642 unsafe impl ::fidl_next::Wire for ChildRef<'static> {
21643 type Narrowed<'de> = ChildRef<'de>;
21644
21645 #[inline]
21646 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
21647 ::fidl_next::munge! {
21648 let Self {
21649 name,
21650 collection,
21651
21652 } = &mut *out_;
21653 }
21654
21655 ::fidl_next::Wire::zero_padding(name);
21656
21657 ::fidl_next::Wire::zero_padding(collection);
21658 }
21659 }
21660
21661 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ChildRef<'de>
21662 where
21663 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
21664 ___D: ::fidl_next::Decoder<'de>,
21665 {
21666 fn decode(
21667 slot_: ::fidl_next::Slot<'_, Self>,
21668 decoder_: &mut ___D,
21669 _: (),
21670 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21671 ::fidl_next::munge! {
21672 let Self {
21673 mut name,
21674 mut collection,
21675
21676 } = slot_;
21677 }
21678
21679 let _field = name.as_mut();
21680 ::fidl_next::Constrained::validate(_field, 1024)?;
21681 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 1024)?;
21682
21683 let name = unsafe { name.deref_unchecked() };
21684
21685 if name.len() > 1024 {
21686 return Err(::fidl_next::DecodeError::VectorTooLong {
21687 size: name.len() as u64,
21688 limit: 1024,
21689 });
21690 }
21691
21692 let _field = collection.as_mut();
21693 ::fidl_next::Constrained::validate(_field, 100)?;
21694 ::fidl_next::Decode::decode(collection.as_mut(), decoder_, 100)?;
21695
21696 let collection = unsafe { collection.deref_unchecked() };
21697
21698 if let Some(collection) = collection.as_ref() {
21699 if collection.len() > 100 {
21700 return Err(::fidl_next::DecodeError::VectorTooLong {
21701 size: collection.len() as u64,
21702 limit: 100,
21703 });
21704 }
21705 }
21706
21707 Ok(())
21708 }
21709 }
21710
21711 impl<'de> ::fidl_next::IntoNatural for ChildRef<'de> {
21712 type Natural = crate::natural::ChildRef;
21713 }
21714
21715 #[derive(Debug)]
21717 #[repr(C)]
21718 pub struct CollectionRef<'de> {
21719 pub name: ::fidl_next::wire::String<'de>,
21720 }
21721
21722 static_assertions::const_assert_eq!(std::mem::size_of::<CollectionRef<'_>>(), 16);
21723 static_assertions::const_assert_eq!(std::mem::align_of::<CollectionRef<'_>>(), 8);
21724
21725 static_assertions::const_assert_eq!(std::mem::offset_of!(CollectionRef<'_>, name), 0);
21726
21727 impl ::fidl_next::Constrained for CollectionRef<'_> {
21728 type Constraint = ();
21729
21730 fn validate(
21731 _: ::fidl_next::Slot<'_, Self>,
21732 _: Self::Constraint,
21733 ) -> Result<(), ::fidl_next::ValidationError> {
21734 Ok(())
21735 }
21736 }
21737
21738 unsafe impl ::fidl_next::Wire for CollectionRef<'static> {
21739 type Narrowed<'de> = CollectionRef<'de>;
21740
21741 #[inline]
21742 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
21743 ::fidl_next::munge! {
21744 let Self {
21745 name,
21746
21747 } = &mut *out_;
21748 }
21749
21750 ::fidl_next::Wire::zero_padding(name);
21751 }
21752 }
21753
21754 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for CollectionRef<'de>
21755 where
21756 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
21757 ___D: ::fidl_next::Decoder<'de>,
21758 {
21759 fn decode(
21760 slot_: ::fidl_next::Slot<'_, Self>,
21761 decoder_: &mut ___D,
21762 _: (),
21763 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21764 ::fidl_next::munge! {
21765 let Self {
21766 mut name,
21767
21768 } = slot_;
21769 }
21770
21771 let _field = name.as_mut();
21772 ::fidl_next::Constrained::validate(_field, 100)?;
21773 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 100)?;
21774
21775 let name = unsafe { name.deref_unchecked() };
21776
21777 if name.len() > 100 {
21778 return Err(::fidl_next::DecodeError::VectorTooLong {
21779 size: name.len() as u64,
21780 limit: 100,
21781 });
21782 }
21783
21784 Ok(())
21785 }
21786 }
21787
21788 impl<'de> ::fidl_next::IntoNatural for CollectionRef<'de> {
21789 type Natural = crate::natural::CollectionRef;
21790 }
21791
21792 pub type FrameworkRef = ::fidl_next::wire::Unit;
21794
21795 #[derive(Debug)]
21797 #[repr(C)]
21798 pub struct CapabilityRef<'de> {
21799 pub name: ::fidl_next::wire::String<'de>,
21800 }
21801
21802 static_assertions::const_assert_eq!(std::mem::size_of::<CapabilityRef<'_>>(), 16);
21803 static_assertions::const_assert_eq!(std::mem::align_of::<CapabilityRef<'_>>(), 8);
21804
21805 static_assertions::const_assert_eq!(std::mem::offset_of!(CapabilityRef<'_>, name), 0);
21806
21807 impl ::fidl_next::Constrained for CapabilityRef<'_> {
21808 type Constraint = ();
21809
21810 fn validate(
21811 _: ::fidl_next::Slot<'_, Self>,
21812 _: Self::Constraint,
21813 ) -> Result<(), ::fidl_next::ValidationError> {
21814 Ok(())
21815 }
21816 }
21817
21818 unsafe impl ::fidl_next::Wire for CapabilityRef<'static> {
21819 type Narrowed<'de> = CapabilityRef<'de>;
21820
21821 #[inline]
21822 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
21823 ::fidl_next::munge! {
21824 let Self {
21825 name,
21826
21827 } = &mut *out_;
21828 }
21829
21830 ::fidl_next::Wire::zero_padding(name);
21831 }
21832 }
21833
21834 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for CapabilityRef<'de>
21835 where
21836 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
21837 ___D: ::fidl_next::Decoder<'de>,
21838 {
21839 fn decode(
21840 slot_: ::fidl_next::Slot<'_, Self>,
21841 decoder_: &mut ___D,
21842 _: (),
21843 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21844 ::fidl_next::munge! {
21845 let Self {
21846 mut name,
21847
21848 } = slot_;
21849 }
21850
21851 let _field = name.as_mut();
21852 ::fidl_next::Constrained::validate(_field, 100)?;
21853 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 100)?;
21854
21855 let name = unsafe { name.deref_unchecked() };
21856
21857 if name.len() > 100 {
21858 return Err(::fidl_next::DecodeError::VectorTooLong {
21859 size: name.len() as u64,
21860 limit: 100,
21861 });
21862 }
21863
21864 Ok(())
21865 }
21866 }
21867
21868 impl<'de> ::fidl_next::IntoNatural for CapabilityRef<'de> {
21869 type Natural = crate::natural::CapabilityRef;
21870 }
21871
21872 pub type DebugRef = ::fidl_next::wire::Unit;
21874
21875 pub type VoidRef = ::fidl_next::wire::Unit;
21877
21878 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21880 #[repr(transparent)]
21881 pub struct StorageId {
21882 pub(crate) value: ::fidl_next::wire::Uint32,
21883 }
21884
21885 impl ::fidl_next::Constrained for StorageId {
21886 type Constraint = ();
21887
21888 fn validate(
21889 _: ::fidl_next::Slot<'_, Self>,
21890 _: Self::Constraint,
21891 ) -> Result<(), ::fidl_next::ValidationError> {
21892 Ok(())
21893 }
21894 }
21895
21896 unsafe impl ::fidl_next::Wire for StorageId {
21897 type Narrowed<'de> = Self;
21898
21899 #[inline]
21900 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
21901 }
21903 }
21904
21905 impl StorageId {
21906 pub const STATIC_INSTANCE_ID: StorageId = StorageId { value: ::fidl_next::wire::Uint32(1) };
21907
21908 pub const STATIC_INSTANCE_ID_OR_MONIKER: StorageId =
21909 StorageId { value: ::fidl_next::wire::Uint32(2) };
21910 }
21911
21912 unsafe impl<___D> ::fidl_next::Decode<___D> for StorageId
21913 where
21914 ___D: ?Sized,
21915 {
21916 fn decode(
21917 slot: ::fidl_next::Slot<'_, Self>,
21918 _: &mut ___D,
21919 _: (),
21920 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21921 ::fidl_next::munge!(let Self { value } = slot);
21922
21923 match u32::from(*value) {
21924 1 | 2 => (),
21925 unknown => {
21926 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
21927 }
21928 }
21929
21930 Ok(())
21931 }
21932 }
21933
21934 impl ::core::convert::From<crate::natural::StorageId> for StorageId {
21935 fn from(natural: crate::natural::StorageId) -> Self {
21936 match natural {
21937 crate::natural::StorageId::StaticInstanceId => StorageId::STATIC_INSTANCE_ID,
21938
21939 crate::natural::StorageId::StaticInstanceIdOrMoniker => {
21940 StorageId::STATIC_INSTANCE_ID_OR_MONIKER
21941 }
21942 }
21943 }
21944 }
21945
21946 impl ::fidl_next::IntoNatural for StorageId {
21947 type Natural = crate::natural::StorageId;
21948 }
21949
21950 #[repr(C)]
21952 pub struct Runner<'de> {
21953 pub(crate) table: ::fidl_next::wire::Table<'de>,
21954 }
21955
21956 impl<'de> Drop for Runner<'de> {
21957 fn drop(&mut self) {
21958 let _ = self.table.get(1).map(|envelope| unsafe {
21959 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21960 });
21961
21962 let _ = self.table.get(2).map(|envelope| unsafe {
21963 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21964 });
21965 }
21966 }
21967
21968 impl ::fidl_next::Constrained for Runner<'_> {
21969 type Constraint = ();
21970
21971 fn validate(
21972 _: ::fidl_next::Slot<'_, Self>,
21973 _: Self::Constraint,
21974 ) -> Result<(), ::fidl_next::ValidationError> {
21975 Ok(())
21976 }
21977 }
21978
21979 unsafe impl ::fidl_next::Wire for Runner<'static> {
21980 type Narrowed<'de> = Runner<'de>;
21981
21982 #[inline]
21983 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
21984 ::fidl_next::munge!(let Self { table } = out);
21985 ::fidl_next::wire::Table::zero_padding(table);
21986 }
21987 }
21988
21989 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Runner<'de>
21990 where
21991 ___D: ::fidl_next::Decoder<'de> + ?Sized,
21992 {
21993 fn decode(
21994 slot: ::fidl_next::Slot<'_, Self>,
21995 decoder: &mut ___D,
21996 _: (),
21997 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21998 ::fidl_next::munge!(let Self { table } = slot);
21999
22000 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22001 match ordinal {
22002 0 => unsafe { ::core::hint::unreachable_unchecked() },
22003
22004 1 => {
22005 ::fidl_next::wire::Envelope::decode_as::<
22006 ___D,
22007 ::fidl_next::wire::String<'de>,
22008 >(slot.as_mut(), decoder, 100)?;
22009
22010 let value = unsafe {
22011 slot.deref_unchecked()
22012 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22013 };
22014
22015 if value.len() > 100 {
22016 return Err(::fidl_next::DecodeError::VectorTooLong {
22017 size: value.len() as u64,
22018 limit: 100,
22019 });
22020 }
22021
22022 Ok(())
22023 }
22024
22025 2 => {
22026 ::fidl_next::wire::Envelope::decode_as::<
22027 ___D,
22028 ::fidl_next::wire::String<'de>,
22029 >(slot.as_mut(), decoder, 1024)?;
22030
22031 let value = unsafe {
22032 slot.deref_unchecked()
22033 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22034 };
22035
22036 if value.len() > 1024 {
22037 return Err(::fidl_next::DecodeError::VectorTooLong {
22038 size: value.len() as u64,
22039 limit: 1024,
22040 });
22041 }
22042
22043 Ok(())
22044 }
22045
22046 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
22047 }
22048 })
22049 }
22050 }
22051
22052 impl<'de> Runner<'de> {
22053 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22054 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22055 }
22056
22057 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22058 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
22059 }
22060
22061 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22062 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
22063 }
22064
22065 pub fn take_source_path(
22066 &mut self,
22067 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22068 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
22069 }
22070 }
22071
22072 impl<'de> ::core::fmt::Debug for Runner<'de> {
22073 fn fmt(
22074 &self,
22075 f: &mut ::core::fmt::Formatter<'_>,
22076 ) -> ::core::result::Result<(), ::core::fmt::Error> {
22077 f.debug_struct("Runner")
22078 .field("name", &self.name())
22079 .field("source_path", &self.source_path())
22080 .finish()
22081 }
22082 }
22083
22084 impl<'de> ::fidl_next::IntoNatural for Runner<'de> {
22085 type Natural = crate::natural::Runner;
22086 }
22087
22088 #[repr(C)]
22090 pub struct Resolver<'de> {
22091 pub(crate) table: ::fidl_next::wire::Table<'de>,
22092 }
22093
22094 impl<'de> Drop for Resolver<'de> {
22095 fn drop(&mut self) {
22096 let _ = self.table.get(1).map(|envelope| unsafe {
22097 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22098 });
22099
22100 let _ = self.table.get(2).map(|envelope| unsafe {
22101 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22102 });
22103 }
22104 }
22105
22106 impl ::fidl_next::Constrained for Resolver<'_> {
22107 type Constraint = ();
22108
22109 fn validate(
22110 _: ::fidl_next::Slot<'_, Self>,
22111 _: Self::Constraint,
22112 ) -> Result<(), ::fidl_next::ValidationError> {
22113 Ok(())
22114 }
22115 }
22116
22117 unsafe impl ::fidl_next::Wire for Resolver<'static> {
22118 type Narrowed<'de> = Resolver<'de>;
22119
22120 #[inline]
22121 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22122 ::fidl_next::munge!(let Self { table } = out);
22123 ::fidl_next::wire::Table::zero_padding(table);
22124 }
22125 }
22126
22127 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Resolver<'de>
22128 where
22129 ___D: ::fidl_next::Decoder<'de> + ?Sized,
22130 {
22131 fn decode(
22132 slot: ::fidl_next::Slot<'_, Self>,
22133 decoder: &mut ___D,
22134 _: (),
22135 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22136 ::fidl_next::munge!(let Self { table } = slot);
22137
22138 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22139 match ordinal {
22140 0 => unsafe { ::core::hint::unreachable_unchecked() },
22141
22142 1 => {
22143 ::fidl_next::wire::Envelope::decode_as::<
22144 ___D,
22145 ::fidl_next::wire::String<'de>,
22146 >(slot.as_mut(), decoder, 100)?;
22147
22148 let value = unsafe {
22149 slot.deref_unchecked()
22150 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22151 };
22152
22153 if value.len() > 100 {
22154 return Err(::fidl_next::DecodeError::VectorTooLong {
22155 size: value.len() as u64,
22156 limit: 100,
22157 });
22158 }
22159
22160 Ok(())
22161 }
22162
22163 2 => {
22164 ::fidl_next::wire::Envelope::decode_as::<
22165 ___D,
22166 ::fidl_next::wire::String<'de>,
22167 >(slot.as_mut(), decoder, 1024)?;
22168
22169 let value = unsafe {
22170 slot.deref_unchecked()
22171 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22172 };
22173
22174 if value.len() > 1024 {
22175 return Err(::fidl_next::DecodeError::VectorTooLong {
22176 size: value.len() as u64,
22177 limit: 1024,
22178 });
22179 }
22180
22181 Ok(())
22182 }
22183
22184 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
22185 }
22186 })
22187 }
22188 }
22189
22190 impl<'de> Resolver<'de> {
22191 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22192 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22193 }
22194
22195 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22196 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
22197 }
22198
22199 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22200 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
22201 }
22202
22203 pub fn take_source_path(
22204 &mut self,
22205 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22206 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
22207 }
22208 }
22209
22210 impl<'de> ::core::fmt::Debug for Resolver<'de> {
22211 fn fmt(
22212 &self,
22213 f: &mut ::core::fmt::Formatter<'_>,
22214 ) -> ::core::result::Result<(), ::core::fmt::Error> {
22215 f.debug_struct("Resolver")
22216 .field("name", &self.name())
22217 .field("source_path", &self.source_path())
22218 .finish()
22219 }
22220 }
22221
22222 impl<'de> ::fidl_next::IntoNatural for Resolver<'de> {
22223 type Natural = crate::natural::Resolver;
22224 }
22225
22226 #[repr(C)]
22228 pub struct EventStream<'de> {
22229 pub(crate) table: ::fidl_next::wire::Table<'de>,
22230 }
22231
22232 impl<'de> Drop for EventStream<'de> {
22233 fn drop(&mut self) {
22234 let _ = self.table.get(1).map(|envelope| unsafe {
22235 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22236 });
22237 }
22238 }
22239
22240 impl ::fidl_next::Constrained for EventStream<'_> {
22241 type Constraint = ();
22242
22243 fn validate(
22244 _: ::fidl_next::Slot<'_, Self>,
22245 _: Self::Constraint,
22246 ) -> Result<(), ::fidl_next::ValidationError> {
22247 Ok(())
22248 }
22249 }
22250
22251 unsafe impl ::fidl_next::Wire for EventStream<'static> {
22252 type Narrowed<'de> = EventStream<'de>;
22253
22254 #[inline]
22255 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22256 ::fidl_next::munge!(let Self { table } = out);
22257 ::fidl_next::wire::Table::zero_padding(table);
22258 }
22259 }
22260
22261 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for EventStream<'de>
22262 where
22263 ___D: ::fidl_next::Decoder<'de> + ?Sized,
22264 {
22265 fn decode(
22266 slot: ::fidl_next::Slot<'_, Self>,
22267 decoder: &mut ___D,
22268 _: (),
22269 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22270 ::fidl_next::munge!(let Self { table } = slot);
22271
22272 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22273 match ordinal {
22274 0 => unsafe { ::core::hint::unreachable_unchecked() },
22275
22276 1 => {
22277 ::fidl_next::wire::Envelope::decode_as::<
22278 ___D,
22279 ::fidl_next::wire::String<'de>,
22280 >(slot.as_mut(), decoder, 100)?;
22281
22282 let value = unsafe {
22283 slot.deref_unchecked()
22284 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22285 };
22286
22287 if value.len() > 100 {
22288 return Err(::fidl_next::DecodeError::VectorTooLong {
22289 size: value.len() as u64,
22290 limit: 100,
22291 });
22292 }
22293
22294 Ok(())
22295 }
22296
22297 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
22298 }
22299 })
22300 }
22301 }
22302
22303 impl<'de> EventStream<'de> {
22304 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22305 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22306 }
22307
22308 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22309 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
22310 }
22311 }
22312
22313 impl<'de> ::core::fmt::Debug for EventStream<'de> {
22314 fn fmt(
22315 &self,
22316 f: &mut ::core::fmt::Formatter<'_>,
22317 ) -> ::core::result::Result<(), ::core::fmt::Error> {
22318 f.debug_struct("EventStream").field("name", &self.name()).finish()
22319 }
22320 }
22321
22322 impl<'de> ::fidl_next::IntoNatural for EventStream<'de> {
22323 type Natural = crate::natural::EventStream;
22324 }
22325
22326 #[repr(transparent)]
22328 pub struct ConfigSingleValue<'de> {
22329 pub(crate) raw: ::fidl_next::wire::Union,
22330 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
22331 }
22332
22333 impl<'de> Drop for ConfigSingleValue<'de> {
22334 fn drop(&mut self) {
22335 match self.raw.ordinal() {
22336 1 => {
22337 let _ = unsafe { self.raw.get().read_unchecked::<bool>() };
22338 }
22339
22340 2 => {
22341 let _ = unsafe { self.raw.get().read_unchecked::<u8>() };
22342 }
22343
22344 3 => {
22345 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint16>() };
22346 }
22347
22348 4 => {
22349 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint32>() };
22350 }
22351
22352 5 => {
22353 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint64>() };
22354 }
22355
22356 6 => {
22357 let _ = unsafe { self.raw.get().read_unchecked::<i8>() };
22358 }
22359
22360 7 => {
22361 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Int16>() };
22362 }
22363
22364 8 => {
22365 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Int32>() };
22366 }
22367
22368 9 => {
22369 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Int64>() };
22370 }
22371
22372 10 => {
22373 let _ = unsafe {
22374 self.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
22375 };
22376 }
22377
22378 _ => (),
22379 }
22380 }
22381 }
22382
22383 impl ::fidl_next::Constrained for ConfigSingleValue<'_> {
22384 type Constraint = ();
22385
22386 fn validate(
22387 _: ::fidl_next::Slot<'_, Self>,
22388 _: Self::Constraint,
22389 ) -> Result<(), ::fidl_next::ValidationError> {
22390 Ok(())
22391 }
22392 }
22393
22394 unsafe impl ::fidl_next::Wire for ConfigSingleValue<'static> {
22395 type Narrowed<'de> = ConfigSingleValue<'de>;
22396
22397 #[inline]
22398 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22399 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
22400 ::fidl_next::wire::Union::zero_padding(raw);
22401 }
22402 }
22403
22404 pub mod config_single_value {
22405 pub enum Ref<'de> {
22406 Bool(&'de bool),
22407
22408 Uint8(&'de u8),
22409
22410 Uint16(&'de ::fidl_next::wire::Uint16),
22411
22412 Uint32(&'de ::fidl_next::wire::Uint32),
22413
22414 Uint64(&'de ::fidl_next::wire::Uint64),
22415
22416 Int8(&'de i8),
22417
22418 Int16(&'de ::fidl_next::wire::Int16),
22419
22420 Int32(&'de ::fidl_next::wire::Int32),
22421
22422 Int64(&'de ::fidl_next::wire::Int64),
22423
22424 String(&'de ::fidl_next::wire::String<'de>),
22425
22426 UnknownOrdinal_(u64),
22427 }
22428
22429 pub enum Value<'de> {
22430 Bool(bool),
22431
22432 Uint8(u8),
22433
22434 Uint16(::fidl_next::wire::Uint16),
22435
22436 Uint32(::fidl_next::wire::Uint32),
22437
22438 Uint64(::fidl_next::wire::Uint64),
22439
22440 Int8(i8),
22441
22442 Int16(::fidl_next::wire::Int16),
22443
22444 Int32(::fidl_next::wire::Int32),
22445
22446 Int64(::fidl_next::wire::Int64),
22447
22448 String(::fidl_next::wire::String<'de>),
22449
22450 UnknownOrdinal_(u64),
22451 }
22452 }
22453
22454 impl<'de> ConfigSingleValue<'de> {
22455 pub fn as_ref(&self) -> crate::wire::config_single_value::Ref<'_> {
22456 match self.raw.ordinal() {
22457 1 => crate::wire::config_single_value::Ref::Bool(unsafe {
22458 self.raw.get().deref_unchecked::<bool>()
22459 }),
22460
22461 2 => crate::wire::config_single_value::Ref::Uint8(unsafe {
22462 self.raw.get().deref_unchecked::<u8>()
22463 }),
22464
22465 3 => crate::wire::config_single_value::Ref::Uint16(unsafe {
22466 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint16>()
22467 }),
22468
22469 4 => crate::wire::config_single_value::Ref::Uint32(unsafe {
22470 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
22471 }),
22472
22473 5 => crate::wire::config_single_value::Ref::Uint64(unsafe {
22474 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint64>()
22475 }),
22476
22477 6 => crate::wire::config_single_value::Ref::Int8(unsafe {
22478 self.raw.get().deref_unchecked::<i8>()
22479 }),
22480
22481 7 => crate::wire::config_single_value::Ref::Int16(unsafe {
22482 self.raw.get().deref_unchecked::<::fidl_next::wire::Int16>()
22483 }),
22484
22485 8 => crate::wire::config_single_value::Ref::Int32(unsafe {
22486 self.raw.get().deref_unchecked::<::fidl_next::wire::Int32>()
22487 }),
22488
22489 9 => crate::wire::config_single_value::Ref::Int64(unsafe {
22490 self.raw.get().deref_unchecked::<::fidl_next::wire::Int64>()
22491 }),
22492
22493 10 => crate::wire::config_single_value::Ref::String(unsafe {
22494 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>()
22495 }),
22496
22497 unknown => crate::wire::config_single_value::Ref::UnknownOrdinal_(unknown),
22498 }
22499 }
22500
22501 pub fn into_inner(self) -> crate::wire::config_single_value::Value<'de> {
22502 let this = ::core::mem::ManuallyDrop::new(self);
22503
22504 match this.raw.ordinal() {
22505 1 => crate::wire::config_single_value::Value::Bool(unsafe {
22506 this.raw.get().read_unchecked::<bool>()
22507 }),
22508
22509 2 => crate::wire::config_single_value::Value::Uint8(unsafe {
22510 this.raw.get().read_unchecked::<u8>()
22511 }),
22512
22513 3 => crate::wire::config_single_value::Value::Uint16(unsafe {
22514 this.raw.get().read_unchecked::<::fidl_next::wire::Uint16>()
22515 }),
22516
22517 4 => crate::wire::config_single_value::Value::Uint32(unsafe {
22518 this.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
22519 }),
22520
22521 5 => crate::wire::config_single_value::Value::Uint64(unsafe {
22522 this.raw.get().read_unchecked::<::fidl_next::wire::Uint64>()
22523 }),
22524
22525 6 => crate::wire::config_single_value::Value::Int8(unsafe {
22526 this.raw.get().read_unchecked::<i8>()
22527 }),
22528
22529 7 => crate::wire::config_single_value::Value::Int16(unsafe {
22530 this.raw.get().read_unchecked::<::fidl_next::wire::Int16>()
22531 }),
22532
22533 8 => crate::wire::config_single_value::Value::Int32(unsafe {
22534 this.raw.get().read_unchecked::<::fidl_next::wire::Int32>()
22535 }),
22536
22537 9 => crate::wire::config_single_value::Value::Int64(unsafe {
22538 this.raw.get().read_unchecked::<::fidl_next::wire::Int64>()
22539 }),
22540
22541 10 => crate::wire::config_single_value::Value::String(unsafe {
22542 this.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
22543 }),
22544
22545 unknown => crate::wire::config_single_value::Value::UnknownOrdinal_(unknown),
22546 }
22547 }
22548 }
22549
22550 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSingleValue<'de>
22551 where
22552 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22553 ___D: ::fidl_next::Decoder<'de>,
22554 {
22555 fn decode(
22556 mut slot: ::fidl_next::Slot<'_, Self>,
22557 decoder: &mut ___D,
22558 _: (),
22559 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22560 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
22561 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
22562 1 => ::fidl_next::wire::Union::decode_as::<___D, bool>(raw, decoder, ())?,
22563
22564 2 => ::fidl_next::wire::Union::decode_as::<___D, u8>(raw, decoder, ())?,
22565
22566 3 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint16>(
22567 raw,
22568 decoder,
22569 (),
22570 )?,
22571
22572 4 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
22573 raw,
22574 decoder,
22575 (),
22576 )?,
22577
22578 5 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint64>(
22579 raw,
22580 decoder,
22581 (),
22582 )?,
22583
22584 6 => ::fidl_next::wire::Union::decode_as::<___D, i8>(raw, decoder, ())?,
22585
22586 7 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int16>(
22587 raw,
22588 decoder,
22589 (),
22590 )?,
22591
22592 8 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int32>(
22593 raw,
22594 decoder,
22595 (),
22596 )?,
22597
22598 9 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int64>(
22599 raw,
22600 decoder,
22601 (),
22602 )?,
22603
22604 10 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
22605 raw, decoder, 4294967295,
22606 )?,
22607
22608 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
22609 }
22610
22611 Ok(())
22612 }
22613 }
22614
22615 impl<'de> ::core::fmt::Debug for ConfigSingleValue<'de> {
22616 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22617 match self.raw.ordinal() {
22618 1 => unsafe { self.raw.get().deref_unchecked::<bool>().fmt(f) },
22619 2 => unsafe { self.raw.get().deref_unchecked::<u8>().fmt(f) },
22620 3 => unsafe {
22621 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint16>().fmt(f)
22622 },
22623 4 => unsafe {
22624 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>().fmt(f)
22625 },
22626 5 => unsafe {
22627 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint64>().fmt(f)
22628 },
22629 6 => unsafe { self.raw.get().deref_unchecked::<i8>().fmt(f) },
22630 7 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::wire::Int16>().fmt(f) },
22631 8 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::wire::Int32>().fmt(f) },
22632 9 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::wire::Int64>().fmt(f) },
22633 10 => unsafe {
22634 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>().fmt(f)
22635 },
22636 _ => unsafe { ::core::hint::unreachable_unchecked() },
22637 }
22638 }
22639 }
22640
22641 impl<'de> ::fidl_next::IntoNatural for ConfigSingleValue<'de> {
22642 type Natural = crate::natural::ConfigSingleValue;
22643 }
22644
22645 #[repr(transparent)]
22647 pub struct ConfigVectorValue<'de> {
22648 pub(crate) raw: ::fidl_next::wire::Union,
22649 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
22650 }
22651
22652 impl<'de> Drop for ConfigVectorValue<'de> {
22653 fn drop(&mut self) {
22654 match self.raw.ordinal() {
22655 1 => {
22656 let _ = unsafe {
22657 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
22658 };
22659 }
22660
22661 2 => {
22662 let _ = unsafe {
22663 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
22664 };
22665 }
22666
22667 3 => {
22668 let _ = unsafe {
22669 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
22670 };
22671 }
22672
22673 4 => {
22674 let _ = unsafe {
22675 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
22676 };
22677 }
22678
22679 5 => {
22680 let _ = unsafe {
22681 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
22682 };
22683 }
22684
22685 6 => {
22686 let _ = unsafe {
22687 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
22688 };
22689 }
22690
22691 7 => {
22692 let _ = unsafe {
22693 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
22694 };
22695 }
22696
22697 8 => {
22698 let _ = unsafe {
22699 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
22700 };
22701 }
22702
22703 9 => {
22704 let _ = unsafe {
22705 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
22706 };
22707 }
22708
22709 10 => {
22710 let _ = unsafe {
22711 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
22712 };
22713 }
22714
22715 _ => (),
22716 }
22717 }
22718 }
22719
22720 impl ::fidl_next::Constrained for ConfigVectorValue<'_> {
22721 type Constraint = ();
22722
22723 fn validate(
22724 _: ::fidl_next::Slot<'_, Self>,
22725 _: Self::Constraint,
22726 ) -> Result<(), ::fidl_next::ValidationError> {
22727 Ok(())
22728 }
22729 }
22730
22731 unsafe impl ::fidl_next::Wire for ConfigVectorValue<'static> {
22732 type Narrowed<'de> = ConfigVectorValue<'de>;
22733
22734 #[inline]
22735 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22736 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
22737 ::fidl_next::wire::Union::zero_padding(raw);
22738 }
22739 }
22740
22741 pub mod config_vector_value {
22742 pub enum Ref<'de> {
22743 BoolVector(&'de ::fidl_next::wire::Vector<'de, bool>),
22744
22745 Uint8Vector(&'de ::fidl_next::wire::Vector<'de, u8>),
22746
22747 Uint16Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>),
22748
22749 Uint32Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>),
22750
22751 Uint64Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>),
22752
22753 Int8Vector(&'de ::fidl_next::wire::Vector<'de, i8>),
22754
22755 Int16Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>),
22756
22757 Int32Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>),
22758
22759 Int64Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>),
22760
22761 StringVector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>),
22762
22763 UnknownOrdinal_(u64),
22764 }
22765
22766 pub enum Value<'de> {
22767 BoolVector(::fidl_next::wire::Vector<'de, bool>),
22768
22769 Uint8Vector(::fidl_next::wire::Vector<'de, u8>),
22770
22771 Uint16Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>),
22772
22773 Uint32Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>),
22774
22775 Uint64Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>),
22776
22777 Int8Vector(::fidl_next::wire::Vector<'de, i8>),
22778
22779 Int16Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>),
22780
22781 Int32Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>),
22782
22783 Int64Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>),
22784
22785 StringVector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>),
22786
22787 UnknownOrdinal_(u64),
22788 }
22789 }
22790
22791 impl<'de> ConfigVectorValue<'de> {
22792 pub fn as_ref(&self) -> crate::wire::config_vector_value::Ref<'_> {
22793 match self.raw.ordinal() {
22794 1 => crate::wire::config_vector_value::Ref::BoolVector(unsafe {
22795 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, bool>>()
22796 }),
22797
22798 2 => crate::wire::config_vector_value::Ref::Uint8Vector(unsafe {
22799 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
22800 }),
22801
22802 3 => crate::wire::config_vector_value::Ref::Uint16Vector(unsafe {
22803 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint16>>()
22804 }),
22805
22806 4 => crate::wire::config_vector_value::Ref::Uint32Vector(unsafe {
22807 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint32>>()
22808 }),
22809
22810 5 => crate::wire::config_vector_value::Ref::Uint64Vector(unsafe {
22811 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint64>>()
22812 }),
22813
22814 6 => crate::wire::config_vector_value::Ref::Int8Vector(unsafe {
22815 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, i8>>()
22816 }),
22817
22818 7 => {
22819 crate::wire::config_vector_value::Ref::Int16Vector(unsafe {
22820 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int16>>()
22821 })
22822 }
22823
22824 8 => {
22825 crate::wire::config_vector_value::Ref::Int32Vector(unsafe {
22826 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int32>>()
22827 })
22828 }
22829
22830 9 => {
22831 crate::wire::config_vector_value::Ref::Int64Vector(unsafe {
22832 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int64>>()
22833 })
22834 }
22835
22836 10 => crate::wire::config_vector_value::Ref::StringVector(unsafe {
22837 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::String<'_>>>()
22838 }),
22839
22840 unknown => crate::wire::config_vector_value::Ref::UnknownOrdinal_(unknown),
22841 }
22842 }
22843
22844 pub fn into_inner(self) -> crate::wire::config_vector_value::Value<'de> {
22845 let this = ::core::mem::ManuallyDrop::new(self);
22846
22847 match this.raw.ordinal() {
22848 1 => crate::wire::config_vector_value::Value::BoolVector(unsafe {
22849 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
22850 }),
22851
22852 2 => crate::wire::config_vector_value::Value::Uint8Vector(unsafe {
22853 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
22854 }),
22855
22856 3 => crate::wire::config_vector_value::Value::Uint16Vector(unsafe {
22857 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
22858 }),
22859
22860 4 => crate::wire::config_vector_value::Value::Uint32Vector(unsafe {
22861 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
22862 }),
22863
22864 5 => crate::wire::config_vector_value::Value::Uint64Vector(unsafe {
22865 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
22866 }),
22867
22868 6 => crate::wire::config_vector_value::Value::Int8Vector(unsafe {
22869 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
22870 }),
22871
22872 7 => {
22873 crate::wire::config_vector_value::Value::Int16Vector(unsafe {
22874 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
22875 })
22876 }
22877
22878 8 => {
22879 crate::wire::config_vector_value::Value::Int32Vector(unsafe {
22880 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
22881 })
22882 }
22883
22884 9 => {
22885 crate::wire::config_vector_value::Value::Int64Vector(unsafe {
22886 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
22887 })
22888 }
22889
22890 10 => crate::wire::config_vector_value::Value::StringVector(unsafe {
22891 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
22892 }),
22893
22894 unknown => crate::wire::config_vector_value::Value::UnknownOrdinal_(unknown),
22895 }
22896 }
22897 }
22898
22899 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigVectorValue<'de>
22900 where
22901 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22902 ___D: ::fidl_next::Decoder<'de>,
22903 {
22904 fn decode(
22905 mut slot: ::fidl_next::Slot<'_, Self>,
22906 decoder: &mut ___D,
22907 _: (),
22908 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22909 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
22910 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
22911 1 => ::fidl_next::wire::Union::decode_as::<
22912 ___D,
22913 ::fidl_next::wire::Vector<'de, bool>,
22914 >(raw, decoder, (4294967295, ()))?,
22915
22916 2 => {
22917 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
22918 raw,
22919 decoder,
22920 (4294967295, ()),
22921 )?
22922 }
22923
22924 3 => ::fidl_next::wire::Union::decode_as::<
22925 ___D,
22926 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>,
22927 >(raw, decoder, (4294967295, ()))?,
22928
22929 4 => ::fidl_next::wire::Union::decode_as::<
22930 ___D,
22931 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>,
22932 >(raw, decoder, (4294967295, ()))?,
22933
22934 5 => ::fidl_next::wire::Union::decode_as::<
22935 ___D,
22936 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>,
22937 >(raw, decoder, (4294967295, ()))?,
22938
22939 6 => {
22940 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, i8>>(
22941 raw,
22942 decoder,
22943 (4294967295, ()),
22944 )?
22945 }
22946
22947 7 => ::fidl_next::wire::Union::decode_as::<
22948 ___D,
22949 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>,
22950 >(raw, decoder, (4294967295, ()))?,
22951
22952 8 => ::fidl_next::wire::Union::decode_as::<
22953 ___D,
22954 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>,
22955 >(raw, decoder, (4294967295, ()))?,
22956
22957 9 => ::fidl_next::wire::Union::decode_as::<
22958 ___D,
22959 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>,
22960 >(raw, decoder, (4294967295, ()))?,
22961
22962 10 => ::fidl_next::wire::Union::decode_as::<
22963 ___D,
22964 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
22965 >(raw, decoder, (4294967295, 4294967295))?,
22966
22967 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
22968 }
22969
22970 Ok(())
22971 }
22972 }
22973
22974 impl<'de> ::core::fmt::Debug for ConfigVectorValue<'de> {
22975 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22976 match self.raw.ordinal() {
22977 1 => unsafe {
22978 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, bool>>().fmt(f)
22979 },
22980 2 => unsafe {
22981 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>().fmt(f)
22982 },
22983 3 => unsafe {
22984 self.raw.get().deref_unchecked::<
22985 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint16>
22986 >().fmt(f)
22987 },
22988 4 => unsafe {
22989 self.raw.get().deref_unchecked::<
22990 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint32>
22991 >().fmt(f)
22992 },
22993 5 => unsafe {
22994 self.raw.get().deref_unchecked::<
22995 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint64>
22996 >().fmt(f)
22997 },
22998 6 => unsafe {
22999 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, i8>>().fmt(f)
23000 },
23001 7 => unsafe {
23002 self.raw
23003 .get()
23004 .deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int16>>(
23005 )
23006 .fmt(f)
23007 },
23008 8 => unsafe {
23009 self.raw
23010 .get()
23011 .deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int32>>(
23012 )
23013 .fmt(f)
23014 },
23015 9 => unsafe {
23016 self.raw
23017 .get()
23018 .deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int64>>(
23019 )
23020 .fmt(f)
23021 },
23022 10 => unsafe {
23023 self.raw.get().deref_unchecked::<
23024 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::String<'_>>
23025 >().fmt(f)
23026 },
23027 _ => unsafe { ::core::hint::unreachable_unchecked() },
23028 }
23029 }
23030 }
23031
23032 impl<'de> ::fidl_next::IntoNatural for ConfigVectorValue<'de> {
23033 type Natural = crate::natural::ConfigVectorValue;
23034 }
23035
23036 #[repr(transparent)]
23038 pub struct ConfigValue<'de> {
23039 pub(crate) raw: ::fidl_next::wire::Union,
23040 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
23041 }
23042
23043 impl<'de> Drop for ConfigValue<'de> {
23044 fn drop(&mut self) {
23045 match self.raw.ordinal() {
23046 1 => {
23047 let _ = unsafe {
23048 self.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
23049 };
23050 }
23051
23052 2 => {
23053 let _ = unsafe {
23054 self.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
23055 };
23056 }
23057
23058 _ => (),
23059 }
23060 }
23061 }
23062
23063 impl ::fidl_next::Constrained for ConfigValue<'_> {
23064 type Constraint = ();
23065
23066 fn validate(
23067 _: ::fidl_next::Slot<'_, Self>,
23068 _: Self::Constraint,
23069 ) -> Result<(), ::fidl_next::ValidationError> {
23070 Ok(())
23071 }
23072 }
23073
23074 unsafe impl ::fidl_next::Wire for ConfigValue<'static> {
23075 type Narrowed<'de> = ConfigValue<'de>;
23076
23077 #[inline]
23078 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23079 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
23080 ::fidl_next::wire::Union::zero_padding(raw);
23081 }
23082 }
23083
23084 pub mod config_value {
23085 pub enum Ref<'de> {
23086 Single(&'de crate::wire::ConfigSingleValue<'de>),
23087
23088 Vector(&'de crate::wire::ConfigVectorValue<'de>),
23089
23090 UnknownOrdinal_(u64),
23091 }
23092
23093 pub enum Value<'de> {
23094 Single(crate::wire::ConfigSingleValue<'de>),
23095
23096 Vector(crate::wire::ConfigVectorValue<'de>),
23097
23098 UnknownOrdinal_(u64),
23099 }
23100 }
23101
23102 impl<'de> ConfigValue<'de> {
23103 pub fn as_ref(&self) -> crate::wire::config_value::Ref<'_> {
23104 match self.raw.ordinal() {
23105 1 => crate::wire::config_value::Ref::Single(unsafe {
23106 self.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'_>>()
23107 }),
23108
23109 2 => crate::wire::config_value::Ref::Vector(unsafe {
23110 self.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'_>>()
23111 }),
23112
23113 unknown => crate::wire::config_value::Ref::UnknownOrdinal_(unknown),
23114 }
23115 }
23116
23117 pub fn into_inner(self) -> crate::wire::config_value::Value<'de> {
23118 let this = ::core::mem::ManuallyDrop::new(self);
23119
23120 match this.raw.ordinal() {
23121 1 => crate::wire::config_value::Value::Single(unsafe {
23122 this.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
23123 }),
23124
23125 2 => crate::wire::config_value::Value::Vector(unsafe {
23126 this.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
23127 }),
23128
23129 unknown => crate::wire::config_value::Value::UnknownOrdinal_(unknown),
23130 }
23131 }
23132 }
23133
23134 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValue<'de>
23135 where
23136 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23137 ___D: ::fidl_next::Decoder<'de>,
23138 {
23139 fn decode(
23140 mut slot: ::fidl_next::Slot<'_, Self>,
23141 decoder: &mut ___D,
23142 _: (),
23143 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23144 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23145 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
23146 1 => ::fidl_next::wire::Union::decode_as::<
23147 ___D,
23148 crate::wire::ConfigSingleValue<'de>,
23149 >(raw, decoder, ())?,
23150
23151 2 => ::fidl_next::wire::Union::decode_as::<
23152 ___D,
23153 crate::wire::ConfigVectorValue<'de>,
23154 >(raw, decoder, ())?,
23155
23156 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
23157 }
23158
23159 Ok(())
23160 }
23161 }
23162
23163 impl<'de> ::core::fmt::Debug for ConfigValue<'de> {
23164 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23165 match self.raw.ordinal() {
23166 1 => unsafe {
23167 self.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'_>>().fmt(f)
23168 },
23169 2 => unsafe {
23170 self.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'_>>().fmt(f)
23171 },
23172 _ => unsafe { ::core::hint::unreachable_unchecked() },
23173 }
23174 }
23175 }
23176
23177 impl<'de> ::fidl_next::IntoNatural for ConfigValue<'de> {
23178 type Natural = crate::natural::ConfigValue;
23179 }
23180
23181 #[repr(C)]
23183 pub struct Configuration<'de> {
23184 pub(crate) table: ::fidl_next::wire::Table<'de>,
23185 }
23186
23187 impl<'de> Drop for Configuration<'de> {
23188 fn drop(&mut self) {
23189 let _ = self.table.get(1).map(|envelope| unsafe {
23190 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23191 });
23192
23193 let _ = self.table.get(2).map(|envelope| unsafe {
23194 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
23195 });
23196 }
23197 }
23198
23199 impl ::fidl_next::Constrained for Configuration<'_> {
23200 type Constraint = ();
23201
23202 fn validate(
23203 _: ::fidl_next::Slot<'_, Self>,
23204 _: Self::Constraint,
23205 ) -> Result<(), ::fidl_next::ValidationError> {
23206 Ok(())
23207 }
23208 }
23209
23210 unsafe impl ::fidl_next::Wire for Configuration<'static> {
23211 type Narrowed<'de> = Configuration<'de>;
23212
23213 #[inline]
23214 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23215 ::fidl_next::munge!(let Self { table } = out);
23216 ::fidl_next::wire::Table::zero_padding(table);
23217 }
23218 }
23219
23220 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Configuration<'de>
23221 where
23222 ___D: ::fidl_next::Decoder<'de> + ?Sized,
23223 {
23224 fn decode(
23225 slot: ::fidl_next::Slot<'_, Self>,
23226 decoder: &mut ___D,
23227 _: (),
23228 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23229 ::fidl_next::munge!(let Self { table } = slot);
23230
23231 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
23232 match ordinal {
23233 0 => unsafe { ::core::hint::unreachable_unchecked() },
23234
23235 1 => {
23236 ::fidl_next::wire::Envelope::decode_as::<
23237 ___D,
23238 ::fidl_next::wire::String<'de>,
23239 >(slot.as_mut(), decoder, 100)?;
23240
23241 let value = unsafe {
23242 slot.deref_unchecked()
23243 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23244 };
23245
23246 if value.len() > 100 {
23247 return Err(::fidl_next::DecodeError::VectorTooLong {
23248 size: value.len() as u64,
23249 limit: 100,
23250 });
23251 }
23252
23253 Ok(())
23254 }
23255
23256 2 => {
23257 ::fidl_next::wire::Envelope::decode_as::<
23258 ___D,
23259 crate::wire::ConfigValue<'de>,
23260 >(slot.as_mut(), decoder, ())?;
23261
23262 Ok(())
23263 }
23264
23265 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
23266 }
23267 })
23268 }
23269 }
23270
23271 impl<'de> Configuration<'de> {
23272 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
23273 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
23274 }
23275
23276 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
23277 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
23278 }
23279
23280 pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
23281 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
23282 }
23283
23284 pub fn take_value(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
23285 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
23286 }
23287 }
23288
23289 impl<'de> ::core::fmt::Debug for Configuration<'de> {
23290 fn fmt(
23291 &self,
23292 f: &mut ::core::fmt::Formatter<'_>,
23293 ) -> ::core::result::Result<(), ::core::fmt::Error> {
23294 f.debug_struct("Configuration")
23295 .field("name", &self.name())
23296 .field("value", &self.value())
23297 .finish()
23298 }
23299 }
23300
23301 impl<'de> ::fidl_next::IntoNatural for Configuration<'de> {
23302 type Natural = crate::natural::Configuration;
23303 }
23304
23305 pub type DictionaryPath<'de> = ::fidl_next::wire::String<'de>;
23307
23308 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
23310 #[repr(transparent)]
23311 pub struct DeliveryType {
23312 pub(crate) value: ::fidl_next::wire::Uint32,
23313 }
23314
23315 impl ::fidl_next::Constrained for DeliveryType {
23316 type Constraint = ();
23317
23318 fn validate(
23319 _: ::fidl_next::Slot<'_, Self>,
23320 _: Self::Constraint,
23321 ) -> Result<(), ::fidl_next::ValidationError> {
23322 Ok(())
23323 }
23324 }
23325
23326 unsafe impl ::fidl_next::Wire for DeliveryType {
23327 type Narrowed<'de> = Self;
23328
23329 #[inline]
23330 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
23331 }
23333 }
23334
23335 impl DeliveryType {
23336 pub const IMMEDIATE: DeliveryType = DeliveryType { value: ::fidl_next::wire::Uint32(0) };
23337
23338 pub const ON_READABLE: DeliveryType = DeliveryType { value: ::fidl_next::wire::Uint32(1) };
23339 }
23340
23341 unsafe impl<___D> ::fidl_next::Decode<___D> for DeliveryType
23342 where
23343 ___D: ?Sized,
23344 {
23345 fn decode(
23346 slot: ::fidl_next::Slot<'_, Self>,
23347 _: &mut ___D,
23348 _: (),
23349 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23350 Ok(())
23351 }
23352 }
23353
23354 impl ::core::convert::From<crate::natural::DeliveryType> for DeliveryType {
23355 fn from(natural: crate::natural::DeliveryType) -> Self {
23356 match natural {
23357 crate::natural::DeliveryType::Immediate => DeliveryType::IMMEDIATE,
23358
23359 crate::natural::DeliveryType::OnReadable => DeliveryType::ON_READABLE,
23360
23361 crate::natural::DeliveryType::UnknownOrdinal_(value) => {
23362 DeliveryType { value: ::fidl_next::wire::Uint32::from(value) }
23363 }
23364 }
23365 }
23366 }
23367
23368 impl ::fidl_next::IntoNatural for DeliveryType {
23369 type Natural = crate::natural::DeliveryType;
23370 }
23371
23372 #[repr(C)]
23374 pub struct Protocol<'de> {
23375 pub(crate) table: ::fidl_next::wire::Table<'de>,
23376 }
23377
23378 impl<'de> Drop for Protocol<'de> {
23379 fn drop(&mut self) {
23380 let _ = self.table.get(1).map(|envelope| unsafe {
23381 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23382 });
23383
23384 let _ = self.table.get(2).map(|envelope| unsafe {
23385 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23386 });
23387
23388 let _ = self
23389 .table
23390 .get(3)
23391 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::DeliveryType>() });
23392 }
23393 }
23394
23395 impl ::fidl_next::Constrained for Protocol<'_> {
23396 type Constraint = ();
23397
23398 fn validate(
23399 _: ::fidl_next::Slot<'_, Self>,
23400 _: Self::Constraint,
23401 ) -> Result<(), ::fidl_next::ValidationError> {
23402 Ok(())
23403 }
23404 }
23405
23406 unsafe impl ::fidl_next::Wire for Protocol<'static> {
23407 type Narrowed<'de> = Protocol<'de>;
23408
23409 #[inline]
23410 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23411 ::fidl_next::munge!(let Self { table } = out);
23412 ::fidl_next::wire::Table::zero_padding(table);
23413 }
23414 }
23415
23416 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Protocol<'de>
23417 where
23418 ___D: ::fidl_next::Decoder<'de> + ?Sized,
23419 {
23420 fn decode(
23421 slot: ::fidl_next::Slot<'_, Self>,
23422 decoder: &mut ___D,
23423 _: (),
23424 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23425 ::fidl_next::munge!(let Self { table } = slot);
23426
23427 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
23428 match ordinal {
23429 0 => unsafe { ::core::hint::unreachable_unchecked() },
23430
23431 1 => {
23432 ::fidl_next::wire::Envelope::decode_as::<
23433 ___D,
23434 ::fidl_next::wire::String<'de>,
23435 >(slot.as_mut(), decoder, 100)?;
23436
23437 let value = unsafe {
23438 slot.deref_unchecked()
23439 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23440 };
23441
23442 if value.len() > 100 {
23443 return Err(::fidl_next::DecodeError::VectorTooLong {
23444 size: value.len() as u64,
23445 limit: 100,
23446 });
23447 }
23448
23449 Ok(())
23450 }
23451
23452 2 => {
23453 ::fidl_next::wire::Envelope::decode_as::<
23454 ___D,
23455 ::fidl_next::wire::String<'de>,
23456 >(slot.as_mut(), decoder, 1024)?;
23457
23458 let value = unsafe {
23459 slot.deref_unchecked()
23460 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23461 };
23462
23463 if value.len() > 1024 {
23464 return Err(::fidl_next::DecodeError::VectorTooLong {
23465 size: value.len() as u64,
23466 limit: 1024,
23467 });
23468 }
23469
23470 Ok(())
23471 }
23472
23473 3 => {
23474 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DeliveryType>(
23475 slot.as_mut(),
23476 decoder,
23477 (),
23478 )?;
23479
23480 Ok(())
23481 }
23482
23483 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
23484 }
23485 })
23486 }
23487 }
23488
23489 impl<'de> Protocol<'de> {
23490 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
23491 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
23492 }
23493
23494 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
23495 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
23496 }
23497
23498 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
23499 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
23500 }
23501
23502 pub fn take_source_path(
23503 &mut self,
23504 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
23505 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
23506 }
23507
23508 pub fn delivery(&self) -> ::core::option::Option<&crate::wire::DeliveryType> {
23509 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
23510 }
23511
23512 pub fn take_delivery(&mut self) -> ::core::option::Option<crate::wire::DeliveryType> {
23513 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
23514 }
23515 }
23516
23517 impl<'de> ::core::fmt::Debug for Protocol<'de> {
23518 fn fmt(
23519 &self,
23520 f: &mut ::core::fmt::Formatter<'_>,
23521 ) -> ::core::result::Result<(), ::core::fmt::Error> {
23522 f.debug_struct("Protocol")
23523 .field("name", &self.name())
23524 .field("source_path", &self.source_path())
23525 .field("delivery", &self.delivery())
23526 .finish()
23527 }
23528 }
23529
23530 impl<'de> ::fidl_next::IntoNatural for Protocol<'de> {
23531 type Natural = crate::natural::Protocol;
23532 }
23533
23534 pub type EnvironmentRef = ::fidl_next::wire::Unit;
23536
23537 #[repr(transparent)]
23539 pub struct Ref<'de> {
23540 pub(crate) raw: ::fidl_next::wire::Union,
23541 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
23542 }
23543
23544 impl<'de> Drop for Ref<'de> {
23545 fn drop(&mut self) {
23546 match self.raw.ordinal() {
23547 1 => {
23548 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::ParentRef>() };
23549 }
23550
23551 2 => {
23552 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::SelfRef>() };
23553 }
23554
23555 3 => {
23556 let _ =
23557 unsafe { self.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>() };
23558 }
23559
23560 4 => {
23561 let _ = unsafe {
23562 self.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
23563 };
23564 }
23565
23566 5 => {
23567 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::FrameworkRef>() };
23568 }
23569
23570 6 => {
23571 let _ = unsafe {
23572 self.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
23573 };
23574 }
23575
23576 7 => {
23577 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::DebugRef>() };
23578 }
23579
23580 8 => {
23581 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::VoidRef>() };
23582 }
23583
23584 9 => {
23585 let _ =
23586 unsafe { self.raw.get().read_unchecked::<crate::wire::EnvironmentRef>() };
23587 }
23588
23589 _ => (),
23590 }
23591 }
23592 }
23593
23594 impl ::fidl_next::Constrained for Ref<'_> {
23595 type Constraint = ();
23596
23597 fn validate(
23598 _: ::fidl_next::Slot<'_, Self>,
23599 _: Self::Constraint,
23600 ) -> Result<(), ::fidl_next::ValidationError> {
23601 Ok(())
23602 }
23603 }
23604
23605 unsafe impl ::fidl_next::Wire for Ref<'static> {
23606 type Narrowed<'de> = Ref<'de>;
23607
23608 #[inline]
23609 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23610 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
23611 ::fidl_next::wire::Union::zero_padding(raw);
23612 }
23613 }
23614
23615 pub mod ref_ {
23616 pub enum Ref<'de> {
23617 Parent(&'de crate::wire::ParentRef),
23618
23619 Self_(&'de crate::wire::SelfRef),
23620
23621 Child(&'de crate::wire::ChildRef<'de>),
23622
23623 Collection(&'de crate::wire::CollectionRef<'de>),
23624
23625 Framework(&'de crate::wire::FrameworkRef),
23626
23627 Capability(&'de crate::wire::CapabilityRef<'de>),
23628
23629 Debug(&'de crate::wire::DebugRef),
23630
23631 VoidType(&'de crate::wire::VoidRef),
23632
23633 Environment(&'de crate::wire::EnvironmentRef),
23634
23635 UnknownOrdinal_(u64),
23636 }
23637
23638 pub enum Value<'de> {
23639 Parent(crate::wire::ParentRef),
23640
23641 Self_(crate::wire::SelfRef),
23642
23643 Child(crate::wire::ChildRef<'de>),
23644
23645 Collection(crate::wire::CollectionRef<'de>),
23646
23647 Framework(crate::wire::FrameworkRef),
23648
23649 Capability(crate::wire::CapabilityRef<'de>),
23650
23651 Debug(crate::wire::DebugRef),
23652
23653 VoidType(crate::wire::VoidRef),
23654
23655 Environment(crate::wire::EnvironmentRef),
23656
23657 UnknownOrdinal_(u64),
23658 }
23659 }
23660
23661 impl<'de> Ref<'de> {
23662 pub fn as_ref(&self) -> crate::wire::ref_::Ref<'_> {
23663 match self.raw.ordinal() {
23664 1 => crate::wire::ref_::Ref::Parent(unsafe {
23665 self.raw.get().deref_unchecked::<crate::wire::ParentRef>()
23666 }),
23667
23668 2 => crate::wire::ref_::Ref::Self_(unsafe {
23669 self.raw.get().deref_unchecked::<crate::wire::SelfRef>()
23670 }),
23671
23672 3 => crate::wire::ref_::Ref::Child(unsafe {
23673 self.raw.get().deref_unchecked::<crate::wire::ChildRef<'_>>()
23674 }),
23675
23676 4 => crate::wire::ref_::Ref::Collection(unsafe {
23677 self.raw.get().deref_unchecked::<crate::wire::CollectionRef<'_>>()
23678 }),
23679
23680 5 => crate::wire::ref_::Ref::Framework(unsafe {
23681 self.raw.get().deref_unchecked::<crate::wire::FrameworkRef>()
23682 }),
23683
23684 6 => crate::wire::ref_::Ref::Capability(unsafe {
23685 self.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'_>>()
23686 }),
23687
23688 7 => crate::wire::ref_::Ref::Debug(unsafe {
23689 self.raw.get().deref_unchecked::<crate::wire::DebugRef>()
23690 }),
23691
23692 8 => crate::wire::ref_::Ref::VoidType(unsafe {
23693 self.raw.get().deref_unchecked::<crate::wire::VoidRef>()
23694 }),
23695
23696 9 => crate::wire::ref_::Ref::Environment(unsafe {
23697 self.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>()
23698 }),
23699
23700 unknown => crate::wire::ref_::Ref::UnknownOrdinal_(unknown),
23701 }
23702 }
23703
23704 pub fn into_inner(self) -> crate::wire::ref_::Value<'de> {
23705 let this = ::core::mem::ManuallyDrop::new(self);
23706
23707 match this.raw.ordinal() {
23708 1 => crate::wire::ref_::Value::Parent(unsafe {
23709 this.raw.get().read_unchecked::<crate::wire::ParentRef>()
23710 }),
23711
23712 2 => crate::wire::ref_::Value::Self_(unsafe {
23713 this.raw.get().read_unchecked::<crate::wire::SelfRef>()
23714 }),
23715
23716 3 => crate::wire::ref_::Value::Child(unsafe {
23717 this.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>()
23718 }),
23719
23720 4 => crate::wire::ref_::Value::Collection(unsafe {
23721 this.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
23722 }),
23723
23724 5 => crate::wire::ref_::Value::Framework(unsafe {
23725 this.raw.get().read_unchecked::<crate::wire::FrameworkRef>()
23726 }),
23727
23728 6 => crate::wire::ref_::Value::Capability(unsafe {
23729 this.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
23730 }),
23731
23732 7 => crate::wire::ref_::Value::Debug(unsafe {
23733 this.raw.get().read_unchecked::<crate::wire::DebugRef>()
23734 }),
23735
23736 8 => crate::wire::ref_::Value::VoidType(unsafe {
23737 this.raw.get().read_unchecked::<crate::wire::VoidRef>()
23738 }),
23739
23740 9 => crate::wire::ref_::Value::Environment(unsafe {
23741 this.raw.get().read_unchecked::<crate::wire::EnvironmentRef>()
23742 }),
23743
23744 unknown => crate::wire::ref_::Value::UnknownOrdinal_(unknown),
23745 }
23746 }
23747 }
23748
23749 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Ref<'de>
23750 where
23751 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23752 ___D: ::fidl_next::Decoder<'de>,
23753 {
23754 fn decode(
23755 mut slot: ::fidl_next::Slot<'_, Self>,
23756 decoder: &mut ___D,
23757 _: (),
23758 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23759 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23760 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
23761 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ParentRef>(
23762 raw,
23763 decoder,
23764 (),
23765 )?,
23766
23767 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::SelfRef>(
23768 raw,
23769 decoder,
23770 (),
23771 )?,
23772
23773 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ChildRef<'de>>(
23774 raw,
23775 decoder,
23776 (),
23777 )?,
23778
23779 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CollectionRef<'de>>(
23780 raw,
23781 decoder,
23782 (),
23783 )?,
23784
23785 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::FrameworkRef>(
23786 raw,
23787 decoder,
23788 (),
23789 )?,
23790
23791 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CapabilityRef<'de>>(
23792 raw,
23793 decoder,
23794 (),
23795 )?,
23796
23797 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::DebugRef>(
23798 raw,
23799 decoder,
23800 (),
23801 )?,
23802
23803 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::VoidRef>(
23804 raw,
23805 decoder,
23806 (),
23807 )?,
23808
23809 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EnvironmentRef>(
23810 raw,
23811 decoder,
23812 (),
23813 )?,
23814
23815 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
23816 }
23817
23818 Ok(())
23819 }
23820 }
23821
23822 impl<'de> ::core::fmt::Debug for Ref<'de> {
23823 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23824 match self.raw.ordinal() {
23825 1 => unsafe { self.raw.get().deref_unchecked::<crate::wire::ParentRef>().fmt(f) },
23826 2 => unsafe { self.raw.get().deref_unchecked::<crate::wire::SelfRef>().fmt(f) },
23827 3 => unsafe {
23828 self.raw.get().deref_unchecked::<crate::wire::ChildRef<'_>>().fmt(f)
23829 },
23830 4 => unsafe {
23831 self.raw.get().deref_unchecked::<crate::wire::CollectionRef<'_>>().fmt(f)
23832 },
23833 5 => unsafe {
23834 self.raw.get().deref_unchecked::<crate::wire::FrameworkRef>().fmt(f)
23835 },
23836 6 => unsafe {
23837 self.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'_>>().fmt(f)
23838 },
23839 7 => unsafe { self.raw.get().deref_unchecked::<crate::wire::DebugRef>().fmt(f) },
23840 8 => unsafe { self.raw.get().deref_unchecked::<crate::wire::VoidRef>().fmt(f) },
23841 9 => unsafe {
23842 self.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>().fmt(f)
23843 },
23844 _ => unsafe { ::core::hint::unreachable_unchecked() },
23845 }
23846 }
23847 }
23848
23849 impl<'de> ::fidl_next::IntoNatural for Ref<'de> {
23850 type Natural = crate::natural::Ref;
23851 }
23852
23853 #[repr(C)]
23855 pub struct Storage<'de> {
23856 pub(crate) table: ::fidl_next::wire::Table<'de>,
23857 }
23858
23859 impl<'de> Drop for Storage<'de> {
23860 fn drop(&mut self) {
23861 let _ = self.table.get(1).map(|envelope| unsafe {
23862 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23863 });
23864
23865 let _ = self
23866 .table
23867 .get(2)
23868 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
23869
23870 let _ = self.table.get(3).map(|envelope| unsafe {
23871 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23872 });
23873
23874 let _ = self.table.get(4).map(|envelope| unsafe {
23875 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23876 });
23877
23878 let _ = self
23879 .table
23880 .get(5)
23881 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::StorageId>() });
23882 }
23883 }
23884
23885 impl ::fidl_next::Constrained for Storage<'_> {
23886 type Constraint = ();
23887
23888 fn validate(
23889 _: ::fidl_next::Slot<'_, Self>,
23890 _: Self::Constraint,
23891 ) -> Result<(), ::fidl_next::ValidationError> {
23892 Ok(())
23893 }
23894 }
23895
23896 unsafe impl ::fidl_next::Wire for Storage<'static> {
23897 type Narrowed<'de> = Storage<'de>;
23898
23899 #[inline]
23900 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23901 ::fidl_next::munge!(let Self { table } = out);
23902 ::fidl_next::wire::Table::zero_padding(table);
23903 }
23904 }
23905
23906 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Storage<'de>
23907 where
23908 ___D: ::fidl_next::Decoder<'de> + ?Sized,
23909 {
23910 fn decode(
23911 slot: ::fidl_next::Slot<'_, Self>,
23912 decoder: &mut ___D,
23913 _: (),
23914 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23915 ::fidl_next::munge!(let Self { table } = slot);
23916
23917 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
23918 match ordinal {
23919 0 => unsafe { ::core::hint::unreachable_unchecked() },
23920
23921 1 => {
23922 ::fidl_next::wire::Envelope::decode_as::<
23923 ___D,
23924 ::fidl_next::wire::String<'de>,
23925 >(slot.as_mut(), decoder, 100)?;
23926
23927 let value = unsafe {
23928 slot.deref_unchecked()
23929 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23930 };
23931
23932 if value.len() > 100 {
23933 return Err(::fidl_next::DecodeError::VectorTooLong {
23934 size: value.len() as u64,
23935 limit: 100,
23936 });
23937 }
23938
23939 Ok(())
23940 }
23941
23942 2 => {
23943 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
23944 slot.as_mut(),
23945 decoder,
23946 (),
23947 )?;
23948
23949 Ok(())
23950 }
23951
23952 3 => {
23953 ::fidl_next::wire::Envelope::decode_as::<
23954 ___D,
23955 ::fidl_next::wire::String<'de>,
23956 >(slot.as_mut(), decoder, 100)?;
23957
23958 let value = unsafe {
23959 slot.deref_unchecked()
23960 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23961 };
23962
23963 if value.len() > 100 {
23964 return Err(::fidl_next::DecodeError::VectorTooLong {
23965 size: value.len() as u64,
23966 limit: 100,
23967 });
23968 }
23969
23970 Ok(())
23971 }
23972
23973 4 => {
23974 ::fidl_next::wire::Envelope::decode_as::<
23975 ___D,
23976 ::fidl_next::wire::String<'de>,
23977 >(slot.as_mut(), decoder, 1024)?;
23978
23979 let value = unsafe {
23980 slot.deref_unchecked()
23981 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23982 };
23983
23984 if value.len() > 1024 {
23985 return Err(::fidl_next::DecodeError::VectorTooLong {
23986 size: value.len() as u64,
23987 limit: 1024,
23988 });
23989 }
23990
23991 Ok(())
23992 }
23993
23994 5 => {
23995 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::StorageId>(
23996 slot.as_mut(),
23997 decoder,
23998 (),
23999 )?;
24000
24001 Ok(())
24002 }
24003
24004 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
24005 }
24006 })
24007 }
24008 }
24009
24010 impl<'de> Storage<'de> {
24011 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24012 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24013 }
24014
24015 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24016 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
24017 }
24018
24019 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
24020 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24021 }
24022
24023 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
24024 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
24025 }
24026
24027 pub fn backing_dir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24028 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
24029 }
24030
24031 pub fn take_backing_dir(
24032 &mut self,
24033 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24034 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
24035 }
24036
24037 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24038 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
24039 }
24040
24041 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24042 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
24043 }
24044
24045 pub fn storage_id(&self) -> ::core::option::Option<&crate::wire::StorageId> {
24046 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
24047 }
24048
24049 pub fn take_storage_id(&mut self) -> ::core::option::Option<crate::wire::StorageId> {
24050 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
24051 }
24052 }
24053
24054 impl<'de> ::core::fmt::Debug for Storage<'de> {
24055 fn fmt(
24056 &self,
24057 f: &mut ::core::fmt::Formatter<'_>,
24058 ) -> ::core::result::Result<(), ::core::fmt::Error> {
24059 f.debug_struct("Storage")
24060 .field("name", &self.name())
24061 .field("source", &self.source())
24062 .field("backing_dir", &self.backing_dir())
24063 .field("subdir", &self.subdir())
24064 .field("storage_id", &self.storage_id())
24065 .finish()
24066 }
24067 }
24068
24069 impl<'de> ::fidl_next::IntoNatural for Storage<'de> {
24070 type Natural = crate::natural::Storage;
24071 }
24072
24073 #[repr(C)]
24075 pub struct Dictionary<'de> {
24076 pub(crate) table: ::fidl_next::wire::Table<'de>,
24077 }
24078
24079 impl<'de> Drop for Dictionary<'de> {
24080 fn drop(&mut self) {
24081 let _ = self.table.get(1).map(|envelope| unsafe {
24082 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24083 });
24084
24085 let _ = self
24086 .table
24087 .get(2)
24088 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
24089
24090 let _ = self.table.get(3).map(|envelope| unsafe {
24091 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24092 });
24093
24094 let _ = self.table.get(4).map(|envelope| unsafe {
24095 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24096 });
24097 }
24098 }
24099
24100 impl ::fidl_next::Constrained for Dictionary<'_> {
24101 type Constraint = ();
24102
24103 fn validate(
24104 _: ::fidl_next::Slot<'_, Self>,
24105 _: Self::Constraint,
24106 ) -> Result<(), ::fidl_next::ValidationError> {
24107 Ok(())
24108 }
24109 }
24110
24111 unsafe impl ::fidl_next::Wire for Dictionary<'static> {
24112 type Narrowed<'de> = Dictionary<'de>;
24113
24114 #[inline]
24115 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24116 ::fidl_next::munge!(let Self { table } = out);
24117 ::fidl_next::wire::Table::zero_padding(table);
24118 }
24119 }
24120
24121 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Dictionary<'de>
24122 where
24123 ___D: ::fidl_next::Decoder<'de> + ?Sized,
24124 {
24125 fn decode(
24126 slot: ::fidl_next::Slot<'_, Self>,
24127 decoder: &mut ___D,
24128 _: (),
24129 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24130 ::fidl_next::munge!(let Self { table } = slot);
24131
24132 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24133 match ordinal {
24134 0 => unsafe { ::core::hint::unreachable_unchecked() },
24135
24136 1 => {
24137 ::fidl_next::wire::Envelope::decode_as::<
24138 ___D,
24139 ::fidl_next::wire::String<'de>,
24140 >(slot.as_mut(), decoder, 100)?;
24141
24142 let value = unsafe {
24143 slot.deref_unchecked()
24144 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24145 };
24146
24147 if value.len() > 100 {
24148 return Err(::fidl_next::DecodeError::VectorTooLong {
24149 size: value.len() as u64,
24150 limit: 100,
24151 });
24152 }
24153
24154 Ok(())
24155 }
24156
24157 2 => {
24158 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
24159 slot.as_mut(),
24160 decoder,
24161 (),
24162 )?;
24163
24164 Ok(())
24165 }
24166
24167 3 => {
24168 ::fidl_next::wire::Envelope::decode_as::<
24169 ___D,
24170 ::fidl_next::wire::String<'de>,
24171 >(slot.as_mut(), decoder, 1024)?;
24172
24173 let value = unsafe {
24174 slot.deref_unchecked()
24175 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24176 };
24177
24178 if value.len() > 1024 {
24179 return Err(::fidl_next::DecodeError::VectorTooLong {
24180 size: value.len() as u64,
24181 limit: 1024,
24182 });
24183 }
24184
24185 Ok(())
24186 }
24187
24188 4 => {
24189 ::fidl_next::wire::Envelope::decode_as::<
24190 ___D,
24191 ::fidl_next::wire::String<'de>,
24192 >(slot.as_mut(), decoder, 1024)?;
24193
24194 let value = unsafe {
24195 slot.deref_unchecked()
24196 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24197 };
24198
24199 if value.len() > 1024 {
24200 return Err(::fidl_next::DecodeError::VectorTooLong {
24201 size: value.len() as u64,
24202 limit: 1024,
24203 });
24204 }
24205
24206 Ok(())
24207 }
24208
24209 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
24210 }
24211 })
24212 }
24213 }
24214
24215 impl<'de> Dictionary<'de> {
24216 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24217 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24218 }
24219
24220 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24221 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
24222 }
24223
24224 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
24225 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24226 }
24227
24228 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
24229 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
24230 }
24231
24232 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24233 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
24234 }
24235
24236 pub fn take_source_dictionary(
24237 &mut self,
24238 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24239 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
24240 }
24241
24242 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24243 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
24244 }
24245
24246 pub fn take_source_path(
24247 &mut self,
24248 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24249 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
24250 }
24251 }
24252
24253 impl<'de> ::core::fmt::Debug for Dictionary<'de> {
24254 fn fmt(
24255 &self,
24256 f: &mut ::core::fmt::Formatter<'_>,
24257 ) -> ::core::result::Result<(), ::core::fmt::Error> {
24258 f.debug_struct("Dictionary")
24259 .field("name", &self.name())
24260 .field("source", &self.source())
24261 .field("source_dictionary", &self.source_dictionary())
24262 .field("source_path", &self.source_path())
24263 .finish()
24264 }
24265 }
24266
24267 impl<'de> ::fidl_next::IntoNatural for Dictionary<'de> {
24268 type Natural = crate::natural::Dictionary;
24269 }
24270
24271 #[repr(transparent)]
24273 pub struct Capability<'de> {
24274 pub(crate) raw: ::fidl_next::wire::Union,
24275 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
24276 }
24277
24278 impl<'de> Drop for Capability<'de> {
24279 fn drop(&mut self) {
24280 match self.raw.ordinal() {
24281 1 => {
24282 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Service<'de>>() };
24283 }
24284
24285 2 => {
24286 let _ =
24287 unsafe { self.raw.get().read_unchecked::<crate::wire::Protocol<'de>>() };
24288 }
24289
24290 3 => {
24291 let _ =
24292 unsafe { self.raw.get().read_unchecked::<crate::wire::Directory<'de>>() };
24293 }
24294
24295 4 => {
24296 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Storage<'de>>() };
24297 }
24298
24299 5 => {
24300 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Runner<'de>>() };
24301 }
24302
24303 6 => {
24304 let _ =
24305 unsafe { self.raw.get().read_unchecked::<crate::wire::Resolver<'de>>() };
24306 }
24307
24308 8 => {
24309 let _ =
24310 unsafe { self.raw.get().read_unchecked::<crate::wire::EventStream<'de>>() };
24311 }
24312
24313 9 => {
24314 let _ =
24315 unsafe { self.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>() };
24316 }
24317
24318 10 => {
24319 let _ = unsafe {
24320 self.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
24321 };
24322 }
24323
24324 _ => (),
24325 }
24326 }
24327 }
24328
24329 impl ::fidl_next::Constrained for Capability<'_> {
24330 type Constraint = ();
24331
24332 fn validate(
24333 _: ::fidl_next::Slot<'_, Self>,
24334 _: Self::Constraint,
24335 ) -> Result<(), ::fidl_next::ValidationError> {
24336 Ok(())
24337 }
24338 }
24339
24340 unsafe impl ::fidl_next::Wire for Capability<'static> {
24341 type Narrowed<'de> = Capability<'de>;
24342
24343 #[inline]
24344 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24345 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
24346 ::fidl_next::wire::Union::zero_padding(raw);
24347 }
24348 }
24349
24350 pub mod capability {
24351 pub enum Ref<'de> {
24352 Service(&'de crate::wire::Service<'de>),
24353
24354 Protocol(&'de crate::wire::Protocol<'de>),
24355
24356 Directory(&'de crate::wire::Directory<'de>),
24357
24358 Storage(&'de crate::wire::Storage<'de>),
24359
24360 Runner(&'de crate::wire::Runner<'de>),
24361
24362 Resolver(&'de crate::wire::Resolver<'de>),
24363
24364 EventStream(&'de crate::wire::EventStream<'de>),
24365
24366 Dictionary(&'de crate::wire::Dictionary<'de>),
24367
24368 Config(&'de crate::wire::Configuration<'de>),
24369
24370 UnknownOrdinal_(u64),
24371 }
24372
24373 pub enum Value<'de> {
24374 Service(crate::wire::Service<'de>),
24375
24376 Protocol(crate::wire::Protocol<'de>),
24377
24378 Directory(crate::wire::Directory<'de>),
24379
24380 Storage(crate::wire::Storage<'de>),
24381
24382 Runner(crate::wire::Runner<'de>),
24383
24384 Resolver(crate::wire::Resolver<'de>),
24385
24386 EventStream(crate::wire::EventStream<'de>),
24387
24388 Dictionary(crate::wire::Dictionary<'de>),
24389
24390 Config(crate::wire::Configuration<'de>),
24391
24392 UnknownOrdinal_(u64),
24393 }
24394 }
24395
24396 impl<'de> Capability<'de> {
24397 pub fn as_ref(&self) -> crate::wire::capability::Ref<'_> {
24398 match self.raw.ordinal() {
24399 1 => crate::wire::capability::Ref::Service(unsafe {
24400 self.raw.get().deref_unchecked::<crate::wire::Service<'_>>()
24401 }),
24402
24403 2 => crate::wire::capability::Ref::Protocol(unsafe {
24404 self.raw.get().deref_unchecked::<crate::wire::Protocol<'_>>()
24405 }),
24406
24407 3 => crate::wire::capability::Ref::Directory(unsafe {
24408 self.raw.get().deref_unchecked::<crate::wire::Directory<'_>>()
24409 }),
24410
24411 4 => crate::wire::capability::Ref::Storage(unsafe {
24412 self.raw.get().deref_unchecked::<crate::wire::Storage<'_>>()
24413 }),
24414
24415 5 => crate::wire::capability::Ref::Runner(unsafe {
24416 self.raw.get().deref_unchecked::<crate::wire::Runner<'_>>()
24417 }),
24418
24419 6 => crate::wire::capability::Ref::Resolver(unsafe {
24420 self.raw.get().deref_unchecked::<crate::wire::Resolver<'_>>()
24421 }),
24422
24423 8 => crate::wire::capability::Ref::EventStream(unsafe {
24424 self.raw.get().deref_unchecked::<crate::wire::EventStream<'_>>()
24425 }),
24426
24427 9 => crate::wire::capability::Ref::Dictionary(unsafe {
24428 self.raw.get().deref_unchecked::<crate::wire::Dictionary<'_>>()
24429 }),
24430
24431 10 => crate::wire::capability::Ref::Config(unsafe {
24432 self.raw.get().deref_unchecked::<crate::wire::Configuration<'_>>()
24433 }),
24434
24435 unknown => crate::wire::capability::Ref::UnknownOrdinal_(unknown),
24436 }
24437 }
24438
24439 pub fn into_inner(self) -> crate::wire::capability::Value<'de> {
24440 let this = ::core::mem::ManuallyDrop::new(self);
24441
24442 match this.raw.ordinal() {
24443 1 => crate::wire::capability::Value::Service(unsafe {
24444 this.raw.get().read_unchecked::<crate::wire::Service<'de>>()
24445 }),
24446
24447 2 => crate::wire::capability::Value::Protocol(unsafe {
24448 this.raw.get().read_unchecked::<crate::wire::Protocol<'de>>()
24449 }),
24450
24451 3 => crate::wire::capability::Value::Directory(unsafe {
24452 this.raw.get().read_unchecked::<crate::wire::Directory<'de>>()
24453 }),
24454
24455 4 => crate::wire::capability::Value::Storage(unsafe {
24456 this.raw.get().read_unchecked::<crate::wire::Storage<'de>>()
24457 }),
24458
24459 5 => crate::wire::capability::Value::Runner(unsafe {
24460 this.raw.get().read_unchecked::<crate::wire::Runner<'de>>()
24461 }),
24462
24463 6 => crate::wire::capability::Value::Resolver(unsafe {
24464 this.raw.get().read_unchecked::<crate::wire::Resolver<'de>>()
24465 }),
24466
24467 8 => crate::wire::capability::Value::EventStream(unsafe {
24468 this.raw.get().read_unchecked::<crate::wire::EventStream<'de>>()
24469 }),
24470
24471 9 => crate::wire::capability::Value::Dictionary(unsafe {
24472 this.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>()
24473 }),
24474
24475 10 => crate::wire::capability::Value::Config(unsafe {
24476 this.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
24477 }),
24478
24479 unknown => crate::wire::capability::Value::UnknownOrdinal_(unknown),
24480 }
24481 }
24482 }
24483
24484 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Capability<'de>
24485 where
24486 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
24487 ___D: ::fidl_next::Decoder<'de>,
24488 {
24489 fn decode(
24490 mut slot: ::fidl_next::Slot<'_, Self>,
24491 decoder: &mut ___D,
24492 _: (),
24493 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24494 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
24495 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
24496 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Service<'de>>(
24497 raw,
24498 decoder,
24499 (),
24500 )?,
24501
24502 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Protocol<'de>>(
24503 raw,
24504 decoder,
24505 (),
24506 )?,
24507
24508 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Directory<'de>>(
24509 raw,
24510 decoder,
24511 (),
24512 )?,
24513
24514 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Storage<'de>>(
24515 raw,
24516 decoder,
24517 (),
24518 )?,
24519
24520 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Runner<'de>>(
24521 raw,
24522 decoder,
24523 (),
24524 )?,
24525
24526 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Resolver<'de>>(
24527 raw,
24528 decoder,
24529 (),
24530 )?,
24531
24532 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EventStream<'de>>(
24533 raw,
24534 decoder,
24535 (),
24536 )?,
24537
24538 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Dictionary<'de>>(
24539 raw,
24540 decoder,
24541 (),
24542 )?,
24543
24544 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Configuration<'de>>(
24545 raw,
24546 decoder,
24547 (),
24548 )?,
24549
24550 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
24551 }
24552
24553 Ok(())
24554 }
24555 }
24556
24557 impl<'de> ::core::fmt::Debug for Capability<'de> {
24558 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24559 match self.raw.ordinal() {
24560 1 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Service<'_>>().fmt(f) },
24561 2 => unsafe {
24562 self.raw.get().deref_unchecked::<crate::wire::Protocol<'_>>().fmt(f)
24563 },
24564 3 => unsafe {
24565 self.raw.get().deref_unchecked::<crate::wire::Directory<'_>>().fmt(f)
24566 },
24567 4 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Storage<'_>>().fmt(f) },
24568 5 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Runner<'_>>().fmt(f) },
24569 6 => unsafe {
24570 self.raw.get().deref_unchecked::<crate::wire::Resolver<'_>>().fmt(f)
24571 },
24572 8 => unsafe {
24573 self.raw.get().deref_unchecked::<crate::wire::EventStream<'_>>().fmt(f)
24574 },
24575 9 => unsafe {
24576 self.raw.get().deref_unchecked::<crate::wire::Dictionary<'_>>().fmt(f)
24577 },
24578 10 => unsafe {
24579 self.raw.get().deref_unchecked::<crate::wire::Configuration<'_>>().fmt(f)
24580 },
24581 _ => unsafe { ::core::hint::unreachable_unchecked() },
24582 }
24583 }
24584 }
24585
24586 impl<'de> ::fidl_next::IntoNatural for Capability<'de> {
24587 type Natural = crate::natural::Capability;
24588 }
24589
24590 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
24592 #[repr(transparent)]
24593 pub struct StartupMode {
24594 pub(crate) value: ::fidl_next::wire::Uint32,
24595 }
24596
24597 impl ::fidl_next::Constrained for StartupMode {
24598 type Constraint = ();
24599
24600 fn validate(
24601 _: ::fidl_next::Slot<'_, Self>,
24602 _: Self::Constraint,
24603 ) -> Result<(), ::fidl_next::ValidationError> {
24604 Ok(())
24605 }
24606 }
24607
24608 unsafe impl ::fidl_next::Wire for StartupMode {
24609 type Narrowed<'de> = Self;
24610
24611 #[inline]
24612 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
24613 }
24615 }
24616
24617 impl StartupMode {
24618 pub const LAZY: StartupMode = StartupMode { value: ::fidl_next::wire::Uint32(0) };
24619
24620 pub const EAGER: StartupMode = StartupMode { value: ::fidl_next::wire::Uint32(1) };
24621 }
24622
24623 unsafe impl<___D> ::fidl_next::Decode<___D> for StartupMode
24624 where
24625 ___D: ?Sized,
24626 {
24627 fn decode(
24628 slot: ::fidl_next::Slot<'_, Self>,
24629 _: &mut ___D,
24630 _: (),
24631 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24632 ::fidl_next::munge!(let Self { value } = slot);
24633
24634 match u32::from(*value) {
24635 0 | 1 => (),
24636 unknown => {
24637 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
24638 }
24639 }
24640
24641 Ok(())
24642 }
24643 }
24644
24645 impl ::core::convert::From<crate::natural::StartupMode> for StartupMode {
24646 fn from(natural: crate::natural::StartupMode) -> Self {
24647 match natural {
24648 crate::natural::StartupMode::Lazy => StartupMode::LAZY,
24649
24650 crate::natural::StartupMode::Eager => StartupMode::EAGER,
24651 }
24652 }
24653 }
24654
24655 impl ::fidl_next::IntoNatural for StartupMode {
24656 type Natural = crate::natural::StartupMode;
24657 }
24658
24659 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
24661 #[repr(transparent)]
24662 pub struct OnTerminate {
24663 pub(crate) value: ::fidl_next::wire::Uint32,
24664 }
24665
24666 impl ::fidl_next::Constrained for OnTerminate {
24667 type Constraint = ();
24668
24669 fn validate(
24670 _: ::fidl_next::Slot<'_, Self>,
24671 _: Self::Constraint,
24672 ) -> Result<(), ::fidl_next::ValidationError> {
24673 Ok(())
24674 }
24675 }
24676
24677 unsafe impl ::fidl_next::Wire for OnTerminate {
24678 type Narrowed<'de> = Self;
24679
24680 #[inline]
24681 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
24682 }
24684 }
24685
24686 impl OnTerminate {
24687 pub const NONE: OnTerminate = OnTerminate { value: ::fidl_next::wire::Uint32(0) };
24688
24689 pub const REBOOT: OnTerminate = OnTerminate { value: ::fidl_next::wire::Uint32(1) };
24690 }
24691
24692 unsafe impl<___D> ::fidl_next::Decode<___D> for OnTerminate
24693 where
24694 ___D: ?Sized,
24695 {
24696 fn decode(
24697 slot: ::fidl_next::Slot<'_, Self>,
24698 _: &mut ___D,
24699 _: (),
24700 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24701 ::fidl_next::munge!(let Self { value } = slot);
24702
24703 match u32::from(*value) {
24704 0 | 1 => (),
24705 unknown => {
24706 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
24707 }
24708 }
24709
24710 Ok(())
24711 }
24712 }
24713
24714 impl ::core::convert::From<crate::natural::OnTerminate> for OnTerminate {
24715 fn from(natural: crate::natural::OnTerminate) -> Self {
24716 match natural {
24717 crate::natural::OnTerminate::None => OnTerminate::NONE,
24718
24719 crate::natural::OnTerminate::Reboot => OnTerminate::REBOOT,
24720 }
24721 }
24722 }
24723
24724 impl ::fidl_next::IntoNatural for OnTerminate {
24725 type Natural = crate::natural::OnTerminate;
24726 }
24727
24728 pub type ConfigKey<'de> = ::fidl_next::wire::String<'de>;
24730
24731 #[repr(C)]
24733 pub struct ConfigOverride<'de> {
24734 pub(crate) table: ::fidl_next::wire::Table<'de>,
24735 }
24736
24737 impl<'de> Drop for ConfigOverride<'de> {
24738 fn drop(&mut self) {
24739 let _ = self.table.get(1).map(|envelope| unsafe {
24740 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24741 });
24742
24743 let _ = self.table.get(2).map(|envelope| unsafe {
24744 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
24745 });
24746 }
24747 }
24748
24749 impl ::fidl_next::Constrained for ConfigOverride<'_> {
24750 type Constraint = ();
24751
24752 fn validate(
24753 _: ::fidl_next::Slot<'_, Self>,
24754 _: Self::Constraint,
24755 ) -> Result<(), ::fidl_next::ValidationError> {
24756 Ok(())
24757 }
24758 }
24759
24760 unsafe impl ::fidl_next::Wire for ConfigOverride<'static> {
24761 type Narrowed<'de> = ConfigOverride<'de>;
24762
24763 #[inline]
24764 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24765 ::fidl_next::munge!(let Self { table } = out);
24766 ::fidl_next::wire::Table::zero_padding(table);
24767 }
24768 }
24769
24770 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigOverride<'de>
24771 where
24772 ___D: ::fidl_next::Decoder<'de> + ?Sized,
24773 {
24774 fn decode(
24775 slot: ::fidl_next::Slot<'_, Self>,
24776 decoder: &mut ___D,
24777 _: (),
24778 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24779 ::fidl_next::munge!(let Self { table } = slot);
24780
24781 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24782 match ordinal {
24783 0 => unsafe { ::core::hint::unreachable_unchecked() },
24784
24785 1 => {
24786 ::fidl_next::wire::Envelope::decode_as::<
24787 ___D,
24788 ::fidl_next::wire::String<'de>,
24789 >(slot.as_mut(), decoder, 64)?;
24790
24791 let value = unsafe {
24792 slot.deref_unchecked()
24793 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24794 };
24795
24796 if value.len() > 64 {
24797 return Err(::fidl_next::DecodeError::VectorTooLong {
24798 size: value.len() as u64,
24799 limit: 64,
24800 });
24801 }
24802
24803 Ok(())
24804 }
24805
24806 2 => {
24807 ::fidl_next::wire::Envelope::decode_as::<
24808 ___D,
24809 crate::wire::ConfigValue<'de>,
24810 >(slot.as_mut(), decoder, ())?;
24811
24812 Ok(())
24813 }
24814
24815 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
24816 }
24817 })
24818 }
24819 }
24820
24821 impl<'de> ConfigOverride<'de> {
24822 pub fn key(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24823 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24824 }
24825
24826 pub fn take_key(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24827 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
24828 }
24829
24830 pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
24831 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24832 }
24833
24834 pub fn take_value(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
24835 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
24836 }
24837 }
24838
24839 impl<'de> ::core::fmt::Debug for ConfigOverride<'de> {
24840 fn fmt(
24841 &self,
24842 f: &mut ::core::fmt::Formatter<'_>,
24843 ) -> ::core::result::Result<(), ::core::fmt::Error> {
24844 f.debug_struct("ConfigOverride")
24845 .field("key", &self.key())
24846 .field("value", &self.value())
24847 .finish()
24848 }
24849 }
24850
24851 impl<'de> ::fidl_next::IntoNatural for ConfigOverride<'de> {
24852 type Natural = crate::natural::ConfigOverride;
24853 }
24854
24855 #[repr(C)]
24857 pub struct Child<'de> {
24858 pub(crate) table: ::fidl_next::wire::Table<'de>,
24859 }
24860
24861 impl<'de> Drop for Child<'de> {
24862 fn drop(&mut self) {
24863 let _ = self.table.get(1).map(|envelope| unsafe {
24864 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24865 });
24866
24867 let _ = self.table.get(2).map(|envelope| unsafe {
24868 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24869 });
24870
24871 let _ = self
24872 .table
24873 .get(3)
24874 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::StartupMode>() });
24875
24876 let _ = self.table.get(4).map(|envelope| unsafe {
24877 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24878 });
24879
24880 let _ = self
24881 .table
24882 .get(5)
24883 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::OnTerminate>() });
24884
24885 let _ = self.table.get(6)
24886 .map(|envelope| unsafe {
24887 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>()
24888 });
24889 }
24890 }
24891
24892 impl ::fidl_next::Constrained for Child<'_> {
24893 type Constraint = ();
24894
24895 fn validate(
24896 _: ::fidl_next::Slot<'_, Self>,
24897 _: Self::Constraint,
24898 ) -> Result<(), ::fidl_next::ValidationError> {
24899 Ok(())
24900 }
24901 }
24902
24903 unsafe impl ::fidl_next::Wire for Child<'static> {
24904 type Narrowed<'de> = Child<'de>;
24905
24906 #[inline]
24907 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24908 ::fidl_next::munge!(let Self { table } = out);
24909 ::fidl_next::wire::Table::zero_padding(table);
24910 }
24911 }
24912
24913 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Child<'de>
24914 where
24915 ___D: ::fidl_next::Decoder<'de> + ?Sized,
24916 {
24917 fn decode(
24918 slot: ::fidl_next::Slot<'_, Self>,
24919 decoder: &mut ___D,
24920 _: (),
24921 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24922 ::fidl_next::munge!(let Self { table } = slot);
24923
24924 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24925 match ordinal {
24926 0 => unsafe { ::core::hint::unreachable_unchecked() },
24927
24928 1 => {
24929 ::fidl_next::wire::Envelope::decode_as::<
24930 ___D,
24931 ::fidl_next::wire::String<'de>,
24932 >(slot.as_mut(), decoder, 1024)?;
24933
24934 let value = unsafe {
24935 slot.deref_unchecked()
24936 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24937 };
24938
24939 if value.len() > 1024 {
24940 return Err(::fidl_next::DecodeError::VectorTooLong {
24941 size: value.len() as u64,
24942 limit: 1024,
24943 });
24944 }
24945
24946 Ok(())
24947 }
24948
24949 2 => {
24950 ::fidl_next::wire::Envelope::decode_as::<
24951 ___D,
24952 ::fidl_next::wire::String<'de>,
24953 >(slot.as_mut(), decoder, 4096)?;
24954
24955 let value = unsafe {
24956 slot.deref_unchecked()
24957 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24958 };
24959
24960 if value.len() > 4096 {
24961 return Err(::fidl_next::DecodeError::VectorTooLong {
24962 size: value.len() as u64,
24963 limit: 4096,
24964 });
24965 }
24966
24967 Ok(())
24968 }
24969
24970 3 => {
24971 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::StartupMode>(
24972 slot.as_mut(),
24973 decoder,
24974 (),
24975 )?;
24976
24977 Ok(())
24978 }
24979
24980 4 => {
24981 ::fidl_next::wire::Envelope::decode_as::<
24982 ___D,
24983 ::fidl_next::wire::String<'de>,
24984 >(slot.as_mut(), decoder, 100)?;
24985
24986 let value = unsafe {
24987 slot.deref_unchecked()
24988 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24989 };
24990
24991 if value.len() > 100 {
24992 return Err(::fidl_next::DecodeError::VectorTooLong {
24993 size: value.len() as u64,
24994 limit: 100,
24995 });
24996 }
24997
24998 Ok(())
24999 }
25000
25001 5 => {
25002 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::OnTerminate>(
25003 slot.as_mut(),
25004 decoder,
25005 (),
25006 )?;
25007
25008 Ok(())
25009 }
25010
25011 6 => {
25012 ::fidl_next::wire::Envelope::decode_as::<
25013 ___D,
25014 ::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>,
25015 >(slot.as_mut(), decoder, (4294967295, ()))?;
25016
25017 Ok(())
25018 }
25019
25020 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
25021 }
25022 })
25023 }
25024 }
25025
25026 impl<'de> Child<'de> {
25027 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25028 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
25029 }
25030
25031 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25032 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
25033 }
25034
25035 pub fn url(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25036 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
25037 }
25038
25039 pub fn take_url(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25040 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
25041 }
25042
25043 pub fn startup(&self) -> ::core::option::Option<&crate::wire::StartupMode> {
25044 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
25045 }
25046
25047 pub fn take_startup(&mut self) -> ::core::option::Option<crate::wire::StartupMode> {
25048 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
25049 }
25050
25051 pub fn environment(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25052 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
25053 }
25054
25055 pub fn take_environment(
25056 &mut self,
25057 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25058 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
25059 }
25060
25061 pub fn on_terminate(&self) -> ::core::option::Option<&crate::wire::OnTerminate> {
25062 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
25063 }
25064
25065 pub fn take_on_terminate(&mut self) -> ::core::option::Option<crate::wire::OnTerminate> {
25066 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
25067 }
25068
25069 pub fn config_overrides(
25070 &self,
25071 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>
25072 {
25073 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
25074 }
25075
25076 pub fn take_config_overrides(
25077 &mut self,
25078 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>
25079 {
25080 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
25081 }
25082 }
25083
25084 impl<'de> ::core::fmt::Debug for Child<'de> {
25085 fn fmt(
25086 &self,
25087 f: &mut ::core::fmt::Formatter<'_>,
25088 ) -> ::core::result::Result<(), ::core::fmt::Error> {
25089 f.debug_struct("Child")
25090 .field("name", &self.name())
25091 .field("url", &self.url())
25092 .field("startup", &self.startup())
25093 .field("environment", &self.environment())
25094 .field("on_terminate", &self.on_terminate())
25095 .field("config_overrides", &self.config_overrides())
25096 .finish()
25097 }
25098 }
25099
25100 impl<'de> ::fidl_next::IntoNatural for Child<'de> {
25101 type Natural = crate::natural::Child;
25102 }
25103
25104 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25106 #[repr(transparent)]
25107 pub struct Durability {
25108 pub(crate) value: ::fidl_next::wire::Uint32,
25109 }
25110
25111 impl ::fidl_next::Constrained for Durability {
25112 type Constraint = ();
25113
25114 fn validate(
25115 _: ::fidl_next::Slot<'_, Self>,
25116 _: Self::Constraint,
25117 ) -> Result<(), ::fidl_next::ValidationError> {
25118 Ok(())
25119 }
25120 }
25121
25122 unsafe impl ::fidl_next::Wire for Durability {
25123 type Narrowed<'de> = Self;
25124
25125 #[inline]
25126 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25127 }
25129 }
25130
25131 impl Durability {
25132 pub const TRANSIENT: Durability = Durability { value: ::fidl_next::wire::Uint32(2) };
25133
25134 pub const SINGLE_RUN: Durability = Durability { value: ::fidl_next::wire::Uint32(3) };
25135 }
25136
25137 unsafe impl<___D> ::fidl_next::Decode<___D> for Durability
25138 where
25139 ___D: ?Sized,
25140 {
25141 fn decode(
25142 slot: ::fidl_next::Slot<'_, Self>,
25143 _: &mut ___D,
25144 _: (),
25145 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25146 ::fidl_next::munge!(let Self { value } = slot);
25147
25148 match u32::from(*value) {
25149 2 | 3 => (),
25150 unknown => {
25151 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25152 }
25153 }
25154
25155 Ok(())
25156 }
25157 }
25158
25159 impl ::core::convert::From<crate::natural::Durability> for Durability {
25160 fn from(natural: crate::natural::Durability) -> Self {
25161 match natural {
25162 crate::natural::Durability::Transient => Durability::TRANSIENT,
25163
25164 crate::natural::Durability::SingleRun => Durability::SINGLE_RUN,
25165 }
25166 }
25167 }
25168
25169 impl ::fidl_next::IntoNatural for Durability {
25170 type Natural = crate::natural::Durability;
25171 }
25172
25173 #[repr(C)]
25175 pub struct Collection<'de> {
25176 pub(crate) table: ::fidl_next::wire::Table<'de>,
25177 }
25178
25179 impl<'de> Drop for Collection<'de> {
25180 fn drop(&mut self) {
25181 let _ = self.table.get(1).map(|envelope| unsafe {
25182 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
25183 });
25184
25185 let _ = self
25186 .table
25187 .get(2)
25188 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Durability>() });
25189
25190 let _ = self.table.get(3).map(|envelope| unsafe {
25191 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
25192 });
25193
25194 let _ = self
25195 .table
25196 .get(4)
25197 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::AllowedOffers>() });
25198
25199 let _ = self.table.get(5).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
25200
25201 let _ = self.table.get(6).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
25202 }
25203 }
25204
25205 impl ::fidl_next::Constrained for Collection<'_> {
25206 type Constraint = ();
25207
25208 fn validate(
25209 _: ::fidl_next::Slot<'_, Self>,
25210 _: Self::Constraint,
25211 ) -> Result<(), ::fidl_next::ValidationError> {
25212 Ok(())
25213 }
25214 }
25215
25216 unsafe impl ::fidl_next::Wire for Collection<'static> {
25217 type Narrowed<'de> = Collection<'de>;
25218
25219 #[inline]
25220 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25221 ::fidl_next::munge!(let Self { table } = out);
25222 ::fidl_next::wire::Table::zero_padding(table);
25223 }
25224 }
25225
25226 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Collection<'de>
25227 where
25228 ___D: ::fidl_next::Decoder<'de> + ?Sized,
25229 {
25230 fn decode(
25231 slot: ::fidl_next::Slot<'_, Self>,
25232 decoder: &mut ___D,
25233 _: (),
25234 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25235 ::fidl_next::munge!(let Self { table } = slot);
25236
25237 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
25238 match ordinal {
25239 0 => unsafe { ::core::hint::unreachable_unchecked() },
25240
25241 1 => {
25242 ::fidl_next::wire::Envelope::decode_as::<
25243 ___D,
25244 ::fidl_next::wire::String<'de>,
25245 >(slot.as_mut(), decoder, 100)?;
25246
25247 let value = unsafe {
25248 slot.deref_unchecked()
25249 .deref_unchecked::<::fidl_next::wire::String<'_>>()
25250 };
25251
25252 if value.len() > 100 {
25253 return Err(::fidl_next::DecodeError::VectorTooLong {
25254 size: value.len() as u64,
25255 limit: 100,
25256 });
25257 }
25258
25259 Ok(())
25260 }
25261
25262 2 => {
25263 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Durability>(
25264 slot.as_mut(),
25265 decoder,
25266 (),
25267 )?;
25268
25269 Ok(())
25270 }
25271
25272 3 => {
25273 ::fidl_next::wire::Envelope::decode_as::<
25274 ___D,
25275 ::fidl_next::wire::String<'de>,
25276 >(slot.as_mut(), decoder, 100)?;
25277
25278 let value = unsafe {
25279 slot.deref_unchecked()
25280 .deref_unchecked::<::fidl_next::wire::String<'_>>()
25281 };
25282
25283 if value.len() > 100 {
25284 return Err(::fidl_next::DecodeError::VectorTooLong {
25285 size: value.len() as u64,
25286 limit: 100,
25287 });
25288 }
25289
25290 Ok(())
25291 }
25292
25293 4 => {
25294 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::AllowedOffers>(
25295 slot.as_mut(),
25296 decoder,
25297 (),
25298 )?;
25299
25300 Ok(())
25301 }
25302
25303 5 => {
25304 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
25305 slot.as_mut(),
25306 decoder,
25307 (),
25308 )?;
25309
25310 Ok(())
25311 }
25312
25313 6 => {
25314 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
25315 slot.as_mut(),
25316 decoder,
25317 (),
25318 )?;
25319
25320 Ok(())
25321 }
25322
25323 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
25324 }
25325 })
25326 }
25327 }
25328
25329 impl<'de> Collection<'de> {
25330 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25331 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
25332 }
25333
25334 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25335 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
25336 }
25337
25338 pub fn durability(&self) -> ::core::option::Option<&crate::wire::Durability> {
25339 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
25340 }
25341
25342 pub fn take_durability(&mut self) -> ::core::option::Option<crate::wire::Durability> {
25343 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
25344 }
25345
25346 pub fn environment(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25347 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
25348 }
25349
25350 pub fn take_environment(
25351 &mut self,
25352 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25353 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
25354 }
25355
25356 pub fn allowed_offers(&self) -> ::core::option::Option<&crate::wire::AllowedOffers> {
25357 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
25358 }
25359
25360 pub fn take_allowed_offers(
25361 &mut self,
25362 ) -> ::core::option::Option<crate::wire::AllowedOffers> {
25363 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
25364 }
25365
25366 pub fn allow_long_names(&self) -> ::core::option::Option<&bool> {
25367 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
25368 }
25369
25370 pub fn take_allow_long_names(&mut self) -> ::core::option::Option<bool> {
25371 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
25372 }
25373
25374 pub fn persistent_storage(&self) -> ::core::option::Option<&bool> {
25375 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
25376 }
25377
25378 pub fn take_persistent_storage(&mut self) -> ::core::option::Option<bool> {
25379 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
25380 }
25381 }
25382
25383 impl<'de> ::core::fmt::Debug for Collection<'de> {
25384 fn fmt(
25385 &self,
25386 f: &mut ::core::fmt::Formatter<'_>,
25387 ) -> ::core::result::Result<(), ::core::fmt::Error> {
25388 f.debug_struct("Collection")
25389 .field("name", &self.name())
25390 .field("durability", &self.durability())
25391 .field("environment", &self.environment())
25392 .field("allowed_offers", &self.allowed_offers())
25393 .field("allow_long_names", &self.allow_long_names())
25394 .field("persistent_storage", &self.persistent_storage())
25395 .finish()
25396 }
25397 }
25398
25399 impl<'de> ::fidl_next::IntoNatural for Collection<'de> {
25400 type Natural = crate::natural::Collection;
25401 }
25402
25403 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25405 #[repr(transparent)]
25406 pub struct DependencyType {
25407 pub(crate) value: ::fidl_next::wire::Uint32,
25408 }
25409
25410 impl ::fidl_next::Constrained for DependencyType {
25411 type Constraint = ();
25412
25413 fn validate(
25414 _: ::fidl_next::Slot<'_, Self>,
25415 _: Self::Constraint,
25416 ) -> Result<(), ::fidl_next::ValidationError> {
25417 Ok(())
25418 }
25419 }
25420
25421 unsafe impl ::fidl_next::Wire for DependencyType {
25422 type Narrowed<'de> = Self;
25423
25424 #[inline]
25425 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25426 }
25428 }
25429
25430 impl DependencyType {
25431 pub const STRONG: DependencyType = DependencyType { value: ::fidl_next::wire::Uint32(1) };
25432
25433 pub const WEAK: DependencyType = DependencyType { value: ::fidl_next::wire::Uint32(2) };
25434 }
25435
25436 unsafe impl<___D> ::fidl_next::Decode<___D> for DependencyType
25437 where
25438 ___D: ?Sized,
25439 {
25440 fn decode(
25441 slot: ::fidl_next::Slot<'_, Self>,
25442 _: &mut ___D,
25443 _: (),
25444 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25445 ::fidl_next::munge!(let Self { value } = slot);
25446
25447 match u32::from(*value) {
25448 1 | 2 => (),
25449 unknown => {
25450 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25451 }
25452 }
25453
25454 Ok(())
25455 }
25456 }
25457
25458 impl ::core::convert::From<crate::natural::DependencyType> for DependencyType {
25459 fn from(natural: crate::natural::DependencyType) -> Self {
25460 match natural {
25461 crate::natural::DependencyType::Strong => DependencyType::STRONG,
25462
25463 crate::natural::DependencyType::Weak => DependencyType::WEAK,
25464 }
25465 }
25466 }
25467
25468 impl ::fidl_next::IntoNatural for DependencyType {
25469 type Natural = crate::natural::DependencyType;
25470 }
25471
25472 #[derive(Debug)]
25474 #[repr(C)]
25475 pub struct NameMapping<'de> {
25476 pub source_name: ::fidl_next::wire::String<'de>,
25477
25478 pub target_name: ::fidl_next::wire::String<'de>,
25479 }
25480
25481 static_assertions::const_assert_eq!(std::mem::size_of::<NameMapping<'_>>(), 32);
25482 static_assertions::const_assert_eq!(std::mem::align_of::<NameMapping<'_>>(), 8);
25483
25484 static_assertions::const_assert_eq!(std::mem::offset_of!(NameMapping<'_>, source_name), 0);
25485
25486 static_assertions::const_assert_eq!(std::mem::offset_of!(NameMapping<'_>, target_name), 16);
25487
25488 impl ::fidl_next::Constrained for NameMapping<'_> {
25489 type Constraint = ();
25490
25491 fn validate(
25492 _: ::fidl_next::Slot<'_, Self>,
25493 _: Self::Constraint,
25494 ) -> Result<(), ::fidl_next::ValidationError> {
25495 Ok(())
25496 }
25497 }
25498
25499 unsafe impl ::fidl_next::Wire for NameMapping<'static> {
25500 type Narrowed<'de> = NameMapping<'de>;
25501
25502 #[inline]
25503 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
25504 ::fidl_next::munge! {
25505 let Self {
25506 source_name,
25507 target_name,
25508
25509 } = &mut *out_;
25510 }
25511
25512 ::fidl_next::Wire::zero_padding(source_name);
25513
25514 ::fidl_next::Wire::zero_padding(target_name);
25515 }
25516 }
25517
25518 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NameMapping<'de>
25519 where
25520 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
25521 ___D: ::fidl_next::Decoder<'de>,
25522 {
25523 fn decode(
25524 slot_: ::fidl_next::Slot<'_, Self>,
25525 decoder_: &mut ___D,
25526 _: (),
25527 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25528 ::fidl_next::munge! {
25529 let Self {
25530 mut source_name,
25531 mut target_name,
25532
25533 } = slot_;
25534 }
25535
25536 let _field = source_name.as_mut();
25537 ::fidl_next::Constrained::validate(_field, 100)?;
25538 ::fidl_next::Decode::decode(source_name.as_mut(), decoder_, 100)?;
25539
25540 let source_name = unsafe { source_name.deref_unchecked() };
25541
25542 if source_name.len() > 100 {
25543 return Err(::fidl_next::DecodeError::VectorTooLong {
25544 size: source_name.len() as u64,
25545 limit: 100,
25546 });
25547 }
25548
25549 let _field = target_name.as_mut();
25550 ::fidl_next::Constrained::validate(_field, 100)?;
25551 ::fidl_next::Decode::decode(target_name.as_mut(), decoder_, 100)?;
25552
25553 let target_name = unsafe { target_name.deref_unchecked() };
25554
25555 if target_name.len() > 100 {
25556 return Err(::fidl_next::DecodeError::VectorTooLong {
25557 size: target_name.len() as u64,
25558 limit: 100,
25559 });
25560 }
25561
25562 Ok(())
25563 }
25564 }
25565
25566 impl<'de> ::fidl_next::IntoNatural for NameMapping<'de> {
25567 type Natural = crate::natural::NameMapping;
25568 }
25569
25570 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25572 #[repr(transparent)]
25573 pub struct EnvironmentExtends {
25574 pub(crate) value: ::fidl_next::wire::Uint32,
25575 }
25576
25577 impl ::fidl_next::Constrained for EnvironmentExtends {
25578 type Constraint = ();
25579
25580 fn validate(
25581 _: ::fidl_next::Slot<'_, Self>,
25582 _: Self::Constraint,
25583 ) -> Result<(), ::fidl_next::ValidationError> {
25584 Ok(())
25585 }
25586 }
25587
25588 unsafe impl ::fidl_next::Wire for EnvironmentExtends {
25589 type Narrowed<'de> = Self;
25590
25591 #[inline]
25592 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25593 }
25595 }
25596
25597 impl EnvironmentExtends {
25598 pub const NONE: EnvironmentExtends =
25599 EnvironmentExtends { value: ::fidl_next::wire::Uint32(0) };
25600
25601 pub const REALM: EnvironmentExtends =
25602 EnvironmentExtends { value: ::fidl_next::wire::Uint32(1) };
25603 }
25604
25605 unsafe impl<___D> ::fidl_next::Decode<___D> for EnvironmentExtends
25606 where
25607 ___D: ?Sized,
25608 {
25609 fn decode(
25610 slot: ::fidl_next::Slot<'_, Self>,
25611 _: &mut ___D,
25612 _: (),
25613 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25614 ::fidl_next::munge!(let Self { value } = slot);
25615
25616 match u32::from(*value) {
25617 0 | 1 => (),
25618 unknown => {
25619 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25620 }
25621 }
25622
25623 Ok(())
25624 }
25625 }
25626
25627 impl ::core::convert::From<crate::natural::EnvironmentExtends> for EnvironmentExtends {
25628 fn from(natural: crate::natural::EnvironmentExtends) -> Self {
25629 match natural {
25630 crate::natural::EnvironmentExtends::None => EnvironmentExtends::NONE,
25631
25632 crate::natural::EnvironmentExtends::Realm => EnvironmentExtends::REALM,
25633 }
25634 }
25635 }
25636
25637 impl ::fidl_next::IntoNatural for EnvironmentExtends {
25638 type Natural = crate::natural::EnvironmentExtends;
25639 }
25640
25641 pub type UrlScheme<'de> = ::fidl_next::wire::String<'de>;
25643
25644 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25646 #[repr(transparent)]
25647 pub struct ConfigTypeLayout {
25648 pub(crate) value: ::fidl_next::wire::Uint32,
25649 }
25650
25651 impl ::fidl_next::Constrained for ConfigTypeLayout {
25652 type Constraint = ();
25653
25654 fn validate(
25655 _: ::fidl_next::Slot<'_, Self>,
25656 _: Self::Constraint,
25657 ) -> Result<(), ::fidl_next::ValidationError> {
25658 Ok(())
25659 }
25660 }
25661
25662 unsafe impl ::fidl_next::Wire for ConfigTypeLayout {
25663 type Narrowed<'de> = Self;
25664
25665 #[inline]
25666 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25667 }
25669 }
25670
25671 impl ConfigTypeLayout {
25672 pub const BOOL: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::wire::Uint32(1) };
25673
25674 pub const UINT8: ConfigTypeLayout =
25675 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(2) };
25676
25677 pub const UINT16: ConfigTypeLayout =
25678 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(3) };
25679
25680 pub const UINT32: ConfigTypeLayout =
25681 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(4) };
25682
25683 pub const UINT64: ConfigTypeLayout =
25684 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(5) };
25685
25686 pub const INT8: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::wire::Uint32(6) };
25687
25688 pub const INT16: ConfigTypeLayout =
25689 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(7) };
25690
25691 pub const INT32: ConfigTypeLayout =
25692 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(8) };
25693
25694 pub const INT64: ConfigTypeLayout =
25695 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(9) };
25696
25697 pub const STRING: ConfigTypeLayout =
25698 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(10) };
25699
25700 pub const VECTOR: ConfigTypeLayout =
25701 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(11) };
25702 }
25703
25704 unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigTypeLayout
25705 where
25706 ___D: ?Sized,
25707 {
25708 fn decode(
25709 slot: ::fidl_next::Slot<'_, Self>,
25710 _: &mut ___D,
25711 _: (),
25712 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25713 Ok(())
25714 }
25715 }
25716
25717 impl ::core::convert::From<crate::natural::ConfigTypeLayout> for ConfigTypeLayout {
25718 fn from(natural: crate::natural::ConfigTypeLayout) -> Self {
25719 match natural {
25720 crate::natural::ConfigTypeLayout::Bool => ConfigTypeLayout::BOOL,
25721
25722 crate::natural::ConfigTypeLayout::Uint8 => ConfigTypeLayout::UINT8,
25723
25724 crate::natural::ConfigTypeLayout::Uint16 => ConfigTypeLayout::UINT16,
25725
25726 crate::natural::ConfigTypeLayout::Uint32 => ConfigTypeLayout::UINT32,
25727
25728 crate::natural::ConfigTypeLayout::Uint64 => ConfigTypeLayout::UINT64,
25729
25730 crate::natural::ConfigTypeLayout::Int8 => ConfigTypeLayout::INT8,
25731
25732 crate::natural::ConfigTypeLayout::Int16 => ConfigTypeLayout::INT16,
25733
25734 crate::natural::ConfigTypeLayout::Int32 => ConfigTypeLayout::INT32,
25735
25736 crate::natural::ConfigTypeLayout::Int64 => ConfigTypeLayout::INT64,
25737
25738 crate::natural::ConfigTypeLayout::String => ConfigTypeLayout::STRING,
25739
25740 crate::natural::ConfigTypeLayout::Vector => ConfigTypeLayout::VECTOR,
25741
25742 crate::natural::ConfigTypeLayout::UnknownOrdinal_(value) => {
25743 ConfigTypeLayout { value: ::fidl_next::wire::Uint32::from(value) }
25744 }
25745 }
25746 }
25747 }
25748
25749 impl ::fidl_next::IntoNatural for ConfigTypeLayout {
25750 type Natural = crate::natural::ConfigTypeLayout;
25751 }
25752
25753 #[repr(transparent)]
25755 pub struct LayoutConstraint<'de> {
25756 pub(crate) raw: ::fidl_next::wire::Union,
25757 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
25758 }
25759
25760 impl<'de> Drop for LayoutConstraint<'de> {
25761 fn drop(&mut self) {
25762 match self.raw.ordinal() {
25763 1 => {
25764 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint32>() };
25765 }
25766
25767 _ => (),
25768 }
25769 }
25770 }
25771
25772 impl ::fidl_next::Constrained for LayoutConstraint<'_> {
25773 type Constraint = ();
25774
25775 fn validate(
25776 _: ::fidl_next::Slot<'_, Self>,
25777 _: Self::Constraint,
25778 ) -> Result<(), ::fidl_next::ValidationError> {
25779 Ok(())
25780 }
25781 }
25782
25783 unsafe impl ::fidl_next::Wire for LayoutConstraint<'static> {
25784 type Narrowed<'de> = LayoutConstraint<'de>;
25785
25786 #[inline]
25787 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25788 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
25789 ::fidl_next::wire::Union::zero_padding(raw);
25790 }
25791 }
25792
25793 pub mod layout_constraint {
25794 pub enum Ref<'de> {
25795 MaxSize(&'de ::fidl_next::wire::Uint32),
25796
25797 UnknownOrdinal_(u64),
25798 }
25799
25800 pub enum Value {
25801 MaxSize(::fidl_next::wire::Uint32),
25802
25803 UnknownOrdinal_(u64),
25804 }
25805 }
25806
25807 impl<'de> LayoutConstraint<'de> {
25808 pub fn as_ref(&self) -> crate::wire::layout_constraint::Ref<'_> {
25809 match self.raw.ordinal() {
25810 1 => crate::wire::layout_constraint::Ref::MaxSize(unsafe {
25811 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
25812 }),
25813
25814 unknown => crate::wire::layout_constraint::Ref::UnknownOrdinal_(unknown),
25815 }
25816 }
25817
25818 pub fn into_inner(self) -> crate::wire::layout_constraint::Value {
25819 let this = ::core::mem::ManuallyDrop::new(self);
25820
25821 match this.raw.ordinal() {
25822 1 => crate::wire::layout_constraint::Value::MaxSize(unsafe {
25823 this.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
25824 }),
25825
25826 unknown => crate::wire::layout_constraint::Value::UnknownOrdinal_(unknown),
25827 }
25828 }
25829 }
25830
25831 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutConstraint<'de>
25832 where
25833 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
25834 ___D: ::fidl_next::Decoder<'de>,
25835 {
25836 fn decode(
25837 mut slot: ::fidl_next::Slot<'_, Self>,
25838 decoder: &mut ___D,
25839 _: (),
25840 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25841 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
25842 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
25843 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
25844 raw,
25845 decoder,
25846 (),
25847 )?,
25848
25849 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
25850 }
25851
25852 Ok(())
25853 }
25854 }
25855
25856 impl<'de> ::core::fmt::Debug for LayoutConstraint<'de> {
25857 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25858 match self.raw.ordinal() {
25859 1 => unsafe {
25860 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>().fmt(f)
25861 },
25862 _ => unsafe { ::core::hint::unreachable_unchecked() },
25863 }
25864 }
25865 }
25866
25867 impl<'de> ::fidl_next::IntoNatural for LayoutConstraint<'de> {
25868 type Natural = crate::natural::LayoutConstraint;
25869 }
25870
25871 #[derive(Debug)]
25873 #[repr(C)]
25874 pub struct ConfigType<'de> {
25875 pub layout: crate::wire::ConfigTypeLayout,
25876
25877 pub parameters: ::fidl_next::wire::OptionalVector<'de, crate::wire::LayoutParameter<'de>>,
25878
25879 pub constraints: ::fidl_next::wire::Vector<'de, crate::wire::LayoutConstraint<'de>>,
25880 }
25881
25882 static_assertions::const_assert_eq!(std::mem::size_of::<ConfigType<'_>>(), 40);
25883 static_assertions::const_assert_eq!(std::mem::align_of::<ConfigType<'_>>(), 8);
25884
25885 static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, layout), 0);
25886
25887 static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, parameters), 8);
25888
25889 static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, constraints), 24);
25890
25891 impl ::fidl_next::Constrained for ConfigType<'_> {
25892 type Constraint = ();
25893
25894 fn validate(
25895 _: ::fidl_next::Slot<'_, Self>,
25896 _: Self::Constraint,
25897 ) -> Result<(), ::fidl_next::ValidationError> {
25898 Ok(())
25899 }
25900 }
25901
25902 unsafe impl ::fidl_next::Wire for ConfigType<'static> {
25903 type Narrowed<'de> = ConfigType<'de>;
25904
25905 #[inline]
25906 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
25907 ::fidl_next::munge! {
25908 let Self {
25909 layout,
25910 parameters,
25911 constraints,
25912
25913 } = &mut *out_;
25914 }
25915
25916 ::fidl_next::Wire::zero_padding(layout);
25917
25918 ::fidl_next::Wire::zero_padding(parameters);
25919
25920 ::fidl_next::Wire::zero_padding(constraints);
25921
25922 unsafe {
25923 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
25924 }
25925 }
25926 }
25927
25928 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigType<'de>
25929 where
25930 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
25931 ___D: ::fidl_next::Decoder<'de>,
25932 {
25933 fn decode(
25934 slot_: ::fidl_next::Slot<'_, Self>,
25935 decoder_: &mut ___D,
25936 _: (),
25937 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25938 if slot_.as_bytes()[4..8] != [0u8; 4] {
25939 return Err(::fidl_next::DecodeError::InvalidPadding);
25940 }
25941
25942 ::fidl_next::munge! {
25943 let Self {
25944 mut layout,
25945 mut parameters,
25946 mut constraints,
25947
25948 } = slot_;
25949 }
25950
25951 let _field = layout.as_mut();
25952
25953 ::fidl_next::Decode::decode(layout.as_mut(), decoder_, ())?;
25954
25955 let _field = parameters.as_mut();
25956 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
25957 ::fidl_next::Decode::decode(parameters.as_mut(), decoder_, (4294967295, ()))?;
25958
25959 let _field = constraints.as_mut();
25960 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
25961 ::fidl_next::Decode::decode(constraints.as_mut(), decoder_, (4294967295, ()))?;
25962
25963 Ok(())
25964 }
25965 }
25966
25967 impl<'de> ::fidl_next::IntoNatural for ConfigType<'de> {
25968 type Natural = crate::natural::ConfigType;
25969 }
25970
25971 #[repr(transparent)]
25973 pub struct ConfigChecksum<'de> {
25974 pub(crate) raw: ::fidl_next::wire::Union,
25975 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
25976 }
25977
25978 impl<'de> Drop for ConfigChecksum<'de> {
25979 fn drop(&mut self) {
25980 match self.raw.ordinal() {
25981 1 => {
25982 let _ = unsafe { self.raw.get().read_unchecked::<[u8; 32]>() };
25983 }
25984
25985 _ => (),
25986 }
25987 }
25988 }
25989
25990 impl ::fidl_next::Constrained for ConfigChecksum<'_> {
25991 type Constraint = ();
25992
25993 fn validate(
25994 _: ::fidl_next::Slot<'_, Self>,
25995 _: Self::Constraint,
25996 ) -> Result<(), ::fidl_next::ValidationError> {
25997 Ok(())
25998 }
25999 }
26000
26001 unsafe impl ::fidl_next::Wire for ConfigChecksum<'static> {
26002 type Narrowed<'de> = ConfigChecksum<'de>;
26003
26004 #[inline]
26005 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26006 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
26007 ::fidl_next::wire::Union::zero_padding(raw);
26008 }
26009 }
26010
26011 pub mod config_checksum {
26012 pub enum Ref<'de> {
26013 Sha256(&'de [u8; 32]),
26014
26015 UnknownOrdinal_(u64),
26016 }
26017
26018 pub enum Value {
26019 Sha256([u8; 32]),
26020
26021 UnknownOrdinal_(u64),
26022 }
26023 }
26024
26025 impl<'de> ConfigChecksum<'de> {
26026 pub fn as_ref(&self) -> crate::wire::config_checksum::Ref<'_> {
26027 match self.raw.ordinal() {
26028 1 => crate::wire::config_checksum::Ref::Sha256(unsafe {
26029 self.raw.get().deref_unchecked::<[u8; 32]>()
26030 }),
26031
26032 unknown => crate::wire::config_checksum::Ref::UnknownOrdinal_(unknown),
26033 }
26034 }
26035
26036 pub fn into_inner(self) -> crate::wire::config_checksum::Value {
26037 let this = ::core::mem::ManuallyDrop::new(self);
26038
26039 match this.raw.ordinal() {
26040 1 => crate::wire::config_checksum::Value::Sha256(unsafe {
26041 this.raw.get().read_unchecked::<[u8; 32]>()
26042 }),
26043
26044 unknown => crate::wire::config_checksum::Value::UnknownOrdinal_(unknown),
26045 }
26046 }
26047 }
26048
26049 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigChecksum<'de>
26050 where
26051 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
26052 ___D: ::fidl_next::Decoder<'de>,
26053 {
26054 fn decode(
26055 mut slot: ::fidl_next::Slot<'_, Self>,
26056 decoder: &mut ___D,
26057 _: (),
26058 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26059 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
26060 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
26061 1 => ::fidl_next::wire::Union::decode_as::<___D, [u8; 32]>(raw, decoder, ())?,
26062
26063 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
26064 }
26065
26066 Ok(())
26067 }
26068 }
26069
26070 impl<'de> ::core::fmt::Debug for ConfigChecksum<'de> {
26071 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26072 match self.raw.ordinal() {
26073 1 => unsafe { self.raw.get().deref_unchecked::<[u8; 32]>().fmt(f) },
26074 _ => unsafe { ::core::hint::unreachable_unchecked() },
26075 }
26076 }
26077 }
26078
26079 impl<'de> ::fidl_next::IntoNatural for ConfigChecksum<'de> {
26080 type Natural = crate::natural::ConfigChecksum;
26081 }
26082
26083 #[repr(C)]
26085 pub struct UseStorage<'de> {
26086 pub(crate) table: ::fidl_next::wire::Table<'de>,
26087 }
26088
26089 impl<'de> Drop for UseStorage<'de> {
26090 fn drop(&mut self) {
26091 let _ = self.table.get(1).map(|envelope| unsafe {
26092 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26093 });
26094
26095 let _ = self.table.get(2).map(|envelope| unsafe {
26096 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26097 });
26098
26099 let _ = self
26100 .table
26101 .get(3)
26102 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26103 }
26104 }
26105
26106 impl ::fidl_next::Constrained for UseStorage<'_> {
26107 type Constraint = ();
26108
26109 fn validate(
26110 _: ::fidl_next::Slot<'_, Self>,
26111 _: Self::Constraint,
26112 ) -> Result<(), ::fidl_next::ValidationError> {
26113 Ok(())
26114 }
26115 }
26116
26117 unsafe impl ::fidl_next::Wire for UseStorage<'static> {
26118 type Narrowed<'de> = UseStorage<'de>;
26119
26120 #[inline]
26121 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26122 ::fidl_next::munge!(let Self { table } = out);
26123 ::fidl_next::wire::Table::zero_padding(table);
26124 }
26125 }
26126
26127 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseStorage<'de>
26128 where
26129 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26130 {
26131 fn decode(
26132 slot: ::fidl_next::Slot<'_, Self>,
26133 decoder: &mut ___D,
26134 _: (),
26135 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26136 ::fidl_next::munge!(let Self { table } = slot);
26137
26138 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26139 match ordinal {
26140 0 => unsafe { ::core::hint::unreachable_unchecked() },
26141
26142 1 => {
26143 ::fidl_next::wire::Envelope::decode_as::<
26144 ___D,
26145 ::fidl_next::wire::String<'de>,
26146 >(slot.as_mut(), decoder, 100)?;
26147
26148 let value = unsafe {
26149 slot.deref_unchecked()
26150 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26151 };
26152
26153 if value.len() > 100 {
26154 return Err(::fidl_next::DecodeError::VectorTooLong {
26155 size: value.len() as u64,
26156 limit: 100,
26157 });
26158 }
26159
26160 Ok(())
26161 }
26162
26163 2 => {
26164 ::fidl_next::wire::Envelope::decode_as::<
26165 ___D,
26166 ::fidl_next::wire::String<'de>,
26167 >(slot.as_mut(), decoder, 1024)?;
26168
26169 let value = unsafe {
26170 slot.deref_unchecked()
26171 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26172 };
26173
26174 if value.len() > 1024 {
26175 return Err(::fidl_next::DecodeError::VectorTooLong {
26176 size: value.len() as u64,
26177 limit: 1024,
26178 });
26179 }
26180
26181 Ok(())
26182 }
26183
26184 3 => {
26185 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
26186 slot.as_mut(),
26187 decoder,
26188 (),
26189 )?;
26190
26191 Ok(())
26192 }
26193
26194 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26195 }
26196 })
26197 }
26198 }
26199
26200 impl<'de> UseStorage<'de> {
26201 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26202 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26203 }
26204
26205 pub fn take_source_name(
26206 &mut self,
26207 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26208 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26209 }
26210
26211 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26212 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26213 }
26214
26215 pub fn take_target_path(
26216 &mut self,
26217 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26218 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26219 }
26220
26221 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
26222 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26223 }
26224
26225 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
26226 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
26227 }
26228 }
26229
26230 impl<'de> ::core::fmt::Debug for UseStorage<'de> {
26231 fn fmt(
26232 &self,
26233 f: &mut ::core::fmt::Formatter<'_>,
26234 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26235 f.debug_struct("UseStorage")
26236 .field("source_name", &self.source_name())
26237 .field("target_path", &self.target_path())
26238 .field("availability", &self.availability())
26239 .finish()
26240 }
26241 }
26242
26243 impl<'de> ::fidl_next::IntoNatural for UseStorage<'de> {
26244 type Natural = crate::natural::UseStorage;
26245 }
26246
26247 #[derive(Clone, Copy, Debug)]
26249 #[repr(transparent)]
26250 pub struct ConfigMutability {
26251 pub(crate) value: ::fidl_next::wire::Uint32,
26252 }
26253
26254 impl ::fidl_next::Constrained for ConfigMutability {
26255 type Constraint = ();
26256
26257 fn validate(
26258 _: ::fidl_next::Slot<'_, Self>,
26259 _: Self::Constraint,
26260 ) -> Result<(), ::fidl_next::ValidationError> {
26261 Ok(())
26262 }
26263 }
26264
26265 unsafe impl ::fidl_next::Wire for ConfigMutability {
26266 type Narrowed<'de> = Self;
26267
26268 #[inline]
26269 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
26270 }
26272 }
26273
26274 unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigMutability
26275 where
26276 ___D: ?Sized,
26277 {
26278 fn decode(
26279 slot: ::fidl_next::Slot<'_, Self>,
26280 _: &mut ___D,
26281 _: (),
26282 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26283 Ok(())
26284 }
26285 }
26286
26287 impl ::core::convert::From<crate::natural::ConfigMutability> for ConfigMutability {
26288 fn from(natural: crate::natural::ConfigMutability) -> Self {
26289 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
26290 }
26291 }
26292
26293 impl ::fidl_next::IntoNatural for ConfigMutability {
26294 type Natural = crate::natural::ConfigMutability;
26295 }
26296
26297 #[repr(C)]
26299 pub struct ConfigField<'de> {
26300 pub(crate) table: ::fidl_next::wire::Table<'de>,
26301 }
26302
26303 impl<'de> Drop for ConfigField<'de> {
26304 fn drop(&mut self) {
26305 let _ = self.table.get(1).map(|envelope| unsafe {
26306 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26307 });
26308
26309 let _ = self.table.get(2).map(|envelope| unsafe {
26310 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
26311 });
26312
26313 let _ = self.table.get(3).map(|envelope| unsafe {
26314 envelope.read_unchecked::<crate::wire::ConfigMutability>()
26315 });
26316 }
26317 }
26318
26319 impl ::fidl_next::Constrained for ConfigField<'_> {
26320 type Constraint = ();
26321
26322 fn validate(
26323 _: ::fidl_next::Slot<'_, Self>,
26324 _: Self::Constraint,
26325 ) -> Result<(), ::fidl_next::ValidationError> {
26326 Ok(())
26327 }
26328 }
26329
26330 unsafe impl ::fidl_next::Wire for ConfigField<'static> {
26331 type Narrowed<'de> = ConfigField<'de>;
26332
26333 #[inline]
26334 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26335 ::fidl_next::munge!(let Self { table } = out);
26336 ::fidl_next::wire::Table::zero_padding(table);
26337 }
26338 }
26339
26340 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigField<'de>
26341 where
26342 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26343 {
26344 fn decode(
26345 slot: ::fidl_next::Slot<'_, Self>,
26346 decoder: &mut ___D,
26347 _: (),
26348 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26349 ::fidl_next::munge!(let Self { table } = slot);
26350
26351 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26352 match ordinal {
26353 0 => unsafe { ::core::hint::unreachable_unchecked() },
26354
26355 1 => {
26356 ::fidl_next::wire::Envelope::decode_as::<
26357 ___D,
26358 ::fidl_next::wire::String<'de>,
26359 >(slot.as_mut(), decoder, 64)?;
26360
26361 let value = unsafe {
26362 slot.deref_unchecked()
26363 .deref_unchecked::<::fidl_next::wire::String<'_>>()
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::wire::Envelope::decode_as::<___D, crate::wire::ConfigType<'de>>(
26378 slot.as_mut(),
26379 decoder,
26380 (),
26381 )?;
26382
26383 Ok(())
26384 }
26385
26386 3 => {
26387 ::fidl_next::wire::Envelope::decode_as::<
26388 ___D,
26389 crate::wire::ConfigMutability,
26390 >(slot.as_mut(), decoder, ())?;
26391
26392 Ok(())
26393 }
26394
26395 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26396 }
26397 })
26398 }
26399 }
26400
26401 impl<'de> ConfigField<'de> {
26402 pub fn key(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26403 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26404 }
26405
26406 pub fn take_key(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26407 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26408 }
26409
26410 pub fn type_(&self) -> ::core::option::Option<&crate::wire::ConfigType<'de>> {
26411 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26412 }
26413
26414 pub fn take_type_(&mut self) -> ::core::option::Option<crate::wire::ConfigType<'de>> {
26415 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26416 }
26417
26418 pub fn mutability(&self) -> ::core::option::Option<&crate::wire::ConfigMutability> {
26419 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26420 }
26421
26422 pub fn take_mutability(&mut self) -> ::core::option::Option<crate::wire::ConfigMutability> {
26423 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
26424 }
26425 }
26426
26427 impl<'de> ::core::fmt::Debug for ConfigField<'de> {
26428 fn fmt(
26429 &self,
26430 f: &mut ::core::fmt::Formatter<'_>,
26431 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26432 f.debug_struct("ConfigField")
26433 .field("key", &self.key())
26434 .field("type_", &self.type_())
26435 .field("mutability", &self.mutability())
26436 .finish()
26437 }
26438 }
26439
26440 impl<'de> ::fidl_next::IntoNatural for ConfigField<'de> {
26441 type Natural = crate::natural::ConfigField;
26442 }
26443
26444 #[repr(C)]
26446 pub struct Program<'de> {
26447 pub(crate) table: ::fidl_next::wire::Table<'de>,
26448 }
26449
26450 impl<'de> Drop for Program<'de> {
26451 fn drop(&mut self) {
26452 let _ = self.table.get(1).map(|envelope| unsafe {
26453 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26454 });
26455
26456 let _ = self.table.get(2).map(|envelope| unsafe {
26457 envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
26458 });
26459 }
26460 }
26461
26462 impl ::fidl_next::Constrained for Program<'_> {
26463 type Constraint = ();
26464
26465 fn validate(
26466 _: ::fidl_next::Slot<'_, Self>,
26467 _: Self::Constraint,
26468 ) -> Result<(), ::fidl_next::ValidationError> {
26469 Ok(())
26470 }
26471 }
26472
26473 unsafe impl ::fidl_next::Wire for Program<'static> {
26474 type Narrowed<'de> = Program<'de>;
26475
26476 #[inline]
26477 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26478 ::fidl_next::munge!(let Self { table } = out);
26479 ::fidl_next::wire::Table::zero_padding(table);
26480 }
26481 }
26482
26483 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Program<'de>
26484 where
26485 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26486 {
26487 fn decode(
26488 slot: ::fidl_next::Slot<'_, Self>,
26489 decoder: &mut ___D,
26490 _: (),
26491 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26492 ::fidl_next::munge!(let Self { table } = slot);
26493
26494 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26495 match ordinal {
26496 0 => unsafe { ::core::hint::unreachable_unchecked() },
26497
26498 1 => {
26499 ::fidl_next::wire::Envelope::decode_as::<
26500 ___D,
26501 ::fidl_next::wire::String<'de>,
26502 >(slot.as_mut(), decoder, 100)?;
26503
26504 let value = unsafe {
26505 slot.deref_unchecked()
26506 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26507 };
26508
26509 if value.len() > 100 {
26510 return Err(::fidl_next::DecodeError::VectorTooLong {
26511 size: value.len() as u64,
26512 limit: 100,
26513 });
26514 }
26515
26516 Ok(())
26517 }
26518
26519 2 => {
26520 ::fidl_next::wire::Envelope::decode_as::<
26521 ___D,
26522 ::fidl_next_common_fuchsia_data::wire::Dictionary<'de>,
26523 >(slot.as_mut(), decoder, ())?;
26524
26525 Ok(())
26526 }
26527
26528 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26529 }
26530 })
26531 }
26532 }
26533
26534 impl<'de> Program<'de> {
26535 pub fn runner(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26536 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26537 }
26538
26539 pub fn take_runner(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26540 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26541 }
26542
26543 pub fn info(
26544 &self,
26545 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
26546 {
26547 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26548 }
26549
26550 pub fn take_info(
26551 &mut self,
26552 ) -> ::core::option::Option<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
26553 {
26554 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26555 }
26556 }
26557
26558 impl<'de> ::core::fmt::Debug for Program<'de> {
26559 fn fmt(
26560 &self,
26561 f: &mut ::core::fmt::Formatter<'_>,
26562 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26563 f.debug_struct("Program")
26564 .field("runner", &self.runner())
26565 .field("info", &self.info())
26566 .finish()
26567 }
26568 }
26569
26570 impl<'de> ::fidl_next::IntoNatural for Program<'de> {
26571 type Natural = crate::natural::Program;
26572 }
26573
26574 #[repr(C)]
26576 pub struct DebugInfo<'de> {
26577 pub(crate) table: ::fidl_next::wire::Table<'de>,
26578 }
26579
26580 impl<'de> Drop for DebugInfo<'de> {
26581 fn drop(&mut self) {
26582 let _ = self.table.get(1)
26583 .map(|envelope| unsafe {
26584 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
26585 });
26586 }
26587 }
26588
26589 impl ::fidl_next::Constrained for DebugInfo<'_> {
26590 type Constraint = ();
26591
26592 fn validate(
26593 _: ::fidl_next::Slot<'_, Self>,
26594 _: Self::Constraint,
26595 ) -> Result<(), ::fidl_next::ValidationError> {
26596 Ok(())
26597 }
26598 }
26599
26600 unsafe impl ::fidl_next::Wire for DebugInfo<'static> {
26601 type Narrowed<'de> = DebugInfo<'de>;
26602
26603 #[inline]
26604 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26605 ::fidl_next::munge!(let Self { table } = out);
26606 ::fidl_next::wire::Table::zero_padding(table);
26607 }
26608 }
26609
26610 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugInfo<'de>
26611 where
26612 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26613 {
26614 fn decode(
26615 slot: ::fidl_next::Slot<'_, Self>,
26616 decoder: &mut ___D,
26617 _: (),
26618 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26619 ::fidl_next::munge!(let Self { table } = slot);
26620
26621 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26622 match ordinal {
26623 0 => unsafe { ::core::hint::unreachable_unchecked() },
26624
26625 1 => {
26626 ::fidl_next::wire::Envelope::decode_as::<
26627 ___D,
26628 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
26629 >(slot.as_mut(), decoder, (4294967295, 4294967295))?;
26630
26631 Ok(())
26632 }
26633
26634 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26635 }
26636 })
26637 }
26638 }
26639
26640 impl<'de> DebugInfo<'de> {
26641 pub fn manifest_sources(
26642 &self,
26643 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
26644 {
26645 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26646 }
26647
26648 pub fn take_manifest_sources(
26649 &mut self,
26650 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
26651 {
26652 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26653 }
26654 }
26655
26656 impl<'de> ::core::fmt::Debug for DebugInfo<'de> {
26657 fn fmt(
26658 &self,
26659 f: &mut ::core::fmt::Formatter<'_>,
26660 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26661 f.debug_struct("DebugInfo").field("manifest_sources", &self.manifest_sources()).finish()
26662 }
26663 }
26664
26665 impl<'de> ::fidl_next::IntoNatural for DebugInfo<'de> {
26666 type Natural = crate::natural::DebugInfo;
26667 }
26668
26669 #[repr(C)]
26671 pub struct UseService<'de> {
26672 pub(crate) table: ::fidl_next::wire::Table<'de>,
26673 }
26674
26675 impl<'de> Drop for UseService<'de> {
26676 fn drop(&mut self) {
26677 let _ = self
26678 .table
26679 .get(1)
26680 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
26681
26682 let _ = self.table.get(2).map(|envelope| unsafe {
26683 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26684 });
26685
26686 let _ = self.table.get(3).map(|envelope| unsafe {
26687 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26688 });
26689
26690 let _ = self.table.get(4).map(|envelope| unsafe {
26691 envelope.read_unchecked::<crate::wire::DependencyType>()
26692 });
26693
26694 let _ = self
26695 .table
26696 .get(5)
26697 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26698
26699 let _ = self.table.get(6).map(|envelope| unsafe {
26700 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26701 });
26702 }
26703 }
26704
26705 impl ::fidl_next::Constrained for UseService<'_> {
26706 type Constraint = ();
26707
26708 fn validate(
26709 _: ::fidl_next::Slot<'_, Self>,
26710 _: Self::Constraint,
26711 ) -> Result<(), ::fidl_next::ValidationError> {
26712 Ok(())
26713 }
26714 }
26715
26716 unsafe impl ::fidl_next::Wire for UseService<'static> {
26717 type Narrowed<'de> = UseService<'de>;
26718
26719 #[inline]
26720 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26721 ::fidl_next::munge!(let Self { table } = out);
26722 ::fidl_next::wire::Table::zero_padding(table);
26723 }
26724 }
26725
26726 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseService<'de>
26727 where
26728 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26729 {
26730 fn decode(
26731 slot: ::fidl_next::Slot<'_, Self>,
26732 decoder: &mut ___D,
26733 _: (),
26734 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26735 ::fidl_next::munge!(let Self { table } = slot);
26736
26737 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26738 match ordinal {
26739 0 => unsafe { ::core::hint::unreachable_unchecked() },
26740
26741 1 => {
26742 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
26743 slot.as_mut(),
26744 decoder,
26745 (),
26746 )?;
26747
26748 Ok(())
26749 }
26750
26751 2 => {
26752 ::fidl_next::wire::Envelope::decode_as::<
26753 ___D,
26754 ::fidl_next::wire::String<'de>,
26755 >(slot.as_mut(), decoder, 100)?;
26756
26757 let value = unsafe {
26758 slot.deref_unchecked()
26759 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26760 };
26761
26762 if value.len() > 100 {
26763 return Err(::fidl_next::DecodeError::VectorTooLong {
26764 size: value.len() as u64,
26765 limit: 100,
26766 });
26767 }
26768
26769 Ok(())
26770 }
26771
26772 3 => {
26773 ::fidl_next::wire::Envelope::decode_as::<
26774 ___D,
26775 ::fidl_next::wire::String<'de>,
26776 >(slot.as_mut(), decoder, 1024)?;
26777
26778 let value = unsafe {
26779 slot.deref_unchecked()
26780 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26781 };
26782
26783 if value.len() > 1024 {
26784 return Err(::fidl_next::DecodeError::VectorTooLong {
26785 size: value.len() as u64,
26786 limit: 1024,
26787 });
26788 }
26789
26790 Ok(())
26791 }
26792
26793 4 => {
26794 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
26795 slot.as_mut(),
26796 decoder,
26797 (),
26798 )?;
26799
26800 Ok(())
26801 }
26802
26803 5 => {
26804 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
26805 slot.as_mut(),
26806 decoder,
26807 (),
26808 )?;
26809
26810 Ok(())
26811 }
26812
26813 6 => {
26814 ::fidl_next::wire::Envelope::decode_as::<
26815 ___D,
26816 ::fidl_next::wire::String<'de>,
26817 >(slot.as_mut(), decoder, 1024)?;
26818
26819 let value = unsafe {
26820 slot.deref_unchecked()
26821 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26822 };
26823
26824 if value.len() > 1024 {
26825 return Err(::fidl_next::DecodeError::VectorTooLong {
26826 size: value.len() as u64,
26827 limit: 1024,
26828 });
26829 }
26830
26831 Ok(())
26832 }
26833
26834 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26835 }
26836 })
26837 }
26838 }
26839
26840 impl<'de> UseService<'de> {
26841 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
26842 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26843 }
26844
26845 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
26846 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26847 }
26848
26849 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26850 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26851 }
26852
26853 pub fn take_source_name(
26854 &mut self,
26855 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26856 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26857 }
26858
26859 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26860 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26861 }
26862
26863 pub fn take_target_path(
26864 &mut self,
26865 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26866 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
26867 }
26868
26869 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
26870 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
26871 }
26872
26873 pub fn take_dependency_type(
26874 &mut self,
26875 ) -> ::core::option::Option<crate::wire::DependencyType> {
26876 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
26877 }
26878
26879 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
26880 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
26881 }
26882
26883 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
26884 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
26885 }
26886
26887 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26888 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
26889 }
26890
26891 pub fn take_source_dictionary(
26892 &mut self,
26893 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26894 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
26895 }
26896 }
26897
26898 impl<'de> ::core::fmt::Debug for UseService<'de> {
26899 fn fmt(
26900 &self,
26901 f: &mut ::core::fmt::Formatter<'_>,
26902 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26903 f.debug_struct("UseService")
26904 .field("source", &self.source())
26905 .field("source_name", &self.source_name())
26906 .field("target_path", &self.target_path())
26907 .field("dependency_type", &self.dependency_type())
26908 .field("availability", &self.availability())
26909 .field("source_dictionary", &self.source_dictionary())
26910 .finish()
26911 }
26912 }
26913
26914 impl<'de> ::fidl_next::IntoNatural for UseService<'de> {
26915 type Natural = crate::natural::UseService;
26916 }
26917
26918 #[repr(C)]
26920 pub struct UseProtocol<'de> {
26921 pub(crate) table: ::fidl_next::wire::Table<'de>,
26922 }
26923
26924 impl<'de> Drop for UseProtocol<'de> {
26925 fn drop(&mut self) {
26926 let _ = self
26927 .table
26928 .get(1)
26929 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
26930
26931 let _ = self.table.get(2).map(|envelope| unsafe {
26932 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26933 });
26934
26935 let _ = self.table.get(3).map(|envelope| unsafe {
26936 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26937 });
26938
26939 let _ = self.table.get(4).map(|envelope| unsafe {
26940 envelope.read_unchecked::<crate::wire::DependencyType>()
26941 });
26942
26943 let _ = self
26944 .table
26945 .get(5)
26946 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26947
26948 let _ = self.table.get(6).map(|envelope| unsafe {
26949 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26950 });
26951
26952 let _ = self.table.get(7).map(|envelope| unsafe { envelope.read_unchecked::<u8>() });
26953 }
26954 }
26955
26956 impl ::fidl_next::Constrained for UseProtocol<'_> {
26957 type Constraint = ();
26958
26959 fn validate(
26960 _: ::fidl_next::Slot<'_, Self>,
26961 _: Self::Constraint,
26962 ) -> Result<(), ::fidl_next::ValidationError> {
26963 Ok(())
26964 }
26965 }
26966
26967 unsafe impl ::fidl_next::Wire for UseProtocol<'static> {
26968 type Narrowed<'de> = UseProtocol<'de>;
26969
26970 #[inline]
26971 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26972 ::fidl_next::munge!(let Self { table } = out);
26973 ::fidl_next::wire::Table::zero_padding(table);
26974 }
26975 }
26976
26977 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseProtocol<'de>
26978 where
26979 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26980 {
26981 fn decode(
26982 slot: ::fidl_next::Slot<'_, Self>,
26983 decoder: &mut ___D,
26984 _: (),
26985 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26986 ::fidl_next::munge!(let Self { table } = slot);
26987
26988 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26989 match ordinal {
26990 0 => unsafe { ::core::hint::unreachable_unchecked() },
26991
26992 1 => {
26993 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
26994 slot.as_mut(),
26995 decoder,
26996 (),
26997 )?;
26998
26999 Ok(())
27000 }
27001
27002 2 => {
27003 ::fidl_next::wire::Envelope::decode_as::<
27004 ___D,
27005 ::fidl_next::wire::String<'de>,
27006 >(slot.as_mut(), decoder, 100)?;
27007
27008 let value = unsafe {
27009 slot.deref_unchecked()
27010 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27011 };
27012
27013 if value.len() > 100 {
27014 return Err(::fidl_next::DecodeError::VectorTooLong {
27015 size: value.len() as u64,
27016 limit: 100,
27017 });
27018 }
27019
27020 Ok(())
27021 }
27022
27023 3 => {
27024 ::fidl_next::wire::Envelope::decode_as::<
27025 ___D,
27026 ::fidl_next::wire::String<'de>,
27027 >(slot.as_mut(), decoder, 1024)?;
27028
27029 let value = unsafe {
27030 slot.deref_unchecked()
27031 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27032 };
27033
27034 if value.len() > 1024 {
27035 return Err(::fidl_next::DecodeError::VectorTooLong {
27036 size: value.len() as u64,
27037 limit: 1024,
27038 });
27039 }
27040
27041 Ok(())
27042 }
27043
27044 4 => {
27045 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
27046 slot.as_mut(),
27047 decoder,
27048 (),
27049 )?;
27050
27051 Ok(())
27052 }
27053
27054 5 => {
27055 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
27056 slot.as_mut(),
27057 decoder,
27058 (),
27059 )?;
27060
27061 Ok(())
27062 }
27063
27064 6 => {
27065 ::fidl_next::wire::Envelope::decode_as::<
27066 ___D,
27067 ::fidl_next::wire::String<'de>,
27068 >(slot.as_mut(), decoder, 1024)?;
27069
27070 let value = unsafe {
27071 slot.deref_unchecked()
27072 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27073 };
27074
27075 if value.len() > 1024 {
27076 return Err(::fidl_next::DecodeError::VectorTooLong {
27077 size: value.len() as u64,
27078 limit: 1024,
27079 });
27080 }
27081
27082 Ok(())
27083 }
27084
27085 7 => {
27086 ::fidl_next::wire::Envelope::decode_as::<___D, u8>(
27087 slot.as_mut(),
27088 decoder,
27089 (),
27090 )?;
27091
27092 Ok(())
27093 }
27094
27095 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27096 }
27097 })
27098 }
27099 }
27100
27101 impl<'de> UseProtocol<'de> {
27102 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27103 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27104 }
27105
27106 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27107 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27108 }
27109
27110 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27111 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27112 }
27113
27114 pub fn take_source_name(
27115 &mut self,
27116 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27117 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27118 }
27119
27120 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27121 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27122 }
27123
27124 pub fn take_target_path(
27125 &mut self,
27126 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27127 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27128 }
27129
27130 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
27131 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27132 }
27133
27134 pub fn take_dependency_type(
27135 &mut self,
27136 ) -> ::core::option::Option<crate::wire::DependencyType> {
27137 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
27138 }
27139
27140 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27141 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27142 }
27143
27144 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
27145 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
27146 }
27147
27148 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27149 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27150 }
27151
27152 pub fn take_source_dictionary(
27153 &mut self,
27154 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27155 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
27156 }
27157
27158 pub fn numbered_handle(&self) -> ::core::option::Option<&u8> {
27159 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
27160 }
27161
27162 pub fn take_numbered_handle(&mut self) -> ::core::option::Option<u8> {
27163 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
27164 }
27165 }
27166
27167 impl<'de> ::core::fmt::Debug for UseProtocol<'de> {
27168 fn fmt(
27169 &self,
27170 f: &mut ::core::fmt::Formatter<'_>,
27171 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27172 f.debug_struct("UseProtocol")
27173 .field("source", &self.source())
27174 .field("source_name", &self.source_name())
27175 .field("target_path", &self.target_path())
27176 .field("dependency_type", &self.dependency_type())
27177 .field("availability", &self.availability())
27178 .field("source_dictionary", &self.source_dictionary())
27179 .field("numbered_handle", &self.numbered_handle())
27180 .finish()
27181 }
27182 }
27183
27184 impl<'de> ::fidl_next::IntoNatural for UseProtocol<'de> {
27185 type Natural = crate::natural::UseProtocol;
27186 }
27187
27188 #[repr(C)]
27190 pub struct UseDirectory<'de> {
27191 pub(crate) table: ::fidl_next::wire::Table<'de>,
27192 }
27193
27194 impl<'de> Drop for UseDirectory<'de> {
27195 fn drop(&mut self) {
27196 let _ = self
27197 .table
27198 .get(1)
27199 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27200
27201 let _ = self.table.get(2).map(|envelope| unsafe {
27202 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27203 });
27204
27205 let _ = self.table.get(3).map(|envelope| unsafe {
27206 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27207 });
27208
27209 let _ = self.table.get(4).map(|envelope| unsafe {
27210 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
27211 });
27212
27213 let _ = self.table.get(5).map(|envelope| unsafe {
27214 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27215 });
27216
27217 let _ = self.table.get(6).map(|envelope| unsafe {
27218 envelope.read_unchecked::<crate::wire::DependencyType>()
27219 });
27220
27221 let _ = self
27222 .table
27223 .get(7)
27224 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27225
27226 let _ = self.table.get(8).map(|envelope| unsafe {
27227 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27228 });
27229 }
27230 }
27231
27232 impl ::fidl_next::Constrained for UseDirectory<'_> {
27233 type Constraint = ();
27234
27235 fn validate(
27236 _: ::fidl_next::Slot<'_, Self>,
27237 _: Self::Constraint,
27238 ) -> Result<(), ::fidl_next::ValidationError> {
27239 Ok(())
27240 }
27241 }
27242
27243 unsafe impl ::fidl_next::Wire for UseDirectory<'static> {
27244 type Narrowed<'de> = UseDirectory<'de>;
27245
27246 #[inline]
27247 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27248 ::fidl_next::munge!(let Self { table } = out);
27249 ::fidl_next::wire::Table::zero_padding(table);
27250 }
27251 }
27252
27253 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseDirectory<'de>
27254 where
27255 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27256 {
27257 fn decode(
27258 slot: ::fidl_next::Slot<'_, Self>,
27259 decoder: &mut ___D,
27260 _: (),
27261 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27262 ::fidl_next::munge!(let Self { table } = slot);
27263
27264 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27265 match ordinal {
27266 0 => unsafe { ::core::hint::unreachable_unchecked() },
27267
27268 1 => {
27269 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27270 slot.as_mut(),
27271 decoder,
27272 (),
27273 )?;
27274
27275 Ok(())
27276 }
27277
27278 2 => {
27279 ::fidl_next::wire::Envelope::decode_as::<
27280 ___D,
27281 ::fidl_next::wire::String<'de>,
27282 >(slot.as_mut(), decoder, 100)?;
27283
27284 let value = unsafe {
27285 slot.deref_unchecked()
27286 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27287 };
27288
27289 if value.len() > 100 {
27290 return Err(::fidl_next::DecodeError::VectorTooLong {
27291 size: value.len() as u64,
27292 limit: 100,
27293 });
27294 }
27295
27296 Ok(())
27297 }
27298
27299 3 => {
27300 ::fidl_next::wire::Envelope::decode_as::<
27301 ___D,
27302 ::fidl_next::wire::String<'de>,
27303 >(slot.as_mut(), decoder, 1024)?;
27304
27305 let value = unsafe {
27306 slot.deref_unchecked()
27307 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27308 };
27309
27310 if value.len() > 1024 {
27311 return Err(::fidl_next::DecodeError::VectorTooLong {
27312 size: value.len() as u64,
27313 limit: 1024,
27314 });
27315 }
27316
27317 Ok(())
27318 }
27319
27320 4 => {
27321 ::fidl_next::wire::Envelope::decode_as::<
27322 ___D,
27323 ::fidl_next_common_fuchsia_io::wire::Operations,
27324 >(slot.as_mut(), decoder, ())?;
27325
27326 Ok(())
27327 }
27328
27329 5 => {
27330 ::fidl_next::wire::Envelope::decode_as::<
27331 ___D,
27332 ::fidl_next::wire::String<'de>,
27333 >(slot.as_mut(), decoder, 1024)?;
27334
27335 let value = unsafe {
27336 slot.deref_unchecked()
27337 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27338 };
27339
27340 if value.len() > 1024 {
27341 return Err(::fidl_next::DecodeError::VectorTooLong {
27342 size: value.len() as u64,
27343 limit: 1024,
27344 });
27345 }
27346
27347 Ok(())
27348 }
27349
27350 6 => {
27351 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
27352 slot.as_mut(),
27353 decoder,
27354 (),
27355 )?;
27356
27357 Ok(())
27358 }
27359
27360 7 => {
27361 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
27362 slot.as_mut(),
27363 decoder,
27364 (),
27365 )?;
27366
27367 Ok(())
27368 }
27369
27370 8 => {
27371 ::fidl_next::wire::Envelope::decode_as::<
27372 ___D,
27373 ::fidl_next::wire::String<'de>,
27374 >(slot.as_mut(), decoder, 1024)?;
27375
27376 let value = unsafe {
27377 slot.deref_unchecked()
27378 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27379 };
27380
27381 if value.len() > 1024 {
27382 return Err(::fidl_next::DecodeError::VectorTooLong {
27383 size: value.len() as u64,
27384 limit: 1024,
27385 });
27386 }
27387
27388 Ok(())
27389 }
27390
27391 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27392 }
27393 })
27394 }
27395 }
27396
27397 impl<'de> UseDirectory<'de> {
27398 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27399 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27400 }
27401
27402 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27403 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27404 }
27405
27406 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27407 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27408 }
27409
27410 pub fn take_source_name(
27411 &mut self,
27412 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27413 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27414 }
27415
27416 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27417 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27418 }
27419
27420 pub fn take_target_path(
27421 &mut self,
27422 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27423 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27424 }
27425
27426 pub fn rights(
27427 &self,
27428 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
27429 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27430 }
27431
27432 pub fn take_rights(
27433 &mut self,
27434 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
27435 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
27436 }
27437
27438 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27439 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27440 }
27441
27442 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27443 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
27444 }
27445
27446 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
27447 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27448 }
27449
27450 pub fn take_dependency_type(
27451 &mut self,
27452 ) -> ::core::option::Option<crate::wire::DependencyType> {
27453 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
27454 }
27455
27456 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27457 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
27458 }
27459
27460 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
27461 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
27462 }
27463
27464 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27465 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
27466 }
27467
27468 pub fn take_source_dictionary(
27469 &mut self,
27470 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27471 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
27472 }
27473 }
27474
27475 impl<'de> ::core::fmt::Debug for UseDirectory<'de> {
27476 fn fmt(
27477 &self,
27478 f: &mut ::core::fmt::Formatter<'_>,
27479 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27480 f.debug_struct("UseDirectory")
27481 .field("source", &self.source())
27482 .field("source_name", &self.source_name())
27483 .field("target_path", &self.target_path())
27484 .field("rights", &self.rights())
27485 .field("subdir", &self.subdir())
27486 .field("dependency_type", &self.dependency_type())
27487 .field("availability", &self.availability())
27488 .field("source_dictionary", &self.source_dictionary())
27489 .finish()
27490 }
27491 }
27492
27493 impl<'de> ::fidl_next::IntoNatural for UseDirectory<'de> {
27494 type Natural = crate::natural::UseDirectory;
27495 }
27496
27497 #[repr(C)]
27499 pub struct UseEventStream<'de> {
27500 pub(crate) table: ::fidl_next::wire::Table<'de>,
27501 }
27502
27503 impl<'de> Drop for UseEventStream<'de> {
27504 fn drop(&mut self) {
27505 let _ = self.table.get(1).map(|envelope| unsafe {
27506 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27507 });
27508
27509 let _ = self
27510 .table
27511 .get(2)
27512 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27513
27514 let _ = self.table.get(3).map(|envelope| unsafe {
27515 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>()
27516 });
27517
27518 let _ = self.table.get(4).map(|envelope| unsafe {
27519 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27520 });
27521
27522 let _ = self
27523 .table
27524 .get(5)
27525 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27526
27527 let _ = self.table.get(6).map(|envelope| unsafe {
27528 envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
27529 });
27530 }
27531 }
27532
27533 impl ::fidl_next::Constrained for UseEventStream<'_> {
27534 type Constraint = ();
27535
27536 fn validate(
27537 _: ::fidl_next::Slot<'_, Self>,
27538 _: Self::Constraint,
27539 ) -> Result<(), ::fidl_next::ValidationError> {
27540 Ok(())
27541 }
27542 }
27543
27544 unsafe impl ::fidl_next::Wire for UseEventStream<'static> {
27545 type Narrowed<'de> = UseEventStream<'de>;
27546
27547 #[inline]
27548 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27549 ::fidl_next::munge!(let Self { table } = out);
27550 ::fidl_next::wire::Table::zero_padding(table);
27551 }
27552 }
27553
27554 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseEventStream<'de>
27555 where
27556 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27557 {
27558 fn decode(
27559 slot: ::fidl_next::Slot<'_, Self>,
27560 decoder: &mut ___D,
27561 _: (),
27562 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27563 ::fidl_next::munge!(let Self { table } = slot);
27564
27565 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27566 match ordinal {
27567 0 => unsafe { ::core::hint::unreachable_unchecked() },
27568
27569 1 => {
27570 ::fidl_next::wire::Envelope::decode_as::<
27571 ___D,
27572 ::fidl_next::wire::String<'de>,
27573 >(slot.as_mut(), decoder, 100)?;
27574
27575 let value = unsafe {
27576 slot.deref_unchecked()
27577 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27578 };
27579
27580 if value.len() > 100 {
27581 return Err(::fidl_next::DecodeError::VectorTooLong {
27582 size: value.len() as u64,
27583 limit: 100,
27584 });
27585 }
27586
27587 Ok(())
27588 }
27589
27590 2 => {
27591 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27592 slot.as_mut(),
27593 decoder,
27594 (),
27595 )?;
27596
27597 Ok(())
27598 }
27599
27600 3 => {
27601 ::fidl_next::wire::Envelope::decode_as::<
27602 ___D,
27603 ::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>,
27604 >(slot.as_mut(), decoder, (4294967295, ()))?;
27605
27606 Ok(())
27607 }
27608
27609 4 => {
27610 ::fidl_next::wire::Envelope::decode_as::<
27611 ___D,
27612 ::fidl_next::wire::String<'de>,
27613 >(slot.as_mut(), decoder, 100)?;
27614
27615 let value = unsafe {
27616 slot.deref_unchecked()
27617 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27618 };
27619
27620 if value.len() > 100 {
27621 return Err(::fidl_next::DecodeError::VectorTooLong {
27622 size: value.len() as u64,
27623 limit: 100,
27624 });
27625 }
27626
27627 Ok(())
27628 }
27629
27630 5 => {
27631 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
27632 slot.as_mut(),
27633 decoder,
27634 (),
27635 )?;
27636
27637 Ok(())
27638 }
27639
27640 6 => {
27641 ::fidl_next::wire::Envelope::decode_as::<
27642 ___D,
27643 ::fidl_next_common_fuchsia_data::wire::Dictionary<'de>,
27644 >(slot.as_mut(), decoder, ())?;
27645
27646 Ok(())
27647 }
27648
27649 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27650 }
27651 })
27652 }
27653 }
27654
27655 impl<'de> UseEventStream<'de> {
27656 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27657 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27658 }
27659
27660 pub fn take_source_name(
27661 &mut self,
27662 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27663 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27664 }
27665
27666 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27667 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27668 }
27669
27670 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27671 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27672 }
27673
27674 pub fn scope(
27675 &self,
27676 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>
27677 {
27678 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27679 }
27680
27681 pub fn take_scope(
27682 &mut self,
27683 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>> {
27684 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27685 }
27686
27687 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27688 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27689 }
27690
27691 pub fn take_target_path(
27692 &mut self,
27693 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27694 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
27695 }
27696
27697 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27698 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27699 }
27700
27701 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
27702 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
27703 }
27704
27705 pub fn filter(
27706 &self,
27707 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
27708 {
27709 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27710 }
27711
27712 pub fn take_filter(
27713 &mut self,
27714 ) -> ::core::option::Option<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
27715 {
27716 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
27717 }
27718 }
27719
27720 impl<'de> ::core::fmt::Debug for UseEventStream<'de> {
27721 fn fmt(
27722 &self,
27723 f: &mut ::core::fmt::Formatter<'_>,
27724 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27725 f.debug_struct("UseEventStream")
27726 .field("source_name", &self.source_name())
27727 .field("source", &self.source())
27728 .field("scope", &self.scope())
27729 .field("target_path", &self.target_path())
27730 .field("availability", &self.availability())
27731 .field("filter", &self.filter())
27732 .finish()
27733 }
27734 }
27735
27736 impl<'de> ::fidl_next::IntoNatural for UseEventStream<'de> {
27737 type Natural = crate::natural::UseEventStream;
27738 }
27739
27740 #[repr(C)]
27742 pub struct UseRunner<'de> {
27743 pub(crate) table: ::fidl_next::wire::Table<'de>,
27744 }
27745
27746 impl<'de> Drop for UseRunner<'de> {
27747 fn drop(&mut self) {
27748 let _ = self
27749 .table
27750 .get(1)
27751 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27752
27753 let _ = self.table.get(2).map(|envelope| unsafe {
27754 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27755 });
27756
27757 let _ = self.table.get(3).map(|envelope| unsafe {
27758 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27759 });
27760 }
27761 }
27762
27763 impl ::fidl_next::Constrained for UseRunner<'_> {
27764 type Constraint = ();
27765
27766 fn validate(
27767 _: ::fidl_next::Slot<'_, Self>,
27768 _: Self::Constraint,
27769 ) -> Result<(), ::fidl_next::ValidationError> {
27770 Ok(())
27771 }
27772 }
27773
27774 unsafe impl ::fidl_next::Wire for UseRunner<'static> {
27775 type Narrowed<'de> = UseRunner<'de>;
27776
27777 #[inline]
27778 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27779 ::fidl_next::munge!(let Self { table } = out);
27780 ::fidl_next::wire::Table::zero_padding(table);
27781 }
27782 }
27783
27784 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseRunner<'de>
27785 where
27786 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27787 {
27788 fn decode(
27789 slot: ::fidl_next::Slot<'_, Self>,
27790 decoder: &mut ___D,
27791 _: (),
27792 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27793 ::fidl_next::munge!(let Self { table } = slot);
27794
27795 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27796 match ordinal {
27797 0 => unsafe { ::core::hint::unreachable_unchecked() },
27798
27799 1 => {
27800 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27801 slot.as_mut(),
27802 decoder,
27803 (),
27804 )?;
27805
27806 Ok(())
27807 }
27808
27809 2 => {
27810 ::fidl_next::wire::Envelope::decode_as::<
27811 ___D,
27812 ::fidl_next::wire::String<'de>,
27813 >(slot.as_mut(), decoder, 100)?;
27814
27815 let value = unsafe {
27816 slot.deref_unchecked()
27817 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27818 };
27819
27820 if value.len() > 100 {
27821 return Err(::fidl_next::DecodeError::VectorTooLong {
27822 size: value.len() as u64,
27823 limit: 100,
27824 });
27825 }
27826
27827 Ok(())
27828 }
27829
27830 3 => {
27831 ::fidl_next::wire::Envelope::decode_as::<
27832 ___D,
27833 ::fidl_next::wire::String<'de>,
27834 >(slot.as_mut(), decoder, 1024)?;
27835
27836 let value = unsafe {
27837 slot.deref_unchecked()
27838 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27839 };
27840
27841 if value.len() > 1024 {
27842 return Err(::fidl_next::DecodeError::VectorTooLong {
27843 size: value.len() as u64,
27844 limit: 1024,
27845 });
27846 }
27847
27848 Ok(())
27849 }
27850
27851 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27852 }
27853 })
27854 }
27855 }
27856
27857 impl<'de> UseRunner<'de> {
27858 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27859 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27860 }
27861
27862 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27863 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27864 }
27865
27866 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27867 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27868 }
27869
27870 pub fn take_source_name(
27871 &mut self,
27872 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27873 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27874 }
27875
27876 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27877 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27878 }
27879
27880 pub fn take_source_dictionary(
27881 &mut self,
27882 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27883 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27884 }
27885 }
27886
27887 impl<'de> ::core::fmt::Debug for UseRunner<'de> {
27888 fn fmt(
27889 &self,
27890 f: &mut ::core::fmt::Formatter<'_>,
27891 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27892 f.debug_struct("UseRunner")
27893 .field("source", &self.source())
27894 .field("source_name", &self.source_name())
27895 .field("source_dictionary", &self.source_dictionary())
27896 .finish()
27897 }
27898 }
27899
27900 impl<'de> ::fidl_next::IntoNatural for UseRunner<'de> {
27901 type Natural = crate::natural::UseRunner;
27902 }
27903
27904 #[repr(C)]
27906 pub struct UseConfiguration<'de> {
27907 pub(crate) table: ::fidl_next::wire::Table<'de>,
27908 }
27909
27910 impl<'de> Drop for UseConfiguration<'de> {
27911 fn drop(&mut self) {
27912 let _ = self
27913 .table
27914 .get(1)
27915 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27916
27917 let _ = self.table.get(2).map(|envelope| unsafe {
27918 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27919 });
27920
27921 let _ = self.table.get(3).map(|envelope| unsafe {
27922 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27923 });
27924
27925 let _ = self
27926 .table
27927 .get(4)
27928 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27929
27930 let _ = self.table.get(5).map(|envelope| unsafe {
27931 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
27932 });
27933
27934 let _ = self.table.get(6).map(|envelope| unsafe {
27935 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
27936 });
27937
27938 let _ = self.table.get(7).map(|envelope| unsafe {
27939 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27940 });
27941 }
27942 }
27943
27944 impl ::fidl_next::Constrained for UseConfiguration<'_> {
27945 type Constraint = ();
27946
27947 fn validate(
27948 _: ::fidl_next::Slot<'_, Self>,
27949 _: Self::Constraint,
27950 ) -> Result<(), ::fidl_next::ValidationError> {
27951 Ok(())
27952 }
27953 }
27954
27955 unsafe impl ::fidl_next::Wire for UseConfiguration<'static> {
27956 type Narrowed<'de> = UseConfiguration<'de>;
27957
27958 #[inline]
27959 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27960 ::fidl_next::munge!(let Self { table } = out);
27961 ::fidl_next::wire::Table::zero_padding(table);
27962 }
27963 }
27964
27965 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseConfiguration<'de>
27966 where
27967 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27968 {
27969 fn decode(
27970 slot: ::fidl_next::Slot<'_, Self>,
27971 decoder: &mut ___D,
27972 _: (),
27973 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27974 ::fidl_next::munge!(let Self { table } = slot);
27975
27976 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27977 match ordinal {
27978 0 => unsafe { ::core::hint::unreachable_unchecked() },
27979
27980 1 => {
27981 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27982 slot.as_mut(),
27983 decoder,
27984 (),
27985 )?;
27986
27987 Ok(())
27988 }
27989
27990 2 => {
27991 ::fidl_next::wire::Envelope::decode_as::<
27992 ___D,
27993 ::fidl_next::wire::String<'de>,
27994 >(slot.as_mut(), decoder, 100)?;
27995
27996 let value = unsafe {
27997 slot.deref_unchecked()
27998 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27999 };
28000
28001 if value.len() > 100 {
28002 return Err(::fidl_next::DecodeError::VectorTooLong {
28003 size: value.len() as u64,
28004 limit: 100,
28005 });
28006 }
28007
28008 Ok(())
28009 }
28010
28011 3 => {
28012 ::fidl_next::wire::Envelope::decode_as::<
28013 ___D,
28014 ::fidl_next::wire::String<'de>,
28015 >(slot.as_mut(), decoder, 100)?;
28016
28017 let value = unsafe {
28018 slot.deref_unchecked()
28019 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28020 };
28021
28022 if value.len() > 100 {
28023 return Err(::fidl_next::DecodeError::VectorTooLong {
28024 size: value.len() as u64,
28025 limit: 100,
28026 });
28027 }
28028
28029 Ok(())
28030 }
28031
28032 4 => {
28033 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
28034 slot.as_mut(),
28035 decoder,
28036 (),
28037 )?;
28038
28039 Ok(())
28040 }
28041
28042 5 => {
28043 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::ConfigType<'de>>(
28044 slot.as_mut(),
28045 decoder,
28046 (),
28047 )?;
28048
28049 Ok(())
28050 }
28051
28052 6 => {
28053 ::fidl_next::wire::Envelope::decode_as::<
28054 ___D,
28055 crate::wire::ConfigValue<'de>,
28056 >(slot.as_mut(), decoder, ())?;
28057
28058 Ok(())
28059 }
28060
28061 7 => {
28062 ::fidl_next::wire::Envelope::decode_as::<
28063 ___D,
28064 ::fidl_next::wire::String<'de>,
28065 >(slot.as_mut(), decoder, 1024)?;
28066
28067 let value = unsafe {
28068 slot.deref_unchecked()
28069 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28070 };
28071
28072 if value.len() > 1024 {
28073 return Err(::fidl_next::DecodeError::VectorTooLong {
28074 size: value.len() as u64,
28075 limit: 1024,
28076 });
28077 }
28078
28079 Ok(())
28080 }
28081
28082 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
28083 }
28084 })
28085 }
28086 }
28087
28088 impl<'de> UseConfiguration<'de> {
28089 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28090 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28091 }
28092
28093 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
28094 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
28095 }
28096
28097 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28098 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28099 }
28100
28101 pub fn take_source_name(
28102 &mut self,
28103 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28104 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
28105 }
28106
28107 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28108 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28109 }
28110
28111 pub fn take_target_name(
28112 &mut self,
28113 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28114 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
28115 }
28116
28117 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28118 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
28119 }
28120
28121 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
28122 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
28123 }
28124
28125 pub fn type_(&self) -> ::core::option::Option<&crate::wire::ConfigType<'de>> {
28126 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
28127 }
28128
28129 pub fn take_type_(&mut self) -> ::core::option::Option<crate::wire::ConfigType<'de>> {
28130 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
28131 }
28132
28133 pub fn default(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
28134 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28135 }
28136
28137 pub fn take_default(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
28138 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
28139 }
28140
28141 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28142 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
28143 }
28144
28145 pub fn take_source_dictionary(
28146 &mut self,
28147 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28148 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
28149 }
28150 }
28151
28152 impl<'de> ::core::fmt::Debug for UseConfiguration<'de> {
28153 fn fmt(
28154 &self,
28155 f: &mut ::core::fmt::Formatter<'_>,
28156 ) -> ::core::result::Result<(), ::core::fmt::Error> {
28157 f.debug_struct("UseConfiguration")
28158 .field("source", &self.source())
28159 .field("source_name", &self.source_name())
28160 .field("target_name", &self.target_name())
28161 .field("availability", &self.availability())
28162 .field("type_", &self.type_())
28163 .field("default", &self.default())
28164 .field("source_dictionary", &self.source_dictionary())
28165 .finish()
28166 }
28167 }
28168
28169 impl<'de> ::fidl_next::IntoNatural for UseConfiguration<'de> {
28170 type Natural = crate::natural::UseConfiguration;
28171 }
28172
28173 #[repr(C)]
28175 pub struct UseDictionary<'de> {
28176 pub(crate) table: ::fidl_next::wire::Table<'de>,
28177 }
28178
28179 impl<'de> Drop for UseDictionary<'de> {
28180 fn drop(&mut self) {
28181 let _ = self
28182 .table
28183 .get(1)
28184 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28185
28186 let _ = self.table.get(2).map(|envelope| unsafe {
28187 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28188 });
28189
28190 let _ = self.table.get(3).map(|envelope| unsafe {
28191 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28192 });
28193
28194 let _ = self.table.get(6).map(|envelope| unsafe {
28195 envelope.read_unchecked::<crate::wire::DependencyType>()
28196 });
28197
28198 let _ = self
28199 .table
28200 .get(7)
28201 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28202
28203 let _ = self.table.get(8).map(|envelope| unsafe {
28204 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28205 });
28206 }
28207 }
28208
28209 impl ::fidl_next::Constrained for UseDictionary<'_> {
28210 type Constraint = ();
28211
28212 fn validate(
28213 _: ::fidl_next::Slot<'_, Self>,
28214 _: Self::Constraint,
28215 ) -> Result<(), ::fidl_next::ValidationError> {
28216 Ok(())
28217 }
28218 }
28219
28220 unsafe impl ::fidl_next::Wire for UseDictionary<'static> {
28221 type Narrowed<'de> = UseDictionary<'de>;
28222
28223 #[inline]
28224 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28225 ::fidl_next::munge!(let Self { table } = out);
28226 ::fidl_next::wire::Table::zero_padding(table);
28227 }
28228 }
28229
28230 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseDictionary<'de>
28231 where
28232 ___D: ::fidl_next::Decoder<'de> + ?Sized,
28233 {
28234 fn decode(
28235 slot: ::fidl_next::Slot<'_, Self>,
28236 decoder: &mut ___D,
28237 _: (),
28238 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28239 ::fidl_next::munge!(let Self { table } = slot);
28240
28241 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28242 match ordinal {
28243 0 => unsafe { ::core::hint::unreachable_unchecked() },
28244
28245 1 => {
28246 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
28247 slot.as_mut(),
28248 decoder,
28249 (),
28250 )?;
28251
28252 Ok(())
28253 }
28254
28255 2 => {
28256 ::fidl_next::wire::Envelope::decode_as::<
28257 ___D,
28258 ::fidl_next::wire::String<'de>,
28259 >(slot.as_mut(), decoder, 100)?;
28260
28261 let value = unsafe {
28262 slot.deref_unchecked()
28263 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28264 };
28265
28266 if value.len() > 100 {
28267 return Err(::fidl_next::DecodeError::VectorTooLong {
28268 size: value.len() as u64,
28269 limit: 100,
28270 });
28271 }
28272
28273 Ok(())
28274 }
28275
28276 3 => {
28277 ::fidl_next::wire::Envelope::decode_as::<
28278 ___D,
28279 ::fidl_next::wire::String<'de>,
28280 >(slot.as_mut(), decoder, 1024)?;
28281
28282 let value = unsafe {
28283 slot.deref_unchecked()
28284 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28285 };
28286
28287 if value.len() > 1024 {
28288 return Err(::fidl_next::DecodeError::VectorTooLong {
28289 size: value.len() as u64,
28290 limit: 1024,
28291 });
28292 }
28293
28294 Ok(())
28295 }
28296
28297 6 => {
28298 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
28299 slot.as_mut(),
28300 decoder,
28301 (),
28302 )?;
28303
28304 Ok(())
28305 }
28306
28307 7 => {
28308 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
28309 slot.as_mut(),
28310 decoder,
28311 (),
28312 )?;
28313
28314 Ok(())
28315 }
28316
28317 8 => {
28318 ::fidl_next::wire::Envelope::decode_as::<
28319 ___D,
28320 ::fidl_next::wire::String<'de>,
28321 >(slot.as_mut(), decoder, 1024)?;
28322
28323 let value = unsafe {
28324 slot.deref_unchecked()
28325 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28326 };
28327
28328 if value.len() > 1024 {
28329 return Err(::fidl_next::DecodeError::VectorTooLong {
28330 size: value.len() as u64,
28331 limit: 1024,
28332 });
28333 }
28334
28335 Ok(())
28336 }
28337
28338 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
28339 }
28340 })
28341 }
28342 }
28343
28344 impl<'de> UseDictionary<'de> {
28345 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28346 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28347 }
28348
28349 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
28350 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
28351 }
28352
28353 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28354 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28355 }
28356
28357 pub fn take_source_name(
28358 &mut self,
28359 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28360 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
28361 }
28362
28363 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28364 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28365 }
28366
28367 pub fn take_target_path(
28368 &mut self,
28369 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28370 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
28371 }
28372
28373 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
28374 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28375 }
28376
28377 pub fn take_dependency_type(
28378 &mut self,
28379 ) -> ::core::option::Option<crate::wire::DependencyType> {
28380 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
28381 }
28382
28383 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28384 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
28385 }
28386
28387 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
28388 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
28389 }
28390
28391 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28392 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
28393 }
28394
28395 pub fn take_source_dictionary(
28396 &mut self,
28397 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28398 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
28399 }
28400 }
28401
28402 impl<'de> ::core::fmt::Debug for UseDictionary<'de> {
28403 fn fmt(
28404 &self,
28405 f: &mut ::core::fmt::Formatter<'_>,
28406 ) -> ::core::result::Result<(), ::core::fmt::Error> {
28407 f.debug_struct("UseDictionary")
28408 .field("source", &self.source())
28409 .field("source_name", &self.source_name())
28410 .field("target_path", &self.target_path())
28411 .field("dependency_type", &self.dependency_type())
28412 .field("availability", &self.availability())
28413 .field("source_dictionary", &self.source_dictionary())
28414 .finish()
28415 }
28416 }
28417
28418 impl<'de> ::fidl_next::IntoNatural for UseDictionary<'de> {
28419 type Natural = crate::natural::UseDictionary;
28420 }
28421
28422 #[repr(transparent)]
28424 pub struct Use<'de> {
28425 pub(crate) raw: ::fidl_next::wire::Union,
28426 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
28427 }
28428
28429 impl<'de> Drop for Use<'de> {
28430 fn drop(&mut self) {
28431 match self.raw.ordinal() {
28432 1 => {
28433 let _ =
28434 unsafe { self.raw.get().read_unchecked::<crate::wire::UseService<'de>>() };
28435 }
28436
28437 2 => {
28438 let _ =
28439 unsafe { self.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>() };
28440 }
28441
28442 3 => {
28443 let _ = unsafe {
28444 self.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
28445 };
28446 }
28447
28448 4 => {
28449 let _ =
28450 unsafe { self.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>() };
28451 }
28452
28453 7 => {
28454 let _ = unsafe {
28455 self.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
28456 };
28457 }
28458
28459 8 => {
28460 let _ =
28461 unsafe { self.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>() };
28462 }
28463
28464 9 => {
28465 let _ = unsafe {
28466 self.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
28467 };
28468 }
28469
28470 10 => {
28471 let _ = unsafe {
28472 self.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
28473 };
28474 }
28475
28476 _ => (),
28477 }
28478 }
28479 }
28480
28481 impl ::fidl_next::Constrained for Use<'_> {
28482 type Constraint = ();
28483
28484 fn validate(
28485 _: ::fidl_next::Slot<'_, Self>,
28486 _: Self::Constraint,
28487 ) -> Result<(), ::fidl_next::ValidationError> {
28488 Ok(())
28489 }
28490 }
28491
28492 unsafe impl ::fidl_next::Wire for Use<'static> {
28493 type Narrowed<'de> = Use<'de>;
28494
28495 #[inline]
28496 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28497 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
28498 ::fidl_next::wire::Union::zero_padding(raw);
28499 }
28500 }
28501
28502 pub mod use_ {
28503 pub enum Ref<'de> {
28504 Service(&'de crate::wire::UseService<'de>),
28505
28506 Protocol(&'de crate::wire::UseProtocol<'de>),
28507
28508 Directory(&'de crate::wire::UseDirectory<'de>),
28509
28510 Storage(&'de crate::wire::UseStorage<'de>),
28511
28512 EventStream(&'de crate::wire::UseEventStream<'de>),
28513
28514 Runner(&'de crate::wire::UseRunner<'de>),
28515
28516 Config(&'de crate::wire::UseConfiguration<'de>),
28517
28518 Dictionary(&'de crate::wire::UseDictionary<'de>),
28519
28520 UnknownOrdinal_(u64),
28521 }
28522
28523 pub enum Value<'de> {
28524 Service(crate::wire::UseService<'de>),
28525
28526 Protocol(crate::wire::UseProtocol<'de>),
28527
28528 Directory(crate::wire::UseDirectory<'de>),
28529
28530 Storage(crate::wire::UseStorage<'de>),
28531
28532 EventStream(crate::wire::UseEventStream<'de>),
28533
28534 Runner(crate::wire::UseRunner<'de>),
28535
28536 Config(crate::wire::UseConfiguration<'de>),
28537
28538 Dictionary(crate::wire::UseDictionary<'de>),
28539
28540 UnknownOrdinal_(u64),
28541 }
28542 }
28543
28544 impl<'de> Use<'de> {
28545 pub fn as_ref(&self) -> crate::wire::use_::Ref<'_> {
28546 match self.raw.ordinal() {
28547 1 => crate::wire::use_::Ref::Service(unsafe {
28548 self.raw.get().deref_unchecked::<crate::wire::UseService<'_>>()
28549 }),
28550
28551 2 => crate::wire::use_::Ref::Protocol(unsafe {
28552 self.raw.get().deref_unchecked::<crate::wire::UseProtocol<'_>>()
28553 }),
28554
28555 3 => crate::wire::use_::Ref::Directory(unsafe {
28556 self.raw.get().deref_unchecked::<crate::wire::UseDirectory<'_>>()
28557 }),
28558
28559 4 => crate::wire::use_::Ref::Storage(unsafe {
28560 self.raw.get().deref_unchecked::<crate::wire::UseStorage<'_>>()
28561 }),
28562
28563 7 => crate::wire::use_::Ref::EventStream(unsafe {
28564 self.raw.get().deref_unchecked::<crate::wire::UseEventStream<'_>>()
28565 }),
28566
28567 8 => crate::wire::use_::Ref::Runner(unsafe {
28568 self.raw.get().deref_unchecked::<crate::wire::UseRunner<'_>>()
28569 }),
28570
28571 9 => crate::wire::use_::Ref::Config(unsafe {
28572 self.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'_>>()
28573 }),
28574
28575 10 => crate::wire::use_::Ref::Dictionary(unsafe {
28576 self.raw.get().deref_unchecked::<crate::wire::UseDictionary<'_>>()
28577 }),
28578
28579 unknown => crate::wire::use_::Ref::UnknownOrdinal_(unknown),
28580 }
28581 }
28582
28583 pub fn into_inner(self) -> crate::wire::use_::Value<'de> {
28584 let this = ::core::mem::ManuallyDrop::new(self);
28585
28586 match this.raw.ordinal() {
28587 1 => crate::wire::use_::Value::Service(unsafe {
28588 this.raw.get().read_unchecked::<crate::wire::UseService<'de>>()
28589 }),
28590
28591 2 => crate::wire::use_::Value::Protocol(unsafe {
28592 this.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>()
28593 }),
28594
28595 3 => crate::wire::use_::Value::Directory(unsafe {
28596 this.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
28597 }),
28598
28599 4 => crate::wire::use_::Value::Storage(unsafe {
28600 this.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>()
28601 }),
28602
28603 7 => crate::wire::use_::Value::EventStream(unsafe {
28604 this.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
28605 }),
28606
28607 8 => crate::wire::use_::Value::Runner(unsafe {
28608 this.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>()
28609 }),
28610
28611 9 => crate::wire::use_::Value::Config(unsafe {
28612 this.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
28613 }),
28614
28615 10 => crate::wire::use_::Value::Dictionary(unsafe {
28616 this.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
28617 }),
28618
28619 unknown => crate::wire::use_::Value::UnknownOrdinal_(unknown),
28620 }
28621 }
28622 }
28623
28624 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Use<'de>
28625 where
28626 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
28627 ___D: ::fidl_next::Decoder<'de>,
28628 {
28629 fn decode(
28630 mut slot: ::fidl_next::Slot<'_, Self>,
28631 decoder: &mut ___D,
28632 _: (),
28633 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28634 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
28635 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
28636 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseService<'de>>(
28637 raw,
28638 decoder,
28639 (),
28640 )?,
28641
28642 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseProtocol<'de>>(
28643 raw,
28644 decoder,
28645 (),
28646 )?,
28647
28648 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDirectory<'de>>(
28649 raw,
28650 decoder,
28651 (),
28652 )?,
28653
28654 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseStorage<'de>>(
28655 raw,
28656 decoder,
28657 (),
28658 )?,
28659
28660 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseEventStream<'de>>(
28661 raw,
28662 decoder,
28663 (),
28664 )?,
28665
28666 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseRunner<'de>>(
28667 raw,
28668 decoder,
28669 (),
28670 )?,
28671
28672 9 => {
28673 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseConfiguration<'de>>(
28674 raw,
28675 decoder,
28676 (),
28677 )?
28678 }
28679
28680 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDictionary<'de>>(
28681 raw,
28682 decoder,
28683 (),
28684 )?,
28685
28686 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
28687 }
28688
28689 Ok(())
28690 }
28691 }
28692
28693 impl<'de> ::core::fmt::Debug for Use<'de> {
28694 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28695 match self.raw.ordinal() {
28696 1 => unsafe {
28697 self.raw.get().deref_unchecked::<crate::wire::UseService<'_>>().fmt(f)
28698 },
28699 2 => unsafe {
28700 self.raw.get().deref_unchecked::<crate::wire::UseProtocol<'_>>().fmt(f)
28701 },
28702 3 => unsafe {
28703 self.raw.get().deref_unchecked::<crate::wire::UseDirectory<'_>>().fmt(f)
28704 },
28705 4 => unsafe {
28706 self.raw.get().deref_unchecked::<crate::wire::UseStorage<'_>>().fmt(f)
28707 },
28708 7 => unsafe {
28709 self.raw.get().deref_unchecked::<crate::wire::UseEventStream<'_>>().fmt(f)
28710 },
28711 8 => unsafe {
28712 self.raw.get().deref_unchecked::<crate::wire::UseRunner<'_>>().fmt(f)
28713 },
28714 9 => unsafe {
28715 self.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'_>>().fmt(f)
28716 },
28717 10 => unsafe {
28718 self.raw.get().deref_unchecked::<crate::wire::UseDictionary<'_>>().fmt(f)
28719 },
28720 _ => unsafe { ::core::hint::unreachable_unchecked() },
28721 }
28722 }
28723 }
28724
28725 impl<'de> ::fidl_next::IntoNatural for Use<'de> {
28726 type Natural = crate::natural::Use;
28727 }
28728
28729 #[repr(C)]
28731 pub struct ExposeService<'de> {
28732 pub(crate) table: ::fidl_next::wire::Table<'de>,
28733 }
28734
28735 impl<'de> Drop for ExposeService<'de> {
28736 fn drop(&mut self) {
28737 let _ = self
28738 .table
28739 .get(1)
28740 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28741
28742 let _ = self.table.get(2).map(|envelope| unsafe {
28743 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28744 });
28745
28746 let _ = self
28747 .table
28748 .get(3)
28749 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28750
28751 let _ = self.table.get(4).map(|envelope| unsafe {
28752 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28753 });
28754
28755 let _ = self
28756 .table
28757 .get(5)
28758 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28759
28760 let _ = self.table.get(6).map(|envelope| unsafe {
28761 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28762 });
28763 }
28764 }
28765
28766 impl ::fidl_next::Constrained for ExposeService<'_> {
28767 type Constraint = ();
28768
28769 fn validate(
28770 _: ::fidl_next::Slot<'_, Self>,
28771 _: Self::Constraint,
28772 ) -> Result<(), ::fidl_next::ValidationError> {
28773 Ok(())
28774 }
28775 }
28776
28777 unsafe impl ::fidl_next::Wire for ExposeService<'static> {
28778 type Narrowed<'de> = ExposeService<'de>;
28779
28780 #[inline]
28781 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28782 ::fidl_next::munge!(let Self { table } = out);
28783 ::fidl_next::wire::Table::zero_padding(table);
28784 }
28785 }
28786
28787 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeService<'de>
28788 where
28789 ___D: ::fidl_next::Decoder<'de> + ?Sized,
28790 {
28791 fn decode(
28792 slot: ::fidl_next::Slot<'_, Self>,
28793 decoder: &mut ___D,
28794 _: (),
28795 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28796 ::fidl_next::munge!(let Self { table } = slot);
28797
28798 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28799 match ordinal {
28800 0 => unsafe { ::core::hint::unreachable_unchecked() },
28801
28802 1 => {
28803 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
28804 slot.as_mut(),
28805 decoder,
28806 (),
28807 )?;
28808
28809 Ok(())
28810 }
28811
28812 2 => {
28813 ::fidl_next::wire::Envelope::decode_as::<
28814 ___D,
28815 ::fidl_next::wire::String<'de>,
28816 >(slot.as_mut(), decoder, 100)?;
28817
28818 let value = unsafe {
28819 slot.deref_unchecked()
28820 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28821 };
28822
28823 if value.len() > 100 {
28824 return Err(::fidl_next::DecodeError::VectorTooLong {
28825 size: value.len() as u64,
28826 limit: 100,
28827 });
28828 }
28829
28830 Ok(())
28831 }
28832
28833 3 => {
28834 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
28835 slot.as_mut(),
28836 decoder,
28837 (),
28838 )?;
28839
28840 Ok(())
28841 }
28842
28843 4 => {
28844 ::fidl_next::wire::Envelope::decode_as::<
28845 ___D,
28846 ::fidl_next::wire::String<'de>,
28847 >(slot.as_mut(), decoder, 100)?;
28848
28849 let value = unsafe {
28850 slot.deref_unchecked()
28851 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28852 };
28853
28854 if value.len() > 100 {
28855 return Err(::fidl_next::DecodeError::VectorTooLong {
28856 size: value.len() as u64,
28857 limit: 100,
28858 });
28859 }
28860
28861 Ok(())
28862 }
28863
28864 5 => {
28865 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
28866 slot.as_mut(),
28867 decoder,
28868 (),
28869 )?;
28870
28871 Ok(())
28872 }
28873
28874 6 => {
28875 ::fidl_next::wire::Envelope::decode_as::<
28876 ___D,
28877 ::fidl_next::wire::String<'de>,
28878 >(slot.as_mut(), decoder, 1024)?;
28879
28880 let value = unsafe {
28881 slot.deref_unchecked()
28882 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28883 };
28884
28885 if value.len() > 1024 {
28886 return Err(::fidl_next::DecodeError::VectorTooLong {
28887 size: value.len() as u64,
28888 limit: 1024,
28889 });
28890 }
28891
28892 Ok(())
28893 }
28894
28895 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
28896 }
28897 })
28898 }
28899 }
28900
28901 impl<'de> ExposeService<'de> {
28902 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28903 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28904 }
28905
28906 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
28907 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
28908 }
28909
28910 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28911 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28912 }
28913
28914 pub fn take_source_name(
28915 &mut self,
28916 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28917 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
28918 }
28919
28920 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28921 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28922 }
28923
28924 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
28925 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
28926 }
28927
28928 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28929 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
28930 }
28931
28932 pub fn take_target_name(
28933 &mut self,
28934 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28935 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
28936 }
28937
28938 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28939 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
28940 }
28941
28942 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
28943 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
28944 }
28945
28946 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28947 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28948 }
28949
28950 pub fn take_source_dictionary(
28951 &mut self,
28952 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28953 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
28954 }
28955 }
28956
28957 impl<'de> ::core::fmt::Debug for ExposeService<'de> {
28958 fn fmt(
28959 &self,
28960 f: &mut ::core::fmt::Formatter<'_>,
28961 ) -> ::core::result::Result<(), ::core::fmt::Error> {
28962 f.debug_struct("ExposeService")
28963 .field("source", &self.source())
28964 .field("source_name", &self.source_name())
28965 .field("target", &self.target())
28966 .field("target_name", &self.target_name())
28967 .field("availability", &self.availability())
28968 .field("source_dictionary", &self.source_dictionary())
28969 .finish()
28970 }
28971 }
28972
28973 impl<'de> ::fidl_next::IntoNatural for ExposeService<'de> {
28974 type Natural = crate::natural::ExposeService;
28975 }
28976
28977 #[repr(C)]
28979 pub struct ExposeProtocol<'de> {
28980 pub(crate) table: ::fidl_next::wire::Table<'de>,
28981 }
28982
28983 impl<'de> Drop for ExposeProtocol<'de> {
28984 fn drop(&mut self) {
28985 let _ = self
28986 .table
28987 .get(1)
28988 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28989
28990 let _ = self.table.get(2).map(|envelope| unsafe {
28991 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28992 });
28993
28994 let _ = self
28995 .table
28996 .get(3)
28997 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28998
28999 let _ = self.table.get(4).map(|envelope| unsafe {
29000 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29001 });
29002
29003 let _ = self
29004 .table
29005 .get(5)
29006 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
29007
29008 let _ = self.table.get(6).map(|envelope| unsafe {
29009 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29010 });
29011 }
29012 }
29013
29014 impl ::fidl_next::Constrained for ExposeProtocol<'_> {
29015 type Constraint = ();
29016
29017 fn validate(
29018 _: ::fidl_next::Slot<'_, Self>,
29019 _: Self::Constraint,
29020 ) -> Result<(), ::fidl_next::ValidationError> {
29021 Ok(())
29022 }
29023 }
29024
29025 unsafe impl ::fidl_next::Wire for ExposeProtocol<'static> {
29026 type Narrowed<'de> = ExposeProtocol<'de>;
29027
29028 #[inline]
29029 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29030 ::fidl_next::munge!(let Self { table } = out);
29031 ::fidl_next::wire::Table::zero_padding(table);
29032 }
29033 }
29034
29035 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeProtocol<'de>
29036 where
29037 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29038 {
29039 fn decode(
29040 slot: ::fidl_next::Slot<'_, Self>,
29041 decoder: &mut ___D,
29042 _: (),
29043 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29044 ::fidl_next::munge!(let Self { table } = slot);
29045
29046 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29047 match ordinal {
29048 0 => unsafe { ::core::hint::unreachable_unchecked() },
29049
29050 1 => {
29051 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29052 slot.as_mut(),
29053 decoder,
29054 (),
29055 )?;
29056
29057 Ok(())
29058 }
29059
29060 2 => {
29061 ::fidl_next::wire::Envelope::decode_as::<
29062 ___D,
29063 ::fidl_next::wire::String<'de>,
29064 >(slot.as_mut(), decoder, 100)?;
29065
29066 let value = unsafe {
29067 slot.deref_unchecked()
29068 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29069 };
29070
29071 if value.len() > 100 {
29072 return Err(::fidl_next::DecodeError::VectorTooLong {
29073 size: value.len() as u64,
29074 limit: 100,
29075 });
29076 }
29077
29078 Ok(())
29079 }
29080
29081 3 => {
29082 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29083 slot.as_mut(),
29084 decoder,
29085 (),
29086 )?;
29087
29088 Ok(())
29089 }
29090
29091 4 => {
29092 ::fidl_next::wire::Envelope::decode_as::<
29093 ___D,
29094 ::fidl_next::wire::String<'de>,
29095 >(slot.as_mut(), decoder, 100)?;
29096
29097 let value = unsafe {
29098 slot.deref_unchecked()
29099 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29100 };
29101
29102 if value.len() > 100 {
29103 return Err(::fidl_next::DecodeError::VectorTooLong {
29104 size: value.len() as u64,
29105 limit: 100,
29106 });
29107 }
29108
29109 Ok(())
29110 }
29111
29112 5 => {
29113 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
29114 slot.as_mut(),
29115 decoder,
29116 (),
29117 )?;
29118
29119 Ok(())
29120 }
29121
29122 6 => {
29123 ::fidl_next::wire::Envelope::decode_as::<
29124 ___D,
29125 ::fidl_next::wire::String<'de>,
29126 >(slot.as_mut(), decoder, 1024)?;
29127
29128 let value = unsafe {
29129 slot.deref_unchecked()
29130 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29131 };
29132
29133 if value.len() > 1024 {
29134 return Err(::fidl_next::DecodeError::VectorTooLong {
29135 size: value.len() as u64,
29136 limit: 1024,
29137 });
29138 }
29139
29140 Ok(())
29141 }
29142
29143 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29144 }
29145 })
29146 }
29147 }
29148
29149 impl<'de> ExposeProtocol<'de> {
29150 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29151 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29152 }
29153
29154 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29155 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29156 }
29157
29158 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29159 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29160 }
29161
29162 pub fn take_source_name(
29163 &mut self,
29164 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29165 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29166 }
29167
29168 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29169 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29170 }
29171
29172 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29173 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29174 }
29175
29176 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29177 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29178 }
29179
29180 pub fn take_target_name(
29181 &mut self,
29182 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29183 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29184 }
29185
29186 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
29187 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
29188 }
29189
29190 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
29191 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
29192 }
29193
29194 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29195 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29196 }
29197
29198 pub fn take_source_dictionary(
29199 &mut self,
29200 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29201 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29202 }
29203 }
29204
29205 impl<'de> ::core::fmt::Debug for ExposeProtocol<'de> {
29206 fn fmt(
29207 &self,
29208 f: &mut ::core::fmt::Formatter<'_>,
29209 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29210 f.debug_struct("ExposeProtocol")
29211 .field("source", &self.source())
29212 .field("source_name", &self.source_name())
29213 .field("target", &self.target())
29214 .field("target_name", &self.target_name())
29215 .field("availability", &self.availability())
29216 .field("source_dictionary", &self.source_dictionary())
29217 .finish()
29218 }
29219 }
29220
29221 impl<'de> ::fidl_next::IntoNatural for ExposeProtocol<'de> {
29222 type Natural = crate::natural::ExposeProtocol;
29223 }
29224
29225 #[repr(C)]
29227 pub struct ExposeDirectory<'de> {
29228 pub(crate) table: ::fidl_next::wire::Table<'de>,
29229 }
29230
29231 impl<'de> Drop for ExposeDirectory<'de> {
29232 fn drop(&mut self) {
29233 let _ = self
29234 .table
29235 .get(1)
29236 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29237
29238 let _ = self.table.get(2).map(|envelope| unsafe {
29239 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29240 });
29241
29242 let _ = self
29243 .table
29244 .get(3)
29245 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29246
29247 let _ = self.table.get(4).map(|envelope| unsafe {
29248 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29249 });
29250
29251 let _ = self.table.get(5).map(|envelope| unsafe {
29252 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
29253 });
29254
29255 let _ = self.table.get(6).map(|envelope| unsafe {
29256 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29257 });
29258
29259 let _ = self
29260 .table
29261 .get(7)
29262 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
29263
29264 let _ = self.table.get(8).map(|envelope| unsafe {
29265 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29266 });
29267 }
29268 }
29269
29270 impl ::fidl_next::Constrained for ExposeDirectory<'_> {
29271 type Constraint = ();
29272
29273 fn validate(
29274 _: ::fidl_next::Slot<'_, Self>,
29275 _: Self::Constraint,
29276 ) -> Result<(), ::fidl_next::ValidationError> {
29277 Ok(())
29278 }
29279 }
29280
29281 unsafe impl ::fidl_next::Wire for ExposeDirectory<'static> {
29282 type Narrowed<'de> = ExposeDirectory<'de>;
29283
29284 #[inline]
29285 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29286 ::fidl_next::munge!(let Self { table } = out);
29287 ::fidl_next::wire::Table::zero_padding(table);
29288 }
29289 }
29290
29291 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeDirectory<'de>
29292 where
29293 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29294 {
29295 fn decode(
29296 slot: ::fidl_next::Slot<'_, Self>,
29297 decoder: &mut ___D,
29298 _: (),
29299 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29300 ::fidl_next::munge!(let Self { table } = slot);
29301
29302 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29303 match ordinal {
29304 0 => unsafe { ::core::hint::unreachable_unchecked() },
29305
29306 1 => {
29307 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29308 slot.as_mut(),
29309 decoder,
29310 (),
29311 )?;
29312
29313 Ok(())
29314 }
29315
29316 2 => {
29317 ::fidl_next::wire::Envelope::decode_as::<
29318 ___D,
29319 ::fidl_next::wire::String<'de>,
29320 >(slot.as_mut(), decoder, 100)?;
29321
29322 let value = unsafe {
29323 slot.deref_unchecked()
29324 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29325 };
29326
29327 if value.len() > 100 {
29328 return Err(::fidl_next::DecodeError::VectorTooLong {
29329 size: value.len() as u64,
29330 limit: 100,
29331 });
29332 }
29333
29334 Ok(())
29335 }
29336
29337 3 => {
29338 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29339 slot.as_mut(),
29340 decoder,
29341 (),
29342 )?;
29343
29344 Ok(())
29345 }
29346
29347 4 => {
29348 ::fidl_next::wire::Envelope::decode_as::<
29349 ___D,
29350 ::fidl_next::wire::String<'de>,
29351 >(slot.as_mut(), decoder, 100)?;
29352
29353 let value = unsafe {
29354 slot.deref_unchecked()
29355 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29356 };
29357
29358 if value.len() > 100 {
29359 return Err(::fidl_next::DecodeError::VectorTooLong {
29360 size: value.len() as u64,
29361 limit: 100,
29362 });
29363 }
29364
29365 Ok(())
29366 }
29367
29368 5 => {
29369 ::fidl_next::wire::Envelope::decode_as::<
29370 ___D,
29371 ::fidl_next_common_fuchsia_io::wire::Operations,
29372 >(slot.as_mut(), decoder, ())?;
29373
29374 Ok(())
29375 }
29376
29377 6 => {
29378 ::fidl_next::wire::Envelope::decode_as::<
29379 ___D,
29380 ::fidl_next::wire::String<'de>,
29381 >(slot.as_mut(), decoder, 1024)?;
29382
29383 let value = unsafe {
29384 slot.deref_unchecked()
29385 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29386 };
29387
29388 if value.len() > 1024 {
29389 return Err(::fidl_next::DecodeError::VectorTooLong {
29390 size: value.len() as u64,
29391 limit: 1024,
29392 });
29393 }
29394
29395 Ok(())
29396 }
29397
29398 7 => {
29399 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
29400 slot.as_mut(),
29401 decoder,
29402 (),
29403 )?;
29404
29405 Ok(())
29406 }
29407
29408 8 => {
29409 ::fidl_next::wire::Envelope::decode_as::<
29410 ___D,
29411 ::fidl_next::wire::String<'de>,
29412 >(slot.as_mut(), decoder, 1024)?;
29413
29414 let value = unsafe {
29415 slot.deref_unchecked()
29416 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29417 };
29418
29419 if value.len() > 1024 {
29420 return Err(::fidl_next::DecodeError::VectorTooLong {
29421 size: value.len() as u64,
29422 limit: 1024,
29423 });
29424 }
29425
29426 Ok(())
29427 }
29428
29429 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29430 }
29431 })
29432 }
29433 }
29434
29435 impl<'de> ExposeDirectory<'de> {
29436 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29437 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29438 }
29439
29440 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29441 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29442 }
29443
29444 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29445 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29446 }
29447
29448 pub fn take_source_name(
29449 &mut self,
29450 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29451 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29452 }
29453
29454 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29455 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29456 }
29457
29458 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29459 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29460 }
29461
29462 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29463 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29464 }
29465
29466 pub fn take_target_name(
29467 &mut self,
29468 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29469 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29470 }
29471
29472 pub fn rights(
29473 &self,
29474 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
29475 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
29476 }
29477
29478 pub fn take_rights(
29479 &mut self,
29480 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
29481 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
29482 }
29483
29484 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29485 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29486 }
29487
29488 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29489 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29490 }
29491
29492 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
29493 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
29494 }
29495
29496 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
29497 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
29498 }
29499
29500 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29501 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
29502 }
29503
29504 pub fn take_source_dictionary(
29505 &mut self,
29506 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29507 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
29508 }
29509 }
29510
29511 impl<'de> ::core::fmt::Debug for ExposeDirectory<'de> {
29512 fn fmt(
29513 &self,
29514 f: &mut ::core::fmt::Formatter<'_>,
29515 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29516 f.debug_struct("ExposeDirectory")
29517 .field("source", &self.source())
29518 .field("source_name", &self.source_name())
29519 .field("target", &self.target())
29520 .field("target_name", &self.target_name())
29521 .field("rights", &self.rights())
29522 .field("subdir", &self.subdir())
29523 .field("availability", &self.availability())
29524 .field("source_dictionary", &self.source_dictionary())
29525 .finish()
29526 }
29527 }
29528
29529 impl<'de> ::fidl_next::IntoNatural for ExposeDirectory<'de> {
29530 type Natural = crate::natural::ExposeDirectory;
29531 }
29532
29533 #[repr(C)]
29535 pub struct ExposeRunner<'de> {
29536 pub(crate) table: ::fidl_next::wire::Table<'de>,
29537 }
29538
29539 impl<'de> Drop for ExposeRunner<'de> {
29540 fn drop(&mut self) {
29541 let _ = self
29542 .table
29543 .get(1)
29544 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29545
29546 let _ = self.table.get(2).map(|envelope| unsafe {
29547 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29548 });
29549
29550 let _ = self
29551 .table
29552 .get(3)
29553 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29554
29555 let _ = self.table.get(4).map(|envelope| unsafe {
29556 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29557 });
29558
29559 let _ = self.table.get(6).map(|envelope| unsafe {
29560 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29561 });
29562 }
29563 }
29564
29565 impl ::fidl_next::Constrained for ExposeRunner<'_> {
29566 type Constraint = ();
29567
29568 fn validate(
29569 _: ::fidl_next::Slot<'_, Self>,
29570 _: Self::Constraint,
29571 ) -> Result<(), ::fidl_next::ValidationError> {
29572 Ok(())
29573 }
29574 }
29575
29576 unsafe impl ::fidl_next::Wire for ExposeRunner<'static> {
29577 type Narrowed<'de> = ExposeRunner<'de>;
29578
29579 #[inline]
29580 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29581 ::fidl_next::munge!(let Self { table } = out);
29582 ::fidl_next::wire::Table::zero_padding(table);
29583 }
29584 }
29585
29586 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeRunner<'de>
29587 where
29588 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29589 {
29590 fn decode(
29591 slot: ::fidl_next::Slot<'_, Self>,
29592 decoder: &mut ___D,
29593 _: (),
29594 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29595 ::fidl_next::munge!(let Self { table } = slot);
29596
29597 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29598 match ordinal {
29599 0 => unsafe { ::core::hint::unreachable_unchecked() },
29600
29601 1 => {
29602 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29603 slot.as_mut(),
29604 decoder,
29605 (),
29606 )?;
29607
29608 Ok(())
29609 }
29610
29611 2 => {
29612 ::fidl_next::wire::Envelope::decode_as::<
29613 ___D,
29614 ::fidl_next::wire::String<'de>,
29615 >(slot.as_mut(), decoder, 100)?;
29616
29617 let value = unsafe {
29618 slot.deref_unchecked()
29619 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29620 };
29621
29622 if value.len() > 100 {
29623 return Err(::fidl_next::DecodeError::VectorTooLong {
29624 size: value.len() as u64,
29625 limit: 100,
29626 });
29627 }
29628
29629 Ok(())
29630 }
29631
29632 3 => {
29633 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29634 slot.as_mut(),
29635 decoder,
29636 (),
29637 )?;
29638
29639 Ok(())
29640 }
29641
29642 4 => {
29643 ::fidl_next::wire::Envelope::decode_as::<
29644 ___D,
29645 ::fidl_next::wire::String<'de>,
29646 >(slot.as_mut(), decoder, 100)?;
29647
29648 let value = unsafe {
29649 slot.deref_unchecked()
29650 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29651 };
29652
29653 if value.len() > 100 {
29654 return Err(::fidl_next::DecodeError::VectorTooLong {
29655 size: value.len() as u64,
29656 limit: 100,
29657 });
29658 }
29659
29660 Ok(())
29661 }
29662
29663 6 => {
29664 ::fidl_next::wire::Envelope::decode_as::<
29665 ___D,
29666 ::fidl_next::wire::String<'de>,
29667 >(slot.as_mut(), decoder, 1024)?;
29668
29669 let value = unsafe {
29670 slot.deref_unchecked()
29671 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29672 };
29673
29674 if value.len() > 1024 {
29675 return Err(::fidl_next::DecodeError::VectorTooLong {
29676 size: value.len() as u64,
29677 limit: 1024,
29678 });
29679 }
29680
29681 Ok(())
29682 }
29683
29684 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29685 }
29686 })
29687 }
29688 }
29689
29690 impl<'de> ExposeRunner<'de> {
29691 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29692 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29693 }
29694
29695 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29696 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29697 }
29698
29699 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29700 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29701 }
29702
29703 pub fn take_source_name(
29704 &mut self,
29705 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29706 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29707 }
29708
29709 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29710 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29711 }
29712
29713 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29714 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29715 }
29716
29717 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29718 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29719 }
29720
29721 pub fn take_target_name(
29722 &mut self,
29723 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29724 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29725 }
29726
29727 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29728 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29729 }
29730
29731 pub fn take_source_dictionary(
29732 &mut self,
29733 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29734 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29735 }
29736 }
29737
29738 impl<'de> ::core::fmt::Debug for ExposeRunner<'de> {
29739 fn fmt(
29740 &self,
29741 f: &mut ::core::fmt::Formatter<'_>,
29742 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29743 f.debug_struct("ExposeRunner")
29744 .field("source", &self.source())
29745 .field("source_name", &self.source_name())
29746 .field("target", &self.target())
29747 .field("target_name", &self.target_name())
29748 .field("source_dictionary", &self.source_dictionary())
29749 .finish()
29750 }
29751 }
29752
29753 impl<'de> ::fidl_next::IntoNatural for ExposeRunner<'de> {
29754 type Natural = crate::natural::ExposeRunner;
29755 }
29756
29757 #[repr(C)]
29759 pub struct ExposeResolver<'de> {
29760 pub(crate) table: ::fidl_next::wire::Table<'de>,
29761 }
29762
29763 impl<'de> Drop for ExposeResolver<'de> {
29764 fn drop(&mut self) {
29765 let _ = self
29766 .table
29767 .get(1)
29768 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29769
29770 let _ = self.table.get(2).map(|envelope| unsafe {
29771 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29772 });
29773
29774 let _ = self
29775 .table
29776 .get(3)
29777 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29778
29779 let _ = self.table.get(4).map(|envelope| unsafe {
29780 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29781 });
29782
29783 let _ = self.table.get(6).map(|envelope| unsafe {
29784 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29785 });
29786 }
29787 }
29788
29789 impl ::fidl_next::Constrained for ExposeResolver<'_> {
29790 type Constraint = ();
29791
29792 fn validate(
29793 _: ::fidl_next::Slot<'_, Self>,
29794 _: Self::Constraint,
29795 ) -> Result<(), ::fidl_next::ValidationError> {
29796 Ok(())
29797 }
29798 }
29799
29800 unsafe impl ::fidl_next::Wire for ExposeResolver<'static> {
29801 type Narrowed<'de> = ExposeResolver<'de>;
29802
29803 #[inline]
29804 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29805 ::fidl_next::munge!(let Self { table } = out);
29806 ::fidl_next::wire::Table::zero_padding(table);
29807 }
29808 }
29809
29810 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeResolver<'de>
29811 where
29812 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29813 {
29814 fn decode(
29815 slot: ::fidl_next::Slot<'_, Self>,
29816 decoder: &mut ___D,
29817 _: (),
29818 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29819 ::fidl_next::munge!(let Self { table } = slot);
29820
29821 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29822 match ordinal {
29823 0 => unsafe { ::core::hint::unreachable_unchecked() },
29824
29825 1 => {
29826 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29827 slot.as_mut(),
29828 decoder,
29829 (),
29830 )?;
29831
29832 Ok(())
29833 }
29834
29835 2 => {
29836 ::fidl_next::wire::Envelope::decode_as::<
29837 ___D,
29838 ::fidl_next::wire::String<'de>,
29839 >(slot.as_mut(), decoder, 100)?;
29840
29841 let value = unsafe {
29842 slot.deref_unchecked()
29843 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29844 };
29845
29846 if value.len() > 100 {
29847 return Err(::fidl_next::DecodeError::VectorTooLong {
29848 size: value.len() as u64,
29849 limit: 100,
29850 });
29851 }
29852
29853 Ok(())
29854 }
29855
29856 3 => {
29857 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29858 slot.as_mut(),
29859 decoder,
29860 (),
29861 )?;
29862
29863 Ok(())
29864 }
29865
29866 4 => {
29867 ::fidl_next::wire::Envelope::decode_as::<
29868 ___D,
29869 ::fidl_next::wire::String<'de>,
29870 >(slot.as_mut(), decoder, 100)?;
29871
29872 let value = unsafe {
29873 slot.deref_unchecked()
29874 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29875 };
29876
29877 if value.len() > 100 {
29878 return Err(::fidl_next::DecodeError::VectorTooLong {
29879 size: value.len() as u64,
29880 limit: 100,
29881 });
29882 }
29883
29884 Ok(())
29885 }
29886
29887 6 => {
29888 ::fidl_next::wire::Envelope::decode_as::<
29889 ___D,
29890 ::fidl_next::wire::String<'de>,
29891 >(slot.as_mut(), decoder, 1024)?;
29892
29893 let value = unsafe {
29894 slot.deref_unchecked()
29895 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29896 };
29897
29898 if value.len() > 1024 {
29899 return Err(::fidl_next::DecodeError::VectorTooLong {
29900 size: value.len() as u64,
29901 limit: 1024,
29902 });
29903 }
29904
29905 Ok(())
29906 }
29907
29908 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29909 }
29910 })
29911 }
29912 }
29913
29914 impl<'de> ExposeResolver<'de> {
29915 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29916 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29917 }
29918
29919 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29920 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29921 }
29922
29923 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29924 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29925 }
29926
29927 pub fn take_source_name(
29928 &mut self,
29929 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29930 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29931 }
29932
29933 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29934 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29935 }
29936
29937 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29938 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29939 }
29940
29941 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29942 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29943 }
29944
29945 pub fn take_target_name(
29946 &mut self,
29947 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29948 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29949 }
29950
29951 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29952 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29953 }
29954
29955 pub fn take_source_dictionary(
29956 &mut self,
29957 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29958 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29959 }
29960 }
29961
29962 impl<'de> ::core::fmt::Debug for ExposeResolver<'de> {
29963 fn fmt(
29964 &self,
29965 f: &mut ::core::fmt::Formatter<'_>,
29966 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29967 f.debug_struct("ExposeResolver")
29968 .field("source", &self.source())
29969 .field("source_name", &self.source_name())
29970 .field("target", &self.target())
29971 .field("target_name", &self.target_name())
29972 .field("source_dictionary", &self.source_dictionary())
29973 .finish()
29974 }
29975 }
29976
29977 impl<'de> ::fidl_next::IntoNatural for ExposeResolver<'de> {
29978 type Natural = crate::natural::ExposeResolver;
29979 }
29980
29981 #[repr(C)]
29983 pub struct ExposeDictionary<'de> {
29984 pub(crate) table: ::fidl_next::wire::Table<'de>,
29985 }
29986
29987 impl<'de> Drop for ExposeDictionary<'de> {
29988 fn drop(&mut self) {
29989 let _ = self
29990 .table
29991 .get(1)
29992 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29993
29994 let _ = self.table.get(2).map(|envelope| unsafe {
29995 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29996 });
29997
29998 let _ = self
29999 .table
30000 .get(3)
30001 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30002
30003 let _ = self.table.get(4).map(|envelope| unsafe {
30004 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30005 });
30006
30007 let _ = self
30008 .table
30009 .get(5)
30010 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30011
30012 let _ = self.table.get(6).map(|envelope| unsafe {
30013 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30014 });
30015 }
30016 }
30017
30018 impl ::fidl_next::Constrained for ExposeDictionary<'_> {
30019 type Constraint = ();
30020
30021 fn validate(
30022 _: ::fidl_next::Slot<'_, Self>,
30023 _: Self::Constraint,
30024 ) -> Result<(), ::fidl_next::ValidationError> {
30025 Ok(())
30026 }
30027 }
30028
30029 unsafe impl ::fidl_next::Wire for ExposeDictionary<'static> {
30030 type Narrowed<'de> = ExposeDictionary<'de>;
30031
30032 #[inline]
30033 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30034 ::fidl_next::munge!(let Self { table } = out);
30035 ::fidl_next::wire::Table::zero_padding(table);
30036 }
30037 }
30038
30039 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeDictionary<'de>
30040 where
30041 ___D: ::fidl_next::Decoder<'de> + ?Sized,
30042 {
30043 fn decode(
30044 slot: ::fidl_next::Slot<'_, Self>,
30045 decoder: &mut ___D,
30046 _: (),
30047 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30048 ::fidl_next::munge!(let Self { table } = slot);
30049
30050 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30051 match ordinal {
30052 0 => unsafe { ::core::hint::unreachable_unchecked() },
30053
30054 1 => {
30055 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30056 slot.as_mut(),
30057 decoder,
30058 (),
30059 )?;
30060
30061 Ok(())
30062 }
30063
30064 2 => {
30065 ::fidl_next::wire::Envelope::decode_as::<
30066 ___D,
30067 ::fidl_next::wire::String<'de>,
30068 >(slot.as_mut(), decoder, 100)?;
30069
30070 let value = unsafe {
30071 slot.deref_unchecked()
30072 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30073 };
30074
30075 if value.len() > 100 {
30076 return Err(::fidl_next::DecodeError::VectorTooLong {
30077 size: value.len() as u64,
30078 limit: 100,
30079 });
30080 }
30081
30082 Ok(())
30083 }
30084
30085 3 => {
30086 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30087 slot.as_mut(),
30088 decoder,
30089 (),
30090 )?;
30091
30092 Ok(())
30093 }
30094
30095 4 => {
30096 ::fidl_next::wire::Envelope::decode_as::<
30097 ___D,
30098 ::fidl_next::wire::String<'de>,
30099 >(slot.as_mut(), decoder, 100)?;
30100
30101 let value = unsafe {
30102 slot.deref_unchecked()
30103 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30104 };
30105
30106 if value.len() > 100 {
30107 return Err(::fidl_next::DecodeError::VectorTooLong {
30108 size: value.len() as u64,
30109 limit: 100,
30110 });
30111 }
30112
30113 Ok(())
30114 }
30115
30116 5 => {
30117 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
30118 slot.as_mut(),
30119 decoder,
30120 (),
30121 )?;
30122
30123 Ok(())
30124 }
30125
30126 6 => {
30127 ::fidl_next::wire::Envelope::decode_as::<
30128 ___D,
30129 ::fidl_next::wire::String<'de>,
30130 >(slot.as_mut(), decoder, 1024)?;
30131
30132 let value = unsafe {
30133 slot.deref_unchecked()
30134 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30135 };
30136
30137 if value.len() > 1024 {
30138 return Err(::fidl_next::DecodeError::VectorTooLong {
30139 size: value.len() as u64,
30140 limit: 1024,
30141 });
30142 }
30143
30144 Ok(())
30145 }
30146
30147 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
30148 }
30149 })
30150 }
30151 }
30152
30153 impl<'de> ExposeDictionary<'de> {
30154 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30155 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30156 }
30157
30158 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30159 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
30160 }
30161
30162 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30163 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30164 }
30165
30166 pub fn take_source_name(
30167 &mut self,
30168 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30169 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
30170 }
30171
30172 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30173 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30174 }
30175
30176 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30177 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
30178 }
30179
30180 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30181 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30182 }
30183
30184 pub fn take_target_name(
30185 &mut self,
30186 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30187 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
30188 }
30189
30190 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30191 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30192 }
30193
30194 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
30195 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
30196 }
30197
30198 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30199 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30200 }
30201
30202 pub fn take_source_dictionary(
30203 &mut self,
30204 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30205 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
30206 }
30207 }
30208
30209 impl<'de> ::core::fmt::Debug for ExposeDictionary<'de> {
30210 fn fmt(
30211 &self,
30212 f: &mut ::core::fmt::Formatter<'_>,
30213 ) -> ::core::result::Result<(), ::core::fmt::Error> {
30214 f.debug_struct("ExposeDictionary")
30215 .field("source", &self.source())
30216 .field("source_name", &self.source_name())
30217 .field("target", &self.target())
30218 .field("target_name", &self.target_name())
30219 .field("availability", &self.availability())
30220 .field("source_dictionary", &self.source_dictionary())
30221 .finish()
30222 }
30223 }
30224
30225 impl<'de> ::fidl_next::IntoNatural for ExposeDictionary<'de> {
30226 type Natural = crate::natural::ExposeDictionary;
30227 }
30228
30229 #[repr(C)]
30231 pub struct ExposeConfiguration<'de> {
30232 pub(crate) table: ::fidl_next::wire::Table<'de>,
30233 }
30234
30235 impl<'de> Drop for ExposeConfiguration<'de> {
30236 fn drop(&mut self) {
30237 let _ = self
30238 .table
30239 .get(1)
30240 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30241
30242 let _ = self.table.get(2).map(|envelope| unsafe {
30243 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30244 });
30245
30246 let _ = self
30247 .table
30248 .get(3)
30249 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30250
30251 let _ = self.table.get(4).map(|envelope| unsafe {
30252 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30253 });
30254
30255 let _ = self
30256 .table
30257 .get(5)
30258 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30259
30260 let _ = self.table.get(6).map(|envelope| unsafe {
30261 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30262 });
30263 }
30264 }
30265
30266 impl ::fidl_next::Constrained for ExposeConfiguration<'_> {
30267 type Constraint = ();
30268
30269 fn validate(
30270 _: ::fidl_next::Slot<'_, Self>,
30271 _: Self::Constraint,
30272 ) -> Result<(), ::fidl_next::ValidationError> {
30273 Ok(())
30274 }
30275 }
30276
30277 unsafe impl ::fidl_next::Wire for ExposeConfiguration<'static> {
30278 type Narrowed<'de> = ExposeConfiguration<'de>;
30279
30280 #[inline]
30281 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30282 ::fidl_next::munge!(let Self { table } = out);
30283 ::fidl_next::wire::Table::zero_padding(table);
30284 }
30285 }
30286
30287 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeConfiguration<'de>
30288 where
30289 ___D: ::fidl_next::Decoder<'de> + ?Sized,
30290 {
30291 fn decode(
30292 slot: ::fidl_next::Slot<'_, Self>,
30293 decoder: &mut ___D,
30294 _: (),
30295 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30296 ::fidl_next::munge!(let Self { table } = slot);
30297
30298 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30299 match ordinal {
30300 0 => unsafe { ::core::hint::unreachable_unchecked() },
30301
30302 1 => {
30303 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30304 slot.as_mut(),
30305 decoder,
30306 (),
30307 )?;
30308
30309 Ok(())
30310 }
30311
30312 2 => {
30313 ::fidl_next::wire::Envelope::decode_as::<
30314 ___D,
30315 ::fidl_next::wire::String<'de>,
30316 >(slot.as_mut(), decoder, 100)?;
30317
30318 let value = unsafe {
30319 slot.deref_unchecked()
30320 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30321 };
30322
30323 if value.len() > 100 {
30324 return Err(::fidl_next::DecodeError::VectorTooLong {
30325 size: value.len() as u64,
30326 limit: 100,
30327 });
30328 }
30329
30330 Ok(())
30331 }
30332
30333 3 => {
30334 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30335 slot.as_mut(),
30336 decoder,
30337 (),
30338 )?;
30339
30340 Ok(())
30341 }
30342
30343 4 => {
30344 ::fidl_next::wire::Envelope::decode_as::<
30345 ___D,
30346 ::fidl_next::wire::String<'de>,
30347 >(slot.as_mut(), decoder, 100)?;
30348
30349 let value = unsafe {
30350 slot.deref_unchecked()
30351 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30352 };
30353
30354 if value.len() > 100 {
30355 return Err(::fidl_next::DecodeError::VectorTooLong {
30356 size: value.len() as u64,
30357 limit: 100,
30358 });
30359 }
30360
30361 Ok(())
30362 }
30363
30364 5 => {
30365 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
30366 slot.as_mut(),
30367 decoder,
30368 (),
30369 )?;
30370
30371 Ok(())
30372 }
30373
30374 6 => {
30375 ::fidl_next::wire::Envelope::decode_as::<
30376 ___D,
30377 ::fidl_next::wire::String<'de>,
30378 >(slot.as_mut(), decoder, 1024)?;
30379
30380 let value = unsafe {
30381 slot.deref_unchecked()
30382 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30383 };
30384
30385 if value.len() > 1024 {
30386 return Err(::fidl_next::DecodeError::VectorTooLong {
30387 size: value.len() as u64,
30388 limit: 1024,
30389 });
30390 }
30391
30392 Ok(())
30393 }
30394
30395 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
30396 }
30397 })
30398 }
30399 }
30400
30401 impl<'de> ExposeConfiguration<'de> {
30402 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30403 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30404 }
30405
30406 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30407 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
30408 }
30409
30410 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30411 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30412 }
30413
30414 pub fn take_source_name(
30415 &mut self,
30416 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30417 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
30418 }
30419
30420 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30421 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30422 }
30423
30424 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30425 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
30426 }
30427
30428 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30429 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30430 }
30431
30432 pub fn take_target_name(
30433 &mut self,
30434 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30435 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
30436 }
30437
30438 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30439 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30440 }
30441
30442 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
30443 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
30444 }
30445
30446 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30447 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30448 }
30449
30450 pub fn take_source_dictionary(
30451 &mut self,
30452 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30453 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
30454 }
30455 }
30456
30457 impl<'de> ::core::fmt::Debug for ExposeConfiguration<'de> {
30458 fn fmt(
30459 &self,
30460 f: &mut ::core::fmt::Formatter<'_>,
30461 ) -> ::core::result::Result<(), ::core::fmt::Error> {
30462 f.debug_struct("ExposeConfiguration")
30463 .field("source", &self.source())
30464 .field("source_name", &self.source_name())
30465 .field("target", &self.target())
30466 .field("target_name", &self.target_name())
30467 .field("availability", &self.availability())
30468 .field("source_dictionary", &self.source_dictionary())
30469 .finish()
30470 }
30471 }
30472
30473 impl<'de> ::fidl_next::IntoNatural for ExposeConfiguration<'de> {
30474 type Natural = crate::natural::ExposeConfiguration;
30475 }
30476
30477 #[repr(transparent)]
30479 pub struct Expose<'de> {
30480 pub(crate) raw: ::fidl_next::wire::Union,
30481 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
30482 }
30483
30484 impl<'de> Drop for Expose<'de> {
30485 fn drop(&mut self) {
30486 match self.raw.ordinal() {
30487 1 => {
30488 let _ = unsafe {
30489 self.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
30490 };
30491 }
30492
30493 2 => {
30494 let _ = unsafe {
30495 self.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
30496 };
30497 }
30498
30499 3 => {
30500 let _ = unsafe {
30501 self.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
30502 };
30503 }
30504
30505 4 => {
30506 let _ = unsafe {
30507 self.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
30508 };
30509 }
30510
30511 5 => {
30512 let _ = unsafe {
30513 self.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
30514 };
30515 }
30516
30517 7 => {
30518 let _ = unsafe {
30519 self.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
30520 };
30521 }
30522
30523 8 => {
30524 let _ = unsafe {
30525 self.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
30526 };
30527 }
30528
30529 _ => (),
30530 }
30531 }
30532 }
30533
30534 impl ::fidl_next::Constrained for Expose<'_> {
30535 type Constraint = ();
30536
30537 fn validate(
30538 _: ::fidl_next::Slot<'_, Self>,
30539 _: Self::Constraint,
30540 ) -> Result<(), ::fidl_next::ValidationError> {
30541 Ok(())
30542 }
30543 }
30544
30545 unsafe impl ::fidl_next::Wire for Expose<'static> {
30546 type Narrowed<'de> = Expose<'de>;
30547
30548 #[inline]
30549 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30550 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
30551 ::fidl_next::wire::Union::zero_padding(raw);
30552 }
30553 }
30554
30555 pub mod expose {
30556 pub enum Ref<'de> {
30557 Service(&'de crate::wire::ExposeService<'de>),
30558
30559 Protocol(&'de crate::wire::ExposeProtocol<'de>),
30560
30561 Directory(&'de crate::wire::ExposeDirectory<'de>),
30562
30563 Runner(&'de crate::wire::ExposeRunner<'de>),
30564
30565 Resolver(&'de crate::wire::ExposeResolver<'de>),
30566
30567 Dictionary(&'de crate::wire::ExposeDictionary<'de>),
30568
30569 Config(&'de crate::wire::ExposeConfiguration<'de>),
30570
30571 UnknownOrdinal_(u64),
30572 }
30573
30574 pub enum Value<'de> {
30575 Service(crate::wire::ExposeService<'de>),
30576
30577 Protocol(crate::wire::ExposeProtocol<'de>),
30578
30579 Directory(crate::wire::ExposeDirectory<'de>),
30580
30581 Runner(crate::wire::ExposeRunner<'de>),
30582
30583 Resolver(crate::wire::ExposeResolver<'de>),
30584
30585 Dictionary(crate::wire::ExposeDictionary<'de>),
30586
30587 Config(crate::wire::ExposeConfiguration<'de>),
30588
30589 UnknownOrdinal_(u64),
30590 }
30591 }
30592
30593 impl<'de> Expose<'de> {
30594 pub fn as_ref(&self) -> crate::wire::expose::Ref<'_> {
30595 match self.raw.ordinal() {
30596 1 => crate::wire::expose::Ref::Service(unsafe {
30597 self.raw.get().deref_unchecked::<crate::wire::ExposeService<'_>>()
30598 }),
30599
30600 2 => crate::wire::expose::Ref::Protocol(unsafe {
30601 self.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'_>>()
30602 }),
30603
30604 3 => crate::wire::expose::Ref::Directory(unsafe {
30605 self.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'_>>()
30606 }),
30607
30608 4 => crate::wire::expose::Ref::Runner(unsafe {
30609 self.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'_>>()
30610 }),
30611
30612 5 => crate::wire::expose::Ref::Resolver(unsafe {
30613 self.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'_>>()
30614 }),
30615
30616 7 => crate::wire::expose::Ref::Dictionary(unsafe {
30617 self.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'_>>()
30618 }),
30619
30620 8 => crate::wire::expose::Ref::Config(unsafe {
30621 self.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'_>>()
30622 }),
30623
30624 unknown => crate::wire::expose::Ref::UnknownOrdinal_(unknown),
30625 }
30626 }
30627
30628 pub fn into_inner(self) -> crate::wire::expose::Value<'de> {
30629 let this = ::core::mem::ManuallyDrop::new(self);
30630
30631 match this.raw.ordinal() {
30632 1 => crate::wire::expose::Value::Service(unsafe {
30633 this.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
30634 }),
30635
30636 2 => crate::wire::expose::Value::Protocol(unsafe {
30637 this.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
30638 }),
30639
30640 3 => crate::wire::expose::Value::Directory(unsafe {
30641 this.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
30642 }),
30643
30644 4 => crate::wire::expose::Value::Runner(unsafe {
30645 this.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
30646 }),
30647
30648 5 => crate::wire::expose::Value::Resolver(unsafe {
30649 this.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
30650 }),
30651
30652 7 => crate::wire::expose::Value::Dictionary(unsafe {
30653 this.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
30654 }),
30655
30656 8 => crate::wire::expose::Value::Config(unsafe {
30657 this.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
30658 }),
30659
30660 unknown => crate::wire::expose::Value::UnknownOrdinal_(unknown),
30661 }
30662 }
30663 }
30664
30665 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Expose<'de>
30666 where
30667 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
30668 ___D: ::fidl_next::Decoder<'de>,
30669 {
30670 fn decode(
30671 mut slot: ::fidl_next::Slot<'_, Self>,
30672 decoder: &mut ___D,
30673 _: (),
30674 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30675 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
30676 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
30677 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeService<'de>>(
30678 raw,
30679 decoder,
30680 (),
30681 )?,
30682
30683 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeProtocol<'de>>(
30684 raw,
30685 decoder,
30686 (),
30687 )?,
30688
30689 3 => {
30690 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDirectory<'de>>(
30691 raw,
30692 decoder,
30693 (),
30694 )?
30695 }
30696
30697 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeRunner<'de>>(
30698 raw,
30699 decoder,
30700 (),
30701 )?,
30702
30703 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeResolver<'de>>(
30704 raw,
30705 decoder,
30706 (),
30707 )?,
30708
30709 7 => {
30710 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDictionary<'de>>(
30711 raw,
30712 decoder,
30713 (),
30714 )?
30715 }
30716
30717 8 => ::fidl_next::wire::Union::decode_as::<
30718 ___D,
30719 crate::wire::ExposeConfiguration<'de>,
30720 >(raw, decoder, ())?,
30721
30722 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
30723 }
30724
30725 Ok(())
30726 }
30727 }
30728
30729 impl<'de> ::core::fmt::Debug for Expose<'de> {
30730 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30731 match self.raw.ordinal() {
30732 1 => unsafe {
30733 self.raw.get().deref_unchecked::<crate::wire::ExposeService<'_>>().fmt(f)
30734 },
30735 2 => unsafe {
30736 self.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'_>>().fmt(f)
30737 },
30738 3 => unsafe {
30739 self.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'_>>().fmt(f)
30740 },
30741 4 => unsafe {
30742 self.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'_>>().fmt(f)
30743 },
30744 5 => unsafe {
30745 self.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'_>>().fmt(f)
30746 },
30747 7 => unsafe {
30748 self.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'_>>().fmt(f)
30749 },
30750 8 => unsafe {
30751 self.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'_>>().fmt(f)
30752 },
30753 _ => unsafe { ::core::hint::unreachable_unchecked() },
30754 }
30755 }
30756 }
30757
30758 impl<'de> ::fidl_next::IntoNatural for Expose<'de> {
30759 type Natural = crate::natural::Expose;
30760 }
30761
30762 #[repr(C)]
30764 pub struct OfferService<'de> {
30765 pub(crate) table: ::fidl_next::wire::Table<'de>,
30766 }
30767
30768 impl<'de> Drop for OfferService<'de> {
30769 fn drop(&mut self) {
30770 let _ = self
30771 .table
30772 .get(1)
30773 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30774
30775 let _ = self.table.get(2).map(|envelope| unsafe {
30776 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30777 });
30778
30779 let _ = self
30780 .table
30781 .get(3)
30782 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30783
30784 let _ = self.table.get(4).map(|envelope| unsafe {
30785 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30786 });
30787
30788 let _ = self.table.get(5)
30789 .map(|envelope| unsafe {
30790 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
30791 });
30792
30793 let _ = self.table.get(6)
30794 .map(|envelope| unsafe {
30795 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>()
30796 });
30797
30798 let _ = self
30799 .table
30800 .get(7)
30801 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30802
30803 let _ = self.table.get(8).map(|envelope| unsafe {
30804 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30805 });
30806
30807 let _ = self.table.get(9).map(|envelope| unsafe {
30808 envelope.read_unchecked::<crate::wire::DependencyType>()
30809 });
30810 }
30811 }
30812
30813 impl ::fidl_next::Constrained for OfferService<'_> {
30814 type Constraint = ();
30815
30816 fn validate(
30817 _: ::fidl_next::Slot<'_, Self>,
30818 _: Self::Constraint,
30819 ) -> Result<(), ::fidl_next::ValidationError> {
30820 Ok(())
30821 }
30822 }
30823
30824 unsafe impl ::fidl_next::Wire for OfferService<'static> {
30825 type Narrowed<'de> = OfferService<'de>;
30826
30827 #[inline]
30828 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30829 ::fidl_next::munge!(let Self { table } = out);
30830 ::fidl_next::wire::Table::zero_padding(table);
30831 }
30832 }
30833
30834 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferService<'de>
30835 where
30836 ___D: ::fidl_next::Decoder<'de> + ?Sized,
30837 {
30838 fn decode(
30839 slot: ::fidl_next::Slot<'_, Self>,
30840 decoder: &mut ___D,
30841 _: (),
30842 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30843 ::fidl_next::munge!(let Self { table } = slot);
30844
30845 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30846 match ordinal {
30847 0 => unsafe { ::core::hint::unreachable_unchecked() },
30848
30849 1 => {
30850 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30851 slot.as_mut(),
30852 decoder,
30853 (),
30854 )?;
30855
30856 Ok(())
30857 }
30858
30859 2 => {
30860 ::fidl_next::wire::Envelope::decode_as::<
30861 ___D,
30862 ::fidl_next::wire::String<'de>,
30863 >(slot.as_mut(), decoder, 100)?;
30864
30865 let value = unsafe {
30866 slot.deref_unchecked()
30867 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30868 };
30869
30870 if value.len() > 100 {
30871 return Err(::fidl_next::DecodeError::VectorTooLong {
30872 size: value.len() as u64,
30873 limit: 100,
30874 });
30875 }
30876
30877 Ok(())
30878 }
30879
30880 3 => {
30881 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30882 slot.as_mut(),
30883 decoder,
30884 (),
30885 )?;
30886
30887 Ok(())
30888 }
30889
30890 4 => {
30891 ::fidl_next::wire::Envelope::decode_as::<
30892 ___D,
30893 ::fidl_next::wire::String<'de>,
30894 >(slot.as_mut(), decoder, 100)?;
30895
30896 let value = unsafe {
30897 slot.deref_unchecked()
30898 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30899 };
30900
30901 if value.len() > 100 {
30902 return Err(::fidl_next::DecodeError::VectorTooLong {
30903 size: value.len() as u64,
30904 limit: 100,
30905 });
30906 }
30907
30908 Ok(())
30909 }
30910
30911 5 => {
30912 ::fidl_next::wire::Envelope::decode_as::<
30913 ___D,
30914 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
30915 >(slot.as_mut(), decoder, (4294967295, 100))?;
30916
30917 Ok(())
30918 }
30919
30920 6 => {
30921 ::fidl_next::wire::Envelope::decode_as::<
30922 ___D,
30923 ::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>,
30924 >(slot.as_mut(), decoder, (4294967295, ()))?;
30925
30926 Ok(())
30927 }
30928
30929 7 => {
30930 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
30931 slot.as_mut(),
30932 decoder,
30933 (),
30934 )?;
30935
30936 Ok(())
30937 }
30938
30939 8 => {
30940 ::fidl_next::wire::Envelope::decode_as::<
30941 ___D,
30942 ::fidl_next::wire::String<'de>,
30943 >(slot.as_mut(), decoder, 1024)?;
30944
30945 let value = unsafe {
30946 slot.deref_unchecked()
30947 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30948 };
30949
30950 if value.len() > 1024 {
30951 return Err(::fidl_next::DecodeError::VectorTooLong {
30952 size: value.len() as u64,
30953 limit: 1024,
30954 });
30955 }
30956
30957 Ok(())
30958 }
30959
30960 9 => {
30961 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
30962 slot.as_mut(),
30963 decoder,
30964 (),
30965 )?;
30966
30967 Ok(())
30968 }
30969
30970 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
30971 }
30972 })
30973 }
30974 }
30975
30976 impl<'de> OfferService<'de> {
30977 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30978 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30979 }
30980
30981 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30982 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
30983 }
30984
30985 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30986 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30987 }
30988
30989 pub fn take_source_name(
30990 &mut self,
30991 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30992 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
30993 }
30994
30995 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30996 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30997 }
30998
30999 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31000 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31001 }
31002
31003 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31004 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31005 }
31006
31007 pub fn take_target_name(
31008 &mut self,
31009 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31010 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31011 }
31012
31013 pub fn source_instance_filter(
31014 &self,
31015 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
31016 {
31017 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31018 }
31019
31020 pub fn take_source_instance_filter(
31021 &mut self,
31022 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
31023 {
31024 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31025 }
31026
31027 pub fn renamed_instances(
31028 &self,
31029 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>
31030 {
31031 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31032 }
31033
31034 pub fn take_renamed_instances(
31035 &mut self,
31036 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>
31037 {
31038 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
31039 }
31040
31041 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31042 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31043 }
31044
31045 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31046 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
31047 }
31048
31049 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31050 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
31051 }
31052
31053 pub fn take_source_dictionary(
31054 &mut self,
31055 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31056 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
31057 }
31058
31059 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
31060 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
31061 }
31062
31063 pub fn take_dependency_type(
31064 &mut self,
31065 ) -> ::core::option::Option<crate::wire::DependencyType> {
31066 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
31067 }
31068 }
31069
31070 impl<'de> ::core::fmt::Debug for OfferService<'de> {
31071 fn fmt(
31072 &self,
31073 f: &mut ::core::fmt::Formatter<'_>,
31074 ) -> ::core::result::Result<(), ::core::fmt::Error> {
31075 f.debug_struct("OfferService")
31076 .field("source", &self.source())
31077 .field("source_name", &self.source_name())
31078 .field("target", &self.target())
31079 .field("target_name", &self.target_name())
31080 .field("source_instance_filter", &self.source_instance_filter())
31081 .field("renamed_instances", &self.renamed_instances())
31082 .field("availability", &self.availability())
31083 .field("source_dictionary", &self.source_dictionary())
31084 .field("dependency_type", &self.dependency_type())
31085 .finish()
31086 }
31087 }
31088
31089 impl<'de> ::fidl_next::IntoNatural for OfferService<'de> {
31090 type Natural = crate::natural::OfferService;
31091 }
31092
31093 #[repr(C)]
31095 pub struct OfferProtocol<'de> {
31096 pub(crate) table: ::fidl_next::wire::Table<'de>,
31097 }
31098
31099 impl<'de> Drop for OfferProtocol<'de> {
31100 fn drop(&mut self) {
31101 let _ = self
31102 .table
31103 .get(1)
31104 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31105
31106 let _ = self.table.get(2).map(|envelope| unsafe {
31107 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31108 });
31109
31110 let _ = self
31111 .table
31112 .get(3)
31113 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31114
31115 let _ = self.table.get(4).map(|envelope| unsafe {
31116 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31117 });
31118
31119 let _ = self.table.get(5).map(|envelope| unsafe {
31120 envelope.read_unchecked::<crate::wire::DependencyType>()
31121 });
31122
31123 let _ = self
31124 .table
31125 .get(6)
31126 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31127
31128 let _ = self.table.get(7).map(|envelope| unsafe {
31129 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31130 });
31131 }
31132 }
31133
31134 impl ::fidl_next::Constrained for OfferProtocol<'_> {
31135 type Constraint = ();
31136
31137 fn validate(
31138 _: ::fidl_next::Slot<'_, Self>,
31139 _: Self::Constraint,
31140 ) -> Result<(), ::fidl_next::ValidationError> {
31141 Ok(())
31142 }
31143 }
31144
31145 unsafe impl ::fidl_next::Wire for OfferProtocol<'static> {
31146 type Narrowed<'de> = OfferProtocol<'de>;
31147
31148 #[inline]
31149 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31150 ::fidl_next::munge!(let Self { table } = out);
31151 ::fidl_next::wire::Table::zero_padding(table);
31152 }
31153 }
31154
31155 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferProtocol<'de>
31156 where
31157 ___D: ::fidl_next::Decoder<'de> + ?Sized,
31158 {
31159 fn decode(
31160 slot: ::fidl_next::Slot<'_, Self>,
31161 decoder: &mut ___D,
31162 _: (),
31163 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31164 ::fidl_next::munge!(let Self { table } = slot);
31165
31166 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31167 match ordinal {
31168 0 => unsafe { ::core::hint::unreachable_unchecked() },
31169
31170 1 => {
31171 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31172 slot.as_mut(),
31173 decoder,
31174 (),
31175 )?;
31176
31177 Ok(())
31178 }
31179
31180 2 => {
31181 ::fidl_next::wire::Envelope::decode_as::<
31182 ___D,
31183 ::fidl_next::wire::String<'de>,
31184 >(slot.as_mut(), decoder, 100)?;
31185
31186 let value = unsafe {
31187 slot.deref_unchecked()
31188 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31189 };
31190
31191 if value.len() > 100 {
31192 return Err(::fidl_next::DecodeError::VectorTooLong {
31193 size: value.len() as u64,
31194 limit: 100,
31195 });
31196 }
31197
31198 Ok(())
31199 }
31200
31201 3 => {
31202 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31203 slot.as_mut(),
31204 decoder,
31205 (),
31206 )?;
31207
31208 Ok(())
31209 }
31210
31211 4 => {
31212 ::fidl_next::wire::Envelope::decode_as::<
31213 ___D,
31214 ::fidl_next::wire::String<'de>,
31215 >(slot.as_mut(), decoder, 100)?;
31216
31217 let value = unsafe {
31218 slot.deref_unchecked()
31219 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31220 };
31221
31222 if value.len() > 100 {
31223 return Err(::fidl_next::DecodeError::VectorTooLong {
31224 size: value.len() as u64,
31225 limit: 100,
31226 });
31227 }
31228
31229 Ok(())
31230 }
31231
31232 5 => {
31233 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
31234 slot.as_mut(),
31235 decoder,
31236 (),
31237 )?;
31238
31239 Ok(())
31240 }
31241
31242 6 => {
31243 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
31244 slot.as_mut(),
31245 decoder,
31246 (),
31247 )?;
31248
31249 Ok(())
31250 }
31251
31252 7 => {
31253 ::fidl_next::wire::Envelope::decode_as::<
31254 ___D,
31255 ::fidl_next::wire::String<'de>,
31256 >(slot.as_mut(), decoder, 1024)?;
31257
31258 let value = unsafe {
31259 slot.deref_unchecked()
31260 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31261 };
31262
31263 if value.len() > 1024 {
31264 return Err(::fidl_next::DecodeError::VectorTooLong {
31265 size: value.len() as u64,
31266 limit: 1024,
31267 });
31268 }
31269
31270 Ok(())
31271 }
31272
31273 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
31274 }
31275 })
31276 }
31277 }
31278
31279 impl<'de> OfferProtocol<'de> {
31280 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31281 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31282 }
31283
31284 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31285 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
31286 }
31287
31288 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31289 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31290 }
31291
31292 pub fn take_source_name(
31293 &mut self,
31294 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31295 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
31296 }
31297
31298 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31299 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31300 }
31301
31302 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31303 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31304 }
31305
31306 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31307 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31308 }
31309
31310 pub fn take_target_name(
31311 &mut self,
31312 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31313 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31314 }
31315
31316 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
31317 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31318 }
31319
31320 pub fn take_dependency_type(
31321 &mut self,
31322 ) -> ::core::option::Option<crate::wire::DependencyType> {
31323 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31324 }
31325
31326 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31327 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31328 }
31329
31330 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31331 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
31332 }
31333
31334 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31335 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31336 }
31337
31338 pub fn take_source_dictionary(
31339 &mut self,
31340 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31341 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
31342 }
31343 }
31344
31345 impl<'de> ::core::fmt::Debug for OfferProtocol<'de> {
31346 fn fmt(
31347 &self,
31348 f: &mut ::core::fmt::Formatter<'_>,
31349 ) -> ::core::result::Result<(), ::core::fmt::Error> {
31350 f.debug_struct("OfferProtocol")
31351 .field("source", &self.source())
31352 .field("source_name", &self.source_name())
31353 .field("target", &self.target())
31354 .field("target_name", &self.target_name())
31355 .field("dependency_type", &self.dependency_type())
31356 .field("availability", &self.availability())
31357 .field("source_dictionary", &self.source_dictionary())
31358 .finish()
31359 }
31360 }
31361
31362 impl<'de> ::fidl_next::IntoNatural for OfferProtocol<'de> {
31363 type Natural = crate::natural::OfferProtocol;
31364 }
31365
31366 #[repr(C)]
31368 pub struct OfferDirectory<'de> {
31369 pub(crate) table: ::fidl_next::wire::Table<'de>,
31370 }
31371
31372 impl<'de> Drop for OfferDirectory<'de> {
31373 fn drop(&mut self) {
31374 let _ = self
31375 .table
31376 .get(1)
31377 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31378
31379 let _ = self.table.get(2).map(|envelope| unsafe {
31380 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31381 });
31382
31383 let _ = self
31384 .table
31385 .get(3)
31386 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31387
31388 let _ = self.table.get(4).map(|envelope| unsafe {
31389 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31390 });
31391
31392 let _ = self.table.get(5).map(|envelope| unsafe {
31393 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
31394 });
31395
31396 let _ = self.table.get(6).map(|envelope| unsafe {
31397 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31398 });
31399
31400 let _ = self.table.get(7).map(|envelope| unsafe {
31401 envelope.read_unchecked::<crate::wire::DependencyType>()
31402 });
31403
31404 let _ = self
31405 .table
31406 .get(8)
31407 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31408
31409 let _ = self.table.get(9).map(|envelope| unsafe {
31410 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31411 });
31412 }
31413 }
31414
31415 impl ::fidl_next::Constrained for OfferDirectory<'_> {
31416 type Constraint = ();
31417
31418 fn validate(
31419 _: ::fidl_next::Slot<'_, Self>,
31420 _: Self::Constraint,
31421 ) -> Result<(), ::fidl_next::ValidationError> {
31422 Ok(())
31423 }
31424 }
31425
31426 unsafe impl ::fidl_next::Wire for OfferDirectory<'static> {
31427 type Narrowed<'de> = OfferDirectory<'de>;
31428
31429 #[inline]
31430 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31431 ::fidl_next::munge!(let Self { table } = out);
31432 ::fidl_next::wire::Table::zero_padding(table);
31433 }
31434 }
31435
31436 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferDirectory<'de>
31437 where
31438 ___D: ::fidl_next::Decoder<'de> + ?Sized,
31439 {
31440 fn decode(
31441 slot: ::fidl_next::Slot<'_, Self>,
31442 decoder: &mut ___D,
31443 _: (),
31444 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31445 ::fidl_next::munge!(let Self { table } = slot);
31446
31447 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31448 match ordinal {
31449 0 => unsafe { ::core::hint::unreachable_unchecked() },
31450
31451 1 => {
31452 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31453 slot.as_mut(),
31454 decoder,
31455 (),
31456 )?;
31457
31458 Ok(())
31459 }
31460
31461 2 => {
31462 ::fidl_next::wire::Envelope::decode_as::<
31463 ___D,
31464 ::fidl_next::wire::String<'de>,
31465 >(slot.as_mut(), decoder, 100)?;
31466
31467 let value = unsafe {
31468 slot.deref_unchecked()
31469 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31470 };
31471
31472 if value.len() > 100 {
31473 return Err(::fidl_next::DecodeError::VectorTooLong {
31474 size: value.len() as u64,
31475 limit: 100,
31476 });
31477 }
31478
31479 Ok(())
31480 }
31481
31482 3 => {
31483 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31484 slot.as_mut(),
31485 decoder,
31486 (),
31487 )?;
31488
31489 Ok(())
31490 }
31491
31492 4 => {
31493 ::fidl_next::wire::Envelope::decode_as::<
31494 ___D,
31495 ::fidl_next::wire::String<'de>,
31496 >(slot.as_mut(), decoder, 100)?;
31497
31498 let value = unsafe {
31499 slot.deref_unchecked()
31500 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31501 };
31502
31503 if value.len() > 100 {
31504 return Err(::fidl_next::DecodeError::VectorTooLong {
31505 size: value.len() as u64,
31506 limit: 100,
31507 });
31508 }
31509
31510 Ok(())
31511 }
31512
31513 5 => {
31514 ::fidl_next::wire::Envelope::decode_as::<
31515 ___D,
31516 ::fidl_next_common_fuchsia_io::wire::Operations,
31517 >(slot.as_mut(), decoder, ())?;
31518
31519 Ok(())
31520 }
31521
31522 6 => {
31523 ::fidl_next::wire::Envelope::decode_as::<
31524 ___D,
31525 ::fidl_next::wire::String<'de>,
31526 >(slot.as_mut(), decoder, 1024)?;
31527
31528 let value = unsafe {
31529 slot.deref_unchecked()
31530 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31531 };
31532
31533 if value.len() > 1024 {
31534 return Err(::fidl_next::DecodeError::VectorTooLong {
31535 size: value.len() as u64,
31536 limit: 1024,
31537 });
31538 }
31539
31540 Ok(())
31541 }
31542
31543 7 => {
31544 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
31545 slot.as_mut(),
31546 decoder,
31547 (),
31548 )?;
31549
31550 Ok(())
31551 }
31552
31553 8 => {
31554 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
31555 slot.as_mut(),
31556 decoder,
31557 (),
31558 )?;
31559
31560 Ok(())
31561 }
31562
31563 9 => {
31564 ::fidl_next::wire::Envelope::decode_as::<
31565 ___D,
31566 ::fidl_next::wire::String<'de>,
31567 >(slot.as_mut(), decoder, 1024)?;
31568
31569 let value = unsafe {
31570 slot.deref_unchecked()
31571 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31572 };
31573
31574 if value.len() > 1024 {
31575 return Err(::fidl_next::DecodeError::VectorTooLong {
31576 size: value.len() as u64,
31577 limit: 1024,
31578 });
31579 }
31580
31581 Ok(())
31582 }
31583
31584 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
31585 }
31586 })
31587 }
31588 }
31589
31590 impl<'de> OfferDirectory<'de> {
31591 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31592 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31593 }
31594
31595 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31596 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
31597 }
31598
31599 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31600 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31601 }
31602
31603 pub fn take_source_name(
31604 &mut self,
31605 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31606 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
31607 }
31608
31609 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31610 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31611 }
31612
31613 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31614 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31615 }
31616
31617 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31618 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31619 }
31620
31621 pub fn take_target_name(
31622 &mut self,
31623 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31624 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31625 }
31626
31627 pub fn rights(
31628 &self,
31629 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
31630 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31631 }
31632
31633 pub fn take_rights(
31634 &mut self,
31635 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
31636 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31637 }
31638
31639 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31640 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31641 }
31642
31643 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31644 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
31645 }
31646
31647 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
31648 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31649 }
31650
31651 pub fn take_dependency_type(
31652 &mut self,
31653 ) -> ::core::option::Option<crate::wire::DependencyType> {
31654 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
31655 }
31656
31657 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31658 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
31659 }
31660
31661 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31662 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
31663 }
31664
31665 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31666 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
31667 }
31668
31669 pub fn take_source_dictionary(
31670 &mut self,
31671 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31672 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
31673 }
31674 }
31675
31676 impl<'de> ::core::fmt::Debug for OfferDirectory<'de> {
31677 fn fmt(
31678 &self,
31679 f: &mut ::core::fmt::Formatter<'_>,
31680 ) -> ::core::result::Result<(), ::core::fmt::Error> {
31681 f.debug_struct("OfferDirectory")
31682 .field("source", &self.source())
31683 .field("source_name", &self.source_name())
31684 .field("target", &self.target())
31685 .field("target_name", &self.target_name())
31686 .field("rights", &self.rights())
31687 .field("subdir", &self.subdir())
31688 .field("dependency_type", &self.dependency_type())
31689 .field("availability", &self.availability())
31690 .field("source_dictionary", &self.source_dictionary())
31691 .finish()
31692 }
31693 }
31694
31695 impl<'de> ::fidl_next::IntoNatural for OfferDirectory<'de> {
31696 type Natural = crate::natural::OfferDirectory;
31697 }
31698
31699 #[repr(C)]
31701 pub struct OfferStorage<'de> {
31702 pub(crate) table: ::fidl_next::wire::Table<'de>,
31703 }
31704
31705 impl<'de> Drop for OfferStorage<'de> {
31706 fn drop(&mut self) {
31707 let _ = self.table.get(1).map(|envelope| unsafe {
31708 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31709 });
31710
31711 let _ = self
31712 .table
31713 .get(2)
31714 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31715
31716 let _ = self
31717 .table
31718 .get(3)
31719 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31720
31721 let _ = self.table.get(4).map(|envelope| unsafe {
31722 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31723 });
31724
31725 let _ = self
31726 .table
31727 .get(5)
31728 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31729 }
31730 }
31731
31732 impl ::fidl_next::Constrained for OfferStorage<'_> {
31733 type Constraint = ();
31734
31735 fn validate(
31736 _: ::fidl_next::Slot<'_, Self>,
31737 _: Self::Constraint,
31738 ) -> Result<(), ::fidl_next::ValidationError> {
31739 Ok(())
31740 }
31741 }
31742
31743 unsafe impl ::fidl_next::Wire for OfferStorage<'static> {
31744 type Narrowed<'de> = OfferStorage<'de>;
31745
31746 #[inline]
31747 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31748 ::fidl_next::munge!(let Self { table } = out);
31749 ::fidl_next::wire::Table::zero_padding(table);
31750 }
31751 }
31752
31753 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferStorage<'de>
31754 where
31755 ___D: ::fidl_next::Decoder<'de> + ?Sized,
31756 {
31757 fn decode(
31758 slot: ::fidl_next::Slot<'_, Self>,
31759 decoder: &mut ___D,
31760 _: (),
31761 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31762 ::fidl_next::munge!(let Self { table } = slot);
31763
31764 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31765 match ordinal {
31766 0 => unsafe { ::core::hint::unreachable_unchecked() },
31767
31768 1 => {
31769 ::fidl_next::wire::Envelope::decode_as::<
31770 ___D,
31771 ::fidl_next::wire::String<'de>,
31772 >(slot.as_mut(), decoder, 100)?;
31773
31774 let value = unsafe {
31775 slot.deref_unchecked()
31776 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31777 };
31778
31779 if value.len() > 100 {
31780 return Err(::fidl_next::DecodeError::VectorTooLong {
31781 size: value.len() as u64,
31782 limit: 100,
31783 });
31784 }
31785
31786 Ok(())
31787 }
31788
31789 2 => {
31790 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31791 slot.as_mut(),
31792 decoder,
31793 (),
31794 )?;
31795
31796 Ok(())
31797 }
31798
31799 3 => {
31800 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31801 slot.as_mut(),
31802 decoder,
31803 (),
31804 )?;
31805
31806 Ok(())
31807 }
31808
31809 4 => {
31810 ::fidl_next::wire::Envelope::decode_as::<
31811 ___D,
31812 ::fidl_next::wire::String<'de>,
31813 >(slot.as_mut(), decoder, 100)?;
31814
31815 let value = unsafe {
31816 slot.deref_unchecked()
31817 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31818 };
31819
31820 if value.len() > 100 {
31821 return Err(::fidl_next::DecodeError::VectorTooLong {
31822 size: value.len() as u64,
31823 limit: 100,
31824 });
31825 }
31826
31827 Ok(())
31828 }
31829
31830 5 => {
31831 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
31832 slot.as_mut(),
31833 decoder,
31834 (),
31835 )?;
31836
31837 Ok(())
31838 }
31839
31840 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
31841 }
31842 })
31843 }
31844 }
31845
31846 impl<'de> OfferStorage<'de> {
31847 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31848 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31849 }
31850
31851 pub fn take_source_name(
31852 &mut self,
31853 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31854 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
31855 }
31856
31857 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31858 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31859 }
31860
31861 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31862 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
31863 }
31864
31865 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31866 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31867 }
31868
31869 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31870 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31871 }
31872
31873 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31874 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31875 }
31876
31877 pub fn take_target_name(
31878 &mut self,
31879 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31880 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31881 }
31882
31883 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31884 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31885 }
31886
31887 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31888 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31889 }
31890 }
31891
31892 impl<'de> ::core::fmt::Debug for OfferStorage<'de> {
31893 fn fmt(
31894 &self,
31895 f: &mut ::core::fmt::Formatter<'_>,
31896 ) -> ::core::result::Result<(), ::core::fmt::Error> {
31897 f.debug_struct("OfferStorage")
31898 .field("source_name", &self.source_name())
31899 .field("source", &self.source())
31900 .field("target", &self.target())
31901 .field("target_name", &self.target_name())
31902 .field("availability", &self.availability())
31903 .finish()
31904 }
31905 }
31906
31907 impl<'de> ::fidl_next::IntoNatural for OfferStorage<'de> {
31908 type Natural = crate::natural::OfferStorage;
31909 }
31910
31911 #[repr(C)]
31913 pub struct OfferRunner<'de> {
31914 pub(crate) table: ::fidl_next::wire::Table<'de>,
31915 }
31916
31917 impl<'de> Drop for OfferRunner<'de> {
31918 fn drop(&mut self) {
31919 let _ = self
31920 .table
31921 .get(1)
31922 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31923
31924 let _ = self.table.get(2).map(|envelope| unsafe {
31925 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31926 });
31927
31928 let _ = self
31929 .table
31930 .get(3)
31931 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31932
31933 let _ = self.table.get(4).map(|envelope| unsafe {
31934 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31935 });
31936
31937 let _ = self.table.get(5).map(|envelope| unsafe {
31938 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31939 });
31940 }
31941 }
31942
31943 impl ::fidl_next::Constrained for OfferRunner<'_> {
31944 type Constraint = ();
31945
31946 fn validate(
31947 _: ::fidl_next::Slot<'_, Self>,
31948 _: Self::Constraint,
31949 ) -> Result<(), ::fidl_next::ValidationError> {
31950 Ok(())
31951 }
31952 }
31953
31954 unsafe impl ::fidl_next::Wire for OfferRunner<'static> {
31955 type Narrowed<'de> = OfferRunner<'de>;
31956
31957 #[inline]
31958 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31959 ::fidl_next::munge!(let Self { table } = out);
31960 ::fidl_next::wire::Table::zero_padding(table);
31961 }
31962 }
31963
31964 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferRunner<'de>
31965 where
31966 ___D: ::fidl_next::Decoder<'de> + ?Sized,
31967 {
31968 fn decode(
31969 slot: ::fidl_next::Slot<'_, Self>,
31970 decoder: &mut ___D,
31971 _: (),
31972 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31973 ::fidl_next::munge!(let Self { table } = slot);
31974
31975 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31976 match ordinal {
31977 0 => unsafe { ::core::hint::unreachable_unchecked() },
31978
31979 1 => {
31980 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31981 slot.as_mut(),
31982 decoder,
31983 (),
31984 )?;
31985
31986 Ok(())
31987 }
31988
31989 2 => {
31990 ::fidl_next::wire::Envelope::decode_as::<
31991 ___D,
31992 ::fidl_next::wire::String<'de>,
31993 >(slot.as_mut(), decoder, 100)?;
31994
31995 let value = unsafe {
31996 slot.deref_unchecked()
31997 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31998 };
31999
32000 if value.len() > 100 {
32001 return Err(::fidl_next::DecodeError::VectorTooLong {
32002 size: value.len() as u64,
32003 limit: 100,
32004 });
32005 }
32006
32007 Ok(())
32008 }
32009
32010 3 => {
32011 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32012 slot.as_mut(),
32013 decoder,
32014 (),
32015 )?;
32016
32017 Ok(())
32018 }
32019
32020 4 => {
32021 ::fidl_next::wire::Envelope::decode_as::<
32022 ___D,
32023 ::fidl_next::wire::String<'de>,
32024 >(slot.as_mut(), decoder, 100)?;
32025
32026 let value = unsafe {
32027 slot.deref_unchecked()
32028 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32029 };
32030
32031 if value.len() > 100 {
32032 return Err(::fidl_next::DecodeError::VectorTooLong {
32033 size: value.len() as u64,
32034 limit: 100,
32035 });
32036 }
32037
32038 Ok(())
32039 }
32040
32041 5 => {
32042 ::fidl_next::wire::Envelope::decode_as::<
32043 ___D,
32044 ::fidl_next::wire::String<'de>,
32045 >(slot.as_mut(), decoder, 1024)?;
32046
32047 let value = unsafe {
32048 slot.deref_unchecked()
32049 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32050 };
32051
32052 if value.len() > 1024 {
32053 return Err(::fidl_next::DecodeError::VectorTooLong {
32054 size: value.len() as u64,
32055 limit: 1024,
32056 });
32057 }
32058
32059 Ok(())
32060 }
32061
32062 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32063 }
32064 })
32065 }
32066 }
32067
32068 impl<'de> OfferRunner<'de> {
32069 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32070 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32071 }
32072
32073 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32074 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32075 }
32076
32077 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32078 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32079 }
32080
32081 pub fn take_source_name(
32082 &mut self,
32083 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32084 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32085 }
32086
32087 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32088 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32089 }
32090
32091 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32092 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32093 }
32094
32095 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32096 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32097 }
32098
32099 pub fn take_target_name(
32100 &mut self,
32101 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32102 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32103 }
32104
32105 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32106 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32107 }
32108
32109 pub fn take_source_dictionary(
32110 &mut self,
32111 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32112 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32113 }
32114 }
32115
32116 impl<'de> ::core::fmt::Debug for OfferRunner<'de> {
32117 fn fmt(
32118 &self,
32119 f: &mut ::core::fmt::Formatter<'_>,
32120 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32121 f.debug_struct("OfferRunner")
32122 .field("source", &self.source())
32123 .field("source_name", &self.source_name())
32124 .field("target", &self.target())
32125 .field("target_name", &self.target_name())
32126 .field("source_dictionary", &self.source_dictionary())
32127 .finish()
32128 }
32129 }
32130
32131 impl<'de> ::fidl_next::IntoNatural for OfferRunner<'de> {
32132 type Natural = crate::natural::OfferRunner;
32133 }
32134
32135 #[repr(C)]
32137 pub struct OfferResolver<'de> {
32138 pub(crate) table: ::fidl_next::wire::Table<'de>,
32139 }
32140
32141 impl<'de> Drop for OfferResolver<'de> {
32142 fn drop(&mut self) {
32143 let _ = self
32144 .table
32145 .get(1)
32146 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32147
32148 let _ = self.table.get(2).map(|envelope| unsafe {
32149 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32150 });
32151
32152 let _ = self
32153 .table
32154 .get(3)
32155 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32156
32157 let _ = self.table.get(4).map(|envelope| unsafe {
32158 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32159 });
32160
32161 let _ = self.table.get(5).map(|envelope| unsafe {
32162 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32163 });
32164 }
32165 }
32166
32167 impl ::fidl_next::Constrained for OfferResolver<'_> {
32168 type Constraint = ();
32169
32170 fn validate(
32171 _: ::fidl_next::Slot<'_, Self>,
32172 _: Self::Constraint,
32173 ) -> Result<(), ::fidl_next::ValidationError> {
32174 Ok(())
32175 }
32176 }
32177
32178 unsafe impl ::fidl_next::Wire for OfferResolver<'static> {
32179 type Narrowed<'de> = OfferResolver<'de>;
32180
32181 #[inline]
32182 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32183 ::fidl_next::munge!(let Self { table } = out);
32184 ::fidl_next::wire::Table::zero_padding(table);
32185 }
32186 }
32187
32188 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferResolver<'de>
32189 where
32190 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32191 {
32192 fn decode(
32193 slot: ::fidl_next::Slot<'_, Self>,
32194 decoder: &mut ___D,
32195 _: (),
32196 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32197 ::fidl_next::munge!(let Self { table } = slot);
32198
32199 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32200 match ordinal {
32201 0 => unsafe { ::core::hint::unreachable_unchecked() },
32202
32203 1 => {
32204 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32205 slot.as_mut(),
32206 decoder,
32207 (),
32208 )?;
32209
32210 Ok(())
32211 }
32212
32213 2 => {
32214 ::fidl_next::wire::Envelope::decode_as::<
32215 ___D,
32216 ::fidl_next::wire::String<'de>,
32217 >(slot.as_mut(), decoder, 100)?;
32218
32219 let value = unsafe {
32220 slot.deref_unchecked()
32221 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32222 };
32223
32224 if value.len() > 100 {
32225 return Err(::fidl_next::DecodeError::VectorTooLong {
32226 size: value.len() as u64,
32227 limit: 100,
32228 });
32229 }
32230
32231 Ok(())
32232 }
32233
32234 3 => {
32235 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32236 slot.as_mut(),
32237 decoder,
32238 (),
32239 )?;
32240
32241 Ok(())
32242 }
32243
32244 4 => {
32245 ::fidl_next::wire::Envelope::decode_as::<
32246 ___D,
32247 ::fidl_next::wire::String<'de>,
32248 >(slot.as_mut(), decoder, 100)?;
32249
32250 let value = unsafe {
32251 slot.deref_unchecked()
32252 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32253 };
32254
32255 if value.len() > 100 {
32256 return Err(::fidl_next::DecodeError::VectorTooLong {
32257 size: value.len() as u64,
32258 limit: 100,
32259 });
32260 }
32261
32262 Ok(())
32263 }
32264
32265 5 => {
32266 ::fidl_next::wire::Envelope::decode_as::<
32267 ___D,
32268 ::fidl_next::wire::String<'de>,
32269 >(slot.as_mut(), decoder, 1024)?;
32270
32271 let value = unsafe {
32272 slot.deref_unchecked()
32273 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32274 };
32275
32276 if value.len() > 1024 {
32277 return Err(::fidl_next::DecodeError::VectorTooLong {
32278 size: value.len() as u64,
32279 limit: 1024,
32280 });
32281 }
32282
32283 Ok(())
32284 }
32285
32286 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32287 }
32288 })
32289 }
32290 }
32291
32292 impl<'de> OfferResolver<'de> {
32293 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32294 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32295 }
32296
32297 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32298 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32299 }
32300
32301 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32302 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32303 }
32304
32305 pub fn take_source_name(
32306 &mut self,
32307 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32308 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32309 }
32310
32311 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32312 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32313 }
32314
32315 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32316 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32317 }
32318
32319 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32320 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32321 }
32322
32323 pub fn take_target_name(
32324 &mut self,
32325 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32326 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32327 }
32328
32329 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32330 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32331 }
32332
32333 pub fn take_source_dictionary(
32334 &mut self,
32335 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32336 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32337 }
32338 }
32339
32340 impl<'de> ::core::fmt::Debug for OfferResolver<'de> {
32341 fn fmt(
32342 &self,
32343 f: &mut ::core::fmt::Formatter<'_>,
32344 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32345 f.debug_struct("OfferResolver")
32346 .field("source", &self.source())
32347 .field("source_name", &self.source_name())
32348 .field("target", &self.target())
32349 .field("target_name", &self.target_name())
32350 .field("source_dictionary", &self.source_dictionary())
32351 .finish()
32352 }
32353 }
32354
32355 impl<'de> ::fidl_next::IntoNatural for OfferResolver<'de> {
32356 type Natural = crate::natural::OfferResolver;
32357 }
32358
32359 #[repr(C)]
32361 pub struct OfferEventStream<'de> {
32362 pub(crate) table: ::fidl_next::wire::Table<'de>,
32363 }
32364
32365 impl<'de> Drop for OfferEventStream<'de> {
32366 fn drop(&mut self) {
32367 let _ = self
32368 .table
32369 .get(1)
32370 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32371
32372 let _ = self.table.get(2).map(|envelope| unsafe {
32373 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32374 });
32375
32376 let _ = self.table.get(3).map(|envelope| unsafe {
32377 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>()
32378 });
32379
32380 let _ = self
32381 .table
32382 .get(4)
32383 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32384
32385 let _ = self.table.get(5).map(|envelope| unsafe {
32386 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32387 });
32388
32389 let _ = self
32390 .table
32391 .get(7)
32392 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
32393 }
32394 }
32395
32396 impl ::fidl_next::Constrained for OfferEventStream<'_> {
32397 type Constraint = ();
32398
32399 fn validate(
32400 _: ::fidl_next::Slot<'_, Self>,
32401 _: Self::Constraint,
32402 ) -> Result<(), ::fidl_next::ValidationError> {
32403 Ok(())
32404 }
32405 }
32406
32407 unsafe impl ::fidl_next::Wire for OfferEventStream<'static> {
32408 type Narrowed<'de> = OfferEventStream<'de>;
32409
32410 #[inline]
32411 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32412 ::fidl_next::munge!(let Self { table } = out);
32413 ::fidl_next::wire::Table::zero_padding(table);
32414 }
32415 }
32416
32417 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferEventStream<'de>
32418 where
32419 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32420 {
32421 fn decode(
32422 slot: ::fidl_next::Slot<'_, Self>,
32423 decoder: &mut ___D,
32424 _: (),
32425 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32426 ::fidl_next::munge!(let Self { table } = slot);
32427
32428 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32429 match ordinal {
32430 0 => unsafe { ::core::hint::unreachable_unchecked() },
32431
32432 1 => {
32433 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32434 slot.as_mut(),
32435 decoder,
32436 (),
32437 )?;
32438
32439 Ok(())
32440 }
32441
32442 2 => {
32443 ::fidl_next::wire::Envelope::decode_as::<
32444 ___D,
32445 ::fidl_next::wire::String<'de>,
32446 >(slot.as_mut(), decoder, 100)?;
32447
32448 let value = unsafe {
32449 slot.deref_unchecked()
32450 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32451 };
32452
32453 if value.len() > 100 {
32454 return Err(::fidl_next::DecodeError::VectorTooLong {
32455 size: value.len() as u64,
32456 limit: 100,
32457 });
32458 }
32459
32460 Ok(())
32461 }
32462
32463 3 => {
32464 ::fidl_next::wire::Envelope::decode_as::<
32465 ___D,
32466 ::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>,
32467 >(slot.as_mut(), decoder, (4294967295, ()))?;
32468
32469 Ok(())
32470 }
32471
32472 4 => {
32473 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32474 slot.as_mut(),
32475 decoder,
32476 (),
32477 )?;
32478
32479 Ok(())
32480 }
32481
32482 5 => {
32483 ::fidl_next::wire::Envelope::decode_as::<
32484 ___D,
32485 ::fidl_next::wire::String<'de>,
32486 >(slot.as_mut(), decoder, 100)?;
32487
32488 let value = unsafe {
32489 slot.deref_unchecked()
32490 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32491 };
32492
32493 if value.len() > 100 {
32494 return Err(::fidl_next::DecodeError::VectorTooLong {
32495 size: value.len() as u64,
32496 limit: 100,
32497 });
32498 }
32499
32500 Ok(())
32501 }
32502
32503 7 => {
32504 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
32505 slot.as_mut(),
32506 decoder,
32507 (),
32508 )?;
32509
32510 Ok(())
32511 }
32512
32513 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32514 }
32515 })
32516 }
32517 }
32518
32519 impl<'de> OfferEventStream<'de> {
32520 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32521 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32522 }
32523
32524 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32525 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32526 }
32527
32528 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32529 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32530 }
32531
32532 pub fn take_source_name(
32533 &mut self,
32534 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32535 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32536 }
32537
32538 pub fn scope(
32539 &self,
32540 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>
32541 {
32542 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32543 }
32544
32545 pub fn take_scope(
32546 &mut self,
32547 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>> {
32548 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32549 }
32550
32551 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32552 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32553 }
32554
32555 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32556 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32557 }
32558
32559 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32560 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32561 }
32562
32563 pub fn take_target_name(
32564 &mut self,
32565 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32566 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32567 }
32568
32569 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
32570 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
32571 }
32572
32573 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
32574 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
32575 }
32576 }
32577
32578 impl<'de> ::core::fmt::Debug for OfferEventStream<'de> {
32579 fn fmt(
32580 &self,
32581 f: &mut ::core::fmt::Formatter<'_>,
32582 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32583 f.debug_struct("OfferEventStream")
32584 .field("source", &self.source())
32585 .field("source_name", &self.source_name())
32586 .field("scope", &self.scope())
32587 .field("target", &self.target())
32588 .field("target_name", &self.target_name())
32589 .field("availability", &self.availability())
32590 .finish()
32591 }
32592 }
32593
32594 impl<'de> ::fidl_next::IntoNatural for OfferEventStream<'de> {
32595 type Natural = crate::natural::OfferEventStream;
32596 }
32597
32598 #[repr(C)]
32600 pub struct OfferDictionary<'de> {
32601 pub(crate) table: ::fidl_next::wire::Table<'de>,
32602 }
32603
32604 impl<'de> Drop for OfferDictionary<'de> {
32605 fn drop(&mut self) {
32606 let _ = self
32607 .table
32608 .get(1)
32609 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32610
32611 let _ = self.table.get(2).map(|envelope| unsafe {
32612 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32613 });
32614
32615 let _ = self
32616 .table
32617 .get(3)
32618 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32619
32620 let _ = self.table.get(4).map(|envelope| unsafe {
32621 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32622 });
32623
32624 let _ = self.table.get(5).map(|envelope| unsafe {
32625 envelope.read_unchecked::<crate::wire::DependencyType>()
32626 });
32627
32628 let _ = self
32629 .table
32630 .get(6)
32631 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
32632
32633 let _ = self.table.get(7).map(|envelope| unsafe {
32634 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32635 });
32636 }
32637 }
32638
32639 impl ::fidl_next::Constrained for OfferDictionary<'_> {
32640 type Constraint = ();
32641
32642 fn validate(
32643 _: ::fidl_next::Slot<'_, Self>,
32644 _: Self::Constraint,
32645 ) -> Result<(), ::fidl_next::ValidationError> {
32646 Ok(())
32647 }
32648 }
32649
32650 unsafe impl ::fidl_next::Wire for OfferDictionary<'static> {
32651 type Narrowed<'de> = OfferDictionary<'de>;
32652
32653 #[inline]
32654 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32655 ::fidl_next::munge!(let Self { table } = out);
32656 ::fidl_next::wire::Table::zero_padding(table);
32657 }
32658 }
32659
32660 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferDictionary<'de>
32661 where
32662 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32663 {
32664 fn decode(
32665 slot: ::fidl_next::Slot<'_, Self>,
32666 decoder: &mut ___D,
32667 _: (),
32668 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32669 ::fidl_next::munge!(let Self { table } = slot);
32670
32671 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32672 match ordinal {
32673 0 => unsafe { ::core::hint::unreachable_unchecked() },
32674
32675 1 => {
32676 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32677 slot.as_mut(),
32678 decoder,
32679 (),
32680 )?;
32681
32682 Ok(())
32683 }
32684
32685 2 => {
32686 ::fidl_next::wire::Envelope::decode_as::<
32687 ___D,
32688 ::fidl_next::wire::String<'de>,
32689 >(slot.as_mut(), decoder, 100)?;
32690
32691 let value = unsafe {
32692 slot.deref_unchecked()
32693 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32694 };
32695
32696 if value.len() > 100 {
32697 return Err(::fidl_next::DecodeError::VectorTooLong {
32698 size: value.len() as u64,
32699 limit: 100,
32700 });
32701 }
32702
32703 Ok(())
32704 }
32705
32706 3 => {
32707 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32708 slot.as_mut(),
32709 decoder,
32710 (),
32711 )?;
32712
32713 Ok(())
32714 }
32715
32716 4 => {
32717 ::fidl_next::wire::Envelope::decode_as::<
32718 ___D,
32719 ::fidl_next::wire::String<'de>,
32720 >(slot.as_mut(), decoder, 100)?;
32721
32722 let value = unsafe {
32723 slot.deref_unchecked()
32724 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32725 };
32726
32727 if value.len() > 100 {
32728 return Err(::fidl_next::DecodeError::VectorTooLong {
32729 size: value.len() as u64,
32730 limit: 100,
32731 });
32732 }
32733
32734 Ok(())
32735 }
32736
32737 5 => {
32738 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
32739 slot.as_mut(),
32740 decoder,
32741 (),
32742 )?;
32743
32744 Ok(())
32745 }
32746
32747 6 => {
32748 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
32749 slot.as_mut(),
32750 decoder,
32751 (),
32752 )?;
32753
32754 Ok(())
32755 }
32756
32757 7 => {
32758 ::fidl_next::wire::Envelope::decode_as::<
32759 ___D,
32760 ::fidl_next::wire::String<'de>,
32761 >(slot.as_mut(), decoder, 1024)?;
32762
32763 let value = unsafe {
32764 slot.deref_unchecked()
32765 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32766 };
32767
32768 if value.len() > 1024 {
32769 return Err(::fidl_next::DecodeError::VectorTooLong {
32770 size: value.len() as u64,
32771 limit: 1024,
32772 });
32773 }
32774
32775 Ok(())
32776 }
32777
32778 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32779 }
32780 })
32781 }
32782 }
32783
32784 impl<'de> OfferDictionary<'de> {
32785 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32786 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32787 }
32788
32789 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32790 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32791 }
32792
32793 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32794 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32795 }
32796
32797 pub fn take_source_name(
32798 &mut self,
32799 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32800 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32801 }
32802
32803 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32804 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32805 }
32806
32807 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32808 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32809 }
32810
32811 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32812 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32813 }
32814
32815 pub fn take_target_name(
32816 &mut self,
32817 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32818 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32819 }
32820
32821 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
32822 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32823 }
32824
32825 pub fn take_dependency_type(
32826 &mut self,
32827 ) -> ::core::option::Option<crate::wire::DependencyType> {
32828 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32829 }
32830
32831 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
32832 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
32833 }
32834
32835 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
32836 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
32837 }
32838
32839 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32840 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
32841 }
32842
32843 pub fn take_source_dictionary(
32844 &mut self,
32845 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32846 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
32847 }
32848 }
32849
32850 impl<'de> ::core::fmt::Debug for OfferDictionary<'de> {
32851 fn fmt(
32852 &self,
32853 f: &mut ::core::fmt::Formatter<'_>,
32854 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32855 f.debug_struct("OfferDictionary")
32856 .field("source", &self.source())
32857 .field("source_name", &self.source_name())
32858 .field("target", &self.target())
32859 .field("target_name", &self.target_name())
32860 .field("dependency_type", &self.dependency_type())
32861 .field("availability", &self.availability())
32862 .field("source_dictionary", &self.source_dictionary())
32863 .finish()
32864 }
32865 }
32866
32867 impl<'de> ::fidl_next::IntoNatural for OfferDictionary<'de> {
32868 type Natural = crate::natural::OfferDictionary;
32869 }
32870
32871 #[repr(C)]
32873 pub struct OfferConfiguration<'de> {
32874 pub(crate) table: ::fidl_next::wire::Table<'de>,
32875 }
32876
32877 impl<'de> Drop for OfferConfiguration<'de> {
32878 fn drop(&mut self) {
32879 let _ = self
32880 .table
32881 .get(1)
32882 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32883
32884 let _ = self.table.get(2).map(|envelope| unsafe {
32885 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32886 });
32887
32888 let _ = self
32889 .table
32890 .get(3)
32891 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32892
32893 let _ = self.table.get(4).map(|envelope| unsafe {
32894 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32895 });
32896
32897 let _ = self
32898 .table
32899 .get(5)
32900 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
32901
32902 let _ = self.table.get(6).map(|envelope| unsafe {
32903 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32904 });
32905 }
32906 }
32907
32908 impl ::fidl_next::Constrained for OfferConfiguration<'_> {
32909 type Constraint = ();
32910
32911 fn validate(
32912 _: ::fidl_next::Slot<'_, Self>,
32913 _: Self::Constraint,
32914 ) -> Result<(), ::fidl_next::ValidationError> {
32915 Ok(())
32916 }
32917 }
32918
32919 unsafe impl ::fidl_next::Wire for OfferConfiguration<'static> {
32920 type Narrowed<'de> = OfferConfiguration<'de>;
32921
32922 #[inline]
32923 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32924 ::fidl_next::munge!(let Self { table } = out);
32925 ::fidl_next::wire::Table::zero_padding(table);
32926 }
32927 }
32928
32929 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferConfiguration<'de>
32930 where
32931 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32932 {
32933 fn decode(
32934 slot: ::fidl_next::Slot<'_, Self>,
32935 decoder: &mut ___D,
32936 _: (),
32937 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32938 ::fidl_next::munge!(let Self { table } = slot);
32939
32940 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32941 match ordinal {
32942 0 => unsafe { ::core::hint::unreachable_unchecked() },
32943
32944 1 => {
32945 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32946 slot.as_mut(),
32947 decoder,
32948 (),
32949 )?;
32950
32951 Ok(())
32952 }
32953
32954 2 => {
32955 ::fidl_next::wire::Envelope::decode_as::<
32956 ___D,
32957 ::fidl_next::wire::String<'de>,
32958 >(slot.as_mut(), decoder, 100)?;
32959
32960 let value = unsafe {
32961 slot.deref_unchecked()
32962 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32963 };
32964
32965 if value.len() > 100 {
32966 return Err(::fidl_next::DecodeError::VectorTooLong {
32967 size: value.len() as u64,
32968 limit: 100,
32969 });
32970 }
32971
32972 Ok(())
32973 }
32974
32975 3 => {
32976 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32977 slot.as_mut(),
32978 decoder,
32979 (),
32980 )?;
32981
32982 Ok(())
32983 }
32984
32985 4 => {
32986 ::fidl_next::wire::Envelope::decode_as::<
32987 ___D,
32988 ::fidl_next::wire::String<'de>,
32989 >(slot.as_mut(), decoder, 100)?;
32990
32991 let value = unsafe {
32992 slot.deref_unchecked()
32993 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32994 };
32995
32996 if value.len() > 100 {
32997 return Err(::fidl_next::DecodeError::VectorTooLong {
32998 size: value.len() as u64,
32999 limit: 100,
33000 });
33001 }
33002
33003 Ok(())
33004 }
33005
33006 5 => {
33007 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
33008 slot.as_mut(),
33009 decoder,
33010 (),
33011 )?;
33012
33013 Ok(())
33014 }
33015
33016 6 => {
33017 ::fidl_next::wire::Envelope::decode_as::<
33018 ___D,
33019 ::fidl_next::wire::String<'de>,
33020 >(slot.as_mut(), decoder, 1024)?;
33021
33022 let value = unsafe {
33023 slot.deref_unchecked()
33024 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33025 };
33026
33027 if value.len() > 1024 {
33028 return Err(::fidl_next::DecodeError::VectorTooLong {
33029 size: value.len() as u64,
33030 limit: 1024,
33031 });
33032 }
33033
33034 Ok(())
33035 }
33036
33037 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33038 }
33039 })
33040 }
33041 }
33042
33043 impl<'de> OfferConfiguration<'de> {
33044 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33045 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33046 }
33047
33048 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33049 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
33050 }
33051
33052 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33053 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33054 }
33055
33056 pub fn take_source_name(
33057 &mut self,
33058 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33059 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
33060 }
33061
33062 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33063 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33064 }
33065
33066 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33067 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
33068 }
33069
33070 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33071 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
33072 }
33073
33074 pub fn take_target_name(
33075 &mut self,
33076 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33077 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
33078 }
33079
33080 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
33081 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
33082 }
33083
33084 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
33085 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
33086 }
33087
33088 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33089 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
33090 }
33091
33092 pub fn take_source_dictionary(
33093 &mut self,
33094 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33095 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
33096 }
33097 }
33098
33099 impl<'de> ::core::fmt::Debug for OfferConfiguration<'de> {
33100 fn fmt(
33101 &self,
33102 f: &mut ::core::fmt::Formatter<'_>,
33103 ) -> ::core::result::Result<(), ::core::fmt::Error> {
33104 f.debug_struct("OfferConfiguration")
33105 .field("source", &self.source())
33106 .field("source_name", &self.source_name())
33107 .field("target", &self.target())
33108 .field("target_name", &self.target_name())
33109 .field("availability", &self.availability())
33110 .field("source_dictionary", &self.source_dictionary())
33111 .finish()
33112 }
33113 }
33114
33115 impl<'de> ::fidl_next::IntoNatural for OfferConfiguration<'de> {
33116 type Natural = crate::natural::OfferConfiguration;
33117 }
33118
33119 #[repr(transparent)]
33121 pub struct Offer<'de> {
33122 pub(crate) raw: ::fidl_next::wire::Union,
33123 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
33124 }
33125
33126 impl<'de> Drop for Offer<'de> {
33127 fn drop(&mut self) {
33128 match self.raw.ordinal() {
33129 1 => {
33130 let _ = unsafe {
33131 self.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
33132 };
33133 }
33134
33135 2 => {
33136 let _ = unsafe {
33137 self.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
33138 };
33139 }
33140
33141 3 => {
33142 let _ = unsafe {
33143 self.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
33144 };
33145 }
33146
33147 4 => {
33148 let _ = unsafe {
33149 self.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
33150 };
33151 }
33152
33153 5 => {
33154 let _ =
33155 unsafe { self.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>() };
33156 }
33157
33158 6 => {
33159 let _ = unsafe {
33160 self.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
33161 };
33162 }
33163
33164 8 => {
33165 let _ = unsafe {
33166 self.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
33167 };
33168 }
33169
33170 9 => {
33171 let _ = unsafe {
33172 self.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
33173 };
33174 }
33175
33176 10 => {
33177 let _ = unsafe {
33178 self.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
33179 };
33180 }
33181
33182 _ => (),
33183 }
33184 }
33185 }
33186
33187 impl ::fidl_next::Constrained for Offer<'_> {
33188 type Constraint = ();
33189
33190 fn validate(
33191 _: ::fidl_next::Slot<'_, Self>,
33192 _: Self::Constraint,
33193 ) -> Result<(), ::fidl_next::ValidationError> {
33194 Ok(())
33195 }
33196 }
33197
33198 unsafe impl ::fidl_next::Wire for Offer<'static> {
33199 type Narrowed<'de> = Offer<'de>;
33200
33201 #[inline]
33202 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33203 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
33204 ::fidl_next::wire::Union::zero_padding(raw);
33205 }
33206 }
33207
33208 pub mod offer {
33209 pub enum Ref<'de> {
33210 Service(&'de crate::wire::OfferService<'de>),
33211
33212 Protocol(&'de crate::wire::OfferProtocol<'de>),
33213
33214 Directory(&'de crate::wire::OfferDirectory<'de>),
33215
33216 Storage(&'de crate::wire::OfferStorage<'de>),
33217
33218 Runner(&'de crate::wire::OfferRunner<'de>),
33219
33220 Resolver(&'de crate::wire::OfferResolver<'de>),
33221
33222 EventStream(&'de crate::wire::OfferEventStream<'de>),
33223
33224 Dictionary(&'de crate::wire::OfferDictionary<'de>),
33225
33226 Config(&'de crate::wire::OfferConfiguration<'de>),
33227
33228 UnknownOrdinal_(u64),
33229 }
33230
33231 pub enum Value<'de> {
33232 Service(crate::wire::OfferService<'de>),
33233
33234 Protocol(crate::wire::OfferProtocol<'de>),
33235
33236 Directory(crate::wire::OfferDirectory<'de>),
33237
33238 Storage(crate::wire::OfferStorage<'de>),
33239
33240 Runner(crate::wire::OfferRunner<'de>),
33241
33242 Resolver(crate::wire::OfferResolver<'de>),
33243
33244 EventStream(crate::wire::OfferEventStream<'de>),
33245
33246 Dictionary(crate::wire::OfferDictionary<'de>),
33247
33248 Config(crate::wire::OfferConfiguration<'de>),
33249
33250 UnknownOrdinal_(u64),
33251 }
33252 }
33253
33254 impl<'de> Offer<'de> {
33255 pub fn as_ref(&self) -> crate::wire::offer::Ref<'_> {
33256 match self.raw.ordinal() {
33257 1 => crate::wire::offer::Ref::Service(unsafe {
33258 self.raw.get().deref_unchecked::<crate::wire::OfferService<'_>>()
33259 }),
33260
33261 2 => crate::wire::offer::Ref::Protocol(unsafe {
33262 self.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'_>>()
33263 }),
33264
33265 3 => crate::wire::offer::Ref::Directory(unsafe {
33266 self.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'_>>()
33267 }),
33268
33269 4 => crate::wire::offer::Ref::Storage(unsafe {
33270 self.raw.get().deref_unchecked::<crate::wire::OfferStorage<'_>>()
33271 }),
33272
33273 5 => crate::wire::offer::Ref::Runner(unsafe {
33274 self.raw.get().deref_unchecked::<crate::wire::OfferRunner<'_>>()
33275 }),
33276
33277 6 => crate::wire::offer::Ref::Resolver(unsafe {
33278 self.raw.get().deref_unchecked::<crate::wire::OfferResolver<'_>>()
33279 }),
33280
33281 8 => crate::wire::offer::Ref::EventStream(unsafe {
33282 self.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'_>>()
33283 }),
33284
33285 9 => crate::wire::offer::Ref::Dictionary(unsafe {
33286 self.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'_>>()
33287 }),
33288
33289 10 => crate::wire::offer::Ref::Config(unsafe {
33290 self.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'_>>()
33291 }),
33292
33293 unknown => crate::wire::offer::Ref::UnknownOrdinal_(unknown),
33294 }
33295 }
33296
33297 pub fn into_inner(self) -> crate::wire::offer::Value<'de> {
33298 let this = ::core::mem::ManuallyDrop::new(self);
33299
33300 match this.raw.ordinal() {
33301 1 => crate::wire::offer::Value::Service(unsafe {
33302 this.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
33303 }),
33304
33305 2 => crate::wire::offer::Value::Protocol(unsafe {
33306 this.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
33307 }),
33308
33309 3 => crate::wire::offer::Value::Directory(unsafe {
33310 this.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
33311 }),
33312
33313 4 => crate::wire::offer::Value::Storage(unsafe {
33314 this.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
33315 }),
33316
33317 5 => crate::wire::offer::Value::Runner(unsafe {
33318 this.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>()
33319 }),
33320
33321 6 => crate::wire::offer::Value::Resolver(unsafe {
33322 this.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
33323 }),
33324
33325 8 => crate::wire::offer::Value::EventStream(unsafe {
33326 this.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
33327 }),
33328
33329 9 => crate::wire::offer::Value::Dictionary(unsafe {
33330 this.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
33331 }),
33332
33333 10 => crate::wire::offer::Value::Config(unsafe {
33334 this.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
33335 }),
33336
33337 unknown => crate::wire::offer::Value::UnknownOrdinal_(unknown),
33338 }
33339 }
33340 }
33341
33342 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Offer<'de>
33343 where
33344 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
33345 ___D: ::fidl_next::Decoder<'de>,
33346 {
33347 fn decode(
33348 mut slot: ::fidl_next::Slot<'_, Self>,
33349 decoder: &mut ___D,
33350 _: (),
33351 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33352 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
33353 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
33354 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferService<'de>>(
33355 raw,
33356 decoder,
33357 (),
33358 )?,
33359
33360 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferProtocol<'de>>(
33361 raw,
33362 decoder,
33363 (),
33364 )?,
33365
33366 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDirectory<'de>>(
33367 raw,
33368 decoder,
33369 (),
33370 )?,
33371
33372 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferStorage<'de>>(
33373 raw,
33374 decoder,
33375 (),
33376 )?,
33377
33378 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferRunner<'de>>(
33379 raw,
33380 decoder,
33381 (),
33382 )?,
33383
33384 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferResolver<'de>>(
33385 raw,
33386 decoder,
33387 (),
33388 )?,
33389
33390 8 => {
33391 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferEventStream<'de>>(
33392 raw,
33393 decoder,
33394 (),
33395 )?
33396 }
33397
33398 9 => {
33399 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDictionary<'de>>(
33400 raw,
33401 decoder,
33402 (),
33403 )?
33404 }
33405
33406 10 => ::fidl_next::wire::Union::decode_as::<
33407 ___D,
33408 crate::wire::OfferConfiguration<'de>,
33409 >(raw, decoder, ())?,
33410
33411 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
33412 }
33413
33414 Ok(())
33415 }
33416 }
33417
33418 impl<'de> ::core::fmt::Debug for Offer<'de> {
33419 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33420 match self.raw.ordinal() {
33421 1 => unsafe {
33422 self.raw.get().deref_unchecked::<crate::wire::OfferService<'_>>().fmt(f)
33423 },
33424 2 => unsafe {
33425 self.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'_>>().fmt(f)
33426 },
33427 3 => unsafe {
33428 self.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'_>>().fmt(f)
33429 },
33430 4 => unsafe {
33431 self.raw.get().deref_unchecked::<crate::wire::OfferStorage<'_>>().fmt(f)
33432 },
33433 5 => unsafe {
33434 self.raw.get().deref_unchecked::<crate::wire::OfferRunner<'_>>().fmt(f)
33435 },
33436 6 => unsafe {
33437 self.raw.get().deref_unchecked::<crate::wire::OfferResolver<'_>>().fmt(f)
33438 },
33439 8 => unsafe {
33440 self.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'_>>().fmt(f)
33441 },
33442 9 => unsafe {
33443 self.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'_>>().fmt(f)
33444 },
33445 10 => unsafe {
33446 self.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'_>>().fmt(f)
33447 },
33448 _ => unsafe { ::core::hint::unreachable_unchecked() },
33449 }
33450 }
33451 }
33452
33453 impl<'de> ::fidl_next::IntoNatural for Offer<'de> {
33454 type Natural = crate::natural::Offer;
33455 }
33456
33457 #[repr(C)]
33459 pub struct RunnerRegistration<'de> {
33460 pub(crate) table: ::fidl_next::wire::Table<'de>,
33461 }
33462
33463 impl<'de> Drop for RunnerRegistration<'de> {
33464 fn drop(&mut self) {
33465 let _ = self.table.get(1).map(|envelope| unsafe {
33466 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33467 });
33468
33469 let _ = self
33470 .table
33471 .get(2)
33472 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
33473
33474 let _ = self.table.get(3).map(|envelope| unsafe {
33475 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33476 });
33477 }
33478 }
33479
33480 impl ::fidl_next::Constrained for RunnerRegistration<'_> {
33481 type Constraint = ();
33482
33483 fn validate(
33484 _: ::fidl_next::Slot<'_, Self>,
33485 _: Self::Constraint,
33486 ) -> Result<(), ::fidl_next::ValidationError> {
33487 Ok(())
33488 }
33489 }
33490
33491 unsafe impl ::fidl_next::Wire for RunnerRegistration<'static> {
33492 type Narrowed<'de> = RunnerRegistration<'de>;
33493
33494 #[inline]
33495 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33496 ::fidl_next::munge!(let Self { table } = out);
33497 ::fidl_next::wire::Table::zero_padding(table);
33498 }
33499 }
33500
33501 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for RunnerRegistration<'de>
33502 where
33503 ___D: ::fidl_next::Decoder<'de> + ?Sized,
33504 {
33505 fn decode(
33506 slot: ::fidl_next::Slot<'_, Self>,
33507 decoder: &mut ___D,
33508 _: (),
33509 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33510 ::fidl_next::munge!(let Self { table } = slot);
33511
33512 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33513 match ordinal {
33514 0 => unsafe { ::core::hint::unreachable_unchecked() },
33515
33516 1 => {
33517 ::fidl_next::wire::Envelope::decode_as::<
33518 ___D,
33519 ::fidl_next::wire::String<'de>,
33520 >(slot.as_mut(), decoder, 100)?;
33521
33522 let value = unsafe {
33523 slot.deref_unchecked()
33524 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33525 };
33526
33527 if value.len() > 100 {
33528 return Err(::fidl_next::DecodeError::VectorTooLong {
33529 size: value.len() as u64,
33530 limit: 100,
33531 });
33532 }
33533
33534 Ok(())
33535 }
33536
33537 2 => {
33538 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33539 slot.as_mut(),
33540 decoder,
33541 (),
33542 )?;
33543
33544 Ok(())
33545 }
33546
33547 3 => {
33548 ::fidl_next::wire::Envelope::decode_as::<
33549 ___D,
33550 ::fidl_next::wire::String<'de>,
33551 >(slot.as_mut(), decoder, 100)?;
33552
33553 let value = unsafe {
33554 slot.deref_unchecked()
33555 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33556 };
33557
33558 if value.len() > 100 {
33559 return Err(::fidl_next::DecodeError::VectorTooLong {
33560 size: value.len() as u64,
33561 limit: 100,
33562 });
33563 }
33564
33565 Ok(())
33566 }
33567
33568 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33569 }
33570 })
33571 }
33572 }
33573
33574 impl<'de> RunnerRegistration<'de> {
33575 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33576 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33577 }
33578
33579 pub fn take_source_name(
33580 &mut self,
33581 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33582 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
33583 }
33584
33585 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33586 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33587 }
33588
33589 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33590 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
33591 }
33592
33593 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33594 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33595 }
33596
33597 pub fn take_target_name(
33598 &mut self,
33599 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33600 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
33601 }
33602 }
33603
33604 impl<'de> ::core::fmt::Debug for RunnerRegistration<'de> {
33605 fn fmt(
33606 &self,
33607 f: &mut ::core::fmt::Formatter<'_>,
33608 ) -> ::core::result::Result<(), ::core::fmt::Error> {
33609 f.debug_struct("RunnerRegistration")
33610 .field("source_name", &self.source_name())
33611 .field("source", &self.source())
33612 .field("target_name", &self.target_name())
33613 .finish()
33614 }
33615 }
33616
33617 impl<'de> ::fidl_next::IntoNatural for RunnerRegistration<'de> {
33618 type Natural = crate::natural::RunnerRegistration;
33619 }
33620
33621 #[repr(C)]
33623 pub struct ResolverRegistration<'de> {
33624 pub(crate) table: ::fidl_next::wire::Table<'de>,
33625 }
33626
33627 impl<'de> Drop for ResolverRegistration<'de> {
33628 fn drop(&mut self) {
33629 let _ = self.table.get(1).map(|envelope| unsafe {
33630 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33631 });
33632
33633 let _ = self
33634 .table
33635 .get(2)
33636 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
33637
33638 let _ = self.table.get(3).map(|envelope| unsafe {
33639 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33640 });
33641 }
33642 }
33643
33644 impl ::fidl_next::Constrained for ResolverRegistration<'_> {
33645 type Constraint = ();
33646
33647 fn validate(
33648 _: ::fidl_next::Slot<'_, Self>,
33649 _: Self::Constraint,
33650 ) -> Result<(), ::fidl_next::ValidationError> {
33651 Ok(())
33652 }
33653 }
33654
33655 unsafe impl ::fidl_next::Wire for ResolverRegistration<'static> {
33656 type Narrowed<'de> = ResolverRegistration<'de>;
33657
33658 #[inline]
33659 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33660 ::fidl_next::munge!(let Self { table } = out);
33661 ::fidl_next::wire::Table::zero_padding(table);
33662 }
33663 }
33664
33665 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ResolverRegistration<'de>
33666 where
33667 ___D: ::fidl_next::Decoder<'de> + ?Sized,
33668 {
33669 fn decode(
33670 slot: ::fidl_next::Slot<'_, Self>,
33671 decoder: &mut ___D,
33672 _: (),
33673 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33674 ::fidl_next::munge!(let Self { table } = slot);
33675
33676 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33677 match ordinal {
33678 0 => unsafe { ::core::hint::unreachable_unchecked() },
33679
33680 1 => {
33681 ::fidl_next::wire::Envelope::decode_as::<
33682 ___D,
33683 ::fidl_next::wire::String<'de>,
33684 >(slot.as_mut(), decoder, 100)?;
33685
33686 let value = unsafe {
33687 slot.deref_unchecked()
33688 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33689 };
33690
33691 if value.len() > 100 {
33692 return Err(::fidl_next::DecodeError::VectorTooLong {
33693 size: value.len() as u64,
33694 limit: 100,
33695 });
33696 }
33697
33698 Ok(())
33699 }
33700
33701 2 => {
33702 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33703 slot.as_mut(),
33704 decoder,
33705 (),
33706 )?;
33707
33708 Ok(())
33709 }
33710
33711 3 => {
33712 ::fidl_next::wire::Envelope::decode_as::<
33713 ___D,
33714 ::fidl_next::wire::String<'de>,
33715 >(slot.as_mut(), decoder, 100)?;
33716
33717 let value = unsafe {
33718 slot.deref_unchecked()
33719 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33720 };
33721
33722 if value.len() > 100 {
33723 return Err(::fidl_next::DecodeError::VectorTooLong {
33724 size: value.len() as u64,
33725 limit: 100,
33726 });
33727 }
33728
33729 Ok(())
33730 }
33731
33732 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33733 }
33734 })
33735 }
33736 }
33737
33738 impl<'de> ResolverRegistration<'de> {
33739 pub fn resolver(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33740 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33741 }
33742
33743 pub fn take_resolver(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33744 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
33745 }
33746
33747 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33748 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33749 }
33750
33751 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33752 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
33753 }
33754
33755 pub fn scheme(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33756 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33757 }
33758
33759 pub fn take_scheme(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33760 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
33761 }
33762 }
33763
33764 impl<'de> ::core::fmt::Debug for ResolverRegistration<'de> {
33765 fn fmt(
33766 &self,
33767 f: &mut ::core::fmt::Formatter<'_>,
33768 ) -> ::core::result::Result<(), ::core::fmt::Error> {
33769 f.debug_struct("ResolverRegistration")
33770 .field("resolver", &self.resolver())
33771 .field("source", &self.source())
33772 .field("scheme", &self.scheme())
33773 .finish()
33774 }
33775 }
33776
33777 impl<'de> ::fidl_next::IntoNatural for ResolverRegistration<'de> {
33778 type Natural = crate::natural::ResolverRegistration;
33779 }
33780
33781 #[repr(C)]
33783 pub struct DebugProtocolRegistration<'de> {
33784 pub(crate) table: ::fidl_next::wire::Table<'de>,
33785 }
33786
33787 impl<'de> Drop for DebugProtocolRegistration<'de> {
33788 fn drop(&mut self) {
33789 let _ = self
33790 .table
33791 .get(1)
33792 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
33793
33794 let _ = self.table.get(2).map(|envelope| unsafe {
33795 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33796 });
33797
33798 let _ = self.table.get(3).map(|envelope| unsafe {
33799 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33800 });
33801 }
33802 }
33803
33804 impl ::fidl_next::Constrained for DebugProtocolRegistration<'_> {
33805 type Constraint = ();
33806
33807 fn validate(
33808 _: ::fidl_next::Slot<'_, Self>,
33809 _: Self::Constraint,
33810 ) -> Result<(), ::fidl_next::ValidationError> {
33811 Ok(())
33812 }
33813 }
33814
33815 unsafe impl ::fidl_next::Wire for DebugProtocolRegistration<'static> {
33816 type Narrowed<'de> = DebugProtocolRegistration<'de>;
33817
33818 #[inline]
33819 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33820 ::fidl_next::munge!(let Self { table } = out);
33821 ::fidl_next::wire::Table::zero_padding(table);
33822 }
33823 }
33824
33825 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugProtocolRegistration<'de>
33826 where
33827 ___D: ::fidl_next::Decoder<'de> + ?Sized,
33828 {
33829 fn decode(
33830 slot: ::fidl_next::Slot<'_, Self>,
33831 decoder: &mut ___D,
33832 _: (),
33833 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33834 ::fidl_next::munge!(let Self { table } = slot);
33835
33836 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33837 match ordinal {
33838 0 => unsafe { ::core::hint::unreachable_unchecked() },
33839
33840 1 => {
33841 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33842 slot.as_mut(),
33843 decoder,
33844 (),
33845 )?;
33846
33847 Ok(())
33848 }
33849
33850 2 => {
33851 ::fidl_next::wire::Envelope::decode_as::<
33852 ___D,
33853 ::fidl_next::wire::String<'de>,
33854 >(slot.as_mut(), decoder, 100)?;
33855
33856 let value = unsafe {
33857 slot.deref_unchecked()
33858 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33859 };
33860
33861 if value.len() > 100 {
33862 return Err(::fidl_next::DecodeError::VectorTooLong {
33863 size: value.len() as u64,
33864 limit: 100,
33865 });
33866 }
33867
33868 Ok(())
33869 }
33870
33871 3 => {
33872 ::fidl_next::wire::Envelope::decode_as::<
33873 ___D,
33874 ::fidl_next::wire::String<'de>,
33875 >(slot.as_mut(), decoder, 100)?;
33876
33877 let value = unsafe {
33878 slot.deref_unchecked()
33879 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33880 };
33881
33882 if value.len() > 100 {
33883 return Err(::fidl_next::DecodeError::VectorTooLong {
33884 size: value.len() as u64,
33885 limit: 100,
33886 });
33887 }
33888
33889 Ok(())
33890 }
33891
33892 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33893 }
33894 })
33895 }
33896 }
33897
33898 impl<'de> DebugProtocolRegistration<'de> {
33899 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33900 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33901 }
33902
33903 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33904 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
33905 }
33906
33907 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33908 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33909 }
33910
33911 pub fn take_source_name(
33912 &mut self,
33913 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33914 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
33915 }
33916
33917 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33918 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33919 }
33920
33921 pub fn take_target_name(
33922 &mut self,
33923 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33924 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
33925 }
33926 }
33927
33928 impl<'de> ::core::fmt::Debug for DebugProtocolRegistration<'de> {
33929 fn fmt(
33930 &self,
33931 f: &mut ::core::fmt::Formatter<'_>,
33932 ) -> ::core::result::Result<(), ::core::fmt::Error> {
33933 f.debug_struct("DebugProtocolRegistration")
33934 .field("source", &self.source())
33935 .field("source_name", &self.source_name())
33936 .field("target_name", &self.target_name())
33937 .finish()
33938 }
33939 }
33940
33941 impl<'de> ::fidl_next::IntoNatural for DebugProtocolRegistration<'de> {
33942 type Natural = crate::natural::DebugProtocolRegistration;
33943 }
33944
33945 #[repr(transparent)]
33947 pub struct DebugRegistration<'de> {
33948 pub(crate) raw: ::fidl_next::wire::Union,
33949 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
33950 }
33951
33952 impl<'de> Drop for DebugRegistration<'de> {
33953 fn drop(&mut self) {
33954 match self.raw.ordinal() {
33955 1 => {
33956 let _ = unsafe {
33957 self.raw
33958 .get()
33959 .read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
33960 };
33961 }
33962
33963 _ => (),
33964 }
33965 }
33966 }
33967
33968 impl ::fidl_next::Constrained for DebugRegistration<'_> {
33969 type Constraint = ();
33970
33971 fn validate(
33972 _: ::fidl_next::Slot<'_, Self>,
33973 _: Self::Constraint,
33974 ) -> Result<(), ::fidl_next::ValidationError> {
33975 Ok(())
33976 }
33977 }
33978
33979 unsafe impl ::fidl_next::Wire for DebugRegistration<'static> {
33980 type Narrowed<'de> = DebugRegistration<'de>;
33981
33982 #[inline]
33983 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33984 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
33985 ::fidl_next::wire::Union::zero_padding(raw);
33986 }
33987 }
33988
33989 pub mod debug_registration {
33990 pub enum Ref<'de> {
33991 Protocol(&'de crate::wire::DebugProtocolRegistration<'de>),
33992
33993 UnknownOrdinal_(u64),
33994 }
33995
33996 pub enum Value<'de> {
33997 Protocol(crate::wire::DebugProtocolRegistration<'de>),
33998
33999 UnknownOrdinal_(u64),
34000 }
34001 }
34002
34003 impl<'de> DebugRegistration<'de> {
34004 pub fn as_ref(&self) -> crate::wire::debug_registration::Ref<'_> {
34005 match self.raw.ordinal() {
34006 1 => crate::wire::debug_registration::Ref::Protocol(unsafe {
34007 self.raw.get().deref_unchecked::<crate::wire::DebugProtocolRegistration<'_>>()
34008 }),
34009
34010 unknown => crate::wire::debug_registration::Ref::UnknownOrdinal_(unknown),
34011 }
34012 }
34013
34014 pub fn into_inner(self) -> crate::wire::debug_registration::Value<'de> {
34015 let this = ::core::mem::ManuallyDrop::new(self);
34016
34017 match this.raw.ordinal() {
34018 1 => crate::wire::debug_registration::Value::Protocol(unsafe {
34019 this.raw.get().read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
34020 }),
34021
34022 unknown => crate::wire::debug_registration::Value::UnknownOrdinal_(unknown),
34023 }
34024 }
34025 }
34026
34027 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugRegistration<'de>
34028 where
34029 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34030 ___D: ::fidl_next::Decoder<'de>,
34031 {
34032 fn decode(
34033 mut slot: ::fidl_next::Slot<'_, Self>,
34034 decoder: &mut ___D,
34035 _: (),
34036 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34037 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34038 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
34039 1 => ::fidl_next::wire::Union::decode_as::<
34040 ___D,
34041 crate::wire::DebugProtocolRegistration<'de>,
34042 >(raw, decoder, ())?,
34043
34044 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
34045 }
34046
34047 Ok(())
34048 }
34049 }
34050
34051 impl<'de> ::core::fmt::Debug for DebugRegistration<'de> {
34052 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34053 match self.raw.ordinal() {
34054 1 => unsafe {
34055 self.raw
34056 .get()
34057 .deref_unchecked::<crate::wire::DebugProtocolRegistration<'_>>()
34058 .fmt(f)
34059 },
34060 _ => unsafe { ::core::hint::unreachable_unchecked() },
34061 }
34062 }
34063 }
34064
34065 impl<'de> ::fidl_next::IntoNatural for DebugRegistration<'de> {
34066 type Natural = crate::natural::DebugRegistration;
34067 }
34068
34069 #[repr(C)]
34071 pub struct Environment<'de> {
34072 pub(crate) table: ::fidl_next::wire::Table<'de>,
34073 }
34074
34075 impl<'de> Drop for Environment<'de> {
34076 fn drop(&mut self) {
34077 let _ = self.table.get(1).map(|envelope| unsafe {
34078 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
34079 });
34080
34081 let _ = self.table.get(2).map(|envelope| unsafe {
34082 envelope.read_unchecked::<crate::wire::EnvironmentExtends>()
34083 });
34084
34085 let _ = self.table.get(3)
34086 .map(|envelope| unsafe {
34087 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>>()
34088 });
34089
34090 let _ = self.table.get(4)
34091 .map(|envelope| unsafe {
34092 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>>()
34093 });
34094
34095 let _ = self.table.get(5)
34096 .map(|envelope| unsafe {
34097 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>>()
34098 });
34099
34100 let _ = self
34101 .table
34102 .get(6)
34103 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
34104 }
34105 }
34106
34107 impl ::fidl_next::Constrained for Environment<'_> {
34108 type Constraint = ();
34109
34110 fn validate(
34111 _: ::fidl_next::Slot<'_, Self>,
34112 _: Self::Constraint,
34113 ) -> Result<(), ::fidl_next::ValidationError> {
34114 Ok(())
34115 }
34116 }
34117
34118 unsafe impl ::fidl_next::Wire for Environment<'static> {
34119 type Narrowed<'de> = Environment<'de>;
34120
34121 #[inline]
34122 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34123 ::fidl_next::munge!(let Self { table } = out);
34124 ::fidl_next::wire::Table::zero_padding(table);
34125 }
34126 }
34127
34128 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Environment<'de>
34129 where
34130 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34131 {
34132 fn decode(
34133 slot: ::fidl_next::Slot<'_, Self>,
34134 decoder: &mut ___D,
34135 _: (),
34136 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34137 ::fidl_next::munge!(let Self { table } = slot);
34138
34139 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34140 match ordinal {
34141 0 => unsafe { ::core::hint::unreachable_unchecked() },
34142
34143 1 => {
34144 ::fidl_next::wire::Envelope::decode_as::<
34145 ___D,
34146 ::fidl_next::wire::String<'de>,
34147 >(slot.as_mut(), decoder, 100)?;
34148
34149 let value = unsafe {
34150 slot.deref_unchecked()
34151 .deref_unchecked::<::fidl_next::wire::String<'_>>()
34152 };
34153
34154 if value.len() > 100 {
34155 return Err(::fidl_next::DecodeError::VectorTooLong {
34156 size: value.len() as u64,
34157 limit: 100,
34158 });
34159 }
34160
34161 Ok(())
34162 }
34163
34164 2 => {
34165 ::fidl_next::wire::Envelope::decode_as::<
34166 ___D,
34167 crate::wire::EnvironmentExtends,
34168 >(slot.as_mut(), decoder, ())?;
34169
34170 Ok(())
34171 }
34172
34173 3 => {
34174 ::fidl_next::wire::Envelope::decode_as::<
34175 ___D,
34176 ::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>,
34177 >(slot.as_mut(), decoder, (4294967295, ()))?;
34178
34179 Ok(())
34180 }
34181
34182 4 => {
34183 ::fidl_next::wire::Envelope::decode_as::<
34184 ___D,
34185 ::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>,
34186 >(slot.as_mut(), decoder, (4294967295, ()))?;
34187
34188 Ok(())
34189 }
34190
34191 5 => {
34192 ::fidl_next::wire::Envelope::decode_as::<
34193 ___D,
34194 ::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>,
34195 >(slot.as_mut(), decoder, (4294967295, ()))?;
34196
34197 Ok(())
34198 }
34199
34200 6 => {
34201 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
34202 slot.as_mut(),
34203 decoder,
34204 (),
34205 )?;
34206
34207 Ok(())
34208 }
34209
34210 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34211 }
34212 })
34213 }
34214 }
34215
34216 impl<'de> Environment<'de> {
34217 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
34218 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
34219 }
34220
34221 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
34222 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
34223 }
34224
34225 pub fn extends(&self) -> ::core::option::Option<&crate::wire::EnvironmentExtends> {
34226 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
34227 }
34228
34229 pub fn take_extends(&mut self) -> ::core::option::Option<crate::wire::EnvironmentExtends> {
34230 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
34231 }
34232
34233 pub fn runners(
34234 &self,
34235 ) -> ::core::option::Option<
34236 &::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>,
34237 > {
34238 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
34239 }
34240
34241 pub fn take_runners(
34242 &mut self,
34243 ) -> ::core::option::Option<
34244 ::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>,
34245 > {
34246 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
34247 }
34248
34249 pub fn resolvers(
34250 &self,
34251 ) -> ::core::option::Option<
34252 &::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>,
34253 > {
34254 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
34255 }
34256
34257 pub fn take_resolvers(
34258 &mut self,
34259 ) -> ::core::option::Option<
34260 ::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>,
34261 > {
34262 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
34263 }
34264
34265 pub fn debug_capabilities(
34266 &self,
34267 ) -> ::core::option::Option<
34268 &::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>,
34269 > {
34270 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
34271 }
34272
34273 pub fn take_debug_capabilities(
34274 &mut self,
34275 ) -> ::core::option::Option<
34276 ::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>,
34277 > {
34278 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
34279 }
34280
34281 pub fn stop_timeout_ms(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
34282 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
34283 }
34284
34285 pub fn take_stop_timeout_ms(
34286 &mut self,
34287 ) -> ::core::option::Option<::fidl_next::wire::Uint32> {
34288 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
34289 }
34290 }
34291
34292 impl<'de> ::core::fmt::Debug for Environment<'de> {
34293 fn fmt(
34294 &self,
34295 f: &mut ::core::fmt::Formatter<'_>,
34296 ) -> ::core::result::Result<(), ::core::fmt::Error> {
34297 f.debug_struct("Environment")
34298 .field("name", &self.name())
34299 .field("extends", &self.extends())
34300 .field("runners", &self.runners())
34301 .field("resolvers", &self.resolvers())
34302 .field("debug_capabilities", &self.debug_capabilities())
34303 .field("stop_timeout_ms", &self.stop_timeout_ms())
34304 .finish()
34305 }
34306 }
34307
34308 impl<'de> ::fidl_next::IntoNatural for Environment<'de> {
34309 type Natural = crate::natural::Environment;
34310 }
34311
34312 #[repr(C)]
34314 pub struct ConfigSourceCapabilities<'de> {
34315 pub(crate) table: ::fidl_next::wire::Table<'de>,
34316 }
34317
34318 impl<'de> Drop for ConfigSourceCapabilities<'de> {
34319 fn drop(&mut self) {}
34320 }
34321
34322 impl ::fidl_next::Constrained for ConfigSourceCapabilities<'_> {
34323 type Constraint = ();
34324
34325 fn validate(
34326 _: ::fidl_next::Slot<'_, Self>,
34327 _: Self::Constraint,
34328 ) -> Result<(), ::fidl_next::ValidationError> {
34329 Ok(())
34330 }
34331 }
34332
34333 unsafe impl ::fidl_next::Wire for ConfigSourceCapabilities<'static> {
34334 type Narrowed<'de> = ConfigSourceCapabilities<'de>;
34335
34336 #[inline]
34337 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34338 ::fidl_next::munge!(let Self { table } = out);
34339 ::fidl_next::wire::Table::zero_padding(table);
34340 }
34341 }
34342
34343 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSourceCapabilities<'de>
34344 where
34345 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34346 {
34347 fn decode(
34348 slot: ::fidl_next::Slot<'_, Self>,
34349 decoder: &mut ___D,
34350 _: (),
34351 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34352 ::fidl_next::munge!(let Self { table } = slot);
34353
34354 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34355 match ordinal {
34356 0 => unsafe { ::core::hint::unreachable_unchecked() },
34357
34358 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34359 }
34360 })
34361 }
34362 }
34363
34364 impl<'de> ConfigSourceCapabilities<'de> {}
34365
34366 impl<'de> ::core::fmt::Debug for ConfigSourceCapabilities<'de> {
34367 fn fmt(
34368 &self,
34369 f: &mut ::core::fmt::Formatter<'_>,
34370 ) -> ::core::result::Result<(), ::core::fmt::Error> {
34371 f.debug_struct("ConfigSourceCapabilities").finish()
34372 }
34373 }
34374
34375 impl<'de> ::fidl_next::IntoNatural for ConfigSourceCapabilities<'de> {
34376 type Natural = crate::natural::ConfigSourceCapabilities;
34377 }
34378
34379 #[repr(transparent)]
34381 pub struct ConfigValueSource<'de> {
34382 pub(crate) raw: ::fidl_next::wire::Union,
34383 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34384 }
34385
34386 impl<'de> Drop for ConfigValueSource<'de> {
34387 fn drop(&mut self) {
34388 match self.raw.ordinal() {
34389 1 => {
34390 let _ = unsafe {
34391 self.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
34392 };
34393 }
34394
34395 2 => {
34396 let _ = unsafe {
34397 self.raw
34398 .get()
34399 .read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
34400 };
34401 }
34402
34403 _ => (),
34404 }
34405 }
34406 }
34407
34408 impl ::fidl_next::Constrained for ConfigValueSource<'_> {
34409 type Constraint = ();
34410
34411 fn validate(
34412 _: ::fidl_next::Slot<'_, Self>,
34413 _: Self::Constraint,
34414 ) -> Result<(), ::fidl_next::ValidationError> {
34415 Ok(())
34416 }
34417 }
34418
34419 unsafe impl ::fidl_next::Wire for ConfigValueSource<'static> {
34420 type Narrowed<'de> = ConfigValueSource<'de>;
34421
34422 #[inline]
34423 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34424 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34425 ::fidl_next::wire::Union::zero_padding(raw);
34426 }
34427 }
34428
34429 pub mod config_value_source {
34430 pub enum Ref<'de> {
34431 PackagePath(&'de ::fidl_next::wire::String<'de>),
34432
34433 Capabilities(&'de crate::wire::ConfigSourceCapabilities<'de>),
34434
34435 UnknownOrdinal_(u64),
34436 }
34437
34438 pub enum Value<'de> {
34439 PackagePath(::fidl_next::wire::String<'de>),
34440
34441 Capabilities(crate::wire::ConfigSourceCapabilities<'de>),
34442
34443 UnknownOrdinal_(u64),
34444 }
34445 }
34446
34447 impl<'de> ConfigValueSource<'de> {
34448 pub fn as_ref(&self) -> crate::wire::config_value_source::Ref<'_> {
34449 match self.raw.ordinal() {
34450 1 => crate::wire::config_value_source::Ref::PackagePath(unsafe {
34451 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>()
34452 }),
34453
34454 2 => crate::wire::config_value_source::Ref::Capabilities(unsafe {
34455 self.raw.get().deref_unchecked::<crate::wire::ConfigSourceCapabilities<'_>>()
34456 }),
34457
34458 unknown => crate::wire::config_value_source::Ref::UnknownOrdinal_(unknown),
34459 }
34460 }
34461
34462 pub fn into_inner(self) -> crate::wire::config_value_source::Value<'de> {
34463 let this = ::core::mem::ManuallyDrop::new(self);
34464
34465 match this.raw.ordinal() {
34466 1 => crate::wire::config_value_source::Value::PackagePath(unsafe {
34467 this.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
34468 }),
34469
34470 2 => crate::wire::config_value_source::Value::Capabilities(unsafe {
34471 this.raw.get().read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
34472 }),
34473
34474 unknown => crate::wire::config_value_source::Value::UnknownOrdinal_(unknown),
34475 }
34476 }
34477 }
34478
34479 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValueSource<'de>
34480 where
34481 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34482 ___D: ::fidl_next::Decoder<'de>,
34483 {
34484 fn decode(
34485 mut slot: ::fidl_next::Slot<'_, Self>,
34486 decoder: &mut ___D,
34487 _: (),
34488 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34489 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34490 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
34491 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
34492 raw, decoder, 4294967295,
34493 )?,
34494
34495 2 => ::fidl_next::wire::Union::decode_as::<
34496 ___D,
34497 crate::wire::ConfigSourceCapabilities<'de>,
34498 >(raw, decoder, ())?,
34499
34500 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
34501 }
34502
34503 Ok(())
34504 }
34505 }
34506
34507 impl<'de> ::core::fmt::Debug for ConfigValueSource<'de> {
34508 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34509 match self.raw.ordinal() {
34510 1 => unsafe {
34511 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>().fmt(f)
34512 },
34513 2 => unsafe {
34514 self.raw
34515 .get()
34516 .deref_unchecked::<crate::wire::ConfigSourceCapabilities<'_>>()
34517 .fmt(f)
34518 },
34519 _ => unsafe { ::core::hint::unreachable_unchecked() },
34520 }
34521 }
34522 }
34523
34524 impl<'de> ::fidl_next::IntoNatural for ConfigValueSource<'de> {
34525 type Natural = crate::natural::ConfigValueSource;
34526 }
34527
34528 #[repr(C)]
34530 pub struct ConfigSchema<'de> {
34531 pub(crate) table: ::fidl_next::wire::Table<'de>,
34532 }
34533
34534 impl<'de> Drop for ConfigSchema<'de> {
34535 fn drop(&mut self) {
34536 let _ = self.table.get(1)
34537 .map(|envelope| unsafe {
34538 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>()
34539 });
34540
34541 let _ = self.table.get(2).map(|envelope| unsafe {
34542 envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>()
34543 });
34544
34545 let _ = self.table.get(3).map(|envelope| unsafe {
34546 envelope.read_unchecked::<crate::wire::ConfigValueSource<'de>>()
34547 });
34548 }
34549 }
34550
34551 impl ::fidl_next::Constrained for ConfigSchema<'_> {
34552 type Constraint = ();
34553
34554 fn validate(
34555 _: ::fidl_next::Slot<'_, Self>,
34556 _: Self::Constraint,
34557 ) -> Result<(), ::fidl_next::ValidationError> {
34558 Ok(())
34559 }
34560 }
34561
34562 unsafe impl ::fidl_next::Wire for ConfigSchema<'static> {
34563 type Narrowed<'de> = ConfigSchema<'de>;
34564
34565 #[inline]
34566 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34567 ::fidl_next::munge!(let Self { table } = out);
34568 ::fidl_next::wire::Table::zero_padding(table);
34569 }
34570 }
34571
34572 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSchema<'de>
34573 where
34574 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34575 {
34576 fn decode(
34577 slot: ::fidl_next::Slot<'_, Self>,
34578 decoder: &mut ___D,
34579 _: (),
34580 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34581 ::fidl_next::munge!(let Self { table } = slot);
34582
34583 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34584 match ordinal {
34585 0 => unsafe { ::core::hint::unreachable_unchecked() },
34586
34587 1 => {
34588 ::fidl_next::wire::Envelope::decode_as::<
34589 ___D,
34590 ::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>,
34591 >(slot.as_mut(), decoder, (4294967295, ()))?;
34592
34593 Ok(())
34594 }
34595
34596 2 => {
34597 ::fidl_next::wire::Envelope::decode_as::<
34598 ___D,
34599 crate::wire::ConfigChecksum<'de>,
34600 >(slot.as_mut(), decoder, ())?;
34601
34602 Ok(())
34603 }
34604
34605 3 => {
34606 ::fidl_next::wire::Envelope::decode_as::<
34607 ___D,
34608 crate::wire::ConfigValueSource<'de>,
34609 >(slot.as_mut(), decoder, ())?;
34610
34611 Ok(())
34612 }
34613
34614 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34615 }
34616 })
34617 }
34618 }
34619
34620 impl<'de> ConfigSchema<'de> {
34621 pub fn fields(
34622 &self,
34623 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>
34624 {
34625 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
34626 }
34627
34628 pub fn take_fields(
34629 &mut self,
34630 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>
34631 {
34632 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
34633 }
34634
34635 pub fn checksum(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
34636 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
34637 }
34638
34639 pub fn take_checksum(
34640 &mut self,
34641 ) -> ::core::option::Option<crate::wire::ConfigChecksum<'de>> {
34642 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
34643 }
34644
34645 pub fn value_source(&self) -> ::core::option::Option<&crate::wire::ConfigValueSource<'de>> {
34646 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
34647 }
34648
34649 pub fn take_value_source(
34650 &mut self,
34651 ) -> ::core::option::Option<crate::wire::ConfigValueSource<'de>> {
34652 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
34653 }
34654 }
34655
34656 impl<'de> ::core::fmt::Debug for ConfigSchema<'de> {
34657 fn fmt(
34658 &self,
34659 f: &mut ::core::fmt::Formatter<'_>,
34660 ) -> ::core::result::Result<(), ::core::fmt::Error> {
34661 f.debug_struct("ConfigSchema")
34662 .field("fields", &self.fields())
34663 .field("checksum", &self.checksum())
34664 .field("value_source", &self.value_source())
34665 .finish()
34666 }
34667 }
34668
34669 impl<'de> ::fidl_next::IntoNatural for ConfigSchema<'de> {
34670 type Natural = crate::natural::ConfigSchema;
34671 }
34672
34673 #[repr(C)]
34675 pub struct Component<'de> {
34676 pub(crate) table: ::fidl_next::wire::Table<'de>,
34677 }
34678
34679 impl<'de> Drop for Component<'de> {
34680 fn drop(&mut self) {
34681 let _ = self
34682 .table
34683 .get(1)
34684 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Program<'de>>() });
34685
34686 let _ = self.table.get(2).map(|envelope| unsafe {
34687 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>()
34688 });
34689
34690 let _ = self.table.get(3).map(|envelope| unsafe {
34691 envelope
34692 .read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>()
34693 });
34694
34695 let _ = self.table.get(4).map(|envelope| unsafe {
34696 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>()
34697 });
34698
34699 let _ = self.table.get(5).map(|envelope| unsafe {
34700 envelope
34701 .read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>(
34702 )
34703 });
34704
34705 let _ = self.table.get(6).map(|envelope| unsafe {
34706 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>()
34707 });
34708
34709 let _ = self.table.get(7).map(|envelope| unsafe {
34710 envelope
34711 .read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>(
34712 )
34713 });
34714
34715 let _ = self.table.get(8)
34716 .map(|envelope| unsafe {
34717 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>()
34718 });
34719
34720 let _ = self.table.get(9).map(|envelope| unsafe {
34721 envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
34722 });
34723
34724 let _ = self.table.get(10).map(|envelope| unsafe {
34725 envelope.read_unchecked::<crate::wire::ConfigSchema<'de>>()
34726 });
34727
34728 let _ = self.table.get(11).map(|envelope| unsafe {
34729 envelope.read_unchecked::<crate::wire::DebugInfo<'de>>()
34730 });
34731 }
34732 }
34733
34734 impl ::fidl_next::Constrained for Component<'_> {
34735 type Constraint = ();
34736
34737 fn validate(
34738 _: ::fidl_next::Slot<'_, Self>,
34739 _: Self::Constraint,
34740 ) -> Result<(), ::fidl_next::ValidationError> {
34741 Ok(())
34742 }
34743 }
34744
34745 unsafe impl ::fidl_next::Wire for Component<'static> {
34746 type Narrowed<'de> = Component<'de>;
34747
34748 #[inline]
34749 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34750 ::fidl_next::munge!(let Self { table } = out);
34751 ::fidl_next::wire::Table::zero_padding(table);
34752 }
34753 }
34754
34755 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Component<'de>
34756 where
34757 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34758 {
34759 fn decode(
34760 slot: ::fidl_next::Slot<'_, Self>,
34761 decoder: &mut ___D,
34762 _: (),
34763 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34764 ::fidl_next::munge!(let Self { table } = slot);
34765
34766 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34767 match ordinal {
34768 0 => unsafe { ::core::hint::unreachable_unchecked() },
34769
34770 1 => {
34771 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Program<'de>>(
34772 slot.as_mut(),
34773 decoder,
34774 (),
34775 )?;
34776
34777 Ok(())
34778 }
34779
34780 2 => {
34781 ::fidl_next::wire::Envelope::decode_as::<
34782 ___D,
34783 ::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>,
34784 >(slot.as_mut(), decoder, (4294967295, ()))?;
34785
34786 Ok(())
34787 }
34788
34789 3 => {
34790 ::fidl_next::wire::Envelope::decode_as::<
34791 ___D,
34792 ::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>,
34793 >(slot.as_mut(), decoder, (4294967295, ()))?;
34794
34795 Ok(())
34796 }
34797
34798 4 => {
34799 ::fidl_next::wire::Envelope::decode_as::<
34800 ___D,
34801 ::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>,
34802 >(slot.as_mut(), decoder, (4294967295, ()))?;
34803
34804 Ok(())
34805 }
34806
34807 5 => {
34808 ::fidl_next::wire::Envelope::decode_as::<
34809 ___D,
34810 ::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>,
34811 >(slot.as_mut(), decoder, (4294967295, ()))?;
34812
34813 Ok(())
34814 }
34815
34816 6 => {
34817 ::fidl_next::wire::Envelope::decode_as::<
34818 ___D,
34819 ::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>,
34820 >(slot.as_mut(), decoder, (4294967295, ()))?;
34821
34822 Ok(())
34823 }
34824
34825 7 => {
34826 ::fidl_next::wire::Envelope::decode_as::<
34827 ___D,
34828 ::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>,
34829 >(slot.as_mut(), decoder, (4294967295, ()))?;
34830
34831 Ok(())
34832 }
34833
34834 8 => {
34835 ::fidl_next::wire::Envelope::decode_as::<
34836 ___D,
34837 ::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>,
34838 >(slot.as_mut(), decoder, (4294967295, ()))?;
34839
34840 Ok(())
34841 }
34842
34843 9 => {
34844 ::fidl_next::wire::Envelope::decode_as::<
34845 ___D,
34846 ::fidl_next_common_fuchsia_data::wire::Dictionary<'de>,
34847 >(slot.as_mut(), decoder, ())?;
34848
34849 Ok(())
34850 }
34851
34852 10 => {
34853 ::fidl_next::wire::Envelope::decode_as::<
34854 ___D,
34855 crate::wire::ConfigSchema<'de>,
34856 >(slot.as_mut(), decoder, ())?;
34857
34858 Ok(())
34859 }
34860
34861 11 => {
34862 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DebugInfo<'de>>(
34863 slot.as_mut(),
34864 decoder,
34865 (),
34866 )?;
34867
34868 Ok(())
34869 }
34870
34871 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34872 }
34873 })
34874 }
34875 }
34876
34877 impl<'de> Component<'de> {
34878 pub fn program(&self) -> ::core::option::Option<&crate::wire::Program<'de>> {
34879 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
34880 }
34881
34882 pub fn take_program(&mut self) -> ::core::option::Option<crate::wire::Program<'de>> {
34883 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
34884 }
34885
34886 pub fn uses(
34887 &self,
34888 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>
34889 {
34890 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
34891 }
34892
34893 pub fn take_uses(
34894 &mut self,
34895 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>> {
34896 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
34897 }
34898
34899 pub fn exposes(
34900 &self,
34901 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>
34902 {
34903 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
34904 }
34905
34906 pub fn take_exposes(
34907 &mut self,
34908 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>
34909 {
34910 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
34911 }
34912
34913 pub fn offers(
34914 &self,
34915 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>
34916 {
34917 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
34918 }
34919
34920 pub fn take_offers(
34921 &mut self,
34922 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>
34923 {
34924 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
34925 }
34926
34927 pub fn capabilities(
34928 &self,
34929 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>
34930 {
34931 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
34932 }
34933
34934 pub fn take_capabilities(
34935 &mut self,
34936 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>
34937 {
34938 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
34939 }
34940
34941 pub fn children(
34942 &self,
34943 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>
34944 {
34945 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
34946 }
34947
34948 pub fn take_children(
34949 &mut self,
34950 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>
34951 {
34952 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
34953 }
34954
34955 pub fn collections(
34956 &self,
34957 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>
34958 {
34959 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
34960 }
34961
34962 pub fn take_collections(
34963 &mut self,
34964 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>
34965 {
34966 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
34967 }
34968
34969 pub fn environments(
34970 &self,
34971 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>
34972 {
34973 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
34974 }
34975
34976 pub fn take_environments(
34977 &mut self,
34978 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>
34979 {
34980 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
34981 }
34982
34983 pub fn facets(
34984 &self,
34985 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
34986 {
34987 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
34988 }
34989
34990 pub fn take_facets(
34991 &mut self,
34992 ) -> ::core::option::Option<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
34993 {
34994 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
34995 }
34996
34997 pub fn config(&self) -> ::core::option::Option<&crate::wire::ConfigSchema<'de>> {
34998 unsafe { Some(self.table.get(10)?.deref_unchecked()) }
34999 }
35000
35001 pub fn take_config(&mut self) -> ::core::option::Option<crate::wire::ConfigSchema<'de>> {
35002 unsafe { Some(self.table.get_mut(10)?.take_unchecked()) }
35003 }
35004
35005 pub fn debug_info(&self) -> ::core::option::Option<&crate::wire::DebugInfo<'de>> {
35006 unsafe { Some(self.table.get(11)?.deref_unchecked()) }
35007 }
35008
35009 pub fn take_debug_info(&mut self) -> ::core::option::Option<crate::wire::DebugInfo<'de>> {
35010 unsafe { Some(self.table.get_mut(11)?.take_unchecked()) }
35011 }
35012 }
35013
35014 impl<'de> ::core::fmt::Debug for Component<'de> {
35015 fn fmt(
35016 &self,
35017 f: &mut ::core::fmt::Formatter<'_>,
35018 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35019 f.debug_struct("Component")
35020 .field("program", &self.program())
35021 .field("uses", &self.uses())
35022 .field("exposes", &self.exposes())
35023 .field("offers", &self.offers())
35024 .field("capabilities", &self.capabilities())
35025 .field("children", &self.children())
35026 .field("collections", &self.collections())
35027 .field("environments", &self.environments())
35028 .field("facets", &self.facets())
35029 .field("config", &self.config())
35030 .field("debug_info", &self.debug_info())
35031 .finish()
35032 }
35033 }
35034
35035 impl<'de> ::fidl_next::IntoNatural for Component<'de> {
35036 type Natural = crate::natural::Component;
35037 }
35038
35039 #[repr(C)]
35041 pub struct ConfigValueSpec<'de> {
35042 pub(crate) table: ::fidl_next::wire::Table<'de>,
35043 }
35044
35045 impl<'de> Drop for ConfigValueSpec<'de> {
35046 fn drop(&mut self) {
35047 let _ = self.table.get(1).map(|envelope| unsafe {
35048 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
35049 });
35050 }
35051 }
35052
35053 impl ::fidl_next::Constrained for ConfigValueSpec<'_> {
35054 type Constraint = ();
35055
35056 fn validate(
35057 _: ::fidl_next::Slot<'_, Self>,
35058 _: Self::Constraint,
35059 ) -> Result<(), ::fidl_next::ValidationError> {
35060 Ok(())
35061 }
35062 }
35063
35064 unsafe impl ::fidl_next::Wire for ConfigValueSpec<'static> {
35065 type Narrowed<'de> = ConfigValueSpec<'de>;
35066
35067 #[inline]
35068 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35069 ::fidl_next::munge!(let Self { table } = out);
35070 ::fidl_next::wire::Table::zero_padding(table);
35071 }
35072 }
35073
35074 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValueSpec<'de>
35075 where
35076 ___D: ::fidl_next::Decoder<'de> + ?Sized,
35077 {
35078 fn decode(
35079 slot: ::fidl_next::Slot<'_, Self>,
35080 decoder: &mut ___D,
35081 _: (),
35082 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35083 ::fidl_next::munge!(let Self { table } = slot);
35084
35085 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
35086 match ordinal {
35087 0 => unsafe { ::core::hint::unreachable_unchecked() },
35088
35089 1 => {
35090 ::fidl_next::wire::Envelope::decode_as::<
35091 ___D,
35092 crate::wire::ConfigValue<'de>,
35093 >(slot.as_mut(), decoder, ())?;
35094
35095 Ok(())
35096 }
35097
35098 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
35099 }
35100 })
35101 }
35102 }
35103
35104 impl<'de> ConfigValueSpec<'de> {
35105 pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
35106 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
35107 }
35108
35109 pub fn take_value(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
35110 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
35111 }
35112 }
35113
35114 impl<'de> ::core::fmt::Debug for ConfigValueSpec<'de> {
35115 fn fmt(
35116 &self,
35117 f: &mut ::core::fmt::Formatter<'_>,
35118 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35119 f.debug_struct("ConfigValueSpec").field("value", &self.value()).finish()
35120 }
35121 }
35122
35123 impl<'de> ::fidl_next::IntoNatural for ConfigValueSpec<'de> {
35124 type Natural = crate::natural::ConfigValueSpec;
35125 }
35126
35127 #[repr(C)]
35129 pub struct ConfigValuesData<'de> {
35130 pub(crate) table: ::fidl_next::wire::Table<'de>,
35131 }
35132
35133 impl<'de> Drop for ConfigValuesData<'de> {
35134 fn drop(&mut self) {
35135 let _ = self.table.get(1)
35136 .map(|envelope| unsafe {
35137 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>()
35138 });
35139
35140 let _ = self.table.get(2).map(|envelope| unsafe {
35141 envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>()
35142 });
35143 }
35144 }
35145
35146 impl ::fidl_next::Constrained for ConfigValuesData<'_> {
35147 type Constraint = ();
35148
35149 fn validate(
35150 _: ::fidl_next::Slot<'_, Self>,
35151 _: Self::Constraint,
35152 ) -> Result<(), ::fidl_next::ValidationError> {
35153 Ok(())
35154 }
35155 }
35156
35157 unsafe impl ::fidl_next::Wire for ConfigValuesData<'static> {
35158 type Narrowed<'de> = ConfigValuesData<'de>;
35159
35160 #[inline]
35161 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35162 ::fidl_next::munge!(let Self { table } = out);
35163 ::fidl_next::wire::Table::zero_padding(table);
35164 }
35165 }
35166
35167 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValuesData<'de>
35168 where
35169 ___D: ::fidl_next::Decoder<'de> + ?Sized,
35170 {
35171 fn decode(
35172 slot: ::fidl_next::Slot<'_, Self>,
35173 decoder: &mut ___D,
35174 _: (),
35175 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35176 ::fidl_next::munge!(let Self { table } = slot);
35177
35178 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
35179 match ordinal {
35180 0 => unsafe { ::core::hint::unreachable_unchecked() },
35181
35182 1 => {
35183 ::fidl_next::wire::Envelope::decode_as::<
35184 ___D,
35185 ::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>,
35186 >(slot.as_mut(), decoder, (4294967295, ()))?;
35187
35188 Ok(())
35189 }
35190
35191 2 => {
35192 ::fidl_next::wire::Envelope::decode_as::<
35193 ___D,
35194 crate::wire::ConfigChecksum<'de>,
35195 >(slot.as_mut(), decoder, ())?;
35196
35197 Ok(())
35198 }
35199
35200 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
35201 }
35202 })
35203 }
35204 }
35205
35206 impl<'de> ConfigValuesData<'de> {
35207 pub fn values(
35208 &self,
35209 ) -> ::core::option::Option<
35210 &::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>,
35211 > {
35212 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
35213 }
35214
35215 pub fn take_values(
35216 &mut self,
35217 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>
35218 {
35219 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
35220 }
35221
35222 pub fn checksum(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
35223 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
35224 }
35225
35226 pub fn take_checksum(
35227 &mut self,
35228 ) -> ::core::option::Option<crate::wire::ConfigChecksum<'de>> {
35229 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
35230 }
35231 }
35232
35233 impl<'de> ::core::fmt::Debug for ConfigValuesData<'de> {
35234 fn fmt(
35235 &self,
35236 f: &mut ::core::fmt::Formatter<'_>,
35237 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35238 f.debug_struct("ConfigValuesData")
35239 .field("values", &self.values())
35240 .field("checksum", &self.checksum())
35241 .finish()
35242 }
35243 }
35244
35245 impl<'de> ::fidl_next::IntoNatural for ConfigValuesData<'de> {
35246 type Natural = crate::natural::ConfigValuesData;
35247 }
35248
35249 #[repr(C)]
35251 pub struct EventSubscription<'de> {
35252 pub(crate) table: ::fidl_next::wire::Table<'de>,
35253 }
35254
35255 impl<'de> Drop for EventSubscription<'de> {
35256 fn drop(&mut self) {
35257 let _ = self.table.get(1).map(|envelope| unsafe {
35258 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
35259 });
35260 }
35261 }
35262
35263 impl ::fidl_next::Constrained for EventSubscription<'_> {
35264 type Constraint = ();
35265
35266 fn validate(
35267 _: ::fidl_next::Slot<'_, Self>,
35268 _: Self::Constraint,
35269 ) -> Result<(), ::fidl_next::ValidationError> {
35270 Ok(())
35271 }
35272 }
35273
35274 unsafe impl ::fidl_next::Wire for EventSubscription<'static> {
35275 type Narrowed<'de> = EventSubscription<'de>;
35276
35277 #[inline]
35278 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35279 ::fidl_next::munge!(let Self { table } = out);
35280 ::fidl_next::wire::Table::zero_padding(table);
35281 }
35282 }
35283
35284 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for EventSubscription<'de>
35285 where
35286 ___D: ::fidl_next::Decoder<'de> + ?Sized,
35287 {
35288 fn decode(
35289 slot: ::fidl_next::Slot<'_, Self>,
35290 decoder: &mut ___D,
35291 _: (),
35292 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35293 ::fidl_next::munge!(let Self { table } = slot);
35294
35295 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
35296 match ordinal {
35297 0 => unsafe { ::core::hint::unreachable_unchecked() },
35298
35299 1 => {
35300 ::fidl_next::wire::Envelope::decode_as::<
35301 ___D,
35302 ::fidl_next::wire::String<'de>,
35303 >(slot.as_mut(), decoder, 100)?;
35304
35305 let value = unsafe {
35306 slot.deref_unchecked()
35307 .deref_unchecked::<::fidl_next::wire::String<'_>>()
35308 };
35309
35310 if value.len() > 100 {
35311 return Err(::fidl_next::DecodeError::VectorTooLong {
35312 size: value.len() as u64,
35313 limit: 100,
35314 });
35315 }
35316
35317 Ok(())
35318 }
35319
35320 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
35321 }
35322 })
35323 }
35324 }
35325
35326 impl<'de> EventSubscription<'de> {
35327 pub fn event_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
35328 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
35329 }
35330
35331 pub fn take_event_name(
35332 &mut self,
35333 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
35334 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
35335 }
35336 }
35337
35338 impl<'de> ::core::fmt::Debug for EventSubscription<'de> {
35339 fn fmt(
35340 &self,
35341 f: &mut ::core::fmt::Formatter<'_>,
35342 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35343 f.debug_struct("EventSubscription").field("event_name", &self.event_name()).finish()
35344 }
35345 }
35346
35347 impl<'de> ::fidl_next::IntoNatural for EventSubscription<'de> {
35348 type Natural = crate::natural::EventSubscription;
35349 }
35350
35351 #[repr(transparent)]
35353 pub struct LayoutParameter<'de> {
35354 pub(crate) raw: ::fidl_next::wire::Union,
35355 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35356 }
35357
35358 impl<'de> Drop for LayoutParameter<'de> {
35359 fn drop(&mut self) {
35360 match self.raw.ordinal() {
35361 1 => {
35362 let _ =
35363 unsafe { self.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>() };
35364 }
35365
35366 _ => (),
35367 }
35368 }
35369 }
35370
35371 impl ::fidl_next::Constrained for LayoutParameter<'_> {
35372 type Constraint = ();
35373
35374 fn validate(
35375 _: ::fidl_next::Slot<'_, Self>,
35376 _: Self::Constraint,
35377 ) -> Result<(), ::fidl_next::ValidationError> {
35378 Ok(())
35379 }
35380 }
35381
35382 unsafe impl ::fidl_next::Wire for LayoutParameter<'static> {
35383 type Narrowed<'de> = LayoutParameter<'de>;
35384
35385 #[inline]
35386 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35387 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35388 ::fidl_next::wire::Union::zero_padding(raw);
35389 }
35390 }
35391
35392 pub mod layout_parameter {
35393 pub enum Ref<'de> {
35394 NestedType(&'de crate::wire::ConfigType<'de>),
35395
35396 UnknownOrdinal_(u64),
35397 }
35398
35399 pub enum Value<'de> {
35400 NestedType(crate::wire::ConfigType<'de>),
35401
35402 UnknownOrdinal_(u64),
35403 }
35404 }
35405
35406 impl<'de> LayoutParameter<'de> {
35407 pub fn as_ref(&self) -> crate::wire::layout_parameter::Ref<'_> {
35408 match self.raw.ordinal() {
35409 1 => crate::wire::layout_parameter::Ref::NestedType(unsafe {
35410 self.raw.get().deref_unchecked::<crate::wire::ConfigType<'_>>()
35411 }),
35412
35413 unknown => crate::wire::layout_parameter::Ref::UnknownOrdinal_(unknown),
35414 }
35415 }
35416
35417 pub fn into_inner(self) -> crate::wire::layout_parameter::Value<'de> {
35418 let this = ::core::mem::ManuallyDrop::new(self);
35419
35420 match this.raw.ordinal() {
35421 1 => crate::wire::layout_parameter::Value::NestedType(unsafe {
35422 this.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>()
35423 }),
35424
35425 unknown => crate::wire::layout_parameter::Value::UnknownOrdinal_(unknown),
35426 }
35427 }
35428 }
35429
35430 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutParameter<'de>
35431 where
35432 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35433 ___D: ::fidl_next::Decoder<'de>,
35434 {
35435 fn decode(
35436 mut slot: ::fidl_next::Slot<'_, Self>,
35437 decoder: &mut ___D,
35438 _: (),
35439 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35440 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35441 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
35442 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ConfigType<'de>>(
35443 raw,
35444 decoder,
35445 (),
35446 )?,
35447
35448 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
35449 }
35450
35451 Ok(())
35452 }
35453 }
35454
35455 impl<'de> ::core::fmt::Debug for LayoutParameter<'de> {
35456 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35457 match self.raw.ordinal() {
35458 1 => unsafe {
35459 self.raw.get().deref_unchecked::<crate::wire::ConfigType<'_>>().fmt(f)
35460 },
35461 _ => unsafe { ::core::hint::unreachable_unchecked() },
35462 }
35463 }
35464 }
35465
35466 impl<'de> ::fidl_next::IntoNatural for LayoutParameter<'de> {
35467 type Natural = crate::natural::LayoutParameter;
35468 }
35469
35470 #[derive(Debug)]
35472 #[repr(C)]
35473 pub struct ResolvedConfigField<'de> {
35474 pub key: ::fidl_next::wire::String<'de>,
35475
35476 pub value: crate::wire::ConfigValue<'de>,
35477 }
35478
35479 static_assertions::const_assert_eq!(std::mem::size_of::<ResolvedConfigField<'_>>(), 32);
35480 static_assertions::const_assert_eq!(std::mem::align_of::<ResolvedConfigField<'_>>(), 8);
35481
35482 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfigField<'_>, key), 0);
35483
35484 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfigField<'_>, value), 16);
35485
35486 impl ::fidl_next::Constrained for ResolvedConfigField<'_> {
35487 type Constraint = ();
35488
35489 fn validate(
35490 _: ::fidl_next::Slot<'_, Self>,
35491 _: Self::Constraint,
35492 ) -> Result<(), ::fidl_next::ValidationError> {
35493 Ok(())
35494 }
35495 }
35496
35497 unsafe impl ::fidl_next::Wire for ResolvedConfigField<'static> {
35498 type Narrowed<'de> = ResolvedConfigField<'de>;
35499
35500 #[inline]
35501 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
35502 ::fidl_next::munge! {
35503 let Self {
35504 key,
35505 value,
35506
35507 } = &mut *out_;
35508 }
35509
35510 ::fidl_next::Wire::zero_padding(key);
35511
35512 ::fidl_next::Wire::zero_padding(value);
35513 }
35514 }
35515
35516 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ResolvedConfigField<'de>
35517 where
35518 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35519 ___D: ::fidl_next::Decoder<'de>,
35520 {
35521 fn decode(
35522 slot_: ::fidl_next::Slot<'_, Self>,
35523 decoder_: &mut ___D,
35524 _: (),
35525 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35526 ::fidl_next::munge! {
35527 let Self {
35528 mut key,
35529 mut value,
35530
35531 } = slot_;
35532 }
35533
35534 let _field = key.as_mut();
35535 ::fidl_next::Constrained::validate(_field, 4294967295)?;
35536 ::fidl_next::Decode::decode(key.as_mut(), decoder_, 4294967295)?;
35537
35538 let _field = value.as_mut();
35539
35540 ::fidl_next::Decode::decode(value.as_mut(), decoder_, ())?;
35541
35542 Ok(())
35543 }
35544 }
35545
35546 impl<'de> ::fidl_next::IntoNatural for ResolvedConfigField<'de> {
35547 type Natural = crate::natural::ResolvedConfigField;
35548 }
35549
35550 #[derive(Debug)]
35552 #[repr(C)]
35553 pub struct ResolvedConfig<'de> {
35554 pub fields: ::fidl_next::wire::Vector<'de, crate::wire::ResolvedConfigField<'de>>,
35555
35556 pub checksum: crate::wire::ConfigChecksum<'de>,
35557 }
35558
35559 static_assertions::const_assert_eq!(std::mem::size_of::<ResolvedConfig<'_>>(), 32);
35560 static_assertions::const_assert_eq!(std::mem::align_of::<ResolvedConfig<'_>>(), 8);
35561
35562 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfig<'_>, fields), 0);
35563
35564 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfig<'_>, checksum), 16);
35565
35566 impl ::fidl_next::Constrained for ResolvedConfig<'_> {
35567 type Constraint = ();
35568
35569 fn validate(
35570 _: ::fidl_next::Slot<'_, Self>,
35571 _: Self::Constraint,
35572 ) -> Result<(), ::fidl_next::ValidationError> {
35573 Ok(())
35574 }
35575 }
35576
35577 unsafe impl ::fidl_next::Wire for ResolvedConfig<'static> {
35578 type Narrowed<'de> = ResolvedConfig<'de>;
35579
35580 #[inline]
35581 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
35582 ::fidl_next::munge! {
35583 let Self {
35584 fields,
35585 checksum,
35586
35587 } = &mut *out_;
35588 }
35589
35590 ::fidl_next::Wire::zero_padding(fields);
35591
35592 ::fidl_next::Wire::zero_padding(checksum);
35593 }
35594 }
35595
35596 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ResolvedConfig<'de>
35597 where
35598 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35599 ___D: ::fidl_next::Decoder<'de>,
35600 {
35601 fn decode(
35602 slot_: ::fidl_next::Slot<'_, Self>,
35603 decoder_: &mut ___D,
35604 _: (),
35605 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35606 ::fidl_next::munge! {
35607 let Self {
35608 mut fields,
35609 mut checksum,
35610
35611 } = slot_;
35612 }
35613
35614 let _field = fields.as_mut();
35615 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
35616 ::fidl_next::Decode::decode(fields.as_mut(), decoder_, (4294967295, ()))?;
35617
35618 let _field = checksum.as_mut();
35619
35620 ::fidl_next::Decode::decode(checksum.as_mut(), decoder_, ())?;
35621
35622 Ok(())
35623 }
35624 }
35625
35626 impl<'de> ::fidl_next::IntoNatural for ResolvedConfig<'de> {
35627 type Natural = crate::natural::ResolvedConfig;
35628 }
35629}
35630
35631pub mod wire_optional {
35632
35633 #[repr(transparent)]
35634 pub struct ConfigSingleValue<'de> {
35635 pub(crate) raw: ::fidl_next::wire::Union,
35636 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35637 }
35638
35639 impl ::fidl_next::Constrained for ConfigSingleValue<'_> {
35640 type Constraint = ();
35641
35642 fn validate(
35643 _: ::fidl_next::Slot<'_, Self>,
35644 _: Self::Constraint,
35645 ) -> Result<(), ::fidl_next::ValidationError> {
35646 Ok(())
35647 }
35648 }
35649
35650 unsafe impl ::fidl_next::Wire for ConfigSingleValue<'static> {
35651 type Narrowed<'de> = ConfigSingleValue<'de>;
35652
35653 #[inline]
35654 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35655 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35656 ::fidl_next::wire::Union::zero_padding(raw);
35657 }
35658 }
35659
35660 impl<'de> ConfigSingleValue<'de> {
35661 pub fn is_some(&self) -> bool {
35662 self.raw.is_some()
35663 }
35664
35665 pub fn is_none(&self) -> bool {
35666 self.raw.is_none()
35667 }
35668
35669 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigSingleValue<'de>> {
35670 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35671 }
35672
35673 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigSingleValue<'de>> {
35674 if self.is_some() {
35675 Some(crate::wire::ConfigSingleValue {
35676 raw: self.raw,
35677 _phantom: ::core::marker::PhantomData,
35678 })
35679 } else {
35680 None
35681 }
35682 }
35683 }
35684
35685 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSingleValue<'de>
35686 where
35687 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35688 ___D: ::fidl_next::Decoder<'de>,
35689 {
35690 fn decode(
35691 mut slot: ::fidl_next::Slot<'_, Self>,
35692 decoder: &mut ___D,
35693 _: (),
35694 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35695 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35696 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
35697 1 => ::fidl_next::wire::Union::decode_as::<___D, bool>(raw, decoder, ())?,
35698
35699 2 => ::fidl_next::wire::Union::decode_as::<___D, u8>(raw, decoder, ())?,
35700
35701 3 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint16>(
35702 raw,
35703 decoder,
35704 (),
35705 )?,
35706
35707 4 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
35708 raw,
35709 decoder,
35710 (),
35711 )?,
35712
35713 5 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint64>(
35714 raw,
35715 decoder,
35716 (),
35717 )?,
35718
35719 6 => ::fidl_next::wire::Union::decode_as::<___D, i8>(raw, decoder, ())?,
35720
35721 7 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int16>(
35722 raw,
35723 decoder,
35724 (),
35725 )?,
35726
35727 8 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int32>(
35728 raw,
35729 decoder,
35730 (),
35731 )?,
35732
35733 9 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int64>(
35734 raw,
35735 decoder,
35736 (),
35737 )?,
35738
35739 10 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
35740 raw, decoder, 4294967295,
35741 )?,
35742
35743 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
35744 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
35745 }
35746
35747 Ok(())
35748 }
35749 }
35750
35751 impl<'de> ::core::fmt::Debug for ConfigSingleValue<'de> {
35752 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35753 self.as_ref().fmt(f)
35754 }
35755 }
35756
35757 impl<'de> ::fidl_next::IntoNatural for ConfigSingleValue<'de> {
35758 type Natural = ::core::option::Option<crate::natural::ConfigSingleValue>;
35759 }
35760
35761 #[repr(transparent)]
35762 pub struct ConfigVectorValue<'de> {
35763 pub(crate) raw: ::fidl_next::wire::Union,
35764 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35765 }
35766
35767 impl ::fidl_next::Constrained for ConfigVectorValue<'_> {
35768 type Constraint = ();
35769
35770 fn validate(
35771 _: ::fidl_next::Slot<'_, Self>,
35772 _: Self::Constraint,
35773 ) -> Result<(), ::fidl_next::ValidationError> {
35774 Ok(())
35775 }
35776 }
35777
35778 unsafe impl ::fidl_next::Wire for ConfigVectorValue<'static> {
35779 type Narrowed<'de> = ConfigVectorValue<'de>;
35780
35781 #[inline]
35782 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35783 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35784 ::fidl_next::wire::Union::zero_padding(raw);
35785 }
35786 }
35787
35788 impl<'de> ConfigVectorValue<'de> {
35789 pub fn is_some(&self) -> bool {
35790 self.raw.is_some()
35791 }
35792
35793 pub fn is_none(&self) -> bool {
35794 self.raw.is_none()
35795 }
35796
35797 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigVectorValue<'de>> {
35798 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35799 }
35800
35801 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigVectorValue<'de>> {
35802 if self.is_some() {
35803 Some(crate::wire::ConfigVectorValue {
35804 raw: self.raw,
35805 _phantom: ::core::marker::PhantomData,
35806 })
35807 } else {
35808 None
35809 }
35810 }
35811 }
35812
35813 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigVectorValue<'de>
35814 where
35815 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35816 ___D: ::fidl_next::Decoder<'de>,
35817 {
35818 fn decode(
35819 mut slot: ::fidl_next::Slot<'_, Self>,
35820 decoder: &mut ___D,
35821 _: (),
35822 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35823 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35824 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
35825 1 => ::fidl_next::wire::Union::decode_as::<
35826 ___D,
35827 ::fidl_next::wire::Vector<'de, bool>,
35828 >(raw, decoder, (4294967295, ()))?,
35829
35830 2 => {
35831 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
35832 raw,
35833 decoder,
35834 (4294967295, ()),
35835 )?
35836 }
35837
35838 3 => ::fidl_next::wire::Union::decode_as::<
35839 ___D,
35840 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>,
35841 >(raw, decoder, (4294967295, ()))?,
35842
35843 4 => ::fidl_next::wire::Union::decode_as::<
35844 ___D,
35845 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>,
35846 >(raw, decoder, (4294967295, ()))?,
35847
35848 5 => ::fidl_next::wire::Union::decode_as::<
35849 ___D,
35850 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>,
35851 >(raw, decoder, (4294967295, ()))?,
35852
35853 6 => {
35854 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, i8>>(
35855 raw,
35856 decoder,
35857 (4294967295, ()),
35858 )?
35859 }
35860
35861 7 => ::fidl_next::wire::Union::decode_as::<
35862 ___D,
35863 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>,
35864 >(raw, decoder, (4294967295, ()))?,
35865
35866 8 => ::fidl_next::wire::Union::decode_as::<
35867 ___D,
35868 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>,
35869 >(raw, decoder, (4294967295, ()))?,
35870
35871 9 => ::fidl_next::wire::Union::decode_as::<
35872 ___D,
35873 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>,
35874 >(raw, decoder, (4294967295, ()))?,
35875
35876 10 => ::fidl_next::wire::Union::decode_as::<
35877 ___D,
35878 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
35879 >(raw, decoder, (4294967295, 4294967295))?,
35880
35881 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
35882 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
35883 }
35884
35885 Ok(())
35886 }
35887 }
35888
35889 impl<'de> ::core::fmt::Debug for ConfigVectorValue<'de> {
35890 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35891 self.as_ref().fmt(f)
35892 }
35893 }
35894
35895 impl<'de> ::fidl_next::IntoNatural for ConfigVectorValue<'de> {
35896 type Natural = ::core::option::Option<crate::natural::ConfigVectorValue>;
35897 }
35898
35899 #[repr(transparent)]
35900 pub struct ConfigValue<'de> {
35901 pub(crate) raw: ::fidl_next::wire::Union,
35902 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35903 }
35904
35905 impl ::fidl_next::Constrained for ConfigValue<'_> {
35906 type Constraint = ();
35907
35908 fn validate(
35909 _: ::fidl_next::Slot<'_, Self>,
35910 _: Self::Constraint,
35911 ) -> Result<(), ::fidl_next::ValidationError> {
35912 Ok(())
35913 }
35914 }
35915
35916 unsafe impl ::fidl_next::Wire for ConfigValue<'static> {
35917 type Narrowed<'de> = ConfigValue<'de>;
35918
35919 #[inline]
35920 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35921 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35922 ::fidl_next::wire::Union::zero_padding(raw);
35923 }
35924 }
35925
35926 impl<'de> ConfigValue<'de> {
35927 pub fn is_some(&self) -> bool {
35928 self.raw.is_some()
35929 }
35930
35931 pub fn is_none(&self) -> bool {
35932 self.raw.is_none()
35933 }
35934
35935 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
35936 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35937 }
35938
35939 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
35940 if self.is_some() {
35941 Some(crate::wire::ConfigValue {
35942 raw: self.raw,
35943 _phantom: ::core::marker::PhantomData,
35944 })
35945 } else {
35946 None
35947 }
35948 }
35949 }
35950
35951 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValue<'de>
35952 where
35953 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35954 ___D: ::fidl_next::Decoder<'de>,
35955 {
35956 fn decode(
35957 mut slot: ::fidl_next::Slot<'_, Self>,
35958 decoder: &mut ___D,
35959 _: (),
35960 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35961 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35962 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
35963 1 => ::fidl_next::wire::Union::decode_as::<
35964 ___D,
35965 crate::wire::ConfigSingleValue<'de>,
35966 >(raw, decoder, ())?,
35967
35968 2 => ::fidl_next::wire::Union::decode_as::<
35969 ___D,
35970 crate::wire::ConfigVectorValue<'de>,
35971 >(raw, decoder, ())?,
35972
35973 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
35974 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
35975 }
35976
35977 Ok(())
35978 }
35979 }
35980
35981 impl<'de> ::core::fmt::Debug for ConfigValue<'de> {
35982 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35983 self.as_ref().fmt(f)
35984 }
35985 }
35986
35987 impl<'de> ::fidl_next::IntoNatural for ConfigValue<'de> {
35988 type Natural = ::core::option::Option<crate::natural::ConfigValue>;
35989 }
35990
35991 #[repr(transparent)]
35992 pub struct Ref<'de> {
35993 pub(crate) raw: ::fidl_next::wire::Union,
35994 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35995 }
35996
35997 impl ::fidl_next::Constrained for Ref<'_> {
35998 type Constraint = ();
35999
36000 fn validate(
36001 _: ::fidl_next::Slot<'_, Self>,
36002 _: Self::Constraint,
36003 ) -> Result<(), ::fidl_next::ValidationError> {
36004 Ok(())
36005 }
36006 }
36007
36008 unsafe impl ::fidl_next::Wire for Ref<'static> {
36009 type Narrowed<'de> = Ref<'de>;
36010
36011 #[inline]
36012 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36013 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36014 ::fidl_next::wire::Union::zero_padding(raw);
36015 }
36016 }
36017
36018 impl<'de> Ref<'de> {
36019 pub fn is_some(&self) -> bool {
36020 self.raw.is_some()
36021 }
36022
36023 pub fn is_none(&self) -> bool {
36024 self.raw.is_none()
36025 }
36026
36027 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
36028 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36029 }
36030
36031 pub fn into_option(self) -> ::core::option::Option<crate::wire::Ref<'de>> {
36032 if self.is_some() {
36033 Some(crate::wire::Ref { raw: self.raw, _phantom: ::core::marker::PhantomData })
36034 } else {
36035 None
36036 }
36037 }
36038 }
36039
36040 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Ref<'de>
36041 where
36042 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36043 ___D: ::fidl_next::Decoder<'de>,
36044 {
36045 fn decode(
36046 mut slot: ::fidl_next::Slot<'_, Self>,
36047 decoder: &mut ___D,
36048 _: (),
36049 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36050 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36051 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36052 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ParentRef>(
36053 raw,
36054 decoder,
36055 (),
36056 )?,
36057
36058 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::SelfRef>(
36059 raw,
36060 decoder,
36061 (),
36062 )?,
36063
36064 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ChildRef<'de>>(
36065 raw,
36066 decoder,
36067 (),
36068 )?,
36069
36070 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CollectionRef<'de>>(
36071 raw,
36072 decoder,
36073 (),
36074 )?,
36075
36076 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::FrameworkRef>(
36077 raw,
36078 decoder,
36079 (),
36080 )?,
36081
36082 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CapabilityRef<'de>>(
36083 raw,
36084 decoder,
36085 (),
36086 )?,
36087
36088 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::DebugRef>(
36089 raw,
36090 decoder,
36091 (),
36092 )?,
36093
36094 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::VoidRef>(
36095 raw,
36096 decoder,
36097 (),
36098 )?,
36099
36100 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EnvironmentRef>(
36101 raw,
36102 decoder,
36103 (),
36104 )?,
36105
36106 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36107 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36108 }
36109
36110 Ok(())
36111 }
36112 }
36113
36114 impl<'de> ::core::fmt::Debug for Ref<'de> {
36115 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36116 self.as_ref().fmt(f)
36117 }
36118 }
36119
36120 impl<'de> ::fidl_next::IntoNatural for Ref<'de> {
36121 type Natural = ::core::option::Option<crate::natural::Ref>;
36122 }
36123
36124 #[repr(transparent)]
36125 pub struct Capability<'de> {
36126 pub(crate) raw: ::fidl_next::wire::Union,
36127 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36128 }
36129
36130 impl ::fidl_next::Constrained for Capability<'_> {
36131 type Constraint = ();
36132
36133 fn validate(
36134 _: ::fidl_next::Slot<'_, Self>,
36135 _: Self::Constraint,
36136 ) -> Result<(), ::fidl_next::ValidationError> {
36137 Ok(())
36138 }
36139 }
36140
36141 unsafe impl ::fidl_next::Wire for Capability<'static> {
36142 type Narrowed<'de> = Capability<'de>;
36143
36144 #[inline]
36145 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36146 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36147 ::fidl_next::wire::Union::zero_padding(raw);
36148 }
36149 }
36150
36151 impl<'de> Capability<'de> {
36152 pub fn is_some(&self) -> bool {
36153 self.raw.is_some()
36154 }
36155
36156 pub fn is_none(&self) -> bool {
36157 self.raw.is_none()
36158 }
36159
36160 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Capability<'de>> {
36161 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36162 }
36163
36164 pub fn into_option(self) -> ::core::option::Option<crate::wire::Capability<'de>> {
36165 if self.is_some() {
36166 Some(crate::wire::Capability {
36167 raw: self.raw,
36168 _phantom: ::core::marker::PhantomData,
36169 })
36170 } else {
36171 None
36172 }
36173 }
36174 }
36175
36176 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Capability<'de>
36177 where
36178 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36179 ___D: ::fidl_next::Decoder<'de>,
36180 {
36181 fn decode(
36182 mut slot: ::fidl_next::Slot<'_, Self>,
36183 decoder: &mut ___D,
36184 _: (),
36185 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36186 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36187 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36188 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Service<'de>>(
36189 raw,
36190 decoder,
36191 (),
36192 )?,
36193
36194 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Protocol<'de>>(
36195 raw,
36196 decoder,
36197 (),
36198 )?,
36199
36200 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Directory<'de>>(
36201 raw,
36202 decoder,
36203 (),
36204 )?,
36205
36206 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Storage<'de>>(
36207 raw,
36208 decoder,
36209 (),
36210 )?,
36211
36212 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Runner<'de>>(
36213 raw,
36214 decoder,
36215 (),
36216 )?,
36217
36218 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Resolver<'de>>(
36219 raw,
36220 decoder,
36221 (),
36222 )?,
36223
36224 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EventStream<'de>>(
36225 raw,
36226 decoder,
36227 (),
36228 )?,
36229
36230 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Dictionary<'de>>(
36231 raw,
36232 decoder,
36233 (),
36234 )?,
36235
36236 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Configuration<'de>>(
36237 raw,
36238 decoder,
36239 (),
36240 )?,
36241
36242 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36243 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36244 }
36245
36246 Ok(())
36247 }
36248 }
36249
36250 impl<'de> ::core::fmt::Debug for Capability<'de> {
36251 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36252 self.as_ref().fmt(f)
36253 }
36254 }
36255
36256 impl<'de> ::fidl_next::IntoNatural for Capability<'de> {
36257 type Natural = ::core::option::Option<crate::natural::Capability>;
36258 }
36259
36260 #[repr(transparent)]
36261 pub struct LayoutConstraint<'de> {
36262 pub(crate) raw: ::fidl_next::wire::Union,
36263 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36264 }
36265
36266 impl ::fidl_next::Constrained for LayoutConstraint<'_> {
36267 type Constraint = ();
36268
36269 fn validate(
36270 _: ::fidl_next::Slot<'_, Self>,
36271 _: Self::Constraint,
36272 ) -> Result<(), ::fidl_next::ValidationError> {
36273 Ok(())
36274 }
36275 }
36276
36277 unsafe impl ::fidl_next::Wire for LayoutConstraint<'static> {
36278 type Narrowed<'de> = LayoutConstraint<'de>;
36279
36280 #[inline]
36281 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36282 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36283 ::fidl_next::wire::Union::zero_padding(raw);
36284 }
36285 }
36286
36287 impl<'de> LayoutConstraint<'de> {
36288 pub fn is_some(&self) -> bool {
36289 self.raw.is_some()
36290 }
36291
36292 pub fn is_none(&self) -> bool {
36293 self.raw.is_none()
36294 }
36295
36296 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::LayoutConstraint<'de>> {
36297 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36298 }
36299
36300 pub fn into_option(self) -> ::core::option::Option<crate::wire::LayoutConstraint<'de>> {
36301 if self.is_some() {
36302 Some(crate::wire::LayoutConstraint {
36303 raw: self.raw,
36304 _phantom: ::core::marker::PhantomData,
36305 })
36306 } else {
36307 None
36308 }
36309 }
36310 }
36311
36312 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutConstraint<'de>
36313 where
36314 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36315 ___D: ::fidl_next::Decoder<'de>,
36316 {
36317 fn decode(
36318 mut slot: ::fidl_next::Slot<'_, Self>,
36319 decoder: &mut ___D,
36320 _: (),
36321 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36322 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36323 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36324 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
36325 raw,
36326 decoder,
36327 (),
36328 )?,
36329
36330 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36331 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36332 }
36333
36334 Ok(())
36335 }
36336 }
36337
36338 impl<'de> ::core::fmt::Debug for LayoutConstraint<'de> {
36339 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36340 self.as_ref().fmt(f)
36341 }
36342 }
36343
36344 impl<'de> ::fidl_next::IntoNatural for LayoutConstraint<'de> {
36345 type Natural = ::core::option::Option<crate::natural::LayoutConstraint>;
36346 }
36347
36348 #[repr(transparent)]
36349 pub struct ConfigChecksum<'de> {
36350 pub(crate) raw: ::fidl_next::wire::Union,
36351 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36352 }
36353
36354 impl ::fidl_next::Constrained for ConfigChecksum<'_> {
36355 type Constraint = ();
36356
36357 fn validate(
36358 _: ::fidl_next::Slot<'_, Self>,
36359 _: Self::Constraint,
36360 ) -> Result<(), ::fidl_next::ValidationError> {
36361 Ok(())
36362 }
36363 }
36364
36365 unsafe impl ::fidl_next::Wire for ConfigChecksum<'static> {
36366 type Narrowed<'de> = ConfigChecksum<'de>;
36367
36368 #[inline]
36369 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36370 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36371 ::fidl_next::wire::Union::zero_padding(raw);
36372 }
36373 }
36374
36375 impl<'de> ConfigChecksum<'de> {
36376 pub fn is_some(&self) -> bool {
36377 self.raw.is_some()
36378 }
36379
36380 pub fn is_none(&self) -> bool {
36381 self.raw.is_none()
36382 }
36383
36384 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
36385 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36386 }
36387
36388 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigChecksum<'de>> {
36389 if self.is_some() {
36390 Some(crate::wire::ConfigChecksum {
36391 raw: self.raw,
36392 _phantom: ::core::marker::PhantomData,
36393 })
36394 } else {
36395 None
36396 }
36397 }
36398 }
36399
36400 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigChecksum<'de>
36401 where
36402 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36403 ___D: ::fidl_next::Decoder<'de>,
36404 {
36405 fn decode(
36406 mut slot: ::fidl_next::Slot<'_, Self>,
36407 decoder: &mut ___D,
36408 _: (),
36409 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36410 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36411 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36412 1 => ::fidl_next::wire::Union::decode_as::<___D, [u8; 32]>(raw, decoder, ())?,
36413
36414 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36415 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36416 }
36417
36418 Ok(())
36419 }
36420 }
36421
36422 impl<'de> ::core::fmt::Debug for ConfigChecksum<'de> {
36423 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36424 self.as_ref().fmt(f)
36425 }
36426 }
36427
36428 impl<'de> ::fidl_next::IntoNatural for ConfigChecksum<'de> {
36429 type Natural = ::core::option::Option<crate::natural::ConfigChecksum>;
36430 }
36431
36432 #[repr(transparent)]
36433 pub struct Use<'de> {
36434 pub(crate) raw: ::fidl_next::wire::Union,
36435 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36436 }
36437
36438 impl ::fidl_next::Constrained for Use<'_> {
36439 type Constraint = ();
36440
36441 fn validate(
36442 _: ::fidl_next::Slot<'_, Self>,
36443 _: Self::Constraint,
36444 ) -> Result<(), ::fidl_next::ValidationError> {
36445 Ok(())
36446 }
36447 }
36448
36449 unsafe impl ::fidl_next::Wire for Use<'static> {
36450 type Narrowed<'de> = Use<'de>;
36451
36452 #[inline]
36453 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36454 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36455 ::fidl_next::wire::Union::zero_padding(raw);
36456 }
36457 }
36458
36459 impl<'de> Use<'de> {
36460 pub fn is_some(&self) -> bool {
36461 self.raw.is_some()
36462 }
36463
36464 pub fn is_none(&self) -> bool {
36465 self.raw.is_none()
36466 }
36467
36468 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Use<'de>> {
36469 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36470 }
36471
36472 pub fn into_option(self) -> ::core::option::Option<crate::wire::Use<'de>> {
36473 if self.is_some() {
36474 Some(crate::wire::Use { raw: self.raw, _phantom: ::core::marker::PhantomData })
36475 } else {
36476 None
36477 }
36478 }
36479 }
36480
36481 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Use<'de>
36482 where
36483 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36484 ___D: ::fidl_next::Decoder<'de>,
36485 {
36486 fn decode(
36487 mut slot: ::fidl_next::Slot<'_, Self>,
36488 decoder: &mut ___D,
36489 _: (),
36490 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36491 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36492 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36493 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseService<'de>>(
36494 raw,
36495 decoder,
36496 (),
36497 )?,
36498
36499 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseProtocol<'de>>(
36500 raw,
36501 decoder,
36502 (),
36503 )?,
36504
36505 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDirectory<'de>>(
36506 raw,
36507 decoder,
36508 (),
36509 )?,
36510
36511 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseStorage<'de>>(
36512 raw,
36513 decoder,
36514 (),
36515 )?,
36516
36517 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseEventStream<'de>>(
36518 raw,
36519 decoder,
36520 (),
36521 )?,
36522
36523 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseRunner<'de>>(
36524 raw,
36525 decoder,
36526 (),
36527 )?,
36528
36529 9 => {
36530 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseConfiguration<'de>>(
36531 raw,
36532 decoder,
36533 (),
36534 )?
36535 }
36536
36537 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDictionary<'de>>(
36538 raw,
36539 decoder,
36540 (),
36541 )?,
36542
36543 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36544 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36545 }
36546
36547 Ok(())
36548 }
36549 }
36550
36551 impl<'de> ::core::fmt::Debug for Use<'de> {
36552 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36553 self.as_ref().fmt(f)
36554 }
36555 }
36556
36557 impl<'de> ::fidl_next::IntoNatural for Use<'de> {
36558 type Natural = ::core::option::Option<crate::natural::Use>;
36559 }
36560
36561 #[repr(transparent)]
36562 pub struct Expose<'de> {
36563 pub(crate) raw: ::fidl_next::wire::Union,
36564 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36565 }
36566
36567 impl ::fidl_next::Constrained for Expose<'_> {
36568 type Constraint = ();
36569
36570 fn validate(
36571 _: ::fidl_next::Slot<'_, Self>,
36572 _: Self::Constraint,
36573 ) -> Result<(), ::fidl_next::ValidationError> {
36574 Ok(())
36575 }
36576 }
36577
36578 unsafe impl ::fidl_next::Wire for Expose<'static> {
36579 type Narrowed<'de> = Expose<'de>;
36580
36581 #[inline]
36582 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36583 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36584 ::fidl_next::wire::Union::zero_padding(raw);
36585 }
36586 }
36587
36588 impl<'de> Expose<'de> {
36589 pub fn is_some(&self) -> bool {
36590 self.raw.is_some()
36591 }
36592
36593 pub fn is_none(&self) -> bool {
36594 self.raw.is_none()
36595 }
36596
36597 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Expose<'de>> {
36598 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36599 }
36600
36601 pub fn into_option(self) -> ::core::option::Option<crate::wire::Expose<'de>> {
36602 if self.is_some() {
36603 Some(crate::wire::Expose { raw: self.raw, _phantom: ::core::marker::PhantomData })
36604 } else {
36605 None
36606 }
36607 }
36608 }
36609
36610 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Expose<'de>
36611 where
36612 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36613 ___D: ::fidl_next::Decoder<'de>,
36614 {
36615 fn decode(
36616 mut slot: ::fidl_next::Slot<'_, Self>,
36617 decoder: &mut ___D,
36618 _: (),
36619 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36620 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36621 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36622 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeService<'de>>(
36623 raw,
36624 decoder,
36625 (),
36626 )?,
36627
36628 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeProtocol<'de>>(
36629 raw,
36630 decoder,
36631 (),
36632 )?,
36633
36634 3 => {
36635 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDirectory<'de>>(
36636 raw,
36637 decoder,
36638 (),
36639 )?
36640 }
36641
36642 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeRunner<'de>>(
36643 raw,
36644 decoder,
36645 (),
36646 )?,
36647
36648 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeResolver<'de>>(
36649 raw,
36650 decoder,
36651 (),
36652 )?,
36653
36654 7 => {
36655 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDictionary<'de>>(
36656 raw,
36657 decoder,
36658 (),
36659 )?
36660 }
36661
36662 8 => ::fidl_next::wire::Union::decode_as::<
36663 ___D,
36664 crate::wire::ExposeConfiguration<'de>,
36665 >(raw, decoder, ())?,
36666
36667 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36668 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36669 }
36670
36671 Ok(())
36672 }
36673 }
36674
36675 impl<'de> ::core::fmt::Debug for Expose<'de> {
36676 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36677 self.as_ref().fmt(f)
36678 }
36679 }
36680
36681 impl<'de> ::fidl_next::IntoNatural for Expose<'de> {
36682 type Natural = ::core::option::Option<crate::natural::Expose>;
36683 }
36684
36685 #[repr(transparent)]
36686 pub struct Offer<'de> {
36687 pub(crate) raw: ::fidl_next::wire::Union,
36688 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36689 }
36690
36691 impl ::fidl_next::Constrained for Offer<'_> {
36692 type Constraint = ();
36693
36694 fn validate(
36695 _: ::fidl_next::Slot<'_, Self>,
36696 _: Self::Constraint,
36697 ) -> Result<(), ::fidl_next::ValidationError> {
36698 Ok(())
36699 }
36700 }
36701
36702 unsafe impl ::fidl_next::Wire for Offer<'static> {
36703 type Narrowed<'de> = Offer<'de>;
36704
36705 #[inline]
36706 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36707 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36708 ::fidl_next::wire::Union::zero_padding(raw);
36709 }
36710 }
36711
36712 impl<'de> Offer<'de> {
36713 pub fn is_some(&self) -> bool {
36714 self.raw.is_some()
36715 }
36716
36717 pub fn is_none(&self) -> bool {
36718 self.raw.is_none()
36719 }
36720
36721 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Offer<'de>> {
36722 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36723 }
36724
36725 pub fn into_option(self) -> ::core::option::Option<crate::wire::Offer<'de>> {
36726 if self.is_some() {
36727 Some(crate::wire::Offer { raw: self.raw, _phantom: ::core::marker::PhantomData })
36728 } else {
36729 None
36730 }
36731 }
36732 }
36733
36734 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Offer<'de>
36735 where
36736 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36737 ___D: ::fidl_next::Decoder<'de>,
36738 {
36739 fn decode(
36740 mut slot: ::fidl_next::Slot<'_, Self>,
36741 decoder: &mut ___D,
36742 _: (),
36743 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36744 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36745 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36746 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferService<'de>>(
36747 raw,
36748 decoder,
36749 (),
36750 )?,
36751
36752 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferProtocol<'de>>(
36753 raw,
36754 decoder,
36755 (),
36756 )?,
36757
36758 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDirectory<'de>>(
36759 raw,
36760 decoder,
36761 (),
36762 )?,
36763
36764 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferStorage<'de>>(
36765 raw,
36766 decoder,
36767 (),
36768 )?,
36769
36770 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferRunner<'de>>(
36771 raw,
36772 decoder,
36773 (),
36774 )?,
36775
36776 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferResolver<'de>>(
36777 raw,
36778 decoder,
36779 (),
36780 )?,
36781
36782 8 => {
36783 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferEventStream<'de>>(
36784 raw,
36785 decoder,
36786 (),
36787 )?
36788 }
36789
36790 9 => {
36791 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDictionary<'de>>(
36792 raw,
36793 decoder,
36794 (),
36795 )?
36796 }
36797
36798 10 => ::fidl_next::wire::Union::decode_as::<
36799 ___D,
36800 crate::wire::OfferConfiguration<'de>,
36801 >(raw, decoder, ())?,
36802
36803 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36804 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36805 }
36806
36807 Ok(())
36808 }
36809 }
36810
36811 impl<'de> ::core::fmt::Debug for Offer<'de> {
36812 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36813 self.as_ref().fmt(f)
36814 }
36815 }
36816
36817 impl<'de> ::fidl_next::IntoNatural for Offer<'de> {
36818 type Natural = ::core::option::Option<crate::natural::Offer>;
36819 }
36820
36821 #[repr(transparent)]
36822 pub struct DebugRegistration<'de> {
36823 pub(crate) raw: ::fidl_next::wire::Union,
36824 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36825 }
36826
36827 impl ::fidl_next::Constrained for DebugRegistration<'_> {
36828 type Constraint = ();
36829
36830 fn validate(
36831 _: ::fidl_next::Slot<'_, Self>,
36832 _: Self::Constraint,
36833 ) -> Result<(), ::fidl_next::ValidationError> {
36834 Ok(())
36835 }
36836 }
36837
36838 unsafe impl ::fidl_next::Wire for DebugRegistration<'static> {
36839 type Narrowed<'de> = DebugRegistration<'de>;
36840
36841 #[inline]
36842 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36843 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36844 ::fidl_next::wire::Union::zero_padding(raw);
36845 }
36846 }
36847
36848 impl<'de> DebugRegistration<'de> {
36849 pub fn is_some(&self) -> bool {
36850 self.raw.is_some()
36851 }
36852
36853 pub fn is_none(&self) -> bool {
36854 self.raw.is_none()
36855 }
36856
36857 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::DebugRegistration<'de>> {
36858 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36859 }
36860
36861 pub fn into_option(self) -> ::core::option::Option<crate::wire::DebugRegistration<'de>> {
36862 if self.is_some() {
36863 Some(crate::wire::DebugRegistration {
36864 raw: self.raw,
36865 _phantom: ::core::marker::PhantomData,
36866 })
36867 } else {
36868 None
36869 }
36870 }
36871 }
36872
36873 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugRegistration<'de>
36874 where
36875 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36876 ___D: ::fidl_next::Decoder<'de>,
36877 {
36878 fn decode(
36879 mut slot: ::fidl_next::Slot<'_, Self>,
36880 decoder: &mut ___D,
36881 _: (),
36882 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36883 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36884 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36885 1 => ::fidl_next::wire::Union::decode_as::<
36886 ___D,
36887 crate::wire::DebugProtocolRegistration<'de>,
36888 >(raw, decoder, ())?,
36889
36890 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36891 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36892 }
36893
36894 Ok(())
36895 }
36896 }
36897
36898 impl<'de> ::core::fmt::Debug for DebugRegistration<'de> {
36899 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36900 self.as_ref().fmt(f)
36901 }
36902 }
36903
36904 impl<'de> ::fidl_next::IntoNatural for DebugRegistration<'de> {
36905 type Natural = ::core::option::Option<crate::natural::DebugRegistration>;
36906 }
36907
36908 #[repr(transparent)]
36909 pub struct ConfigValueSource<'de> {
36910 pub(crate) raw: ::fidl_next::wire::Union,
36911 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36912 }
36913
36914 impl ::fidl_next::Constrained for ConfigValueSource<'_> {
36915 type Constraint = ();
36916
36917 fn validate(
36918 _: ::fidl_next::Slot<'_, Self>,
36919 _: Self::Constraint,
36920 ) -> Result<(), ::fidl_next::ValidationError> {
36921 Ok(())
36922 }
36923 }
36924
36925 unsafe impl ::fidl_next::Wire for ConfigValueSource<'static> {
36926 type Narrowed<'de> = ConfigValueSource<'de>;
36927
36928 #[inline]
36929 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36930 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36931 ::fidl_next::wire::Union::zero_padding(raw);
36932 }
36933 }
36934
36935 impl<'de> ConfigValueSource<'de> {
36936 pub fn is_some(&self) -> bool {
36937 self.raw.is_some()
36938 }
36939
36940 pub fn is_none(&self) -> bool {
36941 self.raw.is_none()
36942 }
36943
36944 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigValueSource<'de>> {
36945 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36946 }
36947
36948 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigValueSource<'de>> {
36949 if self.is_some() {
36950 Some(crate::wire::ConfigValueSource {
36951 raw: self.raw,
36952 _phantom: ::core::marker::PhantomData,
36953 })
36954 } else {
36955 None
36956 }
36957 }
36958 }
36959
36960 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValueSource<'de>
36961 where
36962 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36963 ___D: ::fidl_next::Decoder<'de>,
36964 {
36965 fn decode(
36966 mut slot: ::fidl_next::Slot<'_, Self>,
36967 decoder: &mut ___D,
36968 _: (),
36969 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36970 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36971 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36972 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
36973 raw, decoder, 4294967295,
36974 )?,
36975
36976 2 => ::fidl_next::wire::Union::decode_as::<
36977 ___D,
36978 crate::wire::ConfigSourceCapabilities<'de>,
36979 >(raw, decoder, ())?,
36980
36981 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36982 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36983 }
36984
36985 Ok(())
36986 }
36987 }
36988
36989 impl<'de> ::core::fmt::Debug for ConfigValueSource<'de> {
36990 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36991 self.as_ref().fmt(f)
36992 }
36993 }
36994
36995 impl<'de> ::fidl_next::IntoNatural for ConfigValueSource<'de> {
36996 type Natural = ::core::option::Option<crate::natural::ConfigValueSource>;
36997 }
36998
36999 #[repr(transparent)]
37000 pub struct LayoutParameter<'de> {
37001 pub(crate) raw: ::fidl_next::wire::Union,
37002 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
37003 }
37004
37005 impl ::fidl_next::Constrained for LayoutParameter<'_> {
37006 type Constraint = ();
37007
37008 fn validate(
37009 _: ::fidl_next::Slot<'_, Self>,
37010 _: Self::Constraint,
37011 ) -> Result<(), ::fidl_next::ValidationError> {
37012 Ok(())
37013 }
37014 }
37015
37016 unsafe impl ::fidl_next::Wire for LayoutParameter<'static> {
37017 type Narrowed<'de> = LayoutParameter<'de>;
37018
37019 #[inline]
37020 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
37021 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
37022 ::fidl_next::wire::Union::zero_padding(raw);
37023 }
37024 }
37025
37026 impl<'de> LayoutParameter<'de> {
37027 pub fn is_some(&self) -> bool {
37028 self.raw.is_some()
37029 }
37030
37031 pub fn is_none(&self) -> bool {
37032 self.raw.is_none()
37033 }
37034
37035 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::LayoutParameter<'de>> {
37036 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
37037 }
37038
37039 pub fn into_option(self) -> ::core::option::Option<crate::wire::LayoutParameter<'de>> {
37040 if self.is_some() {
37041 Some(crate::wire::LayoutParameter {
37042 raw: self.raw,
37043 _phantom: ::core::marker::PhantomData,
37044 })
37045 } else {
37046 None
37047 }
37048 }
37049 }
37050
37051 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutParameter<'de>
37052 where
37053 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
37054 ___D: ::fidl_next::Decoder<'de>,
37055 {
37056 fn decode(
37057 mut slot: ::fidl_next::Slot<'_, Self>,
37058 decoder: &mut ___D,
37059 _: (),
37060 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
37061 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
37062 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
37063 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ConfigType<'de>>(
37064 raw,
37065 decoder,
37066 (),
37067 )?,
37068
37069 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
37070 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
37071 }
37072
37073 Ok(())
37074 }
37075 }
37076
37077 impl<'de> ::core::fmt::Debug for LayoutParameter<'de> {
37078 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37079 self.as_ref().fmt(f)
37080 }
37081 }
37082
37083 impl<'de> ::fidl_next::IntoNatural for LayoutParameter<'de> {
37084 type Natural = ::core::option::Option<crate::natural::LayoutParameter>;
37085 }
37086}
37087
37088pub mod generic {
37089
37090 pub type ParentRef = ();
37092
37093 pub type SelfRef = ();
37095
37096 pub struct ChildRef<T0, T1> {
37098 pub name: T0,
37099
37100 pub collection: T1,
37101 }
37102
37103 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>
37104 for ChildRef<T0, T1>
37105 where
37106 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37107 ___E: ::fidl_next::Encoder,
37108 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37109 T1: ::fidl_next::Encode<::fidl_next::wire::OptionalString<'static>, ___E>,
37110 {
37111 #[inline]
37112 fn encode(
37113 self,
37114 encoder_: &mut ___E,
37115 out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
37116 _: (),
37117 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37118 ::fidl_next::munge! {
37119 let crate::wire::ChildRef {
37120 name,
37121 collection,
37122
37123 } = out_;
37124 }
37125
37126 ::fidl_next::Encode::encode(self.name, encoder_, name, 1024)?;
37127
37128 ::fidl_next::Encode::encode(self.collection, encoder_, collection, 100)?;
37129
37130 Ok(())
37131 }
37132 }
37133
37134 pub struct CollectionRef<T0> {
37136 pub name: T0,
37137 }
37138
37139 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>
37140 for CollectionRef<T0>
37141 where
37142 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37143 ___E: ::fidl_next::Encoder,
37144 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37145 {
37146 #[inline]
37147 fn encode(
37148 self,
37149 encoder_: &mut ___E,
37150 out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
37151 _: (),
37152 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37153 ::fidl_next::munge! {
37154 let crate::wire::CollectionRef {
37155 name,
37156
37157 } = out_;
37158 }
37159
37160 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
37161
37162 Ok(())
37163 }
37164 }
37165
37166 pub type FrameworkRef = ();
37168
37169 pub struct CapabilityRef<T0> {
37171 pub name: T0,
37172 }
37173
37174 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>
37175 for CapabilityRef<T0>
37176 where
37177 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37178 ___E: ::fidl_next::Encoder,
37179 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37180 {
37181 #[inline]
37182 fn encode(
37183 self,
37184 encoder_: &mut ___E,
37185 out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
37186 _: (),
37187 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37188 ::fidl_next::munge! {
37189 let crate::wire::CapabilityRef {
37190 name,
37191
37192 } = out_;
37193 }
37194
37195 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
37196
37197 Ok(())
37198 }
37199 }
37200
37201 pub type DebugRef = ();
37203
37204 pub type VoidRef = ();
37206
37207 pub type EnvironmentRef = ();
37209
37210 pub struct NameMapping<T0, T1> {
37212 pub source_name: T0,
37213
37214 pub target_name: T1,
37215 }
37216
37217 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>
37218 for NameMapping<T0, T1>
37219 where
37220 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37221 ___E: ::fidl_next::Encoder,
37222 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37223 T1: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37224 {
37225 #[inline]
37226 fn encode(
37227 self,
37228 encoder_: &mut ___E,
37229 out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
37230 _: (),
37231 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37232 ::fidl_next::munge! {
37233 let crate::wire::NameMapping {
37234 source_name,
37235 target_name,
37236
37237 } = out_;
37238 }
37239
37240 ::fidl_next::Encode::encode(self.source_name, encoder_, source_name, 100)?;
37241
37242 ::fidl_next::Encode::encode(self.target_name, encoder_, target_name, 100)?;
37243
37244 Ok(())
37245 }
37246 }
37247
37248 pub struct ConfigType<T0, T1, T2> {
37250 pub layout: T0,
37251
37252 pub parameters: T1,
37253
37254 pub constraints: T2,
37255 }
37256
37257 unsafe impl<___E, T0, T1, T2> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>
37258 for ConfigType<T0, T1, T2>
37259 where
37260 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37261 ___E: ::fidl_next::Encoder,
37262 T0: ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E>,
37263 T1: ::fidl_next::Encode<
37264 ::fidl_next::wire::OptionalVector<'static, crate::wire::LayoutParameter<'static>>,
37265 ___E,
37266 >,
37267 T2: ::fidl_next::Encode<
37268 ::fidl_next::wire::Vector<'static, crate::wire::LayoutConstraint<'static>>,
37269 ___E,
37270 >,
37271 {
37272 #[inline]
37273 fn encode(
37274 self,
37275 encoder_: &mut ___E,
37276 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
37277 _: (),
37278 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37279 ::fidl_next::munge! {
37280 let crate::wire::ConfigType {
37281 layout,
37282 parameters,
37283 constraints,
37284
37285 } = out_;
37286 }
37287
37288 ::fidl_next::Encode::encode(self.layout, encoder_, layout, ())?;
37289
37290 ::fidl_next::Encode::encode(self.parameters, encoder_, parameters, (4294967295, ()))?;
37291
37292 ::fidl_next::Encode::encode(self.constraints, encoder_, constraints, (4294967295, ()))?;
37293
37294 Ok(())
37295 }
37296 }
37297
37298 pub struct ResolvedConfigField<T0, T1> {
37300 pub key: T0,
37301
37302 pub value: T1,
37303 }
37304
37305 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
37306 for ResolvedConfigField<T0, T1>
37307 where
37308 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37309 ___E: ::fidl_next::Encoder,
37310 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37311 T1: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
37312 {
37313 #[inline]
37314 fn encode(
37315 self,
37316 encoder_: &mut ___E,
37317 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
37318 _: (),
37319 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37320 ::fidl_next::munge! {
37321 let crate::wire::ResolvedConfigField {
37322 key,
37323 value,
37324
37325 } = out_;
37326 }
37327
37328 ::fidl_next::Encode::encode(self.key, encoder_, key, 4294967295)?;
37329
37330 ::fidl_next::Encode::encode(self.value, encoder_, value, ())?;
37331
37332 Ok(())
37333 }
37334 }
37335
37336 pub struct ResolvedConfig<T0, T1> {
37338 pub fields: T0,
37339
37340 pub checksum: T1,
37341 }
37342
37343 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>
37344 for ResolvedConfig<T0, T1>
37345 where
37346 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37347 ___E: ::fidl_next::Encoder,
37348 T0: ::fidl_next::Encode<
37349 ::fidl_next::wire::Vector<'static, crate::wire::ResolvedConfigField<'static>>,
37350 ___E,
37351 >,
37352 T1: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
37353 {
37354 #[inline]
37355 fn encode(
37356 self,
37357 encoder_: &mut ___E,
37358 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
37359 _: (),
37360 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37361 ::fidl_next::munge! {
37362 let crate::wire::ResolvedConfig {
37363 fields,
37364 checksum,
37365
37366 } = out_;
37367 }
37368
37369 ::fidl_next::Encode::encode(self.fields, encoder_, fields, (4294967295, ()))?;
37370
37371 ::fidl_next::Encode::encode(self.checksum, encoder_, checksum, ())?;
37372
37373 Ok(())
37374 }
37375 }
37376}
37377
37378pub use self::natural::*;
37379
37380#[doc = " Config keys can only consist of these many bytes\n"]
37381pub const CONFIG_KEY_MAX_SIZE: u32 = 64 as u32;
37382
37383pub const MAX_NAME_LENGTH: u32 = 100 as u32;
37384
37385pub const MAX_PATH_LENGTH: u32 = 1024 as u32;
37386
37387pub const MAX_CHILD_NAME_LENGTH: u32 = 1024 as u32;
37388
37389pub const MAX_URL_SCHEME_LENGTH: u32 = 100 as u32;
37390
37391pub const MAX_MONIKER_LENGTH: u32 = 4096 as u32;
37392
37393#[doc = " The maximum number of EventSubscriptions in an EventStream.\n"]
37394pub const MAX_NUM_EVENT_STREAM_SUBSCRIPTIONS: u64 = 100 as u64;