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 impl ::std::convert::From<AllowedOffers> for u32 {
29 fn from(value: AllowedOffers) -> Self {
30 match value {
31 AllowedOffers::StaticOnly => 1,
32 AllowedOffers::StaticAndDynamic => 2,
33 }
34 }
35 }
36
37 unsafe impl<___E> ::fidl_next::Encode<crate::wire::AllowedOffers, ___E> for AllowedOffers
38 where
39 ___E: ?Sized,
40 {
41 #[inline]
42 fn encode(
43 self,
44 encoder: &mut ___E,
45 out: &mut ::core::mem::MaybeUninit<crate::wire::AllowedOffers>,
46 _: (),
47 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
48 ::fidl_next::Encode::encode(&self, encoder, out, ())
49 }
50 }
51
52 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::AllowedOffers, ___E> for &'a AllowedOffers
53 where
54 ___E: ?Sized,
55 {
56 #[inline]
57 fn encode(
58 self,
59 encoder: &mut ___E,
60 out: &mut ::core::mem::MaybeUninit<crate::wire::AllowedOffers>,
61 _: (),
62 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
63 ::fidl_next::munge!(let crate::wire::AllowedOffers { value } = out);
64 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
65 AllowedOffers::StaticOnly => 1,
66
67 AllowedOffers::StaticAndDynamic => 2,
68 }));
69
70 Ok(())
71 }
72 }
73
74 impl ::core::convert::From<crate::wire::AllowedOffers> for AllowedOffers {
75 fn from(wire: crate::wire::AllowedOffers) -> Self {
76 match u32::from(wire.value) {
77 1 => Self::StaticOnly,
78
79 2 => Self::StaticAndDynamic,
80
81 _ => unsafe { ::core::hint::unreachable_unchecked() },
82 }
83 }
84 }
85
86 impl ::fidl_next::FromWire<crate::wire::AllowedOffers> for AllowedOffers {
87 #[inline]
88 fn from_wire(wire: crate::wire::AllowedOffers) -> Self {
89 Self::from(wire)
90 }
91 }
92
93 impl ::fidl_next::FromWireRef<crate::wire::AllowedOffers> for AllowedOffers {
94 #[inline]
95 fn from_wire_ref(wire: &crate::wire::AllowedOffers) -> Self {
96 Self::from(*wire)
97 }
98 }
99
100 #[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"]
101 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
102 #[repr(u32)]
103 pub enum Availability {
104 Required = 1,
105 Optional = 2,
106 SameAsTarget = 3,
107 Transitional = 4,
108 }
109 impl ::core::convert::TryFrom<u32> for Availability {
110 type Error = ::fidl_next::UnknownStrictEnumMemberError;
111 fn try_from(
112 value: u32,
113 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
114 match value {
115 1 => Ok(Self::Required),
116 2 => Ok(Self::Optional),
117 3 => Ok(Self::SameAsTarget),
118 4 => Ok(Self::Transitional),
119
120 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
121 }
122 }
123 }
124
125 impl ::std::convert::From<Availability> for u32 {
126 fn from(value: Availability) -> Self {
127 match value {
128 Availability::Required => 1,
129 Availability::Optional => 2,
130 Availability::SameAsTarget => 3,
131 Availability::Transitional => 4,
132 }
133 }
134 }
135
136 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Availability, ___E> for Availability
137 where
138 ___E: ?Sized,
139 {
140 #[inline]
141 fn encode(
142 self,
143 encoder: &mut ___E,
144 out: &mut ::core::mem::MaybeUninit<crate::wire::Availability>,
145 _: (),
146 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
147 ::fidl_next::Encode::encode(&self, encoder, out, ())
148 }
149 }
150
151 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Availability, ___E> for &'a Availability
152 where
153 ___E: ?Sized,
154 {
155 #[inline]
156 fn encode(
157 self,
158 encoder: &mut ___E,
159 out: &mut ::core::mem::MaybeUninit<crate::wire::Availability>,
160 _: (),
161 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
162 ::fidl_next::munge!(let crate::wire::Availability { value } = out);
163 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
164 Availability::Required => 1,
165
166 Availability::Optional => 2,
167
168 Availability::SameAsTarget => 3,
169
170 Availability::Transitional => 4,
171 }));
172
173 Ok(())
174 }
175 }
176
177 impl ::core::convert::From<crate::wire::Availability> for Availability {
178 fn from(wire: crate::wire::Availability) -> Self {
179 match u32::from(wire.value) {
180 1 => Self::Required,
181
182 2 => Self::Optional,
183
184 3 => Self::SameAsTarget,
185
186 4 => Self::Transitional,
187
188 _ => unsafe { ::core::hint::unreachable_unchecked() },
189 }
190 }
191 }
192
193 impl ::fidl_next::FromWire<crate::wire::Availability> for Availability {
194 #[inline]
195 fn from_wire(wire: crate::wire::Availability) -> Self {
196 Self::from(wire)
197 }
198 }
199
200 impl ::fidl_next::FromWireRef<crate::wire::Availability> for Availability {
201 #[inline]
202 fn from_wire_ref(wire: &crate::wire::Availability) -> Self {
203 Self::from(*wire)
204 }
205 }
206
207 pub type Name = ::std::string::String;
208
209 #[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"]
210 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
211 pub struct Service {
212 pub name: ::core::option::Option<::std::string::String>,
213
214 pub source_path: ::core::option::Option<::std::string::String>,
215 }
216
217 impl Service {
218 fn __max_ordinal(&self) -> usize {
219 if self.source_path.is_some() {
220 return 2;
221 }
222
223 if self.name.is_some() {
224 return 1;
225 }
226
227 0
228 }
229 }
230
231 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Service<'static>, ___E> for Service
232 where
233 ___E: ::fidl_next::Encoder + ?Sized,
234 {
235 #[inline]
236 fn encode(
237 mut self,
238 encoder: &mut ___E,
239 out: &mut ::core::mem::MaybeUninit<crate::wire::Service<'static>>,
240 _: (),
241 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
242 ::fidl_next::munge!(let crate::wire::Service { table } = out);
243
244 let max_ord = self.__max_ordinal();
245
246 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
247 ::fidl_next::Wire::zero_padding(&mut out);
248
249 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
250 ::fidl_next::wire::Envelope,
251 >(encoder, max_ord);
252
253 for i in 1..=max_ord {
254 match i {
255 2 => {
256 if let Some(value) = self.source_path.take() {
257 ::fidl_next::wire::Envelope::encode_value::<
258 ::fidl_next::wire::String<'static>,
259 ___E,
260 >(
261 value, preallocated.encoder, &mut out, 1024
262 )?;
263 } else {
264 ::fidl_next::wire::Envelope::encode_zero(&mut out)
265 }
266 }
267
268 1 => {
269 if let Some(value) = self.name.take() {
270 ::fidl_next::wire::Envelope::encode_value::<
271 ::fidl_next::wire::String<'static>,
272 ___E,
273 >(
274 value, preallocated.encoder, &mut out, 100
275 )?;
276 } else {
277 ::fidl_next::wire::Envelope::encode_zero(&mut out)
278 }
279 }
280
281 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
282 }
283 unsafe {
284 preallocated.write_next(out.assume_init_ref());
285 }
286 }
287
288 ::fidl_next::wire::Table::encode_len(table, max_ord);
289
290 Ok(())
291 }
292 }
293
294 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Service<'static>, ___E> for &'a Service
295 where
296 ___E: ::fidl_next::Encoder + ?Sized,
297 {
298 #[inline]
299 fn encode(
300 self,
301 encoder: &mut ___E,
302 out: &mut ::core::mem::MaybeUninit<crate::wire::Service<'static>>,
303 _: (),
304 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
305 ::fidl_next::munge!(let crate::wire::Service { table } = out);
306
307 let max_ord = self.__max_ordinal();
308
309 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
310 ::fidl_next::Wire::zero_padding(&mut out);
311
312 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
313 ::fidl_next::wire::Envelope,
314 >(encoder, max_ord);
315
316 for i in 1..=max_ord {
317 match i {
318 2 => {
319 if let Some(value) = &self.source_path {
320 ::fidl_next::wire::Envelope::encode_value::<
321 ::fidl_next::wire::String<'static>,
322 ___E,
323 >(
324 value, preallocated.encoder, &mut out, 1024
325 )?;
326 } else {
327 ::fidl_next::wire::Envelope::encode_zero(&mut out)
328 }
329 }
330
331 1 => {
332 if let Some(value) = &self.name {
333 ::fidl_next::wire::Envelope::encode_value::<
334 ::fidl_next::wire::String<'static>,
335 ___E,
336 >(
337 value, preallocated.encoder, &mut out, 100
338 )?;
339 } else {
340 ::fidl_next::wire::Envelope::encode_zero(&mut out)
341 }
342 }
343
344 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
345 }
346 unsafe {
347 preallocated.write_next(out.assume_init_ref());
348 }
349 }
350
351 ::fidl_next::wire::Table::encode_len(table, max_ord);
352
353 Ok(())
354 }
355 }
356
357 impl<'de> ::fidl_next::FromWire<crate::wire::Service<'de>> for Service {
358 #[inline]
359 fn from_wire(wire_: crate::wire::Service<'de>) -> Self {
360 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
361
362 let name = wire_.table.get(1);
363
364 let source_path = wire_.table.get(2);
365
366 Self {
367 name: name.map(|envelope| {
368 ::fidl_next::FromWire::from_wire(unsafe {
369 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
370 })
371 }),
372
373 source_path: source_path.map(|envelope| {
374 ::fidl_next::FromWire::from_wire(unsafe {
375 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
376 })
377 }),
378 }
379 }
380 }
381
382 impl<'de> ::fidl_next::FromWireRef<crate::wire::Service<'de>> for Service {
383 #[inline]
384 fn from_wire_ref(wire: &crate::wire::Service<'de>) -> Self {
385 Self {
386 name: wire.table.get(1).map(|envelope| {
387 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
388 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
389 })
390 }),
391
392 source_path: wire.table.get(2).map(|envelope| {
393 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
394 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
395 })
396 }),
397 }
398 }
399 }
400
401 #[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"]
402 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
403 pub struct Directory {
404 pub name: ::core::option::Option<::std::string::String>,
405
406 pub source_path: ::core::option::Option<::std::string::String>,
407
408 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
409 }
410
411 impl Directory {
412 fn __max_ordinal(&self) -> usize {
413 if self.rights.is_some() {
414 return 3;
415 }
416
417 if self.source_path.is_some() {
418 return 2;
419 }
420
421 if self.name.is_some() {
422 return 1;
423 }
424
425 0
426 }
427 }
428
429 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Directory<'static>, ___E> for Directory
430 where
431 ___E: ::fidl_next::Encoder + ?Sized,
432 {
433 #[inline]
434 fn encode(
435 mut self,
436 encoder: &mut ___E,
437 out: &mut ::core::mem::MaybeUninit<crate::wire::Directory<'static>>,
438 _: (),
439 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
440 ::fidl_next::munge!(let crate::wire::Directory { table } = out);
441
442 let max_ord = self.__max_ordinal();
443
444 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
445 ::fidl_next::Wire::zero_padding(&mut out);
446
447 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
448 ::fidl_next::wire::Envelope,
449 >(encoder, max_ord);
450
451 for i in 1..=max_ord {
452 match i {
453 3 => {
454 if let Some(value) = self.rights.take() {
455 ::fidl_next::wire::Envelope::encode_value::<
456 ::fidl_next_common_fuchsia_io::wire::Operations,
457 ___E,
458 >(
459 value, preallocated.encoder, &mut out, ()
460 )?;
461 } else {
462 ::fidl_next::wire::Envelope::encode_zero(&mut out)
463 }
464 }
465
466 2 => {
467 if let Some(value) = self.source_path.take() {
468 ::fidl_next::wire::Envelope::encode_value::<
469 ::fidl_next::wire::String<'static>,
470 ___E,
471 >(
472 value, preallocated.encoder, &mut out, 1024
473 )?;
474 } else {
475 ::fidl_next::wire::Envelope::encode_zero(&mut out)
476 }
477 }
478
479 1 => {
480 if let Some(value) = self.name.take() {
481 ::fidl_next::wire::Envelope::encode_value::<
482 ::fidl_next::wire::String<'static>,
483 ___E,
484 >(
485 value, preallocated.encoder, &mut out, 100
486 )?;
487 } else {
488 ::fidl_next::wire::Envelope::encode_zero(&mut out)
489 }
490 }
491
492 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
493 }
494 unsafe {
495 preallocated.write_next(out.assume_init_ref());
496 }
497 }
498
499 ::fidl_next::wire::Table::encode_len(table, max_ord);
500
501 Ok(())
502 }
503 }
504
505 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Directory<'static>, ___E> for &'a Directory
506 where
507 ___E: ::fidl_next::Encoder + ?Sized,
508 {
509 #[inline]
510 fn encode(
511 self,
512 encoder: &mut ___E,
513 out: &mut ::core::mem::MaybeUninit<crate::wire::Directory<'static>>,
514 _: (),
515 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
516 ::fidl_next::munge!(let crate::wire::Directory { table } = out);
517
518 let max_ord = self.__max_ordinal();
519
520 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
521 ::fidl_next::Wire::zero_padding(&mut out);
522
523 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
524 ::fidl_next::wire::Envelope,
525 >(encoder, max_ord);
526
527 for i in 1..=max_ord {
528 match i {
529 3 => {
530 if let Some(value) = &self.rights {
531 ::fidl_next::wire::Envelope::encode_value::<
532 ::fidl_next_common_fuchsia_io::wire::Operations,
533 ___E,
534 >(
535 value, preallocated.encoder, &mut out, ()
536 )?;
537 } else {
538 ::fidl_next::wire::Envelope::encode_zero(&mut out)
539 }
540 }
541
542 2 => {
543 if let Some(value) = &self.source_path {
544 ::fidl_next::wire::Envelope::encode_value::<
545 ::fidl_next::wire::String<'static>,
546 ___E,
547 >(
548 value, preallocated.encoder, &mut out, 1024
549 )?;
550 } else {
551 ::fidl_next::wire::Envelope::encode_zero(&mut out)
552 }
553 }
554
555 1 => {
556 if let Some(value) = &self.name {
557 ::fidl_next::wire::Envelope::encode_value::<
558 ::fidl_next::wire::String<'static>,
559 ___E,
560 >(
561 value, preallocated.encoder, &mut out, 100
562 )?;
563 } else {
564 ::fidl_next::wire::Envelope::encode_zero(&mut out)
565 }
566 }
567
568 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
569 }
570 unsafe {
571 preallocated.write_next(out.assume_init_ref());
572 }
573 }
574
575 ::fidl_next::wire::Table::encode_len(table, max_ord);
576
577 Ok(())
578 }
579 }
580
581 impl<'de> ::fidl_next::FromWire<crate::wire::Directory<'de>> for Directory {
582 #[inline]
583 fn from_wire(wire_: crate::wire::Directory<'de>) -> Self {
584 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
585
586 let name = wire_.table.get(1);
587
588 let source_path = wire_.table.get(2);
589
590 let rights = wire_.table.get(3);
591
592 Self {
593 name: name.map(|envelope| {
594 ::fidl_next::FromWire::from_wire(unsafe {
595 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
596 })
597 }),
598
599 source_path: source_path.map(|envelope| {
600 ::fidl_next::FromWire::from_wire(unsafe {
601 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
602 })
603 }),
604
605 rights: rights.map(|envelope| {
606 ::fidl_next::FromWire::from_wire(unsafe {
607 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
608 })
609 }),
610 }
611 }
612 }
613
614 impl<'de> ::fidl_next::FromWireRef<crate::wire::Directory<'de>> for Directory {
615 #[inline]
616 fn from_wire_ref(wire: &crate::wire::Directory<'de>) -> Self {
617 Self {
618 name: wire.table.get(1).map(|envelope| {
619 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
620 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
621 })
622 }),
623
624 source_path: wire.table.get(2).map(|envelope| {
625 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
626 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
627 })
628 }),
629
630 rights: wire.table.get(3).map(|envelope| {
631 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
632 envelope
633 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
634 })
635 }),
636 }
637 }
638 }
639
640 #[doc = " A reference to a component\'s parent instance.\n"]
641 pub type ParentRef = ();
642
643 #[doc = " A reference to the component itself.\n"]
644 pub type SelfRef = ();
645
646 pub type ChildName = ::std::string::String;
647
648 #[doc = " A reference to one of the component\'s child instances.\n"]
649 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
650 pub struct ChildRef {
651 pub name: ::std::string::String,
652
653 pub collection: ::core::option::Option<::std::string::String>,
654 }
655
656 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E> for ChildRef
657 where
658 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
659 ___E: ::fidl_next::Encoder,
660 {
661 #[inline]
662 fn encode(
663 self,
664 encoder_: &mut ___E,
665 out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
666 _: (),
667 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
668 ::fidl_next::munge! {
669 let crate::wire::ChildRef {
670 name,
671 collection,
672
673 } = out_;
674 }
675
676 ::fidl_next::Encode::encode(self.name, encoder_, name, 1024)?;
677
678 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
679 ::fidl_next::Constrained::validate(_field, 1024)?;
680
681 ::fidl_next::Encode::encode(self.collection, encoder_, collection, 100)?;
682
683 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(collection.as_mut_ptr()) };
684 ::fidl_next::Constrained::validate(_field, 100)?;
685
686 Ok(())
687 }
688 }
689
690 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E> for &'a ChildRef
691 where
692 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
693 ___E: ::fidl_next::Encoder,
694 {
695 #[inline]
696 fn encode(
697 self,
698 encoder_: &mut ___E,
699 out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
700 _: (),
701 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
702 ::fidl_next::munge! {
703 let crate::wire::ChildRef {
704 name,
705 collection,
706
707 } = out_;
708 }
709
710 ::fidl_next::Encode::encode(&self.name, encoder_, name, 1024)?;
711
712 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
713 ::fidl_next::Constrained::validate(_field, 1024)?;
714
715 ::fidl_next::Encode::encode(&self.collection, encoder_, collection, 100)?;
716
717 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(collection.as_mut_ptr()) };
718 ::fidl_next::Constrained::validate(_field, 100)?;
719
720 Ok(())
721 }
722 }
723
724 unsafe impl<___E>
725 ::fidl_next::EncodeOption<
726 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
727 ___E,
728 > for ChildRef
729 where
730 ___E: ::fidl_next::Encoder + ?Sized,
731 ChildRef: ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>,
732 {
733 #[inline]
734 fn encode_option(
735 this: ::core::option::Option<Self>,
736 encoder: &mut ___E,
737 out: &mut ::core::mem::MaybeUninit<
738 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
739 >,
740 _: (),
741 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
742 if let Some(inner) = this {
743 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
744 ::fidl_next::wire::Box::encode_present(out);
745 } else {
746 ::fidl_next::wire::Box::encode_absent(out);
747 }
748
749 Ok(())
750 }
751 }
752
753 unsafe impl<'a, ___E>
754 ::fidl_next::EncodeOption<
755 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
756 ___E,
757 > for &'a ChildRef
758 where
759 ___E: ::fidl_next::Encoder + ?Sized,
760 &'a ChildRef: ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>,
761 {
762 #[inline]
763 fn encode_option(
764 this: ::core::option::Option<Self>,
765 encoder: &mut ___E,
766 out: &mut ::core::mem::MaybeUninit<
767 ::fidl_next::wire::Box<'static, crate::wire::ChildRef<'static>>,
768 >,
769 _: (),
770 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
771 if let Some(inner) = this {
772 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
773 ::fidl_next::wire::Box::encode_present(out);
774 } else {
775 ::fidl_next::wire::Box::encode_absent(out);
776 }
777
778 Ok(())
779 }
780 }
781
782 impl<'de> ::fidl_next::FromWire<crate::wire::ChildRef<'de>> for ChildRef {
783 #[inline]
784 fn from_wire(wire: crate::wire::ChildRef<'de>) -> Self {
785 Self {
786 name: ::fidl_next::FromWire::from_wire(wire.name),
787
788 collection: ::fidl_next::FromWire::from_wire(wire.collection),
789 }
790 }
791 }
792
793 impl<'de> ::fidl_next::FromWireRef<crate::wire::ChildRef<'de>> for ChildRef {
794 #[inline]
795 fn from_wire_ref(wire: &crate::wire::ChildRef<'de>) -> Self {
796 Self {
797 name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name),
798
799 collection: ::fidl_next::FromWireRef::from_wire_ref(&wire.collection),
800 }
801 }
802 }
803
804 #[doc = " A reference to one of the component\'s collections.\n"]
805 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
806 pub struct CollectionRef {
807 pub name: ::std::string::String,
808 }
809
810 unsafe impl<___E> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E> for CollectionRef
811 where
812 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
813 ___E: ::fidl_next::Encoder,
814 {
815 #[inline]
816 fn encode(
817 self,
818 encoder_: &mut ___E,
819 out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
820 _: (),
821 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
822 ::fidl_next::munge! {
823 let crate::wire::CollectionRef {
824 name,
825
826 } = out_;
827 }
828
829 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
830
831 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
832 ::fidl_next::Constrained::validate(_field, 100)?;
833
834 Ok(())
835 }
836 }
837
838 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>
839 for &'a CollectionRef
840 where
841 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
842 ___E: ::fidl_next::Encoder,
843 {
844 #[inline]
845 fn encode(
846 self,
847 encoder_: &mut ___E,
848 out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
849 _: (),
850 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
851 ::fidl_next::munge! {
852 let crate::wire::CollectionRef {
853 name,
854
855 } = out_;
856 }
857
858 ::fidl_next::Encode::encode(&self.name, encoder_, name, 100)?;
859
860 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
861 ::fidl_next::Constrained::validate(_field, 100)?;
862
863 Ok(())
864 }
865 }
866
867 unsafe impl<___E>
868 ::fidl_next::EncodeOption<
869 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
870 ___E,
871 > for CollectionRef
872 where
873 ___E: ::fidl_next::Encoder + ?Sized,
874 CollectionRef: ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>,
875 {
876 #[inline]
877 fn encode_option(
878 this: ::core::option::Option<Self>,
879 encoder: &mut ___E,
880 out: &mut ::core::mem::MaybeUninit<
881 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
882 >,
883 _: (),
884 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
885 if let Some(inner) = this {
886 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
887 ::fidl_next::wire::Box::encode_present(out);
888 } else {
889 ::fidl_next::wire::Box::encode_absent(out);
890 }
891
892 Ok(())
893 }
894 }
895
896 unsafe impl<'a, ___E>
897 ::fidl_next::EncodeOption<
898 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
899 ___E,
900 > for &'a CollectionRef
901 where
902 ___E: ::fidl_next::Encoder + ?Sized,
903 &'a CollectionRef: ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>,
904 {
905 #[inline]
906 fn encode_option(
907 this: ::core::option::Option<Self>,
908 encoder: &mut ___E,
909 out: &mut ::core::mem::MaybeUninit<
910 ::fidl_next::wire::Box<'static, crate::wire::CollectionRef<'static>>,
911 >,
912 _: (),
913 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
914 if let Some(inner) = this {
915 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
916 ::fidl_next::wire::Box::encode_present(out);
917 } else {
918 ::fidl_next::wire::Box::encode_absent(out);
919 }
920
921 Ok(())
922 }
923 }
924
925 impl<'de> ::fidl_next::FromWire<crate::wire::CollectionRef<'de>> for CollectionRef {
926 #[inline]
927 fn from_wire(wire: crate::wire::CollectionRef<'de>) -> Self {
928 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
929 }
930 }
931
932 impl<'de> ::fidl_next::FromWireRef<crate::wire::CollectionRef<'de>> for CollectionRef {
933 #[inline]
934 fn from_wire_ref(wire: &crate::wire::CollectionRef<'de>) -> Self {
935 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
936 }
937 }
938
939 #[doc = " A reference to the component framework itself.\n"]
940 pub type FrameworkRef = ();
941
942 #[doc = " A reference to a capability declared in this component.\n"]
943 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
944 pub struct CapabilityRef {
945 pub name: ::std::string::String,
946 }
947
948 unsafe impl<___E> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E> for CapabilityRef
949 where
950 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
951 ___E: ::fidl_next::Encoder,
952 {
953 #[inline]
954 fn encode(
955 self,
956 encoder_: &mut ___E,
957 out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
958 _: (),
959 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
960 ::fidl_next::munge! {
961 let crate::wire::CapabilityRef {
962 name,
963
964 } = out_;
965 }
966
967 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
968
969 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
970 ::fidl_next::Constrained::validate(_field, 100)?;
971
972 Ok(())
973 }
974 }
975
976 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>
977 for &'a CapabilityRef
978 where
979 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
980 ___E: ::fidl_next::Encoder,
981 {
982 #[inline]
983 fn encode(
984 self,
985 encoder_: &mut ___E,
986 out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
987 _: (),
988 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
989 ::fidl_next::munge! {
990 let crate::wire::CapabilityRef {
991 name,
992
993 } = out_;
994 }
995
996 ::fidl_next::Encode::encode(&self.name, encoder_, name, 100)?;
997
998 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(name.as_mut_ptr()) };
999 ::fidl_next::Constrained::validate(_field, 100)?;
1000
1001 Ok(())
1002 }
1003 }
1004
1005 unsafe impl<___E>
1006 ::fidl_next::EncodeOption<
1007 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
1008 ___E,
1009 > for CapabilityRef
1010 where
1011 ___E: ::fidl_next::Encoder + ?Sized,
1012 CapabilityRef: ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>,
1013 {
1014 #[inline]
1015 fn encode_option(
1016 this: ::core::option::Option<Self>,
1017 encoder: &mut ___E,
1018 out: &mut ::core::mem::MaybeUninit<
1019 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
1020 >,
1021 _: (),
1022 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1023 if let Some(inner) = this {
1024 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1025 ::fidl_next::wire::Box::encode_present(out);
1026 } else {
1027 ::fidl_next::wire::Box::encode_absent(out);
1028 }
1029
1030 Ok(())
1031 }
1032 }
1033
1034 unsafe impl<'a, ___E>
1035 ::fidl_next::EncodeOption<
1036 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
1037 ___E,
1038 > for &'a CapabilityRef
1039 where
1040 ___E: ::fidl_next::Encoder + ?Sized,
1041 &'a CapabilityRef: ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>,
1042 {
1043 #[inline]
1044 fn encode_option(
1045 this: ::core::option::Option<Self>,
1046 encoder: &mut ___E,
1047 out: &mut ::core::mem::MaybeUninit<
1048 ::fidl_next::wire::Box<'static, crate::wire::CapabilityRef<'static>>,
1049 >,
1050 _: (),
1051 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1052 if let Some(inner) = this {
1053 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
1054 ::fidl_next::wire::Box::encode_present(out);
1055 } else {
1056 ::fidl_next::wire::Box::encode_absent(out);
1057 }
1058
1059 Ok(())
1060 }
1061 }
1062
1063 impl<'de> ::fidl_next::FromWire<crate::wire::CapabilityRef<'de>> for CapabilityRef {
1064 #[inline]
1065 fn from_wire(wire: crate::wire::CapabilityRef<'de>) -> Self {
1066 Self { name: ::fidl_next::FromWire::from_wire(wire.name) }
1067 }
1068 }
1069
1070 impl<'de> ::fidl_next::FromWireRef<crate::wire::CapabilityRef<'de>> for CapabilityRef {
1071 #[inline]
1072 fn from_wire_ref(wire: &crate::wire::CapabilityRef<'de>) -> Self {
1073 Self { name: ::fidl_next::FromWireRef::from_wire_ref(&wire.name) }
1074 }
1075 }
1076
1077 #[doc = " A reference to the environment\'s debug capabilities.\n"]
1078 pub type DebugRef = ();
1079
1080 #[doc = " A reference to an intentionally missing offer source.\n"]
1081 pub type VoidRef = ();
1082
1083 #[doc = " Declares which identifier to use to key a component\'s isolated storage\n directory.\n"]
1084 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1085 #[repr(u32)]
1086 pub enum StorageId {
1087 StaticInstanceId = 1,
1088 StaticInstanceIdOrMoniker = 2,
1089 }
1090 impl ::core::convert::TryFrom<u32> for StorageId {
1091 type Error = ::fidl_next::UnknownStrictEnumMemberError;
1092 fn try_from(
1093 value: u32,
1094 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
1095 match value {
1096 1 => Ok(Self::StaticInstanceId),
1097 2 => Ok(Self::StaticInstanceIdOrMoniker),
1098
1099 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
1100 }
1101 }
1102 }
1103
1104 impl ::std::convert::From<StorageId> for u32 {
1105 fn from(value: StorageId) -> Self {
1106 match value {
1107 StorageId::StaticInstanceId => 1,
1108 StorageId::StaticInstanceIdOrMoniker => 2,
1109 }
1110 }
1111 }
1112
1113 unsafe impl<___E> ::fidl_next::Encode<crate::wire::StorageId, ___E> for StorageId
1114 where
1115 ___E: ?Sized,
1116 {
1117 #[inline]
1118 fn encode(
1119 self,
1120 encoder: &mut ___E,
1121 out: &mut ::core::mem::MaybeUninit<crate::wire::StorageId>,
1122 _: (),
1123 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1124 ::fidl_next::Encode::encode(&self, encoder, out, ())
1125 }
1126 }
1127
1128 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::StorageId, ___E> for &'a StorageId
1129 where
1130 ___E: ?Sized,
1131 {
1132 #[inline]
1133 fn encode(
1134 self,
1135 encoder: &mut ___E,
1136 out: &mut ::core::mem::MaybeUninit<crate::wire::StorageId>,
1137 _: (),
1138 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1139 ::fidl_next::munge!(let crate::wire::StorageId { value } = out);
1140 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
1141 StorageId::StaticInstanceId => 1,
1142
1143 StorageId::StaticInstanceIdOrMoniker => 2,
1144 }));
1145
1146 Ok(())
1147 }
1148 }
1149
1150 impl ::core::convert::From<crate::wire::StorageId> for StorageId {
1151 fn from(wire: crate::wire::StorageId) -> Self {
1152 match u32::from(wire.value) {
1153 1 => Self::StaticInstanceId,
1154
1155 2 => Self::StaticInstanceIdOrMoniker,
1156
1157 _ => unsafe { ::core::hint::unreachable_unchecked() },
1158 }
1159 }
1160 }
1161
1162 impl ::fidl_next::FromWire<crate::wire::StorageId> for StorageId {
1163 #[inline]
1164 fn from_wire(wire: crate::wire::StorageId) -> Self {
1165 Self::from(wire)
1166 }
1167 }
1168
1169 impl ::fidl_next::FromWireRef<crate::wire::StorageId> for StorageId {
1170 #[inline]
1171 fn from_wire_ref(wire: &crate::wire::StorageId) -> Self {
1172 Self::from(*wire)
1173 }
1174 }
1175
1176 #[doc = " Declares a runner capability backed by a service.\n"]
1177 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1178 pub struct Runner {
1179 pub name: ::core::option::Option<::std::string::String>,
1180
1181 pub source_path: ::core::option::Option<::std::string::String>,
1182 }
1183
1184 impl Runner {
1185 fn __max_ordinal(&self) -> usize {
1186 if self.source_path.is_some() {
1187 return 2;
1188 }
1189
1190 if self.name.is_some() {
1191 return 1;
1192 }
1193
1194 0
1195 }
1196 }
1197
1198 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Runner<'static>, ___E> for Runner
1199 where
1200 ___E: ::fidl_next::Encoder + ?Sized,
1201 {
1202 #[inline]
1203 fn encode(
1204 mut self,
1205 encoder: &mut ___E,
1206 out: &mut ::core::mem::MaybeUninit<crate::wire::Runner<'static>>,
1207 _: (),
1208 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1209 ::fidl_next::munge!(let crate::wire::Runner { table } = out);
1210
1211 let max_ord = self.__max_ordinal();
1212
1213 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1214 ::fidl_next::Wire::zero_padding(&mut out);
1215
1216 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1217 ::fidl_next::wire::Envelope,
1218 >(encoder, max_ord);
1219
1220 for i in 1..=max_ord {
1221 match i {
1222 2 => {
1223 if let Some(value) = self.source_path.take() {
1224 ::fidl_next::wire::Envelope::encode_value::<
1225 ::fidl_next::wire::String<'static>,
1226 ___E,
1227 >(
1228 value, preallocated.encoder, &mut out, 1024
1229 )?;
1230 } else {
1231 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1232 }
1233 }
1234
1235 1 => {
1236 if let Some(value) = self.name.take() {
1237 ::fidl_next::wire::Envelope::encode_value::<
1238 ::fidl_next::wire::String<'static>,
1239 ___E,
1240 >(
1241 value, preallocated.encoder, &mut out, 100
1242 )?;
1243 } else {
1244 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1245 }
1246 }
1247
1248 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1249 }
1250 unsafe {
1251 preallocated.write_next(out.assume_init_ref());
1252 }
1253 }
1254
1255 ::fidl_next::wire::Table::encode_len(table, max_ord);
1256
1257 Ok(())
1258 }
1259 }
1260
1261 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Runner<'static>, ___E> for &'a Runner
1262 where
1263 ___E: ::fidl_next::Encoder + ?Sized,
1264 {
1265 #[inline]
1266 fn encode(
1267 self,
1268 encoder: &mut ___E,
1269 out: &mut ::core::mem::MaybeUninit<crate::wire::Runner<'static>>,
1270 _: (),
1271 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1272 ::fidl_next::munge!(let crate::wire::Runner { table } = out);
1273
1274 let max_ord = self.__max_ordinal();
1275
1276 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1277 ::fidl_next::Wire::zero_padding(&mut out);
1278
1279 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1280 ::fidl_next::wire::Envelope,
1281 >(encoder, max_ord);
1282
1283 for i in 1..=max_ord {
1284 match i {
1285 2 => {
1286 if let Some(value) = &self.source_path {
1287 ::fidl_next::wire::Envelope::encode_value::<
1288 ::fidl_next::wire::String<'static>,
1289 ___E,
1290 >(
1291 value, preallocated.encoder, &mut out, 1024
1292 )?;
1293 } else {
1294 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1295 }
1296 }
1297
1298 1 => {
1299 if let Some(value) = &self.name {
1300 ::fidl_next::wire::Envelope::encode_value::<
1301 ::fidl_next::wire::String<'static>,
1302 ___E,
1303 >(
1304 value, preallocated.encoder, &mut out, 100
1305 )?;
1306 } else {
1307 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1308 }
1309 }
1310
1311 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1312 }
1313 unsafe {
1314 preallocated.write_next(out.assume_init_ref());
1315 }
1316 }
1317
1318 ::fidl_next::wire::Table::encode_len(table, max_ord);
1319
1320 Ok(())
1321 }
1322 }
1323
1324 impl<'de> ::fidl_next::FromWire<crate::wire::Runner<'de>> for Runner {
1325 #[inline]
1326 fn from_wire(wire_: crate::wire::Runner<'de>) -> Self {
1327 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
1328
1329 let name = wire_.table.get(1);
1330
1331 let source_path = wire_.table.get(2);
1332
1333 Self {
1334 name: name.map(|envelope| {
1335 ::fidl_next::FromWire::from_wire(unsafe {
1336 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1337 })
1338 }),
1339
1340 source_path: source_path.map(|envelope| {
1341 ::fidl_next::FromWire::from_wire(unsafe {
1342 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1343 })
1344 }),
1345 }
1346 }
1347 }
1348
1349 impl<'de> ::fidl_next::FromWireRef<crate::wire::Runner<'de>> for Runner {
1350 #[inline]
1351 fn from_wire_ref(wire: &crate::wire::Runner<'de>) -> Self {
1352 Self {
1353 name: wire.table.get(1).map(|envelope| {
1354 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1355 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1356 })
1357 }),
1358
1359 source_path: wire.table.get(2).map(|envelope| {
1360 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1361 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1362 })
1363 }),
1364 }
1365 }
1366 }
1367
1368 #[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"]
1369 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1370 pub struct Resolver {
1371 pub name: ::core::option::Option<::std::string::String>,
1372
1373 pub source_path: ::core::option::Option<::std::string::String>,
1374 }
1375
1376 impl Resolver {
1377 fn __max_ordinal(&self) -> usize {
1378 if self.source_path.is_some() {
1379 return 2;
1380 }
1381
1382 if self.name.is_some() {
1383 return 1;
1384 }
1385
1386 0
1387 }
1388 }
1389
1390 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Resolver<'static>, ___E> for Resolver
1391 where
1392 ___E: ::fidl_next::Encoder + ?Sized,
1393 {
1394 #[inline]
1395 fn encode(
1396 mut self,
1397 encoder: &mut ___E,
1398 out: &mut ::core::mem::MaybeUninit<crate::wire::Resolver<'static>>,
1399 _: (),
1400 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1401 ::fidl_next::munge!(let crate::wire::Resolver { table } = out);
1402
1403 let max_ord = self.__max_ordinal();
1404
1405 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1406 ::fidl_next::Wire::zero_padding(&mut out);
1407
1408 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1409 ::fidl_next::wire::Envelope,
1410 >(encoder, max_ord);
1411
1412 for i in 1..=max_ord {
1413 match i {
1414 2 => {
1415 if let Some(value) = self.source_path.take() {
1416 ::fidl_next::wire::Envelope::encode_value::<
1417 ::fidl_next::wire::String<'static>,
1418 ___E,
1419 >(
1420 value, preallocated.encoder, &mut out, 1024
1421 )?;
1422 } else {
1423 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1424 }
1425 }
1426
1427 1 => {
1428 if let Some(value) = self.name.take() {
1429 ::fidl_next::wire::Envelope::encode_value::<
1430 ::fidl_next::wire::String<'static>,
1431 ___E,
1432 >(
1433 value, preallocated.encoder, &mut out, 100
1434 )?;
1435 } else {
1436 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1437 }
1438 }
1439
1440 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1441 }
1442 unsafe {
1443 preallocated.write_next(out.assume_init_ref());
1444 }
1445 }
1446
1447 ::fidl_next::wire::Table::encode_len(table, max_ord);
1448
1449 Ok(())
1450 }
1451 }
1452
1453 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Resolver<'static>, ___E> for &'a Resolver
1454 where
1455 ___E: ::fidl_next::Encoder + ?Sized,
1456 {
1457 #[inline]
1458 fn encode(
1459 self,
1460 encoder: &mut ___E,
1461 out: &mut ::core::mem::MaybeUninit<crate::wire::Resolver<'static>>,
1462 _: (),
1463 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1464 ::fidl_next::munge!(let crate::wire::Resolver { table } = out);
1465
1466 let max_ord = self.__max_ordinal();
1467
1468 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1469 ::fidl_next::Wire::zero_padding(&mut out);
1470
1471 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1472 ::fidl_next::wire::Envelope,
1473 >(encoder, max_ord);
1474
1475 for i in 1..=max_ord {
1476 match i {
1477 2 => {
1478 if let Some(value) = &self.source_path {
1479 ::fidl_next::wire::Envelope::encode_value::<
1480 ::fidl_next::wire::String<'static>,
1481 ___E,
1482 >(
1483 value, preallocated.encoder, &mut out, 1024
1484 )?;
1485 } else {
1486 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1487 }
1488 }
1489
1490 1 => {
1491 if let Some(value) = &self.name {
1492 ::fidl_next::wire::Envelope::encode_value::<
1493 ::fidl_next::wire::String<'static>,
1494 ___E,
1495 >(
1496 value, preallocated.encoder, &mut out, 100
1497 )?;
1498 } else {
1499 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1500 }
1501 }
1502
1503 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1504 }
1505 unsafe {
1506 preallocated.write_next(out.assume_init_ref());
1507 }
1508 }
1509
1510 ::fidl_next::wire::Table::encode_len(table, max_ord);
1511
1512 Ok(())
1513 }
1514 }
1515
1516 impl<'de> ::fidl_next::FromWire<crate::wire::Resolver<'de>> for Resolver {
1517 #[inline]
1518 fn from_wire(wire_: crate::wire::Resolver<'de>) -> Self {
1519 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
1520
1521 let name = wire_.table.get(1);
1522
1523 let source_path = wire_.table.get(2);
1524
1525 Self {
1526 name: name.map(|envelope| {
1527 ::fidl_next::FromWire::from_wire(unsafe {
1528 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1529 })
1530 }),
1531
1532 source_path: source_path.map(|envelope| {
1533 ::fidl_next::FromWire::from_wire(unsafe {
1534 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1535 })
1536 }),
1537 }
1538 }
1539 }
1540
1541 impl<'de> ::fidl_next::FromWireRef<crate::wire::Resolver<'de>> for Resolver {
1542 #[inline]
1543 fn from_wire_ref(wire: &crate::wire::Resolver<'de>) -> Self {
1544 Self {
1545 name: wire.table.get(1).map(|envelope| {
1546 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1547 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1548 })
1549 }),
1550
1551 source_path: wire.table.get(2).map(|envelope| {
1552 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1553 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1554 })
1555 }),
1556 }
1557 }
1558 }
1559
1560 #[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"]
1561 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1562 pub struct EventStream {
1563 pub name: ::core::option::Option<::std::string::String>,
1564 }
1565
1566 impl EventStream {
1567 fn __max_ordinal(&self) -> usize {
1568 if self.name.is_some() {
1569 return 1;
1570 }
1571
1572 0
1573 }
1574 }
1575
1576 unsafe impl<___E> ::fidl_next::Encode<crate::wire::EventStream<'static>, ___E> for EventStream
1577 where
1578 ___E: ::fidl_next::Encoder + ?Sized,
1579 {
1580 #[inline]
1581 fn encode(
1582 mut self,
1583 encoder: &mut ___E,
1584 out: &mut ::core::mem::MaybeUninit<crate::wire::EventStream<'static>>,
1585 _: (),
1586 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1587 ::fidl_next::munge!(let crate::wire::EventStream { table } = out);
1588
1589 let max_ord = self.__max_ordinal();
1590
1591 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1592 ::fidl_next::Wire::zero_padding(&mut out);
1593
1594 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1595 ::fidl_next::wire::Envelope,
1596 >(encoder, max_ord);
1597
1598 for i in 1..=max_ord {
1599 match i {
1600 1 => {
1601 if let Some(value) = self.name.take() {
1602 ::fidl_next::wire::Envelope::encode_value::<
1603 ::fidl_next::wire::String<'static>,
1604 ___E,
1605 >(
1606 value, preallocated.encoder, &mut out, 100
1607 )?;
1608 } else {
1609 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1610 }
1611 }
1612
1613 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1614 }
1615 unsafe {
1616 preallocated.write_next(out.assume_init_ref());
1617 }
1618 }
1619
1620 ::fidl_next::wire::Table::encode_len(table, max_ord);
1621
1622 Ok(())
1623 }
1624 }
1625
1626 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EventStream<'static>, ___E>
1627 for &'a EventStream
1628 where
1629 ___E: ::fidl_next::Encoder + ?Sized,
1630 {
1631 #[inline]
1632 fn encode(
1633 self,
1634 encoder: &mut ___E,
1635 out: &mut ::core::mem::MaybeUninit<crate::wire::EventStream<'static>>,
1636 _: (),
1637 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1638 ::fidl_next::munge!(let crate::wire::EventStream { table } = out);
1639
1640 let max_ord = self.__max_ordinal();
1641
1642 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
1643 ::fidl_next::Wire::zero_padding(&mut out);
1644
1645 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
1646 ::fidl_next::wire::Envelope,
1647 >(encoder, max_ord);
1648
1649 for i in 1..=max_ord {
1650 match i {
1651 1 => {
1652 if let Some(value) = &self.name {
1653 ::fidl_next::wire::Envelope::encode_value::<
1654 ::fidl_next::wire::String<'static>,
1655 ___E,
1656 >(
1657 value, preallocated.encoder, &mut out, 100
1658 )?;
1659 } else {
1660 ::fidl_next::wire::Envelope::encode_zero(&mut out)
1661 }
1662 }
1663
1664 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
1665 }
1666 unsafe {
1667 preallocated.write_next(out.assume_init_ref());
1668 }
1669 }
1670
1671 ::fidl_next::wire::Table::encode_len(table, max_ord);
1672
1673 Ok(())
1674 }
1675 }
1676
1677 impl<'de> ::fidl_next::FromWire<crate::wire::EventStream<'de>> for EventStream {
1678 #[inline]
1679 fn from_wire(wire_: crate::wire::EventStream<'de>) -> Self {
1680 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
1681
1682 let name = wire_.table.get(1);
1683
1684 Self {
1685 name: name.map(|envelope| {
1686 ::fidl_next::FromWire::from_wire(unsafe {
1687 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
1688 })
1689 }),
1690 }
1691 }
1692 }
1693
1694 impl<'de> ::fidl_next::FromWireRef<crate::wire::EventStream<'de>> for EventStream {
1695 #[inline]
1696 fn from_wire_ref(wire: &crate::wire::EventStream<'de>) -> Self {
1697 Self {
1698 name: wire.table.get(1).map(|envelope| {
1699 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
1700 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
1701 })
1702 }),
1703 }
1704 }
1705 }
1706
1707 #[doc = " A single configuration value.\n"]
1708 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
1709 pub enum ConfigSingleValue {
1710 Bool(bool),
1711
1712 Uint8(u8),
1713
1714 Uint16(u16),
1715
1716 Uint32(u32),
1717
1718 Uint64(u64),
1719
1720 Int8(i8),
1721
1722 Int16(i16),
1723
1724 Int32(i32),
1725
1726 Int64(i64),
1727
1728 String(::std::string::String),
1729
1730 UnknownOrdinal_(u64),
1731 }
1732
1733 impl ConfigSingleValue {
1734 pub fn is_unknown(&self) -> bool {
1735 #[allow(unreachable_patterns)]
1736 match self {
1737 Self::UnknownOrdinal_(_) => true,
1738 _ => false,
1739 }
1740 }
1741 }
1742
1743 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>
1744 for ConfigSingleValue
1745 where
1746 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1747 ___E: ::fidl_next::Encoder,
1748 {
1749 #[inline]
1750 fn encode(
1751 self,
1752 encoder: &mut ___E,
1753 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSingleValue<'static>>,
1754 _: (),
1755 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1756 ::fidl_next::munge!(let crate::wire::ConfigSingleValue { raw, _phantom: _ } = out);
1757
1758 match self {
1759 Self::Bool(value) => {
1760 ::fidl_next::wire::Union::encode_as::<___E, bool>(value, 1, encoder, raw, ())?
1761 }
1762
1763 Self::Uint8(value) => {
1764 ::fidl_next::wire::Union::encode_as::<___E, u8>(value, 2, encoder, raw, ())?
1765 }
1766
1767 Self::Uint16(value) => ::fidl_next::wire::Union::encode_as::<
1768 ___E,
1769 ::fidl_next::wire::Uint16,
1770 >(value, 3, encoder, raw, ())?,
1771
1772 Self::Uint32(value) => ::fidl_next::wire::Union::encode_as::<
1773 ___E,
1774 ::fidl_next::wire::Uint32,
1775 >(value, 4, encoder, raw, ())?,
1776
1777 Self::Uint64(value) => ::fidl_next::wire::Union::encode_as::<
1778 ___E,
1779 ::fidl_next::wire::Uint64,
1780 >(value, 5, encoder, raw, ())?,
1781
1782 Self::Int8(value) => {
1783 ::fidl_next::wire::Union::encode_as::<___E, i8>(value, 6, encoder, raw, ())?
1784 }
1785
1786 Self::Int16(value) => ::fidl_next::wire::Union::encode_as::<
1787 ___E,
1788 ::fidl_next::wire::Int16,
1789 >(value, 7, encoder, raw, ())?,
1790
1791 Self::Int32(value) => ::fidl_next::wire::Union::encode_as::<
1792 ___E,
1793 ::fidl_next::wire::Int32,
1794 >(value, 8, encoder, raw, ())?,
1795
1796 Self::Int64(value) => ::fidl_next::wire::Union::encode_as::<
1797 ___E,
1798 ::fidl_next::wire::Int64,
1799 >(value, 9, encoder, raw, ())?,
1800
1801 Self::String(value) => ::fidl_next::wire::Union::encode_as::<
1802 ___E,
1803 ::fidl_next::wire::String<'static>,
1804 >(value, 10, encoder, raw, 4294967295)?,
1805
1806 Self::UnknownOrdinal_(ordinal) => {
1807 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
1808 }
1809 }
1810
1811 Ok(())
1812 }
1813 }
1814
1815 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>
1816 for &'a ConfigSingleValue
1817 where
1818 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
1819 ___E: ::fidl_next::Encoder,
1820 {
1821 #[inline]
1822 fn encode(
1823 self,
1824 encoder: &mut ___E,
1825 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSingleValue<'static>>,
1826 _: (),
1827 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1828 ::fidl_next::munge!(let crate::wire::ConfigSingleValue { raw, _phantom: _ } = out);
1829
1830 match self {
1831 ConfigSingleValue::Bool(value) => {
1832 ::fidl_next::wire::Union::encode_as::<___E, bool>(value, 1, encoder, raw, ())?
1833 }
1834
1835 ConfigSingleValue::Uint8(value) => {
1836 ::fidl_next::wire::Union::encode_as::<___E, u8>(value, 2, encoder, raw, ())?
1837 }
1838
1839 ConfigSingleValue::Uint16(value) => ::fidl_next::wire::Union::encode_as::<
1840 ___E,
1841 ::fidl_next::wire::Uint16,
1842 >(value, 3, encoder, raw, ())?,
1843
1844 ConfigSingleValue::Uint32(value) => ::fidl_next::wire::Union::encode_as::<
1845 ___E,
1846 ::fidl_next::wire::Uint32,
1847 >(value, 4, encoder, raw, ())?,
1848
1849 ConfigSingleValue::Uint64(value) => ::fidl_next::wire::Union::encode_as::<
1850 ___E,
1851 ::fidl_next::wire::Uint64,
1852 >(value, 5, encoder, raw, ())?,
1853
1854 ConfigSingleValue::Int8(value) => {
1855 ::fidl_next::wire::Union::encode_as::<___E, i8>(value, 6, encoder, raw, ())?
1856 }
1857
1858 ConfigSingleValue::Int16(value) => ::fidl_next::wire::Union::encode_as::<
1859 ___E,
1860 ::fidl_next::wire::Int16,
1861 >(value, 7, encoder, raw, ())?,
1862
1863 ConfigSingleValue::Int32(value) => ::fidl_next::wire::Union::encode_as::<
1864 ___E,
1865 ::fidl_next::wire::Int32,
1866 >(value, 8, encoder, raw, ())?,
1867
1868 ConfigSingleValue::Int64(value) => ::fidl_next::wire::Union::encode_as::<
1869 ___E,
1870 ::fidl_next::wire::Int64,
1871 >(value, 9, encoder, raw, ())?,
1872
1873 ConfigSingleValue::String(value) => {
1874 ::fidl_next::wire::Union::encode_as::<___E, ::fidl_next::wire::String<'static>>(
1875 value, 10, encoder, raw, 4294967295,
1876 )?
1877 }
1878
1879 ConfigSingleValue::UnknownOrdinal_(ordinal) => {
1880 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
1881 }
1882 }
1883
1884 Ok(())
1885 }
1886 }
1887
1888 unsafe impl<___E>
1889 ::fidl_next::EncodeOption<crate::wire_optional::ConfigSingleValue<'static>, ___E>
1890 for ConfigSingleValue
1891 where
1892 ___E: ?Sized,
1893 ConfigSingleValue: ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>,
1894 {
1895 #[inline]
1896 fn encode_option(
1897 this: ::core::option::Option<Self>,
1898 encoder: &mut ___E,
1899 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigSingleValue<'static>>,
1900 _: (),
1901 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1902 ::fidl_next::munge!(let crate::wire_optional::ConfigSingleValue { raw, _phantom: _ } = &mut *out);
1903
1904 if let Some(inner) = this {
1905 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
1906 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
1907 } else {
1908 ::fidl_next::wire::Union::encode_absent(raw);
1909 }
1910
1911 Ok(())
1912 }
1913 }
1914
1915 unsafe impl<'a, ___E>
1916 ::fidl_next::EncodeOption<crate::wire_optional::ConfigSingleValue<'static>, ___E>
1917 for &'a ConfigSingleValue
1918 where
1919 ___E: ?Sized,
1920 &'a ConfigSingleValue: ::fidl_next::Encode<crate::wire::ConfigSingleValue<'static>, ___E>,
1921 {
1922 #[inline]
1923 fn encode_option(
1924 this: ::core::option::Option<Self>,
1925 encoder: &mut ___E,
1926 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigSingleValue<'static>>,
1927 _: (),
1928 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
1929 ::fidl_next::munge!(let crate::wire_optional::ConfigSingleValue { raw, _phantom: _ } = &mut *out);
1930
1931 if let Some(inner) = this {
1932 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
1933 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
1934 } else {
1935 ::fidl_next::wire::Union::encode_absent(raw);
1936 }
1937
1938 Ok(())
1939 }
1940 }
1941
1942 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSingleValue<'de>> for ConfigSingleValue {
1943 #[inline]
1944 fn from_wire(wire: crate::wire::ConfigSingleValue<'de>) -> Self {
1945 let wire = ::core::mem::ManuallyDrop::new(wire);
1946 match wire.raw.ordinal() {
1947 1 => Self::Bool(::fidl_next::FromWire::from_wire(unsafe {
1948 wire.raw.get().read_unchecked::<bool>()
1949 })),
1950
1951 2 => Self::Uint8(::fidl_next::FromWire::from_wire(unsafe {
1952 wire.raw.get().read_unchecked::<u8>()
1953 })),
1954
1955 3 => Self::Uint16(::fidl_next::FromWire::from_wire(unsafe {
1956 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint16>()
1957 })),
1958
1959 4 => Self::Uint32(::fidl_next::FromWire::from_wire(unsafe {
1960 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
1961 })),
1962
1963 5 => Self::Uint64(::fidl_next::FromWire::from_wire(unsafe {
1964 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint64>()
1965 })),
1966
1967 6 => Self::Int8(::fidl_next::FromWire::from_wire(unsafe {
1968 wire.raw.get().read_unchecked::<i8>()
1969 })),
1970
1971 7 => Self::Int16(::fidl_next::FromWire::from_wire(unsafe {
1972 wire.raw.get().read_unchecked::<::fidl_next::wire::Int16>()
1973 })),
1974
1975 8 => Self::Int32(::fidl_next::FromWire::from_wire(unsafe {
1976 wire.raw.get().read_unchecked::<::fidl_next::wire::Int32>()
1977 })),
1978
1979 9 => Self::Int64(::fidl_next::FromWire::from_wire(unsafe {
1980 wire.raw.get().read_unchecked::<::fidl_next::wire::Int64>()
1981 })),
1982
1983 10 => Self::String(::fidl_next::FromWire::from_wire(unsafe {
1984 wire.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
1985 })),
1986
1987 ord => return Self::UnknownOrdinal_(ord as u64),
1988 }
1989 }
1990 }
1991
1992 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSingleValue<'de>> for ConfigSingleValue {
1993 #[inline]
1994 fn from_wire_ref(wire: &crate::wire::ConfigSingleValue<'de>) -> Self {
1995 match wire.raw.ordinal() {
1996 1 => Self::Bool(::fidl_next::FromWireRef::from_wire_ref(unsafe {
1997 wire.raw.get().deref_unchecked::<bool>()
1998 })),
1999
2000 2 => Self::Uint8(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2001 wire.raw.get().deref_unchecked::<u8>()
2002 })),
2003
2004 3 => Self::Uint16(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2005 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint16>()
2006 })),
2007
2008 4 => Self::Uint32(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2009 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
2010 })),
2011
2012 5 => Self::Uint64(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2013 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint64>()
2014 })),
2015
2016 6 => Self::Int8(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2017 wire.raw.get().deref_unchecked::<i8>()
2018 })),
2019
2020 7 => Self::Int16(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2021 wire.raw.get().deref_unchecked::<::fidl_next::wire::Int16>()
2022 })),
2023
2024 8 => Self::Int32(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2025 wire.raw.get().deref_unchecked::<::fidl_next::wire::Int32>()
2026 })),
2027
2028 9 => Self::Int64(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2029 wire.raw.get().deref_unchecked::<::fidl_next::wire::Int64>()
2030 })),
2031
2032 10 => Self::String(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2033 wire.raw.get().deref_unchecked::<::fidl_next::wire::String<'de>>()
2034 })),
2035
2036 ord => return Self::UnknownOrdinal_(ord as u64),
2037 }
2038 }
2039 }
2040
2041 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigSingleValue<'de>>
2042 for ConfigSingleValue
2043 {
2044 #[inline]
2045 fn from_wire_option(
2046 wire: crate::wire_optional::ConfigSingleValue<'de>,
2047 ) -> ::core::option::Option<Self> {
2048 if let Some(inner) = wire.into_option() {
2049 Some(::fidl_next::FromWire::from_wire(inner))
2050 } else {
2051 None
2052 }
2053 }
2054 }
2055
2056 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigSingleValue<'de>>
2057 for Box<ConfigSingleValue>
2058 {
2059 #[inline]
2060 fn from_wire_option(
2061 wire: crate::wire_optional::ConfigSingleValue<'de>,
2062 ) -> ::core::option::Option<Self> {
2063 <ConfigSingleValue as ::fidl_next::FromWireOption<
2064 crate::wire_optional::ConfigSingleValue<'de>,
2065 >>::from_wire_option(wire)
2066 .map(Box::new)
2067 }
2068 }
2069
2070 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigSingleValue<'de>>
2071 for Box<ConfigSingleValue>
2072 {
2073 #[inline]
2074 fn from_wire_option_ref(
2075 wire: &crate::wire_optional::ConfigSingleValue<'de>,
2076 ) -> ::core::option::Option<Self> {
2077 if let Some(inner) = wire.as_ref() {
2078 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
2079 } else {
2080 None
2081 }
2082 }
2083 }
2084
2085 #[doc = " A vector configuration value.\n"]
2086 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2087 pub enum ConfigVectorValue {
2088 BoolVector(::std::vec::Vec<bool>),
2089
2090 Uint8Vector(::std::vec::Vec<u8>),
2091
2092 Uint16Vector(::std::vec::Vec<u16>),
2093
2094 Uint32Vector(::std::vec::Vec<u32>),
2095
2096 Uint64Vector(::std::vec::Vec<u64>),
2097
2098 Int8Vector(::std::vec::Vec<i8>),
2099
2100 Int16Vector(::std::vec::Vec<i16>),
2101
2102 Int32Vector(::std::vec::Vec<i32>),
2103
2104 Int64Vector(::std::vec::Vec<i64>),
2105
2106 StringVector(::std::vec::Vec<::std::string::String>),
2107
2108 UnknownOrdinal_(u64),
2109 }
2110
2111 impl ConfigVectorValue {
2112 pub fn is_unknown(&self) -> bool {
2113 #[allow(unreachable_patterns)]
2114 match self {
2115 Self::UnknownOrdinal_(_) => true,
2116 _ => false,
2117 }
2118 }
2119 }
2120
2121 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>
2122 for ConfigVectorValue
2123 where
2124 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2125 ___E: ::fidl_next::Encoder,
2126 {
2127 #[inline]
2128 fn encode(
2129 self,
2130 encoder: &mut ___E,
2131 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigVectorValue<'static>>,
2132 _: (),
2133 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2134 ::fidl_next::munge!(let crate::wire::ConfigVectorValue { raw, _phantom: _ } = out);
2135
2136 match self {
2137 Self::BoolVector(value) => {
2138 ::fidl_next::wire::Union::encode_as::<
2139 ___E,
2140 ::fidl_next::wire::Vector<'static, bool>,
2141 >(value, 1, encoder, raw, (4294967295, ()))?
2142 }
2143
2144 Self::Uint8Vector(value) => {
2145 ::fidl_next::wire::Union::encode_as::<
2146 ___E,
2147 ::fidl_next::wire::Vector<'static, u8>,
2148 >(value, 2, encoder, raw, (4294967295, ()))?
2149 }
2150
2151 Self::Uint16Vector(value) => {
2152 ::fidl_next::wire::Union::encode_as::<
2153 ___E,
2154 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint16>,
2155 >(value, 3, encoder, raw, (4294967295, ()))?
2156 }
2157
2158 Self::Uint32Vector(value) => {
2159 ::fidl_next::wire::Union::encode_as::<
2160 ___E,
2161 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>,
2162 >(value, 4, encoder, raw, (4294967295, ()))?
2163 }
2164
2165 Self::Uint64Vector(value) => {
2166 ::fidl_next::wire::Union::encode_as::<
2167 ___E,
2168 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint64>,
2169 >(value, 5, encoder, raw, (4294967295, ()))?
2170 }
2171
2172 Self::Int8Vector(value) => {
2173 ::fidl_next::wire::Union::encode_as::<
2174 ___E,
2175 ::fidl_next::wire::Vector<'static, i8>,
2176 >(value, 6, encoder, raw, (4294967295, ()))?
2177 }
2178
2179 Self::Int16Vector(value) => {
2180 ::fidl_next::wire::Union::encode_as::<
2181 ___E,
2182 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int16>,
2183 >(value, 7, encoder, raw, (4294967295, ()))?
2184 }
2185
2186 Self::Int32Vector(value) => {
2187 ::fidl_next::wire::Union::encode_as::<
2188 ___E,
2189 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int32>,
2190 >(value, 8, encoder, raw, (4294967295, ()))?
2191 }
2192
2193 Self::Int64Vector(value) => {
2194 ::fidl_next::wire::Union::encode_as::<
2195 ___E,
2196 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int64>,
2197 >(value, 9, encoder, raw, (4294967295, ()))?
2198 }
2199
2200 Self::StringVector(value) => {
2201 ::fidl_next::wire::Union::encode_as::<
2202 ___E,
2203 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::String<'static>>,
2204 >(value, 10, encoder, raw, (4294967295, 4294967295))?
2205 }
2206
2207 Self::UnknownOrdinal_(ordinal) => {
2208 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
2209 }
2210 }
2211
2212 Ok(())
2213 }
2214 }
2215
2216 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>
2217 for &'a ConfigVectorValue
2218 where
2219 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2220 ___E: ::fidl_next::Encoder,
2221 {
2222 #[inline]
2223 fn encode(
2224 self,
2225 encoder: &mut ___E,
2226 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigVectorValue<'static>>,
2227 _: (),
2228 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2229 ::fidl_next::munge!(let crate::wire::ConfigVectorValue { raw, _phantom: _ } = out);
2230
2231 match self {
2232 ConfigVectorValue::BoolVector(value) => {
2233 ::fidl_next::wire::Union::encode_as::<
2234 ___E,
2235 ::fidl_next::wire::Vector<'static, bool>,
2236 >(value, 1, encoder, raw, (4294967295, ()))?
2237 }
2238
2239 ConfigVectorValue::Uint8Vector(value) => {
2240 ::fidl_next::wire::Union::encode_as::<
2241 ___E,
2242 ::fidl_next::wire::Vector<'static, u8>,
2243 >(value, 2, encoder, raw, (4294967295, ()))?
2244 }
2245
2246 ConfigVectorValue::Uint16Vector(value) => {
2247 ::fidl_next::wire::Union::encode_as::<
2248 ___E,
2249 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint16>,
2250 >(value, 3, encoder, raw, (4294967295, ()))?
2251 }
2252
2253 ConfigVectorValue::Uint32Vector(value) => {
2254 ::fidl_next::wire::Union::encode_as::<
2255 ___E,
2256 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint32>,
2257 >(value, 4, encoder, raw, (4294967295, ()))?
2258 }
2259
2260 ConfigVectorValue::Uint64Vector(value) => {
2261 ::fidl_next::wire::Union::encode_as::<
2262 ___E,
2263 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Uint64>,
2264 >(value, 5, encoder, raw, (4294967295, ()))?
2265 }
2266
2267 ConfigVectorValue::Int8Vector(value) => {
2268 ::fidl_next::wire::Union::encode_as::<
2269 ___E,
2270 ::fidl_next::wire::Vector<'static, i8>,
2271 >(value, 6, encoder, raw, (4294967295, ()))?
2272 }
2273
2274 ConfigVectorValue::Int16Vector(value) => {
2275 ::fidl_next::wire::Union::encode_as::<
2276 ___E,
2277 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int16>,
2278 >(value, 7, encoder, raw, (4294967295, ()))?
2279 }
2280
2281 ConfigVectorValue::Int32Vector(value) => {
2282 ::fidl_next::wire::Union::encode_as::<
2283 ___E,
2284 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int32>,
2285 >(value, 8, encoder, raw, (4294967295, ()))?
2286 }
2287
2288 ConfigVectorValue::Int64Vector(value) => {
2289 ::fidl_next::wire::Union::encode_as::<
2290 ___E,
2291 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::Int64>,
2292 >(value, 9, encoder, raw, (4294967295, ()))?
2293 }
2294
2295 ConfigVectorValue::StringVector(value) => {
2296 ::fidl_next::wire::Union::encode_as::<
2297 ___E,
2298 ::fidl_next::wire::Vector<'static, ::fidl_next::wire::String<'static>>,
2299 >(value, 10, encoder, raw, (4294967295, 4294967295))?
2300 }
2301
2302 ConfigVectorValue::UnknownOrdinal_(ordinal) => {
2303 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
2304 }
2305 }
2306
2307 Ok(())
2308 }
2309 }
2310
2311 unsafe impl<___E>
2312 ::fidl_next::EncodeOption<crate::wire_optional::ConfigVectorValue<'static>, ___E>
2313 for ConfigVectorValue
2314 where
2315 ___E: ?Sized,
2316 ConfigVectorValue: ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>,
2317 {
2318 #[inline]
2319 fn encode_option(
2320 this: ::core::option::Option<Self>,
2321 encoder: &mut ___E,
2322 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigVectorValue<'static>>,
2323 _: (),
2324 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2325 ::fidl_next::munge!(let crate::wire_optional::ConfigVectorValue { raw, _phantom: _ } = &mut *out);
2326
2327 if let Some(inner) = this {
2328 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2329 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2330 } else {
2331 ::fidl_next::wire::Union::encode_absent(raw);
2332 }
2333
2334 Ok(())
2335 }
2336 }
2337
2338 unsafe impl<'a, ___E>
2339 ::fidl_next::EncodeOption<crate::wire_optional::ConfigVectorValue<'static>, ___E>
2340 for &'a ConfigVectorValue
2341 where
2342 ___E: ?Sized,
2343 &'a ConfigVectorValue: ::fidl_next::Encode<crate::wire::ConfigVectorValue<'static>, ___E>,
2344 {
2345 #[inline]
2346 fn encode_option(
2347 this: ::core::option::Option<Self>,
2348 encoder: &mut ___E,
2349 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigVectorValue<'static>>,
2350 _: (),
2351 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2352 ::fidl_next::munge!(let crate::wire_optional::ConfigVectorValue { raw, _phantom: _ } = &mut *out);
2353
2354 if let Some(inner) = this {
2355 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2356 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2357 } else {
2358 ::fidl_next::wire::Union::encode_absent(raw);
2359 }
2360
2361 Ok(())
2362 }
2363 }
2364
2365 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigVectorValue<'de>> for ConfigVectorValue {
2366 #[inline]
2367 fn from_wire(wire: crate::wire::ConfigVectorValue<'de>) -> Self {
2368 let wire = ::core::mem::ManuallyDrop::new(wire);
2369 match wire.raw.ordinal() {
2370 1 => Self::BoolVector(::fidl_next::FromWire::from_wire(unsafe {
2371 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
2372 })),
2373
2374 2 => Self::Uint8Vector(::fidl_next::FromWire::from_wire(unsafe {
2375 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
2376 })),
2377
2378 3 => Self::Uint16Vector(::fidl_next::FromWire::from_wire(unsafe {
2379 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
2380 })),
2381
2382 4 => Self::Uint32Vector(::fidl_next::FromWire::from_wire(unsafe {
2383 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
2384 })),
2385
2386 5 => Self::Uint64Vector(::fidl_next::FromWire::from_wire(unsafe {
2387 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
2388 })),
2389
2390 6 => Self::Int8Vector(::fidl_next::FromWire::from_wire(unsafe {
2391 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
2392 })),
2393
2394 7 => {
2395 Self::Int16Vector(::fidl_next::FromWire::from_wire(unsafe {
2396 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
2397 }))
2398 }
2399
2400 8 => {
2401 Self::Int32Vector(::fidl_next::FromWire::from_wire(unsafe {
2402 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
2403 }))
2404 }
2405
2406 9 => {
2407 Self::Int64Vector(::fidl_next::FromWire::from_wire(unsafe {
2408 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
2409 }))
2410 }
2411
2412 10 => Self::StringVector(::fidl_next::FromWire::from_wire(unsafe {
2413 wire.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
2414 })),
2415
2416 ord => return Self::UnknownOrdinal_(ord as u64),
2417 }
2418 }
2419 }
2420
2421 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigVectorValue<'de>> for ConfigVectorValue {
2422 #[inline]
2423 fn from_wire_ref(wire: &crate::wire::ConfigVectorValue<'de>) -> Self {
2424 match wire.raw.ordinal() {
2425 1 => Self::BoolVector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2426 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
2427 })),
2428
2429 2 => Self::Uint8Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2430 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
2431 })),
2432
2433 3 => Self::Uint16Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2434 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
2435 })),
2436
2437 4 => Self::Uint32Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2438 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
2439 })),
2440
2441 5 => Self::Uint64Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2442 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
2443 })),
2444
2445 6 => Self::Int8Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2446 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
2447 })),
2448
2449 7 => Self::Int16Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2450 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
2451 })),
2452
2453 8 => Self::Int32Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2454 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
2455 })),
2456
2457 9 => Self::Int64Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2458 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
2459 })),
2460
2461 10 => Self::StringVector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2462 wire.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
2463 })),
2464
2465 ord => return Self::UnknownOrdinal_(ord as u64),
2466 }
2467 }
2468 }
2469
2470 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigVectorValue<'de>>
2471 for ConfigVectorValue
2472 {
2473 #[inline]
2474 fn from_wire_option(
2475 wire: crate::wire_optional::ConfigVectorValue<'de>,
2476 ) -> ::core::option::Option<Self> {
2477 if let Some(inner) = wire.into_option() {
2478 Some(::fidl_next::FromWire::from_wire(inner))
2479 } else {
2480 None
2481 }
2482 }
2483 }
2484
2485 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigVectorValue<'de>>
2486 for Box<ConfigVectorValue>
2487 {
2488 #[inline]
2489 fn from_wire_option(
2490 wire: crate::wire_optional::ConfigVectorValue<'de>,
2491 ) -> ::core::option::Option<Self> {
2492 <ConfigVectorValue as ::fidl_next::FromWireOption<
2493 crate::wire_optional::ConfigVectorValue<'de>,
2494 >>::from_wire_option(wire)
2495 .map(Box::new)
2496 }
2497 }
2498
2499 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigVectorValue<'de>>
2500 for Box<ConfigVectorValue>
2501 {
2502 #[inline]
2503 fn from_wire_option_ref(
2504 wire: &crate::wire_optional::ConfigVectorValue<'de>,
2505 ) -> ::core::option::Option<Self> {
2506 if let Some(inner) = wire.as_ref() {
2507 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
2508 } else {
2509 None
2510 }
2511 }
2512 }
2513
2514 #[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"]
2515 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2516 pub enum ConfigValue {
2517 Single(crate::natural::ConfigSingleValue),
2518
2519 Vector(crate::natural::ConfigVectorValue),
2520
2521 UnknownOrdinal_(u64),
2522 }
2523
2524 impl ConfigValue {
2525 pub fn is_unknown(&self) -> bool {
2526 #[allow(unreachable_patterns)]
2527 match self {
2528 Self::UnknownOrdinal_(_) => true,
2529 _ => false,
2530 }
2531 }
2532 }
2533
2534 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E> for ConfigValue
2535 where
2536 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2537 ___E: ::fidl_next::Encoder,
2538 {
2539 #[inline]
2540 fn encode(
2541 self,
2542 encoder: &mut ___E,
2543 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValue<'static>>,
2544 _: (),
2545 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2546 ::fidl_next::munge!(let crate::wire::ConfigValue { raw, _phantom: _ } = out);
2547
2548 match self {
2549 Self::Single(value) => ::fidl_next::wire::Union::encode_as::<
2550 ___E,
2551 crate::wire::ConfigSingleValue<'static>,
2552 >(value, 1, encoder, raw, ())?,
2553
2554 Self::Vector(value) => ::fidl_next::wire::Union::encode_as::<
2555 ___E,
2556 crate::wire::ConfigVectorValue<'static>,
2557 >(value, 2, encoder, raw, ())?,
2558
2559 Self::UnknownOrdinal_(ordinal) => {
2560 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
2561 }
2562 }
2563
2564 Ok(())
2565 }
2566 }
2567
2568 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>
2569 for &'a ConfigValue
2570 where
2571 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
2572 ___E: ::fidl_next::Encoder,
2573 {
2574 #[inline]
2575 fn encode(
2576 self,
2577 encoder: &mut ___E,
2578 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValue<'static>>,
2579 _: (),
2580 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2581 ::fidl_next::munge!(let crate::wire::ConfigValue { raw, _phantom: _ } = out);
2582
2583 match self {
2584 ConfigValue::Single(value) => ::fidl_next::wire::Union::encode_as::<
2585 ___E,
2586 crate::wire::ConfigSingleValue<'static>,
2587 >(value, 1, encoder, raw, ())?,
2588
2589 ConfigValue::Vector(value) => ::fidl_next::wire::Union::encode_as::<
2590 ___E,
2591 crate::wire::ConfigVectorValue<'static>,
2592 >(value, 2, encoder, raw, ())?,
2593
2594 ConfigValue::UnknownOrdinal_(ordinal) => {
2595 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
2596 }
2597 }
2598
2599 Ok(())
2600 }
2601 }
2602
2603 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::ConfigValue<'static>, ___E>
2604 for ConfigValue
2605 where
2606 ___E: ?Sized,
2607 ConfigValue: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
2608 {
2609 #[inline]
2610 fn encode_option(
2611 this: ::core::option::Option<Self>,
2612 encoder: &mut ___E,
2613 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValue<'static>>,
2614 _: (),
2615 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2616 ::fidl_next::munge!(let crate::wire_optional::ConfigValue { raw, _phantom: _ } = &mut *out);
2617
2618 if let Some(inner) = this {
2619 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2620 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2621 } else {
2622 ::fidl_next::wire::Union::encode_absent(raw);
2623 }
2624
2625 Ok(())
2626 }
2627 }
2628
2629 unsafe impl<'a, ___E>
2630 ::fidl_next::EncodeOption<crate::wire_optional::ConfigValue<'static>, ___E>
2631 for &'a ConfigValue
2632 where
2633 ___E: ?Sized,
2634 &'a ConfigValue: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
2635 {
2636 #[inline]
2637 fn encode_option(
2638 this: ::core::option::Option<Self>,
2639 encoder: &mut ___E,
2640 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValue<'static>>,
2641 _: (),
2642 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2643 ::fidl_next::munge!(let crate::wire_optional::ConfigValue { raw, _phantom: _ } = &mut *out);
2644
2645 if let Some(inner) = this {
2646 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
2647 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
2648 } else {
2649 ::fidl_next::wire::Union::encode_absent(raw);
2650 }
2651
2652 Ok(())
2653 }
2654 }
2655
2656 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValue<'de>> for ConfigValue {
2657 #[inline]
2658 fn from_wire(wire: crate::wire::ConfigValue<'de>) -> Self {
2659 let wire = ::core::mem::ManuallyDrop::new(wire);
2660 match wire.raw.ordinal() {
2661 1 => Self::Single(::fidl_next::FromWire::from_wire(unsafe {
2662 wire.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
2663 })),
2664
2665 2 => Self::Vector(::fidl_next::FromWire::from_wire(unsafe {
2666 wire.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
2667 })),
2668
2669 ord => return Self::UnknownOrdinal_(ord as u64),
2670 }
2671 }
2672 }
2673
2674 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValue<'de>> for ConfigValue {
2675 #[inline]
2676 fn from_wire_ref(wire: &crate::wire::ConfigValue<'de>) -> Self {
2677 match wire.raw.ordinal() {
2678 1 => Self::Single(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2679 wire.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'de>>()
2680 })),
2681
2682 2 => Self::Vector(::fidl_next::FromWireRef::from_wire_ref(unsafe {
2683 wire.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'de>>()
2684 })),
2685
2686 ord => return Self::UnknownOrdinal_(ord as u64),
2687 }
2688 }
2689 }
2690
2691 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>> for ConfigValue {
2692 #[inline]
2693 fn from_wire_option(
2694 wire: crate::wire_optional::ConfigValue<'de>,
2695 ) -> ::core::option::Option<Self> {
2696 if let Some(inner) = wire.into_option() {
2697 Some(::fidl_next::FromWire::from_wire(inner))
2698 } else {
2699 None
2700 }
2701 }
2702 }
2703
2704 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>> for Box<ConfigValue> {
2705 #[inline]
2706 fn from_wire_option(
2707 wire: crate::wire_optional::ConfigValue<'de>,
2708 ) -> ::core::option::Option<Self> {
2709 <
2710 ConfigValue as ::fidl_next::FromWireOption<crate::wire_optional::ConfigValue<'de>>
2711 >::from_wire_option(wire).map(Box::new)
2712 }
2713 }
2714
2715 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigValue<'de>>
2716 for Box<ConfigValue>
2717 {
2718 #[inline]
2719 fn from_wire_option_ref(
2720 wire: &crate::wire_optional::ConfigValue<'de>,
2721 ) -> ::core::option::Option<Self> {
2722 if let Some(inner) = wire.as_ref() {
2723 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
2724 } else {
2725 None
2726 }
2727 }
2728 }
2729
2730 #[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"]
2731 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2732 pub struct Configuration {
2733 pub name: ::core::option::Option<::std::string::String>,
2734
2735 pub value: ::core::option::Option<crate::natural::ConfigValue>,
2736 }
2737
2738 impl Configuration {
2739 fn __max_ordinal(&self) -> usize {
2740 if self.value.is_some() {
2741 return 2;
2742 }
2743
2744 if self.name.is_some() {
2745 return 1;
2746 }
2747
2748 0
2749 }
2750 }
2751
2752 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Configuration<'static>, ___E> for Configuration
2753 where
2754 ___E: ::fidl_next::Encoder + ?Sized,
2755 {
2756 #[inline]
2757 fn encode(
2758 mut self,
2759 encoder: &mut ___E,
2760 out: &mut ::core::mem::MaybeUninit<crate::wire::Configuration<'static>>,
2761 _: (),
2762 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2763 ::fidl_next::munge!(let crate::wire::Configuration { table } = out);
2764
2765 let max_ord = self.__max_ordinal();
2766
2767 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2768 ::fidl_next::Wire::zero_padding(&mut out);
2769
2770 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2771 ::fidl_next::wire::Envelope,
2772 >(encoder, max_ord);
2773
2774 for i in 1..=max_ord {
2775 match i {
2776 2 => {
2777 if let Some(value) = self.value.take() {
2778 ::fidl_next::wire::Envelope::encode_value::<
2779 crate::wire::ConfigValue<'static>,
2780 ___E,
2781 >(
2782 value, preallocated.encoder, &mut out, ()
2783 )?;
2784 } else {
2785 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2786 }
2787 }
2788
2789 1 => {
2790 if let Some(value) = self.name.take() {
2791 ::fidl_next::wire::Envelope::encode_value::<
2792 ::fidl_next::wire::String<'static>,
2793 ___E,
2794 >(
2795 value, preallocated.encoder, &mut out, 100
2796 )?;
2797 } else {
2798 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2799 }
2800 }
2801
2802 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2803 }
2804 unsafe {
2805 preallocated.write_next(out.assume_init_ref());
2806 }
2807 }
2808
2809 ::fidl_next::wire::Table::encode_len(table, max_ord);
2810
2811 Ok(())
2812 }
2813 }
2814
2815 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Configuration<'static>, ___E>
2816 for &'a Configuration
2817 where
2818 ___E: ::fidl_next::Encoder + ?Sized,
2819 {
2820 #[inline]
2821 fn encode(
2822 self,
2823 encoder: &mut ___E,
2824 out: &mut ::core::mem::MaybeUninit<crate::wire::Configuration<'static>>,
2825 _: (),
2826 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2827 ::fidl_next::munge!(let crate::wire::Configuration { table } = out);
2828
2829 let max_ord = self.__max_ordinal();
2830
2831 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
2832 ::fidl_next::Wire::zero_padding(&mut out);
2833
2834 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
2835 ::fidl_next::wire::Envelope,
2836 >(encoder, max_ord);
2837
2838 for i in 1..=max_ord {
2839 match i {
2840 2 => {
2841 if let Some(value) = &self.value {
2842 ::fidl_next::wire::Envelope::encode_value::<
2843 crate::wire::ConfigValue<'static>,
2844 ___E,
2845 >(
2846 value, preallocated.encoder, &mut out, ()
2847 )?;
2848 } else {
2849 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2850 }
2851 }
2852
2853 1 => {
2854 if let Some(value) = &self.name {
2855 ::fidl_next::wire::Envelope::encode_value::<
2856 ::fidl_next::wire::String<'static>,
2857 ___E,
2858 >(
2859 value, preallocated.encoder, &mut out, 100
2860 )?;
2861 } else {
2862 ::fidl_next::wire::Envelope::encode_zero(&mut out)
2863 }
2864 }
2865
2866 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
2867 }
2868 unsafe {
2869 preallocated.write_next(out.assume_init_ref());
2870 }
2871 }
2872
2873 ::fidl_next::wire::Table::encode_len(table, max_ord);
2874
2875 Ok(())
2876 }
2877 }
2878
2879 impl<'de> ::fidl_next::FromWire<crate::wire::Configuration<'de>> for Configuration {
2880 #[inline]
2881 fn from_wire(wire_: crate::wire::Configuration<'de>) -> Self {
2882 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
2883
2884 let name = wire_.table.get(1);
2885
2886 let value = wire_.table.get(2);
2887
2888 Self {
2889 name: name.map(|envelope| {
2890 ::fidl_next::FromWire::from_wire(unsafe {
2891 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
2892 })
2893 }),
2894
2895 value: value.map(|envelope| {
2896 ::fidl_next::FromWire::from_wire(unsafe {
2897 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
2898 })
2899 }),
2900 }
2901 }
2902 }
2903
2904 impl<'de> ::fidl_next::FromWireRef<crate::wire::Configuration<'de>> for Configuration {
2905 #[inline]
2906 fn from_wire_ref(wire: &crate::wire::Configuration<'de>) -> Self {
2907 Self {
2908 name: wire.table.get(1).map(|envelope| {
2909 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2910 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
2911 })
2912 }),
2913
2914 value: wire.table.get(2).map(|envelope| {
2915 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
2916 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
2917 })
2918 }),
2919 }
2920 }
2921 }
2922
2923 #[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"]
2924 pub type DictionaryPath = ::std::string::String;
2925
2926 #[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"]
2927 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
2928 #[repr(u32)]
2929 pub enum DeliveryType {
2930 Immediate = 0,
2931 OnReadable = 1,
2932 UnknownOrdinal_(u32) = 2,
2933 }
2934 impl ::std::convert::From<u32> for DeliveryType {
2935 fn from(value: u32) -> Self {
2936 match value {
2937 0 => Self::Immediate,
2938 1 => Self::OnReadable,
2939
2940 _ => Self::UnknownOrdinal_(value),
2941 }
2942 }
2943 }
2944
2945 impl ::std::convert::From<DeliveryType> for u32 {
2946 fn from(value: DeliveryType) -> Self {
2947 match value {
2948 DeliveryType::Immediate => 0,
2949 DeliveryType::OnReadable => 1,
2950
2951 DeliveryType::UnknownOrdinal_(value) => value,
2952 }
2953 }
2954 }
2955
2956 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DeliveryType, ___E> for DeliveryType
2957 where
2958 ___E: ?Sized,
2959 {
2960 #[inline]
2961 fn encode(
2962 self,
2963 encoder: &mut ___E,
2964 out: &mut ::core::mem::MaybeUninit<crate::wire::DeliveryType>,
2965 _: (),
2966 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2967 ::fidl_next::Encode::encode(&self, encoder, out, ())
2968 }
2969 }
2970
2971 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DeliveryType, ___E> for &'a DeliveryType
2972 where
2973 ___E: ?Sized,
2974 {
2975 #[inline]
2976 fn encode(
2977 self,
2978 encoder: &mut ___E,
2979 out: &mut ::core::mem::MaybeUninit<crate::wire::DeliveryType>,
2980 _: (),
2981 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
2982 ::fidl_next::munge!(let crate::wire::DeliveryType { value } = out);
2983 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
2984 DeliveryType::Immediate => 0,
2985
2986 DeliveryType::OnReadable => 1,
2987
2988 DeliveryType::UnknownOrdinal_(value) => value,
2989 }));
2990
2991 Ok(())
2992 }
2993 }
2994
2995 impl ::core::convert::From<crate::wire::DeliveryType> for DeliveryType {
2996 fn from(wire: crate::wire::DeliveryType) -> Self {
2997 match u32::from(wire.value) {
2998 0 => Self::Immediate,
2999
3000 1 => Self::OnReadable,
3001
3002 value => Self::UnknownOrdinal_(value),
3003 }
3004 }
3005 }
3006
3007 impl ::fidl_next::FromWire<crate::wire::DeliveryType> for DeliveryType {
3008 #[inline]
3009 fn from_wire(wire: crate::wire::DeliveryType) -> Self {
3010 Self::from(wire)
3011 }
3012 }
3013
3014 impl ::fidl_next::FromWireRef<crate::wire::DeliveryType> for DeliveryType {
3015 #[inline]
3016 fn from_wire_ref(wire: &crate::wire::DeliveryType) -> Self {
3017 Self::from(*wire)
3018 }
3019 }
3020
3021 #[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"]
3022 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3023 pub struct Protocol {
3024 pub name: ::core::option::Option<::std::string::String>,
3025
3026 pub source_path: ::core::option::Option<::std::string::String>,
3027
3028 pub delivery: ::core::option::Option<crate::natural::DeliveryType>,
3029 }
3030
3031 impl Protocol {
3032 fn __max_ordinal(&self) -> usize {
3033 if self.delivery.is_some() {
3034 return 3;
3035 }
3036
3037 if self.source_path.is_some() {
3038 return 2;
3039 }
3040
3041 if self.name.is_some() {
3042 return 1;
3043 }
3044
3045 0
3046 }
3047 }
3048
3049 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Protocol<'static>, ___E> for Protocol
3050 where
3051 ___E: ::fidl_next::Encoder + ?Sized,
3052 {
3053 #[inline]
3054 fn encode(
3055 mut self,
3056 encoder: &mut ___E,
3057 out: &mut ::core::mem::MaybeUninit<crate::wire::Protocol<'static>>,
3058 _: (),
3059 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3060 ::fidl_next::munge!(let crate::wire::Protocol { table } = out);
3061
3062 let max_ord = self.__max_ordinal();
3063
3064 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3065 ::fidl_next::Wire::zero_padding(&mut out);
3066
3067 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3068 ::fidl_next::wire::Envelope,
3069 >(encoder, max_ord);
3070
3071 for i in 1..=max_ord {
3072 match i {
3073 3 => {
3074 if let Some(value) = self.delivery.take() {
3075 ::fidl_next::wire::Envelope::encode_value::<
3076 crate::wire::DeliveryType,
3077 ___E,
3078 >(
3079 value, preallocated.encoder, &mut out, ()
3080 )?;
3081 } else {
3082 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3083 }
3084 }
3085
3086 2 => {
3087 if let Some(value) = self.source_path.take() {
3088 ::fidl_next::wire::Envelope::encode_value::<
3089 ::fidl_next::wire::String<'static>,
3090 ___E,
3091 >(
3092 value, preallocated.encoder, &mut out, 1024
3093 )?;
3094 } else {
3095 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3096 }
3097 }
3098
3099 1 => {
3100 if let Some(value) = self.name.take() {
3101 ::fidl_next::wire::Envelope::encode_value::<
3102 ::fidl_next::wire::String<'static>,
3103 ___E,
3104 >(
3105 value, preallocated.encoder, &mut out, 100
3106 )?;
3107 } else {
3108 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3109 }
3110 }
3111
3112 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3113 }
3114 unsafe {
3115 preallocated.write_next(out.assume_init_ref());
3116 }
3117 }
3118
3119 ::fidl_next::wire::Table::encode_len(table, max_ord);
3120
3121 Ok(())
3122 }
3123 }
3124
3125 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Protocol<'static>, ___E> for &'a Protocol
3126 where
3127 ___E: ::fidl_next::Encoder + ?Sized,
3128 {
3129 #[inline]
3130 fn encode(
3131 self,
3132 encoder: &mut ___E,
3133 out: &mut ::core::mem::MaybeUninit<crate::wire::Protocol<'static>>,
3134 _: (),
3135 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3136 ::fidl_next::munge!(let crate::wire::Protocol { table } = out);
3137
3138 let max_ord = self.__max_ordinal();
3139
3140 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3141 ::fidl_next::Wire::zero_padding(&mut out);
3142
3143 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3144 ::fidl_next::wire::Envelope,
3145 >(encoder, max_ord);
3146
3147 for i in 1..=max_ord {
3148 match i {
3149 3 => {
3150 if let Some(value) = &self.delivery {
3151 ::fidl_next::wire::Envelope::encode_value::<
3152 crate::wire::DeliveryType,
3153 ___E,
3154 >(
3155 value, preallocated.encoder, &mut out, ()
3156 )?;
3157 } else {
3158 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3159 }
3160 }
3161
3162 2 => {
3163 if let Some(value) = &self.source_path {
3164 ::fidl_next::wire::Envelope::encode_value::<
3165 ::fidl_next::wire::String<'static>,
3166 ___E,
3167 >(
3168 value, preallocated.encoder, &mut out, 1024
3169 )?;
3170 } else {
3171 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3172 }
3173 }
3174
3175 1 => {
3176 if let Some(value) = &self.name {
3177 ::fidl_next::wire::Envelope::encode_value::<
3178 ::fidl_next::wire::String<'static>,
3179 ___E,
3180 >(
3181 value, preallocated.encoder, &mut out, 100
3182 )?;
3183 } else {
3184 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3185 }
3186 }
3187
3188 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3189 }
3190 unsafe {
3191 preallocated.write_next(out.assume_init_ref());
3192 }
3193 }
3194
3195 ::fidl_next::wire::Table::encode_len(table, max_ord);
3196
3197 Ok(())
3198 }
3199 }
3200
3201 impl<'de> ::fidl_next::FromWire<crate::wire::Protocol<'de>> for Protocol {
3202 #[inline]
3203 fn from_wire(wire_: crate::wire::Protocol<'de>) -> Self {
3204 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
3205
3206 let name = wire_.table.get(1);
3207
3208 let source_path = wire_.table.get(2);
3209
3210 let delivery = wire_.table.get(3);
3211
3212 Self {
3213 name: name.map(|envelope| {
3214 ::fidl_next::FromWire::from_wire(unsafe {
3215 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3216 })
3217 }),
3218
3219 source_path: source_path.map(|envelope| {
3220 ::fidl_next::FromWire::from_wire(unsafe {
3221 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3222 })
3223 }),
3224
3225 delivery: delivery.map(|envelope| {
3226 ::fidl_next::FromWire::from_wire(unsafe {
3227 envelope.read_unchecked::<crate::wire::DeliveryType>()
3228 })
3229 }),
3230 }
3231 }
3232 }
3233
3234 impl<'de> ::fidl_next::FromWireRef<crate::wire::Protocol<'de>> for Protocol {
3235 #[inline]
3236 fn from_wire_ref(wire: &crate::wire::Protocol<'de>) -> Self {
3237 Self {
3238 name: wire.table.get(1).map(|envelope| {
3239 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3240 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3241 })
3242 }),
3243
3244 source_path: wire.table.get(2).map(|envelope| {
3245 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3246 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3247 })
3248 }),
3249
3250 delivery: wire.table.get(3).map(|envelope| {
3251 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3252 envelope.deref_unchecked::<crate::wire::DeliveryType>()
3253 })
3254 }),
3255 }
3256 }
3257 }
3258
3259 #[doc = " A reference to the environment.\n"]
3260 pub type EnvironmentRef = ();
3261
3262 #[doc = " A reference to a capability source or destination relative to this\n component.\n"]
3263 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3264 pub enum Ref {
3265 Parent(crate::natural::ParentRef),
3266
3267 Self_(crate::natural::SelfRef),
3268
3269 Child(crate::natural::ChildRef),
3270
3271 Collection(crate::natural::CollectionRef),
3272
3273 Framework(crate::natural::FrameworkRef),
3274
3275 Capability(crate::natural::CapabilityRef),
3276
3277 Debug(crate::natural::DebugRef),
3278
3279 VoidType(crate::natural::VoidRef),
3280
3281 Environment(crate::natural::EnvironmentRef),
3282
3283 UnknownOrdinal_(u64),
3284 }
3285
3286 impl Ref {
3287 pub fn is_unknown(&self) -> bool {
3288 #[allow(unreachable_patterns)]
3289 match self {
3290 Self::UnknownOrdinal_(_) => true,
3291 _ => false,
3292 }
3293 }
3294 }
3295
3296 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Ref<'static>, ___E> for Ref
3297 where
3298 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3299 ___E: ::fidl_next::Encoder,
3300 {
3301 #[inline]
3302 fn encode(
3303 self,
3304 encoder: &mut ___E,
3305 out: &mut ::core::mem::MaybeUninit<crate::wire::Ref<'static>>,
3306 _: (),
3307 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3308 ::fidl_next::munge!(let crate::wire::Ref { raw, _phantom: _ } = out);
3309
3310 match self {
3311 Self::Parent(value) => ::fidl_next::wire::Union::encode_as::<
3312 ___E,
3313 crate::wire::ParentRef,
3314 >(value, 1, encoder, raw, ())?,
3315
3316 Self::Self_(value) => ::fidl_next::wire::Union::encode_as::<
3317 ___E,
3318 crate::wire::SelfRef,
3319 >(value, 2, encoder, raw, ())?,
3320
3321 Self::Child(value) => ::fidl_next::wire::Union::encode_as::<
3322 ___E,
3323 crate::wire::ChildRef<'static>,
3324 >(value, 3, encoder, raw, ())?,
3325
3326 Self::Collection(value) => ::fidl_next::wire::Union::encode_as::<
3327 ___E,
3328 crate::wire::CollectionRef<'static>,
3329 >(value, 4, encoder, raw, ())?,
3330
3331 Self::Framework(value) => ::fidl_next::wire::Union::encode_as::<
3332 ___E,
3333 crate::wire::FrameworkRef,
3334 >(value, 5, encoder, raw, ())?,
3335
3336 Self::Capability(value) => ::fidl_next::wire::Union::encode_as::<
3337 ___E,
3338 crate::wire::CapabilityRef<'static>,
3339 >(value, 6, encoder, raw, ())?,
3340
3341 Self::Debug(value) => ::fidl_next::wire::Union::encode_as::<
3342 ___E,
3343 crate::wire::DebugRef,
3344 >(value, 7, encoder, raw, ())?,
3345
3346 Self::VoidType(value) => ::fidl_next::wire::Union::encode_as::<
3347 ___E,
3348 crate::wire::VoidRef,
3349 >(value, 8, encoder, raw, ())?,
3350
3351 Self::Environment(value) => ::fidl_next::wire::Union::encode_as::<
3352 ___E,
3353 crate::wire::EnvironmentRef,
3354 >(value, 9, encoder, raw, ())?,
3355
3356 Self::UnknownOrdinal_(ordinal) => {
3357 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
3358 }
3359 }
3360
3361 Ok(())
3362 }
3363 }
3364
3365 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Ref<'static>, ___E> for &'a Ref
3366 where
3367 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
3368 ___E: ::fidl_next::Encoder,
3369 {
3370 #[inline]
3371 fn encode(
3372 self,
3373 encoder: &mut ___E,
3374 out: &mut ::core::mem::MaybeUninit<crate::wire::Ref<'static>>,
3375 _: (),
3376 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3377 ::fidl_next::munge!(let crate::wire::Ref { raw, _phantom: _ } = out);
3378
3379 match self {
3380 Ref::Parent(value) => ::fidl_next::wire::Union::encode_as::<
3381 ___E,
3382 crate::wire::ParentRef,
3383 >(value, 1, encoder, raw, ())?,
3384
3385 Ref::Self_(value) => ::fidl_next::wire::Union::encode_as::<
3386 ___E,
3387 crate::wire::SelfRef,
3388 >(value, 2, encoder, raw, ())?,
3389
3390 Ref::Child(value) => ::fidl_next::wire::Union::encode_as::<
3391 ___E,
3392 crate::wire::ChildRef<'static>,
3393 >(value, 3, encoder, raw, ())?,
3394
3395 Ref::Collection(value) => ::fidl_next::wire::Union::encode_as::<
3396 ___E,
3397 crate::wire::CollectionRef<'static>,
3398 >(value, 4, encoder, raw, ())?,
3399
3400 Ref::Framework(value) => ::fidl_next::wire::Union::encode_as::<
3401 ___E,
3402 crate::wire::FrameworkRef,
3403 >(value, 5, encoder, raw, ())?,
3404
3405 Ref::Capability(value) => ::fidl_next::wire::Union::encode_as::<
3406 ___E,
3407 crate::wire::CapabilityRef<'static>,
3408 >(value, 6, encoder, raw, ())?,
3409
3410 Ref::Debug(value) => ::fidl_next::wire::Union::encode_as::<
3411 ___E,
3412 crate::wire::DebugRef,
3413 >(value, 7, encoder, raw, ())?,
3414
3415 Ref::VoidType(value) => ::fidl_next::wire::Union::encode_as::<
3416 ___E,
3417 crate::wire::VoidRef,
3418 >(value, 8, encoder, raw, ())?,
3419
3420 Ref::Environment(value) => ::fidl_next::wire::Union::encode_as::<
3421 ___E,
3422 crate::wire::EnvironmentRef,
3423 >(value, 9, encoder, raw, ())?,
3424
3425 Ref::UnknownOrdinal_(ordinal) => {
3426 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
3427 }
3428 }
3429
3430 Ok(())
3431 }
3432 }
3433
3434 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Ref<'static>, ___E> for Ref
3435 where
3436 ___E: ?Sized,
3437 Ref: ::fidl_next::Encode<crate::wire::Ref<'static>, ___E>,
3438 {
3439 #[inline]
3440 fn encode_option(
3441 this: ::core::option::Option<Self>,
3442 encoder: &mut ___E,
3443 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Ref<'static>>,
3444 _: (),
3445 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3446 ::fidl_next::munge!(let crate::wire_optional::Ref { raw, _phantom: _ } = &mut *out);
3447
3448 if let Some(inner) = this {
3449 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
3450 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
3451 } else {
3452 ::fidl_next::wire::Union::encode_absent(raw);
3453 }
3454
3455 Ok(())
3456 }
3457 }
3458
3459 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Ref<'static>, ___E>
3460 for &'a Ref
3461 where
3462 ___E: ?Sized,
3463 &'a Ref: ::fidl_next::Encode<crate::wire::Ref<'static>, ___E>,
3464 {
3465 #[inline]
3466 fn encode_option(
3467 this: ::core::option::Option<Self>,
3468 encoder: &mut ___E,
3469 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Ref<'static>>,
3470 _: (),
3471 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3472 ::fidl_next::munge!(let crate::wire_optional::Ref { raw, _phantom: _ } = &mut *out);
3473
3474 if let Some(inner) = this {
3475 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
3476 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
3477 } else {
3478 ::fidl_next::wire::Union::encode_absent(raw);
3479 }
3480
3481 Ok(())
3482 }
3483 }
3484
3485 impl<'de> ::fidl_next::FromWire<crate::wire::Ref<'de>> for Ref {
3486 #[inline]
3487 fn from_wire(wire: crate::wire::Ref<'de>) -> Self {
3488 let wire = ::core::mem::ManuallyDrop::new(wire);
3489 match wire.raw.ordinal() {
3490 1 => Self::Parent(::fidl_next::FromWire::from_wire(unsafe {
3491 wire.raw.get().read_unchecked::<crate::wire::ParentRef>()
3492 })),
3493
3494 2 => Self::Self_(::fidl_next::FromWire::from_wire(unsafe {
3495 wire.raw.get().read_unchecked::<crate::wire::SelfRef>()
3496 })),
3497
3498 3 => Self::Child(::fidl_next::FromWire::from_wire(unsafe {
3499 wire.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>()
3500 })),
3501
3502 4 => Self::Collection(::fidl_next::FromWire::from_wire(unsafe {
3503 wire.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
3504 })),
3505
3506 5 => Self::Framework(::fidl_next::FromWire::from_wire(unsafe {
3507 wire.raw.get().read_unchecked::<crate::wire::FrameworkRef>()
3508 })),
3509
3510 6 => Self::Capability(::fidl_next::FromWire::from_wire(unsafe {
3511 wire.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
3512 })),
3513
3514 7 => Self::Debug(::fidl_next::FromWire::from_wire(unsafe {
3515 wire.raw.get().read_unchecked::<crate::wire::DebugRef>()
3516 })),
3517
3518 8 => Self::VoidType(::fidl_next::FromWire::from_wire(unsafe {
3519 wire.raw.get().read_unchecked::<crate::wire::VoidRef>()
3520 })),
3521
3522 9 => Self::Environment(::fidl_next::FromWire::from_wire(unsafe {
3523 wire.raw.get().read_unchecked::<crate::wire::EnvironmentRef>()
3524 })),
3525
3526 ord => return Self::UnknownOrdinal_(ord as u64),
3527 }
3528 }
3529 }
3530
3531 impl<'de> ::fidl_next::FromWireRef<crate::wire::Ref<'de>> for Ref {
3532 #[inline]
3533 fn from_wire_ref(wire: &crate::wire::Ref<'de>) -> Self {
3534 match wire.raw.ordinal() {
3535 1 => Self::Parent(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3536 wire.raw.get().deref_unchecked::<crate::wire::ParentRef>()
3537 })),
3538
3539 2 => Self::Self_(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3540 wire.raw.get().deref_unchecked::<crate::wire::SelfRef>()
3541 })),
3542
3543 3 => Self::Child(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3544 wire.raw.get().deref_unchecked::<crate::wire::ChildRef<'de>>()
3545 })),
3546
3547 4 => Self::Collection(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3548 wire.raw.get().deref_unchecked::<crate::wire::CollectionRef<'de>>()
3549 })),
3550
3551 5 => Self::Framework(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3552 wire.raw.get().deref_unchecked::<crate::wire::FrameworkRef>()
3553 })),
3554
3555 6 => Self::Capability(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3556 wire.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'de>>()
3557 })),
3558
3559 7 => Self::Debug(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3560 wire.raw.get().deref_unchecked::<crate::wire::DebugRef>()
3561 })),
3562
3563 8 => Self::VoidType(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3564 wire.raw.get().deref_unchecked::<crate::wire::VoidRef>()
3565 })),
3566
3567 9 => Self::Environment(::fidl_next::FromWireRef::from_wire_ref(unsafe {
3568 wire.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>()
3569 })),
3570
3571 ord => return Self::UnknownOrdinal_(ord as u64),
3572 }
3573 }
3574 }
3575
3576 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>> for Ref {
3577 #[inline]
3578 fn from_wire_option(wire: crate::wire_optional::Ref<'de>) -> ::core::option::Option<Self> {
3579 if let Some(inner) = wire.into_option() {
3580 Some(::fidl_next::FromWire::from_wire(inner))
3581 } else {
3582 None
3583 }
3584 }
3585 }
3586
3587 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>> for Box<Ref> {
3588 #[inline]
3589 fn from_wire_option(wire: crate::wire_optional::Ref<'de>) -> ::core::option::Option<Self> {
3590 <Ref as ::fidl_next::FromWireOption<crate::wire_optional::Ref<'de>>>::from_wire_option(
3591 wire,
3592 )
3593 .map(Box::new)
3594 }
3595 }
3596
3597 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Ref<'de>> for Box<Ref> {
3598 #[inline]
3599 fn from_wire_option_ref(
3600 wire: &crate::wire_optional::Ref<'de>,
3601 ) -> ::core::option::Option<Self> {
3602 if let Some(inner) = wire.as_ref() {
3603 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
3604 } else {
3605 None
3606 }
3607 }
3608 }
3609
3610 #[doc = " Declares a storage capability backed by a directory from which data, cache,\n or meta storage can be offered.\n"]
3611 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3612 pub struct Storage {
3613 pub name: ::core::option::Option<::std::string::String>,
3614
3615 pub source: ::core::option::Option<crate::natural::Ref>,
3616
3617 pub backing_dir: ::core::option::Option<::std::string::String>,
3618
3619 pub subdir: ::core::option::Option<::std::string::String>,
3620
3621 pub storage_id: ::core::option::Option<crate::natural::StorageId>,
3622 }
3623
3624 impl Storage {
3625 fn __max_ordinal(&self) -> usize {
3626 if self.storage_id.is_some() {
3627 return 5;
3628 }
3629
3630 if self.subdir.is_some() {
3631 return 4;
3632 }
3633
3634 if self.backing_dir.is_some() {
3635 return 3;
3636 }
3637
3638 if self.source.is_some() {
3639 return 2;
3640 }
3641
3642 if self.name.is_some() {
3643 return 1;
3644 }
3645
3646 0
3647 }
3648 }
3649
3650 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Storage<'static>, ___E> for Storage
3651 where
3652 ___E: ::fidl_next::Encoder + ?Sized,
3653 {
3654 #[inline]
3655 fn encode(
3656 mut self,
3657 encoder: &mut ___E,
3658 out: &mut ::core::mem::MaybeUninit<crate::wire::Storage<'static>>,
3659 _: (),
3660 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3661 ::fidl_next::munge!(let crate::wire::Storage { table } = out);
3662
3663 let max_ord = self.__max_ordinal();
3664
3665 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3666 ::fidl_next::Wire::zero_padding(&mut out);
3667
3668 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3669 ::fidl_next::wire::Envelope,
3670 >(encoder, max_ord);
3671
3672 for i in 1..=max_ord {
3673 match i {
3674 5 => {
3675 if let Some(value) = self.storage_id.take() {
3676 ::fidl_next::wire::Envelope::encode_value::<
3677 crate::wire::StorageId,
3678 ___E,
3679 >(
3680 value, preallocated.encoder, &mut out, ()
3681 )?;
3682 } else {
3683 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3684 }
3685 }
3686
3687 4 => {
3688 if let Some(value) = self.subdir.take() {
3689 ::fidl_next::wire::Envelope::encode_value::<
3690 ::fidl_next::wire::String<'static>,
3691 ___E,
3692 >(
3693 value, preallocated.encoder, &mut out, 1024
3694 )?;
3695 } else {
3696 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3697 }
3698 }
3699
3700 3 => {
3701 if let Some(value) = self.backing_dir.take() {
3702 ::fidl_next::wire::Envelope::encode_value::<
3703 ::fidl_next::wire::String<'static>,
3704 ___E,
3705 >(
3706 value, preallocated.encoder, &mut out, 100
3707 )?;
3708 } else {
3709 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3710 }
3711 }
3712
3713 2 => {
3714 if let Some(value) = self.source.take() {
3715 ::fidl_next::wire::Envelope::encode_value::<
3716 crate::wire::Ref<'static>,
3717 ___E,
3718 >(
3719 value, preallocated.encoder, &mut out, ()
3720 )?;
3721 } else {
3722 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3723 }
3724 }
3725
3726 1 => {
3727 if let Some(value) = self.name.take() {
3728 ::fidl_next::wire::Envelope::encode_value::<
3729 ::fidl_next::wire::String<'static>,
3730 ___E,
3731 >(
3732 value, preallocated.encoder, &mut out, 100
3733 )?;
3734 } else {
3735 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3736 }
3737 }
3738
3739 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3740 }
3741 unsafe {
3742 preallocated.write_next(out.assume_init_ref());
3743 }
3744 }
3745
3746 ::fidl_next::wire::Table::encode_len(table, max_ord);
3747
3748 Ok(())
3749 }
3750 }
3751
3752 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Storage<'static>, ___E> for &'a Storage
3753 where
3754 ___E: ::fidl_next::Encoder + ?Sized,
3755 {
3756 #[inline]
3757 fn encode(
3758 self,
3759 encoder: &mut ___E,
3760 out: &mut ::core::mem::MaybeUninit<crate::wire::Storage<'static>>,
3761 _: (),
3762 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3763 ::fidl_next::munge!(let crate::wire::Storage { table } = out);
3764
3765 let max_ord = self.__max_ordinal();
3766
3767 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3768 ::fidl_next::Wire::zero_padding(&mut out);
3769
3770 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3771 ::fidl_next::wire::Envelope,
3772 >(encoder, max_ord);
3773
3774 for i in 1..=max_ord {
3775 match i {
3776 5 => {
3777 if let Some(value) = &self.storage_id {
3778 ::fidl_next::wire::Envelope::encode_value::<
3779 crate::wire::StorageId,
3780 ___E,
3781 >(
3782 value, preallocated.encoder, &mut out, ()
3783 )?;
3784 } else {
3785 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3786 }
3787 }
3788
3789 4 => {
3790 if let Some(value) = &self.subdir {
3791 ::fidl_next::wire::Envelope::encode_value::<
3792 ::fidl_next::wire::String<'static>,
3793 ___E,
3794 >(
3795 value, preallocated.encoder, &mut out, 1024
3796 )?;
3797 } else {
3798 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3799 }
3800 }
3801
3802 3 => {
3803 if let Some(value) = &self.backing_dir {
3804 ::fidl_next::wire::Envelope::encode_value::<
3805 ::fidl_next::wire::String<'static>,
3806 ___E,
3807 >(
3808 value, preallocated.encoder, &mut out, 100
3809 )?;
3810 } else {
3811 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3812 }
3813 }
3814
3815 2 => {
3816 if let Some(value) = &self.source {
3817 ::fidl_next::wire::Envelope::encode_value::<
3818 crate::wire::Ref<'static>,
3819 ___E,
3820 >(
3821 value, preallocated.encoder, &mut out, ()
3822 )?;
3823 } else {
3824 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3825 }
3826 }
3827
3828 1 => {
3829 if let Some(value) = &self.name {
3830 ::fidl_next::wire::Envelope::encode_value::<
3831 ::fidl_next::wire::String<'static>,
3832 ___E,
3833 >(
3834 value, preallocated.encoder, &mut out, 100
3835 )?;
3836 } else {
3837 ::fidl_next::wire::Envelope::encode_zero(&mut out)
3838 }
3839 }
3840
3841 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
3842 }
3843 unsafe {
3844 preallocated.write_next(out.assume_init_ref());
3845 }
3846 }
3847
3848 ::fidl_next::wire::Table::encode_len(table, max_ord);
3849
3850 Ok(())
3851 }
3852 }
3853
3854 impl<'de> ::fidl_next::FromWire<crate::wire::Storage<'de>> for Storage {
3855 #[inline]
3856 fn from_wire(wire_: crate::wire::Storage<'de>) -> Self {
3857 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
3858
3859 let name = wire_.table.get(1);
3860
3861 let source = wire_.table.get(2);
3862
3863 let backing_dir = wire_.table.get(3);
3864
3865 let subdir = wire_.table.get(4);
3866
3867 let storage_id = wire_.table.get(5);
3868
3869 Self {
3870 name: name.map(|envelope| {
3871 ::fidl_next::FromWire::from_wire(unsafe {
3872 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3873 })
3874 }),
3875
3876 source: source.map(|envelope| {
3877 ::fidl_next::FromWire::from_wire(unsafe {
3878 envelope.read_unchecked::<crate::wire::Ref<'de>>()
3879 })
3880 }),
3881
3882 backing_dir: backing_dir.map(|envelope| {
3883 ::fidl_next::FromWire::from_wire(unsafe {
3884 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3885 })
3886 }),
3887
3888 subdir: subdir.map(|envelope| {
3889 ::fidl_next::FromWire::from_wire(unsafe {
3890 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
3891 })
3892 }),
3893
3894 storage_id: storage_id.map(|envelope| {
3895 ::fidl_next::FromWire::from_wire(unsafe {
3896 envelope.read_unchecked::<crate::wire::StorageId>()
3897 })
3898 }),
3899 }
3900 }
3901 }
3902
3903 impl<'de> ::fidl_next::FromWireRef<crate::wire::Storage<'de>> for Storage {
3904 #[inline]
3905 fn from_wire_ref(wire: &crate::wire::Storage<'de>) -> Self {
3906 Self {
3907 name: wire.table.get(1).map(|envelope| {
3908 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3909 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3910 })
3911 }),
3912
3913 source: wire.table.get(2).map(|envelope| {
3914 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3915 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
3916 })
3917 }),
3918
3919 backing_dir: wire.table.get(3).map(|envelope| {
3920 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3921 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3922 })
3923 }),
3924
3925 subdir: wire.table.get(4).map(|envelope| {
3926 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3927 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
3928 })
3929 }),
3930
3931 storage_id: wire.table.get(5).map(|envelope| {
3932 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
3933 envelope.deref_unchecked::<crate::wire::StorageId>()
3934 })
3935 }),
3936 }
3937 }
3938 }
3939
3940 #[doc = " Declares a dictionary capability.\n"]
3941 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
3942 pub struct Dictionary {
3943 pub name: ::core::option::Option<::std::string::String>,
3944
3945 pub source: ::core::option::Option<crate::natural::Ref>,
3946
3947 pub source_dictionary: ::core::option::Option<::std::string::String>,
3948
3949 pub source_path: ::core::option::Option<::std::string::String>,
3950 }
3951
3952 impl Dictionary {
3953 fn __max_ordinal(&self) -> usize {
3954 if self.source_path.is_some() {
3955 return 4;
3956 }
3957
3958 if self.source_dictionary.is_some() {
3959 return 3;
3960 }
3961
3962 if self.source.is_some() {
3963 return 2;
3964 }
3965
3966 if self.name.is_some() {
3967 return 1;
3968 }
3969
3970 0
3971 }
3972 }
3973
3974 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Dictionary<'static>, ___E> for Dictionary
3975 where
3976 ___E: ::fidl_next::Encoder + ?Sized,
3977 {
3978 #[inline]
3979 fn encode(
3980 mut self,
3981 encoder: &mut ___E,
3982 out: &mut ::core::mem::MaybeUninit<crate::wire::Dictionary<'static>>,
3983 _: (),
3984 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
3985 ::fidl_next::munge!(let crate::wire::Dictionary { table } = out);
3986
3987 let max_ord = self.__max_ordinal();
3988
3989 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
3990 ::fidl_next::Wire::zero_padding(&mut out);
3991
3992 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
3993 ::fidl_next::wire::Envelope,
3994 >(encoder, max_ord);
3995
3996 for i in 1..=max_ord {
3997 match i {
3998 4 => {
3999 if let Some(value) = self.source_path.take() {
4000 ::fidl_next::wire::Envelope::encode_value::<
4001 ::fidl_next::wire::String<'static>,
4002 ___E,
4003 >(
4004 value, preallocated.encoder, &mut out, 1024
4005 )?;
4006 } else {
4007 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4008 }
4009 }
4010
4011 3 => {
4012 if let Some(value) = self.source_dictionary.take() {
4013 ::fidl_next::wire::Envelope::encode_value::<
4014 ::fidl_next::wire::String<'static>,
4015 ___E,
4016 >(
4017 value, preallocated.encoder, &mut out, 1024
4018 )?;
4019 } else {
4020 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4021 }
4022 }
4023
4024 2 => {
4025 if let Some(value) = self.source.take() {
4026 ::fidl_next::wire::Envelope::encode_value::<
4027 crate::wire::Ref<'static>,
4028 ___E,
4029 >(
4030 value, preallocated.encoder, &mut out, ()
4031 )?;
4032 } else {
4033 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4034 }
4035 }
4036
4037 1 => {
4038 if let Some(value) = self.name.take() {
4039 ::fidl_next::wire::Envelope::encode_value::<
4040 ::fidl_next::wire::String<'static>,
4041 ___E,
4042 >(
4043 value, preallocated.encoder, &mut out, 100
4044 )?;
4045 } else {
4046 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4047 }
4048 }
4049
4050 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4051 }
4052 unsafe {
4053 preallocated.write_next(out.assume_init_ref());
4054 }
4055 }
4056
4057 ::fidl_next::wire::Table::encode_len(table, max_ord);
4058
4059 Ok(())
4060 }
4061 }
4062
4063 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Dictionary<'static>, ___E> for &'a Dictionary
4064 where
4065 ___E: ::fidl_next::Encoder + ?Sized,
4066 {
4067 #[inline]
4068 fn encode(
4069 self,
4070 encoder: &mut ___E,
4071 out: &mut ::core::mem::MaybeUninit<crate::wire::Dictionary<'static>>,
4072 _: (),
4073 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4074 ::fidl_next::munge!(let crate::wire::Dictionary { table } = out);
4075
4076 let max_ord = self.__max_ordinal();
4077
4078 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4079 ::fidl_next::Wire::zero_padding(&mut out);
4080
4081 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4082 ::fidl_next::wire::Envelope,
4083 >(encoder, max_ord);
4084
4085 for i in 1..=max_ord {
4086 match i {
4087 4 => {
4088 if let Some(value) = &self.source_path {
4089 ::fidl_next::wire::Envelope::encode_value::<
4090 ::fidl_next::wire::String<'static>,
4091 ___E,
4092 >(
4093 value, preallocated.encoder, &mut out, 1024
4094 )?;
4095 } else {
4096 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4097 }
4098 }
4099
4100 3 => {
4101 if let Some(value) = &self.source_dictionary {
4102 ::fidl_next::wire::Envelope::encode_value::<
4103 ::fidl_next::wire::String<'static>,
4104 ___E,
4105 >(
4106 value, preallocated.encoder, &mut out, 1024
4107 )?;
4108 } else {
4109 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4110 }
4111 }
4112
4113 2 => {
4114 if let Some(value) = &self.source {
4115 ::fidl_next::wire::Envelope::encode_value::<
4116 crate::wire::Ref<'static>,
4117 ___E,
4118 >(
4119 value, preallocated.encoder, &mut out, ()
4120 )?;
4121 } else {
4122 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4123 }
4124 }
4125
4126 1 => {
4127 if let Some(value) = &self.name {
4128 ::fidl_next::wire::Envelope::encode_value::<
4129 ::fidl_next::wire::String<'static>,
4130 ___E,
4131 >(
4132 value, preallocated.encoder, &mut out, 100
4133 )?;
4134 } else {
4135 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4136 }
4137 }
4138
4139 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4140 }
4141 unsafe {
4142 preallocated.write_next(out.assume_init_ref());
4143 }
4144 }
4145
4146 ::fidl_next::wire::Table::encode_len(table, max_ord);
4147
4148 Ok(())
4149 }
4150 }
4151
4152 impl<'de> ::fidl_next::FromWire<crate::wire::Dictionary<'de>> for Dictionary {
4153 #[inline]
4154 fn from_wire(wire_: crate::wire::Dictionary<'de>) -> Self {
4155 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
4156
4157 let name = wire_.table.get(1);
4158
4159 let source = wire_.table.get(2);
4160
4161 let source_dictionary = wire_.table.get(3);
4162
4163 let source_path = wire_.table.get(4);
4164
4165 Self {
4166 name: name.map(|envelope| {
4167 ::fidl_next::FromWire::from_wire(unsafe {
4168 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4169 })
4170 }),
4171
4172 source: source.map(|envelope| {
4173 ::fidl_next::FromWire::from_wire(unsafe {
4174 envelope.read_unchecked::<crate::wire::Ref<'de>>()
4175 })
4176 }),
4177
4178 source_dictionary: source_dictionary.map(|envelope| {
4179 ::fidl_next::FromWire::from_wire(unsafe {
4180 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4181 })
4182 }),
4183
4184 source_path: source_path.map(|envelope| {
4185 ::fidl_next::FromWire::from_wire(unsafe {
4186 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4187 })
4188 }),
4189 }
4190 }
4191 }
4192
4193 impl<'de> ::fidl_next::FromWireRef<crate::wire::Dictionary<'de>> for Dictionary {
4194 #[inline]
4195 fn from_wire_ref(wire: &crate::wire::Dictionary<'de>) -> Self {
4196 Self {
4197 name: wire.table.get(1).map(|envelope| {
4198 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4199 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4200 })
4201 }),
4202
4203 source: wire.table.get(2).map(|envelope| {
4204 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4205 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
4206 })
4207 }),
4208
4209 source_dictionary: wire.table.get(3).map(|envelope| {
4210 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4211 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4212 })
4213 }),
4214
4215 source_path: wire.table.get(4).map(|envelope| {
4216 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4217 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4218 })
4219 }),
4220 }
4221 }
4222 }
4223
4224 #[doc = " Declares a capability defined by this component.\n"]
4225 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4226 pub enum Capability {
4227 Service(crate::natural::Service),
4228
4229 Protocol(crate::natural::Protocol),
4230
4231 Directory(crate::natural::Directory),
4232
4233 Storage(crate::natural::Storage),
4234
4235 Runner(crate::natural::Runner),
4236
4237 Resolver(crate::natural::Resolver),
4238
4239 EventStream(crate::natural::EventStream),
4240
4241 Dictionary(crate::natural::Dictionary),
4242
4243 Config(crate::natural::Configuration),
4244
4245 UnknownOrdinal_(u64),
4246 }
4247
4248 impl Capability {
4249 pub fn is_unknown(&self) -> bool {
4250 #[allow(unreachable_patterns)]
4251 match self {
4252 Self::UnknownOrdinal_(_) => true,
4253 _ => false,
4254 }
4255 }
4256 }
4257
4258 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Capability<'static>, ___E> for Capability
4259 where
4260 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4261 ___E: ::fidl_next::Encoder,
4262 {
4263 #[inline]
4264 fn encode(
4265 self,
4266 encoder: &mut ___E,
4267 out: &mut ::core::mem::MaybeUninit<crate::wire::Capability<'static>>,
4268 _: (),
4269 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4270 ::fidl_next::munge!(let crate::wire::Capability { raw, _phantom: _ } = out);
4271
4272 match self {
4273 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
4274 ___E,
4275 crate::wire::Service<'static>,
4276 >(value, 1, encoder, raw, ())?,
4277
4278 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
4279 ___E,
4280 crate::wire::Protocol<'static>,
4281 >(value, 2, encoder, raw, ())?,
4282
4283 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
4284 ___E,
4285 crate::wire::Directory<'static>,
4286 >(value, 3, encoder, raw, ())?,
4287
4288 Self::Storage(value) => ::fidl_next::wire::Union::encode_as::<
4289 ___E,
4290 crate::wire::Storage<'static>,
4291 >(value, 4, encoder, raw, ())?,
4292
4293 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
4294 ___E,
4295 crate::wire::Runner<'static>,
4296 >(value, 5, encoder, raw, ())?,
4297
4298 Self::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
4299 ___E,
4300 crate::wire::Resolver<'static>,
4301 >(value, 6, encoder, raw, ())?,
4302
4303 Self::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
4304 ___E,
4305 crate::wire::EventStream<'static>,
4306 >(value, 8, encoder, raw, ())?,
4307
4308 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
4309 ___E,
4310 crate::wire::Dictionary<'static>,
4311 >(value, 9, encoder, raw, ())?,
4312
4313 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
4314 ___E,
4315 crate::wire::Configuration<'static>,
4316 >(value, 10, encoder, raw, ())?,
4317
4318 Self::UnknownOrdinal_(ordinal) => {
4319 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
4320 }
4321 }
4322
4323 Ok(())
4324 }
4325 }
4326
4327 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Capability<'static>, ___E> for &'a Capability
4328 where
4329 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
4330 ___E: ::fidl_next::Encoder,
4331 {
4332 #[inline]
4333 fn encode(
4334 self,
4335 encoder: &mut ___E,
4336 out: &mut ::core::mem::MaybeUninit<crate::wire::Capability<'static>>,
4337 _: (),
4338 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4339 ::fidl_next::munge!(let crate::wire::Capability { raw, _phantom: _ } = out);
4340
4341 match self {
4342 Capability::Service(value) => ::fidl_next::wire::Union::encode_as::<
4343 ___E,
4344 crate::wire::Service<'static>,
4345 >(value, 1, encoder, raw, ())?,
4346
4347 Capability::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
4348 ___E,
4349 crate::wire::Protocol<'static>,
4350 >(value, 2, encoder, raw, ())?,
4351
4352 Capability::Directory(value) => ::fidl_next::wire::Union::encode_as::<
4353 ___E,
4354 crate::wire::Directory<'static>,
4355 >(value, 3, encoder, raw, ())?,
4356
4357 Capability::Storage(value) => ::fidl_next::wire::Union::encode_as::<
4358 ___E,
4359 crate::wire::Storage<'static>,
4360 >(value, 4, encoder, raw, ())?,
4361
4362 Capability::Runner(value) => ::fidl_next::wire::Union::encode_as::<
4363 ___E,
4364 crate::wire::Runner<'static>,
4365 >(value, 5, encoder, raw, ())?,
4366
4367 Capability::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
4368 ___E,
4369 crate::wire::Resolver<'static>,
4370 >(value, 6, encoder, raw, ())?,
4371
4372 Capability::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
4373 ___E,
4374 crate::wire::EventStream<'static>,
4375 >(value, 8, encoder, raw, ())?,
4376
4377 Capability::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
4378 ___E,
4379 crate::wire::Dictionary<'static>,
4380 >(value, 9, encoder, raw, ())?,
4381
4382 Capability::Config(value) => ::fidl_next::wire::Union::encode_as::<
4383 ___E,
4384 crate::wire::Configuration<'static>,
4385 >(value, 10, encoder, raw, ())?,
4386
4387 Capability::UnknownOrdinal_(ordinal) => {
4388 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
4389 }
4390 }
4391
4392 Ok(())
4393 }
4394 }
4395
4396 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Capability<'static>, ___E>
4397 for Capability
4398 where
4399 ___E: ?Sized,
4400 Capability: ::fidl_next::Encode<crate::wire::Capability<'static>, ___E>,
4401 {
4402 #[inline]
4403 fn encode_option(
4404 this: ::core::option::Option<Self>,
4405 encoder: &mut ___E,
4406 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Capability<'static>>,
4407 _: (),
4408 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4409 ::fidl_next::munge!(let crate::wire_optional::Capability { raw, _phantom: _ } = &mut *out);
4410
4411 if let Some(inner) = this {
4412 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4413 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4414 } else {
4415 ::fidl_next::wire::Union::encode_absent(raw);
4416 }
4417
4418 Ok(())
4419 }
4420 }
4421
4422 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Capability<'static>, ___E>
4423 for &'a Capability
4424 where
4425 ___E: ?Sized,
4426 &'a Capability: ::fidl_next::Encode<crate::wire::Capability<'static>, ___E>,
4427 {
4428 #[inline]
4429 fn encode_option(
4430 this: ::core::option::Option<Self>,
4431 encoder: &mut ___E,
4432 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Capability<'static>>,
4433 _: (),
4434 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4435 ::fidl_next::munge!(let crate::wire_optional::Capability { raw, _phantom: _ } = &mut *out);
4436
4437 if let Some(inner) = this {
4438 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
4439 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
4440 } else {
4441 ::fidl_next::wire::Union::encode_absent(raw);
4442 }
4443
4444 Ok(())
4445 }
4446 }
4447
4448 impl<'de> ::fidl_next::FromWire<crate::wire::Capability<'de>> for Capability {
4449 #[inline]
4450 fn from_wire(wire: crate::wire::Capability<'de>) -> Self {
4451 let wire = ::core::mem::ManuallyDrop::new(wire);
4452 match wire.raw.ordinal() {
4453 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
4454 wire.raw.get().read_unchecked::<crate::wire::Service<'de>>()
4455 })),
4456
4457 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
4458 wire.raw.get().read_unchecked::<crate::wire::Protocol<'de>>()
4459 })),
4460
4461 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
4462 wire.raw.get().read_unchecked::<crate::wire::Directory<'de>>()
4463 })),
4464
4465 4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
4466 wire.raw.get().read_unchecked::<crate::wire::Storage<'de>>()
4467 })),
4468
4469 5 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
4470 wire.raw.get().read_unchecked::<crate::wire::Runner<'de>>()
4471 })),
4472
4473 6 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
4474 wire.raw.get().read_unchecked::<crate::wire::Resolver<'de>>()
4475 })),
4476
4477 8 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
4478 wire.raw.get().read_unchecked::<crate::wire::EventStream<'de>>()
4479 })),
4480
4481 9 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
4482 wire.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>()
4483 })),
4484
4485 10 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
4486 wire.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
4487 })),
4488
4489 ord => return Self::UnknownOrdinal_(ord as u64),
4490 }
4491 }
4492 }
4493
4494 impl<'de> ::fidl_next::FromWireRef<crate::wire::Capability<'de>> for Capability {
4495 #[inline]
4496 fn from_wire_ref(wire: &crate::wire::Capability<'de>) -> Self {
4497 match wire.raw.ordinal() {
4498 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4499 wire.raw.get().deref_unchecked::<crate::wire::Service<'de>>()
4500 })),
4501
4502 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4503 wire.raw.get().deref_unchecked::<crate::wire::Protocol<'de>>()
4504 })),
4505
4506 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4507 wire.raw.get().deref_unchecked::<crate::wire::Directory<'de>>()
4508 })),
4509
4510 4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4511 wire.raw.get().deref_unchecked::<crate::wire::Storage<'de>>()
4512 })),
4513
4514 5 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4515 wire.raw.get().deref_unchecked::<crate::wire::Runner<'de>>()
4516 })),
4517
4518 6 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4519 wire.raw.get().deref_unchecked::<crate::wire::Resolver<'de>>()
4520 })),
4521
4522 8 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4523 wire.raw.get().deref_unchecked::<crate::wire::EventStream<'de>>()
4524 })),
4525
4526 9 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4527 wire.raw.get().deref_unchecked::<crate::wire::Dictionary<'de>>()
4528 })),
4529
4530 10 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
4531 wire.raw.get().deref_unchecked::<crate::wire::Configuration<'de>>()
4532 })),
4533
4534 ord => return Self::UnknownOrdinal_(ord as u64),
4535 }
4536 }
4537 }
4538
4539 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>> for Capability {
4540 #[inline]
4541 fn from_wire_option(
4542 wire: crate::wire_optional::Capability<'de>,
4543 ) -> ::core::option::Option<Self> {
4544 if let Some(inner) = wire.into_option() {
4545 Some(::fidl_next::FromWire::from_wire(inner))
4546 } else {
4547 None
4548 }
4549 }
4550 }
4551
4552 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>> for Box<Capability> {
4553 #[inline]
4554 fn from_wire_option(
4555 wire: crate::wire_optional::Capability<'de>,
4556 ) -> ::core::option::Option<Self> {
4557 <
4558 Capability as ::fidl_next::FromWireOption<crate::wire_optional::Capability<'de>>
4559 >::from_wire_option(wire).map(Box::new)
4560 }
4561 }
4562
4563 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Capability<'de>>
4564 for Box<Capability>
4565 {
4566 #[inline]
4567 fn from_wire_option_ref(
4568 wire: &crate::wire_optional::Capability<'de>,
4569 ) -> ::core::option::Option<Self> {
4570 if let Some(inner) = wire.as_ref() {
4571 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
4572 } else {
4573 None
4574 }
4575 }
4576 }
4577
4578 #[doc = " Describes under what conditions the component may be started.\n"]
4579 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4580 #[repr(u32)]
4581 pub enum StartupMode {
4582 Lazy = 0,
4583 Eager = 1,
4584 }
4585 impl ::core::convert::TryFrom<u32> for StartupMode {
4586 type Error = ::fidl_next::UnknownStrictEnumMemberError;
4587 fn try_from(
4588 value: u32,
4589 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
4590 match value {
4591 0 => Ok(Self::Lazy),
4592 1 => Ok(Self::Eager),
4593
4594 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
4595 }
4596 }
4597 }
4598
4599 impl ::std::convert::From<StartupMode> for u32 {
4600 fn from(value: StartupMode) -> Self {
4601 match value {
4602 StartupMode::Lazy => 0,
4603 StartupMode::Eager => 1,
4604 }
4605 }
4606 }
4607
4608 unsafe impl<___E> ::fidl_next::Encode<crate::wire::StartupMode, ___E> for StartupMode
4609 where
4610 ___E: ?Sized,
4611 {
4612 #[inline]
4613 fn encode(
4614 self,
4615 encoder: &mut ___E,
4616 out: &mut ::core::mem::MaybeUninit<crate::wire::StartupMode>,
4617 _: (),
4618 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4619 ::fidl_next::Encode::encode(&self, encoder, out, ())
4620 }
4621 }
4622
4623 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::StartupMode, ___E> for &'a StartupMode
4624 where
4625 ___E: ?Sized,
4626 {
4627 #[inline]
4628 fn encode(
4629 self,
4630 encoder: &mut ___E,
4631 out: &mut ::core::mem::MaybeUninit<crate::wire::StartupMode>,
4632 _: (),
4633 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4634 ::fidl_next::munge!(let crate::wire::StartupMode { value } = out);
4635 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
4636 StartupMode::Lazy => 0,
4637
4638 StartupMode::Eager => 1,
4639 }));
4640
4641 Ok(())
4642 }
4643 }
4644
4645 impl ::core::convert::From<crate::wire::StartupMode> for StartupMode {
4646 fn from(wire: crate::wire::StartupMode) -> Self {
4647 match u32::from(wire.value) {
4648 0 => Self::Lazy,
4649
4650 1 => Self::Eager,
4651
4652 _ => unsafe { ::core::hint::unreachable_unchecked() },
4653 }
4654 }
4655 }
4656
4657 impl ::fidl_next::FromWire<crate::wire::StartupMode> for StartupMode {
4658 #[inline]
4659 fn from_wire(wire: crate::wire::StartupMode) -> Self {
4660 Self::from(wire)
4661 }
4662 }
4663
4664 impl ::fidl_next::FromWireRef<crate::wire::StartupMode> for StartupMode {
4665 #[inline]
4666 fn from_wire_ref(wire: &crate::wire::StartupMode) -> Self {
4667 Self::from(*wire)
4668 }
4669 }
4670
4671 #[doc = " Describes the action to take if this component instance terminates\n unexpectedly.\n"]
4672 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4673 #[repr(u32)]
4674 pub enum OnTerminate {
4675 None = 0,
4676 Reboot = 1,
4677 }
4678 impl ::core::convert::TryFrom<u32> for OnTerminate {
4679 type Error = ::fidl_next::UnknownStrictEnumMemberError;
4680 fn try_from(
4681 value: u32,
4682 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
4683 match value {
4684 0 => Ok(Self::None),
4685 1 => Ok(Self::Reboot),
4686
4687 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
4688 }
4689 }
4690 }
4691
4692 impl ::std::convert::From<OnTerminate> for u32 {
4693 fn from(value: OnTerminate) -> Self {
4694 match value {
4695 OnTerminate::None => 0,
4696 OnTerminate::Reboot => 1,
4697 }
4698 }
4699 }
4700
4701 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OnTerminate, ___E> for OnTerminate
4702 where
4703 ___E: ?Sized,
4704 {
4705 #[inline]
4706 fn encode(
4707 self,
4708 encoder: &mut ___E,
4709 out: &mut ::core::mem::MaybeUninit<crate::wire::OnTerminate>,
4710 _: (),
4711 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4712 ::fidl_next::Encode::encode(&self, encoder, out, ())
4713 }
4714 }
4715
4716 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OnTerminate, ___E> for &'a OnTerminate
4717 where
4718 ___E: ?Sized,
4719 {
4720 #[inline]
4721 fn encode(
4722 self,
4723 encoder: &mut ___E,
4724 out: &mut ::core::mem::MaybeUninit<crate::wire::OnTerminate>,
4725 _: (),
4726 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4727 ::fidl_next::munge!(let crate::wire::OnTerminate { value } = out);
4728 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
4729 OnTerminate::None => 0,
4730
4731 OnTerminate::Reboot => 1,
4732 }));
4733
4734 Ok(())
4735 }
4736 }
4737
4738 impl ::core::convert::From<crate::wire::OnTerminate> for OnTerminate {
4739 fn from(wire: crate::wire::OnTerminate) -> Self {
4740 match u32::from(wire.value) {
4741 0 => Self::None,
4742
4743 1 => Self::Reboot,
4744
4745 _ => unsafe { ::core::hint::unreachable_unchecked() },
4746 }
4747 }
4748 }
4749
4750 impl ::fidl_next::FromWire<crate::wire::OnTerminate> for OnTerminate {
4751 #[inline]
4752 fn from_wire(wire: crate::wire::OnTerminate) -> Self {
4753 Self::from(wire)
4754 }
4755 }
4756
4757 impl ::fidl_next::FromWireRef<crate::wire::OnTerminate> for OnTerminate {
4758 #[inline]
4759 fn from_wire_ref(wire: &crate::wire::OnTerminate) -> Self {
4760 Self::from(*wire)
4761 }
4762 }
4763
4764 #[doc = " The string identifier for a config field.\n"]
4765 pub type ConfigKey = ::std::string::String;
4766
4767 #[doc = " A directive to override the value of a particular configuration field in the child.\n"]
4768 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4769 pub struct ConfigOverride {
4770 pub key: ::core::option::Option<::std::string::String>,
4771
4772 pub value: ::core::option::Option<crate::natural::ConfigValue>,
4773 }
4774
4775 impl ConfigOverride {
4776 fn __max_ordinal(&self) -> usize {
4777 if self.value.is_some() {
4778 return 2;
4779 }
4780
4781 if self.key.is_some() {
4782 return 1;
4783 }
4784
4785 0
4786 }
4787 }
4788
4789 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigOverride<'static>, ___E> for ConfigOverride
4790 where
4791 ___E: ::fidl_next::Encoder + ?Sized,
4792 {
4793 #[inline]
4794 fn encode(
4795 mut self,
4796 encoder: &mut ___E,
4797 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigOverride<'static>>,
4798 _: (),
4799 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4800 ::fidl_next::munge!(let crate::wire::ConfigOverride { table } = out);
4801
4802 let max_ord = self.__max_ordinal();
4803
4804 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4805 ::fidl_next::Wire::zero_padding(&mut out);
4806
4807 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4808 ::fidl_next::wire::Envelope,
4809 >(encoder, max_ord);
4810
4811 for i in 1..=max_ord {
4812 match i {
4813 2 => {
4814 if let Some(value) = self.value.take() {
4815 ::fidl_next::wire::Envelope::encode_value::<
4816 crate::wire::ConfigValue<'static>,
4817 ___E,
4818 >(
4819 value, preallocated.encoder, &mut out, ()
4820 )?;
4821 } else {
4822 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4823 }
4824 }
4825
4826 1 => {
4827 if let Some(value) = self.key.take() {
4828 ::fidl_next::wire::Envelope::encode_value::<
4829 ::fidl_next::wire::String<'static>,
4830 ___E,
4831 >(
4832 value, preallocated.encoder, &mut out, 64
4833 )?;
4834 } else {
4835 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4836 }
4837 }
4838
4839 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4840 }
4841 unsafe {
4842 preallocated.write_next(out.assume_init_ref());
4843 }
4844 }
4845
4846 ::fidl_next::wire::Table::encode_len(table, max_ord);
4847
4848 Ok(())
4849 }
4850 }
4851
4852 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigOverride<'static>, ___E>
4853 for &'a ConfigOverride
4854 where
4855 ___E: ::fidl_next::Encoder + ?Sized,
4856 {
4857 #[inline]
4858 fn encode(
4859 self,
4860 encoder: &mut ___E,
4861 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigOverride<'static>>,
4862 _: (),
4863 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
4864 ::fidl_next::munge!(let crate::wire::ConfigOverride { table } = out);
4865
4866 let max_ord = self.__max_ordinal();
4867
4868 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
4869 ::fidl_next::Wire::zero_padding(&mut out);
4870
4871 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
4872 ::fidl_next::wire::Envelope,
4873 >(encoder, max_ord);
4874
4875 for i in 1..=max_ord {
4876 match i {
4877 2 => {
4878 if let Some(value) = &self.value {
4879 ::fidl_next::wire::Envelope::encode_value::<
4880 crate::wire::ConfigValue<'static>,
4881 ___E,
4882 >(
4883 value, preallocated.encoder, &mut out, ()
4884 )?;
4885 } else {
4886 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4887 }
4888 }
4889
4890 1 => {
4891 if let Some(value) = &self.key {
4892 ::fidl_next::wire::Envelope::encode_value::<
4893 ::fidl_next::wire::String<'static>,
4894 ___E,
4895 >(
4896 value, preallocated.encoder, &mut out, 64
4897 )?;
4898 } else {
4899 ::fidl_next::wire::Envelope::encode_zero(&mut out)
4900 }
4901 }
4902
4903 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
4904 }
4905 unsafe {
4906 preallocated.write_next(out.assume_init_ref());
4907 }
4908 }
4909
4910 ::fidl_next::wire::Table::encode_len(table, max_ord);
4911
4912 Ok(())
4913 }
4914 }
4915
4916 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigOverride<'de>> for ConfigOverride {
4917 #[inline]
4918 fn from_wire(wire_: crate::wire::ConfigOverride<'de>) -> Self {
4919 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
4920
4921 let key = wire_.table.get(1);
4922
4923 let value = wire_.table.get(2);
4924
4925 Self {
4926 key: key.map(|envelope| {
4927 ::fidl_next::FromWire::from_wire(unsafe {
4928 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
4929 })
4930 }),
4931
4932 value: value.map(|envelope| {
4933 ::fidl_next::FromWire::from_wire(unsafe {
4934 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
4935 })
4936 }),
4937 }
4938 }
4939 }
4940
4941 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigOverride<'de>> for ConfigOverride {
4942 #[inline]
4943 fn from_wire_ref(wire: &crate::wire::ConfigOverride<'de>) -> Self {
4944 Self {
4945 key: wire.table.get(1).map(|envelope| {
4946 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4947 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
4948 })
4949 }),
4950
4951 value: wire.table.get(2).map(|envelope| {
4952 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
4953 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
4954 })
4955 }),
4956 }
4957 }
4958 }
4959
4960 #[doc = " Statically declares a child component instance.\n"]
4961 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
4962 pub struct Child {
4963 pub name: ::core::option::Option<::std::string::String>,
4964
4965 pub url: ::core::option::Option<::std::string::String>,
4966
4967 pub startup: ::core::option::Option<crate::natural::StartupMode>,
4968
4969 pub environment: ::core::option::Option<::std::string::String>,
4970
4971 pub on_terminate: ::core::option::Option<crate::natural::OnTerminate>,
4972
4973 pub config_overrides:
4974 ::core::option::Option<::std::vec::Vec<crate::natural::ConfigOverride>>,
4975 }
4976
4977 impl Child {
4978 fn __max_ordinal(&self) -> usize {
4979 if self.config_overrides.is_some() {
4980 return 6;
4981 }
4982
4983 if self.on_terminate.is_some() {
4984 return 5;
4985 }
4986
4987 if self.environment.is_some() {
4988 return 4;
4989 }
4990
4991 if self.startup.is_some() {
4992 return 3;
4993 }
4994
4995 if self.url.is_some() {
4996 return 2;
4997 }
4998
4999 if self.name.is_some() {
5000 return 1;
5001 }
5002
5003 0
5004 }
5005 }
5006
5007 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Child<'static>, ___E> for Child
5008 where
5009 ___E: ::fidl_next::Encoder + ?Sized,
5010 {
5011 #[inline]
5012 fn encode(
5013 mut self,
5014 encoder: &mut ___E,
5015 out: &mut ::core::mem::MaybeUninit<crate::wire::Child<'static>>,
5016 _: (),
5017 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5018 ::fidl_next::munge!(let crate::wire::Child { table } = out);
5019
5020 let max_ord = self.__max_ordinal();
5021
5022 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5023 ::fidl_next::Wire::zero_padding(&mut out);
5024
5025 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5026 ::fidl_next::wire::Envelope,
5027 >(encoder, max_ord);
5028
5029 for i in 1..=max_ord {
5030 match i {
5031 6 => {
5032 if let Some(value) = self.config_overrides.take() {
5033 ::fidl_next::wire::Envelope::encode_value::<
5034 ::fidl_next::wire::Vector<
5035 'static,
5036 crate::wire::ConfigOverride<'static>,
5037 >,
5038 ___E,
5039 >(
5040 value, preallocated.encoder, &mut out, (4294967295, ())
5041 )?;
5042 } else {
5043 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5044 }
5045 }
5046
5047 5 => {
5048 if let Some(value) = self.on_terminate.take() {
5049 ::fidl_next::wire::Envelope::encode_value::<
5050 crate::wire::OnTerminate,
5051 ___E,
5052 >(
5053 value, preallocated.encoder, &mut out, ()
5054 )?;
5055 } else {
5056 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5057 }
5058 }
5059
5060 4 => {
5061 if let Some(value) = self.environment.take() {
5062 ::fidl_next::wire::Envelope::encode_value::<
5063 ::fidl_next::wire::String<'static>,
5064 ___E,
5065 >(
5066 value, preallocated.encoder, &mut out, 100
5067 )?;
5068 } else {
5069 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5070 }
5071 }
5072
5073 3 => {
5074 if let Some(value) = self.startup.take() {
5075 ::fidl_next::wire::Envelope::encode_value::<
5076 crate::wire::StartupMode,
5077 ___E,
5078 >(
5079 value, preallocated.encoder, &mut out, ()
5080 )?;
5081 } else {
5082 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5083 }
5084 }
5085
5086 2 => {
5087 if let Some(value) = self.url.take() {
5088 ::fidl_next::wire::Envelope::encode_value::<
5089 ::fidl_next::wire::String<'static>,
5090 ___E,
5091 >(
5092 value, preallocated.encoder, &mut out, 4096
5093 )?;
5094 } else {
5095 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5096 }
5097 }
5098
5099 1 => {
5100 if let Some(value) = self.name.take() {
5101 ::fidl_next::wire::Envelope::encode_value::<
5102 ::fidl_next::wire::String<'static>,
5103 ___E,
5104 >(
5105 value, preallocated.encoder, &mut out, 1024
5106 )?;
5107 } else {
5108 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5109 }
5110 }
5111
5112 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5113 }
5114 unsafe {
5115 preallocated.write_next(out.assume_init_ref());
5116 }
5117 }
5118
5119 ::fidl_next::wire::Table::encode_len(table, max_ord);
5120
5121 Ok(())
5122 }
5123 }
5124
5125 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Child<'static>, ___E> for &'a Child
5126 where
5127 ___E: ::fidl_next::Encoder + ?Sized,
5128 {
5129 #[inline]
5130 fn encode(
5131 self,
5132 encoder: &mut ___E,
5133 out: &mut ::core::mem::MaybeUninit<crate::wire::Child<'static>>,
5134 _: (),
5135 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5136 ::fidl_next::munge!(let crate::wire::Child { table } = out);
5137
5138 let max_ord = self.__max_ordinal();
5139
5140 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5141 ::fidl_next::Wire::zero_padding(&mut out);
5142
5143 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5144 ::fidl_next::wire::Envelope,
5145 >(encoder, max_ord);
5146
5147 for i in 1..=max_ord {
5148 match i {
5149 6 => {
5150 if let Some(value) = &self.config_overrides {
5151 ::fidl_next::wire::Envelope::encode_value::<
5152 ::fidl_next::wire::Vector<
5153 'static,
5154 crate::wire::ConfigOverride<'static>,
5155 >,
5156 ___E,
5157 >(
5158 value, preallocated.encoder, &mut out, (4294967295, ())
5159 )?;
5160 } else {
5161 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5162 }
5163 }
5164
5165 5 => {
5166 if let Some(value) = &self.on_terminate {
5167 ::fidl_next::wire::Envelope::encode_value::<
5168 crate::wire::OnTerminate,
5169 ___E,
5170 >(
5171 value, preallocated.encoder, &mut out, ()
5172 )?;
5173 } else {
5174 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5175 }
5176 }
5177
5178 4 => {
5179 if let Some(value) = &self.environment {
5180 ::fidl_next::wire::Envelope::encode_value::<
5181 ::fidl_next::wire::String<'static>,
5182 ___E,
5183 >(
5184 value, preallocated.encoder, &mut out, 100
5185 )?;
5186 } else {
5187 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5188 }
5189 }
5190
5191 3 => {
5192 if let Some(value) = &self.startup {
5193 ::fidl_next::wire::Envelope::encode_value::<
5194 crate::wire::StartupMode,
5195 ___E,
5196 >(
5197 value, preallocated.encoder, &mut out, ()
5198 )?;
5199 } else {
5200 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5201 }
5202 }
5203
5204 2 => {
5205 if let Some(value) = &self.url {
5206 ::fidl_next::wire::Envelope::encode_value::<
5207 ::fidl_next::wire::String<'static>,
5208 ___E,
5209 >(
5210 value, preallocated.encoder, &mut out, 4096
5211 )?;
5212 } else {
5213 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5214 }
5215 }
5216
5217 1 => {
5218 if let Some(value) = &self.name {
5219 ::fidl_next::wire::Envelope::encode_value::<
5220 ::fidl_next::wire::String<'static>,
5221 ___E,
5222 >(
5223 value, preallocated.encoder, &mut out, 1024
5224 )?;
5225 } else {
5226 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5227 }
5228 }
5229
5230 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5231 }
5232 unsafe {
5233 preallocated.write_next(out.assume_init_ref());
5234 }
5235 }
5236
5237 ::fidl_next::wire::Table::encode_len(table, max_ord);
5238
5239 Ok(())
5240 }
5241 }
5242
5243 impl<'de> ::fidl_next::FromWire<crate::wire::Child<'de>> for Child {
5244 #[inline]
5245 fn from_wire(wire_: crate::wire::Child<'de>) -> Self {
5246 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5247
5248 let name = wire_.table.get(1);
5249
5250 let url = wire_.table.get(2);
5251
5252 let startup = wire_.table.get(3);
5253
5254 let environment = wire_.table.get(4);
5255
5256 let on_terminate = wire_.table.get(5);
5257
5258 let config_overrides = wire_.table.get(6);
5259
5260 Self {
5261
5262
5263 name: name.map(|envelope| ::fidl_next::FromWire::from_wire(
5264 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
5265 )),
5266
5267
5268 url: url.map(|envelope| ::fidl_next::FromWire::from_wire(
5269 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
5270 )),
5271
5272
5273 startup: startup.map(|envelope| ::fidl_next::FromWire::from_wire(
5274 unsafe { envelope.read_unchecked::<crate::wire::StartupMode>() }
5275 )),
5276
5277
5278 environment: environment.map(|envelope| ::fidl_next::FromWire::from_wire(
5279 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
5280 )),
5281
5282
5283 on_terminate: on_terminate.map(|envelope| ::fidl_next::FromWire::from_wire(
5284 unsafe { envelope.read_unchecked::<crate::wire::OnTerminate>() }
5285 )),
5286
5287
5288 config_overrides: config_overrides.map(|envelope| ::fidl_next::FromWire::from_wire(
5289 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>() }
5290 )),
5291
5292 }
5293 }
5294 }
5295
5296 impl<'de> ::fidl_next::FromWireRef<crate::wire::Child<'de>> for Child {
5297 #[inline]
5298 fn from_wire_ref(wire: &crate::wire::Child<'de>) -> Self {
5299 Self {
5300
5301
5302 name: wire.table.get(1)
5303 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5304 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
5305 )),
5306
5307
5308 url: wire.table.get(2)
5309 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5310 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
5311 )),
5312
5313
5314 startup: wire.table.get(3)
5315 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5316 unsafe { envelope.deref_unchecked::<crate::wire::StartupMode>() }
5317 )),
5318
5319
5320 environment: wire.table.get(4)
5321 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5322 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
5323 )),
5324
5325
5326 on_terminate: wire.table.get(5)
5327 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5328 unsafe { envelope.deref_unchecked::<crate::wire::OnTerminate>() }
5329 )),
5330
5331
5332 config_overrides: wire.table.get(6)
5333 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
5334 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>() }
5335 )),
5336
5337 }
5338 }
5339 }
5340
5341 #[doc = " The durability of component instances created in a collection.\n"]
5342 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5343 #[repr(u32)]
5344 pub enum Durability {
5345 Transient = 2,
5346 SingleRun = 3,
5347 }
5348 impl ::core::convert::TryFrom<u32> for Durability {
5349 type Error = ::fidl_next::UnknownStrictEnumMemberError;
5350 fn try_from(
5351 value: u32,
5352 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5353 match value {
5354 2 => Ok(Self::Transient),
5355 3 => Ok(Self::SingleRun),
5356
5357 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5358 }
5359 }
5360 }
5361
5362 impl ::std::convert::From<Durability> for u32 {
5363 fn from(value: Durability) -> Self {
5364 match value {
5365 Durability::Transient => 2,
5366 Durability::SingleRun => 3,
5367 }
5368 }
5369 }
5370
5371 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Durability, ___E> for Durability
5372 where
5373 ___E: ?Sized,
5374 {
5375 #[inline]
5376 fn encode(
5377 self,
5378 encoder: &mut ___E,
5379 out: &mut ::core::mem::MaybeUninit<crate::wire::Durability>,
5380 _: (),
5381 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5382 ::fidl_next::Encode::encode(&self, encoder, out, ())
5383 }
5384 }
5385
5386 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Durability, ___E> for &'a Durability
5387 where
5388 ___E: ?Sized,
5389 {
5390 #[inline]
5391 fn encode(
5392 self,
5393 encoder: &mut ___E,
5394 out: &mut ::core::mem::MaybeUninit<crate::wire::Durability>,
5395 _: (),
5396 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5397 ::fidl_next::munge!(let crate::wire::Durability { value } = out);
5398 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
5399 Durability::Transient => 2,
5400
5401 Durability::SingleRun => 3,
5402 }));
5403
5404 Ok(())
5405 }
5406 }
5407
5408 impl ::core::convert::From<crate::wire::Durability> for Durability {
5409 fn from(wire: crate::wire::Durability) -> Self {
5410 match u32::from(wire.value) {
5411 2 => Self::Transient,
5412
5413 3 => Self::SingleRun,
5414
5415 _ => unsafe { ::core::hint::unreachable_unchecked() },
5416 }
5417 }
5418 }
5419
5420 impl ::fidl_next::FromWire<crate::wire::Durability> for Durability {
5421 #[inline]
5422 fn from_wire(wire: crate::wire::Durability) -> Self {
5423 Self::from(wire)
5424 }
5425 }
5426
5427 impl ::fidl_next::FromWireRef<crate::wire::Durability> for Durability {
5428 #[inline]
5429 fn from_wire_ref(wire: &crate::wire::Durability) -> Self {
5430 Self::from(*wire)
5431 }
5432 }
5433
5434 #[doc = " Statically declares a component instance collection.\n"]
5435 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5436 pub struct Collection {
5437 pub name: ::core::option::Option<::std::string::String>,
5438
5439 pub durability: ::core::option::Option<crate::natural::Durability>,
5440
5441 pub environment: ::core::option::Option<::std::string::String>,
5442
5443 pub allowed_offers: ::core::option::Option<crate::natural::AllowedOffers>,
5444
5445 pub allow_long_names: ::core::option::Option<bool>,
5446
5447 pub persistent_storage: ::core::option::Option<bool>,
5448 }
5449
5450 impl Collection {
5451 fn __max_ordinal(&self) -> usize {
5452 if self.persistent_storage.is_some() {
5453 return 6;
5454 }
5455
5456 if self.allow_long_names.is_some() {
5457 return 5;
5458 }
5459
5460 if self.allowed_offers.is_some() {
5461 return 4;
5462 }
5463
5464 if self.environment.is_some() {
5465 return 3;
5466 }
5467
5468 if self.durability.is_some() {
5469 return 2;
5470 }
5471
5472 if self.name.is_some() {
5473 return 1;
5474 }
5475
5476 0
5477 }
5478 }
5479
5480 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Collection<'static>, ___E> for Collection
5481 where
5482 ___E: ::fidl_next::Encoder + ?Sized,
5483 {
5484 #[inline]
5485 fn encode(
5486 mut self,
5487 encoder: &mut ___E,
5488 out: &mut ::core::mem::MaybeUninit<crate::wire::Collection<'static>>,
5489 _: (),
5490 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5491 ::fidl_next::munge!(let crate::wire::Collection { table } = out);
5492
5493 let max_ord = self.__max_ordinal();
5494
5495 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5496 ::fidl_next::Wire::zero_padding(&mut out);
5497
5498 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5499 ::fidl_next::wire::Envelope,
5500 >(encoder, max_ord);
5501
5502 for i in 1..=max_ord {
5503 match i {
5504 6 => {
5505 if let Some(value) = self.persistent_storage.take() {
5506 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5507 value,
5508 preallocated.encoder,
5509 &mut out,
5510 (),
5511 )?;
5512 } else {
5513 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5514 }
5515 }
5516
5517 5 => {
5518 if let Some(value) = self.allow_long_names.take() {
5519 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5520 value,
5521 preallocated.encoder,
5522 &mut out,
5523 (),
5524 )?;
5525 } else {
5526 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5527 }
5528 }
5529
5530 4 => {
5531 if let Some(value) = self.allowed_offers.take() {
5532 ::fidl_next::wire::Envelope::encode_value::<
5533 crate::wire::AllowedOffers,
5534 ___E,
5535 >(
5536 value, preallocated.encoder, &mut out, ()
5537 )?;
5538 } else {
5539 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5540 }
5541 }
5542
5543 3 => {
5544 if let Some(value) = self.environment.take() {
5545 ::fidl_next::wire::Envelope::encode_value::<
5546 ::fidl_next::wire::String<'static>,
5547 ___E,
5548 >(
5549 value, preallocated.encoder, &mut out, 100
5550 )?;
5551 } else {
5552 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5553 }
5554 }
5555
5556 2 => {
5557 if let Some(value) = self.durability.take() {
5558 ::fidl_next::wire::Envelope::encode_value::<
5559 crate::wire::Durability,
5560 ___E,
5561 >(
5562 value, preallocated.encoder, &mut out, ()
5563 )?;
5564 } else {
5565 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5566 }
5567 }
5568
5569 1 => {
5570 if let Some(value) = self.name.take() {
5571 ::fidl_next::wire::Envelope::encode_value::<
5572 ::fidl_next::wire::String<'static>,
5573 ___E,
5574 >(
5575 value, preallocated.encoder, &mut out, 100
5576 )?;
5577 } else {
5578 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5579 }
5580 }
5581
5582 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5583 }
5584 unsafe {
5585 preallocated.write_next(out.assume_init_ref());
5586 }
5587 }
5588
5589 ::fidl_next::wire::Table::encode_len(table, max_ord);
5590
5591 Ok(())
5592 }
5593 }
5594
5595 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Collection<'static>, ___E> for &'a Collection
5596 where
5597 ___E: ::fidl_next::Encoder + ?Sized,
5598 {
5599 #[inline]
5600 fn encode(
5601 self,
5602 encoder: &mut ___E,
5603 out: &mut ::core::mem::MaybeUninit<crate::wire::Collection<'static>>,
5604 _: (),
5605 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5606 ::fidl_next::munge!(let crate::wire::Collection { table } = out);
5607
5608 let max_ord = self.__max_ordinal();
5609
5610 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
5611 ::fidl_next::Wire::zero_padding(&mut out);
5612
5613 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
5614 ::fidl_next::wire::Envelope,
5615 >(encoder, max_ord);
5616
5617 for i in 1..=max_ord {
5618 match i {
5619 6 => {
5620 if let Some(value) = &self.persistent_storage {
5621 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5622 value,
5623 preallocated.encoder,
5624 &mut out,
5625 (),
5626 )?;
5627 } else {
5628 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5629 }
5630 }
5631
5632 5 => {
5633 if let Some(value) = &self.allow_long_names {
5634 ::fidl_next::wire::Envelope::encode_value::<bool, ___E>(
5635 value,
5636 preallocated.encoder,
5637 &mut out,
5638 (),
5639 )?;
5640 } else {
5641 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5642 }
5643 }
5644
5645 4 => {
5646 if let Some(value) = &self.allowed_offers {
5647 ::fidl_next::wire::Envelope::encode_value::<
5648 crate::wire::AllowedOffers,
5649 ___E,
5650 >(
5651 value, preallocated.encoder, &mut out, ()
5652 )?;
5653 } else {
5654 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5655 }
5656 }
5657
5658 3 => {
5659 if let Some(value) = &self.environment {
5660 ::fidl_next::wire::Envelope::encode_value::<
5661 ::fidl_next::wire::String<'static>,
5662 ___E,
5663 >(
5664 value, preallocated.encoder, &mut out, 100
5665 )?;
5666 } else {
5667 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5668 }
5669 }
5670
5671 2 => {
5672 if let Some(value) = &self.durability {
5673 ::fidl_next::wire::Envelope::encode_value::<
5674 crate::wire::Durability,
5675 ___E,
5676 >(
5677 value, preallocated.encoder, &mut out, ()
5678 )?;
5679 } else {
5680 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5681 }
5682 }
5683
5684 1 => {
5685 if let Some(value) = &self.name {
5686 ::fidl_next::wire::Envelope::encode_value::<
5687 ::fidl_next::wire::String<'static>,
5688 ___E,
5689 >(
5690 value, preallocated.encoder, &mut out, 100
5691 )?;
5692 } else {
5693 ::fidl_next::wire::Envelope::encode_zero(&mut out)
5694 }
5695 }
5696
5697 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
5698 }
5699 unsafe {
5700 preallocated.write_next(out.assume_init_ref());
5701 }
5702 }
5703
5704 ::fidl_next::wire::Table::encode_len(table, max_ord);
5705
5706 Ok(())
5707 }
5708 }
5709
5710 impl<'de> ::fidl_next::FromWire<crate::wire::Collection<'de>> for Collection {
5711 #[inline]
5712 fn from_wire(wire_: crate::wire::Collection<'de>) -> Self {
5713 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
5714
5715 let name = wire_.table.get(1);
5716
5717 let durability = wire_.table.get(2);
5718
5719 let environment = wire_.table.get(3);
5720
5721 let allowed_offers = wire_.table.get(4);
5722
5723 let allow_long_names = wire_.table.get(5);
5724
5725 let persistent_storage = wire_.table.get(6);
5726
5727 Self {
5728 name: name.map(|envelope| {
5729 ::fidl_next::FromWire::from_wire(unsafe {
5730 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
5731 })
5732 }),
5733
5734 durability: durability.map(|envelope| {
5735 ::fidl_next::FromWire::from_wire(unsafe {
5736 envelope.read_unchecked::<crate::wire::Durability>()
5737 })
5738 }),
5739
5740 environment: environment.map(|envelope| {
5741 ::fidl_next::FromWire::from_wire(unsafe {
5742 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
5743 })
5744 }),
5745
5746 allowed_offers: allowed_offers.map(|envelope| {
5747 ::fidl_next::FromWire::from_wire(unsafe {
5748 envelope.read_unchecked::<crate::wire::AllowedOffers>()
5749 })
5750 }),
5751
5752 allow_long_names: allow_long_names.map(|envelope| {
5753 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
5754 }),
5755
5756 persistent_storage: persistent_storage.map(|envelope| {
5757 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<bool>() })
5758 }),
5759 }
5760 }
5761 }
5762
5763 impl<'de> ::fidl_next::FromWireRef<crate::wire::Collection<'de>> for Collection {
5764 #[inline]
5765 fn from_wire_ref(wire: &crate::wire::Collection<'de>) -> Self {
5766 Self {
5767 name: wire.table.get(1).map(|envelope| {
5768 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5769 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
5770 })
5771 }),
5772
5773 durability: wire.table.get(2).map(|envelope| {
5774 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5775 envelope.deref_unchecked::<crate::wire::Durability>()
5776 })
5777 }),
5778
5779 environment: wire.table.get(3).map(|envelope| {
5780 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5781 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
5782 })
5783 }),
5784
5785 allowed_offers: wire.table.get(4).map(|envelope| {
5786 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5787 envelope.deref_unchecked::<crate::wire::AllowedOffers>()
5788 })
5789 }),
5790
5791 allow_long_names: wire.table.get(5).map(|envelope| {
5792 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5793 envelope.deref_unchecked::<bool>()
5794 })
5795 }),
5796
5797 persistent_storage: wire.table.get(6).map(|envelope| {
5798 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
5799 envelope.deref_unchecked::<bool>()
5800 })
5801 }),
5802 }
5803 }
5804 }
5805
5806 #[doc = " Describes the type of dependency implied by the capability.\n"]
5807 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5808 #[repr(u32)]
5809 pub enum DependencyType {
5810 Strong = 1,
5811 Weak = 2,
5812 }
5813 impl ::core::convert::TryFrom<u32> for DependencyType {
5814 type Error = ::fidl_next::UnknownStrictEnumMemberError;
5815 fn try_from(
5816 value: u32,
5817 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
5818 match value {
5819 1 => Ok(Self::Strong),
5820 2 => Ok(Self::Weak),
5821
5822 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
5823 }
5824 }
5825 }
5826
5827 impl ::std::convert::From<DependencyType> for u32 {
5828 fn from(value: DependencyType) -> Self {
5829 match value {
5830 DependencyType::Strong => 1,
5831 DependencyType::Weak => 2,
5832 }
5833 }
5834 }
5835
5836 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DependencyType, ___E> for DependencyType
5837 where
5838 ___E: ?Sized,
5839 {
5840 #[inline]
5841 fn encode(
5842 self,
5843 encoder: &mut ___E,
5844 out: &mut ::core::mem::MaybeUninit<crate::wire::DependencyType>,
5845 _: (),
5846 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5847 ::fidl_next::Encode::encode(&self, encoder, out, ())
5848 }
5849 }
5850
5851 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DependencyType, ___E> for &'a DependencyType
5852 where
5853 ___E: ?Sized,
5854 {
5855 #[inline]
5856 fn encode(
5857 self,
5858 encoder: &mut ___E,
5859 out: &mut ::core::mem::MaybeUninit<crate::wire::DependencyType>,
5860 _: (),
5861 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5862 ::fidl_next::munge!(let crate::wire::DependencyType { value } = out);
5863 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
5864 DependencyType::Strong => 1,
5865
5866 DependencyType::Weak => 2,
5867 }));
5868
5869 Ok(())
5870 }
5871 }
5872
5873 impl ::core::convert::From<crate::wire::DependencyType> for DependencyType {
5874 fn from(wire: crate::wire::DependencyType) -> Self {
5875 match u32::from(wire.value) {
5876 1 => Self::Strong,
5877
5878 2 => Self::Weak,
5879
5880 _ => unsafe { ::core::hint::unreachable_unchecked() },
5881 }
5882 }
5883 }
5884
5885 impl ::fidl_next::FromWire<crate::wire::DependencyType> for DependencyType {
5886 #[inline]
5887 fn from_wire(wire: crate::wire::DependencyType) -> Self {
5888 Self::from(wire)
5889 }
5890 }
5891
5892 impl ::fidl_next::FromWireRef<crate::wire::DependencyType> for DependencyType {
5893 #[inline]
5894 fn from_wire_ref(wire: &crate::wire::DependencyType) -> Self {
5895 Self::from(*wire)
5896 }
5897 }
5898
5899 #[doc = " Type used to create a mapping between 2 names. Used to rename service or component instances\n in FIDL declarations.\n"]
5900 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
5901 pub struct NameMapping {
5902 pub source_name: ::std::string::String,
5903
5904 pub target_name: ::std::string::String,
5905 }
5906
5907 unsafe impl<___E> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E> for NameMapping
5908 where
5909 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
5910 ___E: ::fidl_next::Encoder,
5911 {
5912 #[inline]
5913 fn encode(
5914 self,
5915 encoder_: &mut ___E,
5916 out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
5917 _: (),
5918 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5919 ::fidl_next::munge! {
5920 let crate::wire::NameMapping {
5921 source_name,
5922 target_name,
5923
5924 } = out_;
5925 }
5926
5927 ::fidl_next::Encode::encode(self.source_name, encoder_, source_name, 100)?;
5928
5929 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(source_name.as_mut_ptr()) };
5930 ::fidl_next::Constrained::validate(_field, 100)?;
5931
5932 ::fidl_next::Encode::encode(self.target_name, encoder_, target_name, 100)?;
5933
5934 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target_name.as_mut_ptr()) };
5935 ::fidl_next::Constrained::validate(_field, 100)?;
5936
5937 Ok(())
5938 }
5939 }
5940
5941 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>
5942 for &'a NameMapping
5943 where
5944 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
5945 ___E: ::fidl_next::Encoder,
5946 {
5947 #[inline]
5948 fn encode(
5949 self,
5950 encoder_: &mut ___E,
5951 out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
5952 _: (),
5953 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5954 ::fidl_next::munge! {
5955 let crate::wire::NameMapping {
5956 source_name,
5957 target_name,
5958
5959 } = out_;
5960 }
5961
5962 ::fidl_next::Encode::encode(&self.source_name, encoder_, source_name, 100)?;
5963
5964 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(source_name.as_mut_ptr()) };
5965 ::fidl_next::Constrained::validate(_field, 100)?;
5966
5967 ::fidl_next::Encode::encode(&self.target_name, encoder_, target_name, 100)?;
5968
5969 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(target_name.as_mut_ptr()) };
5970 ::fidl_next::Constrained::validate(_field, 100)?;
5971
5972 Ok(())
5973 }
5974 }
5975
5976 unsafe impl<___E>
5977 ::fidl_next::EncodeOption<
5978 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
5979 ___E,
5980 > for NameMapping
5981 where
5982 ___E: ::fidl_next::Encoder + ?Sized,
5983 NameMapping: ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>,
5984 {
5985 #[inline]
5986 fn encode_option(
5987 this: ::core::option::Option<Self>,
5988 encoder: &mut ___E,
5989 out: &mut ::core::mem::MaybeUninit<
5990 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
5991 >,
5992 _: (),
5993 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
5994 if let Some(inner) = this {
5995 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
5996 ::fidl_next::wire::Box::encode_present(out);
5997 } else {
5998 ::fidl_next::wire::Box::encode_absent(out);
5999 }
6000
6001 Ok(())
6002 }
6003 }
6004
6005 unsafe impl<'a, ___E>
6006 ::fidl_next::EncodeOption<
6007 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
6008 ___E,
6009 > for &'a NameMapping
6010 where
6011 ___E: ::fidl_next::Encoder + ?Sized,
6012 &'a NameMapping: ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>,
6013 {
6014 #[inline]
6015 fn encode_option(
6016 this: ::core::option::Option<Self>,
6017 encoder: &mut ___E,
6018 out: &mut ::core::mem::MaybeUninit<
6019 ::fidl_next::wire::Box<'static, crate::wire::NameMapping<'static>>,
6020 >,
6021 _: (),
6022 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6023 if let Some(inner) = this {
6024 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6025 ::fidl_next::wire::Box::encode_present(out);
6026 } else {
6027 ::fidl_next::wire::Box::encode_absent(out);
6028 }
6029
6030 Ok(())
6031 }
6032 }
6033
6034 impl<'de> ::fidl_next::FromWire<crate::wire::NameMapping<'de>> for NameMapping {
6035 #[inline]
6036 fn from_wire(wire: crate::wire::NameMapping<'de>) -> Self {
6037 Self {
6038 source_name: ::fidl_next::FromWire::from_wire(wire.source_name),
6039
6040 target_name: ::fidl_next::FromWire::from_wire(wire.target_name),
6041 }
6042 }
6043 }
6044
6045 impl<'de> ::fidl_next::FromWireRef<crate::wire::NameMapping<'de>> for NameMapping {
6046 #[inline]
6047 fn from_wire_ref(wire: &crate::wire::NameMapping<'de>) -> Self {
6048 Self {
6049 source_name: ::fidl_next::FromWireRef::from_wire_ref(&wire.source_name),
6050
6051 target_name: ::fidl_next::FromWireRef::from_wire_ref(&wire.target_name),
6052 }
6053 }
6054 }
6055
6056 #[doc = " Specifies how a declared environment\'s initial set of properties are assigned.\n"]
6057 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6058 #[repr(u32)]
6059 pub enum EnvironmentExtends {
6060 None = 0,
6061 Realm = 1,
6062 }
6063 impl ::core::convert::TryFrom<u32> for EnvironmentExtends {
6064 type Error = ::fidl_next::UnknownStrictEnumMemberError;
6065 fn try_from(
6066 value: u32,
6067 ) -> ::core::result::Result<Self, ::fidl_next::UnknownStrictEnumMemberError> {
6068 match value {
6069 0 => Ok(Self::None),
6070 1 => Ok(Self::Realm),
6071
6072 _ => Err(::fidl_next::UnknownStrictEnumMemberError::new(value.into())),
6073 }
6074 }
6075 }
6076
6077 impl ::std::convert::From<EnvironmentExtends> for u32 {
6078 fn from(value: EnvironmentExtends) -> Self {
6079 match value {
6080 EnvironmentExtends::None => 0,
6081 EnvironmentExtends::Realm => 1,
6082 }
6083 }
6084 }
6085
6086 unsafe impl<___E> ::fidl_next::Encode<crate::wire::EnvironmentExtends, ___E> for EnvironmentExtends
6087 where
6088 ___E: ?Sized,
6089 {
6090 #[inline]
6091 fn encode(
6092 self,
6093 encoder: &mut ___E,
6094 out: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentExtends>,
6095 _: (),
6096 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6097 ::fidl_next::Encode::encode(&self, encoder, out, ())
6098 }
6099 }
6100
6101 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EnvironmentExtends, ___E>
6102 for &'a EnvironmentExtends
6103 where
6104 ___E: ?Sized,
6105 {
6106 #[inline]
6107 fn encode(
6108 self,
6109 encoder: &mut ___E,
6110 out: &mut ::core::mem::MaybeUninit<crate::wire::EnvironmentExtends>,
6111 _: (),
6112 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6113 ::fidl_next::munge!(let crate::wire::EnvironmentExtends { value } = out);
6114 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
6115 EnvironmentExtends::None => 0,
6116
6117 EnvironmentExtends::Realm => 1,
6118 }));
6119
6120 Ok(())
6121 }
6122 }
6123
6124 impl ::core::convert::From<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6125 fn from(wire: crate::wire::EnvironmentExtends) -> Self {
6126 match u32::from(wire.value) {
6127 0 => Self::None,
6128
6129 1 => Self::Realm,
6130
6131 _ => unsafe { ::core::hint::unreachable_unchecked() },
6132 }
6133 }
6134 }
6135
6136 impl ::fidl_next::FromWire<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6137 #[inline]
6138 fn from_wire(wire: crate::wire::EnvironmentExtends) -> Self {
6139 Self::from(wire)
6140 }
6141 }
6142
6143 impl ::fidl_next::FromWireRef<crate::wire::EnvironmentExtends> for EnvironmentExtends {
6144 #[inline]
6145 fn from_wire_ref(wire: &crate::wire::EnvironmentExtends) -> Self {
6146 Self::from(*wire)
6147 }
6148 }
6149
6150 pub type UrlScheme = ::std::string::String;
6151
6152 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6153 #[repr(u32)]
6154 pub enum ConfigTypeLayout {
6155 Bool = 1,
6156 Uint8 = 2,
6157 Uint16 = 3,
6158 Uint32 = 4,
6159 Uint64 = 5,
6160 Int8 = 6,
6161 Int16 = 7,
6162 Int32 = 8,
6163 Int64 = 9,
6164 String = 10,
6165 Vector = 11,
6166 UnknownOrdinal_(u32) = 12,
6167 }
6168 impl ::std::convert::From<u32> for ConfigTypeLayout {
6169 fn from(value: u32) -> Self {
6170 match value {
6171 1 => Self::Bool,
6172 2 => Self::Uint8,
6173 3 => Self::Uint16,
6174 4 => Self::Uint32,
6175 5 => Self::Uint64,
6176 6 => Self::Int8,
6177 7 => Self::Int16,
6178 8 => Self::Int32,
6179 9 => Self::Int64,
6180 10 => Self::String,
6181 11 => Self::Vector,
6182
6183 _ => Self::UnknownOrdinal_(value),
6184 }
6185 }
6186 }
6187
6188 impl ::std::convert::From<ConfigTypeLayout> for u32 {
6189 fn from(value: ConfigTypeLayout) -> Self {
6190 match value {
6191 ConfigTypeLayout::Bool => 1,
6192 ConfigTypeLayout::Uint8 => 2,
6193 ConfigTypeLayout::Uint16 => 3,
6194 ConfigTypeLayout::Uint32 => 4,
6195 ConfigTypeLayout::Uint64 => 5,
6196 ConfigTypeLayout::Int8 => 6,
6197 ConfigTypeLayout::Int16 => 7,
6198 ConfigTypeLayout::Int32 => 8,
6199 ConfigTypeLayout::Int64 => 9,
6200 ConfigTypeLayout::String => 10,
6201 ConfigTypeLayout::Vector => 11,
6202
6203 ConfigTypeLayout::UnknownOrdinal_(value) => value,
6204 }
6205 }
6206 }
6207
6208 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E> for ConfigTypeLayout
6209 where
6210 ___E: ?Sized,
6211 {
6212 #[inline]
6213 fn encode(
6214 self,
6215 encoder: &mut ___E,
6216 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigTypeLayout>,
6217 _: (),
6218 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6219 ::fidl_next::Encode::encode(&self, encoder, out, ())
6220 }
6221 }
6222
6223 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E>
6224 for &'a ConfigTypeLayout
6225 where
6226 ___E: ?Sized,
6227 {
6228 #[inline]
6229 fn encode(
6230 self,
6231 encoder: &mut ___E,
6232 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigTypeLayout>,
6233 _: (),
6234 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6235 ::fidl_next::munge!(let crate::wire::ConfigTypeLayout { value } = out);
6236 let _ = value.write(::fidl_next::wire::Uint32::from(match *self {
6237 ConfigTypeLayout::Bool => 1,
6238
6239 ConfigTypeLayout::Uint8 => 2,
6240
6241 ConfigTypeLayout::Uint16 => 3,
6242
6243 ConfigTypeLayout::Uint32 => 4,
6244
6245 ConfigTypeLayout::Uint64 => 5,
6246
6247 ConfigTypeLayout::Int8 => 6,
6248
6249 ConfigTypeLayout::Int16 => 7,
6250
6251 ConfigTypeLayout::Int32 => 8,
6252
6253 ConfigTypeLayout::Int64 => 9,
6254
6255 ConfigTypeLayout::String => 10,
6256
6257 ConfigTypeLayout::Vector => 11,
6258
6259 ConfigTypeLayout::UnknownOrdinal_(value) => value,
6260 }));
6261
6262 Ok(())
6263 }
6264 }
6265
6266 impl ::core::convert::From<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6267 fn from(wire: crate::wire::ConfigTypeLayout) -> Self {
6268 match u32::from(wire.value) {
6269 1 => Self::Bool,
6270
6271 2 => Self::Uint8,
6272
6273 3 => Self::Uint16,
6274
6275 4 => Self::Uint32,
6276
6277 5 => Self::Uint64,
6278
6279 6 => Self::Int8,
6280
6281 7 => Self::Int16,
6282
6283 8 => Self::Int32,
6284
6285 9 => Self::Int64,
6286
6287 10 => Self::String,
6288
6289 11 => Self::Vector,
6290
6291 value => Self::UnknownOrdinal_(value),
6292 }
6293 }
6294 }
6295
6296 impl ::fidl_next::FromWire<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6297 #[inline]
6298 fn from_wire(wire: crate::wire::ConfigTypeLayout) -> Self {
6299 Self::from(wire)
6300 }
6301 }
6302
6303 impl ::fidl_next::FromWireRef<crate::wire::ConfigTypeLayout> for ConfigTypeLayout {
6304 #[inline]
6305 fn from_wire_ref(wire: &crate::wire::ConfigTypeLayout) -> Self {
6306 Self::from(*wire)
6307 }
6308 }
6309
6310 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6311 pub enum LayoutConstraint {
6312 MaxSize(u32),
6313
6314 UnknownOrdinal_(u64),
6315 }
6316
6317 impl LayoutConstraint {
6318 pub fn is_unknown(&self) -> bool {
6319 #[allow(unreachable_patterns)]
6320 match self {
6321 Self::UnknownOrdinal_(_) => true,
6322 _ => false,
6323 }
6324 }
6325 }
6326
6327 unsafe impl<___E> ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>
6328 for LayoutConstraint
6329 where
6330 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6331 ___E: ::fidl_next::Encoder,
6332 {
6333 #[inline]
6334 fn encode(
6335 self,
6336 encoder: &mut ___E,
6337 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutConstraint<'static>>,
6338 _: (),
6339 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6340 ::fidl_next::munge!(let crate::wire::LayoutConstraint { raw, _phantom: _ } = out);
6341
6342 match self {
6343 Self::MaxSize(value) => ::fidl_next::wire::Union::encode_as::<
6344 ___E,
6345 ::fidl_next::wire::Uint32,
6346 >(value, 1, encoder, raw, ())?,
6347
6348 Self::UnknownOrdinal_(ordinal) => {
6349 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
6350 }
6351 }
6352
6353 Ok(())
6354 }
6355 }
6356
6357 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>
6358 for &'a LayoutConstraint
6359 where
6360 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6361 ___E: ::fidl_next::Encoder,
6362 {
6363 #[inline]
6364 fn encode(
6365 self,
6366 encoder: &mut ___E,
6367 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutConstraint<'static>>,
6368 _: (),
6369 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6370 ::fidl_next::munge!(let crate::wire::LayoutConstraint { raw, _phantom: _ } = out);
6371
6372 match self {
6373 LayoutConstraint::MaxSize(value) => ::fidl_next::wire::Union::encode_as::<
6374 ___E,
6375 ::fidl_next::wire::Uint32,
6376 >(value, 1, encoder, raw, ())?,
6377
6378 LayoutConstraint::UnknownOrdinal_(ordinal) => {
6379 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
6380 }
6381 }
6382
6383 Ok(())
6384 }
6385 }
6386
6387 unsafe impl<___E>
6388 ::fidl_next::EncodeOption<crate::wire_optional::LayoutConstraint<'static>, ___E>
6389 for LayoutConstraint
6390 where
6391 ___E: ?Sized,
6392 LayoutConstraint: ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>,
6393 {
6394 #[inline]
6395 fn encode_option(
6396 this: ::core::option::Option<Self>,
6397 encoder: &mut ___E,
6398 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutConstraint<'static>>,
6399 _: (),
6400 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6401 ::fidl_next::munge!(let crate::wire_optional::LayoutConstraint { raw, _phantom: _ } = &mut *out);
6402
6403 if let Some(inner) = this {
6404 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6405 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6406 } else {
6407 ::fidl_next::wire::Union::encode_absent(raw);
6408 }
6409
6410 Ok(())
6411 }
6412 }
6413
6414 unsafe impl<'a, ___E>
6415 ::fidl_next::EncodeOption<crate::wire_optional::LayoutConstraint<'static>, ___E>
6416 for &'a LayoutConstraint
6417 where
6418 ___E: ?Sized,
6419 &'a LayoutConstraint: ::fidl_next::Encode<crate::wire::LayoutConstraint<'static>, ___E>,
6420 {
6421 #[inline]
6422 fn encode_option(
6423 this: ::core::option::Option<Self>,
6424 encoder: &mut ___E,
6425 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutConstraint<'static>>,
6426 _: (),
6427 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6428 ::fidl_next::munge!(let crate::wire_optional::LayoutConstraint { raw, _phantom: _ } = &mut *out);
6429
6430 if let Some(inner) = this {
6431 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6432 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6433 } else {
6434 ::fidl_next::wire::Union::encode_absent(raw);
6435 }
6436
6437 Ok(())
6438 }
6439 }
6440
6441 impl<'de> ::fidl_next::FromWire<crate::wire::LayoutConstraint<'de>> for LayoutConstraint {
6442 #[inline]
6443 fn from_wire(wire: crate::wire::LayoutConstraint<'de>) -> Self {
6444 let wire = ::core::mem::ManuallyDrop::new(wire);
6445 match wire.raw.ordinal() {
6446 1 => Self::MaxSize(::fidl_next::FromWire::from_wire(unsafe {
6447 wire.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
6448 })),
6449
6450 ord => return Self::UnknownOrdinal_(ord as u64),
6451 }
6452 }
6453 }
6454
6455 impl<'de> ::fidl_next::FromWireRef<crate::wire::LayoutConstraint<'de>> for LayoutConstraint {
6456 #[inline]
6457 fn from_wire_ref(wire: &crate::wire::LayoutConstraint<'de>) -> Self {
6458 match wire.raw.ordinal() {
6459 1 => Self::MaxSize(::fidl_next::FromWireRef::from_wire_ref(unsafe {
6460 wire.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
6461 })),
6462
6463 ord => return Self::UnknownOrdinal_(ord as u64),
6464 }
6465 }
6466 }
6467
6468 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutConstraint<'de>>
6469 for LayoutConstraint
6470 {
6471 #[inline]
6472 fn from_wire_option(
6473 wire: crate::wire_optional::LayoutConstraint<'de>,
6474 ) -> ::core::option::Option<Self> {
6475 if let Some(inner) = wire.into_option() {
6476 Some(::fidl_next::FromWire::from_wire(inner))
6477 } else {
6478 None
6479 }
6480 }
6481 }
6482
6483 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutConstraint<'de>>
6484 for Box<LayoutConstraint>
6485 {
6486 #[inline]
6487 fn from_wire_option(
6488 wire: crate::wire_optional::LayoutConstraint<'de>,
6489 ) -> ::core::option::Option<Self> {
6490 <LayoutConstraint as ::fidl_next::FromWireOption<
6491 crate::wire_optional::LayoutConstraint<'de>,
6492 >>::from_wire_option(wire)
6493 .map(Box::new)
6494 }
6495 }
6496
6497 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::LayoutConstraint<'de>>
6498 for Box<LayoutConstraint>
6499 {
6500 #[inline]
6501 fn from_wire_option_ref(
6502 wire: &crate::wire_optional::LayoutConstraint<'de>,
6503 ) -> ::core::option::Option<Self> {
6504 if let Some(inner) = wire.as_ref() {
6505 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
6506 } else {
6507 None
6508 }
6509 }
6510 }
6511
6512 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6513 pub struct ConfigType {
6514 pub layout: crate::natural::ConfigTypeLayout,
6515
6516 pub parameters: ::core::option::Option<::std::vec::Vec<crate::natural::LayoutParameter>>,
6517
6518 pub constraints: ::std::vec::Vec<crate::natural::LayoutConstraint>,
6519 }
6520
6521 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E> for ConfigType
6522 where
6523 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6524 ___E: ::fidl_next::Encoder,
6525 {
6526 #[inline]
6527 fn encode(
6528 self,
6529 encoder_: &mut ___E,
6530 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
6531 _: (),
6532 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6533 ::fidl_next::munge! {
6534 let crate::wire::ConfigType {
6535 layout,
6536 parameters,
6537 constraints,
6538
6539 } = out_;
6540 }
6541
6542 ::fidl_next::Encode::encode(self.layout, encoder_, layout, ())?;
6543
6544 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(layout.as_mut_ptr()) };
6545
6546 ::fidl_next::Encode::encode(self.parameters, encoder_, parameters, (4294967295, ()))?;
6547
6548 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(parameters.as_mut_ptr()) };
6549 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6550
6551 ::fidl_next::Encode::encode(self.constraints, encoder_, constraints, (4294967295, ()))?;
6552
6553 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(constraints.as_mut_ptr()) };
6554 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6555
6556 Ok(())
6557 }
6558 }
6559
6560 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E> for &'a ConfigType
6561 where
6562 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6563 ___E: ::fidl_next::Encoder,
6564 {
6565 #[inline]
6566 fn encode(
6567 self,
6568 encoder_: &mut ___E,
6569 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
6570 _: (),
6571 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6572 ::fidl_next::munge! {
6573 let crate::wire::ConfigType {
6574 layout,
6575 parameters,
6576 constraints,
6577
6578 } = out_;
6579 }
6580
6581 ::fidl_next::Encode::encode(&self.layout, encoder_, layout, ())?;
6582
6583 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(layout.as_mut_ptr()) };
6584
6585 ::fidl_next::Encode::encode(&self.parameters, encoder_, parameters, (4294967295, ()))?;
6586
6587 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(parameters.as_mut_ptr()) };
6588 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6589
6590 ::fidl_next::Encode::encode(
6591 &self.constraints,
6592 encoder_,
6593 constraints,
6594 (4294967295, ()),
6595 )?;
6596
6597 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(constraints.as_mut_ptr()) };
6598 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
6599
6600 Ok(())
6601 }
6602 }
6603
6604 unsafe impl<___E>
6605 ::fidl_next::EncodeOption<
6606 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6607 ___E,
6608 > for ConfigType
6609 where
6610 ___E: ::fidl_next::Encoder + ?Sized,
6611 ConfigType: ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>,
6612 {
6613 #[inline]
6614 fn encode_option(
6615 this: ::core::option::Option<Self>,
6616 encoder: &mut ___E,
6617 out: &mut ::core::mem::MaybeUninit<
6618 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6619 >,
6620 _: (),
6621 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6622 if let Some(inner) = this {
6623 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6624 ::fidl_next::wire::Box::encode_present(out);
6625 } else {
6626 ::fidl_next::wire::Box::encode_absent(out);
6627 }
6628
6629 Ok(())
6630 }
6631 }
6632
6633 unsafe impl<'a, ___E>
6634 ::fidl_next::EncodeOption<
6635 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6636 ___E,
6637 > for &'a ConfigType
6638 where
6639 ___E: ::fidl_next::Encoder + ?Sized,
6640 &'a ConfigType: ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>,
6641 {
6642 #[inline]
6643 fn encode_option(
6644 this: ::core::option::Option<Self>,
6645 encoder: &mut ___E,
6646 out: &mut ::core::mem::MaybeUninit<
6647 ::fidl_next::wire::Box<'static, crate::wire::ConfigType<'static>>,
6648 >,
6649 _: (),
6650 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6651 if let Some(inner) = this {
6652 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
6653 ::fidl_next::wire::Box::encode_present(out);
6654 } else {
6655 ::fidl_next::wire::Box::encode_absent(out);
6656 }
6657
6658 Ok(())
6659 }
6660 }
6661
6662 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigType<'de>> for ConfigType {
6663 #[inline]
6664 fn from_wire(wire: crate::wire::ConfigType<'de>) -> Self {
6665 Self {
6666 layout: ::fidl_next::FromWire::from_wire(wire.layout),
6667
6668 parameters: ::fidl_next::FromWire::from_wire(wire.parameters),
6669
6670 constraints: ::fidl_next::FromWire::from_wire(wire.constraints),
6671 }
6672 }
6673 }
6674
6675 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigType<'de>> for ConfigType {
6676 #[inline]
6677 fn from_wire_ref(wire: &crate::wire::ConfigType<'de>) -> Self {
6678 Self {
6679 layout: ::fidl_next::FromWireRef::from_wire_ref(&wire.layout),
6680
6681 parameters: ::fidl_next::FromWireRef::from_wire_ref(&wire.parameters),
6682
6683 constraints: ::fidl_next::FromWireRef::from_wire_ref(&wire.constraints),
6684 }
6685 }
6686 }
6687
6688 #[doc = " The checksum produced for a configuration interface.\n Two configuration interfaces are the same if their checksums are the same.\n"]
6689 #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6690 pub enum ConfigChecksum {
6691 Sha256([u8; 32]),
6692
6693 UnknownOrdinal_(u64),
6694 }
6695
6696 impl ConfigChecksum {
6697 pub fn is_unknown(&self) -> bool {
6698 #[allow(unreachable_patterns)]
6699 match self {
6700 Self::UnknownOrdinal_(_) => true,
6701 _ => false,
6702 }
6703 }
6704 }
6705
6706 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E> for ConfigChecksum
6707 where
6708 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6709 ___E: ::fidl_next::Encoder,
6710 {
6711 #[inline]
6712 fn encode(
6713 self,
6714 encoder: &mut ___E,
6715 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigChecksum<'static>>,
6716 _: (),
6717 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6718 ::fidl_next::munge!(let crate::wire::ConfigChecksum { raw, _phantom: _ } = out);
6719
6720 match self {
6721 Self::Sha256(value) => ::fidl_next::wire::Union::encode_as::<___E, [u8; 32]>(
6722 value,
6723 1,
6724 encoder,
6725 raw,
6726 (),
6727 )?,
6728
6729 Self::UnknownOrdinal_(ordinal) => {
6730 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
6731 }
6732 }
6733
6734 Ok(())
6735 }
6736 }
6737
6738 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>
6739 for &'a ConfigChecksum
6740 where
6741 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
6742 ___E: ::fidl_next::Encoder,
6743 {
6744 #[inline]
6745 fn encode(
6746 self,
6747 encoder: &mut ___E,
6748 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigChecksum<'static>>,
6749 _: (),
6750 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6751 ::fidl_next::munge!(let crate::wire::ConfigChecksum { raw, _phantom: _ } = out);
6752
6753 match self {
6754 ConfigChecksum::Sha256(value) => ::fidl_next::wire::Union::encode_as::<
6755 ___E,
6756 [u8; 32],
6757 >(value, 1, encoder, raw, ())?,
6758
6759 ConfigChecksum::UnknownOrdinal_(ordinal) => {
6760 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
6761 }
6762 }
6763
6764 Ok(())
6765 }
6766 }
6767
6768 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::ConfigChecksum<'static>, ___E>
6769 for ConfigChecksum
6770 where
6771 ___E: ?Sized,
6772 ConfigChecksum: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
6773 {
6774 #[inline]
6775 fn encode_option(
6776 this: ::core::option::Option<Self>,
6777 encoder: &mut ___E,
6778 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigChecksum<'static>>,
6779 _: (),
6780 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6781 ::fidl_next::munge!(let crate::wire_optional::ConfigChecksum { raw, _phantom: _ } = &mut *out);
6782
6783 if let Some(inner) = this {
6784 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6785 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6786 } else {
6787 ::fidl_next::wire::Union::encode_absent(raw);
6788 }
6789
6790 Ok(())
6791 }
6792 }
6793
6794 unsafe impl<'a, ___E>
6795 ::fidl_next::EncodeOption<crate::wire_optional::ConfigChecksum<'static>, ___E>
6796 for &'a ConfigChecksum
6797 where
6798 ___E: ?Sized,
6799 &'a ConfigChecksum: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
6800 {
6801 #[inline]
6802 fn encode_option(
6803 this: ::core::option::Option<Self>,
6804 encoder: &mut ___E,
6805 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigChecksum<'static>>,
6806 _: (),
6807 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6808 ::fidl_next::munge!(let crate::wire_optional::ConfigChecksum { raw, _phantom: _ } = &mut *out);
6809
6810 if let Some(inner) = this {
6811 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
6812 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
6813 } else {
6814 ::fidl_next::wire::Union::encode_absent(raw);
6815 }
6816
6817 Ok(())
6818 }
6819 }
6820
6821 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigChecksum<'de>> for ConfigChecksum {
6822 #[inline]
6823 fn from_wire(wire: crate::wire::ConfigChecksum<'de>) -> Self {
6824 let wire = ::core::mem::ManuallyDrop::new(wire);
6825 match wire.raw.ordinal() {
6826 1 => Self::Sha256(::fidl_next::FromWire::from_wire(unsafe {
6827 wire.raw.get().read_unchecked::<[u8; 32]>()
6828 })),
6829
6830 ord => return Self::UnknownOrdinal_(ord as u64),
6831 }
6832 }
6833 }
6834
6835 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigChecksum<'de>> for ConfigChecksum {
6836 #[inline]
6837 fn from_wire_ref(wire: &crate::wire::ConfigChecksum<'de>) -> Self {
6838 match wire.raw.ordinal() {
6839 1 => Self::Sha256(::fidl_next::FromWireRef::from_wire_ref(unsafe {
6840 wire.raw.get().deref_unchecked::<[u8; 32]>()
6841 })),
6842
6843 ord => return Self::UnknownOrdinal_(ord as u64),
6844 }
6845 }
6846 }
6847
6848 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigChecksum<'de>>
6849 for ConfigChecksum
6850 {
6851 #[inline]
6852 fn from_wire_option(
6853 wire: crate::wire_optional::ConfigChecksum<'de>,
6854 ) -> ::core::option::Option<Self> {
6855 if let Some(inner) = wire.into_option() {
6856 Some(::fidl_next::FromWire::from_wire(inner))
6857 } else {
6858 None
6859 }
6860 }
6861 }
6862
6863 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigChecksum<'de>>
6864 for Box<ConfigChecksum>
6865 {
6866 #[inline]
6867 fn from_wire_option(
6868 wire: crate::wire_optional::ConfigChecksum<'de>,
6869 ) -> ::core::option::Option<Self> {
6870 <ConfigChecksum as ::fidl_next::FromWireOption<
6871 crate::wire_optional::ConfigChecksum<'de>,
6872 >>::from_wire_option(wire)
6873 .map(Box::new)
6874 }
6875 }
6876
6877 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigChecksum<'de>>
6878 for Box<ConfigChecksum>
6879 {
6880 #[inline]
6881 fn from_wire_option_ref(
6882 wire: &crate::wire_optional::ConfigChecksum<'de>,
6883 ) -> ::core::option::Option<Self> {
6884 if let Some(inner) = wire.as_ref() {
6885 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
6886 } else {
6887 None
6888 }
6889 }
6890 }
6891
6892 #[doc = " Declares storage used by a component, which was offered to it.\n"]
6893 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6894 pub struct UseStorage {
6895 pub source_name: ::core::option::Option<::std::string::String>,
6896
6897 pub target_path: ::core::option::Option<::std::string::String>,
6898
6899 pub availability: ::core::option::Option<crate::natural::Availability>,
6900 }
6901
6902 impl UseStorage {
6903 fn __max_ordinal(&self) -> usize {
6904 if self.availability.is_some() {
6905 return 3;
6906 }
6907
6908 if self.target_path.is_some() {
6909 return 2;
6910 }
6911
6912 if self.source_name.is_some() {
6913 return 1;
6914 }
6915
6916 0
6917 }
6918 }
6919
6920 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseStorage<'static>, ___E> for UseStorage
6921 where
6922 ___E: ::fidl_next::Encoder + ?Sized,
6923 {
6924 #[inline]
6925 fn encode(
6926 mut self,
6927 encoder: &mut ___E,
6928 out: &mut ::core::mem::MaybeUninit<crate::wire::UseStorage<'static>>,
6929 _: (),
6930 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
6931 ::fidl_next::munge!(let crate::wire::UseStorage { table } = out);
6932
6933 let max_ord = self.__max_ordinal();
6934
6935 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
6936 ::fidl_next::Wire::zero_padding(&mut out);
6937
6938 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
6939 ::fidl_next::wire::Envelope,
6940 >(encoder, max_ord);
6941
6942 for i in 1..=max_ord {
6943 match i {
6944 3 => {
6945 if let Some(value) = self.availability.take() {
6946 ::fidl_next::wire::Envelope::encode_value::<
6947 crate::wire::Availability,
6948 ___E,
6949 >(
6950 value, preallocated.encoder, &mut out, ()
6951 )?;
6952 } else {
6953 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6954 }
6955 }
6956
6957 2 => {
6958 if let Some(value) = self.target_path.take() {
6959 ::fidl_next::wire::Envelope::encode_value::<
6960 ::fidl_next::wire::String<'static>,
6961 ___E,
6962 >(
6963 value, preallocated.encoder, &mut out, 1024
6964 )?;
6965 } else {
6966 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6967 }
6968 }
6969
6970 1 => {
6971 if let Some(value) = self.source_name.take() {
6972 ::fidl_next::wire::Envelope::encode_value::<
6973 ::fidl_next::wire::String<'static>,
6974 ___E,
6975 >(
6976 value, preallocated.encoder, &mut out, 100
6977 )?;
6978 } else {
6979 ::fidl_next::wire::Envelope::encode_zero(&mut out)
6980 }
6981 }
6982
6983 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
6984 }
6985 unsafe {
6986 preallocated.write_next(out.assume_init_ref());
6987 }
6988 }
6989
6990 ::fidl_next::wire::Table::encode_len(table, max_ord);
6991
6992 Ok(())
6993 }
6994 }
6995
6996 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseStorage<'static>, ___E> for &'a UseStorage
6997 where
6998 ___E: ::fidl_next::Encoder + ?Sized,
6999 {
7000 #[inline]
7001 fn encode(
7002 self,
7003 encoder: &mut ___E,
7004 out: &mut ::core::mem::MaybeUninit<crate::wire::UseStorage<'static>>,
7005 _: (),
7006 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7007 ::fidl_next::munge!(let crate::wire::UseStorage { table } = out);
7008
7009 let max_ord = self.__max_ordinal();
7010
7011 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7012 ::fidl_next::Wire::zero_padding(&mut out);
7013
7014 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7015 ::fidl_next::wire::Envelope,
7016 >(encoder, max_ord);
7017
7018 for i in 1..=max_ord {
7019 match i {
7020 3 => {
7021 if let Some(value) = &self.availability {
7022 ::fidl_next::wire::Envelope::encode_value::<
7023 crate::wire::Availability,
7024 ___E,
7025 >(
7026 value, preallocated.encoder, &mut out, ()
7027 )?;
7028 } else {
7029 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7030 }
7031 }
7032
7033 2 => {
7034 if let Some(value) = &self.target_path {
7035 ::fidl_next::wire::Envelope::encode_value::<
7036 ::fidl_next::wire::String<'static>,
7037 ___E,
7038 >(
7039 value, preallocated.encoder, &mut out, 1024
7040 )?;
7041 } else {
7042 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7043 }
7044 }
7045
7046 1 => {
7047 if let Some(value) = &self.source_name {
7048 ::fidl_next::wire::Envelope::encode_value::<
7049 ::fidl_next::wire::String<'static>,
7050 ___E,
7051 >(
7052 value, preallocated.encoder, &mut out, 100
7053 )?;
7054 } else {
7055 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7056 }
7057 }
7058
7059 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7060 }
7061 unsafe {
7062 preallocated.write_next(out.assume_init_ref());
7063 }
7064 }
7065
7066 ::fidl_next::wire::Table::encode_len(table, max_ord);
7067
7068 Ok(())
7069 }
7070 }
7071
7072 impl<'de> ::fidl_next::FromWire<crate::wire::UseStorage<'de>> for UseStorage {
7073 #[inline]
7074 fn from_wire(wire_: crate::wire::UseStorage<'de>) -> Self {
7075 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7076
7077 let source_name = wire_.table.get(1);
7078
7079 let target_path = wire_.table.get(2);
7080
7081 let availability = wire_.table.get(3);
7082
7083 Self {
7084 source_name: source_name.map(|envelope| {
7085 ::fidl_next::FromWire::from_wire(unsafe {
7086 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
7087 })
7088 }),
7089
7090 target_path: target_path.map(|envelope| {
7091 ::fidl_next::FromWire::from_wire(unsafe {
7092 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
7093 })
7094 }),
7095
7096 availability: availability.map(|envelope| {
7097 ::fidl_next::FromWire::from_wire(unsafe {
7098 envelope.read_unchecked::<crate::wire::Availability>()
7099 })
7100 }),
7101 }
7102 }
7103 }
7104
7105 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseStorage<'de>> for UseStorage {
7106 #[inline]
7107 fn from_wire_ref(wire: &crate::wire::UseStorage<'de>) -> Self {
7108 Self {
7109 source_name: wire.table.get(1).map(|envelope| {
7110 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7111 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
7112 })
7113 }),
7114
7115 target_path: wire.table.get(2).map(|envelope| {
7116 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7117 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
7118 })
7119 }),
7120
7121 availability: wire.table.get(3).map(|envelope| {
7122 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7123 envelope.deref_unchecked::<crate::wire::Availability>()
7124 })
7125 }),
7126 }
7127 }
7128 }
7129
7130 ::fidl_next::bitflags::bitflags! {
7131 #[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 {
7132 #[doc = " Allow parent components to provide overrides for the configuration field.\n"]const PARENT = 1;
7133 const _ = !0;
7134 }
7135 }
7136
7137 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigMutability, ___E> for ConfigMutability
7138 where
7139 ___E: ?Sized,
7140 {
7141 #[inline]
7142 fn encode(
7143 self,
7144 encoder: &mut ___E,
7145 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigMutability>,
7146 _: (),
7147 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7148 ::fidl_next::Encode::encode(&self, encoder, out, ())
7149 }
7150 }
7151
7152 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigMutability, ___E>
7153 for &'a ConfigMutability
7154 where
7155 ___E: ?Sized,
7156 {
7157 #[inline]
7158 fn encode(
7159 self,
7160 _: &mut ___E,
7161 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigMutability>,
7162 _: (),
7163 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7164 ::fidl_next::munge!(let crate::wire::ConfigMutability { value } = out);
7165
7166 let _ = value.write(::fidl_next::wire::Uint32::from(self.bits()));
7167 Ok(())
7168 }
7169 }
7170
7171 impl ::core::convert::From<crate::wire::ConfigMutability> for ConfigMutability {
7172 fn from(wire: crate::wire::ConfigMutability) -> Self {
7173 Self::from_bits_retain(u32::from(wire.value))
7174 }
7175 }
7176
7177 impl ::fidl_next::FromWire<crate::wire::ConfigMutability> for ConfigMutability {
7178 #[inline]
7179 fn from_wire(wire: crate::wire::ConfigMutability) -> Self {
7180 Self::from(wire)
7181 }
7182 }
7183
7184 impl ::fidl_next::FromWireRef<crate::wire::ConfigMutability> for ConfigMutability {
7185 #[inline]
7186 fn from_wire_ref(wire: &crate::wire::ConfigMutability) -> Self {
7187 Self::from(*wire)
7188 }
7189 }
7190
7191 #[doc = " Declares a single config field (key + type)\n"]
7192 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7193 pub struct ConfigField {
7194 pub key: ::core::option::Option<::std::string::String>,
7195
7196 pub type_: ::core::option::Option<crate::natural::ConfigType>,
7197
7198 pub mutability: ::core::option::Option<crate::natural::ConfigMutability>,
7199 }
7200
7201 impl ConfigField {
7202 fn __max_ordinal(&self) -> usize {
7203 if self.mutability.is_some() {
7204 return 3;
7205 }
7206
7207 if self.type_.is_some() {
7208 return 2;
7209 }
7210
7211 if self.key.is_some() {
7212 return 1;
7213 }
7214
7215 0
7216 }
7217 }
7218
7219 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigField<'static>, ___E> for ConfigField
7220 where
7221 ___E: ::fidl_next::Encoder + ?Sized,
7222 {
7223 #[inline]
7224 fn encode(
7225 mut self,
7226 encoder: &mut ___E,
7227 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigField<'static>>,
7228 _: (),
7229 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7230 ::fidl_next::munge!(let crate::wire::ConfigField { table } = out);
7231
7232 let max_ord = self.__max_ordinal();
7233
7234 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7235 ::fidl_next::Wire::zero_padding(&mut out);
7236
7237 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7238 ::fidl_next::wire::Envelope,
7239 >(encoder, max_ord);
7240
7241 for i in 1..=max_ord {
7242 match i {
7243 3 => {
7244 if let Some(value) = self.mutability.take() {
7245 ::fidl_next::wire::Envelope::encode_value::<
7246 crate::wire::ConfigMutability,
7247 ___E,
7248 >(
7249 value, preallocated.encoder, &mut out, ()
7250 )?;
7251 } else {
7252 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7253 }
7254 }
7255
7256 2 => {
7257 if let Some(value) = self.type_.take() {
7258 ::fidl_next::wire::Envelope::encode_value::<
7259 crate::wire::ConfigType<'static>,
7260 ___E,
7261 >(
7262 value, preallocated.encoder, &mut out, ()
7263 )?;
7264 } else {
7265 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7266 }
7267 }
7268
7269 1 => {
7270 if let Some(value) = self.key.take() {
7271 ::fidl_next::wire::Envelope::encode_value::<
7272 ::fidl_next::wire::String<'static>,
7273 ___E,
7274 >(
7275 value, preallocated.encoder, &mut out, 64
7276 )?;
7277 } else {
7278 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7279 }
7280 }
7281
7282 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7283 }
7284 unsafe {
7285 preallocated.write_next(out.assume_init_ref());
7286 }
7287 }
7288
7289 ::fidl_next::wire::Table::encode_len(table, max_ord);
7290
7291 Ok(())
7292 }
7293 }
7294
7295 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigField<'static>, ___E>
7296 for &'a ConfigField
7297 where
7298 ___E: ::fidl_next::Encoder + ?Sized,
7299 {
7300 #[inline]
7301 fn encode(
7302 self,
7303 encoder: &mut ___E,
7304 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigField<'static>>,
7305 _: (),
7306 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7307 ::fidl_next::munge!(let crate::wire::ConfigField { table } = out);
7308
7309 let max_ord = self.__max_ordinal();
7310
7311 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7312 ::fidl_next::Wire::zero_padding(&mut out);
7313
7314 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7315 ::fidl_next::wire::Envelope,
7316 >(encoder, max_ord);
7317
7318 for i in 1..=max_ord {
7319 match i {
7320 3 => {
7321 if let Some(value) = &self.mutability {
7322 ::fidl_next::wire::Envelope::encode_value::<
7323 crate::wire::ConfigMutability,
7324 ___E,
7325 >(
7326 value, preallocated.encoder, &mut out, ()
7327 )?;
7328 } else {
7329 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7330 }
7331 }
7332
7333 2 => {
7334 if let Some(value) = &self.type_ {
7335 ::fidl_next::wire::Envelope::encode_value::<
7336 crate::wire::ConfigType<'static>,
7337 ___E,
7338 >(
7339 value, preallocated.encoder, &mut out, ()
7340 )?;
7341 } else {
7342 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7343 }
7344 }
7345
7346 1 => {
7347 if let Some(value) = &self.key {
7348 ::fidl_next::wire::Envelope::encode_value::<
7349 ::fidl_next::wire::String<'static>,
7350 ___E,
7351 >(
7352 value, preallocated.encoder, &mut out, 64
7353 )?;
7354 } else {
7355 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7356 }
7357 }
7358
7359 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7360 }
7361 unsafe {
7362 preallocated.write_next(out.assume_init_ref());
7363 }
7364 }
7365
7366 ::fidl_next::wire::Table::encode_len(table, max_ord);
7367
7368 Ok(())
7369 }
7370 }
7371
7372 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigField<'de>> for ConfigField {
7373 #[inline]
7374 fn from_wire(wire_: crate::wire::ConfigField<'de>) -> Self {
7375 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7376
7377 let key = wire_.table.get(1);
7378
7379 let type_ = wire_.table.get(2);
7380
7381 let mutability = wire_.table.get(3);
7382
7383 Self {
7384 key: key.map(|envelope| {
7385 ::fidl_next::FromWire::from_wire(unsafe {
7386 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
7387 })
7388 }),
7389
7390 type_: type_.map(|envelope| {
7391 ::fidl_next::FromWire::from_wire(unsafe {
7392 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
7393 })
7394 }),
7395
7396 mutability: mutability.map(|envelope| {
7397 ::fidl_next::FromWire::from_wire(unsafe {
7398 envelope.read_unchecked::<crate::wire::ConfigMutability>()
7399 })
7400 }),
7401 }
7402 }
7403 }
7404
7405 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigField<'de>> for ConfigField {
7406 #[inline]
7407 fn from_wire_ref(wire: &crate::wire::ConfigField<'de>) -> Self {
7408 Self {
7409 key: wire.table.get(1).map(|envelope| {
7410 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7411 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
7412 })
7413 }),
7414
7415 type_: wire.table.get(2).map(|envelope| {
7416 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7417 envelope.deref_unchecked::<crate::wire::ConfigType<'de>>()
7418 })
7419 }),
7420
7421 mutability: wire.table.get(3).map(|envelope| {
7422 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
7423 envelope.deref_unchecked::<crate::wire::ConfigMutability>()
7424 })
7425 }),
7426 }
7427 }
7428 }
7429
7430 #[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"]
7431 #[derive(Debug, Default, Clone, PartialEq)]
7432 pub struct Program {
7433 pub runner: ::core::option::Option<::std::string::String>,
7434
7435 pub info: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
7436 }
7437
7438 impl Program {
7439 fn __max_ordinal(&self) -> usize {
7440 if self.info.is_some() {
7441 return 2;
7442 }
7443
7444 if self.runner.is_some() {
7445 return 1;
7446 }
7447
7448 0
7449 }
7450 }
7451
7452 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Program<'static>, ___E> for Program
7453 where
7454 ___E: ::fidl_next::Encoder + ?Sized,
7455 {
7456 #[inline]
7457 fn encode(
7458 mut self,
7459 encoder: &mut ___E,
7460 out: &mut ::core::mem::MaybeUninit<crate::wire::Program<'static>>,
7461 _: (),
7462 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7463 ::fidl_next::munge!(let crate::wire::Program { table } = out);
7464
7465 let max_ord = self.__max_ordinal();
7466
7467 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7468 ::fidl_next::Wire::zero_padding(&mut out);
7469
7470 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7471 ::fidl_next::wire::Envelope,
7472 >(encoder, max_ord);
7473
7474 for i in 1..=max_ord {
7475 match i {
7476 2 => {
7477 if let Some(value) = self.info.take() {
7478 ::fidl_next::wire::Envelope::encode_value::<
7479 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
7480 ___E,
7481 >(
7482 value, preallocated.encoder, &mut out, ()
7483 )?;
7484 } else {
7485 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7486 }
7487 }
7488
7489 1 => {
7490 if let Some(value) = self.runner.take() {
7491 ::fidl_next::wire::Envelope::encode_value::<
7492 ::fidl_next::wire::String<'static>,
7493 ___E,
7494 >(
7495 value, preallocated.encoder, &mut out, 100
7496 )?;
7497 } else {
7498 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7499 }
7500 }
7501
7502 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7503 }
7504 unsafe {
7505 preallocated.write_next(out.assume_init_ref());
7506 }
7507 }
7508
7509 ::fidl_next::wire::Table::encode_len(table, max_ord);
7510
7511 Ok(())
7512 }
7513 }
7514
7515 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Program<'static>, ___E> for &'a Program
7516 where
7517 ___E: ::fidl_next::Encoder + ?Sized,
7518 {
7519 #[inline]
7520 fn encode(
7521 self,
7522 encoder: &mut ___E,
7523 out: &mut ::core::mem::MaybeUninit<crate::wire::Program<'static>>,
7524 _: (),
7525 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7526 ::fidl_next::munge!(let crate::wire::Program { table } = out);
7527
7528 let max_ord = self.__max_ordinal();
7529
7530 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7531 ::fidl_next::Wire::zero_padding(&mut out);
7532
7533 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7534 ::fidl_next::wire::Envelope,
7535 >(encoder, max_ord);
7536
7537 for i in 1..=max_ord {
7538 match i {
7539 2 => {
7540 if let Some(value) = &self.info {
7541 ::fidl_next::wire::Envelope::encode_value::<
7542 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
7543 ___E,
7544 >(
7545 value, preallocated.encoder, &mut out, ()
7546 )?;
7547 } else {
7548 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7549 }
7550 }
7551
7552 1 => {
7553 if let Some(value) = &self.runner {
7554 ::fidl_next::wire::Envelope::encode_value::<
7555 ::fidl_next::wire::String<'static>,
7556 ___E,
7557 >(
7558 value, preallocated.encoder, &mut out, 100
7559 )?;
7560 } else {
7561 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7562 }
7563 }
7564
7565 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7566 }
7567 unsafe {
7568 preallocated.write_next(out.assume_init_ref());
7569 }
7570 }
7571
7572 ::fidl_next::wire::Table::encode_len(table, max_ord);
7573
7574 Ok(())
7575 }
7576 }
7577
7578 impl<'de> ::fidl_next::FromWire<crate::wire::Program<'de>> for Program {
7579 #[inline]
7580 fn from_wire(wire_: crate::wire::Program<'de>) -> Self {
7581 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7582
7583 let runner = wire_.table.get(1);
7584
7585 let info = wire_.table.get(2);
7586
7587 Self {
7588
7589
7590 runner: runner.map(|envelope| ::fidl_next::FromWire::from_wire(
7591 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
7592 )),
7593
7594
7595 info: info.map(|envelope| ::fidl_next::FromWire::from_wire(
7596 unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
7597 )),
7598
7599 }
7600 }
7601 }
7602
7603 impl<'de> ::fidl_next::FromWireRef<crate::wire::Program<'de>> for Program {
7604 #[inline]
7605 fn from_wire_ref(wire: &crate::wire::Program<'de>) -> Self {
7606 Self {
7607
7608
7609 runner: wire.table.get(1)
7610 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
7611 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
7612 )),
7613
7614
7615 info: wire.table.get(2)
7616 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
7617 unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
7618 )),
7619
7620 }
7621 }
7622 }
7623
7624 #[doc = " Debug information about the component.\n"]
7625 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7626 pub struct DebugInfo {
7627 pub manifest_sources: ::core::option::Option<::std::vec::Vec<::std::string::String>>,
7628 }
7629
7630 impl DebugInfo {
7631 fn __max_ordinal(&self) -> usize {
7632 if self.manifest_sources.is_some() {
7633 return 1;
7634 }
7635
7636 0
7637 }
7638 }
7639
7640 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugInfo<'static>, ___E> for DebugInfo
7641 where
7642 ___E: ::fidl_next::Encoder + ?Sized,
7643 {
7644 #[inline]
7645 fn encode(
7646 mut self,
7647 encoder: &mut ___E,
7648 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugInfo<'static>>,
7649 _: (),
7650 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7651 ::fidl_next::munge!(let crate::wire::DebugInfo { table } = out);
7652
7653 let max_ord = self.__max_ordinal();
7654
7655 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7656 ::fidl_next::Wire::zero_padding(&mut out);
7657
7658 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7659 ::fidl_next::wire::Envelope,
7660 >(encoder, max_ord);
7661
7662 for i in 1..=max_ord {
7663 match i {
7664 1 => {
7665 if let Some(value) = self.manifest_sources.take() {
7666 ::fidl_next::wire::Envelope::encode_value::<
7667 ::fidl_next::wire::Vector<
7668 'static,
7669 ::fidl_next::wire::String<'static>,
7670 >,
7671 ___E,
7672 >(
7673 value, preallocated.encoder, &mut out, (4294967295, 4294967295)
7674 )?;
7675 } else {
7676 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7677 }
7678 }
7679
7680 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7681 }
7682 unsafe {
7683 preallocated.write_next(out.assume_init_ref());
7684 }
7685 }
7686
7687 ::fidl_next::wire::Table::encode_len(table, max_ord);
7688
7689 Ok(())
7690 }
7691 }
7692
7693 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugInfo<'static>, ___E> for &'a DebugInfo
7694 where
7695 ___E: ::fidl_next::Encoder + ?Sized,
7696 {
7697 #[inline]
7698 fn encode(
7699 self,
7700 encoder: &mut ___E,
7701 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugInfo<'static>>,
7702 _: (),
7703 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7704 ::fidl_next::munge!(let crate::wire::DebugInfo { table } = out);
7705
7706 let max_ord = self.__max_ordinal();
7707
7708 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7709 ::fidl_next::Wire::zero_padding(&mut out);
7710
7711 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7712 ::fidl_next::wire::Envelope,
7713 >(encoder, max_ord);
7714
7715 for i in 1..=max_ord {
7716 match i {
7717 1 => {
7718 if let Some(value) = &self.manifest_sources {
7719 ::fidl_next::wire::Envelope::encode_value::<
7720 ::fidl_next::wire::Vector<
7721 'static,
7722 ::fidl_next::wire::String<'static>,
7723 >,
7724 ___E,
7725 >(
7726 value, preallocated.encoder, &mut out, (4294967295, 4294967295)
7727 )?;
7728 } else {
7729 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7730 }
7731 }
7732
7733 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7734 }
7735 unsafe {
7736 preallocated.write_next(out.assume_init_ref());
7737 }
7738 }
7739
7740 ::fidl_next::wire::Table::encode_len(table, max_ord);
7741
7742 Ok(())
7743 }
7744 }
7745
7746 impl<'de> ::fidl_next::FromWire<crate::wire::DebugInfo<'de>> for DebugInfo {
7747 #[inline]
7748 fn from_wire(wire_: crate::wire::DebugInfo<'de>) -> Self {
7749 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
7750
7751 let manifest_sources = wire_.table.get(1);
7752
7753 Self {
7754
7755
7756 manifest_sources: manifest_sources.map(|envelope| ::fidl_next::FromWire::from_wire(
7757 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
7758 )),
7759
7760 }
7761 }
7762 }
7763
7764 impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugInfo<'de>> for DebugInfo {
7765 #[inline]
7766 fn from_wire_ref(wire: &crate::wire::DebugInfo<'de>) -> Self {
7767 Self {
7768
7769
7770 manifest_sources: wire.table.get(1)
7771 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
7772 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
7773 )),
7774
7775 }
7776 }
7777 }
7778
7779 #[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"]
7780 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7781 pub struct UseService {
7782 pub source: ::core::option::Option<crate::natural::Ref>,
7783
7784 pub source_name: ::core::option::Option<::std::string::String>,
7785
7786 pub target_path: ::core::option::Option<::std::string::String>,
7787
7788 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
7789
7790 pub availability: ::core::option::Option<crate::natural::Availability>,
7791
7792 pub source_dictionary: ::core::option::Option<::std::string::String>,
7793 }
7794
7795 impl UseService {
7796 fn __max_ordinal(&self) -> usize {
7797 if self.source_dictionary.is_some() {
7798 return 6;
7799 }
7800
7801 if self.availability.is_some() {
7802 return 5;
7803 }
7804
7805 if self.dependency_type.is_some() {
7806 return 4;
7807 }
7808
7809 if self.target_path.is_some() {
7810 return 3;
7811 }
7812
7813 if self.source_name.is_some() {
7814 return 2;
7815 }
7816
7817 if self.source.is_some() {
7818 return 1;
7819 }
7820
7821 0
7822 }
7823 }
7824
7825 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseService<'static>, ___E> for UseService
7826 where
7827 ___E: ::fidl_next::Encoder + ?Sized,
7828 {
7829 #[inline]
7830 fn encode(
7831 mut self,
7832 encoder: &mut ___E,
7833 out: &mut ::core::mem::MaybeUninit<crate::wire::UseService<'static>>,
7834 _: (),
7835 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7836 ::fidl_next::munge!(let crate::wire::UseService { table } = out);
7837
7838 let max_ord = self.__max_ordinal();
7839
7840 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7841 ::fidl_next::Wire::zero_padding(&mut out);
7842
7843 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7844 ::fidl_next::wire::Envelope,
7845 >(encoder, max_ord);
7846
7847 for i in 1..=max_ord {
7848 match i {
7849 6 => {
7850 if let Some(value) = self.source_dictionary.take() {
7851 ::fidl_next::wire::Envelope::encode_value::<
7852 ::fidl_next::wire::String<'static>,
7853 ___E,
7854 >(
7855 value, preallocated.encoder, &mut out, 1024
7856 )?;
7857 } else {
7858 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7859 }
7860 }
7861
7862 5 => {
7863 if let Some(value) = self.availability.take() {
7864 ::fidl_next::wire::Envelope::encode_value::<
7865 crate::wire::Availability,
7866 ___E,
7867 >(
7868 value, preallocated.encoder, &mut out, ()
7869 )?;
7870 } else {
7871 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7872 }
7873 }
7874
7875 4 => {
7876 if let Some(value) = self.dependency_type.take() {
7877 ::fidl_next::wire::Envelope::encode_value::<
7878 crate::wire::DependencyType,
7879 ___E,
7880 >(
7881 value, preallocated.encoder, &mut out, ()
7882 )?;
7883 } else {
7884 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7885 }
7886 }
7887
7888 3 => {
7889 if let Some(value) = self.target_path.take() {
7890 ::fidl_next::wire::Envelope::encode_value::<
7891 ::fidl_next::wire::String<'static>,
7892 ___E,
7893 >(
7894 value, preallocated.encoder, &mut out, 1024
7895 )?;
7896 } else {
7897 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7898 }
7899 }
7900
7901 2 => {
7902 if let Some(value) = self.source_name.take() {
7903 ::fidl_next::wire::Envelope::encode_value::<
7904 ::fidl_next::wire::String<'static>,
7905 ___E,
7906 >(
7907 value, preallocated.encoder, &mut out, 100
7908 )?;
7909 } else {
7910 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7911 }
7912 }
7913
7914 1 => {
7915 if let Some(value) = self.source.take() {
7916 ::fidl_next::wire::Envelope::encode_value::<
7917 crate::wire::Ref<'static>,
7918 ___E,
7919 >(
7920 value, preallocated.encoder, &mut out, ()
7921 )?;
7922 } else {
7923 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7924 }
7925 }
7926
7927 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
7928 }
7929 unsafe {
7930 preallocated.write_next(out.assume_init_ref());
7931 }
7932 }
7933
7934 ::fidl_next::wire::Table::encode_len(table, max_ord);
7935
7936 Ok(())
7937 }
7938 }
7939
7940 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseService<'static>, ___E> for &'a UseService
7941 where
7942 ___E: ::fidl_next::Encoder + ?Sized,
7943 {
7944 #[inline]
7945 fn encode(
7946 self,
7947 encoder: &mut ___E,
7948 out: &mut ::core::mem::MaybeUninit<crate::wire::UseService<'static>>,
7949 _: (),
7950 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
7951 ::fidl_next::munge!(let crate::wire::UseService { table } = out);
7952
7953 let max_ord = self.__max_ordinal();
7954
7955 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
7956 ::fidl_next::Wire::zero_padding(&mut out);
7957
7958 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
7959 ::fidl_next::wire::Envelope,
7960 >(encoder, max_ord);
7961
7962 for i in 1..=max_ord {
7963 match i {
7964 6 => {
7965 if let Some(value) = &self.source_dictionary {
7966 ::fidl_next::wire::Envelope::encode_value::<
7967 ::fidl_next::wire::String<'static>,
7968 ___E,
7969 >(
7970 value, preallocated.encoder, &mut out, 1024
7971 )?;
7972 } else {
7973 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7974 }
7975 }
7976
7977 5 => {
7978 if let Some(value) = &self.availability {
7979 ::fidl_next::wire::Envelope::encode_value::<
7980 crate::wire::Availability,
7981 ___E,
7982 >(
7983 value, preallocated.encoder, &mut out, ()
7984 )?;
7985 } else {
7986 ::fidl_next::wire::Envelope::encode_zero(&mut out)
7987 }
7988 }
7989
7990 4 => {
7991 if let Some(value) = &self.dependency_type {
7992 ::fidl_next::wire::Envelope::encode_value::<
7993 crate::wire::DependencyType,
7994 ___E,
7995 >(
7996 value, preallocated.encoder, &mut out, ()
7997 )?;
7998 } else {
7999 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8000 }
8001 }
8002
8003 3 => {
8004 if let Some(value) = &self.target_path {
8005 ::fidl_next::wire::Envelope::encode_value::<
8006 ::fidl_next::wire::String<'static>,
8007 ___E,
8008 >(
8009 value, preallocated.encoder, &mut out, 1024
8010 )?;
8011 } else {
8012 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8013 }
8014 }
8015
8016 2 => {
8017 if let Some(value) = &self.source_name {
8018 ::fidl_next::wire::Envelope::encode_value::<
8019 ::fidl_next::wire::String<'static>,
8020 ___E,
8021 >(
8022 value, preallocated.encoder, &mut out, 100
8023 )?;
8024 } else {
8025 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8026 }
8027 }
8028
8029 1 => {
8030 if let Some(value) = &self.source {
8031 ::fidl_next::wire::Envelope::encode_value::<
8032 crate::wire::Ref<'static>,
8033 ___E,
8034 >(
8035 value, preallocated.encoder, &mut out, ()
8036 )?;
8037 } else {
8038 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8039 }
8040 }
8041
8042 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8043 }
8044 unsafe {
8045 preallocated.write_next(out.assume_init_ref());
8046 }
8047 }
8048
8049 ::fidl_next::wire::Table::encode_len(table, max_ord);
8050
8051 Ok(())
8052 }
8053 }
8054
8055 impl<'de> ::fidl_next::FromWire<crate::wire::UseService<'de>> for UseService {
8056 #[inline]
8057 fn from_wire(wire_: crate::wire::UseService<'de>) -> Self {
8058 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8059
8060 let source = wire_.table.get(1);
8061
8062 let source_name = wire_.table.get(2);
8063
8064 let target_path = wire_.table.get(3);
8065
8066 let dependency_type = wire_.table.get(4);
8067
8068 let availability = wire_.table.get(5);
8069
8070 let source_dictionary = wire_.table.get(6);
8071
8072 Self {
8073 source: source.map(|envelope| {
8074 ::fidl_next::FromWire::from_wire(unsafe {
8075 envelope.read_unchecked::<crate::wire::Ref<'de>>()
8076 })
8077 }),
8078
8079 source_name: source_name.map(|envelope| {
8080 ::fidl_next::FromWire::from_wire(unsafe {
8081 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8082 })
8083 }),
8084
8085 target_path: target_path.map(|envelope| {
8086 ::fidl_next::FromWire::from_wire(unsafe {
8087 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8088 })
8089 }),
8090
8091 dependency_type: dependency_type.map(|envelope| {
8092 ::fidl_next::FromWire::from_wire(unsafe {
8093 envelope.read_unchecked::<crate::wire::DependencyType>()
8094 })
8095 }),
8096
8097 availability: availability.map(|envelope| {
8098 ::fidl_next::FromWire::from_wire(unsafe {
8099 envelope.read_unchecked::<crate::wire::Availability>()
8100 })
8101 }),
8102
8103 source_dictionary: source_dictionary.map(|envelope| {
8104 ::fidl_next::FromWire::from_wire(unsafe {
8105 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8106 })
8107 }),
8108 }
8109 }
8110 }
8111
8112 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseService<'de>> for UseService {
8113 #[inline]
8114 fn from_wire_ref(wire: &crate::wire::UseService<'de>) -> Self {
8115 Self {
8116 source: wire.table.get(1).map(|envelope| {
8117 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8118 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
8119 })
8120 }),
8121
8122 source_name: wire.table.get(2).map(|envelope| {
8123 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8124 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8125 })
8126 }),
8127
8128 target_path: wire.table.get(3).map(|envelope| {
8129 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8130 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8131 })
8132 }),
8133
8134 dependency_type: wire.table.get(4).map(|envelope| {
8135 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8136 envelope.deref_unchecked::<crate::wire::DependencyType>()
8137 })
8138 }),
8139
8140 availability: wire.table.get(5).map(|envelope| {
8141 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8142 envelope.deref_unchecked::<crate::wire::Availability>()
8143 })
8144 }),
8145
8146 source_dictionary: wire.table.get(6).map(|envelope| {
8147 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8148 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8149 })
8150 }),
8151 }
8152 }
8153 }
8154
8155 #[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"]
8156 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8157 pub struct UseProtocol {
8158 pub source: ::core::option::Option<crate::natural::Ref>,
8159
8160 pub source_name: ::core::option::Option<::std::string::String>,
8161
8162 pub target_path: ::core::option::Option<::std::string::String>,
8163
8164 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
8165
8166 pub availability: ::core::option::Option<crate::natural::Availability>,
8167
8168 pub source_dictionary: ::core::option::Option<::std::string::String>,
8169
8170 pub numbered_handle: ::core::option::Option<u8>,
8171 }
8172
8173 impl UseProtocol {
8174 fn __max_ordinal(&self) -> usize {
8175 if self.numbered_handle.is_some() {
8176 return 7;
8177 }
8178
8179 if self.source_dictionary.is_some() {
8180 return 6;
8181 }
8182
8183 if self.availability.is_some() {
8184 return 5;
8185 }
8186
8187 if self.dependency_type.is_some() {
8188 return 4;
8189 }
8190
8191 if self.target_path.is_some() {
8192 return 3;
8193 }
8194
8195 if self.source_name.is_some() {
8196 return 2;
8197 }
8198
8199 if self.source.is_some() {
8200 return 1;
8201 }
8202
8203 0
8204 }
8205 }
8206
8207 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseProtocol<'static>, ___E> for UseProtocol
8208 where
8209 ___E: ::fidl_next::Encoder + ?Sized,
8210 {
8211 #[inline]
8212 fn encode(
8213 mut self,
8214 encoder: &mut ___E,
8215 out: &mut ::core::mem::MaybeUninit<crate::wire::UseProtocol<'static>>,
8216 _: (),
8217 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8218 ::fidl_next::munge!(let crate::wire::UseProtocol { table } = out);
8219
8220 let max_ord = self.__max_ordinal();
8221
8222 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8223 ::fidl_next::Wire::zero_padding(&mut out);
8224
8225 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8226 ::fidl_next::wire::Envelope,
8227 >(encoder, max_ord);
8228
8229 for i in 1..=max_ord {
8230 match i {
8231 7 => {
8232 if let Some(value) = self.numbered_handle.take() {
8233 ::fidl_next::wire::Envelope::encode_value::<u8, ___E>(
8234 value,
8235 preallocated.encoder,
8236 &mut out,
8237 (),
8238 )?;
8239 } else {
8240 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8241 }
8242 }
8243
8244 6 => {
8245 if let Some(value) = self.source_dictionary.take() {
8246 ::fidl_next::wire::Envelope::encode_value::<
8247 ::fidl_next::wire::String<'static>,
8248 ___E,
8249 >(
8250 value, preallocated.encoder, &mut out, 1024
8251 )?;
8252 } else {
8253 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8254 }
8255 }
8256
8257 5 => {
8258 if let Some(value) = self.availability.take() {
8259 ::fidl_next::wire::Envelope::encode_value::<
8260 crate::wire::Availability,
8261 ___E,
8262 >(
8263 value, preallocated.encoder, &mut out, ()
8264 )?;
8265 } else {
8266 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8267 }
8268 }
8269
8270 4 => {
8271 if let Some(value) = self.dependency_type.take() {
8272 ::fidl_next::wire::Envelope::encode_value::<
8273 crate::wire::DependencyType,
8274 ___E,
8275 >(
8276 value, preallocated.encoder, &mut out, ()
8277 )?;
8278 } else {
8279 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8280 }
8281 }
8282
8283 3 => {
8284 if let Some(value) = self.target_path.take() {
8285 ::fidl_next::wire::Envelope::encode_value::<
8286 ::fidl_next::wire::String<'static>,
8287 ___E,
8288 >(
8289 value, preallocated.encoder, &mut out, 1024
8290 )?;
8291 } else {
8292 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8293 }
8294 }
8295
8296 2 => {
8297 if let Some(value) = self.source_name.take() {
8298 ::fidl_next::wire::Envelope::encode_value::<
8299 ::fidl_next::wire::String<'static>,
8300 ___E,
8301 >(
8302 value, preallocated.encoder, &mut out, 100
8303 )?;
8304 } else {
8305 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8306 }
8307 }
8308
8309 1 => {
8310 if let Some(value) = self.source.take() {
8311 ::fidl_next::wire::Envelope::encode_value::<
8312 crate::wire::Ref<'static>,
8313 ___E,
8314 >(
8315 value, preallocated.encoder, &mut out, ()
8316 )?;
8317 } else {
8318 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8319 }
8320 }
8321
8322 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8323 }
8324 unsafe {
8325 preallocated.write_next(out.assume_init_ref());
8326 }
8327 }
8328
8329 ::fidl_next::wire::Table::encode_len(table, max_ord);
8330
8331 Ok(())
8332 }
8333 }
8334
8335 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseProtocol<'static>, ___E>
8336 for &'a UseProtocol
8337 where
8338 ___E: ::fidl_next::Encoder + ?Sized,
8339 {
8340 #[inline]
8341 fn encode(
8342 self,
8343 encoder: &mut ___E,
8344 out: &mut ::core::mem::MaybeUninit<crate::wire::UseProtocol<'static>>,
8345 _: (),
8346 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8347 ::fidl_next::munge!(let crate::wire::UseProtocol { table } = out);
8348
8349 let max_ord = self.__max_ordinal();
8350
8351 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8352 ::fidl_next::Wire::zero_padding(&mut out);
8353
8354 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8355 ::fidl_next::wire::Envelope,
8356 >(encoder, max_ord);
8357
8358 for i in 1..=max_ord {
8359 match i {
8360 7 => {
8361 if let Some(value) = &self.numbered_handle {
8362 ::fidl_next::wire::Envelope::encode_value::<u8, ___E>(
8363 value,
8364 preallocated.encoder,
8365 &mut out,
8366 (),
8367 )?;
8368 } else {
8369 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8370 }
8371 }
8372
8373 6 => {
8374 if let Some(value) = &self.source_dictionary {
8375 ::fidl_next::wire::Envelope::encode_value::<
8376 ::fidl_next::wire::String<'static>,
8377 ___E,
8378 >(
8379 value, preallocated.encoder, &mut out, 1024
8380 )?;
8381 } else {
8382 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8383 }
8384 }
8385
8386 5 => {
8387 if let Some(value) = &self.availability {
8388 ::fidl_next::wire::Envelope::encode_value::<
8389 crate::wire::Availability,
8390 ___E,
8391 >(
8392 value, preallocated.encoder, &mut out, ()
8393 )?;
8394 } else {
8395 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8396 }
8397 }
8398
8399 4 => {
8400 if let Some(value) = &self.dependency_type {
8401 ::fidl_next::wire::Envelope::encode_value::<
8402 crate::wire::DependencyType,
8403 ___E,
8404 >(
8405 value, preallocated.encoder, &mut out, ()
8406 )?;
8407 } else {
8408 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8409 }
8410 }
8411
8412 3 => {
8413 if let Some(value) = &self.target_path {
8414 ::fidl_next::wire::Envelope::encode_value::<
8415 ::fidl_next::wire::String<'static>,
8416 ___E,
8417 >(
8418 value, preallocated.encoder, &mut out, 1024
8419 )?;
8420 } else {
8421 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8422 }
8423 }
8424
8425 2 => {
8426 if let Some(value) = &self.source_name {
8427 ::fidl_next::wire::Envelope::encode_value::<
8428 ::fidl_next::wire::String<'static>,
8429 ___E,
8430 >(
8431 value, preallocated.encoder, &mut out, 100
8432 )?;
8433 } else {
8434 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8435 }
8436 }
8437
8438 1 => {
8439 if let Some(value) = &self.source {
8440 ::fidl_next::wire::Envelope::encode_value::<
8441 crate::wire::Ref<'static>,
8442 ___E,
8443 >(
8444 value, preallocated.encoder, &mut out, ()
8445 )?;
8446 } else {
8447 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8448 }
8449 }
8450
8451 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8452 }
8453 unsafe {
8454 preallocated.write_next(out.assume_init_ref());
8455 }
8456 }
8457
8458 ::fidl_next::wire::Table::encode_len(table, max_ord);
8459
8460 Ok(())
8461 }
8462 }
8463
8464 impl<'de> ::fidl_next::FromWire<crate::wire::UseProtocol<'de>> for UseProtocol {
8465 #[inline]
8466 fn from_wire(wire_: crate::wire::UseProtocol<'de>) -> Self {
8467 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8468
8469 let source = wire_.table.get(1);
8470
8471 let source_name = wire_.table.get(2);
8472
8473 let target_path = wire_.table.get(3);
8474
8475 let dependency_type = wire_.table.get(4);
8476
8477 let availability = wire_.table.get(5);
8478
8479 let source_dictionary = wire_.table.get(6);
8480
8481 let numbered_handle = wire_.table.get(7);
8482
8483 Self {
8484 source: source.map(|envelope| {
8485 ::fidl_next::FromWire::from_wire(unsafe {
8486 envelope.read_unchecked::<crate::wire::Ref<'de>>()
8487 })
8488 }),
8489
8490 source_name: source_name.map(|envelope| {
8491 ::fidl_next::FromWire::from_wire(unsafe {
8492 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8493 })
8494 }),
8495
8496 target_path: target_path.map(|envelope| {
8497 ::fidl_next::FromWire::from_wire(unsafe {
8498 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8499 })
8500 }),
8501
8502 dependency_type: dependency_type.map(|envelope| {
8503 ::fidl_next::FromWire::from_wire(unsafe {
8504 envelope.read_unchecked::<crate::wire::DependencyType>()
8505 })
8506 }),
8507
8508 availability: availability.map(|envelope| {
8509 ::fidl_next::FromWire::from_wire(unsafe {
8510 envelope.read_unchecked::<crate::wire::Availability>()
8511 })
8512 }),
8513
8514 source_dictionary: source_dictionary.map(|envelope| {
8515 ::fidl_next::FromWire::from_wire(unsafe {
8516 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8517 })
8518 }),
8519
8520 numbered_handle: numbered_handle.map(|envelope| {
8521 ::fidl_next::FromWire::from_wire(unsafe { envelope.read_unchecked::<u8>() })
8522 }),
8523 }
8524 }
8525 }
8526
8527 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseProtocol<'de>> for UseProtocol {
8528 #[inline]
8529 fn from_wire_ref(wire: &crate::wire::UseProtocol<'de>) -> Self {
8530 Self {
8531 source: wire.table.get(1).map(|envelope| {
8532 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8533 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
8534 })
8535 }),
8536
8537 source_name: wire.table.get(2).map(|envelope| {
8538 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8539 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8540 })
8541 }),
8542
8543 target_path: wire.table.get(3).map(|envelope| {
8544 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8545 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8546 })
8547 }),
8548
8549 dependency_type: wire.table.get(4).map(|envelope| {
8550 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8551 envelope.deref_unchecked::<crate::wire::DependencyType>()
8552 })
8553 }),
8554
8555 availability: wire.table.get(5).map(|envelope| {
8556 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8557 envelope.deref_unchecked::<crate::wire::Availability>()
8558 })
8559 }),
8560
8561 source_dictionary: wire.table.get(6).map(|envelope| {
8562 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8563 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
8564 })
8565 }),
8566
8567 numbered_handle: wire.table.get(7).map(|envelope| {
8568 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8569 envelope.deref_unchecked::<u8>()
8570 })
8571 }),
8572 }
8573 }
8574 }
8575
8576 #[doc = " Declares a directory used by a component, which was offered to it.\n"]
8577 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
8578 pub struct UseDirectory {
8579 pub source: ::core::option::Option<crate::natural::Ref>,
8580
8581 pub source_name: ::core::option::Option<::std::string::String>,
8582
8583 pub target_path: ::core::option::Option<::std::string::String>,
8584
8585 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
8586
8587 pub subdir: ::core::option::Option<::std::string::String>,
8588
8589 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
8590
8591 pub availability: ::core::option::Option<crate::natural::Availability>,
8592
8593 pub source_dictionary: ::core::option::Option<::std::string::String>,
8594 }
8595
8596 impl UseDirectory {
8597 fn __max_ordinal(&self) -> usize {
8598 if self.source_dictionary.is_some() {
8599 return 8;
8600 }
8601
8602 if self.availability.is_some() {
8603 return 7;
8604 }
8605
8606 if self.dependency_type.is_some() {
8607 return 6;
8608 }
8609
8610 if self.subdir.is_some() {
8611 return 5;
8612 }
8613
8614 if self.rights.is_some() {
8615 return 4;
8616 }
8617
8618 if self.target_path.is_some() {
8619 return 3;
8620 }
8621
8622 if self.source_name.is_some() {
8623 return 2;
8624 }
8625
8626 if self.source.is_some() {
8627 return 1;
8628 }
8629
8630 0
8631 }
8632 }
8633
8634 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseDirectory<'static>, ___E> for UseDirectory
8635 where
8636 ___E: ::fidl_next::Encoder + ?Sized,
8637 {
8638 #[inline]
8639 fn encode(
8640 mut self,
8641 encoder: &mut ___E,
8642 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDirectory<'static>>,
8643 _: (),
8644 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8645 ::fidl_next::munge!(let crate::wire::UseDirectory { table } = out);
8646
8647 let max_ord = self.__max_ordinal();
8648
8649 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8650 ::fidl_next::Wire::zero_padding(&mut out);
8651
8652 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8653 ::fidl_next::wire::Envelope,
8654 >(encoder, max_ord);
8655
8656 for i in 1..=max_ord {
8657 match i {
8658 8 => {
8659 if let Some(value) = self.source_dictionary.take() {
8660 ::fidl_next::wire::Envelope::encode_value::<
8661 ::fidl_next::wire::String<'static>,
8662 ___E,
8663 >(
8664 value, preallocated.encoder, &mut out, 1024
8665 )?;
8666 } else {
8667 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8668 }
8669 }
8670
8671 7 => {
8672 if let Some(value) = self.availability.take() {
8673 ::fidl_next::wire::Envelope::encode_value::<
8674 crate::wire::Availability,
8675 ___E,
8676 >(
8677 value, preallocated.encoder, &mut out, ()
8678 )?;
8679 } else {
8680 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8681 }
8682 }
8683
8684 6 => {
8685 if let Some(value) = self.dependency_type.take() {
8686 ::fidl_next::wire::Envelope::encode_value::<
8687 crate::wire::DependencyType,
8688 ___E,
8689 >(
8690 value, preallocated.encoder, &mut out, ()
8691 )?;
8692 } else {
8693 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8694 }
8695 }
8696
8697 5 => {
8698 if let Some(value) = self.subdir.take() {
8699 ::fidl_next::wire::Envelope::encode_value::<
8700 ::fidl_next::wire::String<'static>,
8701 ___E,
8702 >(
8703 value, preallocated.encoder, &mut out, 1024
8704 )?;
8705 } else {
8706 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8707 }
8708 }
8709
8710 4 => {
8711 if let Some(value) = self.rights.take() {
8712 ::fidl_next::wire::Envelope::encode_value::<
8713 ::fidl_next_common_fuchsia_io::wire::Operations,
8714 ___E,
8715 >(
8716 value, preallocated.encoder, &mut out, ()
8717 )?;
8718 } else {
8719 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8720 }
8721 }
8722
8723 3 => {
8724 if let Some(value) = self.target_path.take() {
8725 ::fidl_next::wire::Envelope::encode_value::<
8726 ::fidl_next::wire::String<'static>,
8727 ___E,
8728 >(
8729 value, preallocated.encoder, &mut out, 1024
8730 )?;
8731 } else {
8732 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8733 }
8734 }
8735
8736 2 => {
8737 if let Some(value) = self.source_name.take() {
8738 ::fidl_next::wire::Envelope::encode_value::<
8739 ::fidl_next::wire::String<'static>,
8740 ___E,
8741 >(
8742 value, preallocated.encoder, &mut out, 100
8743 )?;
8744 } else {
8745 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8746 }
8747 }
8748
8749 1 => {
8750 if let Some(value) = self.source.take() {
8751 ::fidl_next::wire::Envelope::encode_value::<
8752 crate::wire::Ref<'static>,
8753 ___E,
8754 >(
8755 value, preallocated.encoder, &mut out, ()
8756 )?;
8757 } else {
8758 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8759 }
8760 }
8761
8762 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8763 }
8764 unsafe {
8765 preallocated.write_next(out.assume_init_ref());
8766 }
8767 }
8768
8769 ::fidl_next::wire::Table::encode_len(table, max_ord);
8770
8771 Ok(())
8772 }
8773 }
8774
8775 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseDirectory<'static>, ___E>
8776 for &'a UseDirectory
8777 where
8778 ___E: ::fidl_next::Encoder + ?Sized,
8779 {
8780 #[inline]
8781 fn encode(
8782 self,
8783 encoder: &mut ___E,
8784 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDirectory<'static>>,
8785 _: (),
8786 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
8787 ::fidl_next::munge!(let crate::wire::UseDirectory { table } = out);
8788
8789 let max_ord = self.__max_ordinal();
8790
8791 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
8792 ::fidl_next::Wire::zero_padding(&mut out);
8793
8794 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
8795 ::fidl_next::wire::Envelope,
8796 >(encoder, max_ord);
8797
8798 for i in 1..=max_ord {
8799 match i {
8800 8 => {
8801 if let Some(value) = &self.source_dictionary {
8802 ::fidl_next::wire::Envelope::encode_value::<
8803 ::fidl_next::wire::String<'static>,
8804 ___E,
8805 >(
8806 value, preallocated.encoder, &mut out, 1024
8807 )?;
8808 } else {
8809 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8810 }
8811 }
8812
8813 7 => {
8814 if let Some(value) = &self.availability {
8815 ::fidl_next::wire::Envelope::encode_value::<
8816 crate::wire::Availability,
8817 ___E,
8818 >(
8819 value, preallocated.encoder, &mut out, ()
8820 )?;
8821 } else {
8822 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8823 }
8824 }
8825
8826 6 => {
8827 if let Some(value) = &self.dependency_type {
8828 ::fidl_next::wire::Envelope::encode_value::<
8829 crate::wire::DependencyType,
8830 ___E,
8831 >(
8832 value, preallocated.encoder, &mut out, ()
8833 )?;
8834 } else {
8835 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8836 }
8837 }
8838
8839 5 => {
8840 if let Some(value) = &self.subdir {
8841 ::fidl_next::wire::Envelope::encode_value::<
8842 ::fidl_next::wire::String<'static>,
8843 ___E,
8844 >(
8845 value, preallocated.encoder, &mut out, 1024
8846 )?;
8847 } else {
8848 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8849 }
8850 }
8851
8852 4 => {
8853 if let Some(value) = &self.rights {
8854 ::fidl_next::wire::Envelope::encode_value::<
8855 ::fidl_next_common_fuchsia_io::wire::Operations,
8856 ___E,
8857 >(
8858 value, preallocated.encoder, &mut out, ()
8859 )?;
8860 } else {
8861 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8862 }
8863 }
8864
8865 3 => {
8866 if let Some(value) = &self.target_path {
8867 ::fidl_next::wire::Envelope::encode_value::<
8868 ::fidl_next::wire::String<'static>,
8869 ___E,
8870 >(
8871 value, preallocated.encoder, &mut out, 1024
8872 )?;
8873 } else {
8874 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8875 }
8876 }
8877
8878 2 => {
8879 if let Some(value) = &self.source_name {
8880 ::fidl_next::wire::Envelope::encode_value::<
8881 ::fidl_next::wire::String<'static>,
8882 ___E,
8883 >(
8884 value, preallocated.encoder, &mut out, 100
8885 )?;
8886 } else {
8887 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8888 }
8889 }
8890
8891 1 => {
8892 if let Some(value) = &self.source {
8893 ::fidl_next::wire::Envelope::encode_value::<
8894 crate::wire::Ref<'static>,
8895 ___E,
8896 >(
8897 value, preallocated.encoder, &mut out, ()
8898 )?;
8899 } else {
8900 ::fidl_next::wire::Envelope::encode_zero(&mut out)
8901 }
8902 }
8903
8904 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
8905 }
8906 unsafe {
8907 preallocated.write_next(out.assume_init_ref());
8908 }
8909 }
8910
8911 ::fidl_next::wire::Table::encode_len(table, max_ord);
8912
8913 Ok(())
8914 }
8915 }
8916
8917 impl<'de> ::fidl_next::FromWire<crate::wire::UseDirectory<'de>> for UseDirectory {
8918 #[inline]
8919 fn from_wire(wire_: crate::wire::UseDirectory<'de>) -> Self {
8920 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
8921
8922 let source = wire_.table.get(1);
8923
8924 let source_name = wire_.table.get(2);
8925
8926 let target_path = wire_.table.get(3);
8927
8928 let rights = wire_.table.get(4);
8929
8930 let subdir = wire_.table.get(5);
8931
8932 let dependency_type = wire_.table.get(6);
8933
8934 let availability = wire_.table.get(7);
8935
8936 let source_dictionary = wire_.table.get(8);
8937
8938 Self {
8939 source: source.map(|envelope| {
8940 ::fidl_next::FromWire::from_wire(unsafe {
8941 envelope.read_unchecked::<crate::wire::Ref<'de>>()
8942 })
8943 }),
8944
8945 source_name: source_name.map(|envelope| {
8946 ::fidl_next::FromWire::from_wire(unsafe {
8947 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8948 })
8949 }),
8950
8951 target_path: target_path.map(|envelope| {
8952 ::fidl_next::FromWire::from_wire(unsafe {
8953 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8954 })
8955 }),
8956
8957 rights: rights.map(|envelope| {
8958 ::fidl_next::FromWire::from_wire(unsafe {
8959 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
8960 })
8961 }),
8962
8963 subdir: subdir.map(|envelope| {
8964 ::fidl_next::FromWire::from_wire(unsafe {
8965 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8966 })
8967 }),
8968
8969 dependency_type: dependency_type.map(|envelope| {
8970 ::fidl_next::FromWire::from_wire(unsafe {
8971 envelope.read_unchecked::<crate::wire::DependencyType>()
8972 })
8973 }),
8974
8975 availability: availability.map(|envelope| {
8976 ::fidl_next::FromWire::from_wire(unsafe {
8977 envelope.read_unchecked::<crate::wire::Availability>()
8978 })
8979 }),
8980
8981 source_dictionary: source_dictionary.map(|envelope| {
8982 ::fidl_next::FromWire::from_wire(unsafe {
8983 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
8984 })
8985 }),
8986 }
8987 }
8988 }
8989
8990 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseDirectory<'de>> for UseDirectory {
8991 #[inline]
8992 fn from_wire_ref(wire: &crate::wire::UseDirectory<'de>) -> Self {
8993 Self {
8994 source: wire.table.get(1).map(|envelope| {
8995 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
8996 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
8997 })
8998 }),
8999
9000 source_name: wire.table.get(2).map(|envelope| {
9001 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9002 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9003 })
9004 }),
9005
9006 target_path: wire.table.get(3).map(|envelope| {
9007 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9008 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9009 })
9010 }),
9011
9012 rights: wire.table.get(4).map(|envelope| {
9013 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9014 envelope
9015 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
9016 })
9017 }),
9018
9019 subdir: wire.table.get(5).map(|envelope| {
9020 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9021 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9022 })
9023 }),
9024
9025 dependency_type: wire.table.get(6).map(|envelope| {
9026 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9027 envelope.deref_unchecked::<crate::wire::DependencyType>()
9028 })
9029 }),
9030
9031 availability: wire.table.get(7).map(|envelope| {
9032 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9033 envelope.deref_unchecked::<crate::wire::Availability>()
9034 })
9035 }),
9036
9037 source_dictionary: wire.table.get(8).map(|envelope| {
9038 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9039 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9040 })
9041 }),
9042 }
9043 }
9044 }
9045
9046 #[doc = " Declares an EventStream used by a component.\n"]
9047 #[derive(Debug, Default, Clone, PartialEq)]
9048 pub struct UseEventStream {
9049 pub source_name: ::core::option::Option<::std::string::String>,
9050
9051 pub source: ::core::option::Option<crate::natural::Ref>,
9052
9053 pub scope: ::core::option::Option<::std::vec::Vec<crate::natural::Ref>>,
9054
9055 pub target_path: ::core::option::Option<::std::string::String>,
9056
9057 pub availability: ::core::option::Option<crate::natural::Availability>,
9058
9059 pub filter: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
9060 }
9061
9062 impl UseEventStream {
9063 fn __max_ordinal(&self) -> usize {
9064 if self.filter.is_some() {
9065 return 6;
9066 }
9067
9068 if self.availability.is_some() {
9069 return 5;
9070 }
9071
9072 if self.target_path.is_some() {
9073 return 4;
9074 }
9075
9076 if self.scope.is_some() {
9077 return 3;
9078 }
9079
9080 if self.source.is_some() {
9081 return 2;
9082 }
9083
9084 if self.source_name.is_some() {
9085 return 1;
9086 }
9087
9088 0
9089 }
9090 }
9091
9092 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseEventStream<'static>, ___E> for UseEventStream
9093 where
9094 ___E: ::fidl_next::Encoder + ?Sized,
9095 {
9096 #[inline]
9097 fn encode(
9098 mut self,
9099 encoder: &mut ___E,
9100 out: &mut ::core::mem::MaybeUninit<crate::wire::UseEventStream<'static>>,
9101 _: (),
9102 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9103 ::fidl_next::munge!(let crate::wire::UseEventStream { table } = out);
9104
9105 let max_ord = self.__max_ordinal();
9106
9107 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9108 ::fidl_next::Wire::zero_padding(&mut out);
9109
9110 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9111 ::fidl_next::wire::Envelope,
9112 >(encoder, max_ord);
9113
9114 for i in 1..=max_ord {
9115 match i {
9116 6 => {
9117 if let Some(value) = self.filter.take() {
9118 ::fidl_next::wire::Envelope::encode_value::<
9119 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
9120 ___E,
9121 >(
9122 value, preallocated.encoder, &mut out, ()
9123 )?;
9124 } else {
9125 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9126 }
9127 }
9128
9129 5 => {
9130 if let Some(value) = self.availability.take() {
9131 ::fidl_next::wire::Envelope::encode_value::<
9132 crate::wire::Availability,
9133 ___E,
9134 >(
9135 value, preallocated.encoder, &mut out, ()
9136 )?;
9137 } else {
9138 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9139 }
9140 }
9141
9142 4 => {
9143 if let Some(value) = self.target_path.take() {
9144 ::fidl_next::wire::Envelope::encode_value::<
9145 ::fidl_next::wire::String<'static>,
9146 ___E,
9147 >(
9148 value, preallocated.encoder, &mut out, 100
9149 )?;
9150 } else {
9151 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9152 }
9153 }
9154
9155 3 => {
9156 if let Some(value) = self.scope.take() {
9157 ::fidl_next::wire::Envelope::encode_value::<
9158 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
9159 ___E,
9160 >(
9161 value, preallocated.encoder, &mut out, (4294967295, ())
9162 )?;
9163 } else {
9164 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9165 }
9166 }
9167
9168 2 => {
9169 if let Some(value) = self.source.take() {
9170 ::fidl_next::wire::Envelope::encode_value::<
9171 crate::wire::Ref<'static>,
9172 ___E,
9173 >(
9174 value, preallocated.encoder, &mut out, ()
9175 )?;
9176 } else {
9177 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9178 }
9179 }
9180
9181 1 => {
9182 if let Some(value) = self.source_name.take() {
9183 ::fidl_next::wire::Envelope::encode_value::<
9184 ::fidl_next::wire::String<'static>,
9185 ___E,
9186 >(
9187 value, preallocated.encoder, &mut out, 100
9188 )?;
9189 } else {
9190 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9191 }
9192 }
9193
9194 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9195 }
9196 unsafe {
9197 preallocated.write_next(out.assume_init_ref());
9198 }
9199 }
9200
9201 ::fidl_next::wire::Table::encode_len(table, max_ord);
9202
9203 Ok(())
9204 }
9205 }
9206
9207 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseEventStream<'static>, ___E>
9208 for &'a UseEventStream
9209 where
9210 ___E: ::fidl_next::Encoder + ?Sized,
9211 {
9212 #[inline]
9213 fn encode(
9214 self,
9215 encoder: &mut ___E,
9216 out: &mut ::core::mem::MaybeUninit<crate::wire::UseEventStream<'static>>,
9217 _: (),
9218 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9219 ::fidl_next::munge!(let crate::wire::UseEventStream { table } = out);
9220
9221 let max_ord = self.__max_ordinal();
9222
9223 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9224 ::fidl_next::Wire::zero_padding(&mut out);
9225
9226 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9227 ::fidl_next::wire::Envelope,
9228 >(encoder, max_ord);
9229
9230 for i in 1..=max_ord {
9231 match i {
9232 6 => {
9233 if let Some(value) = &self.filter {
9234 ::fidl_next::wire::Envelope::encode_value::<
9235 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
9236 ___E,
9237 >(
9238 value, preallocated.encoder, &mut out, ()
9239 )?;
9240 } else {
9241 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9242 }
9243 }
9244
9245 5 => {
9246 if let Some(value) = &self.availability {
9247 ::fidl_next::wire::Envelope::encode_value::<
9248 crate::wire::Availability,
9249 ___E,
9250 >(
9251 value, preallocated.encoder, &mut out, ()
9252 )?;
9253 } else {
9254 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9255 }
9256 }
9257
9258 4 => {
9259 if let Some(value) = &self.target_path {
9260 ::fidl_next::wire::Envelope::encode_value::<
9261 ::fidl_next::wire::String<'static>,
9262 ___E,
9263 >(
9264 value, preallocated.encoder, &mut out, 100
9265 )?;
9266 } else {
9267 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9268 }
9269 }
9270
9271 3 => {
9272 if let Some(value) = &self.scope {
9273 ::fidl_next::wire::Envelope::encode_value::<
9274 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
9275 ___E,
9276 >(
9277 value, preallocated.encoder, &mut out, (4294967295, ())
9278 )?;
9279 } else {
9280 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9281 }
9282 }
9283
9284 2 => {
9285 if let Some(value) = &self.source {
9286 ::fidl_next::wire::Envelope::encode_value::<
9287 crate::wire::Ref<'static>,
9288 ___E,
9289 >(
9290 value, preallocated.encoder, &mut out, ()
9291 )?;
9292 } else {
9293 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9294 }
9295 }
9296
9297 1 => {
9298 if let Some(value) = &self.source_name {
9299 ::fidl_next::wire::Envelope::encode_value::<
9300 ::fidl_next::wire::String<'static>,
9301 ___E,
9302 >(
9303 value, preallocated.encoder, &mut out, 100
9304 )?;
9305 } else {
9306 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9307 }
9308 }
9309
9310 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9311 }
9312 unsafe {
9313 preallocated.write_next(out.assume_init_ref());
9314 }
9315 }
9316
9317 ::fidl_next::wire::Table::encode_len(table, max_ord);
9318
9319 Ok(())
9320 }
9321 }
9322
9323 impl<'de> ::fidl_next::FromWire<crate::wire::UseEventStream<'de>> for UseEventStream {
9324 #[inline]
9325 fn from_wire(wire_: crate::wire::UseEventStream<'de>) -> Self {
9326 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9327
9328 let source_name = wire_.table.get(1);
9329
9330 let source = wire_.table.get(2);
9331
9332 let scope = wire_.table.get(3);
9333
9334 let target_path = wire_.table.get(4);
9335
9336 let availability = wire_.table.get(5);
9337
9338 let filter = wire_.table.get(6);
9339
9340 Self {
9341
9342
9343 source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
9344 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
9345 )),
9346
9347
9348 source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
9349 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
9350 )),
9351
9352
9353 scope: scope.map(|envelope| ::fidl_next::FromWire::from_wire(
9354 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
9355 )),
9356
9357
9358 target_path: target_path.map(|envelope| ::fidl_next::FromWire::from_wire(
9359 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
9360 )),
9361
9362
9363 availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
9364 unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
9365 )),
9366
9367
9368 filter: filter.map(|envelope| ::fidl_next::FromWire::from_wire(
9369 unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
9370 )),
9371
9372 }
9373 }
9374 }
9375
9376 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseEventStream<'de>> for UseEventStream {
9377 #[inline]
9378 fn from_wire_ref(wire: &crate::wire::UseEventStream<'de>) -> Self {
9379 Self {
9380
9381
9382 source_name: wire.table.get(1)
9383 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9384 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
9385 )),
9386
9387
9388 source: wire.table.get(2)
9389 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9390 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
9391 )),
9392
9393
9394 scope: wire.table.get(3)
9395 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9396 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
9397 )),
9398
9399
9400 target_path: wire.table.get(4)
9401 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9402 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
9403 )),
9404
9405
9406 availability: wire.table.get(5)
9407 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9408 unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
9409 )),
9410
9411
9412 filter: wire.table.get(6)
9413 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
9414 unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
9415 )),
9416
9417 }
9418 }
9419 }
9420
9421 #[doc = " Declares runner used by a component.\n"]
9422 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9423 pub struct UseRunner {
9424 pub source: ::core::option::Option<crate::natural::Ref>,
9425
9426 pub source_name: ::core::option::Option<::std::string::String>,
9427
9428 pub source_dictionary: ::core::option::Option<::std::string::String>,
9429 }
9430
9431 impl UseRunner {
9432 fn __max_ordinal(&self) -> usize {
9433 if self.source_dictionary.is_some() {
9434 return 3;
9435 }
9436
9437 if self.source_name.is_some() {
9438 return 2;
9439 }
9440
9441 if self.source.is_some() {
9442 return 1;
9443 }
9444
9445 0
9446 }
9447 }
9448
9449 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseRunner<'static>, ___E> for UseRunner
9450 where
9451 ___E: ::fidl_next::Encoder + ?Sized,
9452 {
9453 #[inline]
9454 fn encode(
9455 mut self,
9456 encoder: &mut ___E,
9457 out: &mut ::core::mem::MaybeUninit<crate::wire::UseRunner<'static>>,
9458 _: (),
9459 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9460 ::fidl_next::munge!(let crate::wire::UseRunner { table } = out);
9461
9462 let max_ord = self.__max_ordinal();
9463
9464 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9465 ::fidl_next::Wire::zero_padding(&mut out);
9466
9467 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9468 ::fidl_next::wire::Envelope,
9469 >(encoder, max_ord);
9470
9471 for i in 1..=max_ord {
9472 match i {
9473 3 => {
9474 if let Some(value) = self.source_dictionary.take() {
9475 ::fidl_next::wire::Envelope::encode_value::<
9476 ::fidl_next::wire::String<'static>,
9477 ___E,
9478 >(
9479 value, preallocated.encoder, &mut out, 1024
9480 )?;
9481 } else {
9482 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9483 }
9484 }
9485
9486 2 => {
9487 if let Some(value) = self.source_name.take() {
9488 ::fidl_next::wire::Envelope::encode_value::<
9489 ::fidl_next::wire::String<'static>,
9490 ___E,
9491 >(
9492 value, preallocated.encoder, &mut out, 100
9493 )?;
9494 } else {
9495 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9496 }
9497 }
9498
9499 1 => {
9500 if let Some(value) = self.source.take() {
9501 ::fidl_next::wire::Envelope::encode_value::<
9502 crate::wire::Ref<'static>,
9503 ___E,
9504 >(
9505 value, preallocated.encoder, &mut out, ()
9506 )?;
9507 } else {
9508 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9509 }
9510 }
9511
9512 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9513 }
9514 unsafe {
9515 preallocated.write_next(out.assume_init_ref());
9516 }
9517 }
9518
9519 ::fidl_next::wire::Table::encode_len(table, max_ord);
9520
9521 Ok(())
9522 }
9523 }
9524
9525 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseRunner<'static>, ___E> for &'a UseRunner
9526 where
9527 ___E: ::fidl_next::Encoder + ?Sized,
9528 {
9529 #[inline]
9530 fn encode(
9531 self,
9532 encoder: &mut ___E,
9533 out: &mut ::core::mem::MaybeUninit<crate::wire::UseRunner<'static>>,
9534 _: (),
9535 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9536 ::fidl_next::munge!(let crate::wire::UseRunner { table } = out);
9537
9538 let max_ord = self.__max_ordinal();
9539
9540 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9541 ::fidl_next::Wire::zero_padding(&mut out);
9542
9543 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9544 ::fidl_next::wire::Envelope,
9545 >(encoder, max_ord);
9546
9547 for i in 1..=max_ord {
9548 match i {
9549 3 => {
9550 if let Some(value) = &self.source_dictionary {
9551 ::fidl_next::wire::Envelope::encode_value::<
9552 ::fidl_next::wire::String<'static>,
9553 ___E,
9554 >(
9555 value, preallocated.encoder, &mut out, 1024
9556 )?;
9557 } else {
9558 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9559 }
9560 }
9561
9562 2 => {
9563 if let Some(value) = &self.source_name {
9564 ::fidl_next::wire::Envelope::encode_value::<
9565 ::fidl_next::wire::String<'static>,
9566 ___E,
9567 >(
9568 value, preallocated.encoder, &mut out, 100
9569 )?;
9570 } else {
9571 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9572 }
9573 }
9574
9575 1 => {
9576 if let Some(value) = &self.source {
9577 ::fidl_next::wire::Envelope::encode_value::<
9578 crate::wire::Ref<'static>,
9579 ___E,
9580 >(
9581 value, preallocated.encoder, &mut out, ()
9582 )?;
9583 } else {
9584 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9585 }
9586 }
9587
9588 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9589 }
9590 unsafe {
9591 preallocated.write_next(out.assume_init_ref());
9592 }
9593 }
9594
9595 ::fidl_next::wire::Table::encode_len(table, max_ord);
9596
9597 Ok(())
9598 }
9599 }
9600
9601 impl<'de> ::fidl_next::FromWire<crate::wire::UseRunner<'de>> for UseRunner {
9602 #[inline]
9603 fn from_wire(wire_: crate::wire::UseRunner<'de>) -> Self {
9604 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9605
9606 let source = wire_.table.get(1);
9607
9608 let source_name = wire_.table.get(2);
9609
9610 let source_dictionary = wire_.table.get(3);
9611
9612 Self {
9613 source: source.map(|envelope| {
9614 ::fidl_next::FromWire::from_wire(unsafe {
9615 envelope.read_unchecked::<crate::wire::Ref<'de>>()
9616 })
9617 }),
9618
9619 source_name: source_name.map(|envelope| {
9620 ::fidl_next::FromWire::from_wire(unsafe {
9621 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9622 })
9623 }),
9624
9625 source_dictionary: source_dictionary.map(|envelope| {
9626 ::fidl_next::FromWire::from_wire(unsafe {
9627 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9628 })
9629 }),
9630 }
9631 }
9632 }
9633
9634 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseRunner<'de>> for UseRunner {
9635 #[inline]
9636 fn from_wire_ref(wire: &crate::wire::UseRunner<'de>) -> Self {
9637 Self {
9638 source: wire.table.get(1).map(|envelope| {
9639 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9640 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
9641 })
9642 }),
9643
9644 source_name: wire.table.get(2).map(|envelope| {
9645 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9646 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9647 })
9648 }),
9649
9650 source_dictionary: wire.table.get(3).map(|envelope| {
9651 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
9652 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
9653 })
9654 }),
9655 }
9656 }
9657 }
9658
9659 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
9660 pub struct UseConfiguration {
9661 pub source: ::core::option::Option<crate::natural::Ref>,
9662
9663 pub source_name: ::core::option::Option<::std::string::String>,
9664
9665 pub target_name: ::core::option::Option<::std::string::String>,
9666
9667 pub availability: ::core::option::Option<crate::natural::Availability>,
9668
9669 pub type_: ::core::option::Option<crate::natural::ConfigType>,
9670
9671 pub default: ::core::option::Option<crate::natural::ConfigValue>,
9672
9673 pub source_dictionary: ::core::option::Option<::std::string::String>,
9674 }
9675
9676 impl UseConfiguration {
9677 fn __max_ordinal(&self) -> usize {
9678 if self.source_dictionary.is_some() {
9679 return 7;
9680 }
9681
9682 if self.default.is_some() {
9683 return 6;
9684 }
9685
9686 if self.type_.is_some() {
9687 return 5;
9688 }
9689
9690 if self.availability.is_some() {
9691 return 4;
9692 }
9693
9694 if self.target_name.is_some() {
9695 return 3;
9696 }
9697
9698 if self.source_name.is_some() {
9699 return 2;
9700 }
9701
9702 if self.source.is_some() {
9703 return 1;
9704 }
9705
9706 0
9707 }
9708 }
9709
9710 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseConfiguration<'static>, ___E>
9711 for UseConfiguration
9712 where
9713 ___E: ::fidl_next::Encoder + ?Sized,
9714 {
9715 #[inline]
9716 fn encode(
9717 mut self,
9718 encoder: &mut ___E,
9719 out: &mut ::core::mem::MaybeUninit<crate::wire::UseConfiguration<'static>>,
9720 _: (),
9721 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9722 ::fidl_next::munge!(let crate::wire::UseConfiguration { table } = out);
9723
9724 let max_ord = self.__max_ordinal();
9725
9726 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9727 ::fidl_next::Wire::zero_padding(&mut out);
9728
9729 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9730 ::fidl_next::wire::Envelope,
9731 >(encoder, max_ord);
9732
9733 for i in 1..=max_ord {
9734 match i {
9735 7 => {
9736 if let Some(value) = self.source_dictionary.take() {
9737 ::fidl_next::wire::Envelope::encode_value::<
9738 ::fidl_next::wire::String<'static>,
9739 ___E,
9740 >(
9741 value, preallocated.encoder, &mut out, 1024
9742 )?;
9743 } else {
9744 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9745 }
9746 }
9747
9748 6 => {
9749 if let Some(value) = self.default.take() {
9750 ::fidl_next::wire::Envelope::encode_value::<
9751 crate::wire::ConfigValue<'static>,
9752 ___E,
9753 >(
9754 value, preallocated.encoder, &mut out, ()
9755 )?;
9756 } else {
9757 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9758 }
9759 }
9760
9761 5 => {
9762 if let Some(value) = self.type_.take() {
9763 ::fidl_next::wire::Envelope::encode_value::<
9764 crate::wire::ConfigType<'static>,
9765 ___E,
9766 >(
9767 value, preallocated.encoder, &mut out, ()
9768 )?;
9769 } else {
9770 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9771 }
9772 }
9773
9774 4 => {
9775 if let Some(value) = self.availability.take() {
9776 ::fidl_next::wire::Envelope::encode_value::<
9777 crate::wire::Availability,
9778 ___E,
9779 >(
9780 value, preallocated.encoder, &mut out, ()
9781 )?;
9782 } else {
9783 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9784 }
9785 }
9786
9787 3 => {
9788 if let Some(value) = self.target_name.take() {
9789 ::fidl_next::wire::Envelope::encode_value::<
9790 ::fidl_next::wire::String<'static>,
9791 ___E,
9792 >(
9793 value, preallocated.encoder, &mut out, 100
9794 )?;
9795 } else {
9796 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9797 }
9798 }
9799
9800 2 => {
9801 if let Some(value) = self.source_name.take() {
9802 ::fidl_next::wire::Envelope::encode_value::<
9803 ::fidl_next::wire::String<'static>,
9804 ___E,
9805 >(
9806 value, preallocated.encoder, &mut out, 100
9807 )?;
9808 } else {
9809 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9810 }
9811 }
9812
9813 1 => {
9814 if let Some(value) = self.source.take() {
9815 ::fidl_next::wire::Envelope::encode_value::<
9816 crate::wire::Ref<'static>,
9817 ___E,
9818 >(
9819 value, preallocated.encoder, &mut out, ()
9820 )?;
9821 } else {
9822 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9823 }
9824 }
9825
9826 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9827 }
9828 unsafe {
9829 preallocated.write_next(out.assume_init_ref());
9830 }
9831 }
9832
9833 ::fidl_next::wire::Table::encode_len(table, max_ord);
9834
9835 Ok(())
9836 }
9837 }
9838
9839 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseConfiguration<'static>, ___E>
9840 for &'a UseConfiguration
9841 where
9842 ___E: ::fidl_next::Encoder + ?Sized,
9843 {
9844 #[inline]
9845 fn encode(
9846 self,
9847 encoder: &mut ___E,
9848 out: &mut ::core::mem::MaybeUninit<crate::wire::UseConfiguration<'static>>,
9849 _: (),
9850 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
9851 ::fidl_next::munge!(let crate::wire::UseConfiguration { table } = out);
9852
9853 let max_ord = self.__max_ordinal();
9854
9855 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
9856 ::fidl_next::Wire::zero_padding(&mut out);
9857
9858 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
9859 ::fidl_next::wire::Envelope,
9860 >(encoder, max_ord);
9861
9862 for i in 1..=max_ord {
9863 match i {
9864 7 => {
9865 if let Some(value) = &self.source_dictionary {
9866 ::fidl_next::wire::Envelope::encode_value::<
9867 ::fidl_next::wire::String<'static>,
9868 ___E,
9869 >(
9870 value, preallocated.encoder, &mut out, 1024
9871 )?;
9872 } else {
9873 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9874 }
9875 }
9876
9877 6 => {
9878 if let Some(value) = &self.default {
9879 ::fidl_next::wire::Envelope::encode_value::<
9880 crate::wire::ConfigValue<'static>,
9881 ___E,
9882 >(
9883 value, preallocated.encoder, &mut out, ()
9884 )?;
9885 } else {
9886 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9887 }
9888 }
9889
9890 5 => {
9891 if let Some(value) = &self.type_ {
9892 ::fidl_next::wire::Envelope::encode_value::<
9893 crate::wire::ConfigType<'static>,
9894 ___E,
9895 >(
9896 value, preallocated.encoder, &mut out, ()
9897 )?;
9898 } else {
9899 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9900 }
9901 }
9902
9903 4 => {
9904 if let Some(value) = &self.availability {
9905 ::fidl_next::wire::Envelope::encode_value::<
9906 crate::wire::Availability,
9907 ___E,
9908 >(
9909 value, preallocated.encoder, &mut out, ()
9910 )?;
9911 } else {
9912 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9913 }
9914 }
9915
9916 3 => {
9917 if let Some(value) = &self.target_name {
9918 ::fidl_next::wire::Envelope::encode_value::<
9919 ::fidl_next::wire::String<'static>,
9920 ___E,
9921 >(
9922 value, preallocated.encoder, &mut out, 100
9923 )?;
9924 } else {
9925 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9926 }
9927 }
9928
9929 2 => {
9930 if let Some(value) = &self.source_name {
9931 ::fidl_next::wire::Envelope::encode_value::<
9932 ::fidl_next::wire::String<'static>,
9933 ___E,
9934 >(
9935 value, preallocated.encoder, &mut out, 100
9936 )?;
9937 } else {
9938 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9939 }
9940 }
9941
9942 1 => {
9943 if let Some(value) = &self.source {
9944 ::fidl_next::wire::Envelope::encode_value::<
9945 crate::wire::Ref<'static>,
9946 ___E,
9947 >(
9948 value, preallocated.encoder, &mut out, ()
9949 )?;
9950 } else {
9951 ::fidl_next::wire::Envelope::encode_zero(&mut out)
9952 }
9953 }
9954
9955 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
9956 }
9957 unsafe {
9958 preallocated.write_next(out.assume_init_ref());
9959 }
9960 }
9961
9962 ::fidl_next::wire::Table::encode_len(table, max_ord);
9963
9964 Ok(())
9965 }
9966 }
9967
9968 impl<'de> ::fidl_next::FromWire<crate::wire::UseConfiguration<'de>> for UseConfiguration {
9969 #[inline]
9970 fn from_wire(wire_: crate::wire::UseConfiguration<'de>) -> Self {
9971 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
9972
9973 let source = wire_.table.get(1);
9974
9975 let source_name = wire_.table.get(2);
9976
9977 let target_name = wire_.table.get(3);
9978
9979 let availability = wire_.table.get(4);
9980
9981 let type_ = wire_.table.get(5);
9982
9983 let default = wire_.table.get(6);
9984
9985 let source_dictionary = wire_.table.get(7);
9986
9987 Self {
9988 source: source.map(|envelope| {
9989 ::fidl_next::FromWire::from_wire(unsafe {
9990 envelope.read_unchecked::<crate::wire::Ref<'de>>()
9991 })
9992 }),
9993
9994 source_name: source_name.map(|envelope| {
9995 ::fidl_next::FromWire::from_wire(unsafe {
9996 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
9997 })
9998 }),
9999
10000 target_name: target_name.map(|envelope| {
10001 ::fidl_next::FromWire::from_wire(unsafe {
10002 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10003 })
10004 }),
10005
10006 availability: availability.map(|envelope| {
10007 ::fidl_next::FromWire::from_wire(unsafe {
10008 envelope.read_unchecked::<crate::wire::Availability>()
10009 })
10010 }),
10011
10012 type_: type_.map(|envelope| {
10013 ::fidl_next::FromWire::from_wire(unsafe {
10014 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
10015 })
10016 }),
10017
10018 default: default.map(|envelope| {
10019 ::fidl_next::FromWire::from_wire(unsafe {
10020 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
10021 })
10022 }),
10023
10024 source_dictionary: source_dictionary.map(|envelope| {
10025 ::fidl_next::FromWire::from_wire(unsafe {
10026 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10027 })
10028 }),
10029 }
10030 }
10031 }
10032
10033 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseConfiguration<'de>> for UseConfiguration {
10034 #[inline]
10035 fn from_wire_ref(wire: &crate::wire::UseConfiguration<'de>) -> Self {
10036 Self {
10037 source: wire.table.get(1).map(|envelope| {
10038 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10039 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
10040 })
10041 }),
10042
10043 source_name: wire.table.get(2).map(|envelope| {
10044 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10045 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10046 })
10047 }),
10048
10049 target_name: wire.table.get(3).map(|envelope| {
10050 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10051 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10052 })
10053 }),
10054
10055 availability: wire.table.get(4).map(|envelope| {
10056 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10057 envelope.deref_unchecked::<crate::wire::Availability>()
10058 })
10059 }),
10060
10061 type_: wire.table.get(5).map(|envelope| {
10062 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10063 envelope.deref_unchecked::<crate::wire::ConfigType<'de>>()
10064 })
10065 }),
10066
10067 default: wire.table.get(6).map(|envelope| {
10068 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10069 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
10070 })
10071 }),
10072
10073 source_dictionary: wire.table.get(7).map(|envelope| {
10074 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10075 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10076 })
10077 }),
10078 }
10079 }
10080 }
10081
10082 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10083 pub struct UseDictionary {
10084 pub source: ::core::option::Option<crate::natural::Ref>,
10085
10086 pub source_name: ::core::option::Option<::std::string::String>,
10087
10088 pub target_path: ::core::option::Option<::std::string::String>,
10089
10090 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
10091
10092 pub availability: ::core::option::Option<crate::natural::Availability>,
10093
10094 pub source_dictionary: ::core::option::Option<::std::string::String>,
10095 }
10096
10097 impl UseDictionary {
10098 fn __max_ordinal(&self) -> usize {
10099 if self.source_dictionary.is_some() {
10100 return 8;
10101 }
10102
10103 if self.availability.is_some() {
10104 return 7;
10105 }
10106
10107 if self.dependency_type.is_some() {
10108 return 6;
10109 }
10110
10111 if self.target_path.is_some() {
10112 return 3;
10113 }
10114
10115 if self.source_name.is_some() {
10116 return 2;
10117 }
10118
10119 if self.source.is_some() {
10120 return 1;
10121 }
10122
10123 0
10124 }
10125 }
10126
10127 unsafe impl<___E> ::fidl_next::Encode<crate::wire::UseDictionary<'static>, ___E> for UseDictionary
10128 where
10129 ___E: ::fidl_next::Encoder + ?Sized,
10130 {
10131 #[inline]
10132 fn encode(
10133 mut self,
10134 encoder: &mut ___E,
10135 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDictionary<'static>>,
10136 _: (),
10137 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10138 ::fidl_next::munge!(let crate::wire::UseDictionary { table } = out);
10139
10140 let max_ord = self.__max_ordinal();
10141
10142 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10143 ::fidl_next::Wire::zero_padding(&mut out);
10144
10145 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10146 ::fidl_next::wire::Envelope,
10147 >(encoder, max_ord);
10148
10149 for i in 1..=max_ord {
10150 match i {
10151 8 => {
10152 if let Some(value) = self.source_dictionary.take() {
10153 ::fidl_next::wire::Envelope::encode_value::<
10154 ::fidl_next::wire::String<'static>,
10155 ___E,
10156 >(
10157 value, preallocated.encoder, &mut out, 1024
10158 )?;
10159 } else {
10160 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10161 }
10162 }
10163
10164 7 => {
10165 if let Some(value) = self.availability.take() {
10166 ::fidl_next::wire::Envelope::encode_value::<
10167 crate::wire::Availability,
10168 ___E,
10169 >(
10170 value, preallocated.encoder, &mut out, ()
10171 )?;
10172 } else {
10173 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10174 }
10175 }
10176
10177 6 => {
10178 if let Some(value) = self.dependency_type.take() {
10179 ::fidl_next::wire::Envelope::encode_value::<
10180 crate::wire::DependencyType,
10181 ___E,
10182 >(
10183 value, preallocated.encoder, &mut out, ()
10184 )?;
10185 } else {
10186 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10187 }
10188 }
10189
10190 3 => {
10191 if let Some(value) = self.target_path.take() {
10192 ::fidl_next::wire::Envelope::encode_value::<
10193 ::fidl_next::wire::String<'static>,
10194 ___E,
10195 >(
10196 value, preallocated.encoder, &mut out, 1024
10197 )?;
10198 } else {
10199 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10200 }
10201 }
10202
10203 2 => {
10204 if let Some(value) = self.source_name.take() {
10205 ::fidl_next::wire::Envelope::encode_value::<
10206 ::fidl_next::wire::String<'static>,
10207 ___E,
10208 >(
10209 value, preallocated.encoder, &mut out, 100
10210 )?;
10211 } else {
10212 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10213 }
10214 }
10215
10216 1 => {
10217 if let Some(value) = self.source.take() {
10218 ::fidl_next::wire::Envelope::encode_value::<
10219 crate::wire::Ref<'static>,
10220 ___E,
10221 >(
10222 value, preallocated.encoder, &mut out, ()
10223 )?;
10224 } else {
10225 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10226 }
10227 }
10228
10229 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
10230 }
10231 unsafe {
10232 preallocated.write_next(out.assume_init_ref());
10233 }
10234 }
10235
10236 ::fidl_next::wire::Table::encode_len(table, max_ord);
10237
10238 Ok(())
10239 }
10240 }
10241
10242 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::UseDictionary<'static>, ___E>
10243 for &'a UseDictionary
10244 where
10245 ___E: ::fidl_next::Encoder + ?Sized,
10246 {
10247 #[inline]
10248 fn encode(
10249 self,
10250 encoder: &mut ___E,
10251 out: &mut ::core::mem::MaybeUninit<crate::wire::UseDictionary<'static>>,
10252 _: (),
10253 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10254 ::fidl_next::munge!(let crate::wire::UseDictionary { table } = out);
10255
10256 let max_ord = self.__max_ordinal();
10257
10258 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10259 ::fidl_next::Wire::zero_padding(&mut out);
10260
10261 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10262 ::fidl_next::wire::Envelope,
10263 >(encoder, max_ord);
10264
10265 for i in 1..=max_ord {
10266 match i {
10267 8 => {
10268 if let Some(value) = &self.source_dictionary {
10269 ::fidl_next::wire::Envelope::encode_value::<
10270 ::fidl_next::wire::String<'static>,
10271 ___E,
10272 >(
10273 value, preallocated.encoder, &mut out, 1024
10274 )?;
10275 } else {
10276 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10277 }
10278 }
10279
10280 7 => {
10281 if let Some(value) = &self.availability {
10282 ::fidl_next::wire::Envelope::encode_value::<
10283 crate::wire::Availability,
10284 ___E,
10285 >(
10286 value, preallocated.encoder, &mut out, ()
10287 )?;
10288 } else {
10289 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10290 }
10291 }
10292
10293 6 => {
10294 if let Some(value) = &self.dependency_type {
10295 ::fidl_next::wire::Envelope::encode_value::<
10296 crate::wire::DependencyType,
10297 ___E,
10298 >(
10299 value, preallocated.encoder, &mut out, ()
10300 )?;
10301 } else {
10302 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10303 }
10304 }
10305
10306 3 => {
10307 if let Some(value) = &self.target_path {
10308 ::fidl_next::wire::Envelope::encode_value::<
10309 ::fidl_next::wire::String<'static>,
10310 ___E,
10311 >(
10312 value, preallocated.encoder, &mut out, 1024
10313 )?;
10314 } else {
10315 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10316 }
10317 }
10318
10319 2 => {
10320 if let Some(value) = &self.source_name {
10321 ::fidl_next::wire::Envelope::encode_value::<
10322 ::fidl_next::wire::String<'static>,
10323 ___E,
10324 >(
10325 value, preallocated.encoder, &mut out, 100
10326 )?;
10327 } else {
10328 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10329 }
10330 }
10331
10332 1 => {
10333 if let Some(value) = &self.source {
10334 ::fidl_next::wire::Envelope::encode_value::<
10335 crate::wire::Ref<'static>,
10336 ___E,
10337 >(
10338 value, preallocated.encoder, &mut out, ()
10339 )?;
10340 } else {
10341 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10342 }
10343 }
10344
10345 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
10346 }
10347 unsafe {
10348 preallocated.write_next(out.assume_init_ref());
10349 }
10350 }
10351
10352 ::fidl_next::wire::Table::encode_len(table, max_ord);
10353
10354 Ok(())
10355 }
10356 }
10357
10358 impl<'de> ::fidl_next::FromWire<crate::wire::UseDictionary<'de>> for UseDictionary {
10359 #[inline]
10360 fn from_wire(wire_: crate::wire::UseDictionary<'de>) -> Self {
10361 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
10362
10363 let source = wire_.table.get(1);
10364
10365 let source_name = wire_.table.get(2);
10366
10367 let target_path = wire_.table.get(3);
10368
10369 let dependency_type = wire_.table.get(6);
10370
10371 let availability = wire_.table.get(7);
10372
10373 let source_dictionary = wire_.table.get(8);
10374
10375 Self {
10376 source: source.map(|envelope| {
10377 ::fidl_next::FromWire::from_wire(unsafe {
10378 envelope.read_unchecked::<crate::wire::Ref<'de>>()
10379 })
10380 }),
10381
10382 source_name: source_name.map(|envelope| {
10383 ::fidl_next::FromWire::from_wire(unsafe {
10384 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10385 })
10386 }),
10387
10388 target_path: target_path.map(|envelope| {
10389 ::fidl_next::FromWire::from_wire(unsafe {
10390 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10391 })
10392 }),
10393
10394 dependency_type: dependency_type.map(|envelope| {
10395 ::fidl_next::FromWire::from_wire(unsafe {
10396 envelope.read_unchecked::<crate::wire::DependencyType>()
10397 })
10398 }),
10399
10400 availability: availability.map(|envelope| {
10401 ::fidl_next::FromWire::from_wire(unsafe {
10402 envelope.read_unchecked::<crate::wire::Availability>()
10403 })
10404 }),
10405
10406 source_dictionary: source_dictionary.map(|envelope| {
10407 ::fidl_next::FromWire::from_wire(unsafe {
10408 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
10409 })
10410 }),
10411 }
10412 }
10413 }
10414
10415 impl<'de> ::fidl_next::FromWireRef<crate::wire::UseDictionary<'de>> for UseDictionary {
10416 #[inline]
10417 fn from_wire_ref(wire: &crate::wire::UseDictionary<'de>) -> Self {
10418 Self {
10419 source: wire.table.get(1).map(|envelope| {
10420 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10421 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
10422 })
10423 }),
10424
10425 source_name: wire.table.get(2).map(|envelope| {
10426 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10427 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10428 })
10429 }),
10430
10431 target_path: wire.table.get(3).map(|envelope| {
10432 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10433 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10434 })
10435 }),
10436
10437 dependency_type: wire.table.get(6).map(|envelope| {
10438 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10439 envelope.deref_unchecked::<crate::wire::DependencyType>()
10440 })
10441 }),
10442
10443 availability: wire.table.get(7).map(|envelope| {
10444 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10445 envelope.deref_unchecked::<crate::wire::Availability>()
10446 })
10447 }),
10448
10449 source_dictionary: wire.table.get(8).map(|envelope| {
10450 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
10451 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
10452 })
10453 }),
10454 }
10455 }
10456 }
10457
10458 #[doc = " Declares a capability used by a component, which was offered to it.\n"]
10459 #[derive(Debug, Clone, PartialEq)]
10460 pub enum Use {
10461 Service(crate::natural::UseService),
10462
10463 Protocol(crate::natural::UseProtocol),
10464
10465 Directory(crate::natural::UseDirectory),
10466
10467 Storage(crate::natural::UseStorage),
10468
10469 EventStream(crate::natural::UseEventStream),
10470
10471 Runner(crate::natural::UseRunner),
10472
10473 Config(crate::natural::UseConfiguration),
10474
10475 Dictionary(crate::natural::UseDictionary),
10476
10477 UnknownOrdinal_(u64),
10478 }
10479
10480 impl Use {
10481 pub fn is_unknown(&self) -> bool {
10482 #[allow(unreachable_patterns)]
10483 match self {
10484 Self::UnknownOrdinal_(_) => true,
10485 _ => false,
10486 }
10487 }
10488 }
10489
10490 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Use<'static>, ___E> for Use
10491 where
10492 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10493 ___E: ::fidl_next::Encoder,
10494 {
10495 #[inline]
10496 fn encode(
10497 self,
10498 encoder: &mut ___E,
10499 out: &mut ::core::mem::MaybeUninit<crate::wire::Use<'static>>,
10500 _: (),
10501 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10502 ::fidl_next::munge!(let crate::wire::Use { raw, _phantom: _ } = out);
10503
10504 match self {
10505 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
10506 ___E,
10507 crate::wire::UseService<'static>,
10508 >(value, 1, encoder, raw, ())?,
10509
10510 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
10511 ___E,
10512 crate::wire::UseProtocol<'static>,
10513 >(value, 2, encoder, raw, ())?,
10514
10515 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
10516 ___E,
10517 crate::wire::UseDirectory<'static>,
10518 >(value, 3, encoder, raw, ())?,
10519
10520 Self::Storage(value) => ::fidl_next::wire::Union::encode_as::<
10521 ___E,
10522 crate::wire::UseStorage<'static>,
10523 >(value, 4, encoder, raw, ())?,
10524
10525 Self::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
10526 ___E,
10527 crate::wire::UseEventStream<'static>,
10528 >(value, 7, encoder, raw, ())?,
10529
10530 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
10531 ___E,
10532 crate::wire::UseRunner<'static>,
10533 >(value, 8, encoder, raw, ())?,
10534
10535 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
10536 ___E,
10537 crate::wire::UseConfiguration<'static>,
10538 >(value, 9, encoder, raw, ())?,
10539
10540 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
10541 ___E,
10542 crate::wire::UseDictionary<'static>,
10543 >(value, 10, encoder, raw, ())?,
10544
10545 Self::UnknownOrdinal_(ordinal) => {
10546 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
10547 }
10548 }
10549
10550 Ok(())
10551 }
10552 }
10553
10554 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Use<'static>, ___E> for &'a Use
10555 where
10556 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
10557 ___E: ::fidl_next::Encoder,
10558 {
10559 #[inline]
10560 fn encode(
10561 self,
10562 encoder: &mut ___E,
10563 out: &mut ::core::mem::MaybeUninit<crate::wire::Use<'static>>,
10564 _: (),
10565 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10566 ::fidl_next::munge!(let crate::wire::Use { raw, _phantom: _ } = out);
10567
10568 match self {
10569 Use::Service(value) => ::fidl_next::wire::Union::encode_as::<
10570 ___E,
10571 crate::wire::UseService<'static>,
10572 >(value, 1, encoder, raw, ())?,
10573
10574 Use::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
10575 ___E,
10576 crate::wire::UseProtocol<'static>,
10577 >(value, 2, encoder, raw, ())?,
10578
10579 Use::Directory(value) => ::fidl_next::wire::Union::encode_as::<
10580 ___E,
10581 crate::wire::UseDirectory<'static>,
10582 >(value, 3, encoder, raw, ())?,
10583
10584 Use::Storage(value) => ::fidl_next::wire::Union::encode_as::<
10585 ___E,
10586 crate::wire::UseStorage<'static>,
10587 >(value, 4, encoder, raw, ())?,
10588
10589 Use::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
10590 ___E,
10591 crate::wire::UseEventStream<'static>,
10592 >(value, 7, encoder, raw, ())?,
10593
10594 Use::Runner(value) => ::fidl_next::wire::Union::encode_as::<
10595 ___E,
10596 crate::wire::UseRunner<'static>,
10597 >(value, 8, encoder, raw, ())?,
10598
10599 Use::Config(value) => ::fidl_next::wire::Union::encode_as::<
10600 ___E,
10601 crate::wire::UseConfiguration<'static>,
10602 >(value, 9, encoder, raw, ())?,
10603
10604 Use::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
10605 ___E,
10606 crate::wire::UseDictionary<'static>,
10607 >(value, 10, encoder, raw, ())?,
10608
10609 Use::UnknownOrdinal_(ordinal) => {
10610 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
10611 }
10612 }
10613
10614 Ok(())
10615 }
10616 }
10617
10618 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Use<'static>, ___E> for Use
10619 where
10620 ___E: ?Sized,
10621 Use: ::fidl_next::Encode<crate::wire::Use<'static>, ___E>,
10622 {
10623 #[inline]
10624 fn encode_option(
10625 this: ::core::option::Option<Self>,
10626 encoder: &mut ___E,
10627 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Use<'static>>,
10628 _: (),
10629 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10630 ::fidl_next::munge!(let crate::wire_optional::Use { raw, _phantom: _ } = &mut *out);
10631
10632 if let Some(inner) = this {
10633 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
10634 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
10635 } else {
10636 ::fidl_next::wire::Union::encode_absent(raw);
10637 }
10638
10639 Ok(())
10640 }
10641 }
10642
10643 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Use<'static>, ___E>
10644 for &'a Use
10645 where
10646 ___E: ?Sized,
10647 &'a Use: ::fidl_next::Encode<crate::wire::Use<'static>, ___E>,
10648 {
10649 #[inline]
10650 fn encode_option(
10651 this: ::core::option::Option<Self>,
10652 encoder: &mut ___E,
10653 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Use<'static>>,
10654 _: (),
10655 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10656 ::fidl_next::munge!(let crate::wire_optional::Use { raw, _phantom: _ } = &mut *out);
10657
10658 if let Some(inner) = this {
10659 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
10660 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
10661 } else {
10662 ::fidl_next::wire::Union::encode_absent(raw);
10663 }
10664
10665 Ok(())
10666 }
10667 }
10668
10669 impl<'de> ::fidl_next::FromWire<crate::wire::Use<'de>> for Use {
10670 #[inline]
10671 fn from_wire(wire: crate::wire::Use<'de>) -> Self {
10672 let wire = ::core::mem::ManuallyDrop::new(wire);
10673 match wire.raw.ordinal() {
10674 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
10675 wire.raw.get().read_unchecked::<crate::wire::UseService<'de>>()
10676 })),
10677
10678 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
10679 wire.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>()
10680 })),
10681
10682 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
10683 wire.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
10684 })),
10685
10686 4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
10687 wire.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>()
10688 })),
10689
10690 7 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
10691 wire.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
10692 })),
10693
10694 8 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
10695 wire.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>()
10696 })),
10697
10698 9 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
10699 wire.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
10700 })),
10701
10702 10 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
10703 wire.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
10704 })),
10705
10706 ord => return Self::UnknownOrdinal_(ord as u64),
10707 }
10708 }
10709 }
10710
10711 impl<'de> ::fidl_next::FromWireRef<crate::wire::Use<'de>> for Use {
10712 #[inline]
10713 fn from_wire_ref(wire: &crate::wire::Use<'de>) -> Self {
10714 match wire.raw.ordinal() {
10715 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10716 wire.raw.get().deref_unchecked::<crate::wire::UseService<'de>>()
10717 })),
10718
10719 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10720 wire.raw.get().deref_unchecked::<crate::wire::UseProtocol<'de>>()
10721 })),
10722
10723 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10724 wire.raw.get().deref_unchecked::<crate::wire::UseDirectory<'de>>()
10725 })),
10726
10727 4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10728 wire.raw.get().deref_unchecked::<crate::wire::UseStorage<'de>>()
10729 })),
10730
10731 7 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10732 wire.raw.get().deref_unchecked::<crate::wire::UseEventStream<'de>>()
10733 })),
10734
10735 8 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10736 wire.raw.get().deref_unchecked::<crate::wire::UseRunner<'de>>()
10737 })),
10738
10739 9 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10740 wire.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'de>>()
10741 })),
10742
10743 10 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
10744 wire.raw.get().deref_unchecked::<crate::wire::UseDictionary<'de>>()
10745 })),
10746
10747 ord => return Self::UnknownOrdinal_(ord as u64),
10748 }
10749 }
10750 }
10751
10752 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>> for Use {
10753 #[inline]
10754 fn from_wire_option(wire: crate::wire_optional::Use<'de>) -> ::core::option::Option<Self> {
10755 if let Some(inner) = wire.into_option() {
10756 Some(::fidl_next::FromWire::from_wire(inner))
10757 } else {
10758 None
10759 }
10760 }
10761 }
10762
10763 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>> for Box<Use> {
10764 #[inline]
10765 fn from_wire_option(wire: crate::wire_optional::Use<'de>) -> ::core::option::Option<Self> {
10766 <Use as ::fidl_next::FromWireOption<crate::wire_optional::Use<'de>>>::from_wire_option(
10767 wire,
10768 )
10769 .map(Box::new)
10770 }
10771 }
10772
10773 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Use<'de>> for Box<Use> {
10774 #[inline]
10775 fn from_wire_option_ref(
10776 wire: &crate::wire_optional::Use<'de>,
10777 ) -> ::core::option::Option<Self> {
10778 if let Some(inner) = wire.as_ref() {
10779 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
10780 } else {
10781 None
10782 }
10783 }
10784 }
10785
10786 #[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"]
10787 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
10788 pub struct ExposeService {
10789 pub source: ::core::option::Option<crate::natural::Ref>,
10790
10791 pub source_name: ::core::option::Option<::std::string::String>,
10792
10793 pub target: ::core::option::Option<crate::natural::Ref>,
10794
10795 pub target_name: ::core::option::Option<::std::string::String>,
10796
10797 pub availability: ::core::option::Option<crate::natural::Availability>,
10798
10799 pub source_dictionary: ::core::option::Option<::std::string::String>,
10800 }
10801
10802 impl ExposeService {
10803 fn __max_ordinal(&self) -> usize {
10804 if self.source_dictionary.is_some() {
10805 return 6;
10806 }
10807
10808 if self.availability.is_some() {
10809 return 5;
10810 }
10811
10812 if self.target_name.is_some() {
10813 return 4;
10814 }
10815
10816 if self.target.is_some() {
10817 return 3;
10818 }
10819
10820 if self.source_name.is_some() {
10821 return 2;
10822 }
10823
10824 if self.source.is_some() {
10825 return 1;
10826 }
10827
10828 0
10829 }
10830 }
10831
10832 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeService<'static>, ___E> for ExposeService
10833 where
10834 ___E: ::fidl_next::Encoder + ?Sized,
10835 {
10836 #[inline]
10837 fn encode(
10838 mut self,
10839 encoder: &mut ___E,
10840 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeService<'static>>,
10841 _: (),
10842 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10843 ::fidl_next::munge!(let crate::wire::ExposeService { table } = out);
10844
10845 let max_ord = self.__max_ordinal();
10846
10847 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10848 ::fidl_next::Wire::zero_padding(&mut out);
10849
10850 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10851 ::fidl_next::wire::Envelope,
10852 >(encoder, max_ord);
10853
10854 for i in 1..=max_ord {
10855 match i {
10856 6 => {
10857 if let Some(value) = self.source_dictionary.take() {
10858 ::fidl_next::wire::Envelope::encode_value::<
10859 ::fidl_next::wire::String<'static>,
10860 ___E,
10861 >(
10862 value, preallocated.encoder, &mut out, 1024
10863 )?;
10864 } else {
10865 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10866 }
10867 }
10868
10869 5 => {
10870 if let Some(value) = self.availability.take() {
10871 ::fidl_next::wire::Envelope::encode_value::<
10872 crate::wire::Availability,
10873 ___E,
10874 >(
10875 value, preallocated.encoder, &mut out, ()
10876 )?;
10877 } else {
10878 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10879 }
10880 }
10881
10882 4 => {
10883 if let Some(value) = self.target_name.take() {
10884 ::fidl_next::wire::Envelope::encode_value::<
10885 ::fidl_next::wire::String<'static>,
10886 ___E,
10887 >(
10888 value, preallocated.encoder, &mut out, 100
10889 )?;
10890 } else {
10891 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10892 }
10893 }
10894
10895 3 => {
10896 if let Some(value) = self.target.take() {
10897 ::fidl_next::wire::Envelope::encode_value::<
10898 crate::wire::Ref<'static>,
10899 ___E,
10900 >(
10901 value, preallocated.encoder, &mut out, ()
10902 )?;
10903 } else {
10904 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10905 }
10906 }
10907
10908 2 => {
10909 if let Some(value) = self.source_name.take() {
10910 ::fidl_next::wire::Envelope::encode_value::<
10911 ::fidl_next::wire::String<'static>,
10912 ___E,
10913 >(
10914 value, preallocated.encoder, &mut out, 100
10915 )?;
10916 } else {
10917 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10918 }
10919 }
10920
10921 1 => {
10922 if let Some(value) = self.source.take() {
10923 ::fidl_next::wire::Envelope::encode_value::<
10924 crate::wire::Ref<'static>,
10925 ___E,
10926 >(
10927 value, preallocated.encoder, &mut out, ()
10928 )?;
10929 } else {
10930 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10931 }
10932 }
10933
10934 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
10935 }
10936 unsafe {
10937 preallocated.write_next(out.assume_init_ref());
10938 }
10939 }
10940
10941 ::fidl_next::wire::Table::encode_len(table, max_ord);
10942
10943 Ok(())
10944 }
10945 }
10946
10947 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeService<'static>, ___E>
10948 for &'a ExposeService
10949 where
10950 ___E: ::fidl_next::Encoder + ?Sized,
10951 {
10952 #[inline]
10953 fn encode(
10954 self,
10955 encoder: &mut ___E,
10956 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeService<'static>>,
10957 _: (),
10958 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
10959 ::fidl_next::munge!(let crate::wire::ExposeService { table } = out);
10960
10961 let max_ord = self.__max_ordinal();
10962
10963 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
10964 ::fidl_next::Wire::zero_padding(&mut out);
10965
10966 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
10967 ::fidl_next::wire::Envelope,
10968 >(encoder, max_ord);
10969
10970 for i in 1..=max_ord {
10971 match i {
10972 6 => {
10973 if let Some(value) = &self.source_dictionary {
10974 ::fidl_next::wire::Envelope::encode_value::<
10975 ::fidl_next::wire::String<'static>,
10976 ___E,
10977 >(
10978 value, preallocated.encoder, &mut out, 1024
10979 )?;
10980 } else {
10981 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10982 }
10983 }
10984
10985 5 => {
10986 if let Some(value) = &self.availability {
10987 ::fidl_next::wire::Envelope::encode_value::<
10988 crate::wire::Availability,
10989 ___E,
10990 >(
10991 value, preallocated.encoder, &mut out, ()
10992 )?;
10993 } else {
10994 ::fidl_next::wire::Envelope::encode_zero(&mut out)
10995 }
10996 }
10997
10998 4 => {
10999 if let Some(value) = &self.target_name {
11000 ::fidl_next::wire::Envelope::encode_value::<
11001 ::fidl_next::wire::String<'static>,
11002 ___E,
11003 >(
11004 value, preallocated.encoder, &mut out, 100
11005 )?;
11006 } else {
11007 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11008 }
11009 }
11010
11011 3 => {
11012 if let Some(value) = &self.target {
11013 ::fidl_next::wire::Envelope::encode_value::<
11014 crate::wire::Ref<'static>,
11015 ___E,
11016 >(
11017 value, preallocated.encoder, &mut out, ()
11018 )?;
11019 } else {
11020 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11021 }
11022 }
11023
11024 2 => {
11025 if let Some(value) = &self.source_name {
11026 ::fidl_next::wire::Envelope::encode_value::<
11027 ::fidl_next::wire::String<'static>,
11028 ___E,
11029 >(
11030 value, preallocated.encoder, &mut out, 100
11031 )?;
11032 } else {
11033 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11034 }
11035 }
11036
11037 1 => {
11038 if let Some(value) = &self.source {
11039 ::fidl_next::wire::Envelope::encode_value::<
11040 crate::wire::Ref<'static>,
11041 ___E,
11042 >(
11043 value, preallocated.encoder, &mut out, ()
11044 )?;
11045 } else {
11046 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11047 }
11048 }
11049
11050 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11051 }
11052 unsafe {
11053 preallocated.write_next(out.assume_init_ref());
11054 }
11055 }
11056
11057 ::fidl_next::wire::Table::encode_len(table, max_ord);
11058
11059 Ok(())
11060 }
11061 }
11062
11063 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeService<'de>> for ExposeService {
11064 #[inline]
11065 fn from_wire(wire_: crate::wire::ExposeService<'de>) -> Self {
11066 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
11067
11068 let source = wire_.table.get(1);
11069
11070 let source_name = wire_.table.get(2);
11071
11072 let target = wire_.table.get(3);
11073
11074 let target_name = wire_.table.get(4);
11075
11076 let availability = wire_.table.get(5);
11077
11078 let source_dictionary = wire_.table.get(6);
11079
11080 Self {
11081 source: source.map(|envelope| {
11082 ::fidl_next::FromWire::from_wire(unsafe {
11083 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11084 })
11085 }),
11086
11087 source_name: source_name.map(|envelope| {
11088 ::fidl_next::FromWire::from_wire(unsafe {
11089 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11090 })
11091 }),
11092
11093 target: target.map(|envelope| {
11094 ::fidl_next::FromWire::from_wire(unsafe {
11095 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11096 })
11097 }),
11098
11099 target_name: target_name.map(|envelope| {
11100 ::fidl_next::FromWire::from_wire(unsafe {
11101 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11102 })
11103 }),
11104
11105 availability: availability.map(|envelope| {
11106 ::fidl_next::FromWire::from_wire(unsafe {
11107 envelope.read_unchecked::<crate::wire::Availability>()
11108 })
11109 }),
11110
11111 source_dictionary: source_dictionary.map(|envelope| {
11112 ::fidl_next::FromWire::from_wire(unsafe {
11113 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11114 })
11115 }),
11116 }
11117 }
11118 }
11119
11120 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeService<'de>> for ExposeService {
11121 #[inline]
11122 fn from_wire_ref(wire: &crate::wire::ExposeService<'de>) -> Self {
11123 Self {
11124 source: wire.table.get(1).map(|envelope| {
11125 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11126 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11127 })
11128 }),
11129
11130 source_name: wire.table.get(2).map(|envelope| {
11131 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11132 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11133 })
11134 }),
11135
11136 target: wire.table.get(3).map(|envelope| {
11137 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11138 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11139 })
11140 }),
11141
11142 target_name: wire.table.get(4).map(|envelope| {
11143 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11144 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11145 })
11146 }),
11147
11148 availability: wire.table.get(5).map(|envelope| {
11149 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11150 envelope.deref_unchecked::<crate::wire::Availability>()
11151 })
11152 }),
11153
11154 source_dictionary: wire.table.get(6).map(|envelope| {
11155 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11156 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11157 })
11158 }),
11159 }
11160 }
11161 }
11162
11163 #[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"]
11164 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
11165 pub struct ExposeProtocol {
11166 pub source: ::core::option::Option<crate::natural::Ref>,
11167
11168 pub source_name: ::core::option::Option<::std::string::String>,
11169
11170 pub target: ::core::option::Option<crate::natural::Ref>,
11171
11172 pub target_name: ::core::option::Option<::std::string::String>,
11173
11174 pub availability: ::core::option::Option<crate::natural::Availability>,
11175
11176 pub source_dictionary: ::core::option::Option<::std::string::String>,
11177 }
11178
11179 impl ExposeProtocol {
11180 fn __max_ordinal(&self) -> usize {
11181 if self.source_dictionary.is_some() {
11182 return 6;
11183 }
11184
11185 if self.availability.is_some() {
11186 return 5;
11187 }
11188
11189 if self.target_name.is_some() {
11190 return 4;
11191 }
11192
11193 if self.target.is_some() {
11194 return 3;
11195 }
11196
11197 if self.source_name.is_some() {
11198 return 2;
11199 }
11200
11201 if self.source.is_some() {
11202 return 1;
11203 }
11204
11205 0
11206 }
11207 }
11208
11209 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeProtocol<'static>, ___E> for ExposeProtocol
11210 where
11211 ___E: ::fidl_next::Encoder + ?Sized,
11212 {
11213 #[inline]
11214 fn encode(
11215 mut self,
11216 encoder: &mut ___E,
11217 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeProtocol<'static>>,
11218 _: (),
11219 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11220 ::fidl_next::munge!(let crate::wire::ExposeProtocol { table } = out);
11221
11222 let max_ord = self.__max_ordinal();
11223
11224 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11225 ::fidl_next::Wire::zero_padding(&mut out);
11226
11227 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11228 ::fidl_next::wire::Envelope,
11229 >(encoder, max_ord);
11230
11231 for i in 1..=max_ord {
11232 match i {
11233 6 => {
11234 if let Some(value) = self.source_dictionary.take() {
11235 ::fidl_next::wire::Envelope::encode_value::<
11236 ::fidl_next::wire::String<'static>,
11237 ___E,
11238 >(
11239 value, preallocated.encoder, &mut out, 1024
11240 )?;
11241 } else {
11242 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11243 }
11244 }
11245
11246 5 => {
11247 if let Some(value) = self.availability.take() {
11248 ::fidl_next::wire::Envelope::encode_value::<
11249 crate::wire::Availability,
11250 ___E,
11251 >(
11252 value, preallocated.encoder, &mut out, ()
11253 )?;
11254 } else {
11255 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11256 }
11257 }
11258
11259 4 => {
11260 if let Some(value) = self.target_name.take() {
11261 ::fidl_next::wire::Envelope::encode_value::<
11262 ::fidl_next::wire::String<'static>,
11263 ___E,
11264 >(
11265 value, preallocated.encoder, &mut out, 100
11266 )?;
11267 } else {
11268 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11269 }
11270 }
11271
11272 3 => {
11273 if let Some(value) = self.target.take() {
11274 ::fidl_next::wire::Envelope::encode_value::<
11275 crate::wire::Ref<'static>,
11276 ___E,
11277 >(
11278 value, preallocated.encoder, &mut out, ()
11279 )?;
11280 } else {
11281 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11282 }
11283 }
11284
11285 2 => {
11286 if let Some(value) = self.source_name.take() {
11287 ::fidl_next::wire::Envelope::encode_value::<
11288 ::fidl_next::wire::String<'static>,
11289 ___E,
11290 >(
11291 value, preallocated.encoder, &mut out, 100
11292 )?;
11293 } else {
11294 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11295 }
11296 }
11297
11298 1 => {
11299 if let Some(value) = self.source.take() {
11300 ::fidl_next::wire::Envelope::encode_value::<
11301 crate::wire::Ref<'static>,
11302 ___E,
11303 >(
11304 value, preallocated.encoder, &mut out, ()
11305 )?;
11306 } else {
11307 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11308 }
11309 }
11310
11311 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11312 }
11313 unsafe {
11314 preallocated.write_next(out.assume_init_ref());
11315 }
11316 }
11317
11318 ::fidl_next::wire::Table::encode_len(table, max_ord);
11319
11320 Ok(())
11321 }
11322 }
11323
11324 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeProtocol<'static>, ___E>
11325 for &'a ExposeProtocol
11326 where
11327 ___E: ::fidl_next::Encoder + ?Sized,
11328 {
11329 #[inline]
11330 fn encode(
11331 self,
11332 encoder: &mut ___E,
11333 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeProtocol<'static>>,
11334 _: (),
11335 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11336 ::fidl_next::munge!(let crate::wire::ExposeProtocol { table } = out);
11337
11338 let max_ord = self.__max_ordinal();
11339
11340 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11341 ::fidl_next::Wire::zero_padding(&mut out);
11342
11343 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11344 ::fidl_next::wire::Envelope,
11345 >(encoder, max_ord);
11346
11347 for i in 1..=max_ord {
11348 match i {
11349 6 => {
11350 if let Some(value) = &self.source_dictionary {
11351 ::fidl_next::wire::Envelope::encode_value::<
11352 ::fidl_next::wire::String<'static>,
11353 ___E,
11354 >(
11355 value, preallocated.encoder, &mut out, 1024
11356 )?;
11357 } else {
11358 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11359 }
11360 }
11361
11362 5 => {
11363 if let Some(value) = &self.availability {
11364 ::fidl_next::wire::Envelope::encode_value::<
11365 crate::wire::Availability,
11366 ___E,
11367 >(
11368 value, preallocated.encoder, &mut out, ()
11369 )?;
11370 } else {
11371 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11372 }
11373 }
11374
11375 4 => {
11376 if let Some(value) = &self.target_name {
11377 ::fidl_next::wire::Envelope::encode_value::<
11378 ::fidl_next::wire::String<'static>,
11379 ___E,
11380 >(
11381 value, preallocated.encoder, &mut out, 100
11382 )?;
11383 } else {
11384 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11385 }
11386 }
11387
11388 3 => {
11389 if let Some(value) = &self.target {
11390 ::fidl_next::wire::Envelope::encode_value::<
11391 crate::wire::Ref<'static>,
11392 ___E,
11393 >(
11394 value, preallocated.encoder, &mut out, ()
11395 )?;
11396 } else {
11397 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11398 }
11399 }
11400
11401 2 => {
11402 if let Some(value) = &self.source_name {
11403 ::fidl_next::wire::Envelope::encode_value::<
11404 ::fidl_next::wire::String<'static>,
11405 ___E,
11406 >(
11407 value, preallocated.encoder, &mut out, 100
11408 )?;
11409 } else {
11410 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11411 }
11412 }
11413
11414 1 => {
11415 if let Some(value) = &self.source {
11416 ::fidl_next::wire::Envelope::encode_value::<
11417 crate::wire::Ref<'static>,
11418 ___E,
11419 >(
11420 value, preallocated.encoder, &mut out, ()
11421 )?;
11422 } else {
11423 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11424 }
11425 }
11426
11427 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11428 }
11429 unsafe {
11430 preallocated.write_next(out.assume_init_ref());
11431 }
11432 }
11433
11434 ::fidl_next::wire::Table::encode_len(table, max_ord);
11435
11436 Ok(())
11437 }
11438 }
11439
11440 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeProtocol<'de>> for ExposeProtocol {
11441 #[inline]
11442 fn from_wire(wire_: crate::wire::ExposeProtocol<'de>) -> Self {
11443 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
11444
11445 let source = wire_.table.get(1);
11446
11447 let source_name = wire_.table.get(2);
11448
11449 let target = wire_.table.get(3);
11450
11451 let target_name = wire_.table.get(4);
11452
11453 let availability = wire_.table.get(5);
11454
11455 let source_dictionary = wire_.table.get(6);
11456
11457 Self {
11458 source: source.map(|envelope| {
11459 ::fidl_next::FromWire::from_wire(unsafe {
11460 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11461 })
11462 }),
11463
11464 source_name: source_name.map(|envelope| {
11465 ::fidl_next::FromWire::from_wire(unsafe {
11466 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11467 })
11468 }),
11469
11470 target: target.map(|envelope| {
11471 ::fidl_next::FromWire::from_wire(unsafe {
11472 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11473 })
11474 }),
11475
11476 target_name: target_name.map(|envelope| {
11477 ::fidl_next::FromWire::from_wire(unsafe {
11478 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11479 })
11480 }),
11481
11482 availability: availability.map(|envelope| {
11483 ::fidl_next::FromWire::from_wire(unsafe {
11484 envelope.read_unchecked::<crate::wire::Availability>()
11485 })
11486 }),
11487
11488 source_dictionary: source_dictionary.map(|envelope| {
11489 ::fidl_next::FromWire::from_wire(unsafe {
11490 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11491 })
11492 }),
11493 }
11494 }
11495 }
11496
11497 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeProtocol<'de>> for ExposeProtocol {
11498 #[inline]
11499 fn from_wire_ref(wire: &crate::wire::ExposeProtocol<'de>) -> Self {
11500 Self {
11501 source: wire.table.get(1).map(|envelope| {
11502 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11503 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11504 })
11505 }),
11506
11507 source_name: wire.table.get(2).map(|envelope| {
11508 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11509 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11510 })
11511 }),
11512
11513 target: wire.table.get(3).map(|envelope| {
11514 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11515 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11516 })
11517 }),
11518
11519 target_name: wire.table.get(4).map(|envelope| {
11520 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11521 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11522 })
11523 }),
11524
11525 availability: wire.table.get(5).map(|envelope| {
11526 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11527 envelope.deref_unchecked::<crate::wire::Availability>()
11528 })
11529 }),
11530
11531 source_dictionary: wire.table.get(6).map(|envelope| {
11532 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11533 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11534 })
11535 }),
11536 }
11537 }
11538 }
11539
11540 #[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"]
11541 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
11542 pub struct ExposeDirectory {
11543 pub source: ::core::option::Option<crate::natural::Ref>,
11544
11545 pub source_name: ::core::option::Option<::std::string::String>,
11546
11547 pub target: ::core::option::Option<crate::natural::Ref>,
11548
11549 pub target_name: ::core::option::Option<::std::string::String>,
11550
11551 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
11552
11553 pub subdir: ::core::option::Option<::std::string::String>,
11554
11555 pub availability: ::core::option::Option<crate::natural::Availability>,
11556
11557 pub source_dictionary: ::core::option::Option<::std::string::String>,
11558 }
11559
11560 impl ExposeDirectory {
11561 fn __max_ordinal(&self) -> usize {
11562 if self.source_dictionary.is_some() {
11563 return 8;
11564 }
11565
11566 if self.availability.is_some() {
11567 return 7;
11568 }
11569
11570 if self.subdir.is_some() {
11571 return 6;
11572 }
11573
11574 if self.rights.is_some() {
11575 return 5;
11576 }
11577
11578 if self.target_name.is_some() {
11579 return 4;
11580 }
11581
11582 if self.target.is_some() {
11583 return 3;
11584 }
11585
11586 if self.source_name.is_some() {
11587 return 2;
11588 }
11589
11590 if self.source.is_some() {
11591 return 1;
11592 }
11593
11594 0
11595 }
11596 }
11597
11598 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeDirectory<'static>, ___E>
11599 for ExposeDirectory
11600 where
11601 ___E: ::fidl_next::Encoder + ?Sized,
11602 {
11603 #[inline]
11604 fn encode(
11605 mut self,
11606 encoder: &mut ___E,
11607 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDirectory<'static>>,
11608 _: (),
11609 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11610 ::fidl_next::munge!(let crate::wire::ExposeDirectory { table } = out);
11611
11612 let max_ord = self.__max_ordinal();
11613
11614 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11615 ::fidl_next::Wire::zero_padding(&mut out);
11616
11617 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11618 ::fidl_next::wire::Envelope,
11619 >(encoder, max_ord);
11620
11621 for i in 1..=max_ord {
11622 match i {
11623 8 => {
11624 if let Some(value) = self.source_dictionary.take() {
11625 ::fidl_next::wire::Envelope::encode_value::<
11626 ::fidl_next::wire::String<'static>,
11627 ___E,
11628 >(
11629 value, preallocated.encoder, &mut out, 1024
11630 )?;
11631 } else {
11632 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11633 }
11634 }
11635
11636 7 => {
11637 if let Some(value) = self.availability.take() {
11638 ::fidl_next::wire::Envelope::encode_value::<
11639 crate::wire::Availability,
11640 ___E,
11641 >(
11642 value, preallocated.encoder, &mut out, ()
11643 )?;
11644 } else {
11645 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11646 }
11647 }
11648
11649 6 => {
11650 if let Some(value) = self.subdir.take() {
11651 ::fidl_next::wire::Envelope::encode_value::<
11652 ::fidl_next::wire::String<'static>,
11653 ___E,
11654 >(
11655 value, preallocated.encoder, &mut out, 1024
11656 )?;
11657 } else {
11658 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11659 }
11660 }
11661
11662 5 => {
11663 if let Some(value) = self.rights.take() {
11664 ::fidl_next::wire::Envelope::encode_value::<
11665 ::fidl_next_common_fuchsia_io::wire::Operations,
11666 ___E,
11667 >(
11668 value, preallocated.encoder, &mut out, ()
11669 )?;
11670 } else {
11671 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11672 }
11673 }
11674
11675 4 => {
11676 if let Some(value) = self.target_name.take() {
11677 ::fidl_next::wire::Envelope::encode_value::<
11678 ::fidl_next::wire::String<'static>,
11679 ___E,
11680 >(
11681 value, preallocated.encoder, &mut out, 100
11682 )?;
11683 } else {
11684 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11685 }
11686 }
11687
11688 3 => {
11689 if let Some(value) = self.target.take() {
11690 ::fidl_next::wire::Envelope::encode_value::<
11691 crate::wire::Ref<'static>,
11692 ___E,
11693 >(
11694 value, preallocated.encoder, &mut out, ()
11695 )?;
11696 } else {
11697 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11698 }
11699 }
11700
11701 2 => {
11702 if let Some(value) = self.source_name.take() {
11703 ::fidl_next::wire::Envelope::encode_value::<
11704 ::fidl_next::wire::String<'static>,
11705 ___E,
11706 >(
11707 value, preallocated.encoder, &mut out, 100
11708 )?;
11709 } else {
11710 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11711 }
11712 }
11713
11714 1 => {
11715 if let Some(value) = self.source.take() {
11716 ::fidl_next::wire::Envelope::encode_value::<
11717 crate::wire::Ref<'static>,
11718 ___E,
11719 >(
11720 value, preallocated.encoder, &mut out, ()
11721 )?;
11722 } else {
11723 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11724 }
11725 }
11726
11727 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11728 }
11729 unsafe {
11730 preallocated.write_next(out.assume_init_ref());
11731 }
11732 }
11733
11734 ::fidl_next::wire::Table::encode_len(table, max_ord);
11735
11736 Ok(())
11737 }
11738 }
11739
11740 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeDirectory<'static>, ___E>
11741 for &'a ExposeDirectory
11742 where
11743 ___E: ::fidl_next::Encoder + ?Sized,
11744 {
11745 #[inline]
11746 fn encode(
11747 self,
11748 encoder: &mut ___E,
11749 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDirectory<'static>>,
11750 _: (),
11751 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
11752 ::fidl_next::munge!(let crate::wire::ExposeDirectory { table } = out);
11753
11754 let max_ord = self.__max_ordinal();
11755
11756 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
11757 ::fidl_next::Wire::zero_padding(&mut out);
11758
11759 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
11760 ::fidl_next::wire::Envelope,
11761 >(encoder, max_ord);
11762
11763 for i in 1..=max_ord {
11764 match i {
11765 8 => {
11766 if let Some(value) = &self.source_dictionary {
11767 ::fidl_next::wire::Envelope::encode_value::<
11768 ::fidl_next::wire::String<'static>,
11769 ___E,
11770 >(
11771 value, preallocated.encoder, &mut out, 1024
11772 )?;
11773 } else {
11774 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11775 }
11776 }
11777
11778 7 => {
11779 if let Some(value) = &self.availability {
11780 ::fidl_next::wire::Envelope::encode_value::<
11781 crate::wire::Availability,
11782 ___E,
11783 >(
11784 value, preallocated.encoder, &mut out, ()
11785 )?;
11786 } else {
11787 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11788 }
11789 }
11790
11791 6 => {
11792 if let Some(value) = &self.subdir {
11793 ::fidl_next::wire::Envelope::encode_value::<
11794 ::fidl_next::wire::String<'static>,
11795 ___E,
11796 >(
11797 value, preallocated.encoder, &mut out, 1024
11798 )?;
11799 } else {
11800 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11801 }
11802 }
11803
11804 5 => {
11805 if let Some(value) = &self.rights {
11806 ::fidl_next::wire::Envelope::encode_value::<
11807 ::fidl_next_common_fuchsia_io::wire::Operations,
11808 ___E,
11809 >(
11810 value, preallocated.encoder, &mut out, ()
11811 )?;
11812 } else {
11813 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11814 }
11815 }
11816
11817 4 => {
11818 if let Some(value) = &self.target_name {
11819 ::fidl_next::wire::Envelope::encode_value::<
11820 ::fidl_next::wire::String<'static>,
11821 ___E,
11822 >(
11823 value, preallocated.encoder, &mut out, 100
11824 )?;
11825 } else {
11826 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11827 }
11828 }
11829
11830 3 => {
11831 if let Some(value) = &self.target {
11832 ::fidl_next::wire::Envelope::encode_value::<
11833 crate::wire::Ref<'static>,
11834 ___E,
11835 >(
11836 value, preallocated.encoder, &mut out, ()
11837 )?;
11838 } else {
11839 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11840 }
11841 }
11842
11843 2 => {
11844 if let Some(value) = &self.source_name {
11845 ::fidl_next::wire::Envelope::encode_value::<
11846 ::fidl_next::wire::String<'static>,
11847 ___E,
11848 >(
11849 value, preallocated.encoder, &mut out, 100
11850 )?;
11851 } else {
11852 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11853 }
11854 }
11855
11856 1 => {
11857 if let Some(value) = &self.source {
11858 ::fidl_next::wire::Envelope::encode_value::<
11859 crate::wire::Ref<'static>,
11860 ___E,
11861 >(
11862 value, preallocated.encoder, &mut out, ()
11863 )?;
11864 } else {
11865 ::fidl_next::wire::Envelope::encode_zero(&mut out)
11866 }
11867 }
11868
11869 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
11870 }
11871 unsafe {
11872 preallocated.write_next(out.assume_init_ref());
11873 }
11874 }
11875
11876 ::fidl_next::wire::Table::encode_len(table, max_ord);
11877
11878 Ok(())
11879 }
11880 }
11881
11882 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeDirectory<'de>> for ExposeDirectory {
11883 #[inline]
11884 fn from_wire(wire_: crate::wire::ExposeDirectory<'de>) -> Self {
11885 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
11886
11887 let source = wire_.table.get(1);
11888
11889 let source_name = wire_.table.get(2);
11890
11891 let target = wire_.table.get(3);
11892
11893 let target_name = wire_.table.get(4);
11894
11895 let rights = wire_.table.get(5);
11896
11897 let subdir = wire_.table.get(6);
11898
11899 let availability = wire_.table.get(7);
11900
11901 let source_dictionary = wire_.table.get(8);
11902
11903 Self {
11904 source: source.map(|envelope| {
11905 ::fidl_next::FromWire::from_wire(unsafe {
11906 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11907 })
11908 }),
11909
11910 source_name: source_name.map(|envelope| {
11911 ::fidl_next::FromWire::from_wire(unsafe {
11912 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11913 })
11914 }),
11915
11916 target: target.map(|envelope| {
11917 ::fidl_next::FromWire::from_wire(unsafe {
11918 envelope.read_unchecked::<crate::wire::Ref<'de>>()
11919 })
11920 }),
11921
11922 target_name: target_name.map(|envelope| {
11923 ::fidl_next::FromWire::from_wire(unsafe {
11924 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11925 })
11926 }),
11927
11928 rights: rights.map(|envelope| {
11929 ::fidl_next::FromWire::from_wire(unsafe {
11930 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
11931 })
11932 }),
11933
11934 subdir: subdir.map(|envelope| {
11935 ::fidl_next::FromWire::from_wire(unsafe {
11936 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11937 })
11938 }),
11939
11940 availability: availability.map(|envelope| {
11941 ::fidl_next::FromWire::from_wire(unsafe {
11942 envelope.read_unchecked::<crate::wire::Availability>()
11943 })
11944 }),
11945
11946 source_dictionary: source_dictionary.map(|envelope| {
11947 ::fidl_next::FromWire::from_wire(unsafe {
11948 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
11949 })
11950 }),
11951 }
11952 }
11953 }
11954
11955 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeDirectory<'de>> for ExposeDirectory {
11956 #[inline]
11957 fn from_wire_ref(wire: &crate::wire::ExposeDirectory<'de>) -> Self {
11958 Self {
11959 source: wire.table.get(1).map(|envelope| {
11960 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11961 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11962 })
11963 }),
11964
11965 source_name: wire.table.get(2).map(|envelope| {
11966 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11967 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11968 })
11969 }),
11970
11971 target: wire.table.get(3).map(|envelope| {
11972 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11973 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
11974 })
11975 }),
11976
11977 target_name: wire.table.get(4).map(|envelope| {
11978 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11979 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11980 })
11981 }),
11982
11983 rights: wire.table.get(5).map(|envelope| {
11984 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11985 envelope
11986 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
11987 })
11988 }),
11989
11990 subdir: wire.table.get(6).map(|envelope| {
11991 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11992 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
11993 })
11994 }),
11995
11996 availability: wire.table.get(7).map(|envelope| {
11997 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
11998 envelope.deref_unchecked::<crate::wire::Availability>()
11999 })
12000 }),
12001
12002 source_dictionary: wire.table.get(8).map(|envelope| {
12003 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12004 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12005 })
12006 }),
12007 }
12008 }
12009 }
12010
12011 #[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"]
12012 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12013 pub struct ExposeRunner {
12014 pub source: ::core::option::Option<crate::natural::Ref>,
12015
12016 pub source_name: ::core::option::Option<::std::string::String>,
12017
12018 pub target: ::core::option::Option<crate::natural::Ref>,
12019
12020 pub target_name: ::core::option::Option<::std::string::String>,
12021
12022 pub source_dictionary: ::core::option::Option<::std::string::String>,
12023 }
12024
12025 impl ExposeRunner {
12026 fn __max_ordinal(&self) -> usize {
12027 if self.source_dictionary.is_some() {
12028 return 6;
12029 }
12030
12031 if self.target_name.is_some() {
12032 return 4;
12033 }
12034
12035 if self.target.is_some() {
12036 return 3;
12037 }
12038
12039 if self.source_name.is_some() {
12040 return 2;
12041 }
12042
12043 if self.source.is_some() {
12044 return 1;
12045 }
12046
12047 0
12048 }
12049 }
12050
12051 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeRunner<'static>, ___E> for ExposeRunner
12052 where
12053 ___E: ::fidl_next::Encoder + ?Sized,
12054 {
12055 #[inline]
12056 fn encode(
12057 mut self,
12058 encoder: &mut ___E,
12059 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeRunner<'static>>,
12060 _: (),
12061 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12062 ::fidl_next::munge!(let crate::wire::ExposeRunner { table } = out);
12063
12064 let max_ord = self.__max_ordinal();
12065
12066 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12067 ::fidl_next::Wire::zero_padding(&mut out);
12068
12069 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12070 ::fidl_next::wire::Envelope,
12071 >(encoder, max_ord);
12072
12073 for i in 1..=max_ord {
12074 match i {
12075 6 => {
12076 if let Some(value) = self.source_dictionary.take() {
12077 ::fidl_next::wire::Envelope::encode_value::<
12078 ::fidl_next::wire::String<'static>,
12079 ___E,
12080 >(
12081 value, preallocated.encoder, &mut out, 1024
12082 )?;
12083 } else {
12084 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12085 }
12086 }
12087
12088 4 => {
12089 if let Some(value) = self.target_name.take() {
12090 ::fidl_next::wire::Envelope::encode_value::<
12091 ::fidl_next::wire::String<'static>,
12092 ___E,
12093 >(
12094 value, preallocated.encoder, &mut out, 100
12095 )?;
12096 } else {
12097 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12098 }
12099 }
12100
12101 3 => {
12102 if let Some(value) = self.target.take() {
12103 ::fidl_next::wire::Envelope::encode_value::<
12104 crate::wire::Ref<'static>,
12105 ___E,
12106 >(
12107 value, preallocated.encoder, &mut out, ()
12108 )?;
12109 } else {
12110 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12111 }
12112 }
12113
12114 2 => {
12115 if let Some(value) = self.source_name.take() {
12116 ::fidl_next::wire::Envelope::encode_value::<
12117 ::fidl_next::wire::String<'static>,
12118 ___E,
12119 >(
12120 value, preallocated.encoder, &mut out, 100
12121 )?;
12122 } else {
12123 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12124 }
12125 }
12126
12127 1 => {
12128 if let Some(value) = self.source.take() {
12129 ::fidl_next::wire::Envelope::encode_value::<
12130 crate::wire::Ref<'static>,
12131 ___E,
12132 >(
12133 value, preallocated.encoder, &mut out, ()
12134 )?;
12135 } else {
12136 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12137 }
12138 }
12139
12140 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12141 }
12142 unsafe {
12143 preallocated.write_next(out.assume_init_ref());
12144 }
12145 }
12146
12147 ::fidl_next::wire::Table::encode_len(table, max_ord);
12148
12149 Ok(())
12150 }
12151 }
12152
12153 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeRunner<'static>, ___E>
12154 for &'a ExposeRunner
12155 where
12156 ___E: ::fidl_next::Encoder + ?Sized,
12157 {
12158 #[inline]
12159 fn encode(
12160 self,
12161 encoder: &mut ___E,
12162 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeRunner<'static>>,
12163 _: (),
12164 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12165 ::fidl_next::munge!(let crate::wire::ExposeRunner { table } = out);
12166
12167 let max_ord = self.__max_ordinal();
12168
12169 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12170 ::fidl_next::Wire::zero_padding(&mut out);
12171
12172 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12173 ::fidl_next::wire::Envelope,
12174 >(encoder, max_ord);
12175
12176 for i in 1..=max_ord {
12177 match i {
12178 6 => {
12179 if let Some(value) = &self.source_dictionary {
12180 ::fidl_next::wire::Envelope::encode_value::<
12181 ::fidl_next::wire::String<'static>,
12182 ___E,
12183 >(
12184 value, preallocated.encoder, &mut out, 1024
12185 )?;
12186 } else {
12187 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12188 }
12189 }
12190
12191 4 => {
12192 if let Some(value) = &self.target_name {
12193 ::fidl_next::wire::Envelope::encode_value::<
12194 ::fidl_next::wire::String<'static>,
12195 ___E,
12196 >(
12197 value, preallocated.encoder, &mut out, 100
12198 )?;
12199 } else {
12200 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12201 }
12202 }
12203
12204 3 => {
12205 if let Some(value) = &self.target {
12206 ::fidl_next::wire::Envelope::encode_value::<
12207 crate::wire::Ref<'static>,
12208 ___E,
12209 >(
12210 value, preallocated.encoder, &mut out, ()
12211 )?;
12212 } else {
12213 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12214 }
12215 }
12216
12217 2 => {
12218 if let Some(value) = &self.source_name {
12219 ::fidl_next::wire::Envelope::encode_value::<
12220 ::fidl_next::wire::String<'static>,
12221 ___E,
12222 >(
12223 value, preallocated.encoder, &mut out, 100
12224 )?;
12225 } else {
12226 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12227 }
12228 }
12229
12230 1 => {
12231 if let Some(value) = &self.source {
12232 ::fidl_next::wire::Envelope::encode_value::<
12233 crate::wire::Ref<'static>,
12234 ___E,
12235 >(
12236 value, preallocated.encoder, &mut out, ()
12237 )?;
12238 } else {
12239 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12240 }
12241 }
12242
12243 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12244 }
12245 unsafe {
12246 preallocated.write_next(out.assume_init_ref());
12247 }
12248 }
12249
12250 ::fidl_next::wire::Table::encode_len(table, max_ord);
12251
12252 Ok(())
12253 }
12254 }
12255
12256 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeRunner<'de>> for ExposeRunner {
12257 #[inline]
12258 fn from_wire(wire_: crate::wire::ExposeRunner<'de>) -> Self {
12259 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12260
12261 let source = wire_.table.get(1);
12262
12263 let source_name = wire_.table.get(2);
12264
12265 let target = wire_.table.get(3);
12266
12267 let target_name = wire_.table.get(4);
12268
12269 let source_dictionary = wire_.table.get(6);
12270
12271 Self {
12272 source: source.map(|envelope| {
12273 ::fidl_next::FromWire::from_wire(unsafe {
12274 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12275 })
12276 }),
12277
12278 source_name: source_name.map(|envelope| {
12279 ::fidl_next::FromWire::from_wire(unsafe {
12280 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12281 })
12282 }),
12283
12284 target: target.map(|envelope| {
12285 ::fidl_next::FromWire::from_wire(unsafe {
12286 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12287 })
12288 }),
12289
12290 target_name: target_name.map(|envelope| {
12291 ::fidl_next::FromWire::from_wire(unsafe {
12292 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12293 })
12294 }),
12295
12296 source_dictionary: source_dictionary.map(|envelope| {
12297 ::fidl_next::FromWire::from_wire(unsafe {
12298 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12299 })
12300 }),
12301 }
12302 }
12303 }
12304
12305 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeRunner<'de>> for ExposeRunner {
12306 #[inline]
12307 fn from_wire_ref(wire: &crate::wire::ExposeRunner<'de>) -> Self {
12308 Self {
12309 source: wire.table.get(1).map(|envelope| {
12310 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12311 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12312 })
12313 }),
12314
12315 source_name: wire.table.get(2).map(|envelope| {
12316 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12317 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12318 })
12319 }),
12320
12321 target: wire.table.get(3).map(|envelope| {
12322 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12323 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12324 })
12325 }),
12326
12327 target_name: wire.table.get(4).map(|envelope| {
12328 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12329 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12330 })
12331 }),
12332
12333 source_dictionary: wire.table.get(6).map(|envelope| {
12334 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12335 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12336 })
12337 }),
12338 }
12339 }
12340 }
12341
12342 #[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"]
12343 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12344 pub struct ExposeResolver {
12345 pub source: ::core::option::Option<crate::natural::Ref>,
12346
12347 pub source_name: ::core::option::Option<::std::string::String>,
12348
12349 pub target: ::core::option::Option<crate::natural::Ref>,
12350
12351 pub target_name: ::core::option::Option<::std::string::String>,
12352
12353 pub source_dictionary: ::core::option::Option<::std::string::String>,
12354 }
12355
12356 impl ExposeResolver {
12357 fn __max_ordinal(&self) -> usize {
12358 if self.source_dictionary.is_some() {
12359 return 6;
12360 }
12361
12362 if self.target_name.is_some() {
12363 return 4;
12364 }
12365
12366 if self.target.is_some() {
12367 return 3;
12368 }
12369
12370 if self.source_name.is_some() {
12371 return 2;
12372 }
12373
12374 if self.source.is_some() {
12375 return 1;
12376 }
12377
12378 0
12379 }
12380 }
12381
12382 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeResolver<'static>, ___E> for ExposeResolver
12383 where
12384 ___E: ::fidl_next::Encoder + ?Sized,
12385 {
12386 #[inline]
12387 fn encode(
12388 mut self,
12389 encoder: &mut ___E,
12390 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeResolver<'static>>,
12391 _: (),
12392 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12393 ::fidl_next::munge!(let crate::wire::ExposeResolver { table } = out);
12394
12395 let max_ord = self.__max_ordinal();
12396
12397 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12398 ::fidl_next::Wire::zero_padding(&mut out);
12399
12400 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12401 ::fidl_next::wire::Envelope,
12402 >(encoder, max_ord);
12403
12404 for i in 1..=max_ord {
12405 match i {
12406 6 => {
12407 if let Some(value) = self.source_dictionary.take() {
12408 ::fidl_next::wire::Envelope::encode_value::<
12409 ::fidl_next::wire::String<'static>,
12410 ___E,
12411 >(
12412 value, preallocated.encoder, &mut out, 1024
12413 )?;
12414 } else {
12415 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12416 }
12417 }
12418
12419 4 => {
12420 if let Some(value) = self.target_name.take() {
12421 ::fidl_next::wire::Envelope::encode_value::<
12422 ::fidl_next::wire::String<'static>,
12423 ___E,
12424 >(
12425 value, preallocated.encoder, &mut out, 100
12426 )?;
12427 } else {
12428 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12429 }
12430 }
12431
12432 3 => {
12433 if let Some(value) = self.target.take() {
12434 ::fidl_next::wire::Envelope::encode_value::<
12435 crate::wire::Ref<'static>,
12436 ___E,
12437 >(
12438 value, preallocated.encoder, &mut out, ()
12439 )?;
12440 } else {
12441 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12442 }
12443 }
12444
12445 2 => {
12446 if let Some(value) = self.source_name.take() {
12447 ::fidl_next::wire::Envelope::encode_value::<
12448 ::fidl_next::wire::String<'static>,
12449 ___E,
12450 >(
12451 value, preallocated.encoder, &mut out, 100
12452 )?;
12453 } else {
12454 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12455 }
12456 }
12457
12458 1 => {
12459 if let Some(value) = self.source.take() {
12460 ::fidl_next::wire::Envelope::encode_value::<
12461 crate::wire::Ref<'static>,
12462 ___E,
12463 >(
12464 value, preallocated.encoder, &mut out, ()
12465 )?;
12466 } else {
12467 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12468 }
12469 }
12470
12471 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12472 }
12473 unsafe {
12474 preallocated.write_next(out.assume_init_ref());
12475 }
12476 }
12477
12478 ::fidl_next::wire::Table::encode_len(table, max_ord);
12479
12480 Ok(())
12481 }
12482 }
12483
12484 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeResolver<'static>, ___E>
12485 for &'a ExposeResolver
12486 where
12487 ___E: ::fidl_next::Encoder + ?Sized,
12488 {
12489 #[inline]
12490 fn encode(
12491 self,
12492 encoder: &mut ___E,
12493 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeResolver<'static>>,
12494 _: (),
12495 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12496 ::fidl_next::munge!(let crate::wire::ExposeResolver { table } = out);
12497
12498 let max_ord = self.__max_ordinal();
12499
12500 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12501 ::fidl_next::Wire::zero_padding(&mut out);
12502
12503 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12504 ::fidl_next::wire::Envelope,
12505 >(encoder, max_ord);
12506
12507 for i in 1..=max_ord {
12508 match i {
12509 6 => {
12510 if let Some(value) = &self.source_dictionary {
12511 ::fidl_next::wire::Envelope::encode_value::<
12512 ::fidl_next::wire::String<'static>,
12513 ___E,
12514 >(
12515 value, preallocated.encoder, &mut out, 1024
12516 )?;
12517 } else {
12518 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12519 }
12520 }
12521
12522 4 => {
12523 if let Some(value) = &self.target_name {
12524 ::fidl_next::wire::Envelope::encode_value::<
12525 ::fidl_next::wire::String<'static>,
12526 ___E,
12527 >(
12528 value, preallocated.encoder, &mut out, 100
12529 )?;
12530 } else {
12531 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12532 }
12533 }
12534
12535 3 => {
12536 if let Some(value) = &self.target {
12537 ::fidl_next::wire::Envelope::encode_value::<
12538 crate::wire::Ref<'static>,
12539 ___E,
12540 >(
12541 value, preallocated.encoder, &mut out, ()
12542 )?;
12543 } else {
12544 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12545 }
12546 }
12547
12548 2 => {
12549 if let Some(value) = &self.source_name {
12550 ::fidl_next::wire::Envelope::encode_value::<
12551 ::fidl_next::wire::String<'static>,
12552 ___E,
12553 >(
12554 value, preallocated.encoder, &mut out, 100
12555 )?;
12556 } else {
12557 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12558 }
12559 }
12560
12561 1 => {
12562 if let Some(value) = &self.source {
12563 ::fidl_next::wire::Envelope::encode_value::<
12564 crate::wire::Ref<'static>,
12565 ___E,
12566 >(
12567 value, preallocated.encoder, &mut out, ()
12568 )?;
12569 } else {
12570 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12571 }
12572 }
12573
12574 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12575 }
12576 unsafe {
12577 preallocated.write_next(out.assume_init_ref());
12578 }
12579 }
12580
12581 ::fidl_next::wire::Table::encode_len(table, max_ord);
12582
12583 Ok(())
12584 }
12585 }
12586
12587 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeResolver<'de>> for ExposeResolver {
12588 #[inline]
12589 fn from_wire(wire_: crate::wire::ExposeResolver<'de>) -> Self {
12590 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12591
12592 let source = wire_.table.get(1);
12593
12594 let source_name = wire_.table.get(2);
12595
12596 let target = wire_.table.get(3);
12597
12598 let target_name = wire_.table.get(4);
12599
12600 let source_dictionary = wire_.table.get(6);
12601
12602 Self {
12603 source: source.map(|envelope| {
12604 ::fidl_next::FromWire::from_wire(unsafe {
12605 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12606 })
12607 }),
12608
12609 source_name: source_name.map(|envelope| {
12610 ::fidl_next::FromWire::from_wire(unsafe {
12611 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12612 })
12613 }),
12614
12615 target: target.map(|envelope| {
12616 ::fidl_next::FromWire::from_wire(unsafe {
12617 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12618 })
12619 }),
12620
12621 target_name: target_name.map(|envelope| {
12622 ::fidl_next::FromWire::from_wire(unsafe {
12623 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12624 })
12625 }),
12626
12627 source_dictionary: source_dictionary.map(|envelope| {
12628 ::fidl_next::FromWire::from_wire(unsafe {
12629 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12630 })
12631 }),
12632 }
12633 }
12634 }
12635
12636 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeResolver<'de>> for ExposeResolver {
12637 #[inline]
12638 fn from_wire_ref(wire: &crate::wire::ExposeResolver<'de>) -> Self {
12639 Self {
12640 source: wire.table.get(1).map(|envelope| {
12641 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12642 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12643 })
12644 }),
12645
12646 source_name: wire.table.get(2).map(|envelope| {
12647 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12648 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12649 })
12650 }),
12651
12652 target: wire.table.get(3).map(|envelope| {
12653 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12654 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
12655 })
12656 }),
12657
12658 target_name: wire.table.get(4).map(|envelope| {
12659 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12660 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12661 })
12662 }),
12663
12664 source_dictionary: wire.table.get(6).map(|envelope| {
12665 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
12666 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
12667 })
12668 }),
12669 }
12670 }
12671 }
12672
12673 #[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"]
12674 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12675 pub struct ExposeDictionary {
12676 pub source: ::core::option::Option<crate::natural::Ref>,
12677
12678 pub source_name: ::core::option::Option<::std::string::String>,
12679
12680 pub target: ::core::option::Option<crate::natural::Ref>,
12681
12682 pub target_name: ::core::option::Option<::std::string::String>,
12683
12684 pub availability: ::core::option::Option<crate::natural::Availability>,
12685
12686 pub source_dictionary: ::core::option::Option<::std::string::String>,
12687 }
12688
12689 impl ExposeDictionary {
12690 fn __max_ordinal(&self) -> usize {
12691 if self.source_dictionary.is_some() {
12692 return 6;
12693 }
12694
12695 if self.availability.is_some() {
12696 return 5;
12697 }
12698
12699 if self.target_name.is_some() {
12700 return 4;
12701 }
12702
12703 if self.target.is_some() {
12704 return 3;
12705 }
12706
12707 if self.source_name.is_some() {
12708 return 2;
12709 }
12710
12711 if self.source.is_some() {
12712 return 1;
12713 }
12714
12715 0
12716 }
12717 }
12718
12719 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeDictionary<'static>, ___E>
12720 for ExposeDictionary
12721 where
12722 ___E: ::fidl_next::Encoder + ?Sized,
12723 {
12724 #[inline]
12725 fn encode(
12726 mut self,
12727 encoder: &mut ___E,
12728 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDictionary<'static>>,
12729 _: (),
12730 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12731 ::fidl_next::munge!(let crate::wire::ExposeDictionary { table } = out);
12732
12733 let max_ord = self.__max_ordinal();
12734
12735 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12736 ::fidl_next::Wire::zero_padding(&mut out);
12737
12738 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12739 ::fidl_next::wire::Envelope,
12740 >(encoder, max_ord);
12741
12742 for i in 1..=max_ord {
12743 match i {
12744 6 => {
12745 if let Some(value) = self.source_dictionary.take() {
12746 ::fidl_next::wire::Envelope::encode_value::<
12747 ::fidl_next::wire::String<'static>,
12748 ___E,
12749 >(
12750 value, preallocated.encoder, &mut out, 1024
12751 )?;
12752 } else {
12753 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12754 }
12755 }
12756
12757 5 => {
12758 if let Some(value) = self.availability.take() {
12759 ::fidl_next::wire::Envelope::encode_value::<
12760 crate::wire::Availability,
12761 ___E,
12762 >(
12763 value, preallocated.encoder, &mut out, ()
12764 )?;
12765 } else {
12766 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12767 }
12768 }
12769
12770 4 => {
12771 if let Some(value) = self.target_name.take() {
12772 ::fidl_next::wire::Envelope::encode_value::<
12773 ::fidl_next::wire::String<'static>,
12774 ___E,
12775 >(
12776 value, preallocated.encoder, &mut out, 100
12777 )?;
12778 } else {
12779 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12780 }
12781 }
12782
12783 3 => {
12784 if let Some(value) = self.target.take() {
12785 ::fidl_next::wire::Envelope::encode_value::<
12786 crate::wire::Ref<'static>,
12787 ___E,
12788 >(
12789 value, preallocated.encoder, &mut out, ()
12790 )?;
12791 } else {
12792 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12793 }
12794 }
12795
12796 2 => {
12797 if let Some(value) = self.source_name.take() {
12798 ::fidl_next::wire::Envelope::encode_value::<
12799 ::fidl_next::wire::String<'static>,
12800 ___E,
12801 >(
12802 value, preallocated.encoder, &mut out, 100
12803 )?;
12804 } else {
12805 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12806 }
12807 }
12808
12809 1 => {
12810 if let Some(value) = self.source.take() {
12811 ::fidl_next::wire::Envelope::encode_value::<
12812 crate::wire::Ref<'static>,
12813 ___E,
12814 >(
12815 value, preallocated.encoder, &mut out, ()
12816 )?;
12817 } else {
12818 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12819 }
12820 }
12821
12822 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12823 }
12824 unsafe {
12825 preallocated.write_next(out.assume_init_ref());
12826 }
12827 }
12828
12829 ::fidl_next::wire::Table::encode_len(table, max_ord);
12830
12831 Ok(())
12832 }
12833 }
12834
12835 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeDictionary<'static>, ___E>
12836 for &'a ExposeDictionary
12837 where
12838 ___E: ::fidl_next::Encoder + ?Sized,
12839 {
12840 #[inline]
12841 fn encode(
12842 self,
12843 encoder: &mut ___E,
12844 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeDictionary<'static>>,
12845 _: (),
12846 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
12847 ::fidl_next::munge!(let crate::wire::ExposeDictionary { table } = out);
12848
12849 let max_ord = self.__max_ordinal();
12850
12851 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
12852 ::fidl_next::Wire::zero_padding(&mut out);
12853
12854 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
12855 ::fidl_next::wire::Envelope,
12856 >(encoder, max_ord);
12857
12858 for i in 1..=max_ord {
12859 match i {
12860 6 => {
12861 if let Some(value) = &self.source_dictionary {
12862 ::fidl_next::wire::Envelope::encode_value::<
12863 ::fidl_next::wire::String<'static>,
12864 ___E,
12865 >(
12866 value, preallocated.encoder, &mut out, 1024
12867 )?;
12868 } else {
12869 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12870 }
12871 }
12872
12873 5 => {
12874 if let Some(value) = &self.availability {
12875 ::fidl_next::wire::Envelope::encode_value::<
12876 crate::wire::Availability,
12877 ___E,
12878 >(
12879 value, preallocated.encoder, &mut out, ()
12880 )?;
12881 } else {
12882 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12883 }
12884 }
12885
12886 4 => {
12887 if let Some(value) = &self.target_name {
12888 ::fidl_next::wire::Envelope::encode_value::<
12889 ::fidl_next::wire::String<'static>,
12890 ___E,
12891 >(
12892 value, preallocated.encoder, &mut out, 100
12893 )?;
12894 } else {
12895 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12896 }
12897 }
12898
12899 3 => {
12900 if let Some(value) = &self.target {
12901 ::fidl_next::wire::Envelope::encode_value::<
12902 crate::wire::Ref<'static>,
12903 ___E,
12904 >(
12905 value, preallocated.encoder, &mut out, ()
12906 )?;
12907 } else {
12908 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12909 }
12910 }
12911
12912 2 => {
12913 if let Some(value) = &self.source_name {
12914 ::fidl_next::wire::Envelope::encode_value::<
12915 ::fidl_next::wire::String<'static>,
12916 ___E,
12917 >(
12918 value, preallocated.encoder, &mut out, 100
12919 )?;
12920 } else {
12921 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12922 }
12923 }
12924
12925 1 => {
12926 if let Some(value) = &self.source {
12927 ::fidl_next::wire::Envelope::encode_value::<
12928 crate::wire::Ref<'static>,
12929 ___E,
12930 >(
12931 value, preallocated.encoder, &mut out, ()
12932 )?;
12933 } else {
12934 ::fidl_next::wire::Envelope::encode_zero(&mut out)
12935 }
12936 }
12937
12938 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
12939 }
12940 unsafe {
12941 preallocated.write_next(out.assume_init_ref());
12942 }
12943 }
12944
12945 ::fidl_next::wire::Table::encode_len(table, max_ord);
12946
12947 Ok(())
12948 }
12949 }
12950
12951 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeDictionary<'de>> for ExposeDictionary {
12952 #[inline]
12953 fn from_wire(wire_: crate::wire::ExposeDictionary<'de>) -> Self {
12954 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
12955
12956 let source = wire_.table.get(1);
12957
12958 let source_name = wire_.table.get(2);
12959
12960 let target = wire_.table.get(3);
12961
12962 let target_name = wire_.table.get(4);
12963
12964 let availability = wire_.table.get(5);
12965
12966 let source_dictionary = wire_.table.get(6);
12967
12968 Self {
12969 source: source.map(|envelope| {
12970 ::fidl_next::FromWire::from_wire(unsafe {
12971 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12972 })
12973 }),
12974
12975 source_name: source_name.map(|envelope| {
12976 ::fidl_next::FromWire::from_wire(unsafe {
12977 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12978 })
12979 }),
12980
12981 target: target.map(|envelope| {
12982 ::fidl_next::FromWire::from_wire(unsafe {
12983 envelope.read_unchecked::<crate::wire::Ref<'de>>()
12984 })
12985 }),
12986
12987 target_name: target_name.map(|envelope| {
12988 ::fidl_next::FromWire::from_wire(unsafe {
12989 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
12990 })
12991 }),
12992
12993 availability: availability.map(|envelope| {
12994 ::fidl_next::FromWire::from_wire(unsafe {
12995 envelope.read_unchecked::<crate::wire::Availability>()
12996 })
12997 }),
12998
12999 source_dictionary: source_dictionary.map(|envelope| {
13000 ::fidl_next::FromWire::from_wire(unsafe {
13001 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
13002 })
13003 }),
13004 }
13005 }
13006 }
13007
13008 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeDictionary<'de>> for ExposeDictionary {
13009 #[inline]
13010 fn from_wire_ref(wire: &crate::wire::ExposeDictionary<'de>) -> Self {
13011 Self {
13012 source: wire.table.get(1).map(|envelope| {
13013 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13014 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13015 })
13016 }),
13017
13018 source_name: wire.table.get(2).map(|envelope| {
13019 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13020 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13021 })
13022 }),
13023
13024 target: wire.table.get(3).map(|envelope| {
13025 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13026 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13027 })
13028 }),
13029
13030 target_name: wire.table.get(4).map(|envelope| {
13031 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13032 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13033 })
13034 }),
13035
13036 availability: wire.table.get(5).map(|envelope| {
13037 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13038 envelope.deref_unchecked::<crate::wire::Availability>()
13039 })
13040 }),
13041
13042 source_dictionary: wire.table.get(6).map(|envelope| {
13043 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13044 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13045 })
13046 }),
13047 }
13048 }
13049 }
13050
13051 #[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"]
13052 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13053 pub struct ExposeConfiguration {
13054 pub source: ::core::option::Option<crate::natural::Ref>,
13055
13056 pub source_name: ::core::option::Option<::std::string::String>,
13057
13058 pub target: ::core::option::Option<crate::natural::Ref>,
13059
13060 pub target_name: ::core::option::Option<::std::string::String>,
13061
13062 pub availability: ::core::option::Option<crate::natural::Availability>,
13063
13064 pub source_dictionary: ::core::option::Option<::std::string::String>,
13065 }
13066
13067 impl ExposeConfiguration {
13068 fn __max_ordinal(&self) -> usize {
13069 if self.source_dictionary.is_some() {
13070 return 6;
13071 }
13072
13073 if self.availability.is_some() {
13074 return 5;
13075 }
13076
13077 if self.target_name.is_some() {
13078 return 4;
13079 }
13080
13081 if self.target.is_some() {
13082 return 3;
13083 }
13084
13085 if self.source_name.is_some() {
13086 return 2;
13087 }
13088
13089 if self.source.is_some() {
13090 return 1;
13091 }
13092
13093 0
13094 }
13095 }
13096
13097 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ExposeConfiguration<'static>, ___E>
13098 for ExposeConfiguration
13099 where
13100 ___E: ::fidl_next::Encoder + ?Sized,
13101 {
13102 #[inline]
13103 fn encode(
13104 mut self,
13105 encoder: &mut ___E,
13106 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeConfiguration<'static>>,
13107 _: (),
13108 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13109 ::fidl_next::munge!(let crate::wire::ExposeConfiguration { table } = out);
13110
13111 let max_ord = self.__max_ordinal();
13112
13113 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13114 ::fidl_next::Wire::zero_padding(&mut out);
13115
13116 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13117 ::fidl_next::wire::Envelope,
13118 >(encoder, max_ord);
13119
13120 for i in 1..=max_ord {
13121 match i {
13122 6 => {
13123 if let Some(value) = self.source_dictionary.take() {
13124 ::fidl_next::wire::Envelope::encode_value::<
13125 ::fidl_next::wire::String<'static>,
13126 ___E,
13127 >(
13128 value, preallocated.encoder, &mut out, 1024
13129 )?;
13130 } else {
13131 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13132 }
13133 }
13134
13135 5 => {
13136 if let Some(value) = self.availability.take() {
13137 ::fidl_next::wire::Envelope::encode_value::<
13138 crate::wire::Availability,
13139 ___E,
13140 >(
13141 value, preallocated.encoder, &mut out, ()
13142 )?;
13143 } else {
13144 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13145 }
13146 }
13147
13148 4 => {
13149 if let Some(value) = self.target_name.take() {
13150 ::fidl_next::wire::Envelope::encode_value::<
13151 ::fidl_next::wire::String<'static>,
13152 ___E,
13153 >(
13154 value, preallocated.encoder, &mut out, 100
13155 )?;
13156 } else {
13157 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13158 }
13159 }
13160
13161 3 => {
13162 if let Some(value) = self.target.take() {
13163 ::fidl_next::wire::Envelope::encode_value::<
13164 crate::wire::Ref<'static>,
13165 ___E,
13166 >(
13167 value, preallocated.encoder, &mut out, ()
13168 )?;
13169 } else {
13170 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13171 }
13172 }
13173
13174 2 => {
13175 if let Some(value) = self.source_name.take() {
13176 ::fidl_next::wire::Envelope::encode_value::<
13177 ::fidl_next::wire::String<'static>,
13178 ___E,
13179 >(
13180 value, preallocated.encoder, &mut out, 100
13181 )?;
13182 } else {
13183 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13184 }
13185 }
13186
13187 1 => {
13188 if let Some(value) = self.source.take() {
13189 ::fidl_next::wire::Envelope::encode_value::<
13190 crate::wire::Ref<'static>,
13191 ___E,
13192 >(
13193 value, preallocated.encoder, &mut out, ()
13194 )?;
13195 } else {
13196 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13197 }
13198 }
13199
13200 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
13201 }
13202 unsafe {
13203 preallocated.write_next(out.assume_init_ref());
13204 }
13205 }
13206
13207 ::fidl_next::wire::Table::encode_len(table, max_ord);
13208
13209 Ok(())
13210 }
13211 }
13212
13213 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ExposeConfiguration<'static>, ___E>
13214 for &'a ExposeConfiguration
13215 where
13216 ___E: ::fidl_next::Encoder + ?Sized,
13217 {
13218 #[inline]
13219 fn encode(
13220 self,
13221 encoder: &mut ___E,
13222 out: &mut ::core::mem::MaybeUninit<crate::wire::ExposeConfiguration<'static>>,
13223 _: (),
13224 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13225 ::fidl_next::munge!(let crate::wire::ExposeConfiguration { table } = out);
13226
13227 let max_ord = self.__max_ordinal();
13228
13229 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13230 ::fidl_next::Wire::zero_padding(&mut out);
13231
13232 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13233 ::fidl_next::wire::Envelope,
13234 >(encoder, max_ord);
13235
13236 for i in 1..=max_ord {
13237 match i {
13238 6 => {
13239 if let Some(value) = &self.source_dictionary {
13240 ::fidl_next::wire::Envelope::encode_value::<
13241 ::fidl_next::wire::String<'static>,
13242 ___E,
13243 >(
13244 value, preallocated.encoder, &mut out, 1024
13245 )?;
13246 } else {
13247 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13248 }
13249 }
13250
13251 5 => {
13252 if let Some(value) = &self.availability {
13253 ::fidl_next::wire::Envelope::encode_value::<
13254 crate::wire::Availability,
13255 ___E,
13256 >(
13257 value, preallocated.encoder, &mut out, ()
13258 )?;
13259 } else {
13260 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13261 }
13262 }
13263
13264 4 => {
13265 if let Some(value) = &self.target_name {
13266 ::fidl_next::wire::Envelope::encode_value::<
13267 ::fidl_next::wire::String<'static>,
13268 ___E,
13269 >(
13270 value, preallocated.encoder, &mut out, 100
13271 )?;
13272 } else {
13273 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13274 }
13275 }
13276
13277 3 => {
13278 if let Some(value) = &self.target {
13279 ::fidl_next::wire::Envelope::encode_value::<
13280 crate::wire::Ref<'static>,
13281 ___E,
13282 >(
13283 value, preallocated.encoder, &mut out, ()
13284 )?;
13285 } else {
13286 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13287 }
13288 }
13289
13290 2 => {
13291 if let Some(value) = &self.source_name {
13292 ::fidl_next::wire::Envelope::encode_value::<
13293 ::fidl_next::wire::String<'static>,
13294 ___E,
13295 >(
13296 value, preallocated.encoder, &mut out, 100
13297 )?;
13298 } else {
13299 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13300 }
13301 }
13302
13303 1 => {
13304 if let Some(value) = &self.source {
13305 ::fidl_next::wire::Envelope::encode_value::<
13306 crate::wire::Ref<'static>,
13307 ___E,
13308 >(
13309 value, preallocated.encoder, &mut out, ()
13310 )?;
13311 } else {
13312 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13313 }
13314 }
13315
13316 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
13317 }
13318 unsafe {
13319 preallocated.write_next(out.assume_init_ref());
13320 }
13321 }
13322
13323 ::fidl_next::wire::Table::encode_len(table, max_ord);
13324
13325 Ok(())
13326 }
13327 }
13328
13329 impl<'de> ::fidl_next::FromWire<crate::wire::ExposeConfiguration<'de>> for ExposeConfiguration {
13330 #[inline]
13331 fn from_wire(wire_: crate::wire::ExposeConfiguration<'de>) -> Self {
13332 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
13333
13334 let source = wire_.table.get(1);
13335
13336 let source_name = wire_.table.get(2);
13337
13338 let target = wire_.table.get(3);
13339
13340 let target_name = wire_.table.get(4);
13341
13342 let availability = wire_.table.get(5);
13343
13344 let source_dictionary = wire_.table.get(6);
13345
13346 Self {
13347 source: source.map(|envelope| {
13348 ::fidl_next::FromWire::from_wire(unsafe {
13349 envelope.read_unchecked::<crate::wire::Ref<'de>>()
13350 })
13351 }),
13352
13353 source_name: source_name.map(|envelope| {
13354 ::fidl_next::FromWire::from_wire(unsafe {
13355 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
13356 })
13357 }),
13358
13359 target: target.map(|envelope| {
13360 ::fidl_next::FromWire::from_wire(unsafe {
13361 envelope.read_unchecked::<crate::wire::Ref<'de>>()
13362 })
13363 }),
13364
13365 target_name: target_name.map(|envelope| {
13366 ::fidl_next::FromWire::from_wire(unsafe {
13367 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
13368 })
13369 }),
13370
13371 availability: availability.map(|envelope| {
13372 ::fidl_next::FromWire::from_wire(unsafe {
13373 envelope.read_unchecked::<crate::wire::Availability>()
13374 })
13375 }),
13376
13377 source_dictionary: source_dictionary.map(|envelope| {
13378 ::fidl_next::FromWire::from_wire(unsafe {
13379 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
13380 })
13381 }),
13382 }
13383 }
13384 }
13385
13386 impl<'de> ::fidl_next::FromWireRef<crate::wire::ExposeConfiguration<'de>> for ExposeConfiguration {
13387 #[inline]
13388 fn from_wire_ref(wire: &crate::wire::ExposeConfiguration<'de>) -> Self {
13389 Self {
13390 source: wire.table.get(1).map(|envelope| {
13391 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13392 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13393 })
13394 }),
13395
13396 source_name: wire.table.get(2).map(|envelope| {
13397 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13398 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13399 })
13400 }),
13401
13402 target: wire.table.get(3).map(|envelope| {
13403 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13404 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
13405 })
13406 }),
13407
13408 target_name: wire.table.get(4).map(|envelope| {
13409 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13410 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13411 })
13412 }),
13413
13414 availability: wire.table.get(5).map(|envelope| {
13415 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13416 envelope.deref_unchecked::<crate::wire::Availability>()
13417 })
13418 }),
13419
13420 source_dictionary: wire.table.get(6).map(|envelope| {
13421 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
13422 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
13423 })
13424 }),
13425 }
13426 }
13427 }
13428
13429 #[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"]
13430 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13431 pub enum Expose {
13432 Service(crate::natural::ExposeService),
13433
13434 Protocol(crate::natural::ExposeProtocol),
13435
13436 Directory(crate::natural::ExposeDirectory),
13437
13438 Runner(crate::natural::ExposeRunner),
13439
13440 Resolver(crate::natural::ExposeResolver),
13441
13442 Dictionary(crate::natural::ExposeDictionary),
13443
13444 Config(crate::natural::ExposeConfiguration),
13445
13446 UnknownOrdinal_(u64),
13447 }
13448
13449 impl Expose {
13450 pub fn is_unknown(&self) -> bool {
13451 #[allow(unreachable_patterns)]
13452 match self {
13453 Self::UnknownOrdinal_(_) => true,
13454 _ => false,
13455 }
13456 }
13457 }
13458
13459 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Expose<'static>, ___E> for Expose
13460 where
13461 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
13462 ___E: ::fidl_next::Encoder,
13463 {
13464 #[inline]
13465 fn encode(
13466 self,
13467 encoder: &mut ___E,
13468 out: &mut ::core::mem::MaybeUninit<crate::wire::Expose<'static>>,
13469 _: (),
13470 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13471 ::fidl_next::munge!(let crate::wire::Expose { raw, _phantom: _ } = out);
13472
13473 match self {
13474 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
13475 ___E,
13476 crate::wire::ExposeService<'static>,
13477 >(value, 1, encoder, raw, ())?,
13478
13479 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
13480 ___E,
13481 crate::wire::ExposeProtocol<'static>,
13482 >(value, 2, encoder, raw, ())?,
13483
13484 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
13485 ___E,
13486 crate::wire::ExposeDirectory<'static>,
13487 >(value, 3, encoder, raw, ())?,
13488
13489 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
13490 ___E,
13491 crate::wire::ExposeRunner<'static>,
13492 >(value, 4, encoder, raw, ())?,
13493
13494 Self::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
13495 ___E,
13496 crate::wire::ExposeResolver<'static>,
13497 >(value, 5, encoder, raw, ())?,
13498
13499 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
13500 ___E,
13501 crate::wire::ExposeDictionary<'static>,
13502 >(value, 7, encoder, raw, ())?,
13503
13504 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
13505 ___E,
13506 crate::wire::ExposeConfiguration<'static>,
13507 >(value, 8, encoder, raw, ())?,
13508
13509 Self::UnknownOrdinal_(ordinal) => {
13510 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
13511 }
13512 }
13513
13514 Ok(())
13515 }
13516 }
13517
13518 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Expose<'static>, ___E> for &'a Expose
13519 where
13520 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
13521 ___E: ::fidl_next::Encoder,
13522 {
13523 #[inline]
13524 fn encode(
13525 self,
13526 encoder: &mut ___E,
13527 out: &mut ::core::mem::MaybeUninit<crate::wire::Expose<'static>>,
13528 _: (),
13529 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13530 ::fidl_next::munge!(let crate::wire::Expose { raw, _phantom: _ } = out);
13531
13532 match self {
13533 Expose::Service(value) => ::fidl_next::wire::Union::encode_as::<
13534 ___E,
13535 crate::wire::ExposeService<'static>,
13536 >(value, 1, encoder, raw, ())?,
13537
13538 Expose::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
13539 ___E,
13540 crate::wire::ExposeProtocol<'static>,
13541 >(value, 2, encoder, raw, ())?,
13542
13543 Expose::Directory(value) => ::fidl_next::wire::Union::encode_as::<
13544 ___E,
13545 crate::wire::ExposeDirectory<'static>,
13546 >(value, 3, encoder, raw, ())?,
13547
13548 Expose::Runner(value) => ::fidl_next::wire::Union::encode_as::<
13549 ___E,
13550 crate::wire::ExposeRunner<'static>,
13551 >(value, 4, encoder, raw, ())?,
13552
13553 Expose::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
13554 ___E,
13555 crate::wire::ExposeResolver<'static>,
13556 >(value, 5, encoder, raw, ())?,
13557
13558 Expose::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
13559 ___E,
13560 crate::wire::ExposeDictionary<'static>,
13561 >(value, 7, encoder, raw, ())?,
13562
13563 Expose::Config(value) => ::fidl_next::wire::Union::encode_as::<
13564 ___E,
13565 crate::wire::ExposeConfiguration<'static>,
13566 >(value, 8, encoder, raw, ())?,
13567
13568 Expose::UnknownOrdinal_(ordinal) => {
13569 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
13570 }
13571 }
13572
13573 Ok(())
13574 }
13575 }
13576
13577 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Expose<'static>, ___E> for Expose
13578 where
13579 ___E: ?Sized,
13580 Expose: ::fidl_next::Encode<crate::wire::Expose<'static>, ___E>,
13581 {
13582 #[inline]
13583 fn encode_option(
13584 this: ::core::option::Option<Self>,
13585 encoder: &mut ___E,
13586 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Expose<'static>>,
13587 _: (),
13588 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13589 ::fidl_next::munge!(let crate::wire_optional::Expose { raw, _phantom: _ } = &mut *out);
13590
13591 if let Some(inner) = this {
13592 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
13593 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
13594 } else {
13595 ::fidl_next::wire::Union::encode_absent(raw);
13596 }
13597
13598 Ok(())
13599 }
13600 }
13601
13602 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Expose<'static>, ___E>
13603 for &'a Expose
13604 where
13605 ___E: ?Sized,
13606 &'a Expose: ::fidl_next::Encode<crate::wire::Expose<'static>, ___E>,
13607 {
13608 #[inline]
13609 fn encode_option(
13610 this: ::core::option::Option<Self>,
13611 encoder: &mut ___E,
13612 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Expose<'static>>,
13613 _: (),
13614 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13615 ::fidl_next::munge!(let crate::wire_optional::Expose { raw, _phantom: _ } = &mut *out);
13616
13617 if let Some(inner) = this {
13618 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
13619 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
13620 } else {
13621 ::fidl_next::wire::Union::encode_absent(raw);
13622 }
13623
13624 Ok(())
13625 }
13626 }
13627
13628 impl<'de> ::fidl_next::FromWire<crate::wire::Expose<'de>> for Expose {
13629 #[inline]
13630 fn from_wire(wire: crate::wire::Expose<'de>) -> Self {
13631 let wire = ::core::mem::ManuallyDrop::new(wire);
13632 match wire.raw.ordinal() {
13633 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
13634 wire.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
13635 })),
13636
13637 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
13638 wire.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
13639 })),
13640
13641 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
13642 wire.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
13643 })),
13644
13645 4 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
13646 wire.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
13647 })),
13648
13649 5 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
13650 wire.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
13651 })),
13652
13653 7 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
13654 wire.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
13655 })),
13656
13657 8 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
13658 wire.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
13659 })),
13660
13661 ord => return Self::UnknownOrdinal_(ord as u64),
13662 }
13663 }
13664 }
13665
13666 impl<'de> ::fidl_next::FromWireRef<crate::wire::Expose<'de>> for Expose {
13667 #[inline]
13668 fn from_wire_ref(wire: &crate::wire::Expose<'de>) -> Self {
13669 match wire.raw.ordinal() {
13670 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13671 wire.raw.get().deref_unchecked::<crate::wire::ExposeService<'de>>()
13672 })),
13673
13674 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13675 wire.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'de>>()
13676 })),
13677
13678 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13679 wire.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'de>>()
13680 })),
13681
13682 4 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13683 wire.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'de>>()
13684 })),
13685
13686 5 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13687 wire.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'de>>()
13688 })),
13689
13690 7 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13691 wire.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'de>>()
13692 })),
13693
13694 8 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
13695 wire.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'de>>()
13696 })),
13697
13698 ord => return Self::UnknownOrdinal_(ord as u64),
13699 }
13700 }
13701 }
13702
13703 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>> for Expose {
13704 #[inline]
13705 fn from_wire_option(
13706 wire: crate::wire_optional::Expose<'de>,
13707 ) -> ::core::option::Option<Self> {
13708 if let Some(inner) = wire.into_option() {
13709 Some(::fidl_next::FromWire::from_wire(inner))
13710 } else {
13711 None
13712 }
13713 }
13714 }
13715
13716 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>> for Box<Expose> {
13717 #[inline]
13718 fn from_wire_option(
13719 wire: crate::wire_optional::Expose<'de>,
13720 ) -> ::core::option::Option<Self> {
13721 <
13722 Expose as ::fidl_next::FromWireOption<crate::wire_optional::Expose<'de>>
13723 >::from_wire_option(wire).map(Box::new)
13724 }
13725 }
13726
13727 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Expose<'de>> for Box<Expose> {
13728 #[inline]
13729 fn from_wire_option_ref(
13730 wire: &crate::wire_optional::Expose<'de>,
13731 ) -> ::core::option::Option<Self> {
13732 if let Some(inner) = wire.as_ref() {
13733 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
13734 } else {
13735 None
13736 }
13737 }
13738 }
13739
13740 #[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"]
13741 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
13742 pub struct OfferService {
13743 pub source: ::core::option::Option<crate::natural::Ref>,
13744
13745 pub source_name: ::core::option::Option<::std::string::String>,
13746
13747 pub target: ::core::option::Option<crate::natural::Ref>,
13748
13749 pub target_name: ::core::option::Option<::std::string::String>,
13750
13751 pub source_instance_filter: ::core::option::Option<::std::vec::Vec<::std::string::String>>,
13752
13753 pub renamed_instances: ::core::option::Option<::std::vec::Vec<crate::natural::NameMapping>>,
13754
13755 pub availability: ::core::option::Option<crate::natural::Availability>,
13756
13757 pub source_dictionary: ::core::option::Option<::std::string::String>,
13758
13759 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
13760 }
13761
13762 impl OfferService {
13763 fn __max_ordinal(&self) -> usize {
13764 if self.dependency_type.is_some() {
13765 return 9;
13766 }
13767
13768 if self.source_dictionary.is_some() {
13769 return 8;
13770 }
13771
13772 if self.availability.is_some() {
13773 return 7;
13774 }
13775
13776 if self.renamed_instances.is_some() {
13777 return 6;
13778 }
13779
13780 if self.source_instance_filter.is_some() {
13781 return 5;
13782 }
13783
13784 if self.target_name.is_some() {
13785 return 4;
13786 }
13787
13788 if self.target.is_some() {
13789 return 3;
13790 }
13791
13792 if self.source_name.is_some() {
13793 return 2;
13794 }
13795
13796 if self.source.is_some() {
13797 return 1;
13798 }
13799
13800 0
13801 }
13802 }
13803
13804 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferService<'static>, ___E> for OfferService
13805 where
13806 ___E: ::fidl_next::Encoder + ?Sized,
13807 {
13808 #[inline]
13809 fn encode(
13810 mut self,
13811 encoder: &mut ___E,
13812 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferService<'static>>,
13813 _: (),
13814 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13815 ::fidl_next::munge!(let crate::wire::OfferService { table } = out);
13816
13817 let max_ord = self.__max_ordinal();
13818
13819 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13820 ::fidl_next::Wire::zero_padding(&mut out);
13821
13822 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13823 ::fidl_next::wire::Envelope,
13824 >(encoder, max_ord);
13825
13826 for i in 1..=max_ord {
13827 match i {
13828 9 => {
13829 if let Some(value) = self.dependency_type.take() {
13830 ::fidl_next::wire::Envelope::encode_value::<
13831 crate::wire::DependencyType,
13832 ___E,
13833 >(
13834 value, preallocated.encoder, &mut out, ()
13835 )?;
13836 } else {
13837 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13838 }
13839 }
13840
13841 8 => {
13842 if let Some(value) = self.source_dictionary.take() {
13843 ::fidl_next::wire::Envelope::encode_value::<
13844 ::fidl_next::wire::String<'static>,
13845 ___E,
13846 >(
13847 value, preallocated.encoder, &mut out, 1024
13848 )?;
13849 } else {
13850 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13851 }
13852 }
13853
13854 7 => {
13855 if let Some(value) = self.availability.take() {
13856 ::fidl_next::wire::Envelope::encode_value::<
13857 crate::wire::Availability,
13858 ___E,
13859 >(
13860 value, preallocated.encoder, &mut out, ()
13861 )?;
13862 } else {
13863 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13864 }
13865 }
13866
13867 6 => {
13868 if let Some(value) = self.renamed_instances.take() {
13869 ::fidl_next::wire::Envelope::encode_value::<
13870 ::fidl_next::wire::Vector<
13871 'static,
13872 crate::wire::NameMapping<'static>,
13873 >,
13874 ___E,
13875 >(
13876 value, preallocated.encoder, &mut out, (4294967295, ())
13877 )?;
13878 } else {
13879 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13880 }
13881 }
13882
13883 5 => {
13884 if let Some(value) = self.source_instance_filter.take() {
13885 ::fidl_next::wire::Envelope::encode_value::<
13886 ::fidl_next::wire::Vector<
13887 'static,
13888 ::fidl_next::wire::String<'static>,
13889 >,
13890 ___E,
13891 >(
13892 value, preallocated.encoder, &mut out, (4294967295, 100)
13893 )?;
13894 } else {
13895 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13896 }
13897 }
13898
13899 4 => {
13900 if let Some(value) = self.target_name.take() {
13901 ::fidl_next::wire::Envelope::encode_value::<
13902 ::fidl_next::wire::String<'static>,
13903 ___E,
13904 >(
13905 value, preallocated.encoder, &mut out, 100
13906 )?;
13907 } else {
13908 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13909 }
13910 }
13911
13912 3 => {
13913 if let Some(value) = self.target.take() {
13914 ::fidl_next::wire::Envelope::encode_value::<
13915 crate::wire::Ref<'static>,
13916 ___E,
13917 >(
13918 value, preallocated.encoder, &mut out, ()
13919 )?;
13920 } else {
13921 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13922 }
13923 }
13924
13925 2 => {
13926 if let Some(value) = self.source_name.take() {
13927 ::fidl_next::wire::Envelope::encode_value::<
13928 ::fidl_next::wire::String<'static>,
13929 ___E,
13930 >(
13931 value, preallocated.encoder, &mut out, 100
13932 )?;
13933 } else {
13934 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13935 }
13936 }
13937
13938 1 => {
13939 if let Some(value) = self.source.take() {
13940 ::fidl_next::wire::Envelope::encode_value::<
13941 crate::wire::Ref<'static>,
13942 ___E,
13943 >(
13944 value, preallocated.encoder, &mut out, ()
13945 )?;
13946 } else {
13947 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13948 }
13949 }
13950
13951 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
13952 }
13953 unsafe {
13954 preallocated.write_next(out.assume_init_ref());
13955 }
13956 }
13957
13958 ::fidl_next::wire::Table::encode_len(table, max_ord);
13959
13960 Ok(())
13961 }
13962 }
13963
13964 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferService<'static>, ___E>
13965 for &'a OfferService
13966 where
13967 ___E: ::fidl_next::Encoder + ?Sized,
13968 {
13969 #[inline]
13970 fn encode(
13971 self,
13972 encoder: &mut ___E,
13973 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferService<'static>>,
13974 _: (),
13975 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
13976 ::fidl_next::munge!(let crate::wire::OfferService { table } = out);
13977
13978 let max_ord = self.__max_ordinal();
13979
13980 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
13981 ::fidl_next::Wire::zero_padding(&mut out);
13982
13983 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
13984 ::fidl_next::wire::Envelope,
13985 >(encoder, max_ord);
13986
13987 for i in 1..=max_ord {
13988 match i {
13989 9 => {
13990 if let Some(value) = &self.dependency_type {
13991 ::fidl_next::wire::Envelope::encode_value::<
13992 crate::wire::DependencyType,
13993 ___E,
13994 >(
13995 value, preallocated.encoder, &mut out, ()
13996 )?;
13997 } else {
13998 ::fidl_next::wire::Envelope::encode_zero(&mut out)
13999 }
14000 }
14001
14002 8 => {
14003 if let Some(value) = &self.source_dictionary {
14004 ::fidl_next::wire::Envelope::encode_value::<
14005 ::fidl_next::wire::String<'static>,
14006 ___E,
14007 >(
14008 value, preallocated.encoder, &mut out, 1024
14009 )?;
14010 } else {
14011 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14012 }
14013 }
14014
14015 7 => {
14016 if let Some(value) = &self.availability {
14017 ::fidl_next::wire::Envelope::encode_value::<
14018 crate::wire::Availability,
14019 ___E,
14020 >(
14021 value, preallocated.encoder, &mut out, ()
14022 )?;
14023 } else {
14024 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14025 }
14026 }
14027
14028 6 => {
14029 if let Some(value) = &self.renamed_instances {
14030 ::fidl_next::wire::Envelope::encode_value::<
14031 ::fidl_next::wire::Vector<
14032 'static,
14033 crate::wire::NameMapping<'static>,
14034 >,
14035 ___E,
14036 >(
14037 value, preallocated.encoder, &mut out, (4294967295, ())
14038 )?;
14039 } else {
14040 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14041 }
14042 }
14043
14044 5 => {
14045 if let Some(value) = &self.source_instance_filter {
14046 ::fidl_next::wire::Envelope::encode_value::<
14047 ::fidl_next::wire::Vector<
14048 'static,
14049 ::fidl_next::wire::String<'static>,
14050 >,
14051 ___E,
14052 >(
14053 value, preallocated.encoder, &mut out, (4294967295, 100)
14054 )?;
14055 } else {
14056 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14057 }
14058 }
14059
14060 4 => {
14061 if let Some(value) = &self.target_name {
14062 ::fidl_next::wire::Envelope::encode_value::<
14063 ::fidl_next::wire::String<'static>,
14064 ___E,
14065 >(
14066 value, preallocated.encoder, &mut out, 100
14067 )?;
14068 } else {
14069 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14070 }
14071 }
14072
14073 3 => {
14074 if let Some(value) = &self.target {
14075 ::fidl_next::wire::Envelope::encode_value::<
14076 crate::wire::Ref<'static>,
14077 ___E,
14078 >(
14079 value, preallocated.encoder, &mut out, ()
14080 )?;
14081 } else {
14082 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14083 }
14084 }
14085
14086 2 => {
14087 if let Some(value) = &self.source_name {
14088 ::fidl_next::wire::Envelope::encode_value::<
14089 ::fidl_next::wire::String<'static>,
14090 ___E,
14091 >(
14092 value, preallocated.encoder, &mut out, 100
14093 )?;
14094 } else {
14095 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14096 }
14097 }
14098
14099 1 => {
14100 if let Some(value) = &self.source {
14101 ::fidl_next::wire::Envelope::encode_value::<
14102 crate::wire::Ref<'static>,
14103 ___E,
14104 >(
14105 value, preallocated.encoder, &mut out, ()
14106 )?;
14107 } else {
14108 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14109 }
14110 }
14111
14112 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14113 }
14114 unsafe {
14115 preallocated.write_next(out.assume_init_ref());
14116 }
14117 }
14118
14119 ::fidl_next::wire::Table::encode_len(table, max_ord);
14120
14121 Ok(())
14122 }
14123 }
14124
14125 impl<'de> ::fidl_next::FromWire<crate::wire::OfferService<'de>> for OfferService {
14126 #[inline]
14127 fn from_wire(wire_: crate::wire::OfferService<'de>) -> Self {
14128 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
14129
14130 let source = wire_.table.get(1);
14131
14132 let source_name = wire_.table.get(2);
14133
14134 let target = wire_.table.get(3);
14135
14136 let target_name = wire_.table.get(4);
14137
14138 let source_instance_filter = wire_.table.get(5);
14139
14140 let renamed_instances = wire_.table.get(6);
14141
14142 let availability = wire_.table.get(7);
14143
14144 let source_dictionary = wire_.table.get(8);
14145
14146 let dependency_type = wire_.table.get(9);
14147
14148 Self {
14149
14150
14151 source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
14152 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
14153 )),
14154
14155
14156 source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
14157 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
14158 )),
14159
14160
14161 target: target.map(|envelope| ::fidl_next::FromWire::from_wire(
14162 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
14163 )),
14164
14165
14166 target_name: target_name.map(|envelope| ::fidl_next::FromWire::from_wire(
14167 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
14168 )),
14169
14170
14171 source_instance_filter: source_instance_filter.map(|envelope| ::fidl_next::FromWire::from_wire(
14172 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
14173 )),
14174
14175
14176 renamed_instances: renamed_instances.map(|envelope| ::fidl_next::FromWire::from_wire(
14177 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>() }
14178 )),
14179
14180
14181 availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
14182 unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
14183 )),
14184
14185
14186 source_dictionary: source_dictionary.map(|envelope| ::fidl_next::FromWire::from_wire(
14187 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
14188 )),
14189
14190
14191 dependency_type: dependency_type.map(|envelope| ::fidl_next::FromWire::from_wire(
14192 unsafe { envelope.read_unchecked::<crate::wire::DependencyType>() }
14193 )),
14194
14195 }
14196 }
14197 }
14198
14199 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferService<'de>> for OfferService {
14200 #[inline]
14201 fn from_wire_ref(wire: &crate::wire::OfferService<'de>) -> Self {
14202 Self {
14203
14204
14205 source: wire.table.get(1)
14206 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14207 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
14208 )),
14209
14210
14211 source_name: wire.table.get(2)
14212 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14213 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
14214 )),
14215
14216
14217 target: wire.table.get(3)
14218 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14219 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
14220 )),
14221
14222
14223 target_name: wire.table.get(4)
14224 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14225 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
14226 )),
14227
14228
14229 source_instance_filter: wire.table.get(5)
14230 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14231 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>() }
14232 )),
14233
14234
14235 renamed_instances: wire.table.get(6)
14236 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14237 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>() }
14238 )),
14239
14240
14241 availability: wire.table.get(7)
14242 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14243 unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
14244 )),
14245
14246
14247 source_dictionary: wire.table.get(8)
14248 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14249 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
14250 )),
14251
14252
14253 dependency_type: wire.table.get(9)
14254 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
14255 unsafe { envelope.deref_unchecked::<crate::wire::DependencyType>() }
14256 )),
14257
14258 }
14259 }
14260 }
14261
14262 #[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"]
14263 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
14264 pub struct OfferProtocol {
14265 pub source: ::core::option::Option<crate::natural::Ref>,
14266
14267 pub source_name: ::core::option::Option<::std::string::String>,
14268
14269 pub target: ::core::option::Option<crate::natural::Ref>,
14270
14271 pub target_name: ::core::option::Option<::std::string::String>,
14272
14273 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
14274
14275 pub availability: ::core::option::Option<crate::natural::Availability>,
14276
14277 pub source_dictionary: ::core::option::Option<::std::string::String>,
14278 }
14279
14280 impl OfferProtocol {
14281 fn __max_ordinal(&self) -> usize {
14282 if self.source_dictionary.is_some() {
14283 return 7;
14284 }
14285
14286 if self.availability.is_some() {
14287 return 6;
14288 }
14289
14290 if self.dependency_type.is_some() {
14291 return 5;
14292 }
14293
14294 if self.target_name.is_some() {
14295 return 4;
14296 }
14297
14298 if self.target.is_some() {
14299 return 3;
14300 }
14301
14302 if self.source_name.is_some() {
14303 return 2;
14304 }
14305
14306 if self.source.is_some() {
14307 return 1;
14308 }
14309
14310 0
14311 }
14312 }
14313
14314 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferProtocol<'static>, ___E> for OfferProtocol
14315 where
14316 ___E: ::fidl_next::Encoder + ?Sized,
14317 {
14318 #[inline]
14319 fn encode(
14320 mut self,
14321 encoder: &mut ___E,
14322 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferProtocol<'static>>,
14323 _: (),
14324 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14325 ::fidl_next::munge!(let crate::wire::OfferProtocol { table } = out);
14326
14327 let max_ord = self.__max_ordinal();
14328
14329 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14330 ::fidl_next::Wire::zero_padding(&mut out);
14331
14332 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14333 ::fidl_next::wire::Envelope,
14334 >(encoder, max_ord);
14335
14336 for i in 1..=max_ord {
14337 match i {
14338 7 => {
14339 if let Some(value) = self.source_dictionary.take() {
14340 ::fidl_next::wire::Envelope::encode_value::<
14341 ::fidl_next::wire::String<'static>,
14342 ___E,
14343 >(
14344 value, preallocated.encoder, &mut out, 1024
14345 )?;
14346 } else {
14347 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14348 }
14349 }
14350
14351 6 => {
14352 if let Some(value) = self.availability.take() {
14353 ::fidl_next::wire::Envelope::encode_value::<
14354 crate::wire::Availability,
14355 ___E,
14356 >(
14357 value, preallocated.encoder, &mut out, ()
14358 )?;
14359 } else {
14360 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14361 }
14362 }
14363
14364 5 => {
14365 if let Some(value) = self.dependency_type.take() {
14366 ::fidl_next::wire::Envelope::encode_value::<
14367 crate::wire::DependencyType,
14368 ___E,
14369 >(
14370 value, preallocated.encoder, &mut out, ()
14371 )?;
14372 } else {
14373 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14374 }
14375 }
14376
14377 4 => {
14378 if let Some(value) = self.target_name.take() {
14379 ::fidl_next::wire::Envelope::encode_value::<
14380 ::fidl_next::wire::String<'static>,
14381 ___E,
14382 >(
14383 value, preallocated.encoder, &mut out, 100
14384 )?;
14385 } else {
14386 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14387 }
14388 }
14389
14390 3 => {
14391 if let Some(value) = self.target.take() {
14392 ::fidl_next::wire::Envelope::encode_value::<
14393 crate::wire::Ref<'static>,
14394 ___E,
14395 >(
14396 value, preallocated.encoder, &mut out, ()
14397 )?;
14398 } else {
14399 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14400 }
14401 }
14402
14403 2 => {
14404 if let Some(value) = self.source_name.take() {
14405 ::fidl_next::wire::Envelope::encode_value::<
14406 ::fidl_next::wire::String<'static>,
14407 ___E,
14408 >(
14409 value, preallocated.encoder, &mut out, 100
14410 )?;
14411 } else {
14412 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14413 }
14414 }
14415
14416 1 => {
14417 if let Some(value) = self.source.take() {
14418 ::fidl_next::wire::Envelope::encode_value::<
14419 crate::wire::Ref<'static>,
14420 ___E,
14421 >(
14422 value, preallocated.encoder, &mut out, ()
14423 )?;
14424 } else {
14425 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14426 }
14427 }
14428
14429 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14430 }
14431 unsafe {
14432 preallocated.write_next(out.assume_init_ref());
14433 }
14434 }
14435
14436 ::fidl_next::wire::Table::encode_len(table, max_ord);
14437
14438 Ok(())
14439 }
14440 }
14441
14442 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferProtocol<'static>, ___E>
14443 for &'a OfferProtocol
14444 where
14445 ___E: ::fidl_next::Encoder + ?Sized,
14446 {
14447 #[inline]
14448 fn encode(
14449 self,
14450 encoder: &mut ___E,
14451 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferProtocol<'static>>,
14452 _: (),
14453 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14454 ::fidl_next::munge!(let crate::wire::OfferProtocol { table } = out);
14455
14456 let max_ord = self.__max_ordinal();
14457
14458 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14459 ::fidl_next::Wire::zero_padding(&mut out);
14460
14461 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14462 ::fidl_next::wire::Envelope,
14463 >(encoder, max_ord);
14464
14465 for i in 1..=max_ord {
14466 match i {
14467 7 => {
14468 if let Some(value) = &self.source_dictionary {
14469 ::fidl_next::wire::Envelope::encode_value::<
14470 ::fidl_next::wire::String<'static>,
14471 ___E,
14472 >(
14473 value, preallocated.encoder, &mut out, 1024
14474 )?;
14475 } else {
14476 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14477 }
14478 }
14479
14480 6 => {
14481 if let Some(value) = &self.availability {
14482 ::fidl_next::wire::Envelope::encode_value::<
14483 crate::wire::Availability,
14484 ___E,
14485 >(
14486 value, preallocated.encoder, &mut out, ()
14487 )?;
14488 } else {
14489 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14490 }
14491 }
14492
14493 5 => {
14494 if let Some(value) = &self.dependency_type {
14495 ::fidl_next::wire::Envelope::encode_value::<
14496 crate::wire::DependencyType,
14497 ___E,
14498 >(
14499 value, preallocated.encoder, &mut out, ()
14500 )?;
14501 } else {
14502 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14503 }
14504 }
14505
14506 4 => {
14507 if let Some(value) = &self.target_name {
14508 ::fidl_next::wire::Envelope::encode_value::<
14509 ::fidl_next::wire::String<'static>,
14510 ___E,
14511 >(
14512 value, preallocated.encoder, &mut out, 100
14513 )?;
14514 } else {
14515 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14516 }
14517 }
14518
14519 3 => {
14520 if let Some(value) = &self.target {
14521 ::fidl_next::wire::Envelope::encode_value::<
14522 crate::wire::Ref<'static>,
14523 ___E,
14524 >(
14525 value, preallocated.encoder, &mut out, ()
14526 )?;
14527 } else {
14528 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14529 }
14530 }
14531
14532 2 => {
14533 if let Some(value) = &self.source_name {
14534 ::fidl_next::wire::Envelope::encode_value::<
14535 ::fidl_next::wire::String<'static>,
14536 ___E,
14537 >(
14538 value, preallocated.encoder, &mut out, 100
14539 )?;
14540 } else {
14541 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14542 }
14543 }
14544
14545 1 => {
14546 if let Some(value) = &self.source {
14547 ::fidl_next::wire::Envelope::encode_value::<
14548 crate::wire::Ref<'static>,
14549 ___E,
14550 >(
14551 value, preallocated.encoder, &mut out, ()
14552 )?;
14553 } else {
14554 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14555 }
14556 }
14557
14558 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14559 }
14560 unsafe {
14561 preallocated.write_next(out.assume_init_ref());
14562 }
14563 }
14564
14565 ::fidl_next::wire::Table::encode_len(table, max_ord);
14566
14567 Ok(())
14568 }
14569 }
14570
14571 impl<'de> ::fidl_next::FromWire<crate::wire::OfferProtocol<'de>> for OfferProtocol {
14572 #[inline]
14573 fn from_wire(wire_: crate::wire::OfferProtocol<'de>) -> Self {
14574 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
14575
14576 let source = wire_.table.get(1);
14577
14578 let source_name = wire_.table.get(2);
14579
14580 let target = wire_.table.get(3);
14581
14582 let target_name = wire_.table.get(4);
14583
14584 let dependency_type = wire_.table.get(5);
14585
14586 let availability = wire_.table.get(6);
14587
14588 let source_dictionary = wire_.table.get(7);
14589
14590 Self {
14591 source: source.map(|envelope| {
14592 ::fidl_next::FromWire::from_wire(unsafe {
14593 envelope.read_unchecked::<crate::wire::Ref<'de>>()
14594 })
14595 }),
14596
14597 source_name: source_name.map(|envelope| {
14598 ::fidl_next::FromWire::from_wire(unsafe {
14599 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14600 })
14601 }),
14602
14603 target: target.map(|envelope| {
14604 ::fidl_next::FromWire::from_wire(unsafe {
14605 envelope.read_unchecked::<crate::wire::Ref<'de>>()
14606 })
14607 }),
14608
14609 target_name: target_name.map(|envelope| {
14610 ::fidl_next::FromWire::from_wire(unsafe {
14611 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14612 })
14613 }),
14614
14615 dependency_type: dependency_type.map(|envelope| {
14616 ::fidl_next::FromWire::from_wire(unsafe {
14617 envelope.read_unchecked::<crate::wire::DependencyType>()
14618 })
14619 }),
14620
14621 availability: availability.map(|envelope| {
14622 ::fidl_next::FromWire::from_wire(unsafe {
14623 envelope.read_unchecked::<crate::wire::Availability>()
14624 })
14625 }),
14626
14627 source_dictionary: source_dictionary.map(|envelope| {
14628 ::fidl_next::FromWire::from_wire(unsafe {
14629 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
14630 })
14631 }),
14632 }
14633 }
14634 }
14635
14636 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferProtocol<'de>> for OfferProtocol {
14637 #[inline]
14638 fn from_wire_ref(wire: &crate::wire::OfferProtocol<'de>) -> Self {
14639 Self {
14640 source: wire.table.get(1).map(|envelope| {
14641 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14642 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
14643 })
14644 }),
14645
14646 source_name: wire.table.get(2).map(|envelope| {
14647 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14648 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
14649 })
14650 }),
14651
14652 target: wire.table.get(3).map(|envelope| {
14653 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14654 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
14655 })
14656 }),
14657
14658 target_name: wire.table.get(4).map(|envelope| {
14659 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14660 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
14661 })
14662 }),
14663
14664 dependency_type: wire.table.get(5).map(|envelope| {
14665 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14666 envelope.deref_unchecked::<crate::wire::DependencyType>()
14667 })
14668 }),
14669
14670 availability: wire.table.get(6).map(|envelope| {
14671 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14672 envelope.deref_unchecked::<crate::wire::Availability>()
14673 })
14674 }),
14675
14676 source_dictionary: wire.table.get(7).map(|envelope| {
14677 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
14678 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
14679 })
14680 }),
14681 }
14682 }
14683 }
14684
14685 #[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"]
14686 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
14687 pub struct OfferDirectory {
14688 pub source: ::core::option::Option<crate::natural::Ref>,
14689
14690 pub source_name: ::core::option::Option<::std::string::String>,
14691
14692 pub target: ::core::option::Option<crate::natural::Ref>,
14693
14694 pub target_name: ::core::option::Option<::std::string::String>,
14695
14696 pub rights: ::core::option::Option<::fidl_next_common_fuchsia_io::natural::Operations>,
14697
14698 pub subdir: ::core::option::Option<::std::string::String>,
14699
14700 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
14701
14702 pub availability: ::core::option::Option<crate::natural::Availability>,
14703
14704 pub source_dictionary: ::core::option::Option<::std::string::String>,
14705 }
14706
14707 impl OfferDirectory {
14708 fn __max_ordinal(&self) -> usize {
14709 if self.source_dictionary.is_some() {
14710 return 9;
14711 }
14712
14713 if self.availability.is_some() {
14714 return 8;
14715 }
14716
14717 if self.dependency_type.is_some() {
14718 return 7;
14719 }
14720
14721 if self.subdir.is_some() {
14722 return 6;
14723 }
14724
14725 if self.rights.is_some() {
14726 return 5;
14727 }
14728
14729 if self.target_name.is_some() {
14730 return 4;
14731 }
14732
14733 if self.target.is_some() {
14734 return 3;
14735 }
14736
14737 if self.source_name.is_some() {
14738 return 2;
14739 }
14740
14741 if self.source.is_some() {
14742 return 1;
14743 }
14744
14745 0
14746 }
14747 }
14748
14749 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferDirectory<'static>, ___E> for OfferDirectory
14750 where
14751 ___E: ::fidl_next::Encoder + ?Sized,
14752 {
14753 #[inline]
14754 fn encode(
14755 mut self,
14756 encoder: &mut ___E,
14757 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDirectory<'static>>,
14758 _: (),
14759 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14760 ::fidl_next::munge!(let crate::wire::OfferDirectory { table } = out);
14761
14762 let max_ord = self.__max_ordinal();
14763
14764 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14765 ::fidl_next::Wire::zero_padding(&mut out);
14766
14767 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14768 ::fidl_next::wire::Envelope,
14769 >(encoder, max_ord);
14770
14771 for i in 1..=max_ord {
14772 match i {
14773 9 => {
14774 if let Some(value) = self.source_dictionary.take() {
14775 ::fidl_next::wire::Envelope::encode_value::<
14776 ::fidl_next::wire::String<'static>,
14777 ___E,
14778 >(
14779 value, preallocated.encoder, &mut out, 1024
14780 )?;
14781 } else {
14782 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14783 }
14784 }
14785
14786 8 => {
14787 if let Some(value) = self.availability.take() {
14788 ::fidl_next::wire::Envelope::encode_value::<
14789 crate::wire::Availability,
14790 ___E,
14791 >(
14792 value, preallocated.encoder, &mut out, ()
14793 )?;
14794 } else {
14795 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14796 }
14797 }
14798
14799 7 => {
14800 if let Some(value) = self.dependency_type.take() {
14801 ::fidl_next::wire::Envelope::encode_value::<
14802 crate::wire::DependencyType,
14803 ___E,
14804 >(
14805 value, preallocated.encoder, &mut out, ()
14806 )?;
14807 } else {
14808 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14809 }
14810 }
14811
14812 6 => {
14813 if let Some(value) = self.subdir.take() {
14814 ::fidl_next::wire::Envelope::encode_value::<
14815 ::fidl_next::wire::String<'static>,
14816 ___E,
14817 >(
14818 value, preallocated.encoder, &mut out, 1024
14819 )?;
14820 } else {
14821 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14822 }
14823 }
14824
14825 5 => {
14826 if let Some(value) = self.rights.take() {
14827 ::fidl_next::wire::Envelope::encode_value::<
14828 ::fidl_next_common_fuchsia_io::wire::Operations,
14829 ___E,
14830 >(
14831 value, preallocated.encoder, &mut out, ()
14832 )?;
14833 } else {
14834 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14835 }
14836 }
14837
14838 4 => {
14839 if let Some(value) = self.target_name.take() {
14840 ::fidl_next::wire::Envelope::encode_value::<
14841 ::fidl_next::wire::String<'static>,
14842 ___E,
14843 >(
14844 value, preallocated.encoder, &mut out, 100
14845 )?;
14846 } else {
14847 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14848 }
14849 }
14850
14851 3 => {
14852 if let Some(value) = self.target.take() {
14853 ::fidl_next::wire::Envelope::encode_value::<
14854 crate::wire::Ref<'static>,
14855 ___E,
14856 >(
14857 value, preallocated.encoder, &mut out, ()
14858 )?;
14859 } else {
14860 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14861 }
14862 }
14863
14864 2 => {
14865 if let Some(value) = self.source_name.take() {
14866 ::fidl_next::wire::Envelope::encode_value::<
14867 ::fidl_next::wire::String<'static>,
14868 ___E,
14869 >(
14870 value, preallocated.encoder, &mut out, 100
14871 )?;
14872 } else {
14873 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14874 }
14875 }
14876
14877 1 => {
14878 if let Some(value) = self.source.take() {
14879 ::fidl_next::wire::Envelope::encode_value::<
14880 crate::wire::Ref<'static>,
14881 ___E,
14882 >(
14883 value, preallocated.encoder, &mut out, ()
14884 )?;
14885 } else {
14886 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14887 }
14888 }
14889
14890 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
14891 }
14892 unsafe {
14893 preallocated.write_next(out.assume_init_ref());
14894 }
14895 }
14896
14897 ::fidl_next::wire::Table::encode_len(table, max_ord);
14898
14899 Ok(())
14900 }
14901 }
14902
14903 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferDirectory<'static>, ___E>
14904 for &'a OfferDirectory
14905 where
14906 ___E: ::fidl_next::Encoder + ?Sized,
14907 {
14908 #[inline]
14909 fn encode(
14910 self,
14911 encoder: &mut ___E,
14912 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDirectory<'static>>,
14913 _: (),
14914 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
14915 ::fidl_next::munge!(let crate::wire::OfferDirectory { table } = out);
14916
14917 let max_ord = self.__max_ordinal();
14918
14919 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
14920 ::fidl_next::Wire::zero_padding(&mut out);
14921
14922 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
14923 ::fidl_next::wire::Envelope,
14924 >(encoder, max_ord);
14925
14926 for i in 1..=max_ord {
14927 match i {
14928 9 => {
14929 if let Some(value) = &self.source_dictionary {
14930 ::fidl_next::wire::Envelope::encode_value::<
14931 ::fidl_next::wire::String<'static>,
14932 ___E,
14933 >(
14934 value, preallocated.encoder, &mut out, 1024
14935 )?;
14936 } else {
14937 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14938 }
14939 }
14940
14941 8 => {
14942 if let Some(value) = &self.availability {
14943 ::fidl_next::wire::Envelope::encode_value::<
14944 crate::wire::Availability,
14945 ___E,
14946 >(
14947 value, preallocated.encoder, &mut out, ()
14948 )?;
14949 } else {
14950 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14951 }
14952 }
14953
14954 7 => {
14955 if let Some(value) = &self.dependency_type {
14956 ::fidl_next::wire::Envelope::encode_value::<
14957 crate::wire::DependencyType,
14958 ___E,
14959 >(
14960 value, preallocated.encoder, &mut out, ()
14961 )?;
14962 } else {
14963 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14964 }
14965 }
14966
14967 6 => {
14968 if let Some(value) = &self.subdir {
14969 ::fidl_next::wire::Envelope::encode_value::<
14970 ::fidl_next::wire::String<'static>,
14971 ___E,
14972 >(
14973 value, preallocated.encoder, &mut out, 1024
14974 )?;
14975 } else {
14976 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14977 }
14978 }
14979
14980 5 => {
14981 if let Some(value) = &self.rights {
14982 ::fidl_next::wire::Envelope::encode_value::<
14983 ::fidl_next_common_fuchsia_io::wire::Operations,
14984 ___E,
14985 >(
14986 value, preallocated.encoder, &mut out, ()
14987 )?;
14988 } else {
14989 ::fidl_next::wire::Envelope::encode_zero(&mut out)
14990 }
14991 }
14992
14993 4 => {
14994 if let Some(value) = &self.target_name {
14995 ::fidl_next::wire::Envelope::encode_value::<
14996 ::fidl_next::wire::String<'static>,
14997 ___E,
14998 >(
14999 value, preallocated.encoder, &mut out, 100
15000 )?;
15001 } else {
15002 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15003 }
15004 }
15005
15006 3 => {
15007 if let Some(value) = &self.target {
15008 ::fidl_next::wire::Envelope::encode_value::<
15009 crate::wire::Ref<'static>,
15010 ___E,
15011 >(
15012 value, preallocated.encoder, &mut out, ()
15013 )?;
15014 } else {
15015 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15016 }
15017 }
15018
15019 2 => {
15020 if let Some(value) = &self.source_name {
15021 ::fidl_next::wire::Envelope::encode_value::<
15022 ::fidl_next::wire::String<'static>,
15023 ___E,
15024 >(
15025 value, preallocated.encoder, &mut out, 100
15026 )?;
15027 } else {
15028 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15029 }
15030 }
15031
15032 1 => {
15033 if let Some(value) = &self.source {
15034 ::fidl_next::wire::Envelope::encode_value::<
15035 crate::wire::Ref<'static>,
15036 ___E,
15037 >(
15038 value, preallocated.encoder, &mut out, ()
15039 )?;
15040 } else {
15041 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15042 }
15043 }
15044
15045 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15046 }
15047 unsafe {
15048 preallocated.write_next(out.assume_init_ref());
15049 }
15050 }
15051
15052 ::fidl_next::wire::Table::encode_len(table, max_ord);
15053
15054 Ok(())
15055 }
15056 }
15057
15058 impl<'de> ::fidl_next::FromWire<crate::wire::OfferDirectory<'de>> for OfferDirectory {
15059 #[inline]
15060 fn from_wire(wire_: crate::wire::OfferDirectory<'de>) -> Self {
15061 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15062
15063 let source = wire_.table.get(1);
15064
15065 let source_name = wire_.table.get(2);
15066
15067 let target = wire_.table.get(3);
15068
15069 let target_name = wire_.table.get(4);
15070
15071 let rights = wire_.table.get(5);
15072
15073 let subdir = wire_.table.get(6);
15074
15075 let dependency_type = wire_.table.get(7);
15076
15077 let availability = wire_.table.get(8);
15078
15079 let source_dictionary = wire_.table.get(9);
15080
15081 Self {
15082 source: source.map(|envelope| {
15083 ::fidl_next::FromWire::from_wire(unsafe {
15084 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15085 })
15086 }),
15087
15088 source_name: source_name.map(|envelope| {
15089 ::fidl_next::FromWire::from_wire(unsafe {
15090 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15091 })
15092 }),
15093
15094 target: target.map(|envelope| {
15095 ::fidl_next::FromWire::from_wire(unsafe {
15096 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15097 })
15098 }),
15099
15100 target_name: target_name.map(|envelope| {
15101 ::fidl_next::FromWire::from_wire(unsafe {
15102 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15103 })
15104 }),
15105
15106 rights: rights.map(|envelope| {
15107 ::fidl_next::FromWire::from_wire(unsafe {
15108 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
15109 })
15110 }),
15111
15112 subdir: subdir.map(|envelope| {
15113 ::fidl_next::FromWire::from_wire(unsafe {
15114 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15115 })
15116 }),
15117
15118 dependency_type: dependency_type.map(|envelope| {
15119 ::fidl_next::FromWire::from_wire(unsafe {
15120 envelope.read_unchecked::<crate::wire::DependencyType>()
15121 })
15122 }),
15123
15124 availability: availability.map(|envelope| {
15125 ::fidl_next::FromWire::from_wire(unsafe {
15126 envelope.read_unchecked::<crate::wire::Availability>()
15127 })
15128 }),
15129
15130 source_dictionary: source_dictionary.map(|envelope| {
15131 ::fidl_next::FromWire::from_wire(unsafe {
15132 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15133 })
15134 }),
15135 }
15136 }
15137 }
15138
15139 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferDirectory<'de>> for OfferDirectory {
15140 #[inline]
15141 fn from_wire_ref(wire: &crate::wire::OfferDirectory<'de>) -> Self {
15142 Self {
15143 source: wire.table.get(1).map(|envelope| {
15144 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15145 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15146 })
15147 }),
15148
15149 source_name: wire.table.get(2).map(|envelope| {
15150 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15151 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15152 })
15153 }),
15154
15155 target: wire.table.get(3).map(|envelope| {
15156 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15157 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15158 })
15159 }),
15160
15161 target_name: wire.table.get(4).map(|envelope| {
15162 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15163 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15164 })
15165 }),
15166
15167 rights: wire.table.get(5).map(|envelope| {
15168 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15169 envelope
15170 .deref_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
15171 })
15172 }),
15173
15174 subdir: wire.table.get(6).map(|envelope| {
15175 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15176 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15177 })
15178 }),
15179
15180 dependency_type: wire.table.get(7).map(|envelope| {
15181 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15182 envelope.deref_unchecked::<crate::wire::DependencyType>()
15183 })
15184 }),
15185
15186 availability: wire.table.get(8).map(|envelope| {
15187 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15188 envelope.deref_unchecked::<crate::wire::Availability>()
15189 })
15190 }),
15191
15192 source_dictionary: wire.table.get(9).map(|envelope| {
15193 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15194 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15195 })
15196 }),
15197 }
15198 }
15199 }
15200
15201 #[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"]
15202 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15203 pub struct OfferStorage {
15204 pub source_name: ::core::option::Option<::std::string::String>,
15205
15206 pub source: ::core::option::Option<crate::natural::Ref>,
15207
15208 pub target: ::core::option::Option<crate::natural::Ref>,
15209
15210 pub target_name: ::core::option::Option<::std::string::String>,
15211
15212 pub availability: ::core::option::Option<crate::natural::Availability>,
15213 }
15214
15215 impl OfferStorage {
15216 fn __max_ordinal(&self) -> usize {
15217 if self.availability.is_some() {
15218 return 5;
15219 }
15220
15221 if self.target_name.is_some() {
15222 return 4;
15223 }
15224
15225 if self.target.is_some() {
15226 return 3;
15227 }
15228
15229 if self.source.is_some() {
15230 return 2;
15231 }
15232
15233 if self.source_name.is_some() {
15234 return 1;
15235 }
15236
15237 0
15238 }
15239 }
15240
15241 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferStorage<'static>, ___E> for OfferStorage
15242 where
15243 ___E: ::fidl_next::Encoder + ?Sized,
15244 {
15245 #[inline]
15246 fn encode(
15247 mut self,
15248 encoder: &mut ___E,
15249 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferStorage<'static>>,
15250 _: (),
15251 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15252 ::fidl_next::munge!(let crate::wire::OfferStorage { table } = out);
15253
15254 let max_ord = self.__max_ordinal();
15255
15256 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15257 ::fidl_next::Wire::zero_padding(&mut out);
15258
15259 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15260 ::fidl_next::wire::Envelope,
15261 >(encoder, max_ord);
15262
15263 for i in 1..=max_ord {
15264 match i {
15265 5 => {
15266 if let Some(value) = self.availability.take() {
15267 ::fidl_next::wire::Envelope::encode_value::<
15268 crate::wire::Availability,
15269 ___E,
15270 >(
15271 value, preallocated.encoder, &mut out, ()
15272 )?;
15273 } else {
15274 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15275 }
15276 }
15277
15278 4 => {
15279 if let Some(value) = self.target_name.take() {
15280 ::fidl_next::wire::Envelope::encode_value::<
15281 ::fidl_next::wire::String<'static>,
15282 ___E,
15283 >(
15284 value, preallocated.encoder, &mut out, 100
15285 )?;
15286 } else {
15287 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15288 }
15289 }
15290
15291 3 => {
15292 if let Some(value) = self.target.take() {
15293 ::fidl_next::wire::Envelope::encode_value::<
15294 crate::wire::Ref<'static>,
15295 ___E,
15296 >(
15297 value, preallocated.encoder, &mut out, ()
15298 )?;
15299 } else {
15300 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15301 }
15302 }
15303
15304 2 => {
15305 if let Some(value) = self.source.take() {
15306 ::fidl_next::wire::Envelope::encode_value::<
15307 crate::wire::Ref<'static>,
15308 ___E,
15309 >(
15310 value, preallocated.encoder, &mut out, ()
15311 )?;
15312 } else {
15313 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15314 }
15315 }
15316
15317 1 => {
15318 if let Some(value) = self.source_name.take() {
15319 ::fidl_next::wire::Envelope::encode_value::<
15320 ::fidl_next::wire::String<'static>,
15321 ___E,
15322 >(
15323 value, preallocated.encoder, &mut out, 100
15324 )?;
15325 } else {
15326 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15327 }
15328 }
15329
15330 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15331 }
15332 unsafe {
15333 preallocated.write_next(out.assume_init_ref());
15334 }
15335 }
15336
15337 ::fidl_next::wire::Table::encode_len(table, max_ord);
15338
15339 Ok(())
15340 }
15341 }
15342
15343 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferStorage<'static>, ___E>
15344 for &'a OfferStorage
15345 where
15346 ___E: ::fidl_next::Encoder + ?Sized,
15347 {
15348 #[inline]
15349 fn encode(
15350 self,
15351 encoder: &mut ___E,
15352 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferStorage<'static>>,
15353 _: (),
15354 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15355 ::fidl_next::munge!(let crate::wire::OfferStorage { table } = out);
15356
15357 let max_ord = self.__max_ordinal();
15358
15359 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15360 ::fidl_next::Wire::zero_padding(&mut out);
15361
15362 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15363 ::fidl_next::wire::Envelope,
15364 >(encoder, max_ord);
15365
15366 for i in 1..=max_ord {
15367 match i {
15368 5 => {
15369 if let Some(value) = &self.availability {
15370 ::fidl_next::wire::Envelope::encode_value::<
15371 crate::wire::Availability,
15372 ___E,
15373 >(
15374 value, preallocated.encoder, &mut out, ()
15375 )?;
15376 } else {
15377 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15378 }
15379 }
15380
15381 4 => {
15382 if let Some(value) = &self.target_name {
15383 ::fidl_next::wire::Envelope::encode_value::<
15384 ::fidl_next::wire::String<'static>,
15385 ___E,
15386 >(
15387 value, preallocated.encoder, &mut out, 100
15388 )?;
15389 } else {
15390 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15391 }
15392 }
15393
15394 3 => {
15395 if let Some(value) = &self.target {
15396 ::fidl_next::wire::Envelope::encode_value::<
15397 crate::wire::Ref<'static>,
15398 ___E,
15399 >(
15400 value, preallocated.encoder, &mut out, ()
15401 )?;
15402 } else {
15403 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15404 }
15405 }
15406
15407 2 => {
15408 if let Some(value) = &self.source {
15409 ::fidl_next::wire::Envelope::encode_value::<
15410 crate::wire::Ref<'static>,
15411 ___E,
15412 >(
15413 value, preallocated.encoder, &mut out, ()
15414 )?;
15415 } else {
15416 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15417 }
15418 }
15419
15420 1 => {
15421 if let Some(value) = &self.source_name {
15422 ::fidl_next::wire::Envelope::encode_value::<
15423 ::fidl_next::wire::String<'static>,
15424 ___E,
15425 >(
15426 value, preallocated.encoder, &mut out, 100
15427 )?;
15428 } else {
15429 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15430 }
15431 }
15432
15433 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15434 }
15435 unsafe {
15436 preallocated.write_next(out.assume_init_ref());
15437 }
15438 }
15439
15440 ::fidl_next::wire::Table::encode_len(table, max_ord);
15441
15442 Ok(())
15443 }
15444 }
15445
15446 impl<'de> ::fidl_next::FromWire<crate::wire::OfferStorage<'de>> for OfferStorage {
15447 #[inline]
15448 fn from_wire(wire_: crate::wire::OfferStorage<'de>) -> Self {
15449 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15450
15451 let source_name = wire_.table.get(1);
15452
15453 let source = wire_.table.get(2);
15454
15455 let target = wire_.table.get(3);
15456
15457 let target_name = wire_.table.get(4);
15458
15459 let availability = wire_.table.get(5);
15460
15461 Self {
15462 source_name: source_name.map(|envelope| {
15463 ::fidl_next::FromWire::from_wire(unsafe {
15464 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15465 })
15466 }),
15467
15468 source: source.map(|envelope| {
15469 ::fidl_next::FromWire::from_wire(unsafe {
15470 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15471 })
15472 }),
15473
15474 target: target.map(|envelope| {
15475 ::fidl_next::FromWire::from_wire(unsafe {
15476 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15477 })
15478 }),
15479
15480 target_name: target_name.map(|envelope| {
15481 ::fidl_next::FromWire::from_wire(unsafe {
15482 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15483 })
15484 }),
15485
15486 availability: availability.map(|envelope| {
15487 ::fidl_next::FromWire::from_wire(unsafe {
15488 envelope.read_unchecked::<crate::wire::Availability>()
15489 })
15490 }),
15491 }
15492 }
15493 }
15494
15495 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferStorage<'de>> for OfferStorage {
15496 #[inline]
15497 fn from_wire_ref(wire: &crate::wire::OfferStorage<'de>) -> Self {
15498 Self {
15499 source_name: wire.table.get(1).map(|envelope| {
15500 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15501 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15502 })
15503 }),
15504
15505 source: wire.table.get(2).map(|envelope| {
15506 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15507 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15508 })
15509 }),
15510
15511 target: wire.table.get(3).map(|envelope| {
15512 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15513 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15514 })
15515 }),
15516
15517 target_name: wire.table.get(4).map(|envelope| {
15518 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15519 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15520 })
15521 }),
15522
15523 availability: wire.table.get(5).map(|envelope| {
15524 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15525 envelope.deref_unchecked::<crate::wire::Availability>()
15526 })
15527 }),
15528 }
15529 }
15530 }
15531
15532 #[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"]
15533 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15534 pub struct OfferRunner {
15535 pub source: ::core::option::Option<crate::natural::Ref>,
15536
15537 pub source_name: ::core::option::Option<::std::string::String>,
15538
15539 pub target: ::core::option::Option<crate::natural::Ref>,
15540
15541 pub target_name: ::core::option::Option<::std::string::String>,
15542
15543 pub source_dictionary: ::core::option::Option<::std::string::String>,
15544 }
15545
15546 impl OfferRunner {
15547 fn __max_ordinal(&self) -> usize {
15548 if self.source_dictionary.is_some() {
15549 return 5;
15550 }
15551
15552 if self.target_name.is_some() {
15553 return 4;
15554 }
15555
15556 if self.target.is_some() {
15557 return 3;
15558 }
15559
15560 if self.source_name.is_some() {
15561 return 2;
15562 }
15563
15564 if self.source.is_some() {
15565 return 1;
15566 }
15567
15568 0
15569 }
15570 }
15571
15572 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferRunner<'static>, ___E> for OfferRunner
15573 where
15574 ___E: ::fidl_next::Encoder + ?Sized,
15575 {
15576 #[inline]
15577 fn encode(
15578 mut self,
15579 encoder: &mut ___E,
15580 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferRunner<'static>>,
15581 _: (),
15582 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15583 ::fidl_next::munge!(let crate::wire::OfferRunner { table } = out);
15584
15585 let max_ord = self.__max_ordinal();
15586
15587 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15588 ::fidl_next::Wire::zero_padding(&mut out);
15589
15590 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15591 ::fidl_next::wire::Envelope,
15592 >(encoder, max_ord);
15593
15594 for i in 1..=max_ord {
15595 match i {
15596 5 => {
15597 if let Some(value) = self.source_dictionary.take() {
15598 ::fidl_next::wire::Envelope::encode_value::<
15599 ::fidl_next::wire::String<'static>,
15600 ___E,
15601 >(
15602 value, preallocated.encoder, &mut out, 1024
15603 )?;
15604 } else {
15605 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15606 }
15607 }
15608
15609 4 => {
15610 if let Some(value) = self.target_name.take() {
15611 ::fidl_next::wire::Envelope::encode_value::<
15612 ::fidl_next::wire::String<'static>,
15613 ___E,
15614 >(
15615 value, preallocated.encoder, &mut out, 100
15616 )?;
15617 } else {
15618 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15619 }
15620 }
15621
15622 3 => {
15623 if let Some(value) = self.target.take() {
15624 ::fidl_next::wire::Envelope::encode_value::<
15625 crate::wire::Ref<'static>,
15626 ___E,
15627 >(
15628 value, preallocated.encoder, &mut out, ()
15629 )?;
15630 } else {
15631 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15632 }
15633 }
15634
15635 2 => {
15636 if let Some(value) = self.source_name.take() {
15637 ::fidl_next::wire::Envelope::encode_value::<
15638 ::fidl_next::wire::String<'static>,
15639 ___E,
15640 >(
15641 value, preallocated.encoder, &mut out, 100
15642 )?;
15643 } else {
15644 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15645 }
15646 }
15647
15648 1 => {
15649 if let Some(value) = self.source.take() {
15650 ::fidl_next::wire::Envelope::encode_value::<
15651 crate::wire::Ref<'static>,
15652 ___E,
15653 >(
15654 value, preallocated.encoder, &mut out, ()
15655 )?;
15656 } else {
15657 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15658 }
15659 }
15660
15661 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15662 }
15663 unsafe {
15664 preallocated.write_next(out.assume_init_ref());
15665 }
15666 }
15667
15668 ::fidl_next::wire::Table::encode_len(table, max_ord);
15669
15670 Ok(())
15671 }
15672 }
15673
15674 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferRunner<'static>, ___E>
15675 for &'a OfferRunner
15676 where
15677 ___E: ::fidl_next::Encoder + ?Sized,
15678 {
15679 #[inline]
15680 fn encode(
15681 self,
15682 encoder: &mut ___E,
15683 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferRunner<'static>>,
15684 _: (),
15685 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15686 ::fidl_next::munge!(let crate::wire::OfferRunner { table } = out);
15687
15688 let max_ord = self.__max_ordinal();
15689
15690 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15691 ::fidl_next::Wire::zero_padding(&mut out);
15692
15693 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15694 ::fidl_next::wire::Envelope,
15695 >(encoder, max_ord);
15696
15697 for i in 1..=max_ord {
15698 match i {
15699 5 => {
15700 if let Some(value) = &self.source_dictionary {
15701 ::fidl_next::wire::Envelope::encode_value::<
15702 ::fidl_next::wire::String<'static>,
15703 ___E,
15704 >(
15705 value, preallocated.encoder, &mut out, 1024
15706 )?;
15707 } else {
15708 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15709 }
15710 }
15711
15712 4 => {
15713 if let Some(value) = &self.target_name {
15714 ::fidl_next::wire::Envelope::encode_value::<
15715 ::fidl_next::wire::String<'static>,
15716 ___E,
15717 >(
15718 value, preallocated.encoder, &mut out, 100
15719 )?;
15720 } else {
15721 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15722 }
15723 }
15724
15725 3 => {
15726 if let Some(value) = &self.target {
15727 ::fidl_next::wire::Envelope::encode_value::<
15728 crate::wire::Ref<'static>,
15729 ___E,
15730 >(
15731 value, preallocated.encoder, &mut out, ()
15732 )?;
15733 } else {
15734 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15735 }
15736 }
15737
15738 2 => {
15739 if let Some(value) = &self.source_name {
15740 ::fidl_next::wire::Envelope::encode_value::<
15741 ::fidl_next::wire::String<'static>,
15742 ___E,
15743 >(
15744 value, preallocated.encoder, &mut out, 100
15745 )?;
15746 } else {
15747 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15748 }
15749 }
15750
15751 1 => {
15752 if let Some(value) = &self.source {
15753 ::fidl_next::wire::Envelope::encode_value::<
15754 crate::wire::Ref<'static>,
15755 ___E,
15756 >(
15757 value, preallocated.encoder, &mut out, ()
15758 )?;
15759 } else {
15760 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15761 }
15762 }
15763
15764 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15765 }
15766 unsafe {
15767 preallocated.write_next(out.assume_init_ref());
15768 }
15769 }
15770
15771 ::fidl_next::wire::Table::encode_len(table, max_ord);
15772
15773 Ok(())
15774 }
15775 }
15776
15777 impl<'de> ::fidl_next::FromWire<crate::wire::OfferRunner<'de>> for OfferRunner {
15778 #[inline]
15779 fn from_wire(wire_: crate::wire::OfferRunner<'de>) -> Self {
15780 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
15781
15782 let source = wire_.table.get(1);
15783
15784 let source_name = wire_.table.get(2);
15785
15786 let target = wire_.table.get(3);
15787
15788 let target_name = wire_.table.get(4);
15789
15790 let source_dictionary = wire_.table.get(5);
15791
15792 Self {
15793 source: source.map(|envelope| {
15794 ::fidl_next::FromWire::from_wire(unsafe {
15795 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15796 })
15797 }),
15798
15799 source_name: source_name.map(|envelope| {
15800 ::fidl_next::FromWire::from_wire(unsafe {
15801 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15802 })
15803 }),
15804
15805 target: target.map(|envelope| {
15806 ::fidl_next::FromWire::from_wire(unsafe {
15807 envelope.read_unchecked::<crate::wire::Ref<'de>>()
15808 })
15809 }),
15810
15811 target_name: target_name.map(|envelope| {
15812 ::fidl_next::FromWire::from_wire(unsafe {
15813 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15814 })
15815 }),
15816
15817 source_dictionary: source_dictionary.map(|envelope| {
15818 ::fidl_next::FromWire::from_wire(unsafe {
15819 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
15820 })
15821 }),
15822 }
15823 }
15824 }
15825
15826 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferRunner<'de>> for OfferRunner {
15827 #[inline]
15828 fn from_wire_ref(wire: &crate::wire::OfferRunner<'de>) -> Self {
15829 Self {
15830 source: wire.table.get(1).map(|envelope| {
15831 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15832 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15833 })
15834 }),
15835
15836 source_name: wire.table.get(2).map(|envelope| {
15837 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15838 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15839 })
15840 }),
15841
15842 target: wire.table.get(3).map(|envelope| {
15843 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15844 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
15845 })
15846 }),
15847
15848 target_name: wire.table.get(4).map(|envelope| {
15849 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15850 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15851 })
15852 }),
15853
15854 source_dictionary: wire.table.get(5).map(|envelope| {
15855 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
15856 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
15857 })
15858 }),
15859 }
15860 }
15861 }
15862
15863 #[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"]
15864 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15865 pub struct OfferResolver {
15866 pub source: ::core::option::Option<crate::natural::Ref>,
15867
15868 pub source_name: ::core::option::Option<::std::string::String>,
15869
15870 pub target: ::core::option::Option<crate::natural::Ref>,
15871
15872 pub target_name: ::core::option::Option<::std::string::String>,
15873
15874 pub source_dictionary: ::core::option::Option<::std::string::String>,
15875 }
15876
15877 impl OfferResolver {
15878 fn __max_ordinal(&self) -> usize {
15879 if self.source_dictionary.is_some() {
15880 return 5;
15881 }
15882
15883 if self.target_name.is_some() {
15884 return 4;
15885 }
15886
15887 if self.target.is_some() {
15888 return 3;
15889 }
15890
15891 if self.source_name.is_some() {
15892 return 2;
15893 }
15894
15895 if self.source.is_some() {
15896 return 1;
15897 }
15898
15899 0
15900 }
15901 }
15902
15903 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferResolver<'static>, ___E> for OfferResolver
15904 where
15905 ___E: ::fidl_next::Encoder + ?Sized,
15906 {
15907 #[inline]
15908 fn encode(
15909 mut self,
15910 encoder: &mut ___E,
15911 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferResolver<'static>>,
15912 _: (),
15913 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
15914 ::fidl_next::munge!(let crate::wire::OfferResolver { table } = out);
15915
15916 let max_ord = self.__max_ordinal();
15917
15918 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
15919 ::fidl_next::Wire::zero_padding(&mut out);
15920
15921 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
15922 ::fidl_next::wire::Envelope,
15923 >(encoder, max_ord);
15924
15925 for i in 1..=max_ord {
15926 match i {
15927 5 => {
15928 if let Some(value) = self.source_dictionary.take() {
15929 ::fidl_next::wire::Envelope::encode_value::<
15930 ::fidl_next::wire::String<'static>,
15931 ___E,
15932 >(
15933 value, preallocated.encoder, &mut out, 1024
15934 )?;
15935 } else {
15936 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15937 }
15938 }
15939
15940 4 => {
15941 if let Some(value) = self.target_name.take() {
15942 ::fidl_next::wire::Envelope::encode_value::<
15943 ::fidl_next::wire::String<'static>,
15944 ___E,
15945 >(
15946 value, preallocated.encoder, &mut out, 100
15947 )?;
15948 } else {
15949 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15950 }
15951 }
15952
15953 3 => {
15954 if let Some(value) = self.target.take() {
15955 ::fidl_next::wire::Envelope::encode_value::<
15956 crate::wire::Ref<'static>,
15957 ___E,
15958 >(
15959 value, preallocated.encoder, &mut out, ()
15960 )?;
15961 } else {
15962 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15963 }
15964 }
15965
15966 2 => {
15967 if let Some(value) = self.source_name.take() {
15968 ::fidl_next::wire::Envelope::encode_value::<
15969 ::fidl_next::wire::String<'static>,
15970 ___E,
15971 >(
15972 value, preallocated.encoder, &mut out, 100
15973 )?;
15974 } else {
15975 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15976 }
15977 }
15978
15979 1 => {
15980 if let Some(value) = self.source.take() {
15981 ::fidl_next::wire::Envelope::encode_value::<
15982 crate::wire::Ref<'static>,
15983 ___E,
15984 >(
15985 value, preallocated.encoder, &mut out, ()
15986 )?;
15987 } else {
15988 ::fidl_next::wire::Envelope::encode_zero(&mut out)
15989 }
15990 }
15991
15992 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
15993 }
15994 unsafe {
15995 preallocated.write_next(out.assume_init_ref());
15996 }
15997 }
15998
15999 ::fidl_next::wire::Table::encode_len(table, max_ord);
16000
16001 Ok(())
16002 }
16003 }
16004
16005 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferResolver<'static>, ___E>
16006 for &'a OfferResolver
16007 where
16008 ___E: ::fidl_next::Encoder + ?Sized,
16009 {
16010 #[inline]
16011 fn encode(
16012 self,
16013 encoder: &mut ___E,
16014 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferResolver<'static>>,
16015 _: (),
16016 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16017 ::fidl_next::munge!(let crate::wire::OfferResolver { table } = out);
16018
16019 let max_ord = self.__max_ordinal();
16020
16021 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16022 ::fidl_next::Wire::zero_padding(&mut out);
16023
16024 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16025 ::fidl_next::wire::Envelope,
16026 >(encoder, max_ord);
16027
16028 for i in 1..=max_ord {
16029 match i {
16030 5 => {
16031 if let Some(value) = &self.source_dictionary {
16032 ::fidl_next::wire::Envelope::encode_value::<
16033 ::fidl_next::wire::String<'static>,
16034 ___E,
16035 >(
16036 value, preallocated.encoder, &mut out, 1024
16037 )?;
16038 } else {
16039 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16040 }
16041 }
16042
16043 4 => {
16044 if let Some(value) = &self.target_name {
16045 ::fidl_next::wire::Envelope::encode_value::<
16046 ::fidl_next::wire::String<'static>,
16047 ___E,
16048 >(
16049 value, preallocated.encoder, &mut out, 100
16050 )?;
16051 } else {
16052 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16053 }
16054 }
16055
16056 3 => {
16057 if let Some(value) = &self.target {
16058 ::fidl_next::wire::Envelope::encode_value::<
16059 crate::wire::Ref<'static>,
16060 ___E,
16061 >(
16062 value, preallocated.encoder, &mut out, ()
16063 )?;
16064 } else {
16065 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16066 }
16067 }
16068
16069 2 => {
16070 if let Some(value) = &self.source_name {
16071 ::fidl_next::wire::Envelope::encode_value::<
16072 ::fidl_next::wire::String<'static>,
16073 ___E,
16074 >(
16075 value, preallocated.encoder, &mut out, 100
16076 )?;
16077 } else {
16078 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16079 }
16080 }
16081
16082 1 => {
16083 if let Some(value) = &self.source {
16084 ::fidl_next::wire::Envelope::encode_value::<
16085 crate::wire::Ref<'static>,
16086 ___E,
16087 >(
16088 value, preallocated.encoder, &mut out, ()
16089 )?;
16090 } else {
16091 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16092 }
16093 }
16094
16095 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16096 }
16097 unsafe {
16098 preallocated.write_next(out.assume_init_ref());
16099 }
16100 }
16101
16102 ::fidl_next::wire::Table::encode_len(table, max_ord);
16103
16104 Ok(())
16105 }
16106 }
16107
16108 impl<'de> ::fidl_next::FromWire<crate::wire::OfferResolver<'de>> for OfferResolver {
16109 #[inline]
16110 fn from_wire(wire_: crate::wire::OfferResolver<'de>) -> Self {
16111 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16112
16113 let source = wire_.table.get(1);
16114
16115 let source_name = wire_.table.get(2);
16116
16117 let target = wire_.table.get(3);
16118
16119 let target_name = wire_.table.get(4);
16120
16121 let source_dictionary = wire_.table.get(5);
16122
16123 Self {
16124 source: source.map(|envelope| {
16125 ::fidl_next::FromWire::from_wire(unsafe {
16126 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16127 })
16128 }),
16129
16130 source_name: source_name.map(|envelope| {
16131 ::fidl_next::FromWire::from_wire(unsafe {
16132 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16133 })
16134 }),
16135
16136 target: target.map(|envelope| {
16137 ::fidl_next::FromWire::from_wire(unsafe {
16138 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16139 })
16140 }),
16141
16142 target_name: target_name.map(|envelope| {
16143 ::fidl_next::FromWire::from_wire(unsafe {
16144 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16145 })
16146 }),
16147
16148 source_dictionary: source_dictionary.map(|envelope| {
16149 ::fidl_next::FromWire::from_wire(unsafe {
16150 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16151 })
16152 }),
16153 }
16154 }
16155 }
16156
16157 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferResolver<'de>> for OfferResolver {
16158 #[inline]
16159 fn from_wire_ref(wire: &crate::wire::OfferResolver<'de>) -> Self {
16160 Self {
16161 source: wire.table.get(1).map(|envelope| {
16162 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16163 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16164 })
16165 }),
16166
16167 source_name: wire.table.get(2).map(|envelope| {
16168 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16169 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16170 })
16171 }),
16172
16173 target: wire.table.get(3).map(|envelope| {
16174 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16175 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16176 })
16177 }),
16178
16179 target_name: wire.table.get(4).map(|envelope| {
16180 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16181 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16182 })
16183 }),
16184
16185 source_dictionary: wire.table.get(5).map(|envelope| {
16186 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16187 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16188 })
16189 }),
16190 }
16191 }
16192 }
16193
16194 #[doc = " Declares an event stream offered by a component.\n"]
16195 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16196 pub struct OfferEventStream {
16197 pub source: ::core::option::Option<crate::natural::Ref>,
16198
16199 pub source_name: ::core::option::Option<::std::string::String>,
16200
16201 pub scope: ::core::option::Option<::std::vec::Vec<crate::natural::Ref>>,
16202
16203 pub target: ::core::option::Option<crate::natural::Ref>,
16204
16205 pub target_name: ::core::option::Option<::std::string::String>,
16206
16207 pub availability: ::core::option::Option<crate::natural::Availability>,
16208 }
16209
16210 impl OfferEventStream {
16211 fn __max_ordinal(&self) -> usize {
16212 if self.availability.is_some() {
16213 return 7;
16214 }
16215
16216 if self.target_name.is_some() {
16217 return 5;
16218 }
16219
16220 if self.target.is_some() {
16221 return 4;
16222 }
16223
16224 if self.scope.is_some() {
16225 return 3;
16226 }
16227
16228 if self.source_name.is_some() {
16229 return 2;
16230 }
16231
16232 if self.source.is_some() {
16233 return 1;
16234 }
16235
16236 0
16237 }
16238 }
16239
16240 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferEventStream<'static>, ___E>
16241 for OfferEventStream
16242 where
16243 ___E: ::fidl_next::Encoder + ?Sized,
16244 {
16245 #[inline]
16246 fn encode(
16247 mut self,
16248 encoder: &mut ___E,
16249 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferEventStream<'static>>,
16250 _: (),
16251 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16252 ::fidl_next::munge!(let crate::wire::OfferEventStream { table } = out);
16253
16254 let max_ord = self.__max_ordinal();
16255
16256 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16257 ::fidl_next::Wire::zero_padding(&mut out);
16258
16259 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16260 ::fidl_next::wire::Envelope,
16261 >(encoder, max_ord);
16262
16263 for i in 1..=max_ord {
16264 match i {
16265 7 => {
16266 if let Some(value) = self.availability.take() {
16267 ::fidl_next::wire::Envelope::encode_value::<
16268 crate::wire::Availability,
16269 ___E,
16270 >(
16271 value, preallocated.encoder, &mut out, ()
16272 )?;
16273 } else {
16274 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16275 }
16276 }
16277
16278 5 => {
16279 if let Some(value) = self.target_name.take() {
16280 ::fidl_next::wire::Envelope::encode_value::<
16281 ::fidl_next::wire::String<'static>,
16282 ___E,
16283 >(
16284 value, preallocated.encoder, &mut out, 100
16285 )?;
16286 } else {
16287 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16288 }
16289 }
16290
16291 4 => {
16292 if let Some(value) = self.target.take() {
16293 ::fidl_next::wire::Envelope::encode_value::<
16294 crate::wire::Ref<'static>,
16295 ___E,
16296 >(
16297 value, preallocated.encoder, &mut out, ()
16298 )?;
16299 } else {
16300 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16301 }
16302 }
16303
16304 3 => {
16305 if let Some(value) = self.scope.take() {
16306 ::fidl_next::wire::Envelope::encode_value::<
16307 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
16308 ___E,
16309 >(
16310 value, preallocated.encoder, &mut out, (4294967295, ())
16311 )?;
16312 } else {
16313 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16314 }
16315 }
16316
16317 2 => {
16318 if let Some(value) = self.source_name.take() {
16319 ::fidl_next::wire::Envelope::encode_value::<
16320 ::fidl_next::wire::String<'static>,
16321 ___E,
16322 >(
16323 value, preallocated.encoder, &mut out, 100
16324 )?;
16325 } else {
16326 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16327 }
16328 }
16329
16330 1 => {
16331 if let Some(value) = self.source.take() {
16332 ::fidl_next::wire::Envelope::encode_value::<
16333 crate::wire::Ref<'static>,
16334 ___E,
16335 >(
16336 value, preallocated.encoder, &mut out, ()
16337 )?;
16338 } else {
16339 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16340 }
16341 }
16342
16343 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16344 }
16345 unsafe {
16346 preallocated.write_next(out.assume_init_ref());
16347 }
16348 }
16349
16350 ::fidl_next::wire::Table::encode_len(table, max_ord);
16351
16352 Ok(())
16353 }
16354 }
16355
16356 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferEventStream<'static>, ___E>
16357 for &'a OfferEventStream
16358 where
16359 ___E: ::fidl_next::Encoder + ?Sized,
16360 {
16361 #[inline]
16362 fn encode(
16363 self,
16364 encoder: &mut ___E,
16365 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferEventStream<'static>>,
16366 _: (),
16367 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16368 ::fidl_next::munge!(let crate::wire::OfferEventStream { table } = out);
16369
16370 let max_ord = self.__max_ordinal();
16371
16372 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16373 ::fidl_next::Wire::zero_padding(&mut out);
16374
16375 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16376 ::fidl_next::wire::Envelope,
16377 >(encoder, max_ord);
16378
16379 for i in 1..=max_ord {
16380 match i {
16381 7 => {
16382 if let Some(value) = &self.availability {
16383 ::fidl_next::wire::Envelope::encode_value::<
16384 crate::wire::Availability,
16385 ___E,
16386 >(
16387 value, preallocated.encoder, &mut out, ()
16388 )?;
16389 } else {
16390 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16391 }
16392 }
16393
16394 5 => {
16395 if let Some(value) = &self.target_name {
16396 ::fidl_next::wire::Envelope::encode_value::<
16397 ::fidl_next::wire::String<'static>,
16398 ___E,
16399 >(
16400 value, preallocated.encoder, &mut out, 100
16401 )?;
16402 } else {
16403 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16404 }
16405 }
16406
16407 4 => {
16408 if let Some(value) = &self.target {
16409 ::fidl_next::wire::Envelope::encode_value::<
16410 crate::wire::Ref<'static>,
16411 ___E,
16412 >(
16413 value, preallocated.encoder, &mut out, ()
16414 )?;
16415 } else {
16416 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16417 }
16418 }
16419
16420 3 => {
16421 if let Some(value) = &self.scope {
16422 ::fidl_next::wire::Envelope::encode_value::<
16423 ::fidl_next::wire::Vector<'static, crate::wire::Ref<'static>>,
16424 ___E,
16425 >(
16426 value, preallocated.encoder, &mut out, (4294967295, ())
16427 )?;
16428 } else {
16429 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16430 }
16431 }
16432
16433 2 => {
16434 if let Some(value) = &self.source_name {
16435 ::fidl_next::wire::Envelope::encode_value::<
16436 ::fidl_next::wire::String<'static>,
16437 ___E,
16438 >(
16439 value, preallocated.encoder, &mut out, 100
16440 )?;
16441 } else {
16442 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16443 }
16444 }
16445
16446 1 => {
16447 if let Some(value) = &self.source {
16448 ::fidl_next::wire::Envelope::encode_value::<
16449 crate::wire::Ref<'static>,
16450 ___E,
16451 >(
16452 value, preallocated.encoder, &mut out, ()
16453 )?;
16454 } else {
16455 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16456 }
16457 }
16458
16459 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16460 }
16461 unsafe {
16462 preallocated.write_next(out.assume_init_ref());
16463 }
16464 }
16465
16466 ::fidl_next::wire::Table::encode_len(table, max_ord);
16467
16468 Ok(())
16469 }
16470 }
16471
16472 impl<'de> ::fidl_next::FromWire<crate::wire::OfferEventStream<'de>> for OfferEventStream {
16473 #[inline]
16474 fn from_wire(wire_: crate::wire::OfferEventStream<'de>) -> Self {
16475 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16476
16477 let source = wire_.table.get(1);
16478
16479 let source_name = wire_.table.get(2);
16480
16481 let scope = wire_.table.get(3);
16482
16483 let target = wire_.table.get(4);
16484
16485 let target_name = wire_.table.get(5);
16486
16487 let availability = wire_.table.get(7);
16488
16489 Self {
16490
16491
16492 source: source.map(|envelope| ::fidl_next::FromWire::from_wire(
16493 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
16494 )),
16495
16496
16497 source_name: source_name.map(|envelope| ::fidl_next::FromWire::from_wire(
16498 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
16499 )),
16500
16501
16502 scope: scope.map(|envelope| ::fidl_next::FromWire::from_wire(
16503 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
16504 )),
16505
16506
16507 target: target.map(|envelope| ::fidl_next::FromWire::from_wire(
16508 unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() }
16509 )),
16510
16511
16512 target_name: target_name.map(|envelope| ::fidl_next::FromWire::from_wire(
16513 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
16514 )),
16515
16516
16517 availability: availability.map(|envelope| ::fidl_next::FromWire::from_wire(
16518 unsafe { envelope.read_unchecked::<crate::wire::Availability>() }
16519 )),
16520
16521 }
16522 }
16523 }
16524
16525 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferEventStream<'de>> for OfferEventStream {
16526 #[inline]
16527 fn from_wire_ref(wire: &crate::wire::OfferEventStream<'de>) -> Self {
16528 Self {
16529
16530
16531 source: wire.table.get(1)
16532 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16533 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
16534 )),
16535
16536
16537 source_name: wire.table.get(2)
16538 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16539 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
16540 )),
16541
16542
16543 scope: wire.table.get(3)
16544 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16545 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>() }
16546 )),
16547
16548
16549 target: wire.table.get(4)
16550 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16551 unsafe { envelope.deref_unchecked::<crate::wire::Ref<'de>>() }
16552 )),
16553
16554
16555 target_name: wire.table.get(5)
16556 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16557 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
16558 )),
16559
16560
16561 availability: wire.table.get(7)
16562 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
16563 unsafe { envelope.deref_unchecked::<crate::wire::Availability>() }
16564 )),
16565
16566 }
16567 }
16568 }
16569
16570 #[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"]
16571 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16572 pub struct OfferDictionary {
16573 pub source: ::core::option::Option<crate::natural::Ref>,
16574
16575 pub source_name: ::core::option::Option<::std::string::String>,
16576
16577 pub target: ::core::option::Option<crate::natural::Ref>,
16578
16579 pub target_name: ::core::option::Option<::std::string::String>,
16580
16581 pub dependency_type: ::core::option::Option<crate::natural::DependencyType>,
16582
16583 pub availability: ::core::option::Option<crate::natural::Availability>,
16584
16585 pub source_dictionary: ::core::option::Option<::std::string::String>,
16586 }
16587
16588 impl OfferDictionary {
16589 fn __max_ordinal(&self) -> usize {
16590 if self.source_dictionary.is_some() {
16591 return 7;
16592 }
16593
16594 if self.availability.is_some() {
16595 return 6;
16596 }
16597
16598 if self.dependency_type.is_some() {
16599 return 5;
16600 }
16601
16602 if self.target_name.is_some() {
16603 return 4;
16604 }
16605
16606 if self.target.is_some() {
16607 return 3;
16608 }
16609
16610 if self.source_name.is_some() {
16611 return 2;
16612 }
16613
16614 if self.source.is_some() {
16615 return 1;
16616 }
16617
16618 0
16619 }
16620 }
16621
16622 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferDictionary<'static>, ___E>
16623 for OfferDictionary
16624 where
16625 ___E: ::fidl_next::Encoder + ?Sized,
16626 {
16627 #[inline]
16628 fn encode(
16629 mut self,
16630 encoder: &mut ___E,
16631 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDictionary<'static>>,
16632 _: (),
16633 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16634 ::fidl_next::munge!(let crate::wire::OfferDictionary { table } = out);
16635
16636 let max_ord = self.__max_ordinal();
16637
16638 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16639 ::fidl_next::Wire::zero_padding(&mut out);
16640
16641 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16642 ::fidl_next::wire::Envelope,
16643 >(encoder, max_ord);
16644
16645 for i in 1..=max_ord {
16646 match i {
16647 7 => {
16648 if let Some(value) = self.source_dictionary.take() {
16649 ::fidl_next::wire::Envelope::encode_value::<
16650 ::fidl_next::wire::String<'static>,
16651 ___E,
16652 >(
16653 value, preallocated.encoder, &mut out, 1024
16654 )?;
16655 } else {
16656 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16657 }
16658 }
16659
16660 6 => {
16661 if let Some(value) = self.availability.take() {
16662 ::fidl_next::wire::Envelope::encode_value::<
16663 crate::wire::Availability,
16664 ___E,
16665 >(
16666 value, preallocated.encoder, &mut out, ()
16667 )?;
16668 } else {
16669 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16670 }
16671 }
16672
16673 5 => {
16674 if let Some(value) = self.dependency_type.take() {
16675 ::fidl_next::wire::Envelope::encode_value::<
16676 crate::wire::DependencyType,
16677 ___E,
16678 >(
16679 value, preallocated.encoder, &mut out, ()
16680 )?;
16681 } else {
16682 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16683 }
16684 }
16685
16686 4 => {
16687 if let Some(value) = self.target_name.take() {
16688 ::fidl_next::wire::Envelope::encode_value::<
16689 ::fidl_next::wire::String<'static>,
16690 ___E,
16691 >(
16692 value, preallocated.encoder, &mut out, 100
16693 )?;
16694 } else {
16695 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16696 }
16697 }
16698
16699 3 => {
16700 if let Some(value) = self.target.take() {
16701 ::fidl_next::wire::Envelope::encode_value::<
16702 crate::wire::Ref<'static>,
16703 ___E,
16704 >(
16705 value, preallocated.encoder, &mut out, ()
16706 )?;
16707 } else {
16708 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16709 }
16710 }
16711
16712 2 => {
16713 if let Some(value) = self.source_name.take() {
16714 ::fidl_next::wire::Envelope::encode_value::<
16715 ::fidl_next::wire::String<'static>,
16716 ___E,
16717 >(
16718 value, preallocated.encoder, &mut out, 100
16719 )?;
16720 } else {
16721 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16722 }
16723 }
16724
16725 1 => {
16726 if let Some(value) = self.source.take() {
16727 ::fidl_next::wire::Envelope::encode_value::<
16728 crate::wire::Ref<'static>,
16729 ___E,
16730 >(
16731 value, preallocated.encoder, &mut out, ()
16732 )?;
16733 } else {
16734 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16735 }
16736 }
16737
16738 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16739 }
16740 unsafe {
16741 preallocated.write_next(out.assume_init_ref());
16742 }
16743 }
16744
16745 ::fidl_next::wire::Table::encode_len(table, max_ord);
16746
16747 Ok(())
16748 }
16749 }
16750
16751 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferDictionary<'static>, ___E>
16752 for &'a OfferDictionary
16753 where
16754 ___E: ::fidl_next::Encoder + ?Sized,
16755 {
16756 #[inline]
16757 fn encode(
16758 self,
16759 encoder: &mut ___E,
16760 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferDictionary<'static>>,
16761 _: (),
16762 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
16763 ::fidl_next::munge!(let crate::wire::OfferDictionary { table } = out);
16764
16765 let max_ord = self.__max_ordinal();
16766
16767 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
16768 ::fidl_next::Wire::zero_padding(&mut out);
16769
16770 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
16771 ::fidl_next::wire::Envelope,
16772 >(encoder, max_ord);
16773
16774 for i in 1..=max_ord {
16775 match i {
16776 7 => {
16777 if let Some(value) = &self.source_dictionary {
16778 ::fidl_next::wire::Envelope::encode_value::<
16779 ::fidl_next::wire::String<'static>,
16780 ___E,
16781 >(
16782 value, preallocated.encoder, &mut out, 1024
16783 )?;
16784 } else {
16785 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16786 }
16787 }
16788
16789 6 => {
16790 if let Some(value) = &self.availability {
16791 ::fidl_next::wire::Envelope::encode_value::<
16792 crate::wire::Availability,
16793 ___E,
16794 >(
16795 value, preallocated.encoder, &mut out, ()
16796 )?;
16797 } else {
16798 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16799 }
16800 }
16801
16802 5 => {
16803 if let Some(value) = &self.dependency_type {
16804 ::fidl_next::wire::Envelope::encode_value::<
16805 crate::wire::DependencyType,
16806 ___E,
16807 >(
16808 value, preallocated.encoder, &mut out, ()
16809 )?;
16810 } else {
16811 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16812 }
16813 }
16814
16815 4 => {
16816 if let Some(value) = &self.target_name {
16817 ::fidl_next::wire::Envelope::encode_value::<
16818 ::fidl_next::wire::String<'static>,
16819 ___E,
16820 >(
16821 value, preallocated.encoder, &mut out, 100
16822 )?;
16823 } else {
16824 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16825 }
16826 }
16827
16828 3 => {
16829 if let Some(value) = &self.target {
16830 ::fidl_next::wire::Envelope::encode_value::<
16831 crate::wire::Ref<'static>,
16832 ___E,
16833 >(
16834 value, preallocated.encoder, &mut out, ()
16835 )?;
16836 } else {
16837 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16838 }
16839 }
16840
16841 2 => {
16842 if let Some(value) = &self.source_name {
16843 ::fidl_next::wire::Envelope::encode_value::<
16844 ::fidl_next::wire::String<'static>,
16845 ___E,
16846 >(
16847 value, preallocated.encoder, &mut out, 100
16848 )?;
16849 } else {
16850 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16851 }
16852 }
16853
16854 1 => {
16855 if let Some(value) = &self.source {
16856 ::fidl_next::wire::Envelope::encode_value::<
16857 crate::wire::Ref<'static>,
16858 ___E,
16859 >(
16860 value, preallocated.encoder, &mut out, ()
16861 )?;
16862 } else {
16863 ::fidl_next::wire::Envelope::encode_zero(&mut out)
16864 }
16865 }
16866
16867 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
16868 }
16869 unsafe {
16870 preallocated.write_next(out.assume_init_ref());
16871 }
16872 }
16873
16874 ::fidl_next::wire::Table::encode_len(table, max_ord);
16875
16876 Ok(())
16877 }
16878 }
16879
16880 impl<'de> ::fidl_next::FromWire<crate::wire::OfferDictionary<'de>> for OfferDictionary {
16881 #[inline]
16882 fn from_wire(wire_: crate::wire::OfferDictionary<'de>) -> Self {
16883 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
16884
16885 let source = wire_.table.get(1);
16886
16887 let source_name = wire_.table.get(2);
16888
16889 let target = wire_.table.get(3);
16890
16891 let target_name = wire_.table.get(4);
16892
16893 let dependency_type = wire_.table.get(5);
16894
16895 let availability = wire_.table.get(6);
16896
16897 let source_dictionary = wire_.table.get(7);
16898
16899 Self {
16900 source: source.map(|envelope| {
16901 ::fidl_next::FromWire::from_wire(unsafe {
16902 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16903 })
16904 }),
16905
16906 source_name: source_name.map(|envelope| {
16907 ::fidl_next::FromWire::from_wire(unsafe {
16908 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16909 })
16910 }),
16911
16912 target: target.map(|envelope| {
16913 ::fidl_next::FromWire::from_wire(unsafe {
16914 envelope.read_unchecked::<crate::wire::Ref<'de>>()
16915 })
16916 }),
16917
16918 target_name: target_name.map(|envelope| {
16919 ::fidl_next::FromWire::from_wire(unsafe {
16920 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16921 })
16922 }),
16923
16924 dependency_type: dependency_type.map(|envelope| {
16925 ::fidl_next::FromWire::from_wire(unsafe {
16926 envelope.read_unchecked::<crate::wire::DependencyType>()
16927 })
16928 }),
16929
16930 availability: availability.map(|envelope| {
16931 ::fidl_next::FromWire::from_wire(unsafe {
16932 envelope.read_unchecked::<crate::wire::Availability>()
16933 })
16934 }),
16935
16936 source_dictionary: source_dictionary.map(|envelope| {
16937 ::fidl_next::FromWire::from_wire(unsafe {
16938 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
16939 })
16940 }),
16941 }
16942 }
16943 }
16944
16945 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferDictionary<'de>> for OfferDictionary {
16946 #[inline]
16947 fn from_wire_ref(wire: &crate::wire::OfferDictionary<'de>) -> Self {
16948 Self {
16949 source: wire.table.get(1).map(|envelope| {
16950 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16951 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16952 })
16953 }),
16954
16955 source_name: wire.table.get(2).map(|envelope| {
16956 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16957 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16958 })
16959 }),
16960
16961 target: wire.table.get(3).map(|envelope| {
16962 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16963 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
16964 })
16965 }),
16966
16967 target_name: wire.table.get(4).map(|envelope| {
16968 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16969 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16970 })
16971 }),
16972
16973 dependency_type: wire.table.get(5).map(|envelope| {
16974 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16975 envelope.deref_unchecked::<crate::wire::DependencyType>()
16976 })
16977 }),
16978
16979 availability: wire.table.get(6).map(|envelope| {
16980 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16981 envelope.deref_unchecked::<crate::wire::Availability>()
16982 })
16983 }),
16984
16985 source_dictionary: wire.table.get(7).map(|envelope| {
16986 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
16987 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
16988 })
16989 }),
16990 }
16991 }
16992 }
16993
16994 #[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"]
16995 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16996 pub struct OfferConfiguration {
16997 pub source: ::core::option::Option<crate::natural::Ref>,
16998
16999 pub source_name: ::core::option::Option<::std::string::String>,
17000
17001 pub target: ::core::option::Option<crate::natural::Ref>,
17002
17003 pub target_name: ::core::option::Option<::std::string::String>,
17004
17005 pub availability: ::core::option::Option<crate::natural::Availability>,
17006
17007 pub source_dictionary: ::core::option::Option<::std::string::String>,
17008 }
17009
17010 impl OfferConfiguration {
17011 fn __max_ordinal(&self) -> usize {
17012 if self.source_dictionary.is_some() {
17013 return 6;
17014 }
17015
17016 if self.availability.is_some() {
17017 return 5;
17018 }
17019
17020 if self.target_name.is_some() {
17021 return 4;
17022 }
17023
17024 if self.target.is_some() {
17025 return 3;
17026 }
17027
17028 if self.source_name.is_some() {
17029 return 2;
17030 }
17031
17032 if self.source.is_some() {
17033 return 1;
17034 }
17035
17036 0
17037 }
17038 }
17039
17040 unsafe impl<___E> ::fidl_next::Encode<crate::wire::OfferConfiguration<'static>, ___E>
17041 for OfferConfiguration
17042 where
17043 ___E: ::fidl_next::Encoder + ?Sized,
17044 {
17045 #[inline]
17046 fn encode(
17047 mut self,
17048 encoder: &mut ___E,
17049 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferConfiguration<'static>>,
17050 _: (),
17051 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17052 ::fidl_next::munge!(let crate::wire::OfferConfiguration { table } = out);
17053
17054 let max_ord = self.__max_ordinal();
17055
17056 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17057 ::fidl_next::Wire::zero_padding(&mut out);
17058
17059 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17060 ::fidl_next::wire::Envelope,
17061 >(encoder, max_ord);
17062
17063 for i in 1..=max_ord {
17064 match i {
17065 6 => {
17066 if let Some(value) = self.source_dictionary.take() {
17067 ::fidl_next::wire::Envelope::encode_value::<
17068 ::fidl_next::wire::String<'static>,
17069 ___E,
17070 >(
17071 value, preallocated.encoder, &mut out, 1024
17072 )?;
17073 } else {
17074 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17075 }
17076 }
17077
17078 5 => {
17079 if let Some(value) = self.availability.take() {
17080 ::fidl_next::wire::Envelope::encode_value::<
17081 crate::wire::Availability,
17082 ___E,
17083 >(
17084 value, preallocated.encoder, &mut out, ()
17085 )?;
17086 } else {
17087 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17088 }
17089 }
17090
17091 4 => {
17092 if let Some(value) = self.target_name.take() {
17093 ::fidl_next::wire::Envelope::encode_value::<
17094 ::fidl_next::wire::String<'static>,
17095 ___E,
17096 >(
17097 value, preallocated.encoder, &mut out, 100
17098 )?;
17099 } else {
17100 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17101 }
17102 }
17103
17104 3 => {
17105 if let Some(value) = self.target.take() {
17106 ::fidl_next::wire::Envelope::encode_value::<
17107 crate::wire::Ref<'static>,
17108 ___E,
17109 >(
17110 value, preallocated.encoder, &mut out, ()
17111 )?;
17112 } else {
17113 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17114 }
17115 }
17116
17117 2 => {
17118 if let Some(value) = self.source_name.take() {
17119 ::fidl_next::wire::Envelope::encode_value::<
17120 ::fidl_next::wire::String<'static>,
17121 ___E,
17122 >(
17123 value, preallocated.encoder, &mut out, 100
17124 )?;
17125 } else {
17126 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17127 }
17128 }
17129
17130 1 => {
17131 if let Some(value) = self.source.take() {
17132 ::fidl_next::wire::Envelope::encode_value::<
17133 crate::wire::Ref<'static>,
17134 ___E,
17135 >(
17136 value, preallocated.encoder, &mut out, ()
17137 )?;
17138 } else {
17139 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17140 }
17141 }
17142
17143 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17144 }
17145 unsafe {
17146 preallocated.write_next(out.assume_init_ref());
17147 }
17148 }
17149
17150 ::fidl_next::wire::Table::encode_len(table, max_ord);
17151
17152 Ok(())
17153 }
17154 }
17155
17156 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::OfferConfiguration<'static>, ___E>
17157 for &'a OfferConfiguration
17158 where
17159 ___E: ::fidl_next::Encoder + ?Sized,
17160 {
17161 #[inline]
17162 fn encode(
17163 self,
17164 encoder: &mut ___E,
17165 out: &mut ::core::mem::MaybeUninit<crate::wire::OfferConfiguration<'static>>,
17166 _: (),
17167 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17168 ::fidl_next::munge!(let crate::wire::OfferConfiguration { table } = out);
17169
17170 let max_ord = self.__max_ordinal();
17171
17172 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17173 ::fidl_next::Wire::zero_padding(&mut out);
17174
17175 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17176 ::fidl_next::wire::Envelope,
17177 >(encoder, max_ord);
17178
17179 for i in 1..=max_ord {
17180 match i {
17181 6 => {
17182 if let Some(value) = &self.source_dictionary {
17183 ::fidl_next::wire::Envelope::encode_value::<
17184 ::fidl_next::wire::String<'static>,
17185 ___E,
17186 >(
17187 value, preallocated.encoder, &mut out, 1024
17188 )?;
17189 } else {
17190 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17191 }
17192 }
17193
17194 5 => {
17195 if let Some(value) = &self.availability {
17196 ::fidl_next::wire::Envelope::encode_value::<
17197 crate::wire::Availability,
17198 ___E,
17199 >(
17200 value, preallocated.encoder, &mut out, ()
17201 )?;
17202 } else {
17203 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17204 }
17205 }
17206
17207 4 => {
17208 if let Some(value) = &self.target_name {
17209 ::fidl_next::wire::Envelope::encode_value::<
17210 ::fidl_next::wire::String<'static>,
17211 ___E,
17212 >(
17213 value, preallocated.encoder, &mut out, 100
17214 )?;
17215 } else {
17216 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17217 }
17218 }
17219
17220 3 => {
17221 if let Some(value) = &self.target {
17222 ::fidl_next::wire::Envelope::encode_value::<
17223 crate::wire::Ref<'static>,
17224 ___E,
17225 >(
17226 value, preallocated.encoder, &mut out, ()
17227 )?;
17228 } else {
17229 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17230 }
17231 }
17232
17233 2 => {
17234 if let Some(value) = &self.source_name {
17235 ::fidl_next::wire::Envelope::encode_value::<
17236 ::fidl_next::wire::String<'static>,
17237 ___E,
17238 >(
17239 value, preallocated.encoder, &mut out, 100
17240 )?;
17241 } else {
17242 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17243 }
17244 }
17245
17246 1 => {
17247 if let Some(value) = &self.source {
17248 ::fidl_next::wire::Envelope::encode_value::<
17249 crate::wire::Ref<'static>,
17250 ___E,
17251 >(
17252 value, preallocated.encoder, &mut out, ()
17253 )?;
17254 } else {
17255 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17256 }
17257 }
17258
17259 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17260 }
17261 unsafe {
17262 preallocated.write_next(out.assume_init_ref());
17263 }
17264 }
17265
17266 ::fidl_next::wire::Table::encode_len(table, max_ord);
17267
17268 Ok(())
17269 }
17270 }
17271
17272 impl<'de> ::fidl_next::FromWire<crate::wire::OfferConfiguration<'de>> for OfferConfiguration {
17273 #[inline]
17274 fn from_wire(wire_: crate::wire::OfferConfiguration<'de>) -> Self {
17275 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
17276
17277 let source = wire_.table.get(1);
17278
17279 let source_name = wire_.table.get(2);
17280
17281 let target = wire_.table.get(3);
17282
17283 let target_name = wire_.table.get(4);
17284
17285 let availability = wire_.table.get(5);
17286
17287 let source_dictionary = wire_.table.get(6);
17288
17289 Self {
17290 source: source.map(|envelope| {
17291 ::fidl_next::FromWire::from_wire(unsafe {
17292 envelope.read_unchecked::<crate::wire::Ref<'de>>()
17293 })
17294 }),
17295
17296 source_name: source_name.map(|envelope| {
17297 ::fidl_next::FromWire::from_wire(unsafe {
17298 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17299 })
17300 }),
17301
17302 target: target.map(|envelope| {
17303 ::fidl_next::FromWire::from_wire(unsafe {
17304 envelope.read_unchecked::<crate::wire::Ref<'de>>()
17305 })
17306 }),
17307
17308 target_name: target_name.map(|envelope| {
17309 ::fidl_next::FromWire::from_wire(unsafe {
17310 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17311 })
17312 }),
17313
17314 availability: availability.map(|envelope| {
17315 ::fidl_next::FromWire::from_wire(unsafe {
17316 envelope.read_unchecked::<crate::wire::Availability>()
17317 })
17318 }),
17319
17320 source_dictionary: source_dictionary.map(|envelope| {
17321 ::fidl_next::FromWire::from_wire(unsafe {
17322 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17323 })
17324 }),
17325 }
17326 }
17327 }
17328
17329 impl<'de> ::fidl_next::FromWireRef<crate::wire::OfferConfiguration<'de>> for OfferConfiguration {
17330 #[inline]
17331 fn from_wire_ref(wire: &crate::wire::OfferConfiguration<'de>) -> Self {
17332 Self {
17333 source: wire.table.get(1).map(|envelope| {
17334 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17335 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17336 })
17337 }),
17338
17339 source_name: wire.table.get(2).map(|envelope| {
17340 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17341 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17342 })
17343 }),
17344
17345 target: wire.table.get(3).map(|envelope| {
17346 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17347 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17348 })
17349 }),
17350
17351 target_name: wire.table.get(4).map(|envelope| {
17352 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17353 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17354 })
17355 }),
17356
17357 availability: wire.table.get(5).map(|envelope| {
17358 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17359 envelope.deref_unchecked::<crate::wire::Availability>()
17360 })
17361 }),
17362
17363 source_dictionary: wire.table.get(6).map(|envelope| {
17364 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17365 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17366 })
17367 }),
17368 }
17369 }
17370 }
17371
17372 #[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"]
17373 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17374 pub enum Offer {
17375 Service(crate::natural::OfferService),
17376
17377 Protocol(crate::natural::OfferProtocol),
17378
17379 Directory(crate::natural::OfferDirectory),
17380
17381 Storage(crate::natural::OfferStorage),
17382
17383 Runner(crate::natural::OfferRunner),
17384
17385 Resolver(crate::natural::OfferResolver),
17386
17387 EventStream(crate::natural::OfferEventStream),
17388
17389 Dictionary(crate::natural::OfferDictionary),
17390
17391 Config(crate::natural::OfferConfiguration),
17392
17393 UnknownOrdinal_(u64),
17394 }
17395
17396 impl Offer {
17397 pub fn is_unknown(&self) -> bool {
17398 #[allow(unreachable_patterns)]
17399 match self {
17400 Self::UnknownOrdinal_(_) => true,
17401 _ => false,
17402 }
17403 }
17404 }
17405
17406 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Offer<'static>, ___E> for Offer
17407 where
17408 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17409 ___E: ::fidl_next::Encoder,
17410 {
17411 #[inline]
17412 fn encode(
17413 self,
17414 encoder: &mut ___E,
17415 out: &mut ::core::mem::MaybeUninit<crate::wire::Offer<'static>>,
17416 _: (),
17417 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17418 ::fidl_next::munge!(let crate::wire::Offer { raw, _phantom: _ } = out);
17419
17420 match self {
17421 Self::Service(value) => ::fidl_next::wire::Union::encode_as::<
17422 ___E,
17423 crate::wire::OfferService<'static>,
17424 >(value, 1, encoder, raw, ())?,
17425
17426 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
17427 ___E,
17428 crate::wire::OfferProtocol<'static>,
17429 >(value, 2, encoder, raw, ())?,
17430
17431 Self::Directory(value) => ::fidl_next::wire::Union::encode_as::<
17432 ___E,
17433 crate::wire::OfferDirectory<'static>,
17434 >(value, 3, encoder, raw, ())?,
17435
17436 Self::Storage(value) => ::fidl_next::wire::Union::encode_as::<
17437 ___E,
17438 crate::wire::OfferStorage<'static>,
17439 >(value, 4, encoder, raw, ())?,
17440
17441 Self::Runner(value) => ::fidl_next::wire::Union::encode_as::<
17442 ___E,
17443 crate::wire::OfferRunner<'static>,
17444 >(value, 5, encoder, raw, ())?,
17445
17446 Self::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
17447 ___E,
17448 crate::wire::OfferResolver<'static>,
17449 >(value, 6, encoder, raw, ())?,
17450
17451 Self::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
17452 ___E,
17453 crate::wire::OfferEventStream<'static>,
17454 >(value, 8, encoder, raw, ())?,
17455
17456 Self::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
17457 ___E,
17458 crate::wire::OfferDictionary<'static>,
17459 >(value, 9, encoder, raw, ())?,
17460
17461 Self::Config(value) => ::fidl_next::wire::Union::encode_as::<
17462 ___E,
17463 crate::wire::OfferConfiguration<'static>,
17464 >(value, 10, encoder, raw, ())?,
17465
17466 Self::UnknownOrdinal_(ordinal) => {
17467 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
17468 }
17469 }
17470
17471 Ok(())
17472 }
17473 }
17474
17475 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Offer<'static>, ___E> for &'a Offer
17476 where
17477 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
17478 ___E: ::fidl_next::Encoder,
17479 {
17480 #[inline]
17481 fn encode(
17482 self,
17483 encoder: &mut ___E,
17484 out: &mut ::core::mem::MaybeUninit<crate::wire::Offer<'static>>,
17485 _: (),
17486 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17487 ::fidl_next::munge!(let crate::wire::Offer { raw, _phantom: _ } = out);
17488
17489 match self {
17490 Offer::Service(value) => ::fidl_next::wire::Union::encode_as::<
17491 ___E,
17492 crate::wire::OfferService<'static>,
17493 >(value, 1, encoder, raw, ())?,
17494
17495 Offer::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
17496 ___E,
17497 crate::wire::OfferProtocol<'static>,
17498 >(value, 2, encoder, raw, ())?,
17499
17500 Offer::Directory(value) => ::fidl_next::wire::Union::encode_as::<
17501 ___E,
17502 crate::wire::OfferDirectory<'static>,
17503 >(value, 3, encoder, raw, ())?,
17504
17505 Offer::Storage(value) => ::fidl_next::wire::Union::encode_as::<
17506 ___E,
17507 crate::wire::OfferStorage<'static>,
17508 >(value, 4, encoder, raw, ())?,
17509
17510 Offer::Runner(value) => ::fidl_next::wire::Union::encode_as::<
17511 ___E,
17512 crate::wire::OfferRunner<'static>,
17513 >(value, 5, encoder, raw, ())?,
17514
17515 Offer::Resolver(value) => ::fidl_next::wire::Union::encode_as::<
17516 ___E,
17517 crate::wire::OfferResolver<'static>,
17518 >(value, 6, encoder, raw, ())?,
17519
17520 Offer::EventStream(value) => ::fidl_next::wire::Union::encode_as::<
17521 ___E,
17522 crate::wire::OfferEventStream<'static>,
17523 >(value, 8, encoder, raw, ())?,
17524
17525 Offer::Dictionary(value) => ::fidl_next::wire::Union::encode_as::<
17526 ___E,
17527 crate::wire::OfferDictionary<'static>,
17528 >(value, 9, encoder, raw, ())?,
17529
17530 Offer::Config(value) => ::fidl_next::wire::Union::encode_as::<
17531 ___E,
17532 crate::wire::OfferConfiguration<'static>,
17533 >(value, 10, encoder, raw, ())?,
17534
17535 Offer::UnknownOrdinal_(ordinal) => {
17536 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
17537 }
17538 }
17539
17540 Ok(())
17541 }
17542 }
17543
17544 unsafe impl<___E> ::fidl_next::EncodeOption<crate::wire_optional::Offer<'static>, ___E> for Offer
17545 where
17546 ___E: ?Sized,
17547 Offer: ::fidl_next::Encode<crate::wire::Offer<'static>, ___E>,
17548 {
17549 #[inline]
17550 fn encode_option(
17551 this: ::core::option::Option<Self>,
17552 encoder: &mut ___E,
17553 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Offer<'static>>,
17554 _: (),
17555 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17556 ::fidl_next::munge!(let crate::wire_optional::Offer { raw, _phantom: _ } = &mut *out);
17557
17558 if let Some(inner) = this {
17559 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
17560 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
17561 } else {
17562 ::fidl_next::wire::Union::encode_absent(raw);
17563 }
17564
17565 Ok(())
17566 }
17567 }
17568
17569 unsafe impl<'a, ___E> ::fidl_next::EncodeOption<crate::wire_optional::Offer<'static>, ___E>
17570 for &'a Offer
17571 where
17572 ___E: ?Sized,
17573 &'a Offer: ::fidl_next::Encode<crate::wire::Offer<'static>, ___E>,
17574 {
17575 #[inline]
17576 fn encode_option(
17577 this: ::core::option::Option<Self>,
17578 encoder: &mut ___E,
17579 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::Offer<'static>>,
17580 _: (),
17581 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17582 ::fidl_next::munge!(let crate::wire_optional::Offer { raw, _phantom: _ } = &mut *out);
17583
17584 if let Some(inner) = this {
17585 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
17586 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
17587 } else {
17588 ::fidl_next::wire::Union::encode_absent(raw);
17589 }
17590
17591 Ok(())
17592 }
17593 }
17594
17595 impl<'de> ::fidl_next::FromWire<crate::wire::Offer<'de>> for Offer {
17596 #[inline]
17597 fn from_wire(wire: crate::wire::Offer<'de>) -> Self {
17598 let wire = ::core::mem::ManuallyDrop::new(wire);
17599 match wire.raw.ordinal() {
17600 1 => Self::Service(::fidl_next::FromWire::from_wire(unsafe {
17601 wire.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
17602 })),
17603
17604 2 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
17605 wire.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
17606 })),
17607
17608 3 => Self::Directory(::fidl_next::FromWire::from_wire(unsafe {
17609 wire.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
17610 })),
17611
17612 4 => Self::Storage(::fidl_next::FromWire::from_wire(unsafe {
17613 wire.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
17614 })),
17615
17616 5 => Self::Runner(::fidl_next::FromWire::from_wire(unsafe {
17617 wire.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>()
17618 })),
17619
17620 6 => Self::Resolver(::fidl_next::FromWire::from_wire(unsafe {
17621 wire.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
17622 })),
17623
17624 8 => Self::EventStream(::fidl_next::FromWire::from_wire(unsafe {
17625 wire.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
17626 })),
17627
17628 9 => Self::Dictionary(::fidl_next::FromWire::from_wire(unsafe {
17629 wire.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
17630 })),
17631
17632 10 => Self::Config(::fidl_next::FromWire::from_wire(unsafe {
17633 wire.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
17634 })),
17635
17636 ord => return Self::UnknownOrdinal_(ord as u64),
17637 }
17638 }
17639 }
17640
17641 impl<'de> ::fidl_next::FromWireRef<crate::wire::Offer<'de>> for Offer {
17642 #[inline]
17643 fn from_wire_ref(wire: &crate::wire::Offer<'de>) -> Self {
17644 match wire.raw.ordinal() {
17645 1 => Self::Service(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17646 wire.raw.get().deref_unchecked::<crate::wire::OfferService<'de>>()
17647 })),
17648
17649 2 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17650 wire.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'de>>()
17651 })),
17652
17653 3 => Self::Directory(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17654 wire.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'de>>()
17655 })),
17656
17657 4 => Self::Storage(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17658 wire.raw.get().deref_unchecked::<crate::wire::OfferStorage<'de>>()
17659 })),
17660
17661 5 => Self::Runner(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17662 wire.raw.get().deref_unchecked::<crate::wire::OfferRunner<'de>>()
17663 })),
17664
17665 6 => Self::Resolver(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17666 wire.raw.get().deref_unchecked::<crate::wire::OfferResolver<'de>>()
17667 })),
17668
17669 8 => Self::EventStream(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17670 wire.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'de>>()
17671 })),
17672
17673 9 => Self::Dictionary(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17674 wire.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'de>>()
17675 })),
17676
17677 10 => Self::Config(::fidl_next::FromWireRef::from_wire_ref(unsafe {
17678 wire.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'de>>()
17679 })),
17680
17681 ord => return Self::UnknownOrdinal_(ord as u64),
17682 }
17683 }
17684 }
17685
17686 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>> for Offer {
17687 #[inline]
17688 fn from_wire_option(
17689 wire: crate::wire_optional::Offer<'de>,
17690 ) -> ::core::option::Option<Self> {
17691 if let Some(inner) = wire.into_option() {
17692 Some(::fidl_next::FromWire::from_wire(inner))
17693 } else {
17694 None
17695 }
17696 }
17697 }
17698
17699 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>> for Box<Offer> {
17700 #[inline]
17701 fn from_wire_option(
17702 wire: crate::wire_optional::Offer<'de>,
17703 ) -> ::core::option::Option<Self> {
17704 <
17705 Offer as ::fidl_next::FromWireOption<crate::wire_optional::Offer<'de>>
17706 >::from_wire_option(wire).map(Box::new)
17707 }
17708 }
17709
17710 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::Offer<'de>> for Box<Offer> {
17711 #[inline]
17712 fn from_wire_option_ref(
17713 wire: &crate::wire_optional::Offer<'de>,
17714 ) -> ::core::option::Option<Self> {
17715 if let Some(inner) = wire.as_ref() {
17716 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
17717 } else {
17718 None
17719 }
17720 }
17721 }
17722
17723 #[doc = " A repository of the runners available in an environment.\n"]
17724 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17725 pub struct RunnerRegistration {
17726 pub source_name: ::core::option::Option<::std::string::String>,
17727
17728 pub source: ::core::option::Option<crate::natural::Ref>,
17729
17730 pub target_name: ::core::option::Option<::std::string::String>,
17731 }
17732
17733 impl RunnerRegistration {
17734 fn __max_ordinal(&self) -> usize {
17735 if self.target_name.is_some() {
17736 return 3;
17737 }
17738
17739 if self.source.is_some() {
17740 return 2;
17741 }
17742
17743 if self.source_name.is_some() {
17744 return 1;
17745 }
17746
17747 0
17748 }
17749 }
17750
17751 unsafe impl<___E> ::fidl_next::Encode<crate::wire::RunnerRegistration<'static>, ___E>
17752 for RunnerRegistration
17753 where
17754 ___E: ::fidl_next::Encoder + ?Sized,
17755 {
17756 #[inline]
17757 fn encode(
17758 mut self,
17759 encoder: &mut ___E,
17760 out: &mut ::core::mem::MaybeUninit<crate::wire::RunnerRegistration<'static>>,
17761 _: (),
17762 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17763 ::fidl_next::munge!(let crate::wire::RunnerRegistration { table } = out);
17764
17765 let max_ord = self.__max_ordinal();
17766
17767 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17768 ::fidl_next::Wire::zero_padding(&mut out);
17769
17770 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17771 ::fidl_next::wire::Envelope,
17772 >(encoder, max_ord);
17773
17774 for i in 1..=max_ord {
17775 match i {
17776 3 => {
17777 if let Some(value) = self.target_name.take() {
17778 ::fidl_next::wire::Envelope::encode_value::<
17779 ::fidl_next::wire::String<'static>,
17780 ___E,
17781 >(
17782 value, preallocated.encoder, &mut out, 100
17783 )?;
17784 } else {
17785 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17786 }
17787 }
17788
17789 2 => {
17790 if let Some(value) = self.source.take() {
17791 ::fidl_next::wire::Envelope::encode_value::<
17792 crate::wire::Ref<'static>,
17793 ___E,
17794 >(
17795 value, preallocated.encoder, &mut out, ()
17796 )?;
17797 } else {
17798 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17799 }
17800 }
17801
17802 1 => {
17803 if let Some(value) = self.source_name.take() {
17804 ::fidl_next::wire::Envelope::encode_value::<
17805 ::fidl_next::wire::String<'static>,
17806 ___E,
17807 >(
17808 value, preallocated.encoder, &mut out, 100
17809 )?;
17810 } else {
17811 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17812 }
17813 }
17814
17815 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17816 }
17817 unsafe {
17818 preallocated.write_next(out.assume_init_ref());
17819 }
17820 }
17821
17822 ::fidl_next::wire::Table::encode_len(table, max_ord);
17823
17824 Ok(())
17825 }
17826 }
17827
17828 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::RunnerRegistration<'static>, ___E>
17829 for &'a RunnerRegistration
17830 where
17831 ___E: ::fidl_next::Encoder + ?Sized,
17832 {
17833 #[inline]
17834 fn encode(
17835 self,
17836 encoder: &mut ___E,
17837 out: &mut ::core::mem::MaybeUninit<crate::wire::RunnerRegistration<'static>>,
17838 _: (),
17839 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
17840 ::fidl_next::munge!(let crate::wire::RunnerRegistration { table } = out);
17841
17842 let max_ord = self.__max_ordinal();
17843
17844 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
17845 ::fidl_next::Wire::zero_padding(&mut out);
17846
17847 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
17848 ::fidl_next::wire::Envelope,
17849 >(encoder, max_ord);
17850
17851 for i in 1..=max_ord {
17852 match i {
17853 3 => {
17854 if let Some(value) = &self.target_name {
17855 ::fidl_next::wire::Envelope::encode_value::<
17856 ::fidl_next::wire::String<'static>,
17857 ___E,
17858 >(
17859 value, preallocated.encoder, &mut out, 100
17860 )?;
17861 } else {
17862 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17863 }
17864 }
17865
17866 2 => {
17867 if let Some(value) = &self.source {
17868 ::fidl_next::wire::Envelope::encode_value::<
17869 crate::wire::Ref<'static>,
17870 ___E,
17871 >(
17872 value, preallocated.encoder, &mut out, ()
17873 )?;
17874 } else {
17875 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17876 }
17877 }
17878
17879 1 => {
17880 if let Some(value) = &self.source_name {
17881 ::fidl_next::wire::Envelope::encode_value::<
17882 ::fidl_next::wire::String<'static>,
17883 ___E,
17884 >(
17885 value, preallocated.encoder, &mut out, 100
17886 )?;
17887 } else {
17888 ::fidl_next::wire::Envelope::encode_zero(&mut out)
17889 }
17890 }
17891
17892 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
17893 }
17894 unsafe {
17895 preallocated.write_next(out.assume_init_ref());
17896 }
17897 }
17898
17899 ::fidl_next::wire::Table::encode_len(table, max_ord);
17900
17901 Ok(())
17902 }
17903 }
17904
17905 impl<'de> ::fidl_next::FromWire<crate::wire::RunnerRegistration<'de>> for RunnerRegistration {
17906 #[inline]
17907 fn from_wire(wire_: crate::wire::RunnerRegistration<'de>) -> Self {
17908 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
17909
17910 let source_name = wire_.table.get(1);
17911
17912 let source = wire_.table.get(2);
17913
17914 let target_name = wire_.table.get(3);
17915
17916 Self {
17917 source_name: source_name.map(|envelope| {
17918 ::fidl_next::FromWire::from_wire(unsafe {
17919 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17920 })
17921 }),
17922
17923 source: source.map(|envelope| {
17924 ::fidl_next::FromWire::from_wire(unsafe {
17925 envelope.read_unchecked::<crate::wire::Ref<'de>>()
17926 })
17927 }),
17928
17929 target_name: target_name.map(|envelope| {
17930 ::fidl_next::FromWire::from_wire(unsafe {
17931 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
17932 })
17933 }),
17934 }
17935 }
17936 }
17937
17938 impl<'de> ::fidl_next::FromWireRef<crate::wire::RunnerRegistration<'de>> for RunnerRegistration {
17939 #[inline]
17940 fn from_wire_ref(wire: &crate::wire::RunnerRegistration<'de>) -> Self {
17941 Self {
17942 source_name: wire.table.get(1).map(|envelope| {
17943 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17944 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17945 })
17946 }),
17947
17948 source: wire.table.get(2).map(|envelope| {
17949 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17950 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
17951 })
17952 }),
17953
17954 target_name: wire.table.get(3).map(|envelope| {
17955 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
17956 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
17957 })
17958 }),
17959 }
17960 }
17961 }
17962
17963 #[doc = " A mapping of URL scheme to resolver name.\n"]
17964 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
17965 pub struct ResolverRegistration {
17966 pub resolver: ::core::option::Option<::std::string::String>,
17967
17968 pub source: ::core::option::Option<crate::natural::Ref>,
17969
17970 pub scheme: ::core::option::Option<::std::string::String>,
17971 }
17972
17973 impl ResolverRegistration {
17974 fn __max_ordinal(&self) -> usize {
17975 if self.scheme.is_some() {
17976 return 3;
17977 }
17978
17979 if self.source.is_some() {
17980 return 2;
17981 }
17982
17983 if self.resolver.is_some() {
17984 return 1;
17985 }
17986
17987 0
17988 }
17989 }
17990
17991 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolverRegistration<'static>, ___E>
17992 for ResolverRegistration
17993 where
17994 ___E: ::fidl_next::Encoder + ?Sized,
17995 {
17996 #[inline]
17997 fn encode(
17998 mut self,
17999 encoder: &mut ___E,
18000 out: &mut ::core::mem::MaybeUninit<crate::wire::ResolverRegistration<'static>>,
18001 _: (),
18002 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18003 ::fidl_next::munge!(let crate::wire::ResolverRegistration { table } = out);
18004
18005 let max_ord = self.__max_ordinal();
18006
18007 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18008 ::fidl_next::Wire::zero_padding(&mut out);
18009
18010 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18011 ::fidl_next::wire::Envelope,
18012 >(encoder, max_ord);
18013
18014 for i in 1..=max_ord {
18015 match i {
18016 3 => {
18017 if let Some(value) = self.scheme.take() {
18018 ::fidl_next::wire::Envelope::encode_value::<
18019 ::fidl_next::wire::String<'static>,
18020 ___E,
18021 >(
18022 value, preallocated.encoder, &mut out, 100
18023 )?;
18024 } else {
18025 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18026 }
18027 }
18028
18029 2 => {
18030 if let Some(value) = self.source.take() {
18031 ::fidl_next::wire::Envelope::encode_value::<
18032 crate::wire::Ref<'static>,
18033 ___E,
18034 >(
18035 value, preallocated.encoder, &mut out, ()
18036 )?;
18037 } else {
18038 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18039 }
18040 }
18041
18042 1 => {
18043 if let Some(value) = self.resolver.take() {
18044 ::fidl_next::wire::Envelope::encode_value::<
18045 ::fidl_next::wire::String<'static>,
18046 ___E,
18047 >(
18048 value, preallocated.encoder, &mut out, 100
18049 )?;
18050 } else {
18051 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18052 }
18053 }
18054
18055 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18056 }
18057 unsafe {
18058 preallocated.write_next(out.assume_init_ref());
18059 }
18060 }
18061
18062 ::fidl_next::wire::Table::encode_len(table, max_ord);
18063
18064 Ok(())
18065 }
18066 }
18067
18068 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolverRegistration<'static>, ___E>
18069 for &'a ResolverRegistration
18070 where
18071 ___E: ::fidl_next::Encoder + ?Sized,
18072 {
18073 #[inline]
18074 fn encode(
18075 self,
18076 encoder: &mut ___E,
18077 out: &mut ::core::mem::MaybeUninit<crate::wire::ResolverRegistration<'static>>,
18078 _: (),
18079 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18080 ::fidl_next::munge!(let crate::wire::ResolverRegistration { table } = out);
18081
18082 let max_ord = self.__max_ordinal();
18083
18084 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18085 ::fidl_next::Wire::zero_padding(&mut out);
18086
18087 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18088 ::fidl_next::wire::Envelope,
18089 >(encoder, max_ord);
18090
18091 for i in 1..=max_ord {
18092 match i {
18093 3 => {
18094 if let Some(value) = &self.scheme {
18095 ::fidl_next::wire::Envelope::encode_value::<
18096 ::fidl_next::wire::String<'static>,
18097 ___E,
18098 >(
18099 value, preallocated.encoder, &mut out, 100
18100 )?;
18101 } else {
18102 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18103 }
18104 }
18105
18106 2 => {
18107 if let Some(value) = &self.source {
18108 ::fidl_next::wire::Envelope::encode_value::<
18109 crate::wire::Ref<'static>,
18110 ___E,
18111 >(
18112 value, preallocated.encoder, &mut out, ()
18113 )?;
18114 } else {
18115 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18116 }
18117 }
18118
18119 1 => {
18120 if let Some(value) = &self.resolver {
18121 ::fidl_next::wire::Envelope::encode_value::<
18122 ::fidl_next::wire::String<'static>,
18123 ___E,
18124 >(
18125 value, preallocated.encoder, &mut out, 100
18126 )?;
18127 } else {
18128 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18129 }
18130 }
18131
18132 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18133 }
18134 unsafe {
18135 preallocated.write_next(out.assume_init_ref());
18136 }
18137 }
18138
18139 ::fidl_next::wire::Table::encode_len(table, max_ord);
18140
18141 Ok(())
18142 }
18143 }
18144
18145 impl<'de> ::fidl_next::FromWire<crate::wire::ResolverRegistration<'de>> for ResolverRegistration {
18146 #[inline]
18147 fn from_wire(wire_: crate::wire::ResolverRegistration<'de>) -> Self {
18148 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18149
18150 let resolver = wire_.table.get(1);
18151
18152 let source = wire_.table.get(2);
18153
18154 let scheme = wire_.table.get(3);
18155
18156 Self {
18157 resolver: resolver.map(|envelope| {
18158 ::fidl_next::FromWire::from_wire(unsafe {
18159 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18160 })
18161 }),
18162
18163 source: source.map(|envelope| {
18164 ::fidl_next::FromWire::from_wire(unsafe {
18165 envelope.read_unchecked::<crate::wire::Ref<'de>>()
18166 })
18167 }),
18168
18169 scheme: scheme.map(|envelope| {
18170 ::fidl_next::FromWire::from_wire(unsafe {
18171 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18172 })
18173 }),
18174 }
18175 }
18176 }
18177
18178 impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolverRegistration<'de>>
18179 for ResolverRegistration
18180 {
18181 #[inline]
18182 fn from_wire_ref(wire: &crate::wire::ResolverRegistration<'de>) -> Self {
18183 Self {
18184 resolver: wire.table.get(1).map(|envelope| {
18185 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18186 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18187 })
18188 }),
18189
18190 source: wire.table.get(2).map(|envelope| {
18191 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18192 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
18193 })
18194 }),
18195
18196 scheme: wire.table.get(3).map(|envelope| {
18197 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18198 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18199 })
18200 }),
18201 }
18202 }
18203 }
18204
18205 #[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"]
18206 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18207 pub struct DebugProtocolRegistration {
18208 pub source: ::core::option::Option<crate::natural::Ref>,
18209
18210 pub source_name: ::core::option::Option<::std::string::String>,
18211
18212 pub target_name: ::core::option::Option<::std::string::String>,
18213 }
18214
18215 impl DebugProtocolRegistration {
18216 fn __max_ordinal(&self) -> usize {
18217 if self.target_name.is_some() {
18218 return 3;
18219 }
18220
18221 if self.source_name.is_some() {
18222 return 2;
18223 }
18224
18225 if self.source.is_some() {
18226 return 1;
18227 }
18228
18229 0
18230 }
18231 }
18232
18233 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugProtocolRegistration<'static>, ___E>
18234 for DebugProtocolRegistration
18235 where
18236 ___E: ::fidl_next::Encoder + ?Sized,
18237 {
18238 #[inline]
18239 fn encode(
18240 mut self,
18241 encoder: &mut ___E,
18242 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugProtocolRegistration<'static>>,
18243 _: (),
18244 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18245 ::fidl_next::munge!(let crate::wire::DebugProtocolRegistration { table } = out);
18246
18247 let max_ord = self.__max_ordinal();
18248
18249 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18250 ::fidl_next::Wire::zero_padding(&mut out);
18251
18252 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18253 ::fidl_next::wire::Envelope,
18254 >(encoder, max_ord);
18255
18256 for i in 1..=max_ord {
18257 match i {
18258 3 => {
18259 if let Some(value) = self.target_name.take() {
18260 ::fidl_next::wire::Envelope::encode_value::<
18261 ::fidl_next::wire::String<'static>,
18262 ___E,
18263 >(
18264 value, preallocated.encoder, &mut out, 100
18265 )?;
18266 } else {
18267 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18268 }
18269 }
18270
18271 2 => {
18272 if let Some(value) = self.source_name.take() {
18273 ::fidl_next::wire::Envelope::encode_value::<
18274 ::fidl_next::wire::String<'static>,
18275 ___E,
18276 >(
18277 value, preallocated.encoder, &mut out, 100
18278 )?;
18279 } else {
18280 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18281 }
18282 }
18283
18284 1 => {
18285 if let Some(value) = self.source.take() {
18286 ::fidl_next::wire::Envelope::encode_value::<
18287 crate::wire::Ref<'static>,
18288 ___E,
18289 >(
18290 value, preallocated.encoder, &mut out, ()
18291 )?;
18292 } else {
18293 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18294 }
18295 }
18296
18297 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18298 }
18299 unsafe {
18300 preallocated.write_next(out.assume_init_ref());
18301 }
18302 }
18303
18304 ::fidl_next::wire::Table::encode_len(table, max_ord);
18305
18306 Ok(())
18307 }
18308 }
18309
18310 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugProtocolRegistration<'static>, ___E>
18311 for &'a DebugProtocolRegistration
18312 where
18313 ___E: ::fidl_next::Encoder + ?Sized,
18314 {
18315 #[inline]
18316 fn encode(
18317 self,
18318 encoder: &mut ___E,
18319 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugProtocolRegistration<'static>>,
18320 _: (),
18321 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18322 ::fidl_next::munge!(let crate::wire::DebugProtocolRegistration { table } = out);
18323
18324 let max_ord = self.__max_ordinal();
18325
18326 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18327 ::fidl_next::Wire::zero_padding(&mut out);
18328
18329 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18330 ::fidl_next::wire::Envelope,
18331 >(encoder, max_ord);
18332
18333 for i in 1..=max_ord {
18334 match i {
18335 3 => {
18336 if let Some(value) = &self.target_name {
18337 ::fidl_next::wire::Envelope::encode_value::<
18338 ::fidl_next::wire::String<'static>,
18339 ___E,
18340 >(
18341 value, preallocated.encoder, &mut out, 100
18342 )?;
18343 } else {
18344 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18345 }
18346 }
18347
18348 2 => {
18349 if let Some(value) = &self.source_name {
18350 ::fidl_next::wire::Envelope::encode_value::<
18351 ::fidl_next::wire::String<'static>,
18352 ___E,
18353 >(
18354 value, preallocated.encoder, &mut out, 100
18355 )?;
18356 } else {
18357 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18358 }
18359 }
18360
18361 1 => {
18362 if let Some(value) = &self.source {
18363 ::fidl_next::wire::Envelope::encode_value::<
18364 crate::wire::Ref<'static>,
18365 ___E,
18366 >(
18367 value, preallocated.encoder, &mut out, ()
18368 )?;
18369 } else {
18370 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18371 }
18372 }
18373
18374 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18375 }
18376 unsafe {
18377 preallocated.write_next(out.assume_init_ref());
18378 }
18379 }
18380
18381 ::fidl_next::wire::Table::encode_len(table, max_ord);
18382
18383 Ok(())
18384 }
18385 }
18386
18387 impl<'de> ::fidl_next::FromWire<crate::wire::DebugProtocolRegistration<'de>>
18388 for DebugProtocolRegistration
18389 {
18390 #[inline]
18391 fn from_wire(wire_: crate::wire::DebugProtocolRegistration<'de>) -> Self {
18392 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18393
18394 let source = wire_.table.get(1);
18395
18396 let source_name = wire_.table.get(2);
18397
18398 let target_name = wire_.table.get(3);
18399
18400 Self {
18401 source: source.map(|envelope| {
18402 ::fidl_next::FromWire::from_wire(unsafe {
18403 envelope.read_unchecked::<crate::wire::Ref<'de>>()
18404 })
18405 }),
18406
18407 source_name: source_name.map(|envelope| {
18408 ::fidl_next::FromWire::from_wire(unsafe {
18409 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18410 })
18411 }),
18412
18413 target_name: target_name.map(|envelope| {
18414 ::fidl_next::FromWire::from_wire(unsafe {
18415 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
18416 })
18417 }),
18418 }
18419 }
18420 }
18421
18422 impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugProtocolRegistration<'de>>
18423 for DebugProtocolRegistration
18424 {
18425 #[inline]
18426 fn from_wire_ref(wire: &crate::wire::DebugProtocolRegistration<'de>) -> Self {
18427 Self {
18428 source: wire.table.get(1).map(|envelope| {
18429 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18430 envelope.deref_unchecked::<crate::wire::Ref<'de>>()
18431 })
18432 }),
18433
18434 source_name: wire.table.get(2).map(|envelope| {
18435 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18436 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18437 })
18438 }),
18439
18440 target_name: wire.table.get(3).map(|envelope| {
18441 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
18442 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
18443 })
18444 }),
18445 }
18446 }
18447 }
18448
18449 #[doc = " Declares a capability registered in the debug section of an environment.\n"]
18450 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18451 pub enum DebugRegistration {
18452 Protocol(crate::natural::DebugProtocolRegistration),
18453
18454 UnknownOrdinal_(u64),
18455 }
18456
18457 impl DebugRegistration {
18458 pub fn is_unknown(&self) -> bool {
18459 #[allow(unreachable_patterns)]
18460 match self {
18461 Self::UnknownOrdinal_(_) => true,
18462 _ => false,
18463 }
18464 }
18465 }
18466
18467 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>
18468 for DebugRegistration
18469 where
18470 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
18471 ___E: ::fidl_next::Encoder,
18472 {
18473 #[inline]
18474 fn encode(
18475 self,
18476 encoder: &mut ___E,
18477 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugRegistration<'static>>,
18478 _: (),
18479 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18480 ::fidl_next::munge!(let crate::wire::DebugRegistration { raw, _phantom: _ } = out);
18481
18482 match self {
18483 Self::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
18484 ___E,
18485 crate::wire::DebugProtocolRegistration<'static>,
18486 >(value, 1, encoder, raw, ())?,
18487
18488 Self::UnknownOrdinal_(ordinal) => {
18489 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
18490 }
18491 }
18492
18493 Ok(())
18494 }
18495 }
18496
18497 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>
18498 for &'a DebugRegistration
18499 where
18500 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
18501 ___E: ::fidl_next::Encoder,
18502 {
18503 #[inline]
18504 fn encode(
18505 self,
18506 encoder: &mut ___E,
18507 out: &mut ::core::mem::MaybeUninit<crate::wire::DebugRegistration<'static>>,
18508 _: (),
18509 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18510 ::fidl_next::munge!(let crate::wire::DebugRegistration { raw, _phantom: _ } = out);
18511
18512 match self {
18513 DebugRegistration::Protocol(value) => ::fidl_next::wire::Union::encode_as::<
18514 ___E,
18515 crate::wire::DebugProtocolRegistration<'static>,
18516 >(value, 1, encoder, raw, ())?,
18517
18518 DebugRegistration::UnknownOrdinal_(ordinal) => {
18519 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
18520 }
18521 }
18522
18523 Ok(())
18524 }
18525 }
18526
18527 unsafe impl<___E>
18528 ::fidl_next::EncodeOption<crate::wire_optional::DebugRegistration<'static>, ___E>
18529 for DebugRegistration
18530 where
18531 ___E: ?Sized,
18532 DebugRegistration: ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>,
18533 {
18534 #[inline]
18535 fn encode_option(
18536 this: ::core::option::Option<Self>,
18537 encoder: &mut ___E,
18538 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::DebugRegistration<'static>>,
18539 _: (),
18540 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18541 ::fidl_next::munge!(let crate::wire_optional::DebugRegistration { raw, _phantom: _ } = &mut *out);
18542
18543 if let Some(inner) = this {
18544 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
18545 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
18546 } else {
18547 ::fidl_next::wire::Union::encode_absent(raw);
18548 }
18549
18550 Ok(())
18551 }
18552 }
18553
18554 unsafe impl<'a, ___E>
18555 ::fidl_next::EncodeOption<crate::wire_optional::DebugRegistration<'static>, ___E>
18556 for &'a DebugRegistration
18557 where
18558 ___E: ?Sized,
18559 &'a DebugRegistration: ::fidl_next::Encode<crate::wire::DebugRegistration<'static>, ___E>,
18560 {
18561 #[inline]
18562 fn encode_option(
18563 this: ::core::option::Option<Self>,
18564 encoder: &mut ___E,
18565 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::DebugRegistration<'static>>,
18566 _: (),
18567 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18568 ::fidl_next::munge!(let crate::wire_optional::DebugRegistration { raw, _phantom: _ } = &mut *out);
18569
18570 if let Some(inner) = this {
18571 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
18572 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
18573 } else {
18574 ::fidl_next::wire::Union::encode_absent(raw);
18575 }
18576
18577 Ok(())
18578 }
18579 }
18580
18581 impl<'de> ::fidl_next::FromWire<crate::wire::DebugRegistration<'de>> for DebugRegistration {
18582 #[inline]
18583 fn from_wire(wire: crate::wire::DebugRegistration<'de>) -> Self {
18584 let wire = ::core::mem::ManuallyDrop::new(wire);
18585 match wire.raw.ordinal() {
18586 1 => Self::Protocol(::fidl_next::FromWire::from_wire(unsafe {
18587 wire.raw.get().read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
18588 })),
18589
18590 ord => return Self::UnknownOrdinal_(ord as u64),
18591 }
18592 }
18593 }
18594
18595 impl<'de> ::fidl_next::FromWireRef<crate::wire::DebugRegistration<'de>> for DebugRegistration {
18596 #[inline]
18597 fn from_wire_ref(wire: &crate::wire::DebugRegistration<'de>) -> Self {
18598 match wire.raw.ordinal() {
18599 1 => Self::Protocol(::fidl_next::FromWireRef::from_wire_ref(unsafe {
18600 wire.raw.get().deref_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
18601 })),
18602
18603 ord => return Self::UnknownOrdinal_(ord as u64),
18604 }
18605 }
18606 }
18607
18608 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::DebugRegistration<'de>>
18609 for DebugRegistration
18610 {
18611 #[inline]
18612 fn from_wire_option(
18613 wire: crate::wire_optional::DebugRegistration<'de>,
18614 ) -> ::core::option::Option<Self> {
18615 if let Some(inner) = wire.into_option() {
18616 Some(::fidl_next::FromWire::from_wire(inner))
18617 } else {
18618 None
18619 }
18620 }
18621 }
18622
18623 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::DebugRegistration<'de>>
18624 for Box<DebugRegistration>
18625 {
18626 #[inline]
18627 fn from_wire_option(
18628 wire: crate::wire_optional::DebugRegistration<'de>,
18629 ) -> ::core::option::Option<Self> {
18630 <DebugRegistration as ::fidl_next::FromWireOption<
18631 crate::wire_optional::DebugRegistration<'de>,
18632 >>::from_wire_option(wire)
18633 .map(Box::new)
18634 }
18635 }
18636
18637 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::DebugRegistration<'de>>
18638 for Box<DebugRegistration>
18639 {
18640 #[inline]
18641 fn from_wire_option_ref(
18642 wire: &crate::wire_optional::DebugRegistration<'de>,
18643 ) -> ::core::option::Option<Self> {
18644 if let Some(inner) = wire.as_ref() {
18645 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
18646 } else {
18647 None
18648 }
18649 }
18650 }
18651
18652 #[doc = " Declares an environment which configures a realm.\n"]
18653 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
18654 pub struct Environment {
18655 pub name: ::core::option::Option<::std::string::String>,
18656
18657 pub extends: ::core::option::Option<crate::natural::EnvironmentExtends>,
18658
18659 pub runners: ::core::option::Option<::std::vec::Vec<crate::natural::RunnerRegistration>>,
18660
18661 pub resolvers:
18662 ::core::option::Option<::std::vec::Vec<crate::natural::ResolverRegistration>>,
18663
18664 pub debug_capabilities:
18665 ::core::option::Option<::std::vec::Vec<crate::natural::DebugRegistration>>,
18666
18667 pub stop_timeout_ms: ::core::option::Option<u32>,
18668 }
18669
18670 impl Environment {
18671 fn __max_ordinal(&self) -> usize {
18672 if self.stop_timeout_ms.is_some() {
18673 return 6;
18674 }
18675
18676 if self.debug_capabilities.is_some() {
18677 return 5;
18678 }
18679
18680 if self.resolvers.is_some() {
18681 return 4;
18682 }
18683
18684 if self.runners.is_some() {
18685 return 3;
18686 }
18687
18688 if self.extends.is_some() {
18689 return 2;
18690 }
18691
18692 if self.name.is_some() {
18693 return 1;
18694 }
18695
18696 0
18697 }
18698 }
18699
18700 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Environment<'static>, ___E> for Environment
18701 where
18702 ___E: ::fidl_next::Encoder + ?Sized,
18703 {
18704 #[inline]
18705 fn encode(
18706 mut self,
18707 encoder: &mut ___E,
18708 out: &mut ::core::mem::MaybeUninit<crate::wire::Environment<'static>>,
18709 _: (),
18710 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18711 ::fidl_next::munge!(let crate::wire::Environment { table } = out);
18712
18713 let max_ord = self.__max_ordinal();
18714
18715 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18716 ::fidl_next::Wire::zero_padding(&mut out);
18717
18718 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18719 ::fidl_next::wire::Envelope,
18720 >(encoder, max_ord);
18721
18722 for i in 1..=max_ord {
18723 match i {
18724 6 => {
18725 if let Some(value) = self.stop_timeout_ms.take() {
18726 ::fidl_next::wire::Envelope::encode_value::<
18727 ::fidl_next::wire::Uint32,
18728 ___E,
18729 >(
18730 value, preallocated.encoder, &mut out, ()
18731 )?;
18732 } else {
18733 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18734 }
18735 }
18736
18737 5 => {
18738 if let Some(value) = self.debug_capabilities.take() {
18739 ::fidl_next::wire::Envelope::encode_value::<
18740 ::fidl_next::wire::Vector<
18741 'static,
18742 crate::wire::DebugRegistration<'static>,
18743 >,
18744 ___E,
18745 >(
18746 value, preallocated.encoder, &mut out, (4294967295, ())
18747 )?;
18748 } else {
18749 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18750 }
18751 }
18752
18753 4 => {
18754 if let Some(value) = self.resolvers.take() {
18755 ::fidl_next::wire::Envelope::encode_value::<
18756 ::fidl_next::wire::Vector<
18757 'static,
18758 crate::wire::ResolverRegistration<'static>,
18759 >,
18760 ___E,
18761 >(
18762 value, preallocated.encoder, &mut out, (4294967295, ())
18763 )?;
18764 } else {
18765 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18766 }
18767 }
18768
18769 3 => {
18770 if let Some(value) = self.runners.take() {
18771 ::fidl_next::wire::Envelope::encode_value::<
18772 ::fidl_next::wire::Vector<
18773 'static,
18774 crate::wire::RunnerRegistration<'static>,
18775 >,
18776 ___E,
18777 >(
18778 value, preallocated.encoder, &mut out, (4294967295, ())
18779 )?;
18780 } else {
18781 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18782 }
18783 }
18784
18785 2 => {
18786 if let Some(value) = self.extends.take() {
18787 ::fidl_next::wire::Envelope::encode_value::<
18788 crate::wire::EnvironmentExtends,
18789 ___E,
18790 >(
18791 value, preallocated.encoder, &mut out, ()
18792 )?;
18793 } else {
18794 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18795 }
18796 }
18797
18798 1 => {
18799 if let Some(value) = self.name.take() {
18800 ::fidl_next::wire::Envelope::encode_value::<
18801 ::fidl_next::wire::String<'static>,
18802 ___E,
18803 >(
18804 value, preallocated.encoder, &mut out, 100
18805 )?;
18806 } else {
18807 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18808 }
18809 }
18810
18811 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18812 }
18813 unsafe {
18814 preallocated.write_next(out.assume_init_ref());
18815 }
18816 }
18817
18818 ::fidl_next::wire::Table::encode_len(table, max_ord);
18819
18820 Ok(())
18821 }
18822 }
18823
18824 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Environment<'static>, ___E>
18825 for &'a Environment
18826 where
18827 ___E: ::fidl_next::Encoder + ?Sized,
18828 {
18829 #[inline]
18830 fn encode(
18831 self,
18832 encoder: &mut ___E,
18833 out: &mut ::core::mem::MaybeUninit<crate::wire::Environment<'static>>,
18834 _: (),
18835 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
18836 ::fidl_next::munge!(let crate::wire::Environment { table } = out);
18837
18838 let max_ord = self.__max_ordinal();
18839
18840 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
18841 ::fidl_next::Wire::zero_padding(&mut out);
18842
18843 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
18844 ::fidl_next::wire::Envelope,
18845 >(encoder, max_ord);
18846
18847 for i in 1..=max_ord {
18848 match i {
18849 6 => {
18850 if let Some(value) = &self.stop_timeout_ms {
18851 ::fidl_next::wire::Envelope::encode_value::<
18852 ::fidl_next::wire::Uint32,
18853 ___E,
18854 >(
18855 value, preallocated.encoder, &mut out, ()
18856 )?;
18857 } else {
18858 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18859 }
18860 }
18861
18862 5 => {
18863 if let Some(value) = &self.debug_capabilities {
18864 ::fidl_next::wire::Envelope::encode_value::<
18865 ::fidl_next::wire::Vector<
18866 'static,
18867 crate::wire::DebugRegistration<'static>,
18868 >,
18869 ___E,
18870 >(
18871 value, preallocated.encoder, &mut out, (4294967295, ())
18872 )?;
18873 } else {
18874 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18875 }
18876 }
18877
18878 4 => {
18879 if let Some(value) = &self.resolvers {
18880 ::fidl_next::wire::Envelope::encode_value::<
18881 ::fidl_next::wire::Vector<
18882 'static,
18883 crate::wire::ResolverRegistration<'static>,
18884 >,
18885 ___E,
18886 >(
18887 value, preallocated.encoder, &mut out, (4294967295, ())
18888 )?;
18889 } else {
18890 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18891 }
18892 }
18893
18894 3 => {
18895 if let Some(value) = &self.runners {
18896 ::fidl_next::wire::Envelope::encode_value::<
18897 ::fidl_next::wire::Vector<
18898 'static,
18899 crate::wire::RunnerRegistration<'static>,
18900 >,
18901 ___E,
18902 >(
18903 value, preallocated.encoder, &mut out, (4294967295, ())
18904 )?;
18905 } else {
18906 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18907 }
18908 }
18909
18910 2 => {
18911 if let Some(value) = &self.extends {
18912 ::fidl_next::wire::Envelope::encode_value::<
18913 crate::wire::EnvironmentExtends,
18914 ___E,
18915 >(
18916 value, preallocated.encoder, &mut out, ()
18917 )?;
18918 } else {
18919 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18920 }
18921 }
18922
18923 1 => {
18924 if let Some(value) = &self.name {
18925 ::fidl_next::wire::Envelope::encode_value::<
18926 ::fidl_next::wire::String<'static>,
18927 ___E,
18928 >(
18929 value, preallocated.encoder, &mut out, 100
18930 )?;
18931 } else {
18932 ::fidl_next::wire::Envelope::encode_zero(&mut out)
18933 }
18934 }
18935
18936 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
18937 }
18938 unsafe {
18939 preallocated.write_next(out.assume_init_ref());
18940 }
18941 }
18942
18943 ::fidl_next::wire::Table::encode_len(table, max_ord);
18944
18945 Ok(())
18946 }
18947 }
18948
18949 impl<'de> ::fidl_next::FromWire<crate::wire::Environment<'de>> for Environment {
18950 #[inline]
18951 fn from_wire(wire_: crate::wire::Environment<'de>) -> Self {
18952 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
18953
18954 let name = wire_.table.get(1);
18955
18956 let extends = wire_.table.get(2);
18957
18958 let runners = wire_.table.get(3);
18959
18960 let resolvers = wire_.table.get(4);
18961
18962 let debug_capabilities = wire_.table.get(5);
18963
18964 let stop_timeout_ms = wire_.table.get(6);
18965
18966 Self {
18967
18968
18969 name: name.map(|envelope| ::fidl_next::FromWire::from_wire(
18970 unsafe { envelope.read_unchecked::<::fidl_next::wire::String<'de>>() }
18971 )),
18972
18973
18974 extends: extends.map(|envelope| ::fidl_next::FromWire::from_wire(
18975 unsafe { envelope.read_unchecked::<crate::wire::EnvironmentExtends>() }
18976 )),
18977
18978
18979 runners: runners.map(|envelope| ::fidl_next::FromWire::from_wire(
18980 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>>() }
18981 )),
18982
18983
18984 resolvers: resolvers.map(|envelope| ::fidl_next::FromWire::from_wire(
18985 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>>() }
18986 )),
18987
18988
18989 debug_capabilities: debug_capabilities.map(|envelope| ::fidl_next::FromWire::from_wire(
18990 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>>() }
18991 )),
18992
18993
18994 stop_timeout_ms: stop_timeout_ms.map(|envelope| ::fidl_next::FromWire::from_wire(
18995 unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() }
18996 )),
18997
18998 }
18999 }
19000 }
19001
19002 impl<'de> ::fidl_next::FromWireRef<crate::wire::Environment<'de>> for Environment {
19003 #[inline]
19004 fn from_wire_ref(wire: &crate::wire::Environment<'de>) -> Self {
19005 Self {
19006
19007
19008 name: wire.table.get(1)
19009 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19010 unsafe { envelope.deref_unchecked::<::fidl_next::wire::String<'de>>() }
19011 )),
19012
19013
19014 extends: wire.table.get(2)
19015 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19016 unsafe { envelope.deref_unchecked::<crate::wire::EnvironmentExtends>() }
19017 )),
19018
19019
19020 runners: wire.table.get(3)
19021 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19022 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>>() }
19023 )),
19024
19025
19026 resolvers: wire.table.get(4)
19027 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19028 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>>() }
19029 )),
19030
19031
19032 debug_capabilities: wire.table.get(5)
19033 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19034 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>>() }
19035 )),
19036
19037
19038 stop_timeout_ms: wire.table.get(6)
19039 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19040 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Uint32>() }
19041 )),
19042
19043 }
19044 }
19045 }
19046
19047 #[derive(Debug, Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19048 pub struct ConfigSourceCapabilities {}
19049
19050 impl ConfigSourceCapabilities {
19051 fn __max_ordinal(&self) -> usize {
19052 0
19053 }
19054 }
19055
19056 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSourceCapabilities<'static>, ___E>
19057 for ConfigSourceCapabilities
19058 where
19059 ___E: ::fidl_next::Encoder + ?Sized,
19060 {
19061 #[inline]
19062 fn encode(
19063 mut self,
19064 encoder: &mut ___E,
19065 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSourceCapabilities<'static>>,
19066 _: (),
19067 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19068 ::fidl_next::munge!(let crate::wire::ConfigSourceCapabilities { table } = out);
19069
19070 let max_ord = self.__max_ordinal();
19071
19072 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19073 ::fidl_next::Wire::zero_padding(&mut out);
19074
19075 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19076 ::fidl_next::wire::Envelope,
19077 >(encoder, max_ord);
19078
19079 for i in 1..=max_ord {
19080 match i {
19081 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19082 }
19083 unsafe {
19084 preallocated.write_next(out.assume_init_ref());
19085 }
19086 }
19087
19088 ::fidl_next::wire::Table::encode_len(table, max_ord);
19089
19090 Ok(())
19091 }
19092 }
19093
19094 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSourceCapabilities<'static>, ___E>
19095 for &'a ConfigSourceCapabilities
19096 where
19097 ___E: ::fidl_next::Encoder + ?Sized,
19098 {
19099 #[inline]
19100 fn encode(
19101 self,
19102 encoder: &mut ___E,
19103 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSourceCapabilities<'static>>,
19104 _: (),
19105 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19106 ::fidl_next::munge!(let crate::wire::ConfigSourceCapabilities { table } = out);
19107
19108 let max_ord = self.__max_ordinal();
19109
19110 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19111 ::fidl_next::Wire::zero_padding(&mut out);
19112
19113 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19114 ::fidl_next::wire::Envelope,
19115 >(encoder, max_ord);
19116
19117 for i in 1..=max_ord {
19118 match i {
19119 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19120 }
19121 unsafe {
19122 preallocated.write_next(out.assume_init_ref());
19123 }
19124 }
19125
19126 ::fidl_next::wire::Table::encode_len(table, max_ord);
19127
19128 Ok(())
19129 }
19130 }
19131
19132 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSourceCapabilities<'de>>
19133 for ConfigSourceCapabilities
19134 {
19135 #[inline]
19136 fn from_wire(wire_: crate::wire::ConfigSourceCapabilities<'de>) -> Self {
19137 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
19138
19139 Self {}
19140 }
19141 }
19142
19143 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSourceCapabilities<'de>>
19144 for ConfigSourceCapabilities
19145 {
19146 #[inline]
19147 fn from_wire_ref(wire: &crate::wire::ConfigSourceCapabilities<'de>) -> Self {
19148 Self {}
19149 }
19150 }
19151
19152 #[doc = " Strategies available for resolving configuration values.\n"]
19153 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19154 pub enum ConfigValueSource {
19155 PackagePath(::std::string::String),
19156
19157 Capabilities(crate::natural::ConfigSourceCapabilities),
19158
19159 UnknownOrdinal_(u64),
19160 }
19161
19162 impl ConfigValueSource {
19163 pub fn is_unknown(&self) -> bool {
19164 #[allow(unreachable_patterns)]
19165 match self {
19166 Self::UnknownOrdinal_(_) => true,
19167 _ => false,
19168 }
19169 }
19170 }
19171
19172 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>
19173 for ConfigValueSource
19174 where
19175 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
19176 ___E: ::fidl_next::Encoder,
19177 {
19178 #[inline]
19179 fn encode(
19180 self,
19181 encoder: &mut ___E,
19182 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSource<'static>>,
19183 _: (),
19184 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19185 ::fidl_next::munge!(let crate::wire::ConfigValueSource { raw, _phantom: _ } = out);
19186
19187 match self {
19188 Self::PackagePath(value) => ::fidl_next::wire::Union::encode_as::<
19189 ___E,
19190 ::fidl_next::wire::String<'static>,
19191 >(value, 1, encoder, raw, 4294967295)?,
19192
19193 Self::Capabilities(value) => ::fidl_next::wire::Union::encode_as::<
19194 ___E,
19195 crate::wire::ConfigSourceCapabilities<'static>,
19196 >(value, 2, encoder, raw, ())?,
19197
19198 Self::UnknownOrdinal_(ordinal) => {
19199 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
19200 }
19201 }
19202
19203 Ok(())
19204 }
19205 }
19206
19207 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>
19208 for &'a ConfigValueSource
19209 where
19210 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
19211 ___E: ::fidl_next::Encoder,
19212 {
19213 #[inline]
19214 fn encode(
19215 self,
19216 encoder: &mut ___E,
19217 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSource<'static>>,
19218 _: (),
19219 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19220 ::fidl_next::munge!(let crate::wire::ConfigValueSource { raw, _phantom: _ } = out);
19221
19222 match self {
19223 ConfigValueSource::PackagePath(value) => {
19224 ::fidl_next::wire::Union::encode_as::<___E, ::fidl_next::wire::String<'static>>(
19225 value, 1, encoder, raw, 4294967295,
19226 )?
19227 }
19228
19229 ConfigValueSource::Capabilities(value) => {
19230 ::fidl_next::wire::Union::encode_as::<
19231 ___E,
19232 crate::wire::ConfigSourceCapabilities<'static>,
19233 >(value, 2, encoder, raw, ())?
19234 }
19235
19236 ConfigValueSource::UnknownOrdinal_(ordinal) => {
19237 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
19238 }
19239 }
19240
19241 Ok(())
19242 }
19243 }
19244
19245 unsafe impl<___E>
19246 ::fidl_next::EncodeOption<crate::wire_optional::ConfigValueSource<'static>, ___E>
19247 for ConfigValueSource
19248 where
19249 ___E: ?Sized,
19250 ConfigValueSource: ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>,
19251 {
19252 #[inline]
19253 fn encode_option(
19254 this: ::core::option::Option<Self>,
19255 encoder: &mut ___E,
19256 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValueSource<'static>>,
19257 _: (),
19258 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19259 ::fidl_next::munge!(let crate::wire_optional::ConfigValueSource { raw, _phantom: _ } = &mut *out);
19260
19261 if let Some(inner) = this {
19262 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19263 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19264 } else {
19265 ::fidl_next::wire::Union::encode_absent(raw);
19266 }
19267
19268 Ok(())
19269 }
19270 }
19271
19272 unsafe impl<'a, ___E>
19273 ::fidl_next::EncodeOption<crate::wire_optional::ConfigValueSource<'static>, ___E>
19274 for &'a ConfigValueSource
19275 where
19276 ___E: ?Sized,
19277 &'a ConfigValueSource: ::fidl_next::Encode<crate::wire::ConfigValueSource<'static>, ___E>,
19278 {
19279 #[inline]
19280 fn encode_option(
19281 this: ::core::option::Option<Self>,
19282 encoder: &mut ___E,
19283 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::ConfigValueSource<'static>>,
19284 _: (),
19285 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19286 ::fidl_next::munge!(let crate::wire_optional::ConfigValueSource { raw, _phantom: _ } = &mut *out);
19287
19288 if let Some(inner) = this {
19289 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
19290 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
19291 } else {
19292 ::fidl_next::wire::Union::encode_absent(raw);
19293 }
19294
19295 Ok(())
19296 }
19297 }
19298
19299 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValueSource<'de>> for ConfigValueSource {
19300 #[inline]
19301 fn from_wire(wire: crate::wire::ConfigValueSource<'de>) -> Self {
19302 let wire = ::core::mem::ManuallyDrop::new(wire);
19303 match wire.raw.ordinal() {
19304 1 => Self::PackagePath(::fidl_next::FromWire::from_wire(unsafe {
19305 wire.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
19306 })),
19307
19308 2 => Self::Capabilities(::fidl_next::FromWire::from_wire(unsafe {
19309 wire.raw.get().read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
19310 })),
19311
19312 ord => return Self::UnknownOrdinal_(ord as u64),
19313 }
19314 }
19315 }
19316
19317 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValueSource<'de>> for ConfigValueSource {
19318 #[inline]
19319 fn from_wire_ref(wire: &crate::wire::ConfigValueSource<'de>) -> Self {
19320 match wire.raw.ordinal() {
19321 1 => Self::PackagePath(::fidl_next::FromWireRef::from_wire_ref(unsafe {
19322 wire.raw.get().deref_unchecked::<::fidl_next::wire::String<'de>>()
19323 })),
19324
19325 2 => Self::Capabilities(::fidl_next::FromWireRef::from_wire_ref(unsafe {
19326 wire.raw.get().deref_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
19327 })),
19328
19329 ord => return Self::UnknownOrdinal_(ord as u64),
19330 }
19331 }
19332 }
19333
19334 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValueSource<'de>>
19335 for ConfigValueSource
19336 {
19337 #[inline]
19338 fn from_wire_option(
19339 wire: crate::wire_optional::ConfigValueSource<'de>,
19340 ) -> ::core::option::Option<Self> {
19341 if let Some(inner) = wire.into_option() {
19342 Some(::fidl_next::FromWire::from_wire(inner))
19343 } else {
19344 None
19345 }
19346 }
19347 }
19348
19349 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::ConfigValueSource<'de>>
19350 for Box<ConfigValueSource>
19351 {
19352 #[inline]
19353 fn from_wire_option(
19354 wire: crate::wire_optional::ConfigValueSource<'de>,
19355 ) -> ::core::option::Option<Self> {
19356 <ConfigValueSource as ::fidl_next::FromWireOption<
19357 crate::wire_optional::ConfigValueSource<'de>,
19358 >>::from_wire_option(wire)
19359 .map(Box::new)
19360 }
19361 }
19362
19363 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::ConfigValueSource<'de>>
19364 for Box<ConfigValueSource>
19365 {
19366 #[inline]
19367 fn from_wire_option_ref(
19368 wire: &crate::wire_optional::ConfigValueSource<'de>,
19369 ) -> ::core::option::Option<Self> {
19370 if let Some(inner) = wire.as_ref() {
19371 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
19372 } else {
19373 None
19374 }
19375 }
19376 }
19377
19378 #[doc = " The schema of a component\'s configuration interface.\n"]
19379 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
19380 pub struct ConfigSchema {
19381 pub fields: ::core::option::Option<::std::vec::Vec<crate::natural::ConfigField>>,
19382
19383 pub checksum: ::core::option::Option<crate::natural::ConfigChecksum>,
19384
19385 pub value_source: ::core::option::Option<crate::natural::ConfigValueSource>,
19386 }
19387
19388 impl ConfigSchema {
19389 fn __max_ordinal(&self) -> usize {
19390 if self.value_source.is_some() {
19391 return 3;
19392 }
19393
19394 if self.checksum.is_some() {
19395 return 2;
19396 }
19397
19398 if self.fields.is_some() {
19399 return 1;
19400 }
19401
19402 0
19403 }
19404 }
19405
19406 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigSchema<'static>, ___E> for ConfigSchema
19407 where
19408 ___E: ::fidl_next::Encoder + ?Sized,
19409 {
19410 #[inline]
19411 fn encode(
19412 mut self,
19413 encoder: &mut ___E,
19414 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSchema<'static>>,
19415 _: (),
19416 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19417 ::fidl_next::munge!(let crate::wire::ConfigSchema { table } = out);
19418
19419 let max_ord = self.__max_ordinal();
19420
19421 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19422 ::fidl_next::Wire::zero_padding(&mut out);
19423
19424 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19425 ::fidl_next::wire::Envelope,
19426 >(encoder, max_ord);
19427
19428 for i in 1..=max_ord {
19429 match i {
19430 3 => {
19431 if let Some(value) = self.value_source.take() {
19432 ::fidl_next::wire::Envelope::encode_value::<
19433 crate::wire::ConfigValueSource<'static>,
19434 ___E,
19435 >(
19436 value, preallocated.encoder, &mut out, ()
19437 )?;
19438 } else {
19439 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19440 }
19441 }
19442
19443 2 => {
19444 if let Some(value) = self.checksum.take() {
19445 ::fidl_next::wire::Envelope::encode_value::<
19446 crate::wire::ConfigChecksum<'static>,
19447 ___E,
19448 >(
19449 value, preallocated.encoder, &mut out, ()
19450 )?;
19451 } else {
19452 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19453 }
19454 }
19455
19456 1 => {
19457 if let Some(value) = self.fields.take() {
19458 ::fidl_next::wire::Envelope::encode_value::<
19459 ::fidl_next::wire::Vector<
19460 'static,
19461 crate::wire::ConfigField<'static>,
19462 >,
19463 ___E,
19464 >(
19465 value, preallocated.encoder, &mut out, (4294967295, ())
19466 )?;
19467 } else {
19468 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19469 }
19470 }
19471
19472 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19473 }
19474 unsafe {
19475 preallocated.write_next(out.assume_init_ref());
19476 }
19477 }
19478
19479 ::fidl_next::wire::Table::encode_len(table, max_ord);
19480
19481 Ok(())
19482 }
19483 }
19484
19485 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigSchema<'static>, ___E>
19486 for &'a ConfigSchema
19487 where
19488 ___E: ::fidl_next::Encoder + ?Sized,
19489 {
19490 #[inline]
19491 fn encode(
19492 self,
19493 encoder: &mut ___E,
19494 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigSchema<'static>>,
19495 _: (),
19496 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19497 ::fidl_next::munge!(let crate::wire::ConfigSchema { table } = out);
19498
19499 let max_ord = self.__max_ordinal();
19500
19501 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19502 ::fidl_next::Wire::zero_padding(&mut out);
19503
19504 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19505 ::fidl_next::wire::Envelope,
19506 >(encoder, max_ord);
19507
19508 for i in 1..=max_ord {
19509 match i {
19510 3 => {
19511 if let Some(value) = &self.value_source {
19512 ::fidl_next::wire::Envelope::encode_value::<
19513 crate::wire::ConfigValueSource<'static>,
19514 ___E,
19515 >(
19516 value, preallocated.encoder, &mut out, ()
19517 )?;
19518 } else {
19519 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19520 }
19521 }
19522
19523 2 => {
19524 if let Some(value) = &self.checksum {
19525 ::fidl_next::wire::Envelope::encode_value::<
19526 crate::wire::ConfigChecksum<'static>,
19527 ___E,
19528 >(
19529 value, preallocated.encoder, &mut out, ()
19530 )?;
19531 } else {
19532 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19533 }
19534 }
19535
19536 1 => {
19537 if let Some(value) = &self.fields {
19538 ::fidl_next::wire::Envelope::encode_value::<
19539 ::fidl_next::wire::Vector<
19540 'static,
19541 crate::wire::ConfigField<'static>,
19542 >,
19543 ___E,
19544 >(
19545 value, preallocated.encoder, &mut out, (4294967295, ())
19546 )?;
19547 } else {
19548 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19549 }
19550 }
19551
19552 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19553 }
19554 unsafe {
19555 preallocated.write_next(out.assume_init_ref());
19556 }
19557 }
19558
19559 ::fidl_next::wire::Table::encode_len(table, max_ord);
19560
19561 Ok(())
19562 }
19563 }
19564
19565 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigSchema<'de>> for ConfigSchema {
19566 #[inline]
19567 fn from_wire(wire_: crate::wire::ConfigSchema<'de>) -> Self {
19568 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
19569
19570 let fields = wire_.table.get(1);
19571
19572 let checksum = wire_.table.get(2);
19573
19574 let value_source = wire_.table.get(3);
19575
19576 Self {
19577
19578
19579 fields: fields.map(|envelope| ::fidl_next::FromWire::from_wire(
19580 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>() }
19581 )),
19582
19583
19584 checksum: checksum.map(|envelope| ::fidl_next::FromWire::from_wire(
19585 unsafe { envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>() }
19586 )),
19587
19588
19589 value_source: value_source.map(|envelope| ::fidl_next::FromWire::from_wire(
19590 unsafe { envelope.read_unchecked::<crate::wire::ConfigValueSource<'de>>() }
19591 )),
19592
19593 }
19594 }
19595 }
19596
19597 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigSchema<'de>> for ConfigSchema {
19598 #[inline]
19599 fn from_wire_ref(wire: &crate::wire::ConfigSchema<'de>) -> Self {
19600 Self {
19601
19602
19603 fields: wire.table.get(1)
19604 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19605 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>() }
19606 )),
19607
19608
19609 checksum: wire.table.get(2)
19610 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19611 unsafe { envelope.deref_unchecked::<crate::wire::ConfigChecksum<'de>>() }
19612 )),
19613
19614
19615 value_source: wire.table.get(3)
19616 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
19617 unsafe { envelope.deref_unchecked::<crate::wire::ConfigValueSource<'de>>() }
19618 )),
19619
19620 }
19621 }
19622 }
19623
19624 #[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"]
19625 #[derive(Debug, Default, Clone, PartialEq)]
19626 pub struct Component {
19627 pub program: ::core::option::Option<crate::natural::Program>,
19628
19629 pub uses: ::core::option::Option<::std::vec::Vec<crate::natural::Use>>,
19630
19631 pub exposes: ::core::option::Option<::std::vec::Vec<crate::natural::Expose>>,
19632
19633 pub offers: ::core::option::Option<::std::vec::Vec<crate::natural::Offer>>,
19634
19635 pub capabilities: ::core::option::Option<::std::vec::Vec<crate::natural::Capability>>,
19636
19637 pub children: ::core::option::Option<::std::vec::Vec<crate::natural::Child>>,
19638
19639 pub collections: ::core::option::Option<::std::vec::Vec<crate::natural::Collection>>,
19640
19641 pub environments: ::core::option::Option<::std::vec::Vec<crate::natural::Environment>>,
19642
19643 pub facets: ::core::option::Option<::fidl_next_common_fuchsia_data::natural::Dictionary>,
19644
19645 pub config: ::core::option::Option<crate::natural::ConfigSchema>,
19646
19647 pub debug_info: ::core::option::Option<crate::natural::DebugInfo>,
19648 }
19649
19650 impl Component {
19651 fn __max_ordinal(&self) -> usize {
19652 if self.debug_info.is_some() {
19653 return 11;
19654 }
19655
19656 if self.config.is_some() {
19657 return 10;
19658 }
19659
19660 if self.facets.is_some() {
19661 return 9;
19662 }
19663
19664 if self.environments.is_some() {
19665 return 8;
19666 }
19667
19668 if self.collections.is_some() {
19669 return 7;
19670 }
19671
19672 if self.children.is_some() {
19673 return 6;
19674 }
19675
19676 if self.capabilities.is_some() {
19677 return 5;
19678 }
19679
19680 if self.offers.is_some() {
19681 return 4;
19682 }
19683
19684 if self.exposes.is_some() {
19685 return 3;
19686 }
19687
19688 if self.uses.is_some() {
19689 return 2;
19690 }
19691
19692 if self.program.is_some() {
19693 return 1;
19694 }
19695
19696 0
19697 }
19698 }
19699
19700 unsafe impl<___E> ::fidl_next::Encode<crate::wire::Component<'static>, ___E> for Component
19701 where
19702 ___E: ::fidl_next::Encoder + ?Sized,
19703 {
19704 #[inline]
19705 fn encode(
19706 mut self,
19707 encoder: &mut ___E,
19708 out: &mut ::core::mem::MaybeUninit<crate::wire::Component<'static>>,
19709 _: (),
19710 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19711 ::fidl_next::munge!(let crate::wire::Component { table } = out);
19712
19713 let max_ord = self.__max_ordinal();
19714
19715 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19716 ::fidl_next::Wire::zero_padding(&mut out);
19717
19718 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19719 ::fidl_next::wire::Envelope,
19720 >(encoder, max_ord);
19721
19722 for i in 1..=max_ord {
19723 match i {
19724 11 => {
19725 if let Some(value) = self.debug_info.take() {
19726 ::fidl_next::wire::Envelope::encode_value::<
19727 crate::wire::DebugInfo<'static>,
19728 ___E,
19729 >(
19730 value, preallocated.encoder, &mut out, ()
19731 )?;
19732 } else {
19733 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19734 }
19735 }
19736
19737 10 => {
19738 if let Some(value) = self.config.take() {
19739 ::fidl_next::wire::Envelope::encode_value::<
19740 crate::wire::ConfigSchema<'static>,
19741 ___E,
19742 >(
19743 value, preallocated.encoder, &mut out, ()
19744 )?;
19745 } else {
19746 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19747 }
19748 }
19749
19750 9 => {
19751 if let Some(value) = self.facets.take() {
19752 ::fidl_next::wire::Envelope::encode_value::<
19753 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
19754 ___E,
19755 >(
19756 value, preallocated.encoder, &mut out, ()
19757 )?;
19758 } else {
19759 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19760 }
19761 }
19762
19763 8 => {
19764 if let Some(value) = self.environments.take() {
19765 ::fidl_next::wire::Envelope::encode_value::<
19766 ::fidl_next::wire::Vector<
19767 'static,
19768 crate::wire::Environment<'static>,
19769 >,
19770 ___E,
19771 >(
19772 value, preallocated.encoder, &mut out, (4294967295, ())
19773 )?;
19774 } else {
19775 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19776 }
19777 }
19778
19779 7 => {
19780 if let Some(value) = self.collections.take() {
19781 ::fidl_next::wire::Envelope::encode_value::<
19782 ::fidl_next::wire::Vector<
19783 'static,
19784 crate::wire::Collection<'static>,
19785 >,
19786 ___E,
19787 >(
19788 value, preallocated.encoder, &mut out, (4294967295, ())
19789 )?;
19790 } else {
19791 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19792 }
19793 }
19794
19795 6 => {
19796 if let Some(value) = self.children.take() {
19797 ::fidl_next::wire::Envelope::encode_value::<
19798 ::fidl_next::wire::Vector<'static, crate::wire::Child<'static>>,
19799 ___E,
19800 >(
19801 value, preallocated.encoder, &mut out, (4294967295, ())
19802 )?;
19803 } else {
19804 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19805 }
19806 }
19807
19808 5 => {
19809 if let Some(value) = self.capabilities.take() {
19810 ::fidl_next::wire::Envelope::encode_value::<
19811 ::fidl_next::wire::Vector<
19812 'static,
19813 crate::wire::Capability<'static>,
19814 >,
19815 ___E,
19816 >(
19817 value, preallocated.encoder, &mut out, (4294967295, ())
19818 )?;
19819 } else {
19820 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19821 }
19822 }
19823
19824 4 => {
19825 if let Some(value) = self.offers.take() {
19826 ::fidl_next::wire::Envelope::encode_value::<
19827 ::fidl_next::wire::Vector<'static, crate::wire::Offer<'static>>,
19828 ___E,
19829 >(
19830 value, preallocated.encoder, &mut out, (4294967295, ())
19831 )?;
19832 } else {
19833 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19834 }
19835 }
19836
19837 3 => {
19838 if let Some(value) = self.exposes.take() {
19839 ::fidl_next::wire::Envelope::encode_value::<
19840 ::fidl_next::wire::Vector<'static, crate::wire::Expose<'static>>,
19841 ___E,
19842 >(
19843 value, preallocated.encoder, &mut out, (4294967295, ())
19844 )?;
19845 } else {
19846 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19847 }
19848 }
19849
19850 2 => {
19851 if let Some(value) = self.uses.take() {
19852 ::fidl_next::wire::Envelope::encode_value::<
19853 ::fidl_next::wire::Vector<'static, crate::wire::Use<'static>>,
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 1 => {
19864 if let Some(value) = self.program.take() {
19865 ::fidl_next::wire::Envelope::encode_value::<
19866 crate::wire::Program<'static>,
19867 ___E,
19868 >(
19869 value, preallocated.encoder, &mut out, ()
19870 )?;
19871 } else {
19872 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19873 }
19874 }
19875
19876 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
19877 }
19878 unsafe {
19879 preallocated.write_next(out.assume_init_ref());
19880 }
19881 }
19882
19883 ::fidl_next::wire::Table::encode_len(table, max_ord);
19884
19885 Ok(())
19886 }
19887 }
19888
19889 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::Component<'static>, ___E> for &'a Component
19890 where
19891 ___E: ::fidl_next::Encoder + ?Sized,
19892 {
19893 #[inline]
19894 fn encode(
19895 self,
19896 encoder: &mut ___E,
19897 out: &mut ::core::mem::MaybeUninit<crate::wire::Component<'static>>,
19898 _: (),
19899 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
19900 ::fidl_next::munge!(let crate::wire::Component { table } = out);
19901
19902 let max_ord = self.__max_ordinal();
19903
19904 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
19905 ::fidl_next::Wire::zero_padding(&mut out);
19906
19907 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
19908 ::fidl_next::wire::Envelope,
19909 >(encoder, max_ord);
19910
19911 for i in 1..=max_ord {
19912 match i {
19913 11 => {
19914 if let Some(value) = &self.debug_info {
19915 ::fidl_next::wire::Envelope::encode_value::<
19916 crate::wire::DebugInfo<'static>,
19917 ___E,
19918 >(
19919 value, preallocated.encoder, &mut out, ()
19920 )?;
19921 } else {
19922 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19923 }
19924 }
19925
19926 10 => {
19927 if let Some(value) = &self.config {
19928 ::fidl_next::wire::Envelope::encode_value::<
19929 crate::wire::ConfigSchema<'static>,
19930 ___E,
19931 >(
19932 value, preallocated.encoder, &mut out, ()
19933 )?;
19934 } else {
19935 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19936 }
19937 }
19938
19939 9 => {
19940 if let Some(value) = &self.facets {
19941 ::fidl_next::wire::Envelope::encode_value::<
19942 ::fidl_next_common_fuchsia_data::wire::Dictionary<'static>,
19943 ___E,
19944 >(
19945 value, preallocated.encoder, &mut out, ()
19946 )?;
19947 } else {
19948 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19949 }
19950 }
19951
19952 8 => {
19953 if let Some(value) = &self.environments {
19954 ::fidl_next::wire::Envelope::encode_value::<
19955 ::fidl_next::wire::Vector<
19956 'static,
19957 crate::wire::Environment<'static>,
19958 >,
19959 ___E,
19960 >(
19961 value, preallocated.encoder, &mut out, (4294967295, ())
19962 )?;
19963 } else {
19964 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19965 }
19966 }
19967
19968 7 => {
19969 if let Some(value) = &self.collections {
19970 ::fidl_next::wire::Envelope::encode_value::<
19971 ::fidl_next::wire::Vector<
19972 'static,
19973 crate::wire::Collection<'static>,
19974 >,
19975 ___E,
19976 >(
19977 value, preallocated.encoder, &mut out, (4294967295, ())
19978 )?;
19979 } else {
19980 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19981 }
19982 }
19983
19984 6 => {
19985 if let Some(value) = &self.children {
19986 ::fidl_next::wire::Envelope::encode_value::<
19987 ::fidl_next::wire::Vector<'static, crate::wire::Child<'static>>,
19988 ___E,
19989 >(
19990 value, preallocated.encoder, &mut out, (4294967295, ())
19991 )?;
19992 } else {
19993 ::fidl_next::wire::Envelope::encode_zero(&mut out)
19994 }
19995 }
19996
19997 5 => {
19998 if let Some(value) = &self.capabilities {
19999 ::fidl_next::wire::Envelope::encode_value::<
20000 ::fidl_next::wire::Vector<
20001 'static,
20002 crate::wire::Capability<'static>,
20003 >,
20004 ___E,
20005 >(
20006 value, preallocated.encoder, &mut out, (4294967295, ())
20007 )?;
20008 } else {
20009 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20010 }
20011 }
20012
20013 4 => {
20014 if let Some(value) = &self.offers {
20015 ::fidl_next::wire::Envelope::encode_value::<
20016 ::fidl_next::wire::Vector<'static, crate::wire::Offer<'static>>,
20017 ___E,
20018 >(
20019 value, preallocated.encoder, &mut out, (4294967295, ())
20020 )?;
20021 } else {
20022 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20023 }
20024 }
20025
20026 3 => {
20027 if let Some(value) = &self.exposes {
20028 ::fidl_next::wire::Envelope::encode_value::<
20029 ::fidl_next::wire::Vector<'static, crate::wire::Expose<'static>>,
20030 ___E,
20031 >(
20032 value, preallocated.encoder, &mut out, (4294967295, ())
20033 )?;
20034 } else {
20035 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20036 }
20037 }
20038
20039 2 => {
20040 if let Some(value) = &self.uses {
20041 ::fidl_next::wire::Envelope::encode_value::<
20042 ::fidl_next::wire::Vector<'static, crate::wire::Use<'static>>,
20043 ___E,
20044 >(
20045 value, preallocated.encoder, &mut out, (4294967295, ())
20046 )?;
20047 } else {
20048 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20049 }
20050 }
20051
20052 1 => {
20053 if let Some(value) = &self.program {
20054 ::fidl_next::wire::Envelope::encode_value::<
20055 crate::wire::Program<'static>,
20056 ___E,
20057 >(
20058 value, preallocated.encoder, &mut out, ()
20059 )?;
20060 } else {
20061 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20062 }
20063 }
20064
20065 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20066 }
20067 unsafe {
20068 preallocated.write_next(out.assume_init_ref());
20069 }
20070 }
20071
20072 ::fidl_next::wire::Table::encode_len(table, max_ord);
20073
20074 Ok(())
20075 }
20076 }
20077
20078 impl<'de> ::fidl_next::FromWire<crate::wire::Component<'de>> for Component {
20079 #[inline]
20080 fn from_wire(wire_: crate::wire::Component<'de>) -> Self {
20081 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20082
20083 let program = wire_.table.get(1);
20084
20085 let uses = wire_.table.get(2);
20086
20087 let exposes = wire_.table.get(3);
20088
20089 let offers = wire_.table.get(4);
20090
20091 let capabilities = wire_.table.get(5);
20092
20093 let children = wire_.table.get(6);
20094
20095 let collections = wire_.table.get(7);
20096
20097 let environments = wire_.table.get(8);
20098
20099 let facets = wire_.table.get(9);
20100
20101 let config = wire_.table.get(10);
20102
20103 let debug_info = wire_.table.get(11);
20104
20105 Self {
20106
20107
20108 program: program.map(|envelope| ::fidl_next::FromWire::from_wire(
20109 unsafe { envelope.read_unchecked::<crate::wire::Program<'de>>() }
20110 )),
20111
20112
20113 uses: uses.map(|envelope| ::fidl_next::FromWire::from_wire(
20114 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>() }
20115 )),
20116
20117
20118 exposes: exposes.map(|envelope| ::fidl_next::FromWire::from_wire(
20119 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>() }
20120 )),
20121
20122
20123 offers: offers.map(|envelope| ::fidl_next::FromWire::from_wire(
20124 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>() }
20125 )),
20126
20127
20128 capabilities: capabilities.map(|envelope| ::fidl_next::FromWire::from_wire(
20129 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>() }
20130 )),
20131
20132
20133 children: children.map(|envelope| ::fidl_next::FromWire::from_wire(
20134 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>() }
20135 )),
20136
20137
20138 collections: collections.map(|envelope| ::fidl_next::FromWire::from_wire(
20139 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>() }
20140 )),
20141
20142
20143 environments: environments.map(|envelope| ::fidl_next::FromWire::from_wire(
20144 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>() }
20145 )),
20146
20147
20148 facets: facets.map(|envelope| ::fidl_next::FromWire::from_wire(
20149 unsafe { envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
20150 )),
20151
20152
20153 config: config.map(|envelope| ::fidl_next::FromWire::from_wire(
20154 unsafe { envelope.read_unchecked::<crate::wire::ConfigSchema<'de>>() }
20155 )),
20156
20157
20158 debug_info: debug_info.map(|envelope| ::fidl_next::FromWire::from_wire(
20159 unsafe { envelope.read_unchecked::<crate::wire::DebugInfo<'de>>() }
20160 )),
20161
20162 }
20163 }
20164 }
20165
20166 impl<'de> ::fidl_next::FromWireRef<crate::wire::Component<'de>> for Component {
20167 #[inline]
20168 fn from_wire_ref(wire: &crate::wire::Component<'de>) -> Self {
20169 Self {
20170
20171
20172 program: wire.table.get(1)
20173 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20174 unsafe { envelope.deref_unchecked::<crate::wire::Program<'de>>() }
20175 )),
20176
20177
20178 uses: wire.table.get(2)
20179 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20180 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>() }
20181 )),
20182
20183
20184 exposes: wire.table.get(3)
20185 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20186 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>() }
20187 )),
20188
20189
20190 offers: wire.table.get(4)
20191 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20192 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>() }
20193 )),
20194
20195
20196 capabilities: wire.table.get(5)
20197 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20198 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>() }
20199 )),
20200
20201
20202 children: wire.table.get(6)
20203 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20204 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>() }
20205 )),
20206
20207
20208 collections: wire.table.get(7)
20209 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20210 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>() }
20211 )),
20212
20213
20214 environments: wire.table.get(8)
20215 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20216 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>() }
20217 )),
20218
20219
20220 facets: wire.table.get(9)
20221 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20222 unsafe { envelope.deref_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>() }
20223 )),
20224
20225
20226 config: wire.table.get(10)
20227 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20228 unsafe { envelope.deref_unchecked::<crate::wire::ConfigSchema<'de>>() }
20229 )),
20230
20231
20232 debug_info: wire.table.get(11)
20233 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20234 unsafe { envelope.deref_unchecked::<crate::wire::DebugInfo<'de>>() }
20235 )),
20236
20237 }
20238 }
20239 }
20240
20241 #[doc = " An individual configuration value. It is matched against a specific configuration field based\n on its offset within `ValuesData.values`.\n"]
20242 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20243 pub struct ConfigValueSpec {
20244 pub value: ::core::option::Option<crate::natural::ConfigValue>,
20245 }
20246
20247 impl ConfigValueSpec {
20248 fn __max_ordinal(&self) -> usize {
20249 if self.value.is_some() {
20250 return 1;
20251 }
20252
20253 0
20254 }
20255 }
20256
20257 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValueSpec<'static>, ___E>
20258 for ConfigValueSpec
20259 where
20260 ___E: ::fidl_next::Encoder + ?Sized,
20261 {
20262 #[inline]
20263 fn encode(
20264 mut self,
20265 encoder: &mut ___E,
20266 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSpec<'static>>,
20267 _: (),
20268 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20269 ::fidl_next::munge!(let crate::wire::ConfigValueSpec { table } = out);
20270
20271 let max_ord = self.__max_ordinal();
20272
20273 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20274 ::fidl_next::Wire::zero_padding(&mut out);
20275
20276 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20277 ::fidl_next::wire::Envelope,
20278 >(encoder, max_ord);
20279
20280 for i in 1..=max_ord {
20281 match i {
20282 1 => {
20283 if let Some(value) = self.value.take() {
20284 ::fidl_next::wire::Envelope::encode_value::<
20285 crate::wire::ConfigValue<'static>,
20286 ___E,
20287 >(
20288 value, preallocated.encoder, &mut out, ()
20289 )?;
20290 } else {
20291 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20292 }
20293 }
20294
20295 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20296 }
20297 unsafe {
20298 preallocated.write_next(out.assume_init_ref());
20299 }
20300 }
20301
20302 ::fidl_next::wire::Table::encode_len(table, max_ord);
20303
20304 Ok(())
20305 }
20306 }
20307
20308 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValueSpec<'static>, ___E>
20309 for &'a ConfigValueSpec
20310 where
20311 ___E: ::fidl_next::Encoder + ?Sized,
20312 {
20313 #[inline]
20314 fn encode(
20315 self,
20316 encoder: &mut ___E,
20317 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValueSpec<'static>>,
20318 _: (),
20319 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20320 ::fidl_next::munge!(let crate::wire::ConfigValueSpec { table } = out);
20321
20322 let max_ord = self.__max_ordinal();
20323
20324 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20325 ::fidl_next::Wire::zero_padding(&mut out);
20326
20327 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20328 ::fidl_next::wire::Envelope,
20329 >(encoder, max_ord);
20330
20331 for i in 1..=max_ord {
20332 match i {
20333 1 => {
20334 if let Some(value) = &self.value {
20335 ::fidl_next::wire::Envelope::encode_value::<
20336 crate::wire::ConfigValue<'static>,
20337 ___E,
20338 >(
20339 value, preallocated.encoder, &mut out, ()
20340 )?;
20341 } else {
20342 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20343 }
20344 }
20345
20346 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20347 }
20348 unsafe {
20349 preallocated.write_next(out.assume_init_ref());
20350 }
20351 }
20352
20353 ::fidl_next::wire::Table::encode_len(table, max_ord);
20354
20355 Ok(())
20356 }
20357 }
20358
20359 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValueSpec<'de>> for ConfigValueSpec {
20360 #[inline]
20361 fn from_wire(wire_: crate::wire::ConfigValueSpec<'de>) -> Self {
20362 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20363
20364 let value = wire_.table.get(1);
20365
20366 Self {
20367 value: value.map(|envelope| {
20368 ::fidl_next::FromWire::from_wire(unsafe {
20369 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
20370 })
20371 }),
20372 }
20373 }
20374 }
20375
20376 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValueSpec<'de>> for ConfigValueSpec {
20377 #[inline]
20378 fn from_wire_ref(wire: &crate::wire::ConfigValueSpec<'de>) -> Self {
20379 Self {
20380 value: wire.table.get(1).map(|envelope| {
20381 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
20382 envelope.deref_unchecked::<crate::wire::ConfigValue<'de>>()
20383 })
20384 }),
20385 }
20386 }
20387 }
20388
20389 #[doc = " Contents of the configuration value file. Defines the base values for a component\'s config.\n"]
20390 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20391 pub struct ConfigValuesData {
20392 pub values: ::core::option::Option<::std::vec::Vec<crate::natural::ConfigValueSpec>>,
20393
20394 pub checksum: ::core::option::Option<crate::natural::ConfigChecksum>,
20395 }
20396
20397 impl ConfigValuesData {
20398 fn __max_ordinal(&self) -> usize {
20399 if self.checksum.is_some() {
20400 return 2;
20401 }
20402
20403 if self.values.is_some() {
20404 return 1;
20405 }
20406
20407 0
20408 }
20409 }
20410
20411 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConfigValuesData<'static>, ___E>
20412 for ConfigValuesData
20413 where
20414 ___E: ::fidl_next::Encoder + ?Sized,
20415 {
20416 #[inline]
20417 fn encode(
20418 mut self,
20419 encoder: &mut ___E,
20420 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValuesData<'static>>,
20421 _: (),
20422 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20423 ::fidl_next::munge!(let crate::wire::ConfigValuesData { table } = out);
20424
20425 let max_ord = self.__max_ordinal();
20426
20427 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20428 ::fidl_next::Wire::zero_padding(&mut out);
20429
20430 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20431 ::fidl_next::wire::Envelope,
20432 >(encoder, max_ord);
20433
20434 for i in 1..=max_ord {
20435 match i {
20436 2 => {
20437 if let Some(value) = self.checksum.take() {
20438 ::fidl_next::wire::Envelope::encode_value::<
20439 crate::wire::ConfigChecksum<'static>,
20440 ___E,
20441 >(
20442 value, preallocated.encoder, &mut out, ()
20443 )?;
20444 } else {
20445 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20446 }
20447 }
20448
20449 1 => {
20450 if let Some(value) = self.values.take() {
20451 ::fidl_next::wire::Envelope::encode_value::<
20452 ::fidl_next::wire::Vector<
20453 'static,
20454 crate::wire::ConfigValueSpec<'static>,
20455 >,
20456 ___E,
20457 >(
20458 value, preallocated.encoder, &mut out, (4294967295, ())
20459 )?;
20460 } else {
20461 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20462 }
20463 }
20464
20465 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20466 }
20467 unsafe {
20468 preallocated.write_next(out.assume_init_ref());
20469 }
20470 }
20471
20472 ::fidl_next::wire::Table::encode_len(table, max_ord);
20473
20474 Ok(())
20475 }
20476 }
20477
20478 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConfigValuesData<'static>, ___E>
20479 for &'a ConfigValuesData
20480 where
20481 ___E: ::fidl_next::Encoder + ?Sized,
20482 {
20483 #[inline]
20484 fn encode(
20485 self,
20486 encoder: &mut ___E,
20487 out: &mut ::core::mem::MaybeUninit<crate::wire::ConfigValuesData<'static>>,
20488 _: (),
20489 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20490 ::fidl_next::munge!(let crate::wire::ConfigValuesData { table } = out);
20491
20492 let max_ord = self.__max_ordinal();
20493
20494 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20495 ::fidl_next::Wire::zero_padding(&mut out);
20496
20497 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20498 ::fidl_next::wire::Envelope,
20499 >(encoder, max_ord);
20500
20501 for i in 1..=max_ord {
20502 match i {
20503 2 => {
20504 if let Some(value) = &self.checksum {
20505 ::fidl_next::wire::Envelope::encode_value::<
20506 crate::wire::ConfigChecksum<'static>,
20507 ___E,
20508 >(
20509 value, preallocated.encoder, &mut out, ()
20510 )?;
20511 } else {
20512 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20513 }
20514 }
20515
20516 1 => {
20517 if let Some(value) = &self.values {
20518 ::fidl_next::wire::Envelope::encode_value::<
20519 ::fidl_next::wire::Vector<
20520 'static,
20521 crate::wire::ConfigValueSpec<'static>,
20522 >,
20523 ___E,
20524 >(
20525 value, preallocated.encoder, &mut out, (4294967295, ())
20526 )?;
20527 } else {
20528 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20529 }
20530 }
20531
20532 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20533 }
20534 unsafe {
20535 preallocated.write_next(out.assume_init_ref());
20536 }
20537 }
20538
20539 ::fidl_next::wire::Table::encode_len(table, max_ord);
20540
20541 Ok(())
20542 }
20543 }
20544
20545 impl<'de> ::fidl_next::FromWire<crate::wire::ConfigValuesData<'de>> for ConfigValuesData {
20546 #[inline]
20547 fn from_wire(wire_: crate::wire::ConfigValuesData<'de>) -> Self {
20548 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20549
20550 let values = wire_.table.get(1);
20551
20552 let checksum = wire_.table.get(2);
20553
20554 Self {
20555
20556
20557 values: values.map(|envelope| ::fidl_next::FromWire::from_wire(
20558 unsafe { envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>() }
20559 )),
20560
20561
20562 checksum: checksum.map(|envelope| ::fidl_next::FromWire::from_wire(
20563 unsafe { envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>() }
20564 )),
20565
20566 }
20567 }
20568 }
20569
20570 impl<'de> ::fidl_next::FromWireRef<crate::wire::ConfigValuesData<'de>> for ConfigValuesData {
20571 #[inline]
20572 fn from_wire_ref(wire: &crate::wire::ConfigValuesData<'de>) -> Self {
20573 Self {
20574
20575
20576 values: wire.table.get(1)
20577 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20578 unsafe { envelope.deref_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>() }
20579 )),
20580
20581
20582 checksum: wire.table.get(2)
20583 .map(|envelope| ::fidl_next::FromWireRef::from_wire_ref(
20584 unsafe { envelope.deref_unchecked::<crate::wire::ConfigChecksum<'de>>() }
20585 )),
20586
20587 }
20588 }
20589 }
20590
20591 #[doc = " Indicates the event name to subscribe to with a given event mode.\n"]
20592 #[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20593 pub struct EventSubscription {
20594 pub event_name: ::core::option::Option<::std::string::String>,
20595 }
20596
20597 impl EventSubscription {
20598 fn __max_ordinal(&self) -> usize {
20599 if self.event_name.is_some() {
20600 return 1;
20601 }
20602
20603 0
20604 }
20605 }
20606
20607 unsafe impl<___E> ::fidl_next::Encode<crate::wire::EventSubscription<'static>, ___E>
20608 for EventSubscription
20609 where
20610 ___E: ::fidl_next::Encoder + ?Sized,
20611 {
20612 #[inline]
20613 fn encode(
20614 mut self,
20615 encoder: &mut ___E,
20616 out: &mut ::core::mem::MaybeUninit<crate::wire::EventSubscription<'static>>,
20617 _: (),
20618 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20619 ::fidl_next::munge!(let crate::wire::EventSubscription { table } = out);
20620
20621 let max_ord = self.__max_ordinal();
20622
20623 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20624 ::fidl_next::Wire::zero_padding(&mut out);
20625
20626 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20627 ::fidl_next::wire::Envelope,
20628 >(encoder, max_ord);
20629
20630 for i in 1..=max_ord {
20631 match i {
20632 1 => {
20633 if let Some(value) = self.event_name.take() {
20634 ::fidl_next::wire::Envelope::encode_value::<
20635 ::fidl_next::wire::String<'static>,
20636 ___E,
20637 >(
20638 value, preallocated.encoder, &mut out, 100
20639 )?;
20640 } else {
20641 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20642 }
20643 }
20644
20645 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20646 }
20647 unsafe {
20648 preallocated.write_next(out.assume_init_ref());
20649 }
20650 }
20651
20652 ::fidl_next::wire::Table::encode_len(table, max_ord);
20653
20654 Ok(())
20655 }
20656 }
20657
20658 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::EventSubscription<'static>, ___E>
20659 for &'a EventSubscription
20660 where
20661 ___E: ::fidl_next::Encoder + ?Sized,
20662 {
20663 #[inline]
20664 fn encode(
20665 self,
20666 encoder: &mut ___E,
20667 out: &mut ::core::mem::MaybeUninit<crate::wire::EventSubscription<'static>>,
20668 _: (),
20669 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20670 ::fidl_next::munge!(let crate::wire::EventSubscription { table } = out);
20671
20672 let max_ord = self.__max_ordinal();
20673
20674 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
20675 ::fidl_next::Wire::zero_padding(&mut out);
20676
20677 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
20678 ::fidl_next::wire::Envelope,
20679 >(encoder, max_ord);
20680
20681 for i in 1..=max_ord {
20682 match i {
20683 1 => {
20684 if let Some(value) = &self.event_name {
20685 ::fidl_next::wire::Envelope::encode_value::<
20686 ::fidl_next::wire::String<'static>,
20687 ___E,
20688 >(
20689 value, preallocated.encoder, &mut out, 100
20690 )?;
20691 } else {
20692 ::fidl_next::wire::Envelope::encode_zero(&mut out)
20693 }
20694 }
20695
20696 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
20697 }
20698 unsafe {
20699 preallocated.write_next(out.assume_init_ref());
20700 }
20701 }
20702
20703 ::fidl_next::wire::Table::encode_len(table, max_ord);
20704
20705 Ok(())
20706 }
20707 }
20708
20709 impl<'de> ::fidl_next::FromWire<crate::wire::EventSubscription<'de>> for EventSubscription {
20710 #[inline]
20711 fn from_wire(wire_: crate::wire::EventSubscription<'de>) -> Self {
20712 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
20713
20714 let event_name = wire_.table.get(1);
20715
20716 Self {
20717 event_name: event_name.map(|envelope| {
20718 ::fidl_next::FromWire::from_wire(unsafe {
20719 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
20720 })
20721 }),
20722 }
20723 }
20724 }
20725
20726 impl<'de> ::fidl_next::FromWireRef<crate::wire::EventSubscription<'de>> for EventSubscription {
20727 #[inline]
20728 fn from_wire_ref(wire: &crate::wire::EventSubscription<'de>) -> Self {
20729 Self {
20730 event_name: wire.table.get(1).map(|envelope| {
20731 ::fidl_next::FromWireRef::from_wire_ref(unsafe {
20732 envelope.deref_unchecked::<::fidl_next::wire::String<'de>>()
20733 })
20734 }),
20735 }
20736 }
20737 }
20738
20739 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20740 pub enum LayoutParameter {
20741 NestedType(crate::natural::ConfigType),
20742
20743 UnknownOrdinal_(u64),
20744 }
20745
20746 impl LayoutParameter {
20747 pub fn is_unknown(&self) -> bool {
20748 #[allow(unreachable_patterns)]
20749 match self {
20750 Self::UnknownOrdinal_(_) => true,
20751 _ => false,
20752 }
20753 }
20754 }
20755
20756 unsafe impl<___E> ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>
20757 for LayoutParameter
20758 where
20759 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20760 ___E: ::fidl_next::Encoder,
20761 {
20762 #[inline]
20763 fn encode(
20764 self,
20765 encoder: &mut ___E,
20766 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutParameter<'static>>,
20767 _: (),
20768 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20769 ::fidl_next::munge!(let crate::wire::LayoutParameter { raw, _phantom: _ } = out);
20770
20771 match self {
20772 Self::NestedType(value) => ::fidl_next::wire::Union::encode_as::<
20773 ___E,
20774 crate::wire::ConfigType<'static>,
20775 >(value, 1, encoder, raw, ())?,
20776
20777 Self::UnknownOrdinal_(ordinal) => {
20778 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(ordinal as usize));
20779 }
20780 }
20781
20782 Ok(())
20783 }
20784 }
20785
20786 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>
20787 for &'a LayoutParameter
20788 where
20789 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20790 ___E: ::fidl_next::Encoder,
20791 {
20792 #[inline]
20793 fn encode(
20794 self,
20795 encoder: &mut ___E,
20796 out: &mut ::core::mem::MaybeUninit<crate::wire::LayoutParameter<'static>>,
20797 _: (),
20798 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20799 ::fidl_next::munge!(let crate::wire::LayoutParameter { raw, _phantom: _ } = out);
20800
20801 match self {
20802 LayoutParameter::NestedType(value) => ::fidl_next::wire::Union::encode_as::<
20803 ___E,
20804 crate::wire::ConfigType<'static>,
20805 >(value, 1, encoder, raw, ())?,
20806
20807 LayoutParameter::UnknownOrdinal_(ordinal) => {
20808 return Err(::fidl_next::EncodeError::UnknownUnionOrdinal(*ordinal as usize));
20809 }
20810 }
20811
20812 Ok(())
20813 }
20814 }
20815
20816 unsafe impl<___E>
20817 ::fidl_next::EncodeOption<crate::wire_optional::LayoutParameter<'static>, ___E>
20818 for LayoutParameter
20819 where
20820 ___E: ?Sized,
20821 LayoutParameter: ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>,
20822 {
20823 #[inline]
20824 fn encode_option(
20825 this: ::core::option::Option<Self>,
20826 encoder: &mut ___E,
20827 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutParameter<'static>>,
20828 _: (),
20829 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20830 ::fidl_next::munge!(let crate::wire_optional::LayoutParameter { raw, _phantom: _ } = &mut *out);
20831
20832 if let Some(inner) = this {
20833 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
20834 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
20835 } else {
20836 ::fidl_next::wire::Union::encode_absent(raw);
20837 }
20838
20839 Ok(())
20840 }
20841 }
20842
20843 unsafe impl<'a, ___E>
20844 ::fidl_next::EncodeOption<crate::wire_optional::LayoutParameter<'static>, ___E>
20845 for &'a LayoutParameter
20846 where
20847 ___E: ?Sized,
20848 &'a LayoutParameter: ::fidl_next::Encode<crate::wire::LayoutParameter<'static>, ___E>,
20849 {
20850 #[inline]
20851 fn encode_option(
20852 this: ::core::option::Option<Self>,
20853 encoder: &mut ___E,
20854 out: &mut ::core::mem::MaybeUninit<crate::wire_optional::LayoutParameter<'static>>,
20855 _: (),
20856 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20857 ::fidl_next::munge!(let crate::wire_optional::LayoutParameter { raw, _phantom: _ } = &mut *out);
20858
20859 if let Some(inner) = this {
20860 let value_out = unsafe { &mut *out.as_mut_ptr().cast() };
20861 ::fidl_next::Encode::encode(inner, encoder, value_out, ())?;
20862 } else {
20863 ::fidl_next::wire::Union::encode_absent(raw);
20864 }
20865
20866 Ok(())
20867 }
20868 }
20869
20870 impl<'de> ::fidl_next::FromWire<crate::wire::LayoutParameter<'de>> for LayoutParameter {
20871 #[inline]
20872 fn from_wire(wire: crate::wire::LayoutParameter<'de>) -> Self {
20873 let wire = ::core::mem::ManuallyDrop::new(wire);
20874 match wire.raw.ordinal() {
20875 1 => Self::NestedType(::fidl_next::FromWire::from_wire(unsafe {
20876 wire.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>()
20877 })),
20878
20879 ord => return Self::UnknownOrdinal_(ord as u64),
20880 }
20881 }
20882 }
20883
20884 impl<'de> ::fidl_next::FromWireRef<crate::wire::LayoutParameter<'de>> for LayoutParameter {
20885 #[inline]
20886 fn from_wire_ref(wire: &crate::wire::LayoutParameter<'de>) -> Self {
20887 match wire.raw.ordinal() {
20888 1 => Self::NestedType(::fidl_next::FromWireRef::from_wire_ref(unsafe {
20889 wire.raw.get().deref_unchecked::<crate::wire::ConfigType<'de>>()
20890 })),
20891
20892 ord => return Self::UnknownOrdinal_(ord as u64),
20893 }
20894 }
20895 }
20896
20897 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutParameter<'de>>
20898 for LayoutParameter
20899 {
20900 #[inline]
20901 fn from_wire_option(
20902 wire: crate::wire_optional::LayoutParameter<'de>,
20903 ) -> ::core::option::Option<Self> {
20904 if let Some(inner) = wire.into_option() {
20905 Some(::fidl_next::FromWire::from_wire(inner))
20906 } else {
20907 None
20908 }
20909 }
20910 }
20911
20912 impl<'de> ::fidl_next::FromWireOption<crate::wire_optional::LayoutParameter<'de>>
20913 for Box<LayoutParameter>
20914 {
20915 #[inline]
20916 fn from_wire_option(
20917 wire: crate::wire_optional::LayoutParameter<'de>,
20918 ) -> ::core::option::Option<Self> {
20919 <LayoutParameter as ::fidl_next::FromWireOption<
20920 crate::wire_optional::LayoutParameter<'de>,
20921 >>::from_wire_option(wire)
20922 .map(Box::new)
20923 }
20924 }
20925
20926 impl<'de> ::fidl_next::FromWireOptionRef<crate::wire_optional::LayoutParameter<'de>>
20927 for Box<LayoutParameter>
20928 {
20929 #[inline]
20930 fn from_wire_option_ref(
20931 wire: &crate::wire_optional::LayoutParameter<'de>,
20932 ) -> ::core::option::Option<Self> {
20933 if let Some(inner) = wire.as_ref() {
20934 Some(Box::new(::fidl_next::FromWireRef::from_wire_ref(inner)))
20935 } else {
20936 None
20937 }
20938 }
20939 }
20940
20941 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
20942 pub struct ResolvedConfigField {
20943 pub key: ::std::string::String,
20944
20945 pub value: crate::natural::ConfigValue,
20946 }
20947
20948 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
20949 for ResolvedConfigField
20950 where
20951 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20952 ___E: ::fidl_next::Encoder,
20953 {
20954 #[inline]
20955 fn encode(
20956 self,
20957 encoder_: &mut ___E,
20958 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
20959 _: (),
20960 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20961 ::fidl_next::munge! {
20962 let crate::wire::ResolvedConfigField {
20963 key,
20964 value,
20965
20966 } = out_;
20967 }
20968
20969 ::fidl_next::Encode::encode(self.key, encoder_, key, 4294967295)?;
20970
20971 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(key.as_mut_ptr()) };
20972 ::fidl_next::Constrained::validate(_field, 4294967295)?;
20973
20974 ::fidl_next::Encode::encode(self.value, encoder_, value, ())?;
20975
20976 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(value.as_mut_ptr()) };
20977
20978 Ok(())
20979 }
20980 }
20981
20982 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
20983 for &'a ResolvedConfigField
20984 where
20985 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
20986 ___E: ::fidl_next::Encoder,
20987 {
20988 #[inline]
20989 fn encode(
20990 self,
20991 encoder_: &mut ___E,
20992 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
20993 _: (),
20994 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
20995 ::fidl_next::munge! {
20996 let crate::wire::ResolvedConfigField {
20997 key,
20998 value,
20999
21000 } = out_;
21001 }
21002
21003 ::fidl_next::Encode::encode(&self.key, encoder_, key, 4294967295)?;
21004
21005 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(key.as_mut_ptr()) };
21006 ::fidl_next::Constrained::validate(_field, 4294967295)?;
21007
21008 ::fidl_next::Encode::encode(&self.value, encoder_, value, ())?;
21009
21010 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(value.as_mut_ptr()) };
21011
21012 Ok(())
21013 }
21014 }
21015
21016 unsafe impl<___E>
21017 ::fidl_next::EncodeOption<
21018 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
21019 ___E,
21020 > for ResolvedConfigField
21021 where
21022 ___E: ::fidl_next::Encoder + ?Sized,
21023 ResolvedConfigField: ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>,
21024 {
21025 #[inline]
21026 fn encode_option(
21027 this: ::core::option::Option<Self>,
21028 encoder: &mut ___E,
21029 out: &mut ::core::mem::MaybeUninit<
21030 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
21031 >,
21032 _: (),
21033 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21034 if let Some(inner) = this {
21035 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
21036 ::fidl_next::wire::Box::encode_present(out);
21037 } else {
21038 ::fidl_next::wire::Box::encode_absent(out);
21039 }
21040
21041 Ok(())
21042 }
21043 }
21044
21045 unsafe impl<'a, ___E>
21046 ::fidl_next::EncodeOption<
21047 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
21048 ___E,
21049 > for &'a ResolvedConfigField
21050 where
21051 ___E: ::fidl_next::Encoder + ?Sized,
21052 &'a ResolvedConfigField:
21053 ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>,
21054 {
21055 #[inline]
21056 fn encode_option(
21057 this: ::core::option::Option<Self>,
21058 encoder: &mut ___E,
21059 out: &mut ::core::mem::MaybeUninit<
21060 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfigField<'static>>,
21061 >,
21062 _: (),
21063 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21064 if let Some(inner) = this {
21065 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
21066 ::fidl_next::wire::Box::encode_present(out);
21067 } else {
21068 ::fidl_next::wire::Box::encode_absent(out);
21069 }
21070
21071 Ok(())
21072 }
21073 }
21074
21075 impl<'de> ::fidl_next::FromWire<crate::wire::ResolvedConfigField<'de>> for ResolvedConfigField {
21076 #[inline]
21077 fn from_wire(wire: crate::wire::ResolvedConfigField<'de>) -> Self {
21078 Self {
21079 key: ::fidl_next::FromWire::from_wire(wire.key),
21080
21081 value: ::fidl_next::FromWire::from_wire(wire.value),
21082 }
21083 }
21084 }
21085
21086 impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolvedConfigField<'de>> for ResolvedConfigField {
21087 #[inline]
21088 fn from_wire_ref(wire: &crate::wire::ResolvedConfigField<'de>) -> Self {
21089 Self {
21090 key: ::fidl_next::FromWireRef::from_wire_ref(&wire.key),
21091
21092 value: ::fidl_next::FromWireRef::from_wire_ref(&wire.value),
21093 }
21094 }
21095 }
21096
21097 #[doc = " A configuration that has been completely resolved by component manager.\n"]
21098 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21099 pub struct ResolvedConfig {
21100 pub fields: ::std::vec::Vec<crate::natural::ResolvedConfigField>,
21101
21102 pub checksum: crate::natural::ConfigChecksum,
21103 }
21104
21105 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E> for ResolvedConfig
21106 where
21107 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21108 ___E: ::fidl_next::Encoder,
21109 {
21110 #[inline]
21111 fn encode(
21112 self,
21113 encoder_: &mut ___E,
21114 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
21115 _: (),
21116 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21117 ::fidl_next::munge! {
21118 let crate::wire::ResolvedConfig {
21119 fields,
21120 checksum,
21121
21122 } = out_;
21123 }
21124
21125 ::fidl_next::Encode::encode(self.fields, encoder_, fields, (4294967295, ()))?;
21126
21127 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fields.as_mut_ptr()) };
21128 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
21129
21130 ::fidl_next::Encode::encode(self.checksum, encoder_, checksum, ())?;
21131
21132 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(checksum.as_mut_ptr()) };
21133
21134 Ok(())
21135 }
21136 }
21137
21138 unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>
21139 for &'a ResolvedConfig
21140 where
21141 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21142 ___E: ::fidl_next::Encoder,
21143 {
21144 #[inline]
21145 fn encode(
21146 self,
21147 encoder_: &mut ___E,
21148 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
21149 _: (),
21150 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21151 ::fidl_next::munge! {
21152 let crate::wire::ResolvedConfig {
21153 fields,
21154 checksum,
21155
21156 } = out_;
21157 }
21158
21159 ::fidl_next::Encode::encode(&self.fields, encoder_, fields, (4294967295, ()))?;
21160
21161 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(fields.as_mut_ptr()) };
21162 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
21163
21164 ::fidl_next::Encode::encode(&self.checksum, encoder_, checksum, ())?;
21165
21166 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(checksum.as_mut_ptr()) };
21167
21168 Ok(())
21169 }
21170 }
21171
21172 unsafe impl<___E>
21173 ::fidl_next::EncodeOption<
21174 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21175 ___E,
21176 > for ResolvedConfig
21177 where
21178 ___E: ::fidl_next::Encoder + ?Sized,
21179 ResolvedConfig: ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>,
21180 {
21181 #[inline]
21182 fn encode_option(
21183 this: ::core::option::Option<Self>,
21184 encoder: &mut ___E,
21185 out: &mut ::core::mem::MaybeUninit<
21186 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21187 >,
21188 _: (),
21189 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21190 if let Some(inner) = this {
21191 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
21192 ::fidl_next::wire::Box::encode_present(out);
21193 } else {
21194 ::fidl_next::wire::Box::encode_absent(out);
21195 }
21196
21197 Ok(())
21198 }
21199 }
21200
21201 unsafe impl<'a, ___E>
21202 ::fidl_next::EncodeOption<
21203 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21204 ___E,
21205 > for &'a ResolvedConfig
21206 where
21207 ___E: ::fidl_next::Encoder + ?Sized,
21208 &'a ResolvedConfig: ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>,
21209 {
21210 #[inline]
21211 fn encode_option(
21212 this: ::core::option::Option<Self>,
21213 encoder: &mut ___E,
21214 out: &mut ::core::mem::MaybeUninit<
21215 ::fidl_next::wire::Box<'static, crate::wire::ResolvedConfig<'static>>,
21216 >,
21217 _: (),
21218 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
21219 if let Some(inner) = this {
21220 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
21221 ::fidl_next::wire::Box::encode_present(out);
21222 } else {
21223 ::fidl_next::wire::Box::encode_absent(out);
21224 }
21225
21226 Ok(())
21227 }
21228 }
21229
21230 impl<'de> ::fidl_next::FromWire<crate::wire::ResolvedConfig<'de>> for ResolvedConfig {
21231 #[inline]
21232 fn from_wire(wire: crate::wire::ResolvedConfig<'de>) -> Self {
21233 Self {
21234 fields: ::fidl_next::FromWire::from_wire(wire.fields),
21235
21236 checksum: ::fidl_next::FromWire::from_wire(wire.checksum),
21237 }
21238 }
21239 }
21240
21241 impl<'de> ::fidl_next::FromWireRef<crate::wire::ResolvedConfig<'de>> for ResolvedConfig {
21242 #[inline]
21243 fn from_wire_ref(wire: &crate::wire::ResolvedConfig<'de>) -> Self {
21244 Self {
21245 fields: ::fidl_next::FromWireRef::from_wire_ref(&wire.fields),
21246
21247 checksum: ::fidl_next::FromWireRef::from_wire_ref(&wire.checksum),
21248 }
21249 }
21250 }
21251}
21252
21253pub mod wire {
21254
21255 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21257 #[repr(transparent)]
21258 pub struct AllowedOffers {
21259 pub(crate) value: ::fidl_next::wire::Uint32,
21260 }
21261
21262 impl ::fidl_next::Constrained for AllowedOffers {
21263 type Constraint = ();
21264
21265 fn validate(
21266 _: ::fidl_next::Slot<'_, Self>,
21267 _: Self::Constraint,
21268 ) -> Result<(), ::fidl_next::ValidationError> {
21269 Ok(())
21270 }
21271 }
21272
21273 unsafe impl ::fidl_next::Wire for AllowedOffers {
21274 type Narrowed<'de> = Self;
21275
21276 #[inline]
21277 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
21278 }
21280 }
21281
21282 impl AllowedOffers {
21283 pub const STATIC_ONLY: AllowedOffers =
21284 AllowedOffers { value: ::fidl_next::wire::Uint32(1) };
21285
21286 pub const STATIC_AND_DYNAMIC: AllowedOffers =
21287 AllowedOffers { value: ::fidl_next::wire::Uint32(2) };
21288 }
21289
21290 unsafe impl<___D> ::fidl_next::Decode<___D> for AllowedOffers
21291 where
21292 ___D: ?Sized,
21293 {
21294 fn decode(
21295 slot: ::fidl_next::Slot<'_, Self>,
21296 _: &mut ___D,
21297 _: (),
21298 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21299 ::fidl_next::munge!(let Self { value } = slot);
21300
21301 match u32::from(*value) {
21302 1 | 2 => (),
21303 unknown => {
21304 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
21305 }
21306 }
21307
21308 Ok(())
21309 }
21310 }
21311
21312 impl ::core::convert::From<crate::natural::AllowedOffers> for AllowedOffers {
21313 fn from(natural: crate::natural::AllowedOffers) -> Self {
21314 match natural {
21315 crate::natural::AllowedOffers::StaticOnly => AllowedOffers::STATIC_ONLY,
21316
21317 crate::natural::AllowedOffers::StaticAndDynamic => {
21318 AllowedOffers::STATIC_AND_DYNAMIC
21319 }
21320 }
21321 }
21322 }
21323
21324 impl ::fidl_next::IntoNatural for AllowedOffers {
21325 type Natural = crate::natural::AllowedOffers;
21326 }
21327
21328 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21330 #[repr(transparent)]
21331 pub struct Availability {
21332 pub(crate) value: ::fidl_next::wire::Uint32,
21333 }
21334
21335 impl ::fidl_next::Constrained for Availability {
21336 type Constraint = ();
21337
21338 fn validate(
21339 _: ::fidl_next::Slot<'_, Self>,
21340 _: Self::Constraint,
21341 ) -> Result<(), ::fidl_next::ValidationError> {
21342 Ok(())
21343 }
21344 }
21345
21346 unsafe impl ::fidl_next::Wire for Availability {
21347 type Narrowed<'de> = Self;
21348
21349 #[inline]
21350 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
21351 }
21353 }
21354
21355 impl Availability {
21356 pub const REQUIRED: Availability = Availability { value: ::fidl_next::wire::Uint32(1) };
21357
21358 pub const OPTIONAL: Availability = Availability { value: ::fidl_next::wire::Uint32(2) };
21359
21360 pub const SAME_AS_TARGET: Availability =
21361 Availability { value: ::fidl_next::wire::Uint32(3) };
21362
21363 pub const TRANSITIONAL: Availability = Availability { value: ::fidl_next::wire::Uint32(4) };
21364 }
21365
21366 unsafe impl<___D> ::fidl_next::Decode<___D> for Availability
21367 where
21368 ___D: ?Sized,
21369 {
21370 fn decode(
21371 slot: ::fidl_next::Slot<'_, Self>,
21372 _: &mut ___D,
21373 _: (),
21374 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21375 ::fidl_next::munge!(let Self { value } = slot);
21376
21377 match u32::from(*value) {
21378 1 | 2 | 3 | 4 => (),
21379 unknown => {
21380 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
21381 }
21382 }
21383
21384 Ok(())
21385 }
21386 }
21387
21388 impl ::core::convert::From<crate::natural::Availability> for Availability {
21389 fn from(natural: crate::natural::Availability) -> Self {
21390 match natural {
21391 crate::natural::Availability::Required => Availability::REQUIRED,
21392
21393 crate::natural::Availability::Optional => Availability::OPTIONAL,
21394
21395 crate::natural::Availability::SameAsTarget => Availability::SAME_AS_TARGET,
21396
21397 crate::natural::Availability::Transitional => Availability::TRANSITIONAL,
21398 }
21399 }
21400 }
21401
21402 impl ::fidl_next::IntoNatural for Availability {
21403 type Natural = crate::natural::Availability;
21404 }
21405
21406 pub type Name<'de> = ::fidl_next::wire::String<'de>;
21408
21409 #[repr(C)]
21411 pub struct Service<'de> {
21412 pub(crate) table: ::fidl_next::wire::Table<'de>,
21413 }
21414
21415 impl<'de> Drop for Service<'de> {
21416 fn drop(&mut self) {
21417 let _ = self.table.get(1).map(|envelope| unsafe {
21418 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21419 });
21420
21421 let _ = self.table.get(2).map(|envelope| unsafe {
21422 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21423 });
21424 }
21425 }
21426
21427 impl ::fidl_next::Constrained for Service<'_> {
21428 type Constraint = ();
21429
21430 fn validate(
21431 _: ::fidl_next::Slot<'_, Self>,
21432 _: Self::Constraint,
21433 ) -> Result<(), ::fidl_next::ValidationError> {
21434 Ok(())
21435 }
21436 }
21437
21438 unsafe impl ::fidl_next::Wire for Service<'static> {
21439 type Narrowed<'de> = Service<'de>;
21440
21441 #[inline]
21442 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
21443 ::fidl_next::munge!(let Self { table } = out);
21444 ::fidl_next::wire::Table::zero_padding(table);
21445 }
21446 }
21447
21448 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Service<'de>
21449 where
21450 ___D: ::fidl_next::Decoder<'de> + ?Sized,
21451 {
21452 fn decode(
21453 slot: ::fidl_next::Slot<'_, Self>,
21454 decoder: &mut ___D,
21455 _: (),
21456 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21457 ::fidl_next::munge!(let Self { table } = slot);
21458
21459 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
21460 match ordinal {
21461 0 => unsafe { ::core::hint::unreachable_unchecked() },
21462
21463 1 => {
21464 ::fidl_next::wire::Envelope::decode_as::<
21465 ___D,
21466 ::fidl_next::wire::String<'de>,
21467 >(slot.as_mut(), decoder, 100)?;
21468
21469 let value = unsafe {
21470 slot.deref_unchecked()
21471 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21472 };
21473
21474 if value.len() > 100 {
21475 return Err(::fidl_next::DecodeError::VectorTooLong {
21476 size: value.len() as u64,
21477 limit: 100,
21478 });
21479 }
21480
21481 Ok(())
21482 }
21483
21484 2 => {
21485 ::fidl_next::wire::Envelope::decode_as::<
21486 ___D,
21487 ::fidl_next::wire::String<'de>,
21488 >(slot.as_mut(), decoder, 1024)?;
21489
21490 let value = unsafe {
21491 slot.deref_unchecked()
21492 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21493 };
21494
21495 if value.len() > 1024 {
21496 return Err(::fidl_next::DecodeError::VectorTooLong {
21497 size: value.len() as u64,
21498 limit: 1024,
21499 });
21500 }
21501
21502 Ok(())
21503 }
21504
21505 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
21506 }
21507 })
21508 }
21509 }
21510
21511 impl<'de> Service<'de> {
21512 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21513 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
21514 }
21515
21516 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21517 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
21518 }
21519
21520 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21521 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
21522 }
21523
21524 pub fn take_source_path(
21525 &mut self,
21526 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21527 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
21528 }
21529 }
21530
21531 impl<'de> ::core::fmt::Debug for Service<'de> {
21532 fn fmt(
21533 &self,
21534 f: &mut ::core::fmt::Formatter<'_>,
21535 ) -> ::core::result::Result<(), ::core::fmt::Error> {
21536 f.debug_struct("Service")
21537 .field("name", &self.name())
21538 .field("source_path", &self.source_path())
21539 .finish()
21540 }
21541 }
21542
21543 impl<'de> ::fidl_next::IntoNatural for Service<'de> {
21544 type Natural = crate::natural::Service;
21545 }
21546
21547 #[repr(C)]
21549 pub struct Directory<'de> {
21550 pub(crate) table: ::fidl_next::wire::Table<'de>,
21551 }
21552
21553 impl<'de> Drop for Directory<'de> {
21554 fn drop(&mut self) {
21555 let _ = self.table.get(1).map(|envelope| unsafe {
21556 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21557 });
21558
21559 let _ = self.table.get(2).map(|envelope| unsafe {
21560 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
21561 });
21562
21563 let _ = self.table.get(3).map(|envelope| unsafe {
21564 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
21565 });
21566 }
21567 }
21568
21569 impl ::fidl_next::Constrained for Directory<'_> {
21570 type Constraint = ();
21571
21572 fn validate(
21573 _: ::fidl_next::Slot<'_, Self>,
21574 _: Self::Constraint,
21575 ) -> Result<(), ::fidl_next::ValidationError> {
21576 Ok(())
21577 }
21578 }
21579
21580 unsafe impl ::fidl_next::Wire for Directory<'static> {
21581 type Narrowed<'de> = Directory<'de>;
21582
21583 #[inline]
21584 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
21585 ::fidl_next::munge!(let Self { table } = out);
21586 ::fidl_next::wire::Table::zero_padding(table);
21587 }
21588 }
21589
21590 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Directory<'de>
21591 where
21592 ___D: ::fidl_next::Decoder<'de> + ?Sized,
21593 {
21594 fn decode(
21595 slot: ::fidl_next::Slot<'_, Self>,
21596 decoder: &mut ___D,
21597 _: (),
21598 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21599 ::fidl_next::munge!(let Self { table } = slot);
21600
21601 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
21602 match ordinal {
21603 0 => unsafe { ::core::hint::unreachable_unchecked() },
21604
21605 1 => {
21606 ::fidl_next::wire::Envelope::decode_as::<
21607 ___D,
21608 ::fidl_next::wire::String<'de>,
21609 >(slot.as_mut(), decoder, 100)?;
21610
21611 let value = unsafe {
21612 slot.deref_unchecked()
21613 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21614 };
21615
21616 if value.len() > 100 {
21617 return Err(::fidl_next::DecodeError::VectorTooLong {
21618 size: value.len() as u64,
21619 limit: 100,
21620 });
21621 }
21622
21623 Ok(())
21624 }
21625
21626 2 => {
21627 ::fidl_next::wire::Envelope::decode_as::<
21628 ___D,
21629 ::fidl_next::wire::String<'de>,
21630 >(slot.as_mut(), decoder, 1024)?;
21631
21632 let value = unsafe {
21633 slot.deref_unchecked()
21634 .deref_unchecked::<::fidl_next::wire::String<'_>>()
21635 };
21636
21637 if value.len() > 1024 {
21638 return Err(::fidl_next::DecodeError::VectorTooLong {
21639 size: value.len() as u64,
21640 limit: 1024,
21641 });
21642 }
21643
21644 Ok(())
21645 }
21646
21647 3 => {
21648 ::fidl_next::wire::Envelope::decode_as::<
21649 ___D,
21650 ::fidl_next_common_fuchsia_io::wire::Operations,
21651 >(slot.as_mut(), decoder, ())?;
21652
21653 Ok(())
21654 }
21655
21656 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
21657 }
21658 })
21659 }
21660 }
21661
21662 impl<'de> Directory<'de> {
21663 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21664 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
21665 }
21666
21667 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21668 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
21669 }
21670
21671 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
21672 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
21673 }
21674
21675 pub fn take_source_path(
21676 &mut self,
21677 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
21678 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
21679 }
21680
21681 pub fn rights(
21682 &self,
21683 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
21684 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
21685 }
21686
21687 pub fn take_rights(
21688 &mut self,
21689 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
21690 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
21691 }
21692 }
21693
21694 impl<'de> ::core::fmt::Debug for Directory<'de> {
21695 fn fmt(
21696 &self,
21697 f: &mut ::core::fmt::Formatter<'_>,
21698 ) -> ::core::result::Result<(), ::core::fmt::Error> {
21699 f.debug_struct("Directory")
21700 .field("name", &self.name())
21701 .field("source_path", &self.source_path())
21702 .field("rights", &self.rights())
21703 .finish()
21704 }
21705 }
21706
21707 impl<'de> ::fidl_next::IntoNatural for Directory<'de> {
21708 type Natural = crate::natural::Directory;
21709 }
21710
21711 pub type ParentRef = ::fidl_next::wire::Unit;
21713
21714 pub type SelfRef = ::fidl_next::wire::Unit;
21716
21717 pub type ChildName<'de> = ::fidl_next::wire::String<'de>;
21719
21720 #[derive(Debug)]
21722 #[repr(C)]
21723 pub struct ChildRef<'de> {
21724 pub name: ::fidl_next::wire::String<'de>,
21725
21726 pub collection: ::fidl_next::wire::OptionalString<'de>,
21727 }
21728
21729 static_assertions::const_assert_eq!(std::mem::size_of::<ChildRef<'_>>(), 32);
21730 static_assertions::const_assert_eq!(std::mem::align_of::<ChildRef<'_>>(), 8);
21731
21732 static_assertions::const_assert_eq!(std::mem::offset_of!(ChildRef<'_>, name), 0);
21733
21734 static_assertions::const_assert_eq!(std::mem::offset_of!(ChildRef<'_>, collection), 16);
21735
21736 impl ::fidl_next::Constrained for ChildRef<'_> {
21737 type Constraint = ();
21738
21739 fn validate(
21740 _: ::fidl_next::Slot<'_, Self>,
21741 _: Self::Constraint,
21742 ) -> Result<(), ::fidl_next::ValidationError> {
21743 Ok(())
21744 }
21745 }
21746
21747 unsafe impl ::fidl_next::Wire for ChildRef<'static> {
21748 type Narrowed<'de> = ChildRef<'de>;
21749
21750 #[inline]
21751 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
21752 ::fidl_next::munge! {
21753 let Self {
21754 name,
21755 collection,
21756
21757 } = &mut *out_;
21758 }
21759
21760 ::fidl_next::Wire::zero_padding(name);
21761
21762 ::fidl_next::Wire::zero_padding(collection);
21763 }
21764 }
21765
21766 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ChildRef<'de>
21767 where
21768 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
21769 ___D: ::fidl_next::Decoder<'de>,
21770 {
21771 fn decode(
21772 slot_: ::fidl_next::Slot<'_, Self>,
21773 decoder_: &mut ___D,
21774 _: (),
21775 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21776 ::fidl_next::munge! {
21777 let Self {
21778 mut name,
21779 mut collection,
21780
21781 } = slot_;
21782 }
21783
21784 let _field = name.as_mut();
21785 ::fidl_next::Constrained::validate(_field, 1024)?;
21786 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 1024)?;
21787
21788 let name = unsafe { name.deref_unchecked() };
21789
21790 if name.len() > 1024 {
21791 return Err(::fidl_next::DecodeError::VectorTooLong {
21792 size: name.len() as u64,
21793 limit: 1024,
21794 });
21795 }
21796
21797 let _field = collection.as_mut();
21798 ::fidl_next::Constrained::validate(_field, 100)?;
21799 ::fidl_next::Decode::decode(collection.as_mut(), decoder_, 100)?;
21800
21801 let collection = unsafe { collection.deref_unchecked() };
21802
21803 if let Some(collection) = collection.as_ref() {
21804 if collection.len() > 100 {
21805 return Err(::fidl_next::DecodeError::VectorTooLong {
21806 size: collection.len() as u64,
21807 limit: 100,
21808 });
21809 }
21810 }
21811
21812 Ok(())
21813 }
21814 }
21815
21816 impl<'de> ::fidl_next::IntoNatural for ChildRef<'de> {
21817 type Natural = crate::natural::ChildRef;
21818 }
21819
21820 #[derive(Debug)]
21822 #[repr(C)]
21823 pub struct CollectionRef<'de> {
21824 pub name: ::fidl_next::wire::String<'de>,
21825 }
21826
21827 static_assertions::const_assert_eq!(std::mem::size_of::<CollectionRef<'_>>(), 16);
21828 static_assertions::const_assert_eq!(std::mem::align_of::<CollectionRef<'_>>(), 8);
21829
21830 static_assertions::const_assert_eq!(std::mem::offset_of!(CollectionRef<'_>, name), 0);
21831
21832 impl ::fidl_next::Constrained for CollectionRef<'_> {
21833 type Constraint = ();
21834
21835 fn validate(
21836 _: ::fidl_next::Slot<'_, Self>,
21837 _: Self::Constraint,
21838 ) -> Result<(), ::fidl_next::ValidationError> {
21839 Ok(())
21840 }
21841 }
21842
21843 unsafe impl ::fidl_next::Wire for CollectionRef<'static> {
21844 type Narrowed<'de> = CollectionRef<'de>;
21845
21846 #[inline]
21847 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
21848 ::fidl_next::munge! {
21849 let Self {
21850 name,
21851
21852 } = &mut *out_;
21853 }
21854
21855 ::fidl_next::Wire::zero_padding(name);
21856 }
21857 }
21858
21859 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for CollectionRef<'de>
21860 where
21861 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
21862 ___D: ::fidl_next::Decoder<'de>,
21863 {
21864 fn decode(
21865 slot_: ::fidl_next::Slot<'_, Self>,
21866 decoder_: &mut ___D,
21867 _: (),
21868 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21869 ::fidl_next::munge! {
21870 let Self {
21871 mut name,
21872
21873 } = slot_;
21874 }
21875
21876 let _field = name.as_mut();
21877 ::fidl_next::Constrained::validate(_field, 100)?;
21878 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 100)?;
21879
21880 let name = unsafe { name.deref_unchecked() };
21881
21882 if name.len() > 100 {
21883 return Err(::fidl_next::DecodeError::VectorTooLong {
21884 size: name.len() as u64,
21885 limit: 100,
21886 });
21887 }
21888
21889 Ok(())
21890 }
21891 }
21892
21893 impl<'de> ::fidl_next::IntoNatural for CollectionRef<'de> {
21894 type Natural = crate::natural::CollectionRef;
21895 }
21896
21897 pub type FrameworkRef = ::fidl_next::wire::Unit;
21899
21900 #[derive(Debug)]
21902 #[repr(C)]
21903 pub struct CapabilityRef<'de> {
21904 pub name: ::fidl_next::wire::String<'de>,
21905 }
21906
21907 static_assertions::const_assert_eq!(std::mem::size_of::<CapabilityRef<'_>>(), 16);
21908 static_assertions::const_assert_eq!(std::mem::align_of::<CapabilityRef<'_>>(), 8);
21909
21910 static_assertions::const_assert_eq!(std::mem::offset_of!(CapabilityRef<'_>, name), 0);
21911
21912 impl ::fidl_next::Constrained for CapabilityRef<'_> {
21913 type Constraint = ();
21914
21915 fn validate(
21916 _: ::fidl_next::Slot<'_, Self>,
21917 _: Self::Constraint,
21918 ) -> Result<(), ::fidl_next::ValidationError> {
21919 Ok(())
21920 }
21921 }
21922
21923 unsafe impl ::fidl_next::Wire for CapabilityRef<'static> {
21924 type Narrowed<'de> = CapabilityRef<'de>;
21925
21926 #[inline]
21927 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
21928 ::fidl_next::munge! {
21929 let Self {
21930 name,
21931
21932 } = &mut *out_;
21933 }
21934
21935 ::fidl_next::Wire::zero_padding(name);
21936 }
21937 }
21938
21939 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for CapabilityRef<'de>
21940 where
21941 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
21942 ___D: ::fidl_next::Decoder<'de>,
21943 {
21944 fn decode(
21945 slot_: ::fidl_next::Slot<'_, Self>,
21946 decoder_: &mut ___D,
21947 _: (),
21948 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
21949 ::fidl_next::munge! {
21950 let Self {
21951 mut name,
21952
21953 } = slot_;
21954 }
21955
21956 let _field = name.as_mut();
21957 ::fidl_next::Constrained::validate(_field, 100)?;
21958 ::fidl_next::Decode::decode(name.as_mut(), decoder_, 100)?;
21959
21960 let name = unsafe { name.deref_unchecked() };
21961
21962 if name.len() > 100 {
21963 return Err(::fidl_next::DecodeError::VectorTooLong {
21964 size: name.len() as u64,
21965 limit: 100,
21966 });
21967 }
21968
21969 Ok(())
21970 }
21971 }
21972
21973 impl<'de> ::fidl_next::IntoNatural for CapabilityRef<'de> {
21974 type Natural = crate::natural::CapabilityRef;
21975 }
21976
21977 pub type DebugRef = ::fidl_next::wire::Unit;
21979
21980 pub type VoidRef = ::fidl_next::wire::Unit;
21982
21983 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
21985 #[repr(transparent)]
21986 pub struct StorageId {
21987 pub(crate) value: ::fidl_next::wire::Uint32,
21988 }
21989
21990 impl ::fidl_next::Constrained for StorageId {
21991 type Constraint = ();
21992
21993 fn validate(
21994 _: ::fidl_next::Slot<'_, Self>,
21995 _: Self::Constraint,
21996 ) -> Result<(), ::fidl_next::ValidationError> {
21997 Ok(())
21998 }
21999 }
22000
22001 unsafe impl ::fidl_next::Wire for StorageId {
22002 type Narrowed<'de> = Self;
22003
22004 #[inline]
22005 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
22006 }
22008 }
22009
22010 impl StorageId {
22011 pub const STATIC_INSTANCE_ID: StorageId = StorageId { value: ::fidl_next::wire::Uint32(1) };
22012
22013 pub const STATIC_INSTANCE_ID_OR_MONIKER: StorageId =
22014 StorageId { value: ::fidl_next::wire::Uint32(2) };
22015 }
22016
22017 unsafe impl<___D> ::fidl_next::Decode<___D> for StorageId
22018 where
22019 ___D: ?Sized,
22020 {
22021 fn decode(
22022 slot: ::fidl_next::Slot<'_, Self>,
22023 _: &mut ___D,
22024 _: (),
22025 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22026 ::fidl_next::munge!(let Self { value } = slot);
22027
22028 match u32::from(*value) {
22029 1 | 2 => (),
22030 unknown => {
22031 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
22032 }
22033 }
22034
22035 Ok(())
22036 }
22037 }
22038
22039 impl ::core::convert::From<crate::natural::StorageId> for StorageId {
22040 fn from(natural: crate::natural::StorageId) -> Self {
22041 match natural {
22042 crate::natural::StorageId::StaticInstanceId => StorageId::STATIC_INSTANCE_ID,
22043
22044 crate::natural::StorageId::StaticInstanceIdOrMoniker => {
22045 StorageId::STATIC_INSTANCE_ID_OR_MONIKER
22046 }
22047 }
22048 }
22049 }
22050
22051 impl ::fidl_next::IntoNatural for StorageId {
22052 type Natural = crate::natural::StorageId;
22053 }
22054
22055 #[repr(C)]
22057 pub struct Runner<'de> {
22058 pub(crate) table: ::fidl_next::wire::Table<'de>,
22059 }
22060
22061 impl<'de> Drop for Runner<'de> {
22062 fn drop(&mut self) {
22063 let _ = self.table.get(1).map(|envelope| unsafe {
22064 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22065 });
22066
22067 let _ = self.table.get(2).map(|envelope| unsafe {
22068 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22069 });
22070 }
22071 }
22072
22073 impl ::fidl_next::Constrained for Runner<'_> {
22074 type Constraint = ();
22075
22076 fn validate(
22077 _: ::fidl_next::Slot<'_, Self>,
22078 _: Self::Constraint,
22079 ) -> Result<(), ::fidl_next::ValidationError> {
22080 Ok(())
22081 }
22082 }
22083
22084 unsafe impl ::fidl_next::Wire for Runner<'static> {
22085 type Narrowed<'de> = Runner<'de>;
22086
22087 #[inline]
22088 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22089 ::fidl_next::munge!(let Self { table } = out);
22090 ::fidl_next::wire::Table::zero_padding(table);
22091 }
22092 }
22093
22094 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Runner<'de>
22095 where
22096 ___D: ::fidl_next::Decoder<'de> + ?Sized,
22097 {
22098 fn decode(
22099 slot: ::fidl_next::Slot<'_, Self>,
22100 decoder: &mut ___D,
22101 _: (),
22102 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22103 ::fidl_next::munge!(let Self { table } = slot);
22104
22105 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22106 match ordinal {
22107 0 => unsafe { ::core::hint::unreachable_unchecked() },
22108
22109 1 => {
22110 ::fidl_next::wire::Envelope::decode_as::<
22111 ___D,
22112 ::fidl_next::wire::String<'de>,
22113 >(slot.as_mut(), decoder, 100)?;
22114
22115 let value = unsafe {
22116 slot.deref_unchecked()
22117 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22118 };
22119
22120 if value.len() > 100 {
22121 return Err(::fidl_next::DecodeError::VectorTooLong {
22122 size: value.len() as u64,
22123 limit: 100,
22124 });
22125 }
22126
22127 Ok(())
22128 }
22129
22130 2 => {
22131 ::fidl_next::wire::Envelope::decode_as::<
22132 ___D,
22133 ::fidl_next::wire::String<'de>,
22134 >(slot.as_mut(), decoder, 1024)?;
22135
22136 let value = unsafe {
22137 slot.deref_unchecked()
22138 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22139 };
22140
22141 if value.len() > 1024 {
22142 return Err(::fidl_next::DecodeError::VectorTooLong {
22143 size: value.len() as u64,
22144 limit: 1024,
22145 });
22146 }
22147
22148 Ok(())
22149 }
22150
22151 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
22152 }
22153 })
22154 }
22155 }
22156
22157 impl<'de> Runner<'de> {
22158 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22159 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22160 }
22161
22162 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22163 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
22164 }
22165
22166 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22167 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
22168 }
22169
22170 pub fn take_source_path(
22171 &mut self,
22172 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22173 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
22174 }
22175 }
22176
22177 impl<'de> ::core::fmt::Debug for Runner<'de> {
22178 fn fmt(
22179 &self,
22180 f: &mut ::core::fmt::Formatter<'_>,
22181 ) -> ::core::result::Result<(), ::core::fmt::Error> {
22182 f.debug_struct("Runner")
22183 .field("name", &self.name())
22184 .field("source_path", &self.source_path())
22185 .finish()
22186 }
22187 }
22188
22189 impl<'de> ::fidl_next::IntoNatural for Runner<'de> {
22190 type Natural = crate::natural::Runner;
22191 }
22192
22193 #[repr(C)]
22195 pub struct Resolver<'de> {
22196 pub(crate) table: ::fidl_next::wire::Table<'de>,
22197 }
22198
22199 impl<'de> Drop for Resolver<'de> {
22200 fn drop(&mut self) {
22201 let _ = self.table.get(1).map(|envelope| unsafe {
22202 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22203 });
22204
22205 let _ = self.table.get(2).map(|envelope| unsafe {
22206 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22207 });
22208 }
22209 }
22210
22211 impl ::fidl_next::Constrained for Resolver<'_> {
22212 type Constraint = ();
22213
22214 fn validate(
22215 _: ::fidl_next::Slot<'_, Self>,
22216 _: Self::Constraint,
22217 ) -> Result<(), ::fidl_next::ValidationError> {
22218 Ok(())
22219 }
22220 }
22221
22222 unsafe impl ::fidl_next::Wire for Resolver<'static> {
22223 type Narrowed<'de> = Resolver<'de>;
22224
22225 #[inline]
22226 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22227 ::fidl_next::munge!(let Self { table } = out);
22228 ::fidl_next::wire::Table::zero_padding(table);
22229 }
22230 }
22231
22232 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Resolver<'de>
22233 where
22234 ___D: ::fidl_next::Decoder<'de> + ?Sized,
22235 {
22236 fn decode(
22237 slot: ::fidl_next::Slot<'_, Self>,
22238 decoder: &mut ___D,
22239 _: (),
22240 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22241 ::fidl_next::munge!(let Self { table } = slot);
22242
22243 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22244 match ordinal {
22245 0 => unsafe { ::core::hint::unreachable_unchecked() },
22246
22247 1 => {
22248 ::fidl_next::wire::Envelope::decode_as::<
22249 ___D,
22250 ::fidl_next::wire::String<'de>,
22251 >(slot.as_mut(), decoder, 100)?;
22252
22253 let value = unsafe {
22254 slot.deref_unchecked()
22255 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22256 };
22257
22258 if value.len() > 100 {
22259 return Err(::fidl_next::DecodeError::VectorTooLong {
22260 size: value.len() as u64,
22261 limit: 100,
22262 });
22263 }
22264
22265 Ok(())
22266 }
22267
22268 2 => {
22269 ::fidl_next::wire::Envelope::decode_as::<
22270 ___D,
22271 ::fidl_next::wire::String<'de>,
22272 >(slot.as_mut(), decoder, 1024)?;
22273
22274 let value = unsafe {
22275 slot.deref_unchecked()
22276 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22277 };
22278
22279 if value.len() > 1024 {
22280 return Err(::fidl_next::DecodeError::VectorTooLong {
22281 size: value.len() as u64,
22282 limit: 1024,
22283 });
22284 }
22285
22286 Ok(())
22287 }
22288
22289 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
22290 }
22291 })
22292 }
22293 }
22294
22295 impl<'de> Resolver<'de> {
22296 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22297 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22298 }
22299
22300 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22301 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
22302 }
22303
22304 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22305 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
22306 }
22307
22308 pub fn take_source_path(
22309 &mut self,
22310 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22311 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
22312 }
22313 }
22314
22315 impl<'de> ::core::fmt::Debug for Resolver<'de> {
22316 fn fmt(
22317 &self,
22318 f: &mut ::core::fmt::Formatter<'_>,
22319 ) -> ::core::result::Result<(), ::core::fmt::Error> {
22320 f.debug_struct("Resolver")
22321 .field("name", &self.name())
22322 .field("source_path", &self.source_path())
22323 .finish()
22324 }
22325 }
22326
22327 impl<'de> ::fidl_next::IntoNatural for Resolver<'de> {
22328 type Natural = crate::natural::Resolver;
22329 }
22330
22331 #[repr(C)]
22333 pub struct EventStream<'de> {
22334 pub(crate) table: ::fidl_next::wire::Table<'de>,
22335 }
22336
22337 impl<'de> Drop for EventStream<'de> {
22338 fn drop(&mut self) {
22339 let _ = self.table.get(1).map(|envelope| unsafe {
22340 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
22341 });
22342 }
22343 }
22344
22345 impl ::fidl_next::Constrained for EventStream<'_> {
22346 type Constraint = ();
22347
22348 fn validate(
22349 _: ::fidl_next::Slot<'_, Self>,
22350 _: Self::Constraint,
22351 ) -> Result<(), ::fidl_next::ValidationError> {
22352 Ok(())
22353 }
22354 }
22355
22356 unsafe impl ::fidl_next::Wire for EventStream<'static> {
22357 type Narrowed<'de> = EventStream<'de>;
22358
22359 #[inline]
22360 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22361 ::fidl_next::munge!(let Self { table } = out);
22362 ::fidl_next::wire::Table::zero_padding(table);
22363 }
22364 }
22365
22366 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for EventStream<'de>
22367 where
22368 ___D: ::fidl_next::Decoder<'de> + ?Sized,
22369 {
22370 fn decode(
22371 slot: ::fidl_next::Slot<'_, Self>,
22372 decoder: &mut ___D,
22373 _: (),
22374 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22375 ::fidl_next::munge!(let Self { table } = slot);
22376
22377 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
22378 match ordinal {
22379 0 => unsafe { ::core::hint::unreachable_unchecked() },
22380
22381 1 => {
22382 ::fidl_next::wire::Envelope::decode_as::<
22383 ___D,
22384 ::fidl_next::wire::String<'de>,
22385 >(slot.as_mut(), decoder, 100)?;
22386
22387 let value = unsafe {
22388 slot.deref_unchecked()
22389 .deref_unchecked::<::fidl_next::wire::String<'_>>()
22390 };
22391
22392 if value.len() > 100 {
22393 return Err(::fidl_next::DecodeError::VectorTooLong {
22394 size: value.len() as u64,
22395 limit: 100,
22396 });
22397 }
22398
22399 Ok(())
22400 }
22401
22402 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
22403 }
22404 })
22405 }
22406 }
22407
22408 impl<'de> EventStream<'de> {
22409 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
22410 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
22411 }
22412
22413 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
22414 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
22415 }
22416 }
22417
22418 impl<'de> ::core::fmt::Debug for EventStream<'de> {
22419 fn fmt(
22420 &self,
22421 f: &mut ::core::fmt::Formatter<'_>,
22422 ) -> ::core::result::Result<(), ::core::fmt::Error> {
22423 f.debug_struct("EventStream").field("name", &self.name()).finish()
22424 }
22425 }
22426
22427 impl<'de> ::fidl_next::IntoNatural for EventStream<'de> {
22428 type Natural = crate::natural::EventStream;
22429 }
22430
22431 #[repr(transparent)]
22433 pub struct ConfigSingleValue<'de> {
22434 pub(crate) raw: ::fidl_next::wire::Union,
22435 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
22436 }
22437
22438 impl<'de> Drop for ConfigSingleValue<'de> {
22439 fn drop(&mut self) {
22440 match self.raw.ordinal() {
22441 1 => {
22442 let _ = unsafe { self.raw.get().read_unchecked::<bool>() };
22443 }
22444
22445 2 => {
22446 let _ = unsafe { self.raw.get().read_unchecked::<u8>() };
22447 }
22448
22449 3 => {
22450 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint16>() };
22451 }
22452
22453 4 => {
22454 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint32>() };
22455 }
22456
22457 5 => {
22458 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint64>() };
22459 }
22460
22461 6 => {
22462 let _ = unsafe { self.raw.get().read_unchecked::<i8>() };
22463 }
22464
22465 7 => {
22466 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Int16>() };
22467 }
22468
22469 8 => {
22470 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Int32>() };
22471 }
22472
22473 9 => {
22474 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Int64>() };
22475 }
22476
22477 10 => {
22478 let _ = unsafe {
22479 self.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
22480 };
22481 }
22482
22483 _ => (),
22484 }
22485 }
22486 }
22487
22488 impl ::fidl_next::Constrained for ConfigSingleValue<'_> {
22489 type Constraint = ();
22490
22491 fn validate(
22492 _: ::fidl_next::Slot<'_, Self>,
22493 _: Self::Constraint,
22494 ) -> Result<(), ::fidl_next::ValidationError> {
22495 Ok(())
22496 }
22497 }
22498
22499 unsafe impl ::fidl_next::Wire for ConfigSingleValue<'static> {
22500 type Narrowed<'de> = ConfigSingleValue<'de>;
22501
22502 #[inline]
22503 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22504 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
22505 ::fidl_next::wire::Union::zero_padding(raw);
22506 }
22507 }
22508
22509 pub mod config_single_value {
22510 pub enum Ref<'de> {
22511 Bool(&'de bool),
22512
22513 Uint8(&'de u8),
22514
22515 Uint16(&'de ::fidl_next::wire::Uint16),
22516
22517 Uint32(&'de ::fidl_next::wire::Uint32),
22518
22519 Uint64(&'de ::fidl_next::wire::Uint64),
22520
22521 Int8(&'de i8),
22522
22523 Int16(&'de ::fidl_next::wire::Int16),
22524
22525 Int32(&'de ::fidl_next::wire::Int32),
22526
22527 Int64(&'de ::fidl_next::wire::Int64),
22528
22529 String(&'de ::fidl_next::wire::String<'de>),
22530
22531 UnknownOrdinal_(u64),
22532 }
22533
22534 pub enum Value<'de> {
22535 Bool(bool),
22536
22537 Uint8(u8),
22538
22539 Uint16(::fidl_next::wire::Uint16),
22540
22541 Uint32(::fidl_next::wire::Uint32),
22542
22543 Uint64(::fidl_next::wire::Uint64),
22544
22545 Int8(i8),
22546
22547 Int16(::fidl_next::wire::Int16),
22548
22549 Int32(::fidl_next::wire::Int32),
22550
22551 Int64(::fidl_next::wire::Int64),
22552
22553 String(::fidl_next::wire::String<'de>),
22554
22555 UnknownOrdinal_(u64),
22556 }
22557 }
22558
22559 impl<'de> ConfigSingleValue<'de> {
22560 pub fn as_ref(&self) -> crate::wire::config_single_value::Ref<'_> {
22561 match self.raw.ordinal() {
22562 1 => crate::wire::config_single_value::Ref::Bool(unsafe {
22563 self.raw.get().deref_unchecked::<bool>()
22564 }),
22565
22566 2 => crate::wire::config_single_value::Ref::Uint8(unsafe {
22567 self.raw.get().deref_unchecked::<u8>()
22568 }),
22569
22570 3 => crate::wire::config_single_value::Ref::Uint16(unsafe {
22571 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint16>()
22572 }),
22573
22574 4 => crate::wire::config_single_value::Ref::Uint32(unsafe {
22575 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
22576 }),
22577
22578 5 => crate::wire::config_single_value::Ref::Uint64(unsafe {
22579 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint64>()
22580 }),
22581
22582 6 => crate::wire::config_single_value::Ref::Int8(unsafe {
22583 self.raw.get().deref_unchecked::<i8>()
22584 }),
22585
22586 7 => crate::wire::config_single_value::Ref::Int16(unsafe {
22587 self.raw.get().deref_unchecked::<::fidl_next::wire::Int16>()
22588 }),
22589
22590 8 => crate::wire::config_single_value::Ref::Int32(unsafe {
22591 self.raw.get().deref_unchecked::<::fidl_next::wire::Int32>()
22592 }),
22593
22594 9 => crate::wire::config_single_value::Ref::Int64(unsafe {
22595 self.raw.get().deref_unchecked::<::fidl_next::wire::Int64>()
22596 }),
22597
22598 10 => crate::wire::config_single_value::Ref::String(unsafe {
22599 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>()
22600 }),
22601
22602 unknown => crate::wire::config_single_value::Ref::UnknownOrdinal_(unknown),
22603 }
22604 }
22605
22606 pub fn into_inner(self) -> crate::wire::config_single_value::Value<'de> {
22607 let this = ::core::mem::ManuallyDrop::new(self);
22608
22609 match this.raw.ordinal() {
22610 1 => crate::wire::config_single_value::Value::Bool(unsafe {
22611 this.raw.get().read_unchecked::<bool>()
22612 }),
22613
22614 2 => crate::wire::config_single_value::Value::Uint8(unsafe {
22615 this.raw.get().read_unchecked::<u8>()
22616 }),
22617
22618 3 => crate::wire::config_single_value::Value::Uint16(unsafe {
22619 this.raw.get().read_unchecked::<::fidl_next::wire::Uint16>()
22620 }),
22621
22622 4 => crate::wire::config_single_value::Value::Uint32(unsafe {
22623 this.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
22624 }),
22625
22626 5 => crate::wire::config_single_value::Value::Uint64(unsafe {
22627 this.raw.get().read_unchecked::<::fidl_next::wire::Uint64>()
22628 }),
22629
22630 6 => crate::wire::config_single_value::Value::Int8(unsafe {
22631 this.raw.get().read_unchecked::<i8>()
22632 }),
22633
22634 7 => crate::wire::config_single_value::Value::Int16(unsafe {
22635 this.raw.get().read_unchecked::<::fidl_next::wire::Int16>()
22636 }),
22637
22638 8 => crate::wire::config_single_value::Value::Int32(unsafe {
22639 this.raw.get().read_unchecked::<::fidl_next::wire::Int32>()
22640 }),
22641
22642 9 => crate::wire::config_single_value::Value::Int64(unsafe {
22643 this.raw.get().read_unchecked::<::fidl_next::wire::Int64>()
22644 }),
22645
22646 10 => crate::wire::config_single_value::Value::String(unsafe {
22647 this.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
22648 }),
22649
22650 unknown => crate::wire::config_single_value::Value::UnknownOrdinal_(unknown),
22651 }
22652 }
22653 }
22654
22655 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSingleValue<'de>
22656 where
22657 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
22658 ___D: ::fidl_next::Decoder<'de>,
22659 {
22660 fn decode(
22661 mut slot: ::fidl_next::Slot<'_, Self>,
22662 decoder: &mut ___D,
22663 _: (),
22664 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
22665 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
22666 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
22667 1 => ::fidl_next::wire::Union::decode_as::<___D, bool>(raw, decoder, ())?,
22668
22669 2 => ::fidl_next::wire::Union::decode_as::<___D, u8>(raw, decoder, ())?,
22670
22671 3 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint16>(
22672 raw,
22673 decoder,
22674 (),
22675 )?,
22676
22677 4 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
22678 raw,
22679 decoder,
22680 (),
22681 )?,
22682
22683 5 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint64>(
22684 raw,
22685 decoder,
22686 (),
22687 )?,
22688
22689 6 => ::fidl_next::wire::Union::decode_as::<___D, i8>(raw, decoder, ())?,
22690
22691 7 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int16>(
22692 raw,
22693 decoder,
22694 (),
22695 )?,
22696
22697 8 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int32>(
22698 raw,
22699 decoder,
22700 (),
22701 )?,
22702
22703 9 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int64>(
22704 raw,
22705 decoder,
22706 (),
22707 )?,
22708
22709 10 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
22710 raw, decoder, 4294967295,
22711 )?,
22712
22713 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
22714 }
22715
22716 Ok(())
22717 }
22718 }
22719
22720 impl<'de> ::core::fmt::Debug for ConfigSingleValue<'de> {
22721 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22722 match self.raw.ordinal() {
22723 1 => unsafe { self.raw.get().deref_unchecked::<bool>().fmt(f) },
22724 2 => unsafe { self.raw.get().deref_unchecked::<u8>().fmt(f) },
22725 3 => unsafe {
22726 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint16>().fmt(f)
22727 },
22728 4 => unsafe {
22729 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>().fmt(f)
22730 },
22731 5 => unsafe {
22732 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint64>().fmt(f)
22733 },
22734 6 => unsafe { self.raw.get().deref_unchecked::<i8>().fmt(f) },
22735 7 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::wire::Int16>().fmt(f) },
22736 8 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::wire::Int32>().fmt(f) },
22737 9 => unsafe { self.raw.get().deref_unchecked::<::fidl_next::wire::Int64>().fmt(f) },
22738 10 => unsafe {
22739 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>().fmt(f)
22740 },
22741 _ => unsafe { ::core::hint::unreachable_unchecked() },
22742 }
22743 }
22744 }
22745
22746 impl<'de> ::fidl_next::IntoNatural for ConfigSingleValue<'de> {
22747 type Natural = crate::natural::ConfigSingleValue;
22748 }
22749
22750 #[repr(transparent)]
22752 pub struct ConfigVectorValue<'de> {
22753 pub(crate) raw: ::fidl_next::wire::Union,
22754 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
22755 }
22756
22757 impl<'de> Drop for ConfigVectorValue<'de> {
22758 fn drop(&mut self) {
22759 match self.raw.ordinal() {
22760 1 => {
22761 let _ = unsafe {
22762 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
22763 };
22764 }
22765
22766 2 => {
22767 let _ = unsafe {
22768 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
22769 };
22770 }
22771
22772 3 => {
22773 let _ = unsafe {
22774 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
22775 };
22776 }
22777
22778 4 => {
22779 let _ = unsafe {
22780 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
22781 };
22782 }
22783
22784 5 => {
22785 let _ = unsafe {
22786 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
22787 };
22788 }
22789
22790 6 => {
22791 let _ = unsafe {
22792 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
22793 };
22794 }
22795
22796 7 => {
22797 let _ = unsafe {
22798 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
22799 };
22800 }
22801
22802 8 => {
22803 let _ = unsafe {
22804 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
22805 };
22806 }
22807
22808 9 => {
22809 let _ = unsafe {
22810 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
22811 };
22812 }
22813
22814 10 => {
22815 let _ = unsafe {
22816 self.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
22817 };
22818 }
22819
22820 _ => (),
22821 }
22822 }
22823 }
22824
22825 impl ::fidl_next::Constrained for ConfigVectorValue<'_> {
22826 type Constraint = ();
22827
22828 fn validate(
22829 _: ::fidl_next::Slot<'_, Self>,
22830 _: Self::Constraint,
22831 ) -> Result<(), ::fidl_next::ValidationError> {
22832 Ok(())
22833 }
22834 }
22835
22836 unsafe impl ::fidl_next::Wire for ConfigVectorValue<'static> {
22837 type Narrowed<'de> = ConfigVectorValue<'de>;
22838
22839 #[inline]
22840 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
22841 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
22842 ::fidl_next::wire::Union::zero_padding(raw);
22843 }
22844 }
22845
22846 pub mod config_vector_value {
22847 pub enum Ref<'de> {
22848 BoolVector(&'de ::fidl_next::wire::Vector<'de, bool>),
22849
22850 Uint8Vector(&'de ::fidl_next::wire::Vector<'de, u8>),
22851
22852 Uint16Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>),
22853
22854 Uint32Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>),
22855
22856 Uint64Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>),
22857
22858 Int8Vector(&'de ::fidl_next::wire::Vector<'de, i8>),
22859
22860 Int16Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>),
22861
22862 Int32Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>),
22863
22864 Int64Vector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>),
22865
22866 StringVector(&'de ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>),
22867
22868 UnknownOrdinal_(u64),
22869 }
22870
22871 pub enum Value<'de> {
22872 BoolVector(::fidl_next::wire::Vector<'de, bool>),
22873
22874 Uint8Vector(::fidl_next::wire::Vector<'de, u8>),
22875
22876 Uint16Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>),
22877
22878 Uint32Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>),
22879
22880 Uint64Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>),
22881
22882 Int8Vector(::fidl_next::wire::Vector<'de, i8>),
22883
22884 Int16Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>),
22885
22886 Int32Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>),
22887
22888 Int64Vector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>),
22889
22890 StringVector(::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>),
22891
22892 UnknownOrdinal_(u64),
22893 }
22894 }
22895
22896 impl<'de> ConfigVectorValue<'de> {
22897 pub fn as_ref(&self) -> crate::wire::config_vector_value::Ref<'_> {
22898 match self.raw.ordinal() {
22899 1 => crate::wire::config_vector_value::Ref::BoolVector(unsafe {
22900 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, bool>>()
22901 }),
22902
22903 2 => crate::wire::config_vector_value::Ref::Uint8Vector(unsafe {
22904 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>()
22905 }),
22906
22907 3 => crate::wire::config_vector_value::Ref::Uint16Vector(unsafe {
22908 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint16>>()
22909 }),
22910
22911 4 => crate::wire::config_vector_value::Ref::Uint32Vector(unsafe {
22912 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint32>>()
22913 }),
22914
22915 5 => crate::wire::config_vector_value::Ref::Uint64Vector(unsafe {
22916 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint64>>()
22917 }),
22918
22919 6 => crate::wire::config_vector_value::Ref::Int8Vector(unsafe {
22920 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, i8>>()
22921 }),
22922
22923 7 => {
22924 crate::wire::config_vector_value::Ref::Int16Vector(unsafe {
22925 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int16>>()
22926 })
22927 }
22928
22929 8 => {
22930 crate::wire::config_vector_value::Ref::Int32Vector(unsafe {
22931 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int32>>()
22932 })
22933 }
22934
22935 9 => {
22936 crate::wire::config_vector_value::Ref::Int64Vector(unsafe {
22937 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int64>>()
22938 })
22939 }
22940
22941 10 => crate::wire::config_vector_value::Ref::StringVector(unsafe {
22942 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::String<'_>>>()
22943 }),
22944
22945 unknown => crate::wire::config_vector_value::Ref::UnknownOrdinal_(unknown),
22946 }
22947 }
22948
22949 pub fn into_inner(self) -> crate::wire::config_vector_value::Value<'de> {
22950 let this = ::core::mem::ManuallyDrop::new(self);
22951
22952 match this.raw.ordinal() {
22953 1 => crate::wire::config_vector_value::Value::BoolVector(unsafe {
22954 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, bool>>()
22955 }),
22956
22957 2 => crate::wire::config_vector_value::Value::Uint8Vector(unsafe {
22958 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, u8>>()
22959 }),
22960
22961 3 => crate::wire::config_vector_value::Value::Uint16Vector(unsafe {
22962 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>>()
22963 }),
22964
22965 4 => crate::wire::config_vector_value::Value::Uint32Vector(unsafe {
22966 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>>()
22967 }),
22968
22969 5 => crate::wire::config_vector_value::Value::Uint64Vector(unsafe {
22970 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>>()
22971 }),
22972
22973 6 => crate::wire::config_vector_value::Value::Int8Vector(unsafe {
22974 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, i8>>()
22975 }),
22976
22977 7 => {
22978 crate::wire::config_vector_value::Value::Int16Vector(unsafe {
22979 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>>()
22980 })
22981 }
22982
22983 8 => {
22984 crate::wire::config_vector_value::Value::Int32Vector(unsafe {
22985 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>>()
22986 })
22987 }
22988
22989 9 => {
22990 crate::wire::config_vector_value::Value::Int64Vector(unsafe {
22991 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>>()
22992 })
22993 }
22994
22995 10 => crate::wire::config_vector_value::Value::StringVector(unsafe {
22996 this.raw.get().read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
22997 }),
22998
22999 unknown => crate::wire::config_vector_value::Value::UnknownOrdinal_(unknown),
23000 }
23001 }
23002 }
23003
23004 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigVectorValue<'de>
23005 where
23006 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23007 ___D: ::fidl_next::Decoder<'de>,
23008 {
23009 fn decode(
23010 mut slot: ::fidl_next::Slot<'_, Self>,
23011 decoder: &mut ___D,
23012 _: (),
23013 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23014 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23015 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
23016 1 => ::fidl_next::wire::Union::decode_as::<
23017 ___D,
23018 ::fidl_next::wire::Vector<'de, bool>,
23019 >(raw, decoder, (4294967295, ()))?,
23020
23021 2 => {
23022 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
23023 raw,
23024 decoder,
23025 (4294967295, ()),
23026 )?
23027 }
23028
23029 3 => ::fidl_next::wire::Union::decode_as::<
23030 ___D,
23031 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>,
23032 >(raw, decoder, (4294967295, ()))?,
23033
23034 4 => ::fidl_next::wire::Union::decode_as::<
23035 ___D,
23036 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>,
23037 >(raw, decoder, (4294967295, ()))?,
23038
23039 5 => ::fidl_next::wire::Union::decode_as::<
23040 ___D,
23041 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>,
23042 >(raw, decoder, (4294967295, ()))?,
23043
23044 6 => {
23045 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, i8>>(
23046 raw,
23047 decoder,
23048 (4294967295, ()),
23049 )?
23050 }
23051
23052 7 => ::fidl_next::wire::Union::decode_as::<
23053 ___D,
23054 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>,
23055 >(raw, decoder, (4294967295, ()))?,
23056
23057 8 => ::fidl_next::wire::Union::decode_as::<
23058 ___D,
23059 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>,
23060 >(raw, decoder, (4294967295, ()))?,
23061
23062 9 => ::fidl_next::wire::Union::decode_as::<
23063 ___D,
23064 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>,
23065 >(raw, decoder, (4294967295, ()))?,
23066
23067 10 => ::fidl_next::wire::Union::decode_as::<
23068 ___D,
23069 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
23070 >(raw, decoder, (4294967295, 4294967295))?,
23071
23072 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
23073 }
23074
23075 Ok(())
23076 }
23077 }
23078
23079 impl<'de> ::core::fmt::Debug for ConfigVectorValue<'de> {
23080 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23081 match self.raw.ordinal() {
23082 1 => unsafe {
23083 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, bool>>().fmt(f)
23084 },
23085 2 => unsafe {
23086 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, u8>>().fmt(f)
23087 },
23088 3 => unsafe {
23089 self.raw.get().deref_unchecked::<
23090 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint16>
23091 >().fmt(f)
23092 },
23093 4 => unsafe {
23094 self.raw.get().deref_unchecked::<
23095 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint32>
23096 >().fmt(f)
23097 },
23098 5 => unsafe {
23099 self.raw.get().deref_unchecked::<
23100 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::Uint64>
23101 >().fmt(f)
23102 },
23103 6 => unsafe {
23104 self.raw.get().deref_unchecked::<::fidl_next::wire::Vector<'_, i8>>().fmt(f)
23105 },
23106 7 => unsafe {
23107 self.raw
23108 .get()
23109 .deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int16>>(
23110 )
23111 .fmt(f)
23112 },
23113 8 => unsafe {
23114 self.raw
23115 .get()
23116 .deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int32>>(
23117 )
23118 .fmt(f)
23119 },
23120 9 => unsafe {
23121 self.raw
23122 .get()
23123 .deref_unchecked::<::fidl_next::wire::Vector<'_, ::fidl_next::wire::Int64>>(
23124 )
23125 .fmt(f)
23126 },
23127 10 => unsafe {
23128 self.raw.get().deref_unchecked::<
23129 ::fidl_next::wire::Vector<'_, ::fidl_next::wire::String<'_>>
23130 >().fmt(f)
23131 },
23132 _ => unsafe { ::core::hint::unreachable_unchecked() },
23133 }
23134 }
23135 }
23136
23137 impl<'de> ::fidl_next::IntoNatural for ConfigVectorValue<'de> {
23138 type Natural = crate::natural::ConfigVectorValue;
23139 }
23140
23141 #[repr(transparent)]
23143 pub struct ConfigValue<'de> {
23144 pub(crate) raw: ::fidl_next::wire::Union,
23145 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
23146 }
23147
23148 impl<'de> Drop for ConfigValue<'de> {
23149 fn drop(&mut self) {
23150 match self.raw.ordinal() {
23151 1 => {
23152 let _ = unsafe {
23153 self.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
23154 };
23155 }
23156
23157 2 => {
23158 let _ = unsafe {
23159 self.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
23160 };
23161 }
23162
23163 _ => (),
23164 }
23165 }
23166 }
23167
23168 impl ::fidl_next::Constrained for ConfigValue<'_> {
23169 type Constraint = ();
23170
23171 fn validate(
23172 _: ::fidl_next::Slot<'_, Self>,
23173 _: Self::Constraint,
23174 ) -> Result<(), ::fidl_next::ValidationError> {
23175 Ok(())
23176 }
23177 }
23178
23179 unsafe impl ::fidl_next::Wire for ConfigValue<'static> {
23180 type Narrowed<'de> = ConfigValue<'de>;
23181
23182 #[inline]
23183 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23184 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
23185 ::fidl_next::wire::Union::zero_padding(raw);
23186 }
23187 }
23188
23189 pub mod config_value {
23190 pub enum Ref<'de> {
23191 Single(&'de crate::wire::ConfigSingleValue<'de>),
23192
23193 Vector(&'de crate::wire::ConfigVectorValue<'de>),
23194
23195 UnknownOrdinal_(u64),
23196 }
23197
23198 pub enum Value<'de> {
23199 Single(crate::wire::ConfigSingleValue<'de>),
23200
23201 Vector(crate::wire::ConfigVectorValue<'de>),
23202
23203 UnknownOrdinal_(u64),
23204 }
23205 }
23206
23207 impl<'de> ConfigValue<'de> {
23208 pub fn as_ref(&self) -> crate::wire::config_value::Ref<'_> {
23209 match self.raw.ordinal() {
23210 1 => crate::wire::config_value::Ref::Single(unsafe {
23211 self.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'_>>()
23212 }),
23213
23214 2 => crate::wire::config_value::Ref::Vector(unsafe {
23215 self.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'_>>()
23216 }),
23217
23218 unknown => crate::wire::config_value::Ref::UnknownOrdinal_(unknown),
23219 }
23220 }
23221
23222 pub fn into_inner(self) -> crate::wire::config_value::Value<'de> {
23223 let this = ::core::mem::ManuallyDrop::new(self);
23224
23225 match this.raw.ordinal() {
23226 1 => crate::wire::config_value::Value::Single(unsafe {
23227 this.raw.get().read_unchecked::<crate::wire::ConfigSingleValue<'de>>()
23228 }),
23229
23230 2 => crate::wire::config_value::Value::Vector(unsafe {
23231 this.raw.get().read_unchecked::<crate::wire::ConfigVectorValue<'de>>()
23232 }),
23233
23234 unknown => crate::wire::config_value::Value::UnknownOrdinal_(unknown),
23235 }
23236 }
23237 }
23238
23239 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValue<'de>
23240 where
23241 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23242 ___D: ::fidl_next::Decoder<'de>,
23243 {
23244 fn decode(
23245 mut slot: ::fidl_next::Slot<'_, Self>,
23246 decoder: &mut ___D,
23247 _: (),
23248 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23249 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23250 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
23251 1 => ::fidl_next::wire::Union::decode_as::<
23252 ___D,
23253 crate::wire::ConfigSingleValue<'de>,
23254 >(raw, decoder, ())?,
23255
23256 2 => ::fidl_next::wire::Union::decode_as::<
23257 ___D,
23258 crate::wire::ConfigVectorValue<'de>,
23259 >(raw, decoder, ())?,
23260
23261 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
23262 }
23263
23264 Ok(())
23265 }
23266 }
23267
23268 impl<'de> ::core::fmt::Debug for ConfigValue<'de> {
23269 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23270 match self.raw.ordinal() {
23271 1 => unsafe {
23272 self.raw.get().deref_unchecked::<crate::wire::ConfigSingleValue<'_>>().fmt(f)
23273 },
23274 2 => unsafe {
23275 self.raw.get().deref_unchecked::<crate::wire::ConfigVectorValue<'_>>().fmt(f)
23276 },
23277 _ => unsafe { ::core::hint::unreachable_unchecked() },
23278 }
23279 }
23280 }
23281
23282 impl<'de> ::fidl_next::IntoNatural for ConfigValue<'de> {
23283 type Natural = crate::natural::ConfigValue;
23284 }
23285
23286 #[repr(C)]
23288 pub struct Configuration<'de> {
23289 pub(crate) table: ::fidl_next::wire::Table<'de>,
23290 }
23291
23292 impl<'de> Drop for Configuration<'de> {
23293 fn drop(&mut self) {
23294 let _ = self.table.get(1).map(|envelope| unsafe {
23295 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23296 });
23297
23298 let _ = self.table.get(2).map(|envelope| unsafe {
23299 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
23300 });
23301 }
23302 }
23303
23304 impl ::fidl_next::Constrained for Configuration<'_> {
23305 type Constraint = ();
23306
23307 fn validate(
23308 _: ::fidl_next::Slot<'_, Self>,
23309 _: Self::Constraint,
23310 ) -> Result<(), ::fidl_next::ValidationError> {
23311 Ok(())
23312 }
23313 }
23314
23315 unsafe impl ::fidl_next::Wire for Configuration<'static> {
23316 type Narrowed<'de> = Configuration<'de>;
23317
23318 #[inline]
23319 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23320 ::fidl_next::munge!(let Self { table } = out);
23321 ::fidl_next::wire::Table::zero_padding(table);
23322 }
23323 }
23324
23325 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Configuration<'de>
23326 where
23327 ___D: ::fidl_next::Decoder<'de> + ?Sized,
23328 {
23329 fn decode(
23330 slot: ::fidl_next::Slot<'_, Self>,
23331 decoder: &mut ___D,
23332 _: (),
23333 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23334 ::fidl_next::munge!(let Self { table } = slot);
23335
23336 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
23337 match ordinal {
23338 0 => unsafe { ::core::hint::unreachable_unchecked() },
23339
23340 1 => {
23341 ::fidl_next::wire::Envelope::decode_as::<
23342 ___D,
23343 ::fidl_next::wire::String<'de>,
23344 >(slot.as_mut(), decoder, 100)?;
23345
23346 let value = unsafe {
23347 slot.deref_unchecked()
23348 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23349 };
23350
23351 if value.len() > 100 {
23352 return Err(::fidl_next::DecodeError::VectorTooLong {
23353 size: value.len() as u64,
23354 limit: 100,
23355 });
23356 }
23357
23358 Ok(())
23359 }
23360
23361 2 => {
23362 ::fidl_next::wire::Envelope::decode_as::<
23363 ___D,
23364 crate::wire::ConfigValue<'de>,
23365 >(slot.as_mut(), decoder, ())?;
23366
23367 Ok(())
23368 }
23369
23370 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
23371 }
23372 })
23373 }
23374 }
23375
23376 impl<'de> Configuration<'de> {
23377 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
23378 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
23379 }
23380
23381 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
23382 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
23383 }
23384
23385 pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
23386 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
23387 }
23388
23389 pub fn take_value(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
23390 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
23391 }
23392 }
23393
23394 impl<'de> ::core::fmt::Debug for Configuration<'de> {
23395 fn fmt(
23396 &self,
23397 f: &mut ::core::fmt::Formatter<'_>,
23398 ) -> ::core::result::Result<(), ::core::fmt::Error> {
23399 f.debug_struct("Configuration")
23400 .field("name", &self.name())
23401 .field("value", &self.value())
23402 .finish()
23403 }
23404 }
23405
23406 impl<'de> ::fidl_next::IntoNatural for Configuration<'de> {
23407 type Natural = crate::natural::Configuration;
23408 }
23409
23410 pub type DictionaryPath<'de> = ::fidl_next::wire::String<'de>;
23412
23413 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
23415 #[repr(transparent)]
23416 pub struct DeliveryType {
23417 pub(crate) value: ::fidl_next::wire::Uint32,
23418 }
23419
23420 impl ::fidl_next::Constrained for DeliveryType {
23421 type Constraint = ();
23422
23423 fn validate(
23424 _: ::fidl_next::Slot<'_, Self>,
23425 _: Self::Constraint,
23426 ) -> Result<(), ::fidl_next::ValidationError> {
23427 Ok(())
23428 }
23429 }
23430
23431 unsafe impl ::fidl_next::Wire for DeliveryType {
23432 type Narrowed<'de> = Self;
23433
23434 #[inline]
23435 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
23436 }
23438 }
23439
23440 impl DeliveryType {
23441 pub const IMMEDIATE: DeliveryType = DeliveryType { value: ::fidl_next::wire::Uint32(0) };
23442
23443 pub const ON_READABLE: DeliveryType = DeliveryType { value: ::fidl_next::wire::Uint32(1) };
23444 }
23445
23446 unsafe impl<___D> ::fidl_next::Decode<___D> for DeliveryType
23447 where
23448 ___D: ?Sized,
23449 {
23450 fn decode(
23451 slot: ::fidl_next::Slot<'_, Self>,
23452 _: &mut ___D,
23453 _: (),
23454 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23455 Ok(())
23456 }
23457 }
23458
23459 impl ::core::convert::From<crate::natural::DeliveryType> for DeliveryType {
23460 fn from(natural: crate::natural::DeliveryType) -> Self {
23461 match natural {
23462 crate::natural::DeliveryType::Immediate => DeliveryType::IMMEDIATE,
23463
23464 crate::natural::DeliveryType::OnReadable => DeliveryType::ON_READABLE,
23465
23466 crate::natural::DeliveryType::UnknownOrdinal_(value) => {
23467 DeliveryType { value: ::fidl_next::wire::Uint32::from(value) }
23468 }
23469 }
23470 }
23471 }
23472
23473 impl ::fidl_next::IntoNatural for DeliveryType {
23474 type Natural = crate::natural::DeliveryType;
23475 }
23476
23477 #[repr(C)]
23479 pub struct Protocol<'de> {
23480 pub(crate) table: ::fidl_next::wire::Table<'de>,
23481 }
23482
23483 impl<'de> Drop for Protocol<'de> {
23484 fn drop(&mut self) {
23485 let _ = self.table.get(1).map(|envelope| unsafe {
23486 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23487 });
23488
23489 let _ = self.table.get(2).map(|envelope| unsafe {
23490 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23491 });
23492
23493 let _ = self
23494 .table
23495 .get(3)
23496 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::DeliveryType>() });
23497 }
23498 }
23499
23500 impl ::fidl_next::Constrained for Protocol<'_> {
23501 type Constraint = ();
23502
23503 fn validate(
23504 _: ::fidl_next::Slot<'_, Self>,
23505 _: Self::Constraint,
23506 ) -> Result<(), ::fidl_next::ValidationError> {
23507 Ok(())
23508 }
23509 }
23510
23511 unsafe impl ::fidl_next::Wire for Protocol<'static> {
23512 type Narrowed<'de> = Protocol<'de>;
23513
23514 #[inline]
23515 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23516 ::fidl_next::munge!(let Self { table } = out);
23517 ::fidl_next::wire::Table::zero_padding(table);
23518 }
23519 }
23520
23521 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Protocol<'de>
23522 where
23523 ___D: ::fidl_next::Decoder<'de> + ?Sized,
23524 {
23525 fn decode(
23526 slot: ::fidl_next::Slot<'_, Self>,
23527 decoder: &mut ___D,
23528 _: (),
23529 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23530 ::fidl_next::munge!(let Self { table } = slot);
23531
23532 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
23533 match ordinal {
23534 0 => unsafe { ::core::hint::unreachable_unchecked() },
23535
23536 1 => {
23537 ::fidl_next::wire::Envelope::decode_as::<
23538 ___D,
23539 ::fidl_next::wire::String<'de>,
23540 >(slot.as_mut(), decoder, 100)?;
23541
23542 let value = unsafe {
23543 slot.deref_unchecked()
23544 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23545 };
23546
23547 if value.len() > 100 {
23548 return Err(::fidl_next::DecodeError::VectorTooLong {
23549 size: value.len() as u64,
23550 limit: 100,
23551 });
23552 }
23553
23554 Ok(())
23555 }
23556
23557 2 => {
23558 ::fidl_next::wire::Envelope::decode_as::<
23559 ___D,
23560 ::fidl_next::wire::String<'de>,
23561 >(slot.as_mut(), decoder, 1024)?;
23562
23563 let value = unsafe {
23564 slot.deref_unchecked()
23565 .deref_unchecked::<::fidl_next::wire::String<'_>>()
23566 };
23567
23568 if value.len() > 1024 {
23569 return Err(::fidl_next::DecodeError::VectorTooLong {
23570 size: value.len() as u64,
23571 limit: 1024,
23572 });
23573 }
23574
23575 Ok(())
23576 }
23577
23578 3 => {
23579 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DeliveryType>(
23580 slot.as_mut(),
23581 decoder,
23582 (),
23583 )?;
23584
23585 Ok(())
23586 }
23587
23588 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
23589 }
23590 })
23591 }
23592 }
23593
23594 impl<'de> Protocol<'de> {
23595 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
23596 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
23597 }
23598
23599 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
23600 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
23601 }
23602
23603 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
23604 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
23605 }
23606
23607 pub fn take_source_path(
23608 &mut self,
23609 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
23610 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
23611 }
23612
23613 pub fn delivery(&self) -> ::core::option::Option<&crate::wire::DeliveryType> {
23614 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
23615 }
23616
23617 pub fn take_delivery(&mut self) -> ::core::option::Option<crate::wire::DeliveryType> {
23618 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
23619 }
23620 }
23621
23622 impl<'de> ::core::fmt::Debug for Protocol<'de> {
23623 fn fmt(
23624 &self,
23625 f: &mut ::core::fmt::Formatter<'_>,
23626 ) -> ::core::result::Result<(), ::core::fmt::Error> {
23627 f.debug_struct("Protocol")
23628 .field("name", &self.name())
23629 .field("source_path", &self.source_path())
23630 .field("delivery", &self.delivery())
23631 .finish()
23632 }
23633 }
23634
23635 impl<'de> ::fidl_next::IntoNatural for Protocol<'de> {
23636 type Natural = crate::natural::Protocol;
23637 }
23638
23639 pub type EnvironmentRef = ::fidl_next::wire::Unit;
23641
23642 #[repr(transparent)]
23644 pub struct Ref<'de> {
23645 pub(crate) raw: ::fidl_next::wire::Union,
23646 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
23647 }
23648
23649 impl<'de> Drop for Ref<'de> {
23650 fn drop(&mut self) {
23651 match self.raw.ordinal() {
23652 1 => {
23653 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::ParentRef>() };
23654 }
23655
23656 2 => {
23657 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::SelfRef>() };
23658 }
23659
23660 3 => {
23661 let _ =
23662 unsafe { self.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>() };
23663 }
23664
23665 4 => {
23666 let _ = unsafe {
23667 self.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
23668 };
23669 }
23670
23671 5 => {
23672 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::FrameworkRef>() };
23673 }
23674
23675 6 => {
23676 let _ = unsafe {
23677 self.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
23678 };
23679 }
23680
23681 7 => {
23682 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::DebugRef>() };
23683 }
23684
23685 8 => {
23686 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::VoidRef>() };
23687 }
23688
23689 9 => {
23690 let _ =
23691 unsafe { self.raw.get().read_unchecked::<crate::wire::EnvironmentRef>() };
23692 }
23693
23694 _ => (),
23695 }
23696 }
23697 }
23698
23699 impl ::fidl_next::Constrained for Ref<'_> {
23700 type Constraint = ();
23701
23702 fn validate(
23703 _: ::fidl_next::Slot<'_, Self>,
23704 _: Self::Constraint,
23705 ) -> Result<(), ::fidl_next::ValidationError> {
23706 Ok(())
23707 }
23708 }
23709
23710 unsafe impl ::fidl_next::Wire for Ref<'static> {
23711 type Narrowed<'de> = Ref<'de>;
23712
23713 #[inline]
23714 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
23715 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
23716 ::fidl_next::wire::Union::zero_padding(raw);
23717 }
23718 }
23719
23720 pub mod ref_ {
23721 pub enum Ref<'de> {
23722 Parent(&'de crate::wire::ParentRef),
23723
23724 Self_(&'de crate::wire::SelfRef),
23725
23726 Child(&'de crate::wire::ChildRef<'de>),
23727
23728 Collection(&'de crate::wire::CollectionRef<'de>),
23729
23730 Framework(&'de crate::wire::FrameworkRef),
23731
23732 Capability(&'de crate::wire::CapabilityRef<'de>),
23733
23734 Debug(&'de crate::wire::DebugRef),
23735
23736 VoidType(&'de crate::wire::VoidRef),
23737
23738 Environment(&'de crate::wire::EnvironmentRef),
23739
23740 UnknownOrdinal_(u64),
23741 }
23742
23743 pub enum Value<'de> {
23744 Parent(crate::wire::ParentRef),
23745
23746 Self_(crate::wire::SelfRef),
23747
23748 Child(crate::wire::ChildRef<'de>),
23749
23750 Collection(crate::wire::CollectionRef<'de>),
23751
23752 Framework(crate::wire::FrameworkRef),
23753
23754 Capability(crate::wire::CapabilityRef<'de>),
23755
23756 Debug(crate::wire::DebugRef),
23757
23758 VoidType(crate::wire::VoidRef),
23759
23760 Environment(crate::wire::EnvironmentRef),
23761
23762 UnknownOrdinal_(u64),
23763 }
23764 }
23765
23766 impl<'de> Ref<'de> {
23767 pub fn as_ref(&self) -> crate::wire::ref_::Ref<'_> {
23768 match self.raw.ordinal() {
23769 1 => crate::wire::ref_::Ref::Parent(unsafe {
23770 self.raw.get().deref_unchecked::<crate::wire::ParentRef>()
23771 }),
23772
23773 2 => crate::wire::ref_::Ref::Self_(unsafe {
23774 self.raw.get().deref_unchecked::<crate::wire::SelfRef>()
23775 }),
23776
23777 3 => crate::wire::ref_::Ref::Child(unsafe {
23778 self.raw.get().deref_unchecked::<crate::wire::ChildRef<'_>>()
23779 }),
23780
23781 4 => crate::wire::ref_::Ref::Collection(unsafe {
23782 self.raw.get().deref_unchecked::<crate::wire::CollectionRef<'_>>()
23783 }),
23784
23785 5 => crate::wire::ref_::Ref::Framework(unsafe {
23786 self.raw.get().deref_unchecked::<crate::wire::FrameworkRef>()
23787 }),
23788
23789 6 => crate::wire::ref_::Ref::Capability(unsafe {
23790 self.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'_>>()
23791 }),
23792
23793 7 => crate::wire::ref_::Ref::Debug(unsafe {
23794 self.raw.get().deref_unchecked::<crate::wire::DebugRef>()
23795 }),
23796
23797 8 => crate::wire::ref_::Ref::VoidType(unsafe {
23798 self.raw.get().deref_unchecked::<crate::wire::VoidRef>()
23799 }),
23800
23801 9 => crate::wire::ref_::Ref::Environment(unsafe {
23802 self.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>()
23803 }),
23804
23805 unknown => crate::wire::ref_::Ref::UnknownOrdinal_(unknown),
23806 }
23807 }
23808
23809 pub fn into_inner(self) -> crate::wire::ref_::Value<'de> {
23810 let this = ::core::mem::ManuallyDrop::new(self);
23811
23812 match this.raw.ordinal() {
23813 1 => crate::wire::ref_::Value::Parent(unsafe {
23814 this.raw.get().read_unchecked::<crate::wire::ParentRef>()
23815 }),
23816
23817 2 => crate::wire::ref_::Value::Self_(unsafe {
23818 this.raw.get().read_unchecked::<crate::wire::SelfRef>()
23819 }),
23820
23821 3 => crate::wire::ref_::Value::Child(unsafe {
23822 this.raw.get().read_unchecked::<crate::wire::ChildRef<'de>>()
23823 }),
23824
23825 4 => crate::wire::ref_::Value::Collection(unsafe {
23826 this.raw.get().read_unchecked::<crate::wire::CollectionRef<'de>>()
23827 }),
23828
23829 5 => crate::wire::ref_::Value::Framework(unsafe {
23830 this.raw.get().read_unchecked::<crate::wire::FrameworkRef>()
23831 }),
23832
23833 6 => crate::wire::ref_::Value::Capability(unsafe {
23834 this.raw.get().read_unchecked::<crate::wire::CapabilityRef<'de>>()
23835 }),
23836
23837 7 => crate::wire::ref_::Value::Debug(unsafe {
23838 this.raw.get().read_unchecked::<crate::wire::DebugRef>()
23839 }),
23840
23841 8 => crate::wire::ref_::Value::VoidType(unsafe {
23842 this.raw.get().read_unchecked::<crate::wire::VoidRef>()
23843 }),
23844
23845 9 => crate::wire::ref_::Value::Environment(unsafe {
23846 this.raw.get().read_unchecked::<crate::wire::EnvironmentRef>()
23847 }),
23848
23849 unknown => crate::wire::ref_::Value::UnknownOrdinal_(unknown),
23850 }
23851 }
23852 }
23853
23854 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Ref<'de>
23855 where
23856 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
23857 ___D: ::fidl_next::Decoder<'de>,
23858 {
23859 fn decode(
23860 mut slot: ::fidl_next::Slot<'_, Self>,
23861 decoder: &mut ___D,
23862 _: (),
23863 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
23864 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
23865 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
23866 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ParentRef>(
23867 raw,
23868 decoder,
23869 (),
23870 )?,
23871
23872 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::SelfRef>(
23873 raw,
23874 decoder,
23875 (),
23876 )?,
23877
23878 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ChildRef<'de>>(
23879 raw,
23880 decoder,
23881 (),
23882 )?,
23883
23884 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CollectionRef<'de>>(
23885 raw,
23886 decoder,
23887 (),
23888 )?,
23889
23890 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::FrameworkRef>(
23891 raw,
23892 decoder,
23893 (),
23894 )?,
23895
23896 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CapabilityRef<'de>>(
23897 raw,
23898 decoder,
23899 (),
23900 )?,
23901
23902 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::DebugRef>(
23903 raw,
23904 decoder,
23905 (),
23906 )?,
23907
23908 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::VoidRef>(
23909 raw,
23910 decoder,
23911 (),
23912 )?,
23913
23914 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EnvironmentRef>(
23915 raw,
23916 decoder,
23917 (),
23918 )?,
23919
23920 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
23921 }
23922
23923 Ok(())
23924 }
23925 }
23926
23927 impl<'de> ::core::fmt::Debug for Ref<'de> {
23928 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23929 match self.raw.ordinal() {
23930 1 => unsafe { self.raw.get().deref_unchecked::<crate::wire::ParentRef>().fmt(f) },
23931 2 => unsafe { self.raw.get().deref_unchecked::<crate::wire::SelfRef>().fmt(f) },
23932 3 => unsafe {
23933 self.raw.get().deref_unchecked::<crate::wire::ChildRef<'_>>().fmt(f)
23934 },
23935 4 => unsafe {
23936 self.raw.get().deref_unchecked::<crate::wire::CollectionRef<'_>>().fmt(f)
23937 },
23938 5 => unsafe {
23939 self.raw.get().deref_unchecked::<crate::wire::FrameworkRef>().fmt(f)
23940 },
23941 6 => unsafe {
23942 self.raw.get().deref_unchecked::<crate::wire::CapabilityRef<'_>>().fmt(f)
23943 },
23944 7 => unsafe { self.raw.get().deref_unchecked::<crate::wire::DebugRef>().fmt(f) },
23945 8 => unsafe { self.raw.get().deref_unchecked::<crate::wire::VoidRef>().fmt(f) },
23946 9 => unsafe {
23947 self.raw.get().deref_unchecked::<crate::wire::EnvironmentRef>().fmt(f)
23948 },
23949 _ => unsafe { ::core::hint::unreachable_unchecked() },
23950 }
23951 }
23952 }
23953
23954 impl<'de> ::fidl_next::IntoNatural for Ref<'de> {
23955 type Natural = crate::natural::Ref;
23956 }
23957
23958 #[repr(C)]
23960 pub struct Storage<'de> {
23961 pub(crate) table: ::fidl_next::wire::Table<'de>,
23962 }
23963
23964 impl<'de> Drop for Storage<'de> {
23965 fn drop(&mut self) {
23966 let _ = self.table.get(1).map(|envelope| unsafe {
23967 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23968 });
23969
23970 let _ = self
23971 .table
23972 .get(2)
23973 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
23974
23975 let _ = self.table.get(3).map(|envelope| unsafe {
23976 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23977 });
23978
23979 let _ = self.table.get(4).map(|envelope| unsafe {
23980 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
23981 });
23982
23983 let _ = self
23984 .table
23985 .get(5)
23986 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::StorageId>() });
23987 }
23988 }
23989
23990 impl ::fidl_next::Constrained for Storage<'_> {
23991 type Constraint = ();
23992
23993 fn validate(
23994 _: ::fidl_next::Slot<'_, Self>,
23995 _: Self::Constraint,
23996 ) -> Result<(), ::fidl_next::ValidationError> {
23997 Ok(())
23998 }
23999 }
24000
24001 unsafe impl ::fidl_next::Wire for Storage<'static> {
24002 type Narrowed<'de> = Storage<'de>;
24003
24004 #[inline]
24005 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24006 ::fidl_next::munge!(let Self { table } = out);
24007 ::fidl_next::wire::Table::zero_padding(table);
24008 }
24009 }
24010
24011 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Storage<'de>
24012 where
24013 ___D: ::fidl_next::Decoder<'de> + ?Sized,
24014 {
24015 fn decode(
24016 slot: ::fidl_next::Slot<'_, Self>,
24017 decoder: &mut ___D,
24018 _: (),
24019 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24020 ::fidl_next::munge!(let Self { table } = slot);
24021
24022 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24023 match ordinal {
24024 0 => unsafe { ::core::hint::unreachable_unchecked() },
24025
24026 1 => {
24027 ::fidl_next::wire::Envelope::decode_as::<
24028 ___D,
24029 ::fidl_next::wire::String<'de>,
24030 >(slot.as_mut(), decoder, 100)?;
24031
24032 let value = unsafe {
24033 slot.deref_unchecked()
24034 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24035 };
24036
24037 if value.len() > 100 {
24038 return Err(::fidl_next::DecodeError::VectorTooLong {
24039 size: value.len() as u64,
24040 limit: 100,
24041 });
24042 }
24043
24044 Ok(())
24045 }
24046
24047 2 => {
24048 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
24049 slot.as_mut(),
24050 decoder,
24051 (),
24052 )?;
24053
24054 Ok(())
24055 }
24056
24057 3 => {
24058 ::fidl_next::wire::Envelope::decode_as::<
24059 ___D,
24060 ::fidl_next::wire::String<'de>,
24061 >(slot.as_mut(), decoder, 100)?;
24062
24063 let value = unsafe {
24064 slot.deref_unchecked()
24065 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24066 };
24067
24068 if value.len() > 100 {
24069 return Err(::fidl_next::DecodeError::VectorTooLong {
24070 size: value.len() as u64,
24071 limit: 100,
24072 });
24073 }
24074
24075 Ok(())
24076 }
24077
24078 4 => {
24079 ::fidl_next::wire::Envelope::decode_as::<
24080 ___D,
24081 ::fidl_next::wire::String<'de>,
24082 >(slot.as_mut(), decoder, 1024)?;
24083
24084 let value = unsafe {
24085 slot.deref_unchecked()
24086 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24087 };
24088
24089 if value.len() > 1024 {
24090 return Err(::fidl_next::DecodeError::VectorTooLong {
24091 size: value.len() as u64,
24092 limit: 1024,
24093 });
24094 }
24095
24096 Ok(())
24097 }
24098
24099 5 => {
24100 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::StorageId>(
24101 slot.as_mut(),
24102 decoder,
24103 (),
24104 )?;
24105
24106 Ok(())
24107 }
24108
24109 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
24110 }
24111 })
24112 }
24113 }
24114
24115 impl<'de> Storage<'de> {
24116 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24117 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24118 }
24119
24120 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24121 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
24122 }
24123
24124 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
24125 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24126 }
24127
24128 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
24129 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
24130 }
24131
24132 pub fn backing_dir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24133 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
24134 }
24135
24136 pub fn take_backing_dir(
24137 &mut self,
24138 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24139 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
24140 }
24141
24142 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24143 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
24144 }
24145
24146 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24147 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
24148 }
24149
24150 pub fn storage_id(&self) -> ::core::option::Option<&crate::wire::StorageId> {
24151 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
24152 }
24153
24154 pub fn take_storage_id(&mut self) -> ::core::option::Option<crate::wire::StorageId> {
24155 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
24156 }
24157 }
24158
24159 impl<'de> ::core::fmt::Debug for Storage<'de> {
24160 fn fmt(
24161 &self,
24162 f: &mut ::core::fmt::Formatter<'_>,
24163 ) -> ::core::result::Result<(), ::core::fmt::Error> {
24164 f.debug_struct("Storage")
24165 .field("name", &self.name())
24166 .field("source", &self.source())
24167 .field("backing_dir", &self.backing_dir())
24168 .field("subdir", &self.subdir())
24169 .field("storage_id", &self.storage_id())
24170 .finish()
24171 }
24172 }
24173
24174 impl<'de> ::fidl_next::IntoNatural for Storage<'de> {
24175 type Natural = crate::natural::Storage;
24176 }
24177
24178 #[repr(C)]
24180 pub struct Dictionary<'de> {
24181 pub(crate) table: ::fidl_next::wire::Table<'de>,
24182 }
24183
24184 impl<'de> Drop for Dictionary<'de> {
24185 fn drop(&mut self) {
24186 let _ = self.table.get(1).map(|envelope| unsafe {
24187 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24188 });
24189
24190 let _ = self
24191 .table
24192 .get(2)
24193 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
24194
24195 let _ = self.table.get(3).map(|envelope| unsafe {
24196 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24197 });
24198
24199 let _ = self.table.get(4).map(|envelope| unsafe {
24200 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24201 });
24202 }
24203 }
24204
24205 impl ::fidl_next::Constrained for Dictionary<'_> {
24206 type Constraint = ();
24207
24208 fn validate(
24209 _: ::fidl_next::Slot<'_, Self>,
24210 _: Self::Constraint,
24211 ) -> Result<(), ::fidl_next::ValidationError> {
24212 Ok(())
24213 }
24214 }
24215
24216 unsafe impl ::fidl_next::Wire for Dictionary<'static> {
24217 type Narrowed<'de> = Dictionary<'de>;
24218
24219 #[inline]
24220 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24221 ::fidl_next::munge!(let Self { table } = out);
24222 ::fidl_next::wire::Table::zero_padding(table);
24223 }
24224 }
24225
24226 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Dictionary<'de>
24227 where
24228 ___D: ::fidl_next::Decoder<'de> + ?Sized,
24229 {
24230 fn decode(
24231 slot: ::fidl_next::Slot<'_, Self>,
24232 decoder: &mut ___D,
24233 _: (),
24234 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24235 ::fidl_next::munge!(let Self { table } = slot);
24236
24237 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24238 match ordinal {
24239 0 => unsafe { ::core::hint::unreachable_unchecked() },
24240
24241 1 => {
24242 ::fidl_next::wire::Envelope::decode_as::<
24243 ___D,
24244 ::fidl_next::wire::String<'de>,
24245 >(slot.as_mut(), decoder, 100)?;
24246
24247 let value = unsafe {
24248 slot.deref_unchecked()
24249 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24250 };
24251
24252 if value.len() > 100 {
24253 return Err(::fidl_next::DecodeError::VectorTooLong {
24254 size: value.len() as u64,
24255 limit: 100,
24256 });
24257 }
24258
24259 Ok(())
24260 }
24261
24262 2 => {
24263 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
24264 slot.as_mut(),
24265 decoder,
24266 (),
24267 )?;
24268
24269 Ok(())
24270 }
24271
24272 3 => {
24273 ::fidl_next::wire::Envelope::decode_as::<
24274 ___D,
24275 ::fidl_next::wire::String<'de>,
24276 >(slot.as_mut(), decoder, 1024)?;
24277
24278 let value = unsafe {
24279 slot.deref_unchecked()
24280 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24281 };
24282
24283 if value.len() > 1024 {
24284 return Err(::fidl_next::DecodeError::VectorTooLong {
24285 size: value.len() as u64,
24286 limit: 1024,
24287 });
24288 }
24289
24290 Ok(())
24291 }
24292
24293 4 => {
24294 ::fidl_next::wire::Envelope::decode_as::<
24295 ___D,
24296 ::fidl_next::wire::String<'de>,
24297 >(slot.as_mut(), decoder, 1024)?;
24298
24299 let value = unsafe {
24300 slot.deref_unchecked()
24301 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24302 };
24303
24304 if value.len() > 1024 {
24305 return Err(::fidl_next::DecodeError::VectorTooLong {
24306 size: value.len() as u64,
24307 limit: 1024,
24308 });
24309 }
24310
24311 Ok(())
24312 }
24313
24314 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
24315 }
24316 })
24317 }
24318 }
24319
24320 impl<'de> Dictionary<'de> {
24321 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24322 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24323 }
24324
24325 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24326 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
24327 }
24328
24329 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
24330 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24331 }
24332
24333 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
24334 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
24335 }
24336
24337 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24338 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
24339 }
24340
24341 pub fn take_source_dictionary(
24342 &mut self,
24343 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24344 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
24345 }
24346
24347 pub fn source_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24348 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
24349 }
24350
24351 pub fn take_source_path(
24352 &mut self,
24353 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24354 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
24355 }
24356 }
24357
24358 impl<'de> ::core::fmt::Debug for Dictionary<'de> {
24359 fn fmt(
24360 &self,
24361 f: &mut ::core::fmt::Formatter<'_>,
24362 ) -> ::core::result::Result<(), ::core::fmt::Error> {
24363 f.debug_struct("Dictionary")
24364 .field("name", &self.name())
24365 .field("source", &self.source())
24366 .field("source_dictionary", &self.source_dictionary())
24367 .field("source_path", &self.source_path())
24368 .finish()
24369 }
24370 }
24371
24372 impl<'de> ::fidl_next::IntoNatural for Dictionary<'de> {
24373 type Natural = crate::natural::Dictionary;
24374 }
24375
24376 #[repr(transparent)]
24378 pub struct Capability<'de> {
24379 pub(crate) raw: ::fidl_next::wire::Union,
24380 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
24381 }
24382
24383 impl<'de> Drop for Capability<'de> {
24384 fn drop(&mut self) {
24385 match self.raw.ordinal() {
24386 1 => {
24387 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Service<'de>>() };
24388 }
24389
24390 2 => {
24391 let _ =
24392 unsafe { self.raw.get().read_unchecked::<crate::wire::Protocol<'de>>() };
24393 }
24394
24395 3 => {
24396 let _ =
24397 unsafe { self.raw.get().read_unchecked::<crate::wire::Directory<'de>>() };
24398 }
24399
24400 4 => {
24401 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Storage<'de>>() };
24402 }
24403
24404 5 => {
24405 let _ = unsafe { self.raw.get().read_unchecked::<crate::wire::Runner<'de>>() };
24406 }
24407
24408 6 => {
24409 let _ =
24410 unsafe { self.raw.get().read_unchecked::<crate::wire::Resolver<'de>>() };
24411 }
24412
24413 8 => {
24414 let _ =
24415 unsafe { self.raw.get().read_unchecked::<crate::wire::EventStream<'de>>() };
24416 }
24417
24418 9 => {
24419 let _ =
24420 unsafe { self.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>() };
24421 }
24422
24423 10 => {
24424 let _ = unsafe {
24425 self.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
24426 };
24427 }
24428
24429 _ => (),
24430 }
24431 }
24432 }
24433
24434 impl ::fidl_next::Constrained for Capability<'_> {
24435 type Constraint = ();
24436
24437 fn validate(
24438 _: ::fidl_next::Slot<'_, Self>,
24439 _: Self::Constraint,
24440 ) -> Result<(), ::fidl_next::ValidationError> {
24441 Ok(())
24442 }
24443 }
24444
24445 unsafe impl ::fidl_next::Wire for Capability<'static> {
24446 type Narrowed<'de> = Capability<'de>;
24447
24448 #[inline]
24449 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24450 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
24451 ::fidl_next::wire::Union::zero_padding(raw);
24452 }
24453 }
24454
24455 pub mod capability {
24456 pub enum Ref<'de> {
24457 Service(&'de crate::wire::Service<'de>),
24458
24459 Protocol(&'de crate::wire::Protocol<'de>),
24460
24461 Directory(&'de crate::wire::Directory<'de>),
24462
24463 Storage(&'de crate::wire::Storage<'de>),
24464
24465 Runner(&'de crate::wire::Runner<'de>),
24466
24467 Resolver(&'de crate::wire::Resolver<'de>),
24468
24469 EventStream(&'de crate::wire::EventStream<'de>),
24470
24471 Dictionary(&'de crate::wire::Dictionary<'de>),
24472
24473 Config(&'de crate::wire::Configuration<'de>),
24474
24475 UnknownOrdinal_(u64),
24476 }
24477
24478 pub enum Value<'de> {
24479 Service(crate::wire::Service<'de>),
24480
24481 Protocol(crate::wire::Protocol<'de>),
24482
24483 Directory(crate::wire::Directory<'de>),
24484
24485 Storage(crate::wire::Storage<'de>),
24486
24487 Runner(crate::wire::Runner<'de>),
24488
24489 Resolver(crate::wire::Resolver<'de>),
24490
24491 EventStream(crate::wire::EventStream<'de>),
24492
24493 Dictionary(crate::wire::Dictionary<'de>),
24494
24495 Config(crate::wire::Configuration<'de>),
24496
24497 UnknownOrdinal_(u64),
24498 }
24499 }
24500
24501 impl<'de> Capability<'de> {
24502 pub fn as_ref(&self) -> crate::wire::capability::Ref<'_> {
24503 match self.raw.ordinal() {
24504 1 => crate::wire::capability::Ref::Service(unsafe {
24505 self.raw.get().deref_unchecked::<crate::wire::Service<'_>>()
24506 }),
24507
24508 2 => crate::wire::capability::Ref::Protocol(unsafe {
24509 self.raw.get().deref_unchecked::<crate::wire::Protocol<'_>>()
24510 }),
24511
24512 3 => crate::wire::capability::Ref::Directory(unsafe {
24513 self.raw.get().deref_unchecked::<crate::wire::Directory<'_>>()
24514 }),
24515
24516 4 => crate::wire::capability::Ref::Storage(unsafe {
24517 self.raw.get().deref_unchecked::<crate::wire::Storage<'_>>()
24518 }),
24519
24520 5 => crate::wire::capability::Ref::Runner(unsafe {
24521 self.raw.get().deref_unchecked::<crate::wire::Runner<'_>>()
24522 }),
24523
24524 6 => crate::wire::capability::Ref::Resolver(unsafe {
24525 self.raw.get().deref_unchecked::<crate::wire::Resolver<'_>>()
24526 }),
24527
24528 8 => crate::wire::capability::Ref::EventStream(unsafe {
24529 self.raw.get().deref_unchecked::<crate::wire::EventStream<'_>>()
24530 }),
24531
24532 9 => crate::wire::capability::Ref::Dictionary(unsafe {
24533 self.raw.get().deref_unchecked::<crate::wire::Dictionary<'_>>()
24534 }),
24535
24536 10 => crate::wire::capability::Ref::Config(unsafe {
24537 self.raw.get().deref_unchecked::<crate::wire::Configuration<'_>>()
24538 }),
24539
24540 unknown => crate::wire::capability::Ref::UnknownOrdinal_(unknown),
24541 }
24542 }
24543
24544 pub fn into_inner(self) -> crate::wire::capability::Value<'de> {
24545 let this = ::core::mem::ManuallyDrop::new(self);
24546
24547 match this.raw.ordinal() {
24548 1 => crate::wire::capability::Value::Service(unsafe {
24549 this.raw.get().read_unchecked::<crate::wire::Service<'de>>()
24550 }),
24551
24552 2 => crate::wire::capability::Value::Protocol(unsafe {
24553 this.raw.get().read_unchecked::<crate::wire::Protocol<'de>>()
24554 }),
24555
24556 3 => crate::wire::capability::Value::Directory(unsafe {
24557 this.raw.get().read_unchecked::<crate::wire::Directory<'de>>()
24558 }),
24559
24560 4 => crate::wire::capability::Value::Storage(unsafe {
24561 this.raw.get().read_unchecked::<crate::wire::Storage<'de>>()
24562 }),
24563
24564 5 => crate::wire::capability::Value::Runner(unsafe {
24565 this.raw.get().read_unchecked::<crate::wire::Runner<'de>>()
24566 }),
24567
24568 6 => crate::wire::capability::Value::Resolver(unsafe {
24569 this.raw.get().read_unchecked::<crate::wire::Resolver<'de>>()
24570 }),
24571
24572 8 => crate::wire::capability::Value::EventStream(unsafe {
24573 this.raw.get().read_unchecked::<crate::wire::EventStream<'de>>()
24574 }),
24575
24576 9 => crate::wire::capability::Value::Dictionary(unsafe {
24577 this.raw.get().read_unchecked::<crate::wire::Dictionary<'de>>()
24578 }),
24579
24580 10 => crate::wire::capability::Value::Config(unsafe {
24581 this.raw.get().read_unchecked::<crate::wire::Configuration<'de>>()
24582 }),
24583
24584 unknown => crate::wire::capability::Value::UnknownOrdinal_(unknown),
24585 }
24586 }
24587 }
24588
24589 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Capability<'de>
24590 where
24591 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
24592 ___D: ::fidl_next::Decoder<'de>,
24593 {
24594 fn decode(
24595 mut slot: ::fidl_next::Slot<'_, Self>,
24596 decoder: &mut ___D,
24597 _: (),
24598 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24599 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
24600 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
24601 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Service<'de>>(
24602 raw,
24603 decoder,
24604 (),
24605 )?,
24606
24607 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Protocol<'de>>(
24608 raw,
24609 decoder,
24610 (),
24611 )?,
24612
24613 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Directory<'de>>(
24614 raw,
24615 decoder,
24616 (),
24617 )?,
24618
24619 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Storage<'de>>(
24620 raw,
24621 decoder,
24622 (),
24623 )?,
24624
24625 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Runner<'de>>(
24626 raw,
24627 decoder,
24628 (),
24629 )?,
24630
24631 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Resolver<'de>>(
24632 raw,
24633 decoder,
24634 (),
24635 )?,
24636
24637 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EventStream<'de>>(
24638 raw,
24639 decoder,
24640 (),
24641 )?,
24642
24643 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Dictionary<'de>>(
24644 raw,
24645 decoder,
24646 (),
24647 )?,
24648
24649 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Configuration<'de>>(
24650 raw,
24651 decoder,
24652 (),
24653 )?,
24654
24655 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
24656 }
24657
24658 Ok(())
24659 }
24660 }
24661
24662 impl<'de> ::core::fmt::Debug for Capability<'de> {
24663 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24664 match self.raw.ordinal() {
24665 1 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Service<'_>>().fmt(f) },
24666 2 => unsafe {
24667 self.raw.get().deref_unchecked::<crate::wire::Protocol<'_>>().fmt(f)
24668 },
24669 3 => unsafe {
24670 self.raw.get().deref_unchecked::<crate::wire::Directory<'_>>().fmt(f)
24671 },
24672 4 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Storage<'_>>().fmt(f) },
24673 5 => unsafe { self.raw.get().deref_unchecked::<crate::wire::Runner<'_>>().fmt(f) },
24674 6 => unsafe {
24675 self.raw.get().deref_unchecked::<crate::wire::Resolver<'_>>().fmt(f)
24676 },
24677 8 => unsafe {
24678 self.raw.get().deref_unchecked::<crate::wire::EventStream<'_>>().fmt(f)
24679 },
24680 9 => unsafe {
24681 self.raw.get().deref_unchecked::<crate::wire::Dictionary<'_>>().fmt(f)
24682 },
24683 10 => unsafe {
24684 self.raw.get().deref_unchecked::<crate::wire::Configuration<'_>>().fmt(f)
24685 },
24686 _ => unsafe { ::core::hint::unreachable_unchecked() },
24687 }
24688 }
24689 }
24690
24691 impl<'de> ::fidl_next::IntoNatural for Capability<'de> {
24692 type Natural = crate::natural::Capability;
24693 }
24694
24695 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
24697 #[repr(transparent)]
24698 pub struct StartupMode {
24699 pub(crate) value: ::fidl_next::wire::Uint32,
24700 }
24701
24702 impl ::fidl_next::Constrained for StartupMode {
24703 type Constraint = ();
24704
24705 fn validate(
24706 _: ::fidl_next::Slot<'_, Self>,
24707 _: Self::Constraint,
24708 ) -> Result<(), ::fidl_next::ValidationError> {
24709 Ok(())
24710 }
24711 }
24712
24713 unsafe impl ::fidl_next::Wire for StartupMode {
24714 type Narrowed<'de> = Self;
24715
24716 #[inline]
24717 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
24718 }
24720 }
24721
24722 impl StartupMode {
24723 pub const LAZY: StartupMode = StartupMode { value: ::fidl_next::wire::Uint32(0) };
24724
24725 pub const EAGER: StartupMode = StartupMode { value: ::fidl_next::wire::Uint32(1) };
24726 }
24727
24728 unsafe impl<___D> ::fidl_next::Decode<___D> for StartupMode
24729 where
24730 ___D: ?Sized,
24731 {
24732 fn decode(
24733 slot: ::fidl_next::Slot<'_, Self>,
24734 _: &mut ___D,
24735 _: (),
24736 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24737 ::fidl_next::munge!(let Self { value } = slot);
24738
24739 match u32::from(*value) {
24740 0 | 1 => (),
24741 unknown => {
24742 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
24743 }
24744 }
24745
24746 Ok(())
24747 }
24748 }
24749
24750 impl ::core::convert::From<crate::natural::StartupMode> for StartupMode {
24751 fn from(natural: crate::natural::StartupMode) -> Self {
24752 match natural {
24753 crate::natural::StartupMode::Lazy => StartupMode::LAZY,
24754
24755 crate::natural::StartupMode::Eager => StartupMode::EAGER,
24756 }
24757 }
24758 }
24759
24760 impl ::fidl_next::IntoNatural for StartupMode {
24761 type Natural = crate::natural::StartupMode;
24762 }
24763
24764 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
24766 #[repr(transparent)]
24767 pub struct OnTerminate {
24768 pub(crate) value: ::fidl_next::wire::Uint32,
24769 }
24770
24771 impl ::fidl_next::Constrained for OnTerminate {
24772 type Constraint = ();
24773
24774 fn validate(
24775 _: ::fidl_next::Slot<'_, Self>,
24776 _: Self::Constraint,
24777 ) -> Result<(), ::fidl_next::ValidationError> {
24778 Ok(())
24779 }
24780 }
24781
24782 unsafe impl ::fidl_next::Wire for OnTerminate {
24783 type Narrowed<'de> = Self;
24784
24785 #[inline]
24786 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
24787 }
24789 }
24790
24791 impl OnTerminate {
24792 pub const NONE: OnTerminate = OnTerminate { value: ::fidl_next::wire::Uint32(0) };
24793
24794 pub const REBOOT: OnTerminate = OnTerminate { value: ::fidl_next::wire::Uint32(1) };
24795 }
24796
24797 unsafe impl<___D> ::fidl_next::Decode<___D> for OnTerminate
24798 where
24799 ___D: ?Sized,
24800 {
24801 fn decode(
24802 slot: ::fidl_next::Slot<'_, Self>,
24803 _: &mut ___D,
24804 _: (),
24805 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24806 ::fidl_next::munge!(let Self { value } = slot);
24807
24808 match u32::from(*value) {
24809 0 | 1 => (),
24810 unknown => {
24811 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
24812 }
24813 }
24814
24815 Ok(())
24816 }
24817 }
24818
24819 impl ::core::convert::From<crate::natural::OnTerminate> for OnTerminate {
24820 fn from(natural: crate::natural::OnTerminate) -> Self {
24821 match natural {
24822 crate::natural::OnTerminate::None => OnTerminate::NONE,
24823
24824 crate::natural::OnTerminate::Reboot => OnTerminate::REBOOT,
24825 }
24826 }
24827 }
24828
24829 impl ::fidl_next::IntoNatural for OnTerminate {
24830 type Natural = crate::natural::OnTerminate;
24831 }
24832
24833 pub type ConfigKey<'de> = ::fidl_next::wire::String<'de>;
24835
24836 #[repr(C)]
24838 pub struct ConfigOverride<'de> {
24839 pub(crate) table: ::fidl_next::wire::Table<'de>,
24840 }
24841
24842 impl<'de> Drop for ConfigOverride<'de> {
24843 fn drop(&mut self) {
24844 let _ = self.table.get(1).map(|envelope| unsafe {
24845 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24846 });
24847
24848 let _ = self.table.get(2).map(|envelope| unsafe {
24849 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
24850 });
24851 }
24852 }
24853
24854 impl ::fidl_next::Constrained for ConfigOverride<'_> {
24855 type Constraint = ();
24856
24857 fn validate(
24858 _: ::fidl_next::Slot<'_, Self>,
24859 _: Self::Constraint,
24860 ) -> Result<(), ::fidl_next::ValidationError> {
24861 Ok(())
24862 }
24863 }
24864
24865 unsafe impl ::fidl_next::Wire for ConfigOverride<'static> {
24866 type Narrowed<'de> = ConfigOverride<'de>;
24867
24868 #[inline]
24869 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
24870 ::fidl_next::munge!(let Self { table } = out);
24871 ::fidl_next::wire::Table::zero_padding(table);
24872 }
24873 }
24874
24875 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigOverride<'de>
24876 where
24877 ___D: ::fidl_next::Decoder<'de> + ?Sized,
24878 {
24879 fn decode(
24880 slot: ::fidl_next::Slot<'_, Self>,
24881 decoder: &mut ___D,
24882 _: (),
24883 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
24884 ::fidl_next::munge!(let Self { table } = slot);
24885
24886 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
24887 match ordinal {
24888 0 => unsafe { ::core::hint::unreachable_unchecked() },
24889
24890 1 => {
24891 ::fidl_next::wire::Envelope::decode_as::<
24892 ___D,
24893 ::fidl_next::wire::String<'de>,
24894 >(slot.as_mut(), decoder, 64)?;
24895
24896 let value = unsafe {
24897 slot.deref_unchecked()
24898 .deref_unchecked::<::fidl_next::wire::String<'_>>()
24899 };
24900
24901 if value.len() > 64 {
24902 return Err(::fidl_next::DecodeError::VectorTooLong {
24903 size: value.len() as u64,
24904 limit: 64,
24905 });
24906 }
24907
24908 Ok(())
24909 }
24910
24911 2 => {
24912 ::fidl_next::wire::Envelope::decode_as::<
24913 ___D,
24914 crate::wire::ConfigValue<'de>,
24915 >(slot.as_mut(), decoder, ())?;
24916
24917 Ok(())
24918 }
24919
24920 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
24921 }
24922 })
24923 }
24924 }
24925
24926 impl<'de> ConfigOverride<'de> {
24927 pub fn key(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
24928 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
24929 }
24930
24931 pub fn take_key(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
24932 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
24933 }
24934
24935 pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
24936 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
24937 }
24938
24939 pub fn take_value(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
24940 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
24941 }
24942 }
24943
24944 impl<'de> ::core::fmt::Debug for ConfigOverride<'de> {
24945 fn fmt(
24946 &self,
24947 f: &mut ::core::fmt::Formatter<'_>,
24948 ) -> ::core::result::Result<(), ::core::fmt::Error> {
24949 f.debug_struct("ConfigOverride")
24950 .field("key", &self.key())
24951 .field("value", &self.value())
24952 .finish()
24953 }
24954 }
24955
24956 impl<'de> ::fidl_next::IntoNatural for ConfigOverride<'de> {
24957 type Natural = crate::natural::ConfigOverride;
24958 }
24959
24960 #[repr(C)]
24962 pub struct Child<'de> {
24963 pub(crate) table: ::fidl_next::wire::Table<'de>,
24964 }
24965
24966 impl<'de> Drop for Child<'de> {
24967 fn drop(&mut self) {
24968 let _ = self.table.get(1).map(|envelope| unsafe {
24969 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24970 });
24971
24972 let _ = self.table.get(2).map(|envelope| unsafe {
24973 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24974 });
24975
24976 let _ = self
24977 .table
24978 .get(3)
24979 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::StartupMode>() });
24980
24981 let _ = self.table.get(4).map(|envelope| unsafe {
24982 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
24983 });
24984
24985 let _ = self
24986 .table
24987 .get(5)
24988 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::OnTerminate>() });
24989
24990 let _ = self.table.get(6)
24991 .map(|envelope| unsafe {
24992 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>()
24993 });
24994 }
24995 }
24996
24997 impl ::fidl_next::Constrained for Child<'_> {
24998 type Constraint = ();
24999
25000 fn validate(
25001 _: ::fidl_next::Slot<'_, Self>,
25002 _: Self::Constraint,
25003 ) -> Result<(), ::fidl_next::ValidationError> {
25004 Ok(())
25005 }
25006 }
25007
25008 unsafe impl ::fidl_next::Wire for Child<'static> {
25009 type Narrowed<'de> = Child<'de>;
25010
25011 #[inline]
25012 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25013 ::fidl_next::munge!(let Self { table } = out);
25014 ::fidl_next::wire::Table::zero_padding(table);
25015 }
25016 }
25017
25018 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Child<'de>
25019 where
25020 ___D: ::fidl_next::Decoder<'de> + ?Sized,
25021 {
25022 fn decode(
25023 slot: ::fidl_next::Slot<'_, Self>,
25024 decoder: &mut ___D,
25025 _: (),
25026 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25027 ::fidl_next::munge!(let Self { table } = slot);
25028
25029 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
25030 match ordinal {
25031 0 => unsafe { ::core::hint::unreachable_unchecked() },
25032
25033 1 => {
25034 ::fidl_next::wire::Envelope::decode_as::<
25035 ___D,
25036 ::fidl_next::wire::String<'de>,
25037 >(slot.as_mut(), decoder, 1024)?;
25038
25039 let value = unsafe {
25040 slot.deref_unchecked()
25041 .deref_unchecked::<::fidl_next::wire::String<'_>>()
25042 };
25043
25044 if value.len() > 1024 {
25045 return Err(::fidl_next::DecodeError::VectorTooLong {
25046 size: value.len() as u64,
25047 limit: 1024,
25048 });
25049 }
25050
25051 Ok(())
25052 }
25053
25054 2 => {
25055 ::fidl_next::wire::Envelope::decode_as::<
25056 ___D,
25057 ::fidl_next::wire::String<'de>,
25058 >(slot.as_mut(), decoder, 4096)?;
25059
25060 let value = unsafe {
25061 slot.deref_unchecked()
25062 .deref_unchecked::<::fidl_next::wire::String<'_>>()
25063 };
25064
25065 if value.len() > 4096 {
25066 return Err(::fidl_next::DecodeError::VectorTooLong {
25067 size: value.len() as u64,
25068 limit: 4096,
25069 });
25070 }
25071
25072 Ok(())
25073 }
25074
25075 3 => {
25076 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::StartupMode>(
25077 slot.as_mut(),
25078 decoder,
25079 (),
25080 )?;
25081
25082 Ok(())
25083 }
25084
25085 4 => {
25086 ::fidl_next::wire::Envelope::decode_as::<
25087 ___D,
25088 ::fidl_next::wire::String<'de>,
25089 >(slot.as_mut(), decoder, 100)?;
25090
25091 let value = unsafe {
25092 slot.deref_unchecked()
25093 .deref_unchecked::<::fidl_next::wire::String<'_>>()
25094 };
25095
25096 if value.len() > 100 {
25097 return Err(::fidl_next::DecodeError::VectorTooLong {
25098 size: value.len() as u64,
25099 limit: 100,
25100 });
25101 }
25102
25103 Ok(())
25104 }
25105
25106 5 => {
25107 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::OnTerminate>(
25108 slot.as_mut(),
25109 decoder,
25110 (),
25111 )?;
25112
25113 Ok(())
25114 }
25115
25116 6 => {
25117 ::fidl_next::wire::Envelope::decode_as::<
25118 ___D,
25119 ::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>,
25120 >(slot.as_mut(), decoder, (4294967295, ()))?;
25121
25122 Ok(())
25123 }
25124
25125 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
25126 }
25127 })
25128 }
25129 }
25130
25131 impl<'de> Child<'de> {
25132 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25133 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
25134 }
25135
25136 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25137 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
25138 }
25139
25140 pub fn url(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25141 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
25142 }
25143
25144 pub fn take_url(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25145 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
25146 }
25147
25148 pub fn startup(&self) -> ::core::option::Option<&crate::wire::StartupMode> {
25149 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
25150 }
25151
25152 pub fn take_startup(&mut self) -> ::core::option::Option<crate::wire::StartupMode> {
25153 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
25154 }
25155
25156 pub fn environment(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25157 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
25158 }
25159
25160 pub fn take_environment(
25161 &mut self,
25162 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25163 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
25164 }
25165
25166 pub fn on_terminate(&self) -> ::core::option::Option<&crate::wire::OnTerminate> {
25167 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
25168 }
25169
25170 pub fn take_on_terminate(&mut self) -> ::core::option::Option<crate::wire::OnTerminate> {
25171 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
25172 }
25173
25174 pub fn config_overrides(
25175 &self,
25176 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>
25177 {
25178 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
25179 }
25180
25181 pub fn take_config_overrides(
25182 &mut self,
25183 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::ConfigOverride<'de>>>
25184 {
25185 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
25186 }
25187 }
25188
25189 impl<'de> ::core::fmt::Debug for Child<'de> {
25190 fn fmt(
25191 &self,
25192 f: &mut ::core::fmt::Formatter<'_>,
25193 ) -> ::core::result::Result<(), ::core::fmt::Error> {
25194 f.debug_struct("Child")
25195 .field("name", &self.name())
25196 .field("url", &self.url())
25197 .field("startup", &self.startup())
25198 .field("environment", &self.environment())
25199 .field("on_terminate", &self.on_terminate())
25200 .field("config_overrides", &self.config_overrides())
25201 .finish()
25202 }
25203 }
25204
25205 impl<'de> ::fidl_next::IntoNatural for Child<'de> {
25206 type Natural = crate::natural::Child;
25207 }
25208
25209 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25211 #[repr(transparent)]
25212 pub struct Durability {
25213 pub(crate) value: ::fidl_next::wire::Uint32,
25214 }
25215
25216 impl ::fidl_next::Constrained for Durability {
25217 type Constraint = ();
25218
25219 fn validate(
25220 _: ::fidl_next::Slot<'_, Self>,
25221 _: Self::Constraint,
25222 ) -> Result<(), ::fidl_next::ValidationError> {
25223 Ok(())
25224 }
25225 }
25226
25227 unsafe impl ::fidl_next::Wire for Durability {
25228 type Narrowed<'de> = Self;
25229
25230 #[inline]
25231 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25232 }
25234 }
25235
25236 impl Durability {
25237 pub const TRANSIENT: Durability = Durability { value: ::fidl_next::wire::Uint32(2) };
25238
25239 pub const SINGLE_RUN: Durability = Durability { value: ::fidl_next::wire::Uint32(3) };
25240 }
25241
25242 unsafe impl<___D> ::fidl_next::Decode<___D> for Durability
25243 where
25244 ___D: ?Sized,
25245 {
25246 fn decode(
25247 slot: ::fidl_next::Slot<'_, Self>,
25248 _: &mut ___D,
25249 _: (),
25250 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25251 ::fidl_next::munge!(let Self { value } = slot);
25252
25253 match u32::from(*value) {
25254 2 | 3 => (),
25255 unknown => {
25256 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25257 }
25258 }
25259
25260 Ok(())
25261 }
25262 }
25263
25264 impl ::core::convert::From<crate::natural::Durability> for Durability {
25265 fn from(natural: crate::natural::Durability) -> Self {
25266 match natural {
25267 crate::natural::Durability::Transient => Durability::TRANSIENT,
25268
25269 crate::natural::Durability::SingleRun => Durability::SINGLE_RUN,
25270 }
25271 }
25272 }
25273
25274 impl ::fidl_next::IntoNatural for Durability {
25275 type Natural = crate::natural::Durability;
25276 }
25277
25278 #[repr(C)]
25280 pub struct Collection<'de> {
25281 pub(crate) table: ::fidl_next::wire::Table<'de>,
25282 }
25283
25284 impl<'de> Drop for Collection<'de> {
25285 fn drop(&mut self) {
25286 let _ = self.table.get(1).map(|envelope| unsafe {
25287 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
25288 });
25289
25290 let _ = self
25291 .table
25292 .get(2)
25293 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Durability>() });
25294
25295 let _ = self.table.get(3).map(|envelope| unsafe {
25296 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
25297 });
25298
25299 let _ = self
25300 .table
25301 .get(4)
25302 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::AllowedOffers>() });
25303
25304 let _ = self.table.get(5).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
25305
25306 let _ = self.table.get(6).map(|envelope| unsafe { envelope.read_unchecked::<bool>() });
25307 }
25308 }
25309
25310 impl ::fidl_next::Constrained for Collection<'_> {
25311 type Constraint = ();
25312
25313 fn validate(
25314 _: ::fidl_next::Slot<'_, Self>,
25315 _: Self::Constraint,
25316 ) -> Result<(), ::fidl_next::ValidationError> {
25317 Ok(())
25318 }
25319 }
25320
25321 unsafe impl ::fidl_next::Wire for Collection<'static> {
25322 type Narrowed<'de> = Collection<'de>;
25323
25324 #[inline]
25325 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25326 ::fidl_next::munge!(let Self { table } = out);
25327 ::fidl_next::wire::Table::zero_padding(table);
25328 }
25329 }
25330
25331 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Collection<'de>
25332 where
25333 ___D: ::fidl_next::Decoder<'de> + ?Sized,
25334 {
25335 fn decode(
25336 slot: ::fidl_next::Slot<'_, Self>,
25337 decoder: &mut ___D,
25338 _: (),
25339 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25340 ::fidl_next::munge!(let Self { table } = slot);
25341
25342 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
25343 match ordinal {
25344 0 => unsafe { ::core::hint::unreachable_unchecked() },
25345
25346 1 => {
25347 ::fidl_next::wire::Envelope::decode_as::<
25348 ___D,
25349 ::fidl_next::wire::String<'de>,
25350 >(slot.as_mut(), decoder, 100)?;
25351
25352 let value = unsafe {
25353 slot.deref_unchecked()
25354 .deref_unchecked::<::fidl_next::wire::String<'_>>()
25355 };
25356
25357 if value.len() > 100 {
25358 return Err(::fidl_next::DecodeError::VectorTooLong {
25359 size: value.len() as u64,
25360 limit: 100,
25361 });
25362 }
25363
25364 Ok(())
25365 }
25366
25367 2 => {
25368 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Durability>(
25369 slot.as_mut(),
25370 decoder,
25371 (),
25372 )?;
25373
25374 Ok(())
25375 }
25376
25377 3 => {
25378 ::fidl_next::wire::Envelope::decode_as::<
25379 ___D,
25380 ::fidl_next::wire::String<'de>,
25381 >(slot.as_mut(), decoder, 100)?;
25382
25383 let value = unsafe {
25384 slot.deref_unchecked()
25385 .deref_unchecked::<::fidl_next::wire::String<'_>>()
25386 };
25387
25388 if value.len() > 100 {
25389 return Err(::fidl_next::DecodeError::VectorTooLong {
25390 size: value.len() as u64,
25391 limit: 100,
25392 });
25393 }
25394
25395 Ok(())
25396 }
25397
25398 4 => {
25399 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::AllowedOffers>(
25400 slot.as_mut(),
25401 decoder,
25402 (),
25403 )?;
25404
25405 Ok(())
25406 }
25407
25408 5 => {
25409 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
25410 slot.as_mut(),
25411 decoder,
25412 (),
25413 )?;
25414
25415 Ok(())
25416 }
25417
25418 6 => {
25419 ::fidl_next::wire::Envelope::decode_as::<___D, bool>(
25420 slot.as_mut(),
25421 decoder,
25422 (),
25423 )?;
25424
25425 Ok(())
25426 }
25427
25428 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
25429 }
25430 })
25431 }
25432 }
25433
25434 impl<'de> Collection<'de> {
25435 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25436 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
25437 }
25438
25439 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25440 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
25441 }
25442
25443 pub fn durability(&self) -> ::core::option::Option<&crate::wire::Durability> {
25444 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
25445 }
25446
25447 pub fn take_durability(&mut self) -> ::core::option::Option<crate::wire::Durability> {
25448 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
25449 }
25450
25451 pub fn environment(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
25452 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
25453 }
25454
25455 pub fn take_environment(
25456 &mut self,
25457 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
25458 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
25459 }
25460
25461 pub fn allowed_offers(&self) -> ::core::option::Option<&crate::wire::AllowedOffers> {
25462 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
25463 }
25464
25465 pub fn take_allowed_offers(
25466 &mut self,
25467 ) -> ::core::option::Option<crate::wire::AllowedOffers> {
25468 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
25469 }
25470
25471 pub fn allow_long_names(&self) -> ::core::option::Option<&bool> {
25472 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
25473 }
25474
25475 pub fn take_allow_long_names(&mut self) -> ::core::option::Option<bool> {
25476 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
25477 }
25478
25479 pub fn persistent_storage(&self) -> ::core::option::Option<&bool> {
25480 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
25481 }
25482
25483 pub fn take_persistent_storage(&mut self) -> ::core::option::Option<bool> {
25484 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
25485 }
25486 }
25487
25488 impl<'de> ::core::fmt::Debug for Collection<'de> {
25489 fn fmt(
25490 &self,
25491 f: &mut ::core::fmt::Formatter<'_>,
25492 ) -> ::core::result::Result<(), ::core::fmt::Error> {
25493 f.debug_struct("Collection")
25494 .field("name", &self.name())
25495 .field("durability", &self.durability())
25496 .field("environment", &self.environment())
25497 .field("allowed_offers", &self.allowed_offers())
25498 .field("allow_long_names", &self.allow_long_names())
25499 .field("persistent_storage", &self.persistent_storage())
25500 .finish()
25501 }
25502 }
25503
25504 impl<'de> ::fidl_next::IntoNatural for Collection<'de> {
25505 type Natural = crate::natural::Collection;
25506 }
25507
25508 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25510 #[repr(transparent)]
25511 pub struct DependencyType {
25512 pub(crate) value: ::fidl_next::wire::Uint32,
25513 }
25514
25515 impl ::fidl_next::Constrained for DependencyType {
25516 type Constraint = ();
25517
25518 fn validate(
25519 _: ::fidl_next::Slot<'_, Self>,
25520 _: Self::Constraint,
25521 ) -> Result<(), ::fidl_next::ValidationError> {
25522 Ok(())
25523 }
25524 }
25525
25526 unsafe impl ::fidl_next::Wire for DependencyType {
25527 type Narrowed<'de> = Self;
25528
25529 #[inline]
25530 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25531 }
25533 }
25534
25535 impl DependencyType {
25536 pub const STRONG: DependencyType = DependencyType { value: ::fidl_next::wire::Uint32(1) };
25537
25538 pub const WEAK: DependencyType = DependencyType { value: ::fidl_next::wire::Uint32(2) };
25539 }
25540
25541 unsafe impl<___D> ::fidl_next::Decode<___D> for DependencyType
25542 where
25543 ___D: ?Sized,
25544 {
25545 fn decode(
25546 slot: ::fidl_next::Slot<'_, Self>,
25547 _: &mut ___D,
25548 _: (),
25549 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25550 ::fidl_next::munge!(let Self { value } = slot);
25551
25552 match u32::from(*value) {
25553 1 | 2 => (),
25554 unknown => {
25555 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25556 }
25557 }
25558
25559 Ok(())
25560 }
25561 }
25562
25563 impl ::core::convert::From<crate::natural::DependencyType> for DependencyType {
25564 fn from(natural: crate::natural::DependencyType) -> Self {
25565 match natural {
25566 crate::natural::DependencyType::Strong => DependencyType::STRONG,
25567
25568 crate::natural::DependencyType::Weak => DependencyType::WEAK,
25569 }
25570 }
25571 }
25572
25573 impl ::fidl_next::IntoNatural for DependencyType {
25574 type Natural = crate::natural::DependencyType;
25575 }
25576
25577 #[derive(Debug)]
25579 #[repr(C)]
25580 pub struct NameMapping<'de> {
25581 pub source_name: ::fidl_next::wire::String<'de>,
25582
25583 pub target_name: ::fidl_next::wire::String<'de>,
25584 }
25585
25586 static_assertions::const_assert_eq!(std::mem::size_of::<NameMapping<'_>>(), 32);
25587 static_assertions::const_assert_eq!(std::mem::align_of::<NameMapping<'_>>(), 8);
25588
25589 static_assertions::const_assert_eq!(std::mem::offset_of!(NameMapping<'_>, source_name), 0);
25590
25591 static_assertions::const_assert_eq!(std::mem::offset_of!(NameMapping<'_>, target_name), 16);
25592
25593 impl ::fidl_next::Constrained for NameMapping<'_> {
25594 type Constraint = ();
25595
25596 fn validate(
25597 _: ::fidl_next::Slot<'_, Self>,
25598 _: Self::Constraint,
25599 ) -> Result<(), ::fidl_next::ValidationError> {
25600 Ok(())
25601 }
25602 }
25603
25604 unsafe impl ::fidl_next::Wire for NameMapping<'static> {
25605 type Narrowed<'de> = NameMapping<'de>;
25606
25607 #[inline]
25608 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
25609 ::fidl_next::munge! {
25610 let Self {
25611 source_name,
25612 target_name,
25613
25614 } = &mut *out_;
25615 }
25616
25617 ::fidl_next::Wire::zero_padding(source_name);
25618
25619 ::fidl_next::Wire::zero_padding(target_name);
25620 }
25621 }
25622
25623 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for NameMapping<'de>
25624 where
25625 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
25626 ___D: ::fidl_next::Decoder<'de>,
25627 {
25628 fn decode(
25629 slot_: ::fidl_next::Slot<'_, Self>,
25630 decoder_: &mut ___D,
25631 _: (),
25632 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25633 ::fidl_next::munge! {
25634 let Self {
25635 mut source_name,
25636 mut target_name,
25637
25638 } = slot_;
25639 }
25640
25641 let _field = source_name.as_mut();
25642 ::fidl_next::Constrained::validate(_field, 100)?;
25643 ::fidl_next::Decode::decode(source_name.as_mut(), decoder_, 100)?;
25644
25645 let source_name = unsafe { source_name.deref_unchecked() };
25646
25647 if source_name.len() > 100 {
25648 return Err(::fidl_next::DecodeError::VectorTooLong {
25649 size: source_name.len() as u64,
25650 limit: 100,
25651 });
25652 }
25653
25654 let _field = target_name.as_mut();
25655 ::fidl_next::Constrained::validate(_field, 100)?;
25656 ::fidl_next::Decode::decode(target_name.as_mut(), decoder_, 100)?;
25657
25658 let target_name = unsafe { target_name.deref_unchecked() };
25659
25660 if target_name.len() > 100 {
25661 return Err(::fidl_next::DecodeError::VectorTooLong {
25662 size: target_name.len() as u64,
25663 limit: 100,
25664 });
25665 }
25666
25667 Ok(())
25668 }
25669 }
25670
25671 impl<'de> ::fidl_next::IntoNatural for NameMapping<'de> {
25672 type Natural = crate::natural::NameMapping;
25673 }
25674
25675 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25677 #[repr(transparent)]
25678 pub struct EnvironmentExtends {
25679 pub(crate) value: ::fidl_next::wire::Uint32,
25680 }
25681
25682 impl ::fidl_next::Constrained for EnvironmentExtends {
25683 type Constraint = ();
25684
25685 fn validate(
25686 _: ::fidl_next::Slot<'_, Self>,
25687 _: Self::Constraint,
25688 ) -> Result<(), ::fidl_next::ValidationError> {
25689 Ok(())
25690 }
25691 }
25692
25693 unsafe impl ::fidl_next::Wire for EnvironmentExtends {
25694 type Narrowed<'de> = Self;
25695
25696 #[inline]
25697 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25698 }
25700 }
25701
25702 impl EnvironmentExtends {
25703 pub const NONE: EnvironmentExtends =
25704 EnvironmentExtends { value: ::fidl_next::wire::Uint32(0) };
25705
25706 pub const REALM: EnvironmentExtends =
25707 EnvironmentExtends { value: ::fidl_next::wire::Uint32(1) };
25708 }
25709
25710 unsafe impl<___D> ::fidl_next::Decode<___D> for EnvironmentExtends
25711 where
25712 ___D: ?Sized,
25713 {
25714 fn decode(
25715 slot: ::fidl_next::Slot<'_, Self>,
25716 _: &mut ___D,
25717 _: (),
25718 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25719 ::fidl_next::munge!(let Self { value } = slot);
25720
25721 match u32::from(*value) {
25722 0 | 1 => (),
25723 unknown => {
25724 return Err(::fidl_next::DecodeError::InvalidEnumOrdinal(unknown as i128));
25725 }
25726 }
25727
25728 Ok(())
25729 }
25730 }
25731
25732 impl ::core::convert::From<crate::natural::EnvironmentExtends> for EnvironmentExtends {
25733 fn from(natural: crate::natural::EnvironmentExtends) -> Self {
25734 match natural {
25735 crate::natural::EnvironmentExtends::None => EnvironmentExtends::NONE,
25736
25737 crate::natural::EnvironmentExtends::Realm => EnvironmentExtends::REALM,
25738 }
25739 }
25740 }
25741
25742 impl ::fidl_next::IntoNatural for EnvironmentExtends {
25743 type Natural = crate::natural::EnvironmentExtends;
25744 }
25745
25746 pub type UrlScheme<'de> = ::fidl_next::wire::String<'de>;
25748
25749 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
25751 #[repr(transparent)]
25752 pub struct ConfigTypeLayout {
25753 pub(crate) value: ::fidl_next::wire::Uint32,
25754 }
25755
25756 impl ::fidl_next::Constrained for ConfigTypeLayout {
25757 type Constraint = ();
25758
25759 fn validate(
25760 _: ::fidl_next::Slot<'_, Self>,
25761 _: Self::Constraint,
25762 ) -> Result<(), ::fidl_next::ValidationError> {
25763 Ok(())
25764 }
25765 }
25766
25767 unsafe impl ::fidl_next::Wire for ConfigTypeLayout {
25768 type Narrowed<'de> = Self;
25769
25770 #[inline]
25771 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
25772 }
25774 }
25775
25776 impl ConfigTypeLayout {
25777 pub const BOOL: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::wire::Uint32(1) };
25778
25779 pub const UINT8: ConfigTypeLayout =
25780 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(2) };
25781
25782 pub const UINT16: ConfigTypeLayout =
25783 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(3) };
25784
25785 pub const UINT32: ConfigTypeLayout =
25786 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(4) };
25787
25788 pub const UINT64: ConfigTypeLayout =
25789 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(5) };
25790
25791 pub const INT8: ConfigTypeLayout = ConfigTypeLayout { value: ::fidl_next::wire::Uint32(6) };
25792
25793 pub const INT16: ConfigTypeLayout =
25794 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(7) };
25795
25796 pub const INT32: ConfigTypeLayout =
25797 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(8) };
25798
25799 pub const INT64: ConfigTypeLayout =
25800 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(9) };
25801
25802 pub const STRING: ConfigTypeLayout =
25803 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(10) };
25804
25805 pub const VECTOR: ConfigTypeLayout =
25806 ConfigTypeLayout { value: ::fidl_next::wire::Uint32(11) };
25807 }
25808
25809 unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigTypeLayout
25810 where
25811 ___D: ?Sized,
25812 {
25813 fn decode(
25814 slot: ::fidl_next::Slot<'_, Self>,
25815 _: &mut ___D,
25816 _: (),
25817 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25818 Ok(())
25819 }
25820 }
25821
25822 impl ::core::convert::From<crate::natural::ConfigTypeLayout> for ConfigTypeLayout {
25823 fn from(natural: crate::natural::ConfigTypeLayout) -> Self {
25824 match natural {
25825 crate::natural::ConfigTypeLayout::Bool => ConfigTypeLayout::BOOL,
25826
25827 crate::natural::ConfigTypeLayout::Uint8 => ConfigTypeLayout::UINT8,
25828
25829 crate::natural::ConfigTypeLayout::Uint16 => ConfigTypeLayout::UINT16,
25830
25831 crate::natural::ConfigTypeLayout::Uint32 => ConfigTypeLayout::UINT32,
25832
25833 crate::natural::ConfigTypeLayout::Uint64 => ConfigTypeLayout::UINT64,
25834
25835 crate::natural::ConfigTypeLayout::Int8 => ConfigTypeLayout::INT8,
25836
25837 crate::natural::ConfigTypeLayout::Int16 => ConfigTypeLayout::INT16,
25838
25839 crate::natural::ConfigTypeLayout::Int32 => ConfigTypeLayout::INT32,
25840
25841 crate::natural::ConfigTypeLayout::Int64 => ConfigTypeLayout::INT64,
25842
25843 crate::natural::ConfigTypeLayout::String => ConfigTypeLayout::STRING,
25844
25845 crate::natural::ConfigTypeLayout::Vector => ConfigTypeLayout::VECTOR,
25846
25847 crate::natural::ConfigTypeLayout::UnknownOrdinal_(value) => {
25848 ConfigTypeLayout { value: ::fidl_next::wire::Uint32::from(value) }
25849 }
25850 }
25851 }
25852 }
25853
25854 impl ::fidl_next::IntoNatural for ConfigTypeLayout {
25855 type Natural = crate::natural::ConfigTypeLayout;
25856 }
25857
25858 #[repr(transparent)]
25860 pub struct LayoutConstraint<'de> {
25861 pub(crate) raw: ::fidl_next::wire::Union,
25862 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
25863 }
25864
25865 impl<'de> Drop for LayoutConstraint<'de> {
25866 fn drop(&mut self) {
25867 match self.raw.ordinal() {
25868 1 => {
25869 let _ = unsafe { self.raw.get().read_unchecked::<::fidl_next::wire::Uint32>() };
25870 }
25871
25872 _ => (),
25873 }
25874 }
25875 }
25876
25877 impl ::fidl_next::Constrained for LayoutConstraint<'_> {
25878 type Constraint = ();
25879
25880 fn validate(
25881 _: ::fidl_next::Slot<'_, Self>,
25882 _: Self::Constraint,
25883 ) -> Result<(), ::fidl_next::ValidationError> {
25884 Ok(())
25885 }
25886 }
25887
25888 unsafe impl ::fidl_next::Wire for LayoutConstraint<'static> {
25889 type Narrowed<'de> = LayoutConstraint<'de>;
25890
25891 #[inline]
25892 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
25893 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
25894 ::fidl_next::wire::Union::zero_padding(raw);
25895 }
25896 }
25897
25898 pub mod layout_constraint {
25899 pub enum Ref<'de> {
25900 MaxSize(&'de ::fidl_next::wire::Uint32),
25901
25902 UnknownOrdinal_(u64),
25903 }
25904
25905 pub enum Value {
25906 MaxSize(::fidl_next::wire::Uint32),
25907
25908 UnknownOrdinal_(u64),
25909 }
25910 }
25911
25912 impl<'de> LayoutConstraint<'de> {
25913 pub fn as_ref(&self) -> crate::wire::layout_constraint::Ref<'_> {
25914 match self.raw.ordinal() {
25915 1 => crate::wire::layout_constraint::Ref::MaxSize(unsafe {
25916 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>()
25917 }),
25918
25919 unknown => crate::wire::layout_constraint::Ref::UnknownOrdinal_(unknown),
25920 }
25921 }
25922
25923 pub fn into_inner(self) -> crate::wire::layout_constraint::Value {
25924 let this = ::core::mem::ManuallyDrop::new(self);
25925
25926 match this.raw.ordinal() {
25927 1 => crate::wire::layout_constraint::Value::MaxSize(unsafe {
25928 this.raw.get().read_unchecked::<::fidl_next::wire::Uint32>()
25929 }),
25930
25931 unknown => crate::wire::layout_constraint::Value::UnknownOrdinal_(unknown),
25932 }
25933 }
25934 }
25935
25936 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutConstraint<'de>
25937 where
25938 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
25939 ___D: ::fidl_next::Decoder<'de>,
25940 {
25941 fn decode(
25942 mut slot: ::fidl_next::Slot<'_, Self>,
25943 decoder: &mut ___D,
25944 _: (),
25945 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
25946 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
25947 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
25948 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
25949 raw,
25950 decoder,
25951 (),
25952 )?,
25953
25954 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
25955 }
25956
25957 Ok(())
25958 }
25959 }
25960
25961 impl<'de> ::core::fmt::Debug for LayoutConstraint<'de> {
25962 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25963 match self.raw.ordinal() {
25964 1 => unsafe {
25965 self.raw.get().deref_unchecked::<::fidl_next::wire::Uint32>().fmt(f)
25966 },
25967 _ => unsafe { ::core::hint::unreachable_unchecked() },
25968 }
25969 }
25970 }
25971
25972 impl<'de> ::fidl_next::IntoNatural for LayoutConstraint<'de> {
25973 type Natural = crate::natural::LayoutConstraint;
25974 }
25975
25976 #[derive(Debug)]
25978 #[repr(C)]
25979 pub struct ConfigType<'de> {
25980 pub layout: crate::wire::ConfigTypeLayout,
25981
25982 pub parameters: ::fidl_next::wire::OptionalVector<'de, crate::wire::LayoutParameter<'de>>,
25983
25984 pub constraints: ::fidl_next::wire::Vector<'de, crate::wire::LayoutConstraint<'de>>,
25985 }
25986
25987 static_assertions::const_assert_eq!(std::mem::size_of::<ConfigType<'_>>(), 40);
25988 static_assertions::const_assert_eq!(std::mem::align_of::<ConfigType<'_>>(), 8);
25989
25990 static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, layout), 0);
25991
25992 static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, parameters), 8);
25993
25994 static_assertions::const_assert_eq!(std::mem::offset_of!(ConfigType<'_>, constraints), 24);
25995
25996 impl ::fidl_next::Constrained for ConfigType<'_> {
25997 type Constraint = ();
25998
25999 fn validate(
26000 _: ::fidl_next::Slot<'_, Self>,
26001 _: Self::Constraint,
26002 ) -> Result<(), ::fidl_next::ValidationError> {
26003 Ok(())
26004 }
26005 }
26006
26007 unsafe impl ::fidl_next::Wire for ConfigType<'static> {
26008 type Narrowed<'de> = ConfigType<'de>;
26009
26010 #[inline]
26011 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
26012 ::fidl_next::munge! {
26013 let Self {
26014 layout,
26015 parameters,
26016 constraints,
26017
26018 } = &mut *out_;
26019 }
26020
26021 ::fidl_next::Wire::zero_padding(layout);
26022
26023 ::fidl_next::Wire::zero_padding(parameters);
26024
26025 ::fidl_next::Wire::zero_padding(constraints);
26026
26027 unsafe {
26028 out_.as_mut_ptr().cast::<u8>().add(4).write_bytes(0, 4);
26029 }
26030 }
26031 }
26032
26033 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigType<'de>
26034 where
26035 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
26036 ___D: ::fidl_next::Decoder<'de>,
26037 {
26038 fn decode(
26039 slot_: ::fidl_next::Slot<'_, Self>,
26040 decoder_: &mut ___D,
26041 _: (),
26042 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26043 if slot_.as_bytes()[4..8] != [0u8; 4] {
26044 return Err(::fidl_next::DecodeError::InvalidPadding);
26045 }
26046
26047 ::fidl_next::munge! {
26048 let Self {
26049 mut layout,
26050 mut parameters,
26051 mut constraints,
26052
26053 } = slot_;
26054 }
26055
26056 let _field = layout.as_mut();
26057
26058 ::fidl_next::Decode::decode(layout.as_mut(), decoder_, ())?;
26059
26060 let _field = parameters.as_mut();
26061 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
26062 ::fidl_next::Decode::decode(parameters.as_mut(), decoder_, (4294967295, ()))?;
26063
26064 let _field = constraints.as_mut();
26065 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
26066 ::fidl_next::Decode::decode(constraints.as_mut(), decoder_, (4294967295, ()))?;
26067
26068 Ok(())
26069 }
26070 }
26071
26072 impl<'de> ::fidl_next::IntoNatural for ConfigType<'de> {
26073 type Natural = crate::natural::ConfigType;
26074 }
26075
26076 #[repr(transparent)]
26078 pub struct ConfigChecksum<'de> {
26079 pub(crate) raw: ::fidl_next::wire::Union,
26080 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
26081 }
26082
26083 impl<'de> Drop for ConfigChecksum<'de> {
26084 fn drop(&mut self) {
26085 match self.raw.ordinal() {
26086 1 => {
26087 let _ = unsafe { self.raw.get().read_unchecked::<[u8; 32]>() };
26088 }
26089
26090 _ => (),
26091 }
26092 }
26093 }
26094
26095 impl ::fidl_next::Constrained for ConfigChecksum<'_> {
26096 type Constraint = ();
26097
26098 fn validate(
26099 _: ::fidl_next::Slot<'_, Self>,
26100 _: Self::Constraint,
26101 ) -> Result<(), ::fidl_next::ValidationError> {
26102 Ok(())
26103 }
26104 }
26105
26106 unsafe impl ::fidl_next::Wire for ConfigChecksum<'static> {
26107 type Narrowed<'de> = ConfigChecksum<'de>;
26108
26109 #[inline]
26110 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26111 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
26112 ::fidl_next::wire::Union::zero_padding(raw);
26113 }
26114 }
26115
26116 pub mod config_checksum {
26117 pub enum Ref<'de> {
26118 Sha256(&'de [u8; 32]),
26119
26120 UnknownOrdinal_(u64),
26121 }
26122
26123 pub enum Value {
26124 Sha256([u8; 32]),
26125
26126 UnknownOrdinal_(u64),
26127 }
26128 }
26129
26130 impl<'de> ConfigChecksum<'de> {
26131 pub fn as_ref(&self) -> crate::wire::config_checksum::Ref<'_> {
26132 match self.raw.ordinal() {
26133 1 => crate::wire::config_checksum::Ref::Sha256(unsafe {
26134 self.raw.get().deref_unchecked::<[u8; 32]>()
26135 }),
26136
26137 unknown => crate::wire::config_checksum::Ref::UnknownOrdinal_(unknown),
26138 }
26139 }
26140
26141 pub fn into_inner(self) -> crate::wire::config_checksum::Value {
26142 let this = ::core::mem::ManuallyDrop::new(self);
26143
26144 match this.raw.ordinal() {
26145 1 => crate::wire::config_checksum::Value::Sha256(unsafe {
26146 this.raw.get().read_unchecked::<[u8; 32]>()
26147 }),
26148
26149 unknown => crate::wire::config_checksum::Value::UnknownOrdinal_(unknown),
26150 }
26151 }
26152 }
26153
26154 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigChecksum<'de>
26155 where
26156 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
26157 ___D: ::fidl_next::Decoder<'de>,
26158 {
26159 fn decode(
26160 mut slot: ::fidl_next::Slot<'_, Self>,
26161 decoder: &mut ___D,
26162 _: (),
26163 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26164 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
26165 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
26166 1 => ::fidl_next::wire::Union::decode_as::<___D, [u8; 32]>(raw, decoder, ())?,
26167
26168 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
26169 }
26170
26171 Ok(())
26172 }
26173 }
26174
26175 impl<'de> ::core::fmt::Debug for ConfigChecksum<'de> {
26176 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26177 match self.raw.ordinal() {
26178 1 => unsafe { self.raw.get().deref_unchecked::<[u8; 32]>().fmt(f) },
26179 _ => unsafe { ::core::hint::unreachable_unchecked() },
26180 }
26181 }
26182 }
26183
26184 impl<'de> ::fidl_next::IntoNatural for ConfigChecksum<'de> {
26185 type Natural = crate::natural::ConfigChecksum;
26186 }
26187
26188 #[repr(C)]
26190 pub struct UseStorage<'de> {
26191 pub(crate) table: ::fidl_next::wire::Table<'de>,
26192 }
26193
26194 impl<'de> Drop for UseStorage<'de> {
26195 fn drop(&mut self) {
26196 let _ = self.table.get(1).map(|envelope| unsafe {
26197 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26198 });
26199
26200 let _ = self.table.get(2).map(|envelope| unsafe {
26201 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26202 });
26203
26204 let _ = self
26205 .table
26206 .get(3)
26207 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26208 }
26209 }
26210
26211 impl ::fidl_next::Constrained for UseStorage<'_> {
26212 type Constraint = ();
26213
26214 fn validate(
26215 _: ::fidl_next::Slot<'_, Self>,
26216 _: Self::Constraint,
26217 ) -> Result<(), ::fidl_next::ValidationError> {
26218 Ok(())
26219 }
26220 }
26221
26222 unsafe impl ::fidl_next::Wire for UseStorage<'static> {
26223 type Narrowed<'de> = UseStorage<'de>;
26224
26225 #[inline]
26226 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26227 ::fidl_next::munge!(let Self { table } = out);
26228 ::fidl_next::wire::Table::zero_padding(table);
26229 }
26230 }
26231
26232 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseStorage<'de>
26233 where
26234 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26235 {
26236 fn decode(
26237 slot: ::fidl_next::Slot<'_, Self>,
26238 decoder: &mut ___D,
26239 _: (),
26240 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26241 ::fidl_next::munge!(let Self { table } = slot);
26242
26243 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26244 match ordinal {
26245 0 => unsafe { ::core::hint::unreachable_unchecked() },
26246
26247 1 => {
26248 ::fidl_next::wire::Envelope::decode_as::<
26249 ___D,
26250 ::fidl_next::wire::String<'de>,
26251 >(slot.as_mut(), decoder, 100)?;
26252
26253 let value = unsafe {
26254 slot.deref_unchecked()
26255 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26256 };
26257
26258 if value.len() > 100 {
26259 return Err(::fidl_next::DecodeError::VectorTooLong {
26260 size: value.len() as u64,
26261 limit: 100,
26262 });
26263 }
26264
26265 Ok(())
26266 }
26267
26268 2 => {
26269 ::fidl_next::wire::Envelope::decode_as::<
26270 ___D,
26271 ::fidl_next::wire::String<'de>,
26272 >(slot.as_mut(), decoder, 1024)?;
26273
26274 let value = unsafe {
26275 slot.deref_unchecked()
26276 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26277 };
26278
26279 if value.len() > 1024 {
26280 return Err(::fidl_next::DecodeError::VectorTooLong {
26281 size: value.len() as u64,
26282 limit: 1024,
26283 });
26284 }
26285
26286 Ok(())
26287 }
26288
26289 3 => {
26290 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
26291 slot.as_mut(),
26292 decoder,
26293 (),
26294 )?;
26295
26296 Ok(())
26297 }
26298
26299 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26300 }
26301 })
26302 }
26303 }
26304
26305 impl<'de> UseStorage<'de> {
26306 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26307 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26308 }
26309
26310 pub fn take_source_name(
26311 &mut self,
26312 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26313 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26314 }
26315
26316 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26317 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26318 }
26319
26320 pub fn take_target_path(
26321 &mut self,
26322 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26323 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26324 }
26325
26326 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
26327 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26328 }
26329
26330 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
26331 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
26332 }
26333 }
26334
26335 impl<'de> ::core::fmt::Debug for UseStorage<'de> {
26336 fn fmt(
26337 &self,
26338 f: &mut ::core::fmt::Formatter<'_>,
26339 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26340 f.debug_struct("UseStorage")
26341 .field("source_name", &self.source_name())
26342 .field("target_path", &self.target_path())
26343 .field("availability", &self.availability())
26344 .finish()
26345 }
26346 }
26347
26348 impl<'de> ::fidl_next::IntoNatural for UseStorage<'de> {
26349 type Natural = crate::natural::UseStorage;
26350 }
26351
26352 #[derive(Clone, Copy, Debug)]
26354 #[repr(transparent)]
26355 pub struct ConfigMutability {
26356 pub(crate) value: ::fidl_next::wire::Uint32,
26357 }
26358
26359 impl ::fidl_next::Constrained for ConfigMutability {
26360 type Constraint = ();
26361
26362 fn validate(
26363 _: ::fidl_next::Slot<'_, Self>,
26364 _: Self::Constraint,
26365 ) -> Result<(), ::fidl_next::ValidationError> {
26366 Ok(())
26367 }
26368 }
26369
26370 unsafe impl ::fidl_next::Wire for ConfigMutability {
26371 type Narrowed<'de> = Self;
26372
26373 #[inline]
26374 fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
26375 }
26377 }
26378
26379 unsafe impl<___D> ::fidl_next::Decode<___D> for ConfigMutability
26380 where
26381 ___D: ?Sized,
26382 {
26383 fn decode(
26384 slot: ::fidl_next::Slot<'_, Self>,
26385 _: &mut ___D,
26386 _: (),
26387 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26388 Ok(())
26389 }
26390 }
26391
26392 impl ::core::convert::From<crate::natural::ConfigMutability> for ConfigMutability {
26393 fn from(natural: crate::natural::ConfigMutability) -> Self {
26394 Self { value: ::fidl_next::wire::Uint32::from(natural.bits()) }
26395 }
26396 }
26397
26398 impl ::fidl_next::IntoNatural for ConfigMutability {
26399 type Natural = crate::natural::ConfigMutability;
26400 }
26401
26402 #[repr(C)]
26404 pub struct ConfigField<'de> {
26405 pub(crate) table: ::fidl_next::wire::Table<'de>,
26406 }
26407
26408 impl<'de> Drop for ConfigField<'de> {
26409 fn drop(&mut self) {
26410 let _ = self.table.get(1).map(|envelope| unsafe {
26411 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26412 });
26413
26414 let _ = self.table.get(2).map(|envelope| unsafe {
26415 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
26416 });
26417
26418 let _ = self.table.get(3).map(|envelope| unsafe {
26419 envelope.read_unchecked::<crate::wire::ConfigMutability>()
26420 });
26421 }
26422 }
26423
26424 impl ::fidl_next::Constrained for ConfigField<'_> {
26425 type Constraint = ();
26426
26427 fn validate(
26428 _: ::fidl_next::Slot<'_, Self>,
26429 _: Self::Constraint,
26430 ) -> Result<(), ::fidl_next::ValidationError> {
26431 Ok(())
26432 }
26433 }
26434
26435 unsafe impl ::fidl_next::Wire for ConfigField<'static> {
26436 type Narrowed<'de> = ConfigField<'de>;
26437
26438 #[inline]
26439 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26440 ::fidl_next::munge!(let Self { table } = out);
26441 ::fidl_next::wire::Table::zero_padding(table);
26442 }
26443 }
26444
26445 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigField<'de>
26446 where
26447 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26448 {
26449 fn decode(
26450 slot: ::fidl_next::Slot<'_, Self>,
26451 decoder: &mut ___D,
26452 _: (),
26453 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26454 ::fidl_next::munge!(let Self { table } = slot);
26455
26456 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26457 match ordinal {
26458 0 => unsafe { ::core::hint::unreachable_unchecked() },
26459
26460 1 => {
26461 ::fidl_next::wire::Envelope::decode_as::<
26462 ___D,
26463 ::fidl_next::wire::String<'de>,
26464 >(slot.as_mut(), decoder, 64)?;
26465
26466 let value = unsafe {
26467 slot.deref_unchecked()
26468 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26469 };
26470
26471 if value.len() > 64 {
26472 return Err(::fidl_next::DecodeError::VectorTooLong {
26473 size: value.len() as u64,
26474 limit: 64,
26475 });
26476 }
26477
26478 Ok(())
26479 }
26480
26481 2 => {
26482 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::ConfigType<'de>>(
26483 slot.as_mut(),
26484 decoder,
26485 (),
26486 )?;
26487
26488 Ok(())
26489 }
26490
26491 3 => {
26492 ::fidl_next::wire::Envelope::decode_as::<
26493 ___D,
26494 crate::wire::ConfigMutability,
26495 >(slot.as_mut(), decoder, ())?;
26496
26497 Ok(())
26498 }
26499
26500 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26501 }
26502 })
26503 }
26504 }
26505
26506 impl<'de> ConfigField<'de> {
26507 pub fn key(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26508 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26509 }
26510
26511 pub fn take_key(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26512 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26513 }
26514
26515 pub fn type_(&self) -> ::core::option::Option<&crate::wire::ConfigType<'de>> {
26516 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26517 }
26518
26519 pub fn take_type_(&mut self) -> ::core::option::Option<crate::wire::ConfigType<'de>> {
26520 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26521 }
26522
26523 pub fn mutability(&self) -> ::core::option::Option<&crate::wire::ConfigMutability> {
26524 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26525 }
26526
26527 pub fn take_mutability(&mut self) -> ::core::option::Option<crate::wire::ConfigMutability> {
26528 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
26529 }
26530 }
26531
26532 impl<'de> ::core::fmt::Debug for ConfigField<'de> {
26533 fn fmt(
26534 &self,
26535 f: &mut ::core::fmt::Formatter<'_>,
26536 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26537 f.debug_struct("ConfigField")
26538 .field("key", &self.key())
26539 .field("type_", &self.type_())
26540 .field("mutability", &self.mutability())
26541 .finish()
26542 }
26543 }
26544
26545 impl<'de> ::fidl_next::IntoNatural for ConfigField<'de> {
26546 type Natural = crate::natural::ConfigField;
26547 }
26548
26549 #[repr(C)]
26551 pub struct Program<'de> {
26552 pub(crate) table: ::fidl_next::wire::Table<'de>,
26553 }
26554
26555 impl<'de> Drop for Program<'de> {
26556 fn drop(&mut self) {
26557 let _ = self.table.get(1).map(|envelope| unsafe {
26558 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26559 });
26560
26561 let _ = self.table.get(2).map(|envelope| unsafe {
26562 envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
26563 });
26564 }
26565 }
26566
26567 impl ::fidl_next::Constrained for Program<'_> {
26568 type Constraint = ();
26569
26570 fn validate(
26571 _: ::fidl_next::Slot<'_, Self>,
26572 _: Self::Constraint,
26573 ) -> Result<(), ::fidl_next::ValidationError> {
26574 Ok(())
26575 }
26576 }
26577
26578 unsafe impl ::fidl_next::Wire for Program<'static> {
26579 type Narrowed<'de> = Program<'de>;
26580
26581 #[inline]
26582 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26583 ::fidl_next::munge!(let Self { table } = out);
26584 ::fidl_next::wire::Table::zero_padding(table);
26585 }
26586 }
26587
26588 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Program<'de>
26589 where
26590 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26591 {
26592 fn decode(
26593 slot: ::fidl_next::Slot<'_, Self>,
26594 decoder: &mut ___D,
26595 _: (),
26596 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26597 ::fidl_next::munge!(let Self { table } = slot);
26598
26599 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26600 match ordinal {
26601 0 => unsafe { ::core::hint::unreachable_unchecked() },
26602
26603 1 => {
26604 ::fidl_next::wire::Envelope::decode_as::<
26605 ___D,
26606 ::fidl_next::wire::String<'de>,
26607 >(slot.as_mut(), decoder, 100)?;
26608
26609 let value = unsafe {
26610 slot.deref_unchecked()
26611 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26612 };
26613
26614 if value.len() > 100 {
26615 return Err(::fidl_next::DecodeError::VectorTooLong {
26616 size: value.len() as u64,
26617 limit: 100,
26618 });
26619 }
26620
26621 Ok(())
26622 }
26623
26624 2 => {
26625 ::fidl_next::wire::Envelope::decode_as::<
26626 ___D,
26627 ::fidl_next_common_fuchsia_data::wire::Dictionary<'de>,
26628 >(slot.as_mut(), decoder, ())?;
26629
26630 Ok(())
26631 }
26632
26633 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26634 }
26635 })
26636 }
26637 }
26638
26639 impl<'de> Program<'de> {
26640 pub fn runner(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26641 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26642 }
26643
26644 pub fn take_runner(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26645 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26646 }
26647
26648 pub fn info(
26649 &self,
26650 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
26651 {
26652 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26653 }
26654
26655 pub fn take_info(
26656 &mut self,
26657 ) -> ::core::option::Option<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
26658 {
26659 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26660 }
26661 }
26662
26663 impl<'de> ::core::fmt::Debug for Program<'de> {
26664 fn fmt(
26665 &self,
26666 f: &mut ::core::fmt::Formatter<'_>,
26667 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26668 f.debug_struct("Program")
26669 .field("runner", &self.runner())
26670 .field("info", &self.info())
26671 .finish()
26672 }
26673 }
26674
26675 impl<'de> ::fidl_next::IntoNatural for Program<'de> {
26676 type Natural = crate::natural::Program;
26677 }
26678
26679 #[repr(C)]
26681 pub struct DebugInfo<'de> {
26682 pub(crate) table: ::fidl_next::wire::Table<'de>,
26683 }
26684
26685 impl<'de> Drop for DebugInfo<'de> {
26686 fn drop(&mut self) {
26687 let _ = self.table.get(1)
26688 .map(|envelope| unsafe {
26689 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
26690 });
26691 }
26692 }
26693
26694 impl ::fidl_next::Constrained for DebugInfo<'_> {
26695 type Constraint = ();
26696
26697 fn validate(
26698 _: ::fidl_next::Slot<'_, Self>,
26699 _: Self::Constraint,
26700 ) -> Result<(), ::fidl_next::ValidationError> {
26701 Ok(())
26702 }
26703 }
26704
26705 unsafe impl ::fidl_next::Wire for DebugInfo<'static> {
26706 type Narrowed<'de> = DebugInfo<'de>;
26707
26708 #[inline]
26709 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26710 ::fidl_next::munge!(let Self { table } = out);
26711 ::fidl_next::wire::Table::zero_padding(table);
26712 }
26713 }
26714
26715 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugInfo<'de>
26716 where
26717 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26718 {
26719 fn decode(
26720 slot: ::fidl_next::Slot<'_, Self>,
26721 decoder: &mut ___D,
26722 _: (),
26723 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26724 ::fidl_next::munge!(let Self { table } = slot);
26725
26726 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26727 match ordinal {
26728 0 => unsafe { ::core::hint::unreachable_unchecked() },
26729
26730 1 => {
26731 ::fidl_next::wire::Envelope::decode_as::<
26732 ___D,
26733 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
26734 >(slot.as_mut(), decoder, (4294967295, 4294967295))?;
26735
26736 Ok(())
26737 }
26738
26739 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26740 }
26741 })
26742 }
26743 }
26744
26745 impl<'de> DebugInfo<'de> {
26746 pub fn manifest_sources(
26747 &self,
26748 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
26749 {
26750 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26751 }
26752
26753 pub fn take_manifest_sources(
26754 &mut self,
26755 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
26756 {
26757 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26758 }
26759 }
26760
26761 impl<'de> ::core::fmt::Debug for DebugInfo<'de> {
26762 fn fmt(
26763 &self,
26764 f: &mut ::core::fmt::Formatter<'_>,
26765 ) -> ::core::result::Result<(), ::core::fmt::Error> {
26766 f.debug_struct("DebugInfo").field("manifest_sources", &self.manifest_sources()).finish()
26767 }
26768 }
26769
26770 impl<'de> ::fidl_next::IntoNatural for DebugInfo<'de> {
26771 type Natural = crate::natural::DebugInfo;
26772 }
26773
26774 #[repr(C)]
26776 pub struct UseService<'de> {
26777 pub(crate) table: ::fidl_next::wire::Table<'de>,
26778 }
26779
26780 impl<'de> Drop for UseService<'de> {
26781 fn drop(&mut self) {
26782 let _ = self
26783 .table
26784 .get(1)
26785 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
26786
26787 let _ = self.table.get(2).map(|envelope| unsafe {
26788 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26789 });
26790
26791 let _ = self.table.get(3).map(|envelope| unsafe {
26792 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26793 });
26794
26795 let _ = self.table.get(4).map(|envelope| unsafe {
26796 envelope.read_unchecked::<crate::wire::DependencyType>()
26797 });
26798
26799 let _ = self
26800 .table
26801 .get(5)
26802 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
26803
26804 let _ = self.table.get(6).map(|envelope| unsafe {
26805 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
26806 });
26807 }
26808 }
26809
26810 impl ::fidl_next::Constrained for UseService<'_> {
26811 type Constraint = ();
26812
26813 fn validate(
26814 _: ::fidl_next::Slot<'_, Self>,
26815 _: Self::Constraint,
26816 ) -> Result<(), ::fidl_next::ValidationError> {
26817 Ok(())
26818 }
26819 }
26820
26821 unsafe impl ::fidl_next::Wire for UseService<'static> {
26822 type Narrowed<'de> = UseService<'de>;
26823
26824 #[inline]
26825 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
26826 ::fidl_next::munge!(let Self { table } = out);
26827 ::fidl_next::wire::Table::zero_padding(table);
26828 }
26829 }
26830
26831 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseService<'de>
26832 where
26833 ___D: ::fidl_next::Decoder<'de> + ?Sized,
26834 {
26835 fn decode(
26836 slot: ::fidl_next::Slot<'_, Self>,
26837 decoder: &mut ___D,
26838 _: (),
26839 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
26840 ::fidl_next::munge!(let Self { table } = slot);
26841
26842 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
26843 match ordinal {
26844 0 => unsafe { ::core::hint::unreachable_unchecked() },
26845
26846 1 => {
26847 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
26848 slot.as_mut(),
26849 decoder,
26850 (),
26851 )?;
26852
26853 Ok(())
26854 }
26855
26856 2 => {
26857 ::fidl_next::wire::Envelope::decode_as::<
26858 ___D,
26859 ::fidl_next::wire::String<'de>,
26860 >(slot.as_mut(), decoder, 100)?;
26861
26862 let value = unsafe {
26863 slot.deref_unchecked()
26864 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26865 };
26866
26867 if value.len() > 100 {
26868 return Err(::fidl_next::DecodeError::VectorTooLong {
26869 size: value.len() as u64,
26870 limit: 100,
26871 });
26872 }
26873
26874 Ok(())
26875 }
26876
26877 3 => {
26878 ::fidl_next::wire::Envelope::decode_as::<
26879 ___D,
26880 ::fidl_next::wire::String<'de>,
26881 >(slot.as_mut(), decoder, 1024)?;
26882
26883 let value = unsafe {
26884 slot.deref_unchecked()
26885 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26886 };
26887
26888 if value.len() > 1024 {
26889 return Err(::fidl_next::DecodeError::VectorTooLong {
26890 size: value.len() as u64,
26891 limit: 1024,
26892 });
26893 }
26894
26895 Ok(())
26896 }
26897
26898 4 => {
26899 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
26900 slot.as_mut(),
26901 decoder,
26902 (),
26903 )?;
26904
26905 Ok(())
26906 }
26907
26908 5 => {
26909 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
26910 slot.as_mut(),
26911 decoder,
26912 (),
26913 )?;
26914
26915 Ok(())
26916 }
26917
26918 6 => {
26919 ::fidl_next::wire::Envelope::decode_as::<
26920 ___D,
26921 ::fidl_next::wire::String<'de>,
26922 >(slot.as_mut(), decoder, 1024)?;
26923
26924 let value = unsafe {
26925 slot.deref_unchecked()
26926 .deref_unchecked::<::fidl_next::wire::String<'_>>()
26927 };
26928
26929 if value.len() > 1024 {
26930 return Err(::fidl_next::DecodeError::VectorTooLong {
26931 size: value.len() as u64,
26932 limit: 1024,
26933 });
26934 }
26935
26936 Ok(())
26937 }
26938
26939 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
26940 }
26941 })
26942 }
26943 }
26944
26945 impl<'de> UseService<'de> {
26946 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
26947 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
26948 }
26949
26950 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
26951 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
26952 }
26953
26954 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26955 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
26956 }
26957
26958 pub fn take_source_name(
26959 &mut self,
26960 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26961 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
26962 }
26963
26964 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26965 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
26966 }
26967
26968 pub fn take_target_path(
26969 &mut self,
26970 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26971 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
26972 }
26973
26974 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
26975 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
26976 }
26977
26978 pub fn take_dependency_type(
26979 &mut self,
26980 ) -> ::core::option::Option<crate::wire::DependencyType> {
26981 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
26982 }
26983
26984 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
26985 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
26986 }
26987
26988 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
26989 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
26990 }
26991
26992 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
26993 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
26994 }
26995
26996 pub fn take_source_dictionary(
26997 &mut self,
26998 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
26999 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
27000 }
27001 }
27002
27003 impl<'de> ::core::fmt::Debug for UseService<'de> {
27004 fn fmt(
27005 &self,
27006 f: &mut ::core::fmt::Formatter<'_>,
27007 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27008 f.debug_struct("UseService")
27009 .field("source", &self.source())
27010 .field("source_name", &self.source_name())
27011 .field("target_path", &self.target_path())
27012 .field("dependency_type", &self.dependency_type())
27013 .field("availability", &self.availability())
27014 .field("source_dictionary", &self.source_dictionary())
27015 .finish()
27016 }
27017 }
27018
27019 impl<'de> ::fidl_next::IntoNatural for UseService<'de> {
27020 type Natural = crate::natural::UseService;
27021 }
27022
27023 #[repr(C)]
27025 pub struct UseProtocol<'de> {
27026 pub(crate) table: ::fidl_next::wire::Table<'de>,
27027 }
27028
27029 impl<'de> Drop for UseProtocol<'de> {
27030 fn drop(&mut self) {
27031 let _ = self
27032 .table
27033 .get(1)
27034 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27035
27036 let _ = self.table.get(2).map(|envelope| unsafe {
27037 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27038 });
27039
27040 let _ = self.table.get(3).map(|envelope| unsafe {
27041 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27042 });
27043
27044 let _ = self.table.get(4).map(|envelope| unsafe {
27045 envelope.read_unchecked::<crate::wire::DependencyType>()
27046 });
27047
27048 let _ = self
27049 .table
27050 .get(5)
27051 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27052
27053 let _ = self.table.get(6).map(|envelope| unsafe {
27054 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27055 });
27056
27057 let _ = self.table.get(7).map(|envelope| unsafe { envelope.read_unchecked::<u8>() });
27058 }
27059 }
27060
27061 impl ::fidl_next::Constrained for UseProtocol<'_> {
27062 type Constraint = ();
27063
27064 fn validate(
27065 _: ::fidl_next::Slot<'_, Self>,
27066 _: Self::Constraint,
27067 ) -> Result<(), ::fidl_next::ValidationError> {
27068 Ok(())
27069 }
27070 }
27071
27072 unsafe impl ::fidl_next::Wire for UseProtocol<'static> {
27073 type Narrowed<'de> = UseProtocol<'de>;
27074
27075 #[inline]
27076 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27077 ::fidl_next::munge!(let Self { table } = out);
27078 ::fidl_next::wire::Table::zero_padding(table);
27079 }
27080 }
27081
27082 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseProtocol<'de>
27083 where
27084 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27085 {
27086 fn decode(
27087 slot: ::fidl_next::Slot<'_, Self>,
27088 decoder: &mut ___D,
27089 _: (),
27090 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27091 ::fidl_next::munge!(let Self { table } = slot);
27092
27093 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27094 match ordinal {
27095 0 => unsafe { ::core::hint::unreachable_unchecked() },
27096
27097 1 => {
27098 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27099 slot.as_mut(),
27100 decoder,
27101 (),
27102 )?;
27103
27104 Ok(())
27105 }
27106
27107 2 => {
27108 ::fidl_next::wire::Envelope::decode_as::<
27109 ___D,
27110 ::fidl_next::wire::String<'de>,
27111 >(slot.as_mut(), decoder, 100)?;
27112
27113 let value = unsafe {
27114 slot.deref_unchecked()
27115 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27116 };
27117
27118 if value.len() > 100 {
27119 return Err(::fidl_next::DecodeError::VectorTooLong {
27120 size: value.len() as u64,
27121 limit: 100,
27122 });
27123 }
27124
27125 Ok(())
27126 }
27127
27128 3 => {
27129 ::fidl_next::wire::Envelope::decode_as::<
27130 ___D,
27131 ::fidl_next::wire::String<'de>,
27132 >(slot.as_mut(), decoder, 1024)?;
27133
27134 let value = unsafe {
27135 slot.deref_unchecked()
27136 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27137 };
27138
27139 if value.len() > 1024 {
27140 return Err(::fidl_next::DecodeError::VectorTooLong {
27141 size: value.len() as u64,
27142 limit: 1024,
27143 });
27144 }
27145
27146 Ok(())
27147 }
27148
27149 4 => {
27150 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
27151 slot.as_mut(),
27152 decoder,
27153 (),
27154 )?;
27155
27156 Ok(())
27157 }
27158
27159 5 => {
27160 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
27161 slot.as_mut(),
27162 decoder,
27163 (),
27164 )?;
27165
27166 Ok(())
27167 }
27168
27169 6 => {
27170 ::fidl_next::wire::Envelope::decode_as::<
27171 ___D,
27172 ::fidl_next::wire::String<'de>,
27173 >(slot.as_mut(), decoder, 1024)?;
27174
27175 let value = unsafe {
27176 slot.deref_unchecked()
27177 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27178 };
27179
27180 if value.len() > 1024 {
27181 return Err(::fidl_next::DecodeError::VectorTooLong {
27182 size: value.len() as u64,
27183 limit: 1024,
27184 });
27185 }
27186
27187 Ok(())
27188 }
27189
27190 7 => {
27191 ::fidl_next::wire::Envelope::decode_as::<___D, u8>(
27192 slot.as_mut(),
27193 decoder,
27194 (),
27195 )?;
27196
27197 Ok(())
27198 }
27199
27200 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27201 }
27202 })
27203 }
27204 }
27205
27206 impl<'de> UseProtocol<'de> {
27207 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27208 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27209 }
27210
27211 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27212 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27213 }
27214
27215 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27216 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27217 }
27218
27219 pub fn take_source_name(
27220 &mut self,
27221 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27222 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27223 }
27224
27225 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27226 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27227 }
27228
27229 pub fn take_target_path(
27230 &mut self,
27231 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27232 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27233 }
27234
27235 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
27236 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27237 }
27238
27239 pub fn take_dependency_type(
27240 &mut self,
27241 ) -> ::core::option::Option<crate::wire::DependencyType> {
27242 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
27243 }
27244
27245 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27246 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27247 }
27248
27249 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
27250 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
27251 }
27252
27253 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27254 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27255 }
27256
27257 pub fn take_source_dictionary(
27258 &mut self,
27259 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27260 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
27261 }
27262
27263 pub fn numbered_handle(&self) -> ::core::option::Option<&u8> {
27264 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
27265 }
27266
27267 pub fn take_numbered_handle(&mut self) -> ::core::option::Option<u8> {
27268 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
27269 }
27270 }
27271
27272 impl<'de> ::core::fmt::Debug for UseProtocol<'de> {
27273 fn fmt(
27274 &self,
27275 f: &mut ::core::fmt::Formatter<'_>,
27276 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27277 f.debug_struct("UseProtocol")
27278 .field("source", &self.source())
27279 .field("source_name", &self.source_name())
27280 .field("target_path", &self.target_path())
27281 .field("dependency_type", &self.dependency_type())
27282 .field("availability", &self.availability())
27283 .field("source_dictionary", &self.source_dictionary())
27284 .field("numbered_handle", &self.numbered_handle())
27285 .finish()
27286 }
27287 }
27288
27289 impl<'de> ::fidl_next::IntoNatural for UseProtocol<'de> {
27290 type Natural = crate::natural::UseProtocol;
27291 }
27292
27293 #[repr(C)]
27295 pub struct UseDirectory<'de> {
27296 pub(crate) table: ::fidl_next::wire::Table<'de>,
27297 }
27298
27299 impl<'de> Drop for UseDirectory<'de> {
27300 fn drop(&mut self) {
27301 let _ = self
27302 .table
27303 .get(1)
27304 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27305
27306 let _ = self.table.get(2).map(|envelope| unsafe {
27307 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27308 });
27309
27310 let _ = self.table.get(3).map(|envelope| unsafe {
27311 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27312 });
27313
27314 let _ = self.table.get(4).map(|envelope| unsafe {
27315 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
27316 });
27317
27318 let _ = self.table.get(5).map(|envelope| unsafe {
27319 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27320 });
27321
27322 let _ = self.table.get(6).map(|envelope| unsafe {
27323 envelope.read_unchecked::<crate::wire::DependencyType>()
27324 });
27325
27326 let _ = self
27327 .table
27328 .get(7)
27329 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27330
27331 let _ = self.table.get(8).map(|envelope| unsafe {
27332 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27333 });
27334 }
27335 }
27336
27337 impl ::fidl_next::Constrained for UseDirectory<'_> {
27338 type Constraint = ();
27339
27340 fn validate(
27341 _: ::fidl_next::Slot<'_, Self>,
27342 _: Self::Constraint,
27343 ) -> Result<(), ::fidl_next::ValidationError> {
27344 Ok(())
27345 }
27346 }
27347
27348 unsafe impl ::fidl_next::Wire for UseDirectory<'static> {
27349 type Narrowed<'de> = UseDirectory<'de>;
27350
27351 #[inline]
27352 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27353 ::fidl_next::munge!(let Self { table } = out);
27354 ::fidl_next::wire::Table::zero_padding(table);
27355 }
27356 }
27357
27358 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseDirectory<'de>
27359 where
27360 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27361 {
27362 fn decode(
27363 slot: ::fidl_next::Slot<'_, Self>,
27364 decoder: &mut ___D,
27365 _: (),
27366 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27367 ::fidl_next::munge!(let Self { table } = slot);
27368
27369 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27370 match ordinal {
27371 0 => unsafe { ::core::hint::unreachable_unchecked() },
27372
27373 1 => {
27374 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27375 slot.as_mut(),
27376 decoder,
27377 (),
27378 )?;
27379
27380 Ok(())
27381 }
27382
27383 2 => {
27384 ::fidl_next::wire::Envelope::decode_as::<
27385 ___D,
27386 ::fidl_next::wire::String<'de>,
27387 >(slot.as_mut(), decoder, 100)?;
27388
27389 let value = unsafe {
27390 slot.deref_unchecked()
27391 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27392 };
27393
27394 if value.len() > 100 {
27395 return Err(::fidl_next::DecodeError::VectorTooLong {
27396 size: value.len() as u64,
27397 limit: 100,
27398 });
27399 }
27400
27401 Ok(())
27402 }
27403
27404 3 => {
27405 ::fidl_next::wire::Envelope::decode_as::<
27406 ___D,
27407 ::fidl_next::wire::String<'de>,
27408 >(slot.as_mut(), decoder, 1024)?;
27409
27410 let value = unsafe {
27411 slot.deref_unchecked()
27412 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27413 };
27414
27415 if value.len() > 1024 {
27416 return Err(::fidl_next::DecodeError::VectorTooLong {
27417 size: value.len() as u64,
27418 limit: 1024,
27419 });
27420 }
27421
27422 Ok(())
27423 }
27424
27425 4 => {
27426 ::fidl_next::wire::Envelope::decode_as::<
27427 ___D,
27428 ::fidl_next_common_fuchsia_io::wire::Operations,
27429 >(slot.as_mut(), decoder, ())?;
27430
27431 Ok(())
27432 }
27433
27434 5 => {
27435 ::fidl_next::wire::Envelope::decode_as::<
27436 ___D,
27437 ::fidl_next::wire::String<'de>,
27438 >(slot.as_mut(), decoder, 1024)?;
27439
27440 let value = unsafe {
27441 slot.deref_unchecked()
27442 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27443 };
27444
27445 if value.len() > 1024 {
27446 return Err(::fidl_next::DecodeError::VectorTooLong {
27447 size: value.len() as u64,
27448 limit: 1024,
27449 });
27450 }
27451
27452 Ok(())
27453 }
27454
27455 6 => {
27456 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
27457 slot.as_mut(),
27458 decoder,
27459 (),
27460 )?;
27461
27462 Ok(())
27463 }
27464
27465 7 => {
27466 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
27467 slot.as_mut(),
27468 decoder,
27469 (),
27470 )?;
27471
27472 Ok(())
27473 }
27474
27475 8 => {
27476 ::fidl_next::wire::Envelope::decode_as::<
27477 ___D,
27478 ::fidl_next::wire::String<'de>,
27479 >(slot.as_mut(), decoder, 1024)?;
27480
27481 let value = unsafe {
27482 slot.deref_unchecked()
27483 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27484 };
27485
27486 if value.len() > 1024 {
27487 return Err(::fidl_next::DecodeError::VectorTooLong {
27488 size: value.len() as u64,
27489 limit: 1024,
27490 });
27491 }
27492
27493 Ok(())
27494 }
27495
27496 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27497 }
27498 })
27499 }
27500 }
27501
27502 impl<'de> UseDirectory<'de> {
27503 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27504 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27505 }
27506
27507 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27508 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27509 }
27510
27511 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27512 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27513 }
27514
27515 pub fn take_source_name(
27516 &mut self,
27517 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27518 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27519 }
27520
27521 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27522 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27523 }
27524
27525 pub fn take_target_path(
27526 &mut self,
27527 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27528 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27529 }
27530
27531 pub fn rights(
27532 &self,
27533 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
27534 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27535 }
27536
27537 pub fn take_rights(
27538 &mut self,
27539 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
27540 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
27541 }
27542
27543 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27544 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27545 }
27546
27547 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27548 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
27549 }
27550
27551 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
27552 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27553 }
27554
27555 pub fn take_dependency_type(
27556 &mut self,
27557 ) -> ::core::option::Option<crate::wire::DependencyType> {
27558 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
27559 }
27560
27561 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27562 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
27563 }
27564
27565 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
27566 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
27567 }
27568
27569 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27570 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
27571 }
27572
27573 pub fn take_source_dictionary(
27574 &mut self,
27575 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27576 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
27577 }
27578 }
27579
27580 impl<'de> ::core::fmt::Debug for UseDirectory<'de> {
27581 fn fmt(
27582 &self,
27583 f: &mut ::core::fmt::Formatter<'_>,
27584 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27585 f.debug_struct("UseDirectory")
27586 .field("source", &self.source())
27587 .field("source_name", &self.source_name())
27588 .field("target_path", &self.target_path())
27589 .field("rights", &self.rights())
27590 .field("subdir", &self.subdir())
27591 .field("dependency_type", &self.dependency_type())
27592 .field("availability", &self.availability())
27593 .field("source_dictionary", &self.source_dictionary())
27594 .finish()
27595 }
27596 }
27597
27598 impl<'de> ::fidl_next::IntoNatural for UseDirectory<'de> {
27599 type Natural = crate::natural::UseDirectory;
27600 }
27601
27602 #[repr(C)]
27604 pub struct UseEventStream<'de> {
27605 pub(crate) table: ::fidl_next::wire::Table<'de>,
27606 }
27607
27608 impl<'de> Drop for UseEventStream<'de> {
27609 fn drop(&mut self) {
27610 let _ = self.table.get(1).map(|envelope| unsafe {
27611 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27612 });
27613
27614 let _ = self
27615 .table
27616 .get(2)
27617 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27618
27619 let _ = self.table.get(3).map(|envelope| unsafe {
27620 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>()
27621 });
27622
27623 let _ = self.table.get(4).map(|envelope| unsafe {
27624 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27625 });
27626
27627 let _ = self
27628 .table
27629 .get(5)
27630 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
27631
27632 let _ = self.table.get(6).map(|envelope| unsafe {
27633 envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
27634 });
27635 }
27636 }
27637
27638 impl ::fidl_next::Constrained for UseEventStream<'_> {
27639 type Constraint = ();
27640
27641 fn validate(
27642 _: ::fidl_next::Slot<'_, Self>,
27643 _: Self::Constraint,
27644 ) -> Result<(), ::fidl_next::ValidationError> {
27645 Ok(())
27646 }
27647 }
27648
27649 unsafe impl ::fidl_next::Wire for UseEventStream<'static> {
27650 type Narrowed<'de> = UseEventStream<'de>;
27651
27652 #[inline]
27653 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27654 ::fidl_next::munge!(let Self { table } = out);
27655 ::fidl_next::wire::Table::zero_padding(table);
27656 }
27657 }
27658
27659 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseEventStream<'de>
27660 where
27661 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27662 {
27663 fn decode(
27664 slot: ::fidl_next::Slot<'_, Self>,
27665 decoder: &mut ___D,
27666 _: (),
27667 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27668 ::fidl_next::munge!(let Self { table } = slot);
27669
27670 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27671 match ordinal {
27672 0 => unsafe { ::core::hint::unreachable_unchecked() },
27673
27674 1 => {
27675 ::fidl_next::wire::Envelope::decode_as::<
27676 ___D,
27677 ::fidl_next::wire::String<'de>,
27678 >(slot.as_mut(), decoder, 100)?;
27679
27680 let value = unsafe {
27681 slot.deref_unchecked()
27682 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27683 };
27684
27685 if value.len() > 100 {
27686 return Err(::fidl_next::DecodeError::VectorTooLong {
27687 size: value.len() as u64,
27688 limit: 100,
27689 });
27690 }
27691
27692 Ok(())
27693 }
27694
27695 2 => {
27696 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27697 slot.as_mut(),
27698 decoder,
27699 (),
27700 )?;
27701
27702 Ok(())
27703 }
27704
27705 3 => {
27706 ::fidl_next::wire::Envelope::decode_as::<
27707 ___D,
27708 ::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>,
27709 >(slot.as_mut(), decoder, (4294967295, ()))?;
27710
27711 Ok(())
27712 }
27713
27714 4 => {
27715 ::fidl_next::wire::Envelope::decode_as::<
27716 ___D,
27717 ::fidl_next::wire::String<'de>,
27718 >(slot.as_mut(), decoder, 100)?;
27719
27720 let value = unsafe {
27721 slot.deref_unchecked()
27722 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27723 };
27724
27725 if value.len() > 100 {
27726 return Err(::fidl_next::DecodeError::VectorTooLong {
27727 size: value.len() as u64,
27728 limit: 100,
27729 });
27730 }
27731
27732 Ok(())
27733 }
27734
27735 5 => {
27736 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
27737 slot.as_mut(),
27738 decoder,
27739 (),
27740 )?;
27741
27742 Ok(())
27743 }
27744
27745 6 => {
27746 ::fidl_next::wire::Envelope::decode_as::<
27747 ___D,
27748 ::fidl_next_common_fuchsia_data::wire::Dictionary<'de>,
27749 >(slot.as_mut(), decoder, ())?;
27750
27751 Ok(())
27752 }
27753
27754 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27755 }
27756 })
27757 }
27758 }
27759
27760 impl<'de> UseEventStream<'de> {
27761 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27762 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27763 }
27764
27765 pub fn take_source_name(
27766 &mut self,
27767 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27768 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27769 }
27770
27771 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27772 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27773 }
27774
27775 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27776 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27777 }
27778
27779 pub fn scope(
27780 &self,
27781 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>
27782 {
27783 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27784 }
27785
27786 pub fn take_scope(
27787 &mut self,
27788 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>> {
27789 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27790 }
27791
27792 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27793 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
27794 }
27795
27796 pub fn take_target_path(
27797 &mut self,
27798 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27799 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
27800 }
27801
27802 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
27803 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
27804 }
27805
27806 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
27807 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
27808 }
27809
27810 pub fn filter(
27811 &self,
27812 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
27813 {
27814 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
27815 }
27816
27817 pub fn take_filter(
27818 &mut self,
27819 ) -> ::core::option::Option<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
27820 {
27821 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
27822 }
27823 }
27824
27825 impl<'de> ::core::fmt::Debug for UseEventStream<'de> {
27826 fn fmt(
27827 &self,
27828 f: &mut ::core::fmt::Formatter<'_>,
27829 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27830 f.debug_struct("UseEventStream")
27831 .field("source_name", &self.source_name())
27832 .field("source", &self.source())
27833 .field("scope", &self.scope())
27834 .field("target_path", &self.target_path())
27835 .field("availability", &self.availability())
27836 .field("filter", &self.filter())
27837 .finish()
27838 }
27839 }
27840
27841 impl<'de> ::fidl_next::IntoNatural for UseEventStream<'de> {
27842 type Natural = crate::natural::UseEventStream;
27843 }
27844
27845 #[repr(C)]
27847 pub struct UseRunner<'de> {
27848 pub(crate) table: ::fidl_next::wire::Table<'de>,
27849 }
27850
27851 impl<'de> Drop for UseRunner<'de> {
27852 fn drop(&mut self) {
27853 let _ = self
27854 .table
27855 .get(1)
27856 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
27857
27858 let _ = self.table.get(2).map(|envelope| unsafe {
27859 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27860 });
27861
27862 let _ = self.table.get(3).map(|envelope| unsafe {
27863 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
27864 });
27865 }
27866 }
27867
27868 impl ::fidl_next::Constrained for UseRunner<'_> {
27869 type Constraint = ();
27870
27871 fn validate(
27872 _: ::fidl_next::Slot<'_, Self>,
27873 _: Self::Constraint,
27874 ) -> Result<(), ::fidl_next::ValidationError> {
27875 Ok(())
27876 }
27877 }
27878
27879 unsafe impl ::fidl_next::Wire for UseRunner<'static> {
27880 type Narrowed<'de> = UseRunner<'de>;
27881
27882 #[inline]
27883 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
27884 ::fidl_next::munge!(let Self { table } = out);
27885 ::fidl_next::wire::Table::zero_padding(table);
27886 }
27887 }
27888
27889 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseRunner<'de>
27890 where
27891 ___D: ::fidl_next::Decoder<'de> + ?Sized,
27892 {
27893 fn decode(
27894 slot: ::fidl_next::Slot<'_, Self>,
27895 decoder: &mut ___D,
27896 _: (),
27897 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
27898 ::fidl_next::munge!(let Self { table } = slot);
27899
27900 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
27901 match ordinal {
27902 0 => unsafe { ::core::hint::unreachable_unchecked() },
27903
27904 1 => {
27905 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
27906 slot.as_mut(),
27907 decoder,
27908 (),
27909 )?;
27910
27911 Ok(())
27912 }
27913
27914 2 => {
27915 ::fidl_next::wire::Envelope::decode_as::<
27916 ___D,
27917 ::fidl_next::wire::String<'de>,
27918 >(slot.as_mut(), decoder, 100)?;
27919
27920 let value = unsafe {
27921 slot.deref_unchecked()
27922 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27923 };
27924
27925 if value.len() > 100 {
27926 return Err(::fidl_next::DecodeError::VectorTooLong {
27927 size: value.len() as u64,
27928 limit: 100,
27929 });
27930 }
27931
27932 Ok(())
27933 }
27934
27935 3 => {
27936 ::fidl_next::wire::Envelope::decode_as::<
27937 ___D,
27938 ::fidl_next::wire::String<'de>,
27939 >(slot.as_mut(), decoder, 1024)?;
27940
27941 let value = unsafe {
27942 slot.deref_unchecked()
27943 .deref_unchecked::<::fidl_next::wire::String<'_>>()
27944 };
27945
27946 if value.len() > 1024 {
27947 return Err(::fidl_next::DecodeError::VectorTooLong {
27948 size: value.len() as u64,
27949 limit: 1024,
27950 });
27951 }
27952
27953 Ok(())
27954 }
27955
27956 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
27957 }
27958 })
27959 }
27960 }
27961
27962 impl<'de> UseRunner<'de> {
27963 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
27964 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
27965 }
27966
27967 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
27968 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
27969 }
27970
27971 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27972 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
27973 }
27974
27975 pub fn take_source_name(
27976 &mut self,
27977 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27978 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
27979 }
27980
27981 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
27982 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
27983 }
27984
27985 pub fn take_source_dictionary(
27986 &mut self,
27987 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
27988 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
27989 }
27990 }
27991
27992 impl<'de> ::core::fmt::Debug for UseRunner<'de> {
27993 fn fmt(
27994 &self,
27995 f: &mut ::core::fmt::Formatter<'_>,
27996 ) -> ::core::result::Result<(), ::core::fmt::Error> {
27997 f.debug_struct("UseRunner")
27998 .field("source", &self.source())
27999 .field("source_name", &self.source_name())
28000 .field("source_dictionary", &self.source_dictionary())
28001 .finish()
28002 }
28003 }
28004
28005 impl<'de> ::fidl_next::IntoNatural for UseRunner<'de> {
28006 type Natural = crate::natural::UseRunner;
28007 }
28008
28009 #[repr(C)]
28011 pub struct UseConfiguration<'de> {
28012 pub(crate) table: ::fidl_next::wire::Table<'de>,
28013 }
28014
28015 impl<'de> Drop for UseConfiguration<'de> {
28016 fn drop(&mut self) {
28017 let _ = self
28018 .table
28019 .get(1)
28020 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28021
28022 let _ = self.table.get(2).map(|envelope| unsafe {
28023 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28024 });
28025
28026 let _ = self.table.get(3).map(|envelope| unsafe {
28027 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28028 });
28029
28030 let _ = self
28031 .table
28032 .get(4)
28033 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28034
28035 let _ = self.table.get(5).map(|envelope| unsafe {
28036 envelope.read_unchecked::<crate::wire::ConfigType<'de>>()
28037 });
28038
28039 let _ = self.table.get(6).map(|envelope| unsafe {
28040 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
28041 });
28042
28043 let _ = self.table.get(7).map(|envelope| unsafe {
28044 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28045 });
28046 }
28047 }
28048
28049 impl ::fidl_next::Constrained for UseConfiguration<'_> {
28050 type Constraint = ();
28051
28052 fn validate(
28053 _: ::fidl_next::Slot<'_, Self>,
28054 _: Self::Constraint,
28055 ) -> Result<(), ::fidl_next::ValidationError> {
28056 Ok(())
28057 }
28058 }
28059
28060 unsafe impl ::fidl_next::Wire for UseConfiguration<'static> {
28061 type Narrowed<'de> = UseConfiguration<'de>;
28062
28063 #[inline]
28064 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28065 ::fidl_next::munge!(let Self { table } = out);
28066 ::fidl_next::wire::Table::zero_padding(table);
28067 }
28068 }
28069
28070 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseConfiguration<'de>
28071 where
28072 ___D: ::fidl_next::Decoder<'de> + ?Sized,
28073 {
28074 fn decode(
28075 slot: ::fidl_next::Slot<'_, Self>,
28076 decoder: &mut ___D,
28077 _: (),
28078 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28079 ::fidl_next::munge!(let Self { table } = slot);
28080
28081 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28082 match ordinal {
28083 0 => unsafe { ::core::hint::unreachable_unchecked() },
28084
28085 1 => {
28086 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
28087 slot.as_mut(),
28088 decoder,
28089 (),
28090 )?;
28091
28092 Ok(())
28093 }
28094
28095 2 => {
28096 ::fidl_next::wire::Envelope::decode_as::<
28097 ___D,
28098 ::fidl_next::wire::String<'de>,
28099 >(slot.as_mut(), decoder, 100)?;
28100
28101 let value = unsafe {
28102 slot.deref_unchecked()
28103 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28104 };
28105
28106 if value.len() > 100 {
28107 return Err(::fidl_next::DecodeError::VectorTooLong {
28108 size: value.len() as u64,
28109 limit: 100,
28110 });
28111 }
28112
28113 Ok(())
28114 }
28115
28116 3 => {
28117 ::fidl_next::wire::Envelope::decode_as::<
28118 ___D,
28119 ::fidl_next::wire::String<'de>,
28120 >(slot.as_mut(), decoder, 100)?;
28121
28122 let value = unsafe {
28123 slot.deref_unchecked()
28124 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28125 };
28126
28127 if value.len() > 100 {
28128 return Err(::fidl_next::DecodeError::VectorTooLong {
28129 size: value.len() as u64,
28130 limit: 100,
28131 });
28132 }
28133
28134 Ok(())
28135 }
28136
28137 4 => {
28138 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
28139 slot.as_mut(),
28140 decoder,
28141 (),
28142 )?;
28143
28144 Ok(())
28145 }
28146
28147 5 => {
28148 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::ConfigType<'de>>(
28149 slot.as_mut(),
28150 decoder,
28151 (),
28152 )?;
28153
28154 Ok(())
28155 }
28156
28157 6 => {
28158 ::fidl_next::wire::Envelope::decode_as::<
28159 ___D,
28160 crate::wire::ConfigValue<'de>,
28161 >(slot.as_mut(), decoder, ())?;
28162
28163 Ok(())
28164 }
28165
28166 7 => {
28167 ::fidl_next::wire::Envelope::decode_as::<
28168 ___D,
28169 ::fidl_next::wire::String<'de>,
28170 >(slot.as_mut(), decoder, 1024)?;
28171
28172 let value = unsafe {
28173 slot.deref_unchecked()
28174 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28175 };
28176
28177 if value.len() > 1024 {
28178 return Err(::fidl_next::DecodeError::VectorTooLong {
28179 size: value.len() as u64,
28180 limit: 1024,
28181 });
28182 }
28183
28184 Ok(())
28185 }
28186
28187 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
28188 }
28189 })
28190 }
28191 }
28192
28193 impl<'de> UseConfiguration<'de> {
28194 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28195 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28196 }
28197
28198 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
28199 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
28200 }
28201
28202 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28203 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28204 }
28205
28206 pub fn take_source_name(
28207 &mut self,
28208 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28209 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
28210 }
28211
28212 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28213 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28214 }
28215
28216 pub fn take_target_name(
28217 &mut self,
28218 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28219 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
28220 }
28221
28222 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28223 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
28224 }
28225
28226 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
28227 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
28228 }
28229
28230 pub fn type_(&self) -> ::core::option::Option<&crate::wire::ConfigType<'de>> {
28231 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
28232 }
28233
28234 pub fn take_type_(&mut self) -> ::core::option::Option<crate::wire::ConfigType<'de>> {
28235 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
28236 }
28237
28238 pub fn default(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
28239 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28240 }
28241
28242 pub fn take_default(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
28243 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
28244 }
28245
28246 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28247 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
28248 }
28249
28250 pub fn take_source_dictionary(
28251 &mut self,
28252 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28253 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
28254 }
28255 }
28256
28257 impl<'de> ::core::fmt::Debug for UseConfiguration<'de> {
28258 fn fmt(
28259 &self,
28260 f: &mut ::core::fmt::Formatter<'_>,
28261 ) -> ::core::result::Result<(), ::core::fmt::Error> {
28262 f.debug_struct("UseConfiguration")
28263 .field("source", &self.source())
28264 .field("source_name", &self.source_name())
28265 .field("target_name", &self.target_name())
28266 .field("availability", &self.availability())
28267 .field("type_", &self.type_())
28268 .field("default", &self.default())
28269 .field("source_dictionary", &self.source_dictionary())
28270 .finish()
28271 }
28272 }
28273
28274 impl<'de> ::fidl_next::IntoNatural for UseConfiguration<'de> {
28275 type Natural = crate::natural::UseConfiguration;
28276 }
28277
28278 #[repr(C)]
28280 pub struct UseDictionary<'de> {
28281 pub(crate) table: ::fidl_next::wire::Table<'de>,
28282 }
28283
28284 impl<'de> Drop for UseDictionary<'de> {
28285 fn drop(&mut self) {
28286 let _ = self
28287 .table
28288 .get(1)
28289 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28290
28291 let _ = self.table.get(2).map(|envelope| unsafe {
28292 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28293 });
28294
28295 let _ = self.table.get(3).map(|envelope| unsafe {
28296 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28297 });
28298
28299 let _ = self.table.get(6).map(|envelope| unsafe {
28300 envelope.read_unchecked::<crate::wire::DependencyType>()
28301 });
28302
28303 let _ = self
28304 .table
28305 .get(7)
28306 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28307
28308 let _ = self.table.get(8).map(|envelope| unsafe {
28309 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28310 });
28311 }
28312 }
28313
28314 impl ::fidl_next::Constrained for UseDictionary<'_> {
28315 type Constraint = ();
28316
28317 fn validate(
28318 _: ::fidl_next::Slot<'_, Self>,
28319 _: Self::Constraint,
28320 ) -> Result<(), ::fidl_next::ValidationError> {
28321 Ok(())
28322 }
28323 }
28324
28325 unsafe impl ::fidl_next::Wire for UseDictionary<'static> {
28326 type Narrowed<'de> = UseDictionary<'de>;
28327
28328 #[inline]
28329 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28330 ::fidl_next::munge!(let Self { table } = out);
28331 ::fidl_next::wire::Table::zero_padding(table);
28332 }
28333 }
28334
28335 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for UseDictionary<'de>
28336 where
28337 ___D: ::fidl_next::Decoder<'de> + ?Sized,
28338 {
28339 fn decode(
28340 slot: ::fidl_next::Slot<'_, Self>,
28341 decoder: &mut ___D,
28342 _: (),
28343 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28344 ::fidl_next::munge!(let Self { table } = slot);
28345
28346 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28347 match ordinal {
28348 0 => unsafe { ::core::hint::unreachable_unchecked() },
28349
28350 1 => {
28351 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
28352 slot.as_mut(),
28353 decoder,
28354 (),
28355 )?;
28356
28357 Ok(())
28358 }
28359
28360 2 => {
28361 ::fidl_next::wire::Envelope::decode_as::<
28362 ___D,
28363 ::fidl_next::wire::String<'de>,
28364 >(slot.as_mut(), decoder, 100)?;
28365
28366 let value = unsafe {
28367 slot.deref_unchecked()
28368 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28369 };
28370
28371 if value.len() > 100 {
28372 return Err(::fidl_next::DecodeError::VectorTooLong {
28373 size: value.len() as u64,
28374 limit: 100,
28375 });
28376 }
28377
28378 Ok(())
28379 }
28380
28381 3 => {
28382 ::fidl_next::wire::Envelope::decode_as::<
28383 ___D,
28384 ::fidl_next::wire::String<'de>,
28385 >(slot.as_mut(), decoder, 1024)?;
28386
28387 let value = unsafe {
28388 slot.deref_unchecked()
28389 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28390 };
28391
28392 if value.len() > 1024 {
28393 return Err(::fidl_next::DecodeError::VectorTooLong {
28394 size: value.len() as u64,
28395 limit: 1024,
28396 });
28397 }
28398
28399 Ok(())
28400 }
28401
28402 6 => {
28403 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
28404 slot.as_mut(),
28405 decoder,
28406 (),
28407 )?;
28408
28409 Ok(())
28410 }
28411
28412 7 => {
28413 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
28414 slot.as_mut(),
28415 decoder,
28416 (),
28417 )?;
28418
28419 Ok(())
28420 }
28421
28422 8 => {
28423 ::fidl_next::wire::Envelope::decode_as::<
28424 ___D,
28425 ::fidl_next::wire::String<'de>,
28426 >(slot.as_mut(), decoder, 1024)?;
28427
28428 let value = unsafe {
28429 slot.deref_unchecked()
28430 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28431 };
28432
28433 if value.len() > 1024 {
28434 return Err(::fidl_next::DecodeError::VectorTooLong {
28435 size: value.len() as u64,
28436 limit: 1024,
28437 });
28438 }
28439
28440 Ok(())
28441 }
28442
28443 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
28444 }
28445 })
28446 }
28447 }
28448
28449 impl<'de> UseDictionary<'de> {
28450 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
28451 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
28452 }
28453
28454 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
28455 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
28456 }
28457
28458 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28459 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
28460 }
28461
28462 pub fn take_source_name(
28463 &mut self,
28464 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28465 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
28466 }
28467
28468 pub fn target_path(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28469 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
28470 }
28471
28472 pub fn take_target_path(
28473 &mut self,
28474 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28475 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
28476 }
28477
28478 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
28479 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
28480 }
28481
28482 pub fn take_dependency_type(
28483 &mut self,
28484 ) -> ::core::option::Option<crate::wire::DependencyType> {
28485 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
28486 }
28487
28488 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
28489 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
28490 }
28491
28492 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
28493 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
28494 }
28495
28496 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
28497 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
28498 }
28499
28500 pub fn take_source_dictionary(
28501 &mut self,
28502 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
28503 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
28504 }
28505 }
28506
28507 impl<'de> ::core::fmt::Debug for UseDictionary<'de> {
28508 fn fmt(
28509 &self,
28510 f: &mut ::core::fmt::Formatter<'_>,
28511 ) -> ::core::result::Result<(), ::core::fmt::Error> {
28512 f.debug_struct("UseDictionary")
28513 .field("source", &self.source())
28514 .field("source_name", &self.source_name())
28515 .field("target_path", &self.target_path())
28516 .field("dependency_type", &self.dependency_type())
28517 .field("availability", &self.availability())
28518 .field("source_dictionary", &self.source_dictionary())
28519 .finish()
28520 }
28521 }
28522
28523 impl<'de> ::fidl_next::IntoNatural for UseDictionary<'de> {
28524 type Natural = crate::natural::UseDictionary;
28525 }
28526
28527 #[repr(transparent)]
28529 pub struct Use<'de> {
28530 pub(crate) raw: ::fidl_next::wire::Union,
28531 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
28532 }
28533
28534 impl<'de> Drop for Use<'de> {
28535 fn drop(&mut self) {
28536 match self.raw.ordinal() {
28537 1 => {
28538 let _ =
28539 unsafe { self.raw.get().read_unchecked::<crate::wire::UseService<'de>>() };
28540 }
28541
28542 2 => {
28543 let _ =
28544 unsafe { self.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>() };
28545 }
28546
28547 3 => {
28548 let _ = unsafe {
28549 self.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
28550 };
28551 }
28552
28553 4 => {
28554 let _ =
28555 unsafe { self.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>() };
28556 }
28557
28558 7 => {
28559 let _ = unsafe {
28560 self.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
28561 };
28562 }
28563
28564 8 => {
28565 let _ =
28566 unsafe { self.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>() };
28567 }
28568
28569 9 => {
28570 let _ = unsafe {
28571 self.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
28572 };
28573 }
28574
28575 10 => {
28576 let _ = unsafe {
28577 self.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
28578 };
28579 }
28580
28581 _ => (),
28582 }
28583 }
28584 }
28585
28586 impl ::fidl_next::Constrained for Use<'_> {
28587 type Constraint = ();
28588
28589 fn validate(
28590 _: ::fidl_next::Slot<'_, Self>,
28591 _: Self::Constraint,
28592 ) -> Result<(), ::fidl_next::ValidationError> {
28593 Ok(())
28594 }
28595 }
28596
28597 unsafe impl ::fidl_next::Wire for Use<'static> {
28598 type Narrowed<'de> = Use<'de>;
28599
28600 #[inline]
28601 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28602 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
28603 ::fidl_next::wire::Union::zero_padding(raw);
28604 }
28605 }
28606
28607 pub mod use_ {
28608 pub enum Ref<'de> {
28609 Service(&'de crate::wire::UseService<'de>),
28610
28611 Protocol(&'de crate::wire::UseProtocol<'de>),
28612
28613 Directory(&'de crate::wire::UseDirectory<'de>),
28614
28615 Storage(&'de crate::wire::UseStorage<'de>),
28616
28617 EventStream(&'de crate::wire::UseEventStream<'de>),
28618
28619 Runner(&'de crate::wire::UseRunner<'de>),
28620
28621 Config(&'de crate::wire::UseConfiguration<'de>),
28622
28623 Dictionary(&'de crate::wire::UseDictionary<'de>),
28624
28625 UnknownOrdinal_(u64),
28626 }
28627
28628 pub enum Value<'de> {
28629 Service(crate::wire::UseService<'de>),
28630
28631 Protocol(crate::wire::UseProtocol<'de>),
28632
28633 Directory(crate::wire::UseDirectory<'de>),
28634
28635 Storage(crate::wire::UseStorage<'de>),
28636
28637 EventStream(crate::wire::UseEventStream<'de>),
28638
28639 Runner(crate::wire::UseRunner<'de>),
28640
28641 Config(crate::wire::UseConfiguration<'de>),
28642
28643 Dictionary(crate::wire::UseDictionary<'de>),
28644
28645 UnknownOrdinal_(u64),
28646 }
28647 }
28648
28649 impl<'de> Use<'de> {
28650 pub fn as_ref(&self) -> crate::wire::use_::Ref<'_> {
28651 match self.raw.ordinal() {
28652 1 => crate::wire::use_::Ref::Service(unsafe {
28653 self.raw.get().deref_unchecked::<crate::wire::UseService<'_>>()
28654 }),
28655
28656 2 => crate::wire::use_::Ref::Protocol(unsafe {
28657 self.raw.get().deref_unchecked::<crate::wire::UseProtocol<'_>>()
28658 }),
28659
28660 3 => crate::wire::use_::Ref::Directory(unsafe {
28661 self.raw.get().deref_unchecked::<crate::wire::UseDirectory<'_>>()
28662 }),
28663
28664 4 => crate::wire::use_::Ref::Storage(unsafe {
28665 self.raw.get().deref_unchecked::<crate::wire::UseStorage<'_>>()
28666 }),
28667
28668 7 => crate::wire::use_::Ref::EventStream(unsafe {
28669 self.raw.get().deref_unchecked::<crate::wire::UseEventStream<'_>>()
28670 }),
28671
28672 8 => crate::wire::use_::Ref::Runner(unsafe {
28673 self.raw.get().deref_unchecked::<crate::wire::UseRunner<'_>>()
28674 }),
28675
28676 9 => crate::wire::use_::Ref::Config(unsafe {
28677 self.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'_>>()
28678 }),
28679
28680 10 => crate::wire::use_::Ref::Dictionary(unsafe {
28681 self.raw.get().deref_unchecked::<crate::wire::UseDictionary<'_>>()
28682 }),
28683
28684 unknown => crate::wire::use_::Ref::UnknownOrdinal_(unknown),
28685 }
28686 }
28687
28688 pub fn into_inner(self) -> crate::wire::use_::Value<'de> {
28689 let this = ::core::mem::ManuallyDrop::new(self);
28690
28691 match this.raw.ordinal() {
28692 1 => crate::wire::use_::Value::Service(unsafe {
28693 this.raw.get().read_unchecked::<crate::wire::UseService<'de>>()
28694 }),
28695
28696 2 => crate::wire::use_::Value::Protocol(unsafe {
28697 this.raw.get().read_unchecked::<crate::wire::UseProtocol<'de>>()
28698 }),
28699
28700 3 => crate::wire::use_::Value::Directory(unsafe {
28701 this.raw.get().read_unchecked::<crate::wire::UseDirectory<'de>>()
28702 }),
28703
28704 4 => crate::wire::use_::Value::Storage(unsafe {
28705 this.raw.get().read_unchecked::<crate::wire::UseStorage<'de>>()
28706 }),
28707
28708 7 => crate::wire::use_::Value::EventStream(unsafe {
28709 this.raw.get().read_unchecked::<crate::wire::UseEventStream<'de>>()
28710 }),
28711
28712 8 => crate::wire::use_::Value::Runner(unsafe {
28713 this.raw.get().read_unchecked::<crate::wire::UseRunner<'de>>()
28714 }),
28715
28716 9 => crate::wire::use_::Value::Config(unsafe {
28717 this.raw.get().read_unchecked::<crate::wire::UseConfiguration<'de>>()
28718 }),
28719
28720 10 => crate::wire::use_::Value::Dictionary(unsafe {
28721 this.raw.get().read_unchecked::<crate::wire::UseDictionary<'de>>()
28722 }),
28723
28724 unknown => crate::wire::use_::Value::UnknownOrdinal_(unknown),
28725 }
28726 }
28727 }
28728
28729 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Use<'de>
28730 where
28731 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
28732 ___D: ::fidl_next::Decoder<'de>,
28733 {
28734 fn decode(
28735 mut slot: ::fidl_next::Slot<'_, Self>,
28736 decoder: &mut ___D,
28737 _: (),
28738 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28739 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
28740 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
28741 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseService<'de>>(
28742 raw,
28743 decoder,
28744 (),
28745 )?,
28746
28747 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseProtocol<'de>>(
28748 raw,
28749 decoder,
28750 (),
28751 )?,
28752
28753 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDirectory<'de>>(
28754 raw,
28755 decoder,
28756 (),
28757 )?,
28758
28759 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseStorage<'de>>(
28760 raw,
28761 decoder,
28762 (),
28763 )?,
28764
28765 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseEventStream<'de>>(
28766 raw,
28767 decoder,
28768 (),
28769 )?,
28770
28771 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseRunner<'de>>(
28772 raw,
28773 decoder,
28774 (),
28775 )?,
28776
28777 9 => {
28778 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseConfiguration<'de>>(
28779 raw,
28780 decoder,
28781 (),
28782 )?
28783 }
28784
28785 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDictionary<'de>>(
28786 raw,
28787 decoder,
28788 (),
28789 )?,
28790
28791 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
28792 }
28793
28794 Ok(())
28795 }
28796 }
28797
28798 impl<'de> ::core::fmt::Debug for Use<'de> {
28799 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28800 match self.raw.ordinal() {
28801 1 => unsafe {
28802 self.raw.get().deref_unchecked::<crate::wire::UseService<'_>>().fmt(f)
28803 },
28804 2 => unsafe {
28805 self.raw.get().deref_unchecked::<crate::wire::UseProtocol<'_>>().fmt(f)
28806 },
28807 3 => unsafe {
28808 self.raw.get().deref_unchecked::<crate::wire::UseDirectory<'_>>().fmt(f)
28809 },
28810 4 => unsafe {
28811 self.raw.get().deref_unchecked::<crate::wire::UseStorage<'_>>().fmt(f)
28812 },
28813 7 => unsafe {
28814 self.raw.get().deref_unchecked::<crate::wire::UseEventStream<'_>>().fmt(f)
28815 },
28816 8 => unsafe {
28817 self.raw.get().deref_unchecked::<crate::wire::UseRunner<'_>>().fmt(f)
28818 },
28819 9 => unsafe {
28820 self.raw.get().deref_unchecked::<crate::wire::UseConfiguration<'_>>().fmt(f)
28821 },
28822 10 => unsafe {
28823 self.raw.get().deref_unchecked::<crate::wire::UseDictionary<'_>>().fmt(f)
28824 },
28825 _ => unsafe { ::core::hint::unreachable_unchecked() },
28826 }
28827 }
28828 }
28829
28830 impl<'de> ::fidl_next::IntoNatural for Use<'de> {
28831 type Natural = crate::natural::Use;
28832 }
28833
28834 #[repr(C)]
28836 pub struct ExposeService<'de> {
28837 pub(crate) table: ::fidl_next::wire::Table<'de>,
28838 }
28839
28840 impl<'de> Drop for ExposeService<'de> {
28841 fn drop(&mut self) {
28842 let _ = self
28843 .table
28844 .get(1)
28845 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28846
28847 let _ = self.table.get(2).map(|envelope| unsafe {
28848 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28849 });
28850
28851 let _ = self
28852 .table
28853 .get(3)
28854 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
28855
28856 let _ = self.table.get(4).map(|envelope| unsafe {
28857 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28858 });
28859
28860 let _ = self
28861 .table
28862 .get(5)
28863 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
28864
28865 let _ = self.table.get(6).map(|envelope| unsafe {
28866 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
28867 });
28868 }
28869 }
28870
28871 impl ::fidl_next::Constrained for ExposeService<'_> {
28872 type Constraint = ();
28873
28874 fn validate(
28875 _: ::fidl_next::Slot<'_, Self>,
28876 _: Self::Constraint,
28877 ) -> Result<(), ::fidl_next::ValidationError> {
28878 Ok(())
28879 }
28880 }
28881
28882 unsafe impl ::fidl_next::Wire for ExposeService<'static> {
28883 type Narrowed<'de> = ExposeService<'de>;
28884
28885 #[inline]
28886 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
28887 ::fidl_next::munge!(let Self { table } = out);
28888 ::fidl_next::wire::Table::zero_padding(table);
28889 }
28890 }
28891
28892 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeService<'de>
28893 where
28894 ___D: ::fidl_next::Decoder<'de> + ?Sized,
28895 {
28896 fn decode(
28897 slot: ::fidl_next::Slot<'_, Self>,
28898 decoder: &mut ___D,
28899 _: (),
28900 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
28901 ::fidl_next::munge!(let Self { table } = slot);
28902
28903 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
28904 match ordinal {
28905 0 => unsafe { ::core::hint::unreachable_unchecked() },
28906
28907 1 => {
28908 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
28909 slot.as_mut(),
28910 decoder,
28911 (),
28912 )?;
28913
28914 Ok(())
28915 }
28916
28917 2 => {
28918 ::fidl_next::wire::Envelope::decode_as::<
28919 ___D,
28920 ::fidl_next::wire::String<'de>,
28921 >(slot.as_mut(), decoder, 100)?;
28922
28923 let value = unsafe {
28924 slot.deref_unchecked()
28925 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28926 };
28927
28928 if value.len() > 100 {
28929 return Err(::fidl_next::DecodeError::VectorTooLong {
28930 size: value.len() as u64,
28931 limit: 100,
28932 });
28933 }
28934
28935 Ok(())
28936 }
28937
28938 3 => {
28939 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
28940 slot.as_mut(),
28941 decoder,
28942 (),
28943 )?;
28944
28945 Ok(())
28946 }
28947
28948 4 => {
28949 ::fidl_next::wire::Envelope::decode_as::<
28950 ___D,
28951 ::fidl_next::wire::String<'de>,
28952 >(slot.as_mut(), decoder, 100)?;
28953
28954 let value = unsafe {
28955 slot.deref_unchecked()
28956 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28957 };
28958
28959 if value.len() > 100 {
28960 return Err(::fidl_next::DecodeError::VectorTooLong {
28961 size: value.len() as u64,
28962 limit: 100,
28963 });
28964 }
28965
28966 Ok(())
28967 }
28968
28969 5 => {
28970 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
28971 slot.as_mut(),
28972 decoder,
28973 (),
28974 )?;
28975
28976 Ok(())
28977 }
28978
28979 6 => {
28980 ::fidl_next::wire::Envelope::decode_as::<
28981 ___D,
28982 ::fidl_next::wire::String<'de>,
28983 >(slot.as_mut(), decoder, 1024)?;
28984
28985 let value = unsafe {
28986 slot.deref_unchecked()
28987 .deref_unchecked::<::fidl_next::wire::String<'_>>()
28988 };
28989
28990 if value.len() > 1024 {
28991 return Err(::fidl_next::DecodeError::VectorTooLong {
28992 size: value.len() as u64,
28993 limit: 1024,
28994 });
28995 }
28996
28997 Ok(())
28998 }
28999
29000 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29001 }
29002 })
29003 }
29004 }
29005
29006 impl<'de> ExposeService<'de> {
29007 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29008 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29009 }
29010
29011 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29012 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29013 }
29014
29015 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29016 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29017 }
29018
29019 pub fn take_source_name(
29020 &mut self,
29021 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29022 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29023 }
29024
29025 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29026 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29027 }
29028
29029 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29030 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29031 }
29032
29033 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29034 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29035 }
29036
29037 pub fn take_target_name(
29038 &mut self,
29039 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29040 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29041 }
29042
29043 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
29044 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
29045 }
29046
29047 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
29048 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
29049 }
29050
29051 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29052 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29053 }
29054
29055 pub fn take_source_dictionary(
29056 &mut self,
29057 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29058 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29059 }
29060 }
29061
29062 impl<'de> ::core::fmt::Debug for ExposeService<'de> {
29063 fn fmt(
29064 &self,
29065 f: &mut ::core::fmt::Formatter<'_>,
29066 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29067 f.debug_struct("ExposeService")
29068 .field("source", &self.source())
29069 .field("source_name", &self.source_name())
29070 .field("target", &self.target())
29071 .field("target_name", &self.target_name())
29072 .field("availability", &self.availability())
29073 .field("source_dictionary", &self.source_dictionary())
29074 .finish()
29075 }
29076 }
29077
29078 impl<'de> ::fidl_next::IntoNatural for ExposeService<'de> {
29079 type Natural = crate::natural::ExposeService;
29080 }
29081
29082 #[repr(C)]
29084 pub struct ExposeProtocol<'de> {
29085 pub(crate) table: ::fidl_next::wire::Table<'de>,
29086 }
29087
29088 impl<'de> Drop for ExposeProtocol<'de> {
29089 fn drop(&mut self) {
29090 let _ = self
29091 .table
29092 .get(1)
29093 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29094
29095 let _ = self.table.get(2).map(|envelope| unsafe {
29096 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29097 });
29098
29099 let _ = self
29100 .table
29101 .get(3)
29102 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29103
29104 let _ = self.table.get(4).map(|envelope| unsafe {
29105 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29106 });
29107
29108 let _ = self
29109 .table
29110 .get(5)
29111 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
29112
29113 let _ = self.table.get(6).map(|envelope| unsafe {
29114 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29115 });
29116 }
29117 }
29118
29119 impl ::fidl_next::Constrained for ExposeProtocol<'_> {
29120 type Constraint = ();
29121
29122 fn validate(
29123 _: ::fidl_next::Slot<'_, Self>,
29124 _: Self::Constraint,
29125 ) -> Result<(), ::fidl_next::ValidationError> {
29126 Ok(())
29127 }
29128 }
29129
29130 unsafe impl ::fidl_next::Wire for ExposeProtocol<'static> {
29131 type Narrowed<'de> = ExposeProtocol<'de>;
29132
29133 #[inline]
29134 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29135 ::fidl_next::munge!(let Self { table } = out);
29136 ::fidl_next::wire::Table::zero_padding(table);
29137 }
29138 }
29139
29140 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeProtocol<'de>
29141 where
29142 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29143 {
29144 fn decode(
29145 slot: ::fidl_next::Slot<'_, Self>,
29146 decoder: &mut ___D,
29147 _: (),
29148 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29149 ::fidl_next::munge!(let Self { table } = slot);
29150
29151 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29152 match ordinal {
29153 0 => unsafe { ::core::hint::unreachable_unchecked() },
29154
29155 1 => {
29156 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29157 slot.as_mut(),
29158 decoder,
29159 (),
29160 )?;
29161
29162 Ok(())
29163 }
29164
29165 2 => {
29166 ::fidl_next::wire::Envelope::decode_as::<
29167 ___D,
29168 ::fidl_next::wire::String<'de>,
29169 >(slot.as_mut(), decoder, 100)?;
29170
29171 let value = unsafe {
29172 slot.deref_unchecked()
29173 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29174 };
29175
29176 if value.len() > 100 {
29177 return Err(::fidl_next::DecodeError::VectorTooLong {
29178 size: value.len() as u64,
29179 limit: 100,
29180 });
29181 }
29182
29183 Ok(())
29184 }
29185
29186 3 => {
29187 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29188 slot.as_mut(),
29189 decoder,
29190 (),
29191 )?;
29192
29193 Ok(())
29194 }
29195
29196 4 => {
29197 ::fidl_next::wire::Envelope::decode_as::<
29198 ___D,
29199 ::fidl_next::wire::String<'de>,
29200 >(slot.as_mut(), decoder, 100)?;
29201
29202 let value = unsafe {
29203 slot.deref_unchecked()
29204 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29205 };
29206
29207 if value.len() > 100 {
29208 return Err(::fidl_next::DecodeError::VectorTooLong {
29209 size: value.len() as u64,
29210 limit: 100,
29211 });
29212 }
29213
29214 Ok(())
29215 }
29216
29217 5 => {
29218 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
29219 slot.as_mut(),
29220 decoder,
29221 (),
29222 )?;
29223
29224 Ok(())
29225 }
29226
29227 6 => {
29228 ::fidl_next::wire::Envelope::decode_as::<
29229 ___D,
29230 ::fidl_next::wire::String<'de>,
29231 >(slot.as_mut(), decoder, 1024)?;
29232
29233 let value = unsafe {
29234 slot.deref_unchecked()
29235 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29236 };
29237
29238 if value.len() > 1024 {
29239 return Err(::fidl_next::DecodeError::VectorTooLong {
29240 size: value.len() as u64,
29241 limit: 1024,
29242 });
29243 }
29244
29245 Ok(())
29246 }
29247
29248 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29249 }
29250 })
29251 }
29252 }
29253
29254 impl<'de> ExposeProtocol<'de> {
29255 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29256 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29257 }
29258
29259 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29260 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29261 }
29262
29263 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29264 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29265 }
29266
29267 pub fn take_source_name(
29268 &mut self,
29269 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29270 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29271 }
29272
29273 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29274 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29275 }
29276
29277 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29278 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29279 }
29280
29281 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29282 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29283 }
29284
29285 pub fn take_target_name(
29286 &mut self,
29287 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29288 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29289 }
29290
29291 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
29292 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
29293 }
29294
29295 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
29296 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
29297 }
29298
29299 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29300 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29301 }
29302
29303 pub fn take_source_dictionary(
29304 &mut self,
29305 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29306 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29307 }
29308 }
29309
29310 impl<'de> ::core::fmt::Debug for ExposeProtocol<'de> {
29311 fn fmt(
29312 &self,
29313 f: &mut ::core::fmt::Formatter<'_>,
29314 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29315 f.debug_struct("ExposeProtocol")
29316 .field("source", &self.source())
29317 .field("source_name", &self.source_name())
29318 .field("target", &self.target())
29319 .field("target_name", &self.target_name())
29320 .field("availability", &self.availability())
29321 .field("source_dictionary", &self.source_dictionary())
29322 .finish()
29323 }
29324 }
29325
29326 impl<'de> ::fidl_next::IntoNatural for ExposeProtocol<'de> {
29327 type Natural = crate::natural::ExposeProtocol;
29328 }
29329
29330 #[repr(C)]
29332 pub struct ExposeDirectory<'de> {
29333 pub(crate) table: ::fidl_next::wire::Table<'de>,
29334 }
29335
29336 impl<'de> Drop for ExposeDirectory<'de> {
29337 fn drop(&mut self) {
29338 let _ = self
29339 .table
29340 .get(1)
29341 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29342
29343 let _ = self.table.get(2).map(|envelope| unsafe {
29344 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29345 });
29346
29347 let _ = self
29348 .table
29349 .get(3)
29350 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29351
29352 let _ = self.table.get(4).map(|envelope| unsafe {
29353 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29354 });
29355
29356 let _ = self.table.get(5).map(|envelope| unsafe {
29357 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
29358 });
29359
29360 let _ = self.table.get(6).map(|envelope| unsafe {
29361 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29362 });
29363
29364 let _ = self
29365 .table
29366 .get(7)
29367 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
29368
29369 let _ = self.table.get(8).map(|envelope| unsafe {
29370 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29371 });
29372 }
29373 }
29374
29375 impl ::fidl_next::Constrained for ExposeDirectory<'_> {
29376 type Constraint = ();
29377
29378 fn validate(
29379 _: ::fidl_next::Slot<'_, Self>,
29380 _: Self::Constraint,
29381 ) -> Result<(), ::fidl_next::ValidationError> {
29382 Ok(())
29383 }
29384 }
29385
29386 unsafe impl ::fidl_next::Wire for ExposeDirectory<'static> {
29387 type Narrowed<'de> = ExposeDirectory<'de>;
29388
29389 #[inline]
29390 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29391 ::fidl_next::munge!(let Self { table } = out);
29392 ::fidl_next::wire::Table::zero_padding(table);
29393 }
29394 }
29395
29396 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeDirectory<'de>
29397 where
29398 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29399 {
29400 fn decode(
29401 slot: ::fidl_next::Slot<'_, Self>,
29402 decoder: &mut ___D,
29403 _: (),
29404 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29405 ::fidl_next::munge!(let Self { table } = slot);
29406
29407 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29408 match ordinal {
29409 0 => unsafe { ::core::hint::unreachable_unchecked() },
29410
29411 1 => {
29412 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29413 slot.as_mut(),
29414 decoder,
29415 (),
29416 )?;
29417
29418 Ok(())
29419 }
29420
29421 2 => {
29422 ::fidl_next::wire::Envelope::decode_as::<
29423 ___D,
29424 ::fidl_next::wire::String<'de>,
29425 >(slot.as_mut(), decoder, 100)?;
29426
29427 let value = unsafe {
29428 slot.deref_unchecked()
29429 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29430 };
29431
29432 if value.len() > 100 {
29433 return Err(::fidl_next::DecodeError::VectorTooLong {
29434 size: value.len() as u64,
29435 limit: 100,
29436 });
29437 }
29438
29439 Ok(())
29440 }
29441
29442 3 => {
29443 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29444 slot.as_mut(),
29445 decoder,
29446 (),
29447 )?;
29448
29449 Ok(())
29450 }
29451
29452 4 => {
29453 ::fidl_next::wire::Envelope::decode_as::<
29454 ___D,
29455 ::fidl_next::wire::String<'de>,
29456 >(slot.as_mut(), decoder, 100)?;
29457
29458 let value = unsafe {
29459 slot.deref_unchecked()
29460 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29461 };
29462
29463 if value.len() > 100 {
29464 return Err(::fidl_next::DecodeError::VectorTooLong {
29465 size: value.len() as u64,
29466 limit: 100,
29467 });
29468 }
29469
29470 Ok(())
29471 }
29472
29473 5 => {
29474 ::fidl_next::wire::Envelope::decode_as::<
29475 ___D,
29476 ::fidl_next_common_fuchsia_io::wire::Operations,
29477 >(slot.as_mut(), decoder, ())?;
29478
29479 Ok(())
29480 }
29481
29482 6 => {
29483 ::fidl_next::wire::Envelope::decode_as::<
29484 ___D,
29485 ::fidl_next::wire::String<'de>,
29486 >(slot.as_mut(), decoder, 1024)?;
29487
29488 let value = unsafe {
29489 slot.deref_unchecked()
29490 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29491 };
29492
29493 if value.len() > 1024 {
29494 return Err(::fidl_next::DecodeError::VectorTooLong {
29495 size: value.len() as u64,
29496 limit: 1024,
29497 });
29498 }
29499
29500 Ok(())
29501 }
29502
29503 7 => {
29504 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
29505 slot.as_mut(),
29506 decoder,
29507 (),
29508 )?;
29509
29510 Ok(())
29511 }
29512
29513 8 => {
29514 ::fidl_next::wire::Envelope::decode_as::<
29515 ___D,
29516 ::fidl_next::wire::String<'de>,
29517 >(slot.as_mut(), decoder, 1024)?;
29518
29519 let value = unsafe {
29520 slot.deref_unchecked()
29521 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29522 };
29523
29524 if value.len() > 1024 {
29525 return Err(::fidl_next::DecodeError::VectorTooLong {
29526 size: value.len() as u64,
29527 limit: 1024,
29528 });
29529 }
29530
29531 Ok(())
29532 }
29533
29534 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29535 }
29536 })
29537 }
29538 }
29539
29540 impl<'de> ExposeDirectory<'de> {
29541 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29542 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29543 }
29544
29545 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29546 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29547 }
29548
29549 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29550 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29551 }
29552
29553 pub fn take_source_name(
29554 &mut self,
29555 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29556 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29557 }
29558
29559 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29560 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29561 }
29562
29563 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29564 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29565 }
29566
29567 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29568 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29569 }
29570
29571 pub fn take_target_name(
29572 &mut self,
29573 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29574 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29575 }
29576
29577 pub fn rights(
29578 &self,
29579 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
29580 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
29581 }
29582
29583 pub fn take_rights(
29584 &mut self,
29585 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
29586 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
29587 }
29588
29589 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29590 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29591 }
29592
29593 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29594 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29595 }
29596
29597 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
29598 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
29599 }
29600
29601 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
29602 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
29603 }
29604
29605 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29606 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
29607 }
29608
29609 pub fn take_source_dictionary(
29610 &mut self,
29611 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29612 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
29613 }
29614 }
29615
29616 impl<'de> ::core::fmt::Debug for ExposeDirectory<'de> {
29617 fn fmt(
29618 &self,
29619 f: &mut ::core::fmt::Formatter<'_>,
29620 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29621 f.debug_struct("ExposeDirectory")
29622 .field("source", &self.source())
29623 .field("source_name", &self.source_name())
29624 .field("target", &self.target())
29625 .field("target_name", &self.target_name())
29626 .field("rights", &self.rights())
29627 .field("subdir", &self.subdir())
29628 .field("availability", &self.availability())
29629 .field("source_dictionary", &self.source_dictionary())
29630 .finish()
29631 }
29632 }
29633
29634 impl<'de> ::fidl_next::IntoNatural for ExposeDirectory<'de> {
29635 type Natural = crate::natural::ExposeDirectory;
29636 }
29637
29638 #[repr(C)]
29640 pub struct ExposeRunner<'de> {
29641 pub(crate) table: ::fidl_next::wire::Table<'de>,
29642 }
29643
29644 impl<'de> Drop for ExposeRunner<'de> {
29645 fn drop(&mut self) {
29646 let _ = self
29647 .table
29648 .get(1)
29649 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29650
29651 let _ = self.table.get(2).map(|envelope| unsafe {
29652 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29653 });
29654
29655 let _ = self
29656 .table
29657 .get(3)
29658 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29659
29660 let _ = self.table.get(4).map(|envelope| unsafe {
29661 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29662 });
29663
29664 let _ = self.table.get(6).map(|envelope| unsafe {
29665 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29666 });
29667 }
29668 }
29669
29670 impl ::fidl_next::Constrained for ExposeRunner<'_> {
29671 type Constraint = ();
29672
29673 fn validate(
29674 _: ::fidl_next::Slot<'_, Self>,
29675 _: Self::Constraint,
29676 ) -> Result<(), ::fidl_next::ValidationError> {
29677 Ok(())
29678 }
29679 }
29680
29681 unsafe impl ::fidl_next::Wire for ExposeRunner<'static> {
29682 type Narrowed<'de> = ExposeRunner<'de>;
29683
29684 #[inline]
29685 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29686 ::fidl_next::munge!(let Self { table } = out);
29687 ::fidl_next::wire::Table::zero_padding(table);
29688 }
29689 }
29690
29691 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeRunner<'de>
29692 where
29693 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29694 {
29695 fn decode(
29696 slot: ::fidl_next::Slot<'_, Self>,
29697 decoder: &mut ___D,
29698 _: (),
29699 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29700 ::fidl_next::munge!(let Self { table } = slot);
29701
29702 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29703 match ordinal {
29704 0 => unsafe { ::core::hint::unreachable_unchecked() },
29705
29706 1 => {
29707 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29708 slot.as_mut(),
29709 decoder,
29710 (),
29711 )?;
29712
29713 Ok(())
29714 }
29715
29716 2 => {
29717 ::fidl_next::wire::Envelope::decode_as::<
29718 ___D,
29719 ::fidl_next::wire::String<'de>,
29720 >(slot.as_mut(), decoder, 100)?;
29721
29722 let value = unsafe {
29723 slot.deref_unchecked()
29724 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29725 };
29726
29727 if value.len() > 100 {
29728 return Err(::fidl_next::DecodeError::VectorTooLong {
29729 size: value.len() as u64,
29730 limit: 100,
29731 });
29732 }
29733
29734 Ok(())
29735 }
29736
29737 3 => {
29738 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29739 slot.as_mut(),
29740 decoder,
29741 (),
29742 )?;
29743
29744 Ok(())
29745 }
29746
29747 4 => {
29748 ::fidl_next::wire::Envelope::decode_as::<
29749 ___D,
29750 ::fidl_next::wire::String<'de>,
29751 >(slot.as_mut(), decoder, 100)?;
29752
29753 let value = unsafe {
29754 slot.deref_unchecked()
29755 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29756 };
29757
29758 if value.len() > 100 {
29759 return Err(::fidl_next::DecodeError::VectorTooLong {
29760 size: value.len() as u64,
29761 limit: 100,
29762 });
29763 }
29764
29765 Ok(())
29766 }
29767
29768 6 => {
29769 ::fidl_next::wire::Envelope::decode_as::<
29770 ___D,
29771 ::fidl_next::wire::String<'de>,
29772 >(slot.as_mut(), decoder, 1024)?;
29773
29774 let value = unsafe {
29775 slot.deref_unchecked()
29776 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29777 };
29778
29779 if value.len() > 1024 {
29780 return Err(::fidl_next::DecodeError::VectorTooLong {
29781 size: value.len() as u64,
29782 limit: 1024,
29783 });
29784 }
29785
29786 Ok(())
29787 }
29788
29789 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
29790 }
29791 })
29792 }
29793 }
29794
29795 impl<'de> ExposeRunner<'de> {
29796 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29797 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
29798 }
29799
29800 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29801 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
29802 }
29803
29804 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29805 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
29806 }
29807
29808 pub fn take_source_name(
29809 &mut self,
29810 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29811 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
29812 }
29813
29814 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
29815 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
29816 }
29817
29818 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
29819 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
29820 }
29821
29822 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29823 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
29824 }
29825
29826 pub fn take_target_name(
29827 &mut self,
29828 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29829 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
29830 }
29831
29832 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
29833 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
29834 }
29835
29836 pub fn take_source_dictionary(
29837 &mut self,
29838 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
29839 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
29840 }
29841 }
29842
29843 impl<'de> ::core::fmt::Debug for ExposeRunner<'de> {
29844 fn fmt(
29845 &self,
29846 f: &mut ::core::fmt::Formatter<'_>,
29847 ) -> ::core::result::Result<(), ::core::fmt::Error> {
29848 f.debug_struct("ExposeRunner")
29849 .field("source", &self.source())
29850 .field("source_name", &self.source_name())
29851 .field("target", &self.target())
29852 .field("target_name", &self.target_name())
29853 .field("source_dictionary", &self.source_dictionary())
29854 .finish()
29855 }
29856 }
29857
29858 impl<'de> ::fidl_next::IntoNatural for ExposeRunner<'de> {
29859 type Natural = crate::natural::ExposeRunner;
29860 }
29861
29862 #[repr(C)]
29864 pub struct ExposeResolver<'de> {
29865 pub(crate) table: ::fidl_next::wire::Table<'de>,
29866 }
29867
29868 impl<'de> Drop for ExposeResolver<'de> {
29869 fn drop(&mut self) {
29870 let _ = self
29871 .table
29872 .get(1)
29873 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29874
29875 let _ = self.table.get(2).map(|envelope| unsafe {
29876 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29877 });
29878
29879 let _ = self
29880 .table
29881 .get(3)
29882 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
29883
29884 let _ = self.table.get(4).map(|envelope| unsafe {
29885 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29886 });
29887
29888 let _ = self.table.get(6).map(|envelope| unsafe {
29889 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
29890 });
29891 }
29892 }
29893
29894 impl ::fidl_next::Constrained for ExposeResolver<'_> {
29895 type Constraint = ();
29896
29897 fn validate(
29898 _: ::fidl_next::Slot<'_, Self>,
29899 _: Self::Constraint,
29900 ) -> Result<(), ::fidl_next::ValidationError> {
29901 Ok(())
29902 }
29903 }
29904
29905 unsafe impl ::fidl_next::Wire for ExposeResolver<'static> {
29906 type Narrowed<'de> = ExposeResolver<'de>;
29907
29908 #[inline]
29909 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
29910 ::fidl_next::munge!(let Self { table } = out);
29911 ::fidl_next::wire::Table::zero_padding(table);
29912 }
29913 }
29914
29915 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeResolver<'de>
29916 where
29917 ___D: ::fidl_next::Decoder<'de> + ?Sized,
29918 {
29919 fn decode(
29920 slot: ::fidl_next::Slot<'_, Self>,
29921 decoder: &mut ___D,
29922 _: (),
29923 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
29924 ::fidl_next::munge!(let Self { table } = slot);
29925
29926 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
29927 match ordinal {
29928 0 => unsafe { ::core::hint::unreachable_unchecked() },
29929
29930 1 => {
29931 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29932 slot.as_mut(),
29933 decoder,
29934 (),
29935 )?;
29936
29937 Ok(())
29938 }
29939
29940 2 => {
29941 ::fidl_next::wire::Envelope::decode_as::<
29942 ___D,
29943 ::fidl_next::wire::String<'de>,
29944 >(slot.as_mut(), decoder, 100)?;
29945
29946 let value = unsafe {
29947 slot.deref_unchecked()
29948 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29949 };
29950
29951 if value.len() > 100 {
29952 return Err(::fidl_next::DecodeError::VectorTooLong {
29953 size: value.len() as u64,
29954 limit: 100,
29955 });
29956 }
29957
29958 Ok(())
29959 }
29960
29961 3 => {
29962 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
29963 slot.as_mut(),
29964 decoder,
29965 (),
29966 )?;
29967
29968 Ok(())
29969 }
29970
29971 4 => {
29972 ::fidl_next::wire::Envelope::decode_as::<
29973 ___D,
29974 ::fidl_next::wire::String<'de>,
29975 >(slot.as_mut(), decoder, 100)?;
29976
29977 let value = unsafe {
29978 slot.deref_unchecked()
29979 .deref_unchecked::<::fidl_next::wire::String<'_>>()
29980 };
29981
29982 if value.len() > 100 {
29983 return Err(::fidl_next::DecodeError::VectorTooLong {
29984 size: value.len() as u64,
29985 limit: 100,
29986 });
29987 }
29988
29989 Ok(())
29990 }
29991
29992 6 => {
29993 ::fidl_next::wire::Envelope::decode_as::<
29994 ___D,
29995 ::fidl_next::wire::String<'de>,
29996 >(slot.as_mut(), decoder, 1024)?;
29997
29998 let value = unsafe {
29999 slot.deref_unchecked()
30000 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30001 };
30002
30003 if value.len() > 1024 {
30004 return Err(::fidl_next::DecodeError::VectorTooLong {
30005 size: value.len() as u64,
30006 limit: 1024,
30007 });
30008 }
30009
30010 Ok(())
30011 }
30012
30013 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
30014 }
30015 })
30016 }
30017 }
30018
30019 impl<'de> ExposeResolver<'de> {
30020 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30021 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30022 }
30023
30024 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30025 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
30026 }
30027
30028 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30029 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30030 }
30031
30032 pub fn take_source_name(
30033 &mut self,
30034 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30035 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
30036 }
30037
30038 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30039 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30040 }
30041
30042 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30043 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
30044 }
30045
30046 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30047 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30048 }
30049
30050 pub fn take_target_name(
30051 &mut self,
30052 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30053 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
30054 }
30055
30056 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30057 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30058 }
30059
30060 pub fn take_source_dictionary(
30061 &mut self,
30062 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30063 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
30064 }
30065 }
30066
30067 impl<'de> ::core::fmt::Debug for ExposeResolver<'de> {
30068 fn fmt(
30069 &self,
30070 f: &mut ::core::fmt::Formatter<'_>,
30071 ) -> ::core::result::Result<(), ::core::fmt::Error> {
30072 f.debug_struct("ExposeResolver")
30073 .field("source", &self.source())
30074 .field("source_name", &self.source_name())
30075 .field("target", &self.target())
30076 .field("target_name", &self.target_name())
30077 .field("source_dictionary", &self.source_dictionary())
30078 .finish()
30079 }
30080 }
30081
30082 impl<'de> ::fidl_next::IntoNatural for ExposeResolver<'de> {
30083 type Natural = crate::natural::ExposeResolver;
30084 }
30085
30086 #[repr(C)]
30088 pub struct ExposeDictionary<'de> {
30089 pub(crate) table: ::fidl_next::wire::Table<'de>,
30090 }
30091
30092 impl<'de> Drop for ExposeDictionary<'de> {
30093 fn drop(&mut self) {
30094 let _ = self
30095 .table
30096 .get(1)
30097 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30098
30099 let _ = self.table.get(2).map(|envelope| unsafe {
30100 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30101 });
30102
30103 let _ = self
30104 .table
30105 .get(3)
30106 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30107
30108 let _ = self.table.get(4).map(|envelope| unsafe {
30109 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30110 });
30111
30112 let _ = self
30113 .table
30114 .get(5)
30115 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30116
30117 let _ = self.table.get(6).map(|envelope| unsafe {
30118 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30119 });
30120 }
30121 }
30122
30123 impl ::fidl_next::Constrained for ExposeDictionary<'_> {
30124 type Constraint = ();
30125
30126 fn validate(
30127 _: ::fidl_next::Slot<'_, Self>,
30128 _: Self::Constraint,
30129 ) -> Result<(), ::fidl_next::ValidationError> {
30130 Ok(())
30131 }
30132 }
30133
30134 unsafe impl ::fidl_next::Wire for ExposeDictionary<'static> {
30135 type Narrowed<'de> = ExposeDictionary<'de>;
30136
30137 #[inline]
30138 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30139 ::fidl_next::munge!(let Self { table } = out);
30140 ::fidl_next::wire::Table::zero_padding(table);
30141 }
30142 }
30143
30144 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeDictionary<'de>
30145 where
30146 ___D: ::fidl_next::Decoder<'de> + ?Sized,
30147 {
30148 fn decode(
30149 slot: ::fidl_next::Slot<'_, Self>,
30150 decoder: &mut ___D,
30151 _: (),
30152 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30153 ::fidl_next::munge!(let Self { table } = slot);
30154
30155 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30156 match ordinal {
30157 0 => unsafe { ::core::hint::unreachable_unchecked() },
30158
30159 1 => {
30160 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30161 slot.as_mut(),
30162 decoder,
30163 (),
30164 )?;
30165
30166 Ok(())
30167 }
30168
30169 2 => {
30170 ::fidl_next::wire::Envelope::decode_as::<
30171 ___D,
30172 ::fidl_next::wire::String<'de>,
30173 >(slot.as_mut(), decoder, 100)?;
30174
30175 let value = unsafe {
30176 slot.deref_unchecked()
30177 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30178 };
30179
30180 if value.len() > 100 {
30181 return Err(::fidl_next::DecodeError::VectorTooLong {
30182 size: value.len() as u64,
30183 limit: 100,
30184 });
30185 }
30186
30187 Ok(())
30188 }
30189
30190 3 => {
30191 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30192 slot.as_mut(),
30193 decoder,
30194 (),
30195 )?;
30196
30197 Ok(())
30198 }
30199
30200 4 => {
30201 ::fidl_next::wire::Envelope::decode_as::<
30202 ___D,
30203 ::fidl_next::wire::String<'de>,
30204 >(slot.as_mut(), decoder, 100)?;
30205
30206 let value = unsafe {
30207 slot.deref_unchecked()
30208 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30209 };
30210
30211 if value.len() > 100 {
30212 return Err(::fidl_next::DecodeError::VectorTooLong {
30213 size: value.len() as u64,
30214 limit: 100,
30215 });
30216 }
30217
30218 Ok(())
30219 }
30220
30221 5 => {
30222 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
30223 slot.as_mut(),
30224 decoder,
30225 (),
30226 )?;
30227
30228 Ok(())
30229 }
30230
30231 6 => {
30232 ::fidl_next::wire::Envelope::decode_as::<
30233 ___D,
30234 ::fidl_next::wire::String<'de>,
30235 >(slot.as_mut(), decoder, 1024)?;
30236
30237 let value = unsafe {
30238 slot.deref_unchecked()
30239 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30240 };
30241
30242 if value.len() > 1024 {
30243 return Err(::fidl_next::DecodeError::VectorTooLong {
30244 size: value.len() as u64,
30245 limit: 1024,
30246 });
30247 }
30248
30249 Ok(())
30250 }
30251
30252 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
30253 }
30254 })
30255 }
30256 }
30257
30258 impl<'de> ExposeDictionary<'de> {
30259 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30260 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30261 }
30262
30263 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30264 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
30265 }
30266
30267 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30268 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30269 }
30270
30271 pub fn take_source_name(
30272 &mut self,
30273 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30274 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
30275 }
30276
30277 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30278 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30279 }
30280
30281 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30282 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
30283 }
30284
30285 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30286 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30287 }
30288
30289 pub fn take_target_name(
30290 &mut self,
30291 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30292 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
30293 }
30294
30295 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30296 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30297 }
30298
30299 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
30300 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
30301 }
30302
30303 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30304 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30305 }
30306
30307 pub fn take_source_dictionary(
30308 &mut self,
30309 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30310 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
30311 }
30312 }
30313
30314 impl<'de> ::core::fmt::Debug for ExposeDictionary<'de> {
30315 fn fmt(
30316 &self,
30317 f: &mut ::core::fmt::Formatter<'_>,
30318 ) -> ::core::result::Result<(), ::core::fmt::Error> {
30319 f.debug_struct("ExposeDictionary")
30320 .field("source", &self.source())
30321 .field("source_name", &self.source_name())
30322 .field("target", &self.target())
30323 .field("target_name", &self.target_name())
30324 .field("availability", &self.availability())
30325 .field("source_dictionary", &self.source_dictionary())
30326 .finish()
30327 }
30328 }
30329
30330 impl<'de> ::fidl_next::IntoNatural for ExposeDictionary<'de> {
30331 type Natural = crate::natural::ExposeDictionary;
30332 }
30333
30334 #[repr(C)]
30336 pub struct ExposeConfiguration<'de> {
30337 pub(crate) table: ::fidl_next::wire::Table<'de>,
30338 }
30339
30340 impl<'de> Drop for ExposeConfiguration<'de> {
30341 fn drop(&mut self) {
30342 let _ = self
30343 .table
30344 .get(1)
30345 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30346
30347 let _ = self.table.get(2).map(|envelope| unsafe {
30348 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30349 });
30350
30351 let _ = self
30352 .table
30353 .get(3)
30354 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30355
30356 let _ = self.table.get(4).map(|envelope| unsafe {
30357 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30358 });
30359
30360 let _ = self
30361 .table
30362 .get(5)
30363 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30364
30365 let _ = self.table.get(6).map(|envelope| unsafe {
30366 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30367 });
30368 }
30369 }
30370
30371 impl ::fidl_next::Constrained for ExposeConfiguration<'_> {
30372 type Constraint = ();
30373
30374 fn validate(
30375 _: ::fidl_next::Slot<'_, Self>,
30376 _: Self::Constraint,
30377 ) -> Result<(), ::fidl_next::ValidationError> {
30378 Ok(())
30379 }
30380 }
30381
30382 unsafe impl ::fidl_next::Wire for ExposeConfiguration<'static> {
30383 type Narrowed<'de> = ExposeConfiguration<'de>;
30384
30385 #[inline]
30386 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30387 ::fidl_next::munge!(let Self { table } = out);
30388 ::fidl_next::wire::Table::zero_padding(table);
30389 }
30390 }
30391
30392 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ExposeConfiguration<'de>
30393 where
30394 ___D: ::fidl_next::Decoder<'de> + ?Sized,
30395 {
30396 fn decode(
30397 slot: ::fidl_next::Slot<'_, Self>,
30398 decoder: &mut ___D,
30399 _: (),
30400 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30401 ::fidl_next::munge!(let Self { table } = slot);
30402
30403 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30404 match ordinal {
30405 0 => unsafe { ::core::hint::unreachable_unchecked() },
30406
30407 1 => {
30408 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30409 slot.as_mut(),
30410 decoder,
30411 (),
30412 )?;
30413
30414 Ok(())
30415 }
30416
30417 2 => {
30418 ::fidl_next::wire::Envelope::decode_as::<
30419 ___D,
30420 ::fidl_next::wire::String<'de>,
30421 >(slot.as_mut(), decoder, 100)?;
30422
30423 let value = unsafe {
30424 slot.deref_unchecked()
30425 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30426 };
30427
30428 if value.len() > 100 {
30429 return Err(::fidl_next::DecodeError::VectorTooLong {
30430 size: value.len() as u64,
30431 limit: 100,
30432 });
30433 }
30434
30435 Ok(())
30436 }
30437
30438 3 => {
30439 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30440 slot.as_mut(),
30441 decoder,
30442 (),
30443 )?;
30444
30445 Ok(())
30446 }
30447
30448 4 => {
30449 ::fidl_next::wire::Envelope::decode_as::<
30450 ___D,
30451 ::fidl_next::wire::String<'de>,
30452 >(slot.as_mut(), decoder, 100)?;
30453
30454 let value = unsafe {
30455 slot.deref_unchecked()
30456 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30457 };
30458
30459 if value.len() > 100 {
30460 return Err(::fidl_next::DecodeError::VectorTooLong {
30461 size: value.len() as u64,
30462 limit: 100,
30463 });
30464 }
30465
30466 Ok(())
30467 }
30468
30469 5 => {
30470 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
30471 slot.as_mut(),
30472 decoder,
30473 (),
30474 )?;
30475
30476 Ok(())
30477 }
30478
30479 6 => {
30480 ::fidl_next::wire::Envelope::decode_as::<
30481 ___D,
30482 ::fidl_next::wire::String<'de>,
30483 >(slot.as_mut(), decoder, 1024)?;
30484
30485 let value = unsafe {
30486 slot.deref_unchecked()
30487 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30488 };
30489
30490 if value.len() > 1024 {
30491 return Err(::fidl_next::DecodeError::VectorTooLong {
30492 size: value.len() as u64,
30493 limit: 1024,
30494 });
30495 }
30496
30497 Ok(())
30498 }
30499
30500 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
30501 }
30502 })
30503 }
30504 }
30505
30506 impl<'de> ExposeConfiguration<'de> {
30507 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30508 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
30509 }
30510
30511 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30512 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
30513 }
30514
30515 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30516 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
30517 }
30518
30519 pub fn take_source_name(
30520 &mut self,
30521 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30522 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
30523 }
30524
30525 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
30526 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
30527 }
30528
30529 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
30530 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
30531 }
30532
30533 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30534 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
30535 }
30536
30537 pub fn take_target_name(
30538 &mut self,
30539 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30540 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
30541 }
30542
30543 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
30544 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
30545 }
30546
30547 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
30548 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
30549 }
30550
30551 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
30552 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
30553 }
30554
30555 pub fn take_source_dictionary(
30556 &mut self,
30557 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
30558 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
30559 }
30560 }
30561
30562 impl<'de> ::core::fmt::Debug for ExposeConfiguration<'de> {
30563 fn fmt(
30564 &self,
30565 f: &mut ::core::fmt::Formatter<'_>,
30566 ) -> ::core::result::Result<(), ::core::fmt::Error> {
30567 f.debug_struct("ExposeConfiguration")
30568 .field("source", &self.source())
30569 .field("source_name", &self.source_name())
30570 .field("target", &self.target())
30571 .field("target_name", &self.target_name())
30572 .field("availability", &self.availability())
30573 .field("source_dictionary", &self.source_dictionary())
30574 .finish()
30575 }
30576 }
30577
30578 impl<'de> ::fidl_next::IntoNatural for ExposeConfiguration<'de> {
30579 type Natural = crate::natural::ExposeConfiguration;
30580 }
30581
30582 #[repr(transparent)]
30584 pub struct Expose<'de> {
30585 pub(crate) raw: ::fidl_next::wire::Union,
30586 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
30587 }
30588
30589 impl<'de> Drop for Expose<'de> {
30590 fn drop(&mut self) {
30591 match self.raw.ordinal() {
30592 1 => {
30593 let _ = unsafe {
30594 self.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
30595 };
30596 }
30597
30598 2 => {
30599 let _ = unsafe {
30600 self.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
30601 };
30602 }
30603
30604 3 => {
30605 let _ = unsafe {
30606 self.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
30607 };
30608 }
30609
30610 4 => {
30611 let _ = unsafe {
30612 self.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
30613 };
30614 }
30615
30616 5 => {
30617 let _ = unsafe {
30618 self.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
30619 };
30620 }
30621
30622 7 => {
30623 let _ = unsafe {
30624 self.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
30625 };
30626 }
30627
30628 8 => {
30629 let _ = unsafe {
30630 self.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
30631 };
30632 }
30633
30634 _ => (),
30635 }
30636 }
30637 }
30638
30639 impl ::fidl_next::Constrained for Expose<'_> {
30640 type Constraint = ();
30641
30642 fn validate(
30643 _: ::fidl_next::Slot<'_, Self>,
30644 _: Self::Constraint,
30645 ) -> Result<(), ::fidl_next::ValidationError> {
30646 Ok(())
30647 }
30648 }
30649
30650 unsafe impl ::fidl_next::Wire for Expose<'static> {
30651 type Narrowed<'de> = Expose<'de>;
30652
30653 #[inline]
30654 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30655 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
30656 ::fidl_next::wire::Union::zero_padding(raw);
30657 }
30658 }
30659
30660 pub mod expose {
30661 pub enum Ref<'de> {
30662 Service(&'de crate::wire::ExposeService<'de>),
30663
30664 Protocol(&'de crate::wire::ExposeProtocol<'de>),
30665
30666 Directory(&'de crate::wire::ExposeDirectory<'de>),
30667
30668 Runner(&'de crate::wire::ExposeRunner<'de>),
30669
30670 Resolver(&'de crate::wire::ExposeResolver<'de>),
30671
30672 Dictionary(&'de crate::wire::ExposeDictionary<'de>),
30673
30674 Config(&'de crate::wire::ExposeConfiguration<'de>),
30675
30676 UnknownOrdinal_(u64),
30677 }
30678
30679 pub enum Value<'de> {
30680 Service(crate::wire::ExposeService<'de>),
30681
30682 Protocol(crate::wire::ExposeProtocol<'de>),
30683
30684 Directory(crate::wire::ExposeDirectory<'de>),
30685
30686 Runner(crate::wire::ExposeRunner<'de>),
30687
30688 Resolver(crate::wire::ExposeResolver<'de>),
30689
30690 Dictionary(crate::wire::ExposeDictionary<'de>),
30691
30692 Config(crate::wire::ExposeConfiguration<'de>),
30693
30694 UnknownOrdinal_(u64),
30695 }
30696 }
30697
30698 impl<'de> Expose<'de> {
30699 pub fn as_ref(&self) -> crate::wire::expose::Ref<'_> {
30700 match self.raw.ordinal() {
30701 1 => crate::wire::expose::Ref::Service(unsafe {
30702 self.raw.get().deref_unchecked::<crate::wire::ExposeService<'_>>()
30703 }),
30704
30705 2 => crate::wire::expose::Ref::Protocol(unsafe {
30706 self.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'_>>()
30707 }),
30708
30709 3 => crate::wire::expose::Ref::Directory(unsafe {
30710 self.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'_>>()
30711 }),
30712
30713 4 => crate::wire::expose::Ref::Runner(unsafe {
30714 self.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'_>>()
30715 }),
30716
30717 5 => crate::wire::expose::Ref::Resolver(unsafe {
30718 self.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'_>>()
30719 }),
30720
30721 7 => crate::wire::expose::Ref::Dictionary(unsafe {
30722 self.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'_>>()
30723 }),
30724
30725 8 => crate::wire::expose::Ref::Config(unsafe {
30726 self.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'_>>()
30727 }),
30728
30729 unknown => crate::wire::expose::Ref::UnknownOrdinal_(unknown),
30730 }
30731 }
30732
30733 pub fn into_inner(self) -> crate::wire::expose::Value<'de> {
30734 let this = ::core::mem::ManuallyDrop::new(self);
30735
30736 match this.raw.ordinal() {
30737 1 => crate::wire::expose::Value::Service(unsafe {
30738 this.raw.get().read_unchecked::<crate::wire::ExposeService<'de>>()
30739 }),
30740
30741 2 => crate::wire::expose::Value::Protocol(unsafe {
30742 this.raw.get().read_unchecked::<crate::wire::ExposeProtocol<'de>>()
30743 }),
30744
30745 3 => crate::wire::expose::Value::Directory(unsafe {
30746 this.raw.get().read_unchecked::<crate::wire::ExposeDirectory<'de>>()
30747 }),
30748
30749 4 => crate::wire::expose::Value::Runner(unsafe {
30750 this.raw.get().read_unchecked::<crate::wire::ExposeRunner<'de>>()
30751 }),
30752
30753 5 => crate::wire::expose::Value::Resolver(unsafe {
30754 this.raw.get().read_unchecked::<crate::wire::ExposeResolver<'de>>()
30755 }),
30756
30757 7 => crate::wire::expose::Value::Dictionary(unsafe {
30758 this.raw.get().read_unchecked::<crate::wire::ExposeDictionary<'de>>()
30759 }),
30760
30761 8 => crate::wire::expose::Value::Config(unsafe {
30762 this.raw.get().read_unchecked::<crate::wire::ExposeConfiguration<'de>>()
30763 }),
30764
30765 unknown => crate::wire::expose::Value::UnknownOrdinal_(unknown),
30766 }
30767 }
30768 }
30769
30770 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Expose<'de>
30771 where
30772 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
30773 ___D: ::fidl_next::Decoder<'de>,
30774 {
30775 fn decode(
30776 mut slot: ::fidl_next::Slot<'_, Self>,
30777 decoder: &mut ___D,
30778 _: (),
30779 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30780 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
30781 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
30782 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeService<'de>>(
30783 raw,
30784 decoder,
30785 (),
30786 )?,
30787
30788 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeProtocol<'de>>(
30789 raw,
30790 decoder,
30791 (),
30792 )?,
30793
30794 3 => {
30795 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDirectory<'de>>(
30796 raw,
30797 decoder,
30798 (),
30799 )?
30800 }
30801
30802 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeRunner<'de>>(
30803 raw,
30804 decoder,
30805 (),
30806 )?,
30807
30808 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeResolver<'de>>(
30809 raw,
30810 decoder,
30811 (),
30812 )?,
30813
30814 7 => {
30815 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDictionary<'de>>(
30816 raw,
30817 decoder,
30818 (),
30819 )?
30820 }
30821
30822 8 => ::fidl_next::wire::Union::decode_as::<
30823 ___D,
30824 crate::wire::ExposeConfiguration<'de>,
30825 >(raw, decoder, ())?,
30826
30827 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
30828 }
30829
30830 Ok(())
30831 }
30832 }
30833
30834 impl<'de> ::core::fmt::Debug for Expose<'de> {
30835 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30836 match self.raw.ordinal() {
30837 1 => unsafe {
30838 self.raw.get().deref_unchecked::<crate::wire::ExposeService<'_>>().fmt(f)
30839 },
30840 2 => unsafe {
30841 self.raw.get().deref_unchecked::<crate::wire::ExposeProtocol<'_>>().fmt(f)
30842 },
30843 3 => unsafe {
30844 self.raw.get().deref_unchecked::<crate::wire::ExposeDirectory<'_>>().fmt(f)
30845 },
30846 4 => unsafe {
30847 self.raw.get().deref_unchecked::<crate::wire::ExposeRunner<'_>>().fmt(f)
30848 },
30849 5 => unsafe {
30850 self.raw.get().deref_unchecked::<crate::wire::ExposeResolver<'_>>().fmt(f)
30851 },
30852 7 => unsafe {
30853 self.raw.get().deref_unchecked::<crate::wire::ExposeDictionary<'_>>().fmt(f)
30854 },
30855 8 => unsafe {
30856 self.raw.get().deref_unchecked::<crate::wire::ExposeConfiguration<'_>>().fmt(f)
30857 },
30858 _ => unsafe { ::core::hint::unreachable_unchecked() },
30859 }
30860 }
30861 }
30862
30863 impl<'de> ::fidl_next::IntoNatural for Expose<'de> {
30864 type Natural = crate::natural::Expose;
30865 }
30866
30867 #[repr(C)]
30869 pub struct OfferService<'de> {
30870 pub(crate) table: ::fidl_next::wire::Table<'de>,
30871 }
30872
30873 impl<'de> Drop for OfferService<'de> {
30874 fn drop(&mut self) {
30875 let _ = self
30876 .table
30877 .get(1)
30878 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30879
30880 let _ = self.table.get(2).map(|envelope| unsafe {
30881 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30882 });
30883
30884 let _ = self
30885 .table
30886 .get(3)
30887 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
30888
30889 let _ = self.table.get(4).map(|envelope| unsafe {
30890 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30891 });
30892
30893 let _ = self.table.get(5)
30894 .map(|envelope| unsafe {
30895 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>()
30896 });
30897
30898 let _ = self.table.get(6)
30899 .map(|envelope| unsafe {
30900 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>()
30901 });
30902
30903 let _ = self
30904 .table
30905 .get(7)
30906 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
30907
30908 let _ = self.table.get(8).map(|envelope| unsafe {
30909 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
30910 });
30911
30912 let _ = self.table.get(9).map(|envelope| unsafe {
30913 envelope.read_unchecked::<crate::wire::DependencyType>()
30914 });
30915 }
30916 }
30917
30918 impl ::fidl_next::Constrained for OfferService<'_> {
30919 type Constraint = ();
30920
30921 fn validate(
30922 _: ::fidl_next::Slot<'_, Self>,
30923 _: Self::Constraint,
30924 ) -> Result<(), ::fidl_next::ValidationError> {
30925 Ok(())
30926 }
30927 }
30928
30929 unsafe impl ::fidl_next::Wire for OfferService<'static> {
30930 type Narrowed<'de> = OfferService<'de>;
30931
30932 #[inline]
30933 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
30934 ::fidl_next::munge!(let Self { table } = out);
30935 ::fidl_next::wire::Table::zero_padding(table);
30936 }
30937 }
30938
30939 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferService<'de>
30940 where
30941 ___D: ::fidl_next::Decoder<'de> + ?Sized,
30942 {
30943 fn decode(
30944 slot: ::fidl_next::Slot<'_, Self>,
30945 decoder: &mut ___D,
30946 _: (),
30947 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
30948 ::fidl_next::munge!(let Self { table } = slot);
30949
30950 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
30951 match ordinal {
30952 0 => unsafe { ::core::hint::unreachable_unchecked() },
30953
30954 1 => {
30955 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30956 slot.as_mut(),
30957 decoder,
30958 (),
30959 )?;
30960
30961 Ok(())
30962 }
30963
30964 2 => {
30965 ::fidl_next::wire::Envelope::decode_as::<
30966 ___D,
30967 ::fidl_next::wire::String<'de>,
30968 >(slot.as_mut(), decoder, 100)?;
30969
30970 let value = unsafe {
30971 slot.deref_unchecked()
30972 .deref_unchecked::<::fidl_next::wire::String<'_>>()
30973 };
30974
30975 if value.len() > 100 {
30976 return Err(::fidl_next::DecodeError::VectorTooLong {
30977 size: value.len() as u64,
30978 limit: 100,
30979 });
30980 }
30981
30982 Ok(())
30983 }
30984
30985 3 => {
30986 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
30987 slot.as_mut(),
30988 decoder,
30989 (),
30990 )?;
30991
30992 Ok(())
30993 }
30994
30995 4 => {
30996 ::fidl_next::wire::Envelope::decode_as::<
30997 ___D,
30998 ::fidl_next::wire::String<'de>,
30999 >(slot.as_mut(), decoder, 100)?;
31000
31001 let value = unsafe {
31002 slot.deref_unchecked()
31003 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31004 };
31005
31006 if value.len() > 100 {
31007 return Err(::fidl_next::DecodeError::VectorTooLong {
31008 size: value.len() as u64,
31009 limit: 100,
31010 });
31011 }
31012
31013 Ok(())
31014 }
31015
31016 5 => {
31017 ::fidl_next::wire::Envelope::decode_as::<
31018 ___D,
31019 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
31020 >(slot.as_mut(), decoder, (4294967295, 100))?;
31021
31022 Ok(())
31023 }
31024
31025 6 => {
31026 ::fidl_next::wire::Envelope::decode_as::<
31027 ___D,
31028 ::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>,
31029 >(slot.as_mut(), decoder, (4294967295, ()))?;
31030
31031 Ok(())
31032 }
31033
31034 7 => {
31035 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
31036 slot.as_mut(),
31037 decoder,
31038 (),
31039 )?;
31040
31041 Ok(())
31042 }
31043
31044 8 => {
31045 ::fidl_next::wire::Envelope::decode_as::<
31046 ___D,
31047 ::fidl_next::wire::String<'de>,
31048 >(slot.as_mut(), decoder, 1024)?;
31049
31050 let value = unsafe {
31051 slot.deref_unchecked()
31052 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31053 };
31054
31055 if value.len() > 1024 {
31056 return Err(::fidl_next::DecodeError::VectorTooLong {
31057 size: value.len() as u64,
31058 limit: 1024,
31059 });
31060 }
31061
31062 Ok(())
31063 }
31064
31065 9 => {
31066 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
31067 slot.as_mut(),
31068 decoder,
31069 (),
31070 )?;
31071
31072 Ok(())
31073 }
31074
31075 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
31076 }
31077 })
31078 }
31079 }
31080
31081 impl<'de> OfferService<'de> {
31082 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31083 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31084 }
31085
31086 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31087 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
31088 }
31089
31090 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31091 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31092 }
31093
31094 pub fn take_source_name(
31095 &mut self,
31096 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31097 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
31098 }
31099
31100 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31101 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31102 }
31103
31104 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31105 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31106 }
31107
31108 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31109 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31110 }
31111
31112 pub fn take_target_name(
31113 &mut self,
31114 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31115 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31116 }
31117
31118 pub fn source_instance_filter(
31119 &self,
31120 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
31121 {
31122 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31123 }
31124
31125 pub fn take_source_instance_filter(
31126 &mut self,
31127 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>>
31128 {
31129 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31130 }
31131
31132 pub fn renamed_instances(
31133 &self,
31134 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>
31135 {
31136 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31137 }
31138
31139 pub fn take_renamed_instances(
31140 &mut self,
31141 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::NameMapping<'de>>>
31142 {
31143 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
31144 }
31145
31146 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31147 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31148 }
31149
31150 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31151 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
31152 }
31153
31154 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31155 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
31156 }
31157
31158 pub fn take_source_dictionary(
31159 &mut self,
31160 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31161 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
31162 }
31163
31164 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
31165 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
31166 }
31167
31168 pub fn take_dependency_type(
31169 &mut self,
31170 ) -> ::core::option::Option<crate::wire::DependencyType> {
31171 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
31172 }
31173 }
31174
31175 impl<'de> ::core::fmt::Debug for OfferService<'de> {
31176 fn fmt(
31177 &self,
31178 f: &mut ::core::fmt::Formatter<'_>,
31179 ) -> ::core::result::Result<(), ::core::fmt::Error> {
31180 f.debug_struct("OfferService")
31181 .field("source", &self.source())
31182 .field("source_name", &self.source_name())
31183 .field("target", &self.target())
31184 .field("target_name", &self.target_name())
31185 .field("source_instance_filter", &self.source_instance_filter())
31186 .field("renamed_instances", &self.renamed_instances())
31187 .field("availability", &self.availability())
31188 .field("source_dictionary", &self.source_dictionary())
31189 .field("dependency_type", &self.dependency_type())
31190 .finish()
31191 }
31192 }
31193
31194 impl<'de> ::fidl_next::IntoNatural for OfferService<'de> {
31195 type Natural = crate::natural::OfferService;
31196 }
31197
31198 #[repr(C)]
31200 pub struct OfferProtocol<'de> {
31201 pub(crate) table: ::fidl_next::wire::Table<'de>,
31202 }
31203
31204 impl<'de> Drop for OfferProtocol<'de> {
31205 fn drop(&mut self) {
31206 let _ = self
31207 .table
31208 .get(1)
31209 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31210
31211 let _ = self.table.get(2).map(|envelope| unsafe {
31212 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31213 });
31214
31215 let _ = self
31216 .table
31217 .get(3)
31218 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31219
31220 let _ = self.table.get(4).map(|envelope| unsafe {
31221 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31222 });
31223
31224 let _ = self.table.get(5).map(|envelope| unsafe {
31225 envelope.read_unchecked::<crate::wire::DependencyType>()
31226 });
31227
31228 let _ = self
31229 .table
31230 .get(6)
31231 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31232
31233 let _ = self.table.get(7).map(|envelope| unsafe {
31234 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31235 });
31236 }
31237 }
31238
31239 impl ::fidl_next::Constrained for OfferProtocol<'_> {
31240 type Constraint = ();
31241
31242 fn validate(
31243 _: ::fidl_next::Slot<'_, Self>,
31244 _: Self::Constraint,
31245 ) -> Result<(), ::fidl_next::ValidationError> {
31246 Ok(())
31247 }
31248 }
31249
31250 unsafe impl ::fidl_next::Wire for OfferProtocol<'static> {
31251 type Narrowed<'de> = OfferProtocol<'de>;
31252
31253 #[inline]
31254 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31255 ::fidl_next::munge!(let Self { table } = out);
31256 ::fidl_next::wire::Table::zero_padding(table);
31257 }
31258 }
31259
31260 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferProtocol<'de>
31261 where
31262 ___D: ::fidl_next::Decoder<'de> + ?Sized,
31263 {
31264 fn decode(
31265 slot: ::fidl_next::Slot<'_, Self>,
31266 decoder: &mut ___D,
31267 _: (),
31268 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31269 ::fidl_next::munge!(let Self { table } = slot);
31270
31271 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31272 match ordinal {
31273 0 => unsafe { ::core::hint::unreachable_unchecked() },
31274
31275 1 => {
31276 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31277 slot.as_mut(),
31278 decoder,
31279 (),
31280 )?;
31281
31282 Ok(())
31283 }
31284
31285 2 => {
31286 ::fidl_next::wire::Envelope::decode_as::<
31287 ___D,
31288 ::fidl_next::wire::String<'de>,
31289 >(slot.as_mut(), decoder, 100)?;
31290
31291 let value = unsafe {
31292 slot.deref_unchecked()
31293 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31294 };
31295
31296 if value.len() > 100 {
31297 return Err(::fidl_next::DecodeError::VectorTooLong {
31298 size: value.len() as u64,
31299 limit: 100,
31300 });
31301 }
31302
31303 Ok(())
31304 }
31305
31306 3 => {
31307 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31308 slot.as_mut(),
31309 decoder,
31310 (),
31311 )?;
31312
31313 Ok(())
31314 }
31315
31316 4 => {
31317 ::fidl_next::wire::Envelope::decode_as::<
31318 ___D,
31319 ::fidl_next::wire::String<'de>,
31320 >(slot.as_mut(), decoder, 100)?;
31321
31322 let value = unsafe {
31323 slot.deref_unchecked()
31324 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31325 };
31326
31327 if value.len() > 100 {
31328 return Err(::fidl_next::DecodeError::VectorTooLong {
31329 size: value.len() as u64,
31330 limit: 100,
31331 });
31332 }
31333
31334 Ok(())
31335 }
31336
31337 5 => {
31338 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
31339 slot.as_mut(),
31340 decoder,
31341 (),
31342 )?;
31343
31344 Ok(())
31345 }
31346
31347 6 => {
31348 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
31349 slot.as_mut(),
31350 decoder,
31351 (),
31352 )?;
31353
31354 Ok(())
31355 }
31356
31357 7 => {
31358 ::fidl_next::wire::Envelope::decode_as::<
31359 ___D,
31360 ::fidl_next::wire::String<'de>,
31361 >(slot.as_mut(), decoder, 1024)?;
31362
31363 let value = unsafe {
31364 slot.deref_unchecked()
31365 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31366 };
31367
31368 if value.len() > 1024 {
31369 return Err(::fidl_next::DecodeError::VectorTooLong {
31370 size: value.len() as u64,
31371 limit: 1024,
31372 });
31373 }
31374
31375 Ok(())
31376 }
31377
31378 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
31379 }
31380 })
31381 }
31382 }
31383
31384 impl<'de> OfferProtocol<'de> {
31385 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31386 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31387 }
31388
31389 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31390 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
31391 }
31392
31393 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31394 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31395 }
31396
31397 pub fn take_source_name(
31398 &mut self,
31399 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31400 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
31401 }
31402
31403 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31404 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31405 }
31406
31407 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31408 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31409 }
31410
31411 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31412 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31413 }
31414
31415 pub fn take_target_name(
31416 &mut self,
31417 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31418 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31419 }
31420
31421 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
31422 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31423 }
31424
31425 pub fn take_dependency_type(
31426 &mut self,
31427 ) -> ::core::option::Option<crate::wire::DependencyType> {
31428 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31429 }
31430
31431 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31432 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31433 }
31434
31435 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31436 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
31437 }
31438
31439 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31440 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31441 }
31442
31443 pub fn take_source_dictionary(
31444 &mut self,
31445 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31446 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
31447 }
31448 }
31449
31450 impl<'de> ::core::fmt::Debug for OfferProtocol<'de> {
31451 fn fmt(
31452 &self,
31453 f: &mut ::core::fmt::Formatter<'_>,
31454 ) -> ::core::result::Result<(), ::core::fmt::Error> {
31455 f.debug_struct("OfferProtocol")
31456 .field("source", &self.source())
31457 .field("source_name", &self.source_name())
31458 .field("target", &self.target())
31459 .field("target_name", &self.target_name())
31460 .field("dependency_type", &self.dependency_type())
31461 .field("availability", &self.availability())
31462 .field("source_dictionary", &self.source_dictionary())
31463 .finish()
31464 }
31465 }
31466
31467 impl<'de> ::fidl_next::IntoNatural for OfferProtocol<'de> {
31468 type Natural = crate::natural::OfferProtocol;
31469 }
31470
31471 #[repr(C)]
31473 pub struct OfferDirectory<'de> {
31474 pub(crate) table: ::fidl_next::wire::Table<'de>,
31475 }
31476
31477 impl<'de> Drop for OfferDirectory<'de> {
31478 fn drop(&mut self) {
31479 let _ = self
31480 .table
31481 .get(1)
31482 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31483
31484 let _ = self.table.get(2).map(|envelope| unsafe {
31485 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31486 });
31487
31488 let _ = self
31489 .table
31490 .get(3)
31491 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31492
31493 let _ = self.table.get(4).map(|envelope| unsafe {
31494 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31495 });
31496
31497 let _ = self.table.get(5).map(|envelope| unsafe {
31498 envelope.read_unchecked::<::fidl_next_common_fuchsia_io::wire::Operations>()
31499 });
31500
31501 let _ = self.table.get(6).map(|envelope| unsafe {
31502 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31503 });
31504
31505 let _ = self.table.get(7).map(|envelope| unsafe {
31506 envelope.read_unchecked::<crate::wire::DependencyType>()
31507 });
31508
31509 let _ = self
31510 .table
31511 .get(8)
31512 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31513
31514 let _ = self.table.get(9).map(|envelope| unsafe {
31515 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31516 });
31517 }
31518 }
31519
31520 impl ::fidl_next::Constrained for OfferDirectory<'_> {
31521 type Constraint = ();
31522
31523 fn validate(
31524 _: ::fidl_next::Slot<'_, Self>,
31525 _: Self::Constraint,
31526 ) -> Result<(), ::fidl_next::ValidationError> {
31527 Ok(())
31528 }
31529 }
31530
31531 unsafe impl ::fidl_next::Wire for OfferDirectory<'static> {
31532 type Narrowed<'de> = OfferDirectory<'de>;
31533
31534 #[inline]
31535 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31536 ::fidl_next::munge!(let Self { table } = out);
31537 ::fidl_next::wire::Table::zero_padding(table);
31538 }
31539 }
31540
31541 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferDirectory<'de>
31542 where
31543 ___D: ::fidl_next::Decoder<'de> + ?Sized,
31544 {
31545 fn decode(
31546 slot: ::fidl_next::Slot<'_, Self>,
31547 decoder: &mut ___D,
31548 _: (),
31549 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31550 ::fidl_next::munge!(let Self { table } = slot);
31551
31552 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31553 match ordinal {
31554 0 => unsafe { ::core::hint::unreachable_unchecked() },
31555
31556 1 => {
31557 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31558 slot.as_mut(),
31559 decoder,
31560 (),
31561 )?;
31562
31563 Ok(())
31564 }
31565
31566 2 => {
31567 ::fidl_next::wire::Envelope::decode_as::<
31568 ___D,
31569 ::fidl_next::wire::String<'de>,
31570 >(slot.as_mut(), decoder, 100)?;
31571
31572 let value = unsafe {
31573 slot.deref_unchecked()
31574 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31575 };
31576
31577 if value.len() > 100 {
31578 return Err(::fidl_next::DecodeError::VectorTooLong {
31579 size: value.len() as u64,
31580 limit: 100,
31581 });
31582 }
31583
31584 Ok(())
31585 }
31586
31587 3 => {
31588 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31589 slot.as_mut(),
31590 decoder,
31591 (),
31592 )?;
31593
31594 Ok(())
31595 }
31596
31597 4 => {
31598 ::fidl_next::wire::Envelope::decode_as::<
31599 ___D,
31600 ::fidl_next::wire::String<'de>,
31601 >(slot.as_mut(), decoder, 100)?;
31602
31603 let value = unsafe {
31604 slot.deref_unchecked()
31605 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31606 };
31607
31608 if value.len() > 100 {
31609 return Err(::fidl_next::DecodeError::VectorTooLong {
31610 size: value.len() as u64,
31611 limit: 100,
31612 });
31613 }
31614
31615 Ok(())
31616 }
31617
31618 5 => {
31619 ::fidl_next::wire::Envelope::decode_as::<
31620 ___D,
31621 ::fidl_next_common_fuchsia_io::wire::Operations,
31622 >(slot.as_mut(), decoder, ())?;
31623
31624 Ok(())
31625 }
31626
31627 6 => {
31628 ::fidl_next::wire::Envelope::decode_as::<
31629 ___D,
31630 ::fidl_next::wire::String<'de>,
31631 >(slot.as_mut(), decoder, 1024)?;
31632
31633 let value = unsafe {
31634 slot.deref_unchecked()
31635 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31636 };
31637
31638 if value.len() > 1024 {
31639 return Err(::fidl_next::DecodeError::VectorTooLong {
31640 size: value.len() as u64,
31641 limit: 1024,
31642 });
31643 }
31644
31645 Ok(())
31646 }
31647
31648 7 => {
31649 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
31650 slot.as_mut(),
31651 decoder,
31652 (),
31653 )?;
31654
31655 Ok(())
31656 }
31657
31658 8 => {
31659 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
31660 slot.as_mut(),
31661 decoder,
31662 (),
31663 )?;
31664
31665 Ok(())
31666 }
31667
31668 9 => {
31669 ::fidl_next::wire::Envelope::decode_as::<
31670 ___D,
31671 ::fidl_next::wire::String<'de>,
31672 >(slot.as_mut(), decoder, 1024)?;
31673
31674 let value = unsafe {
31675 slot.deref_unchecked()
31676 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31677 };
31678
31679 if value.len() > 1024 {
31680 return Err(::fidl_next::DecodeError::VectorTooLong {
31681 size: value.len() as u64,
31682 limit: 1024,
31683 });
31684 }
31685
31686 Ok(())
31687 }
31688
31689 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
31690 }
31691 })
31692 }
31693 }
31694
31695 impl<'de> OfferDirectory<'de> {
31696 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31697 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31698 }
31699
31700 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31701 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
31702 }
31703
31704 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31705 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31706 }
31707
31708 pub fn take_source_name(
31709 &mut self,
31710 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31711 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
31712 }
31713
31714 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31715 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31716 }
31717
31718 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31719 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31720 }
31721
31722 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31723 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31724 }
31725
31726 pub fn take_target_name(
31727 &mut self,
31728 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31729 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31730 }
31731
31732 pub fn rights(
31733 &self,
31734 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_io::wire::Operations> {
31735 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31736 }
31737
31738 pub fn take_rights(
31739 &mut self,
31740 ) -> ::core::option::Option<::fidl_next_common_fuchsia_io::wire::Operations> {
31741 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31742 }
31743
31744 pub fn subdir(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31745 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
31746 }
31747
31748 pub fn take_subdir(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31749 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
31750 }
31751
31752 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
31753 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
31754 }
31755
31756 pub fn take_dependency_type(
31757 &mut self,
31758 ) -> ::core::option::Option<crate::wire::DependencyType> {
31759 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
31760 }
31761
31762 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31763 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
31764 }
31765
31766 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31767 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
31768 }
31769
31770 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31771 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
31772 }
31773
31774 pub fn take_source_dictionary(
31775 &mut self,
31776 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31777 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
31778 }
31779 }
31780
31781 impl<'de> ::core::fmt::Debug for OfferDirectory<'de> {
31782 fn fmt(
31783 &self,
31784 f: &mut ::core::fmt::Formatter<'_>,
31785 ) -> ::core::result::Result<(), ::core::fmt::Error> {
31786 f.debug_struct("OfferDirectory")
31787 .field("source", &self.source())
31788 .field("source_name", &self.source_name())
31789 .field("target", &self.target())
31790 .field("target_name", &self.target_name())
31791 .field("rights", &self.rights())
31792 .field("subdir", &self.subdir())
31793 .field("dependency_type", &self.dependency_type())
31794 .field("availability", &self.availability())
31795 .field("source_dictionary", &self.source_dictionary())
31796 .finish()
31797 }
31798 }
31799
31800 impl<'de> ::fidl_next::IntoNatural for OfferDirectory<'de> {
31801 type Natural = crate::natural::OfferDirectory;
31802 }
31803
31804 #[repr(C)]
31806 pub struct OfferStorage<'de> {
31807 pub(crate) table: ::fidl_next::wire::Table<'de>,
31808 }
31809
31810 impl<'de> Drop for OfferStorage<'de> {
31811 fn drop(&mut self) {
31812 let _ = self.table.get(1).map(|envelope| unsafe {
31813 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31814 });
31815
31816 let _ = self
31817 .table
31818 .get(2)
31819 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31820
31821 let _ = self
31822 .table
31823 .get(3)
31824 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
31825
31826 let _ = self.table.get(4).map(|envelope| unsafe {
31827 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
31828 });
31829
31830 let _ = self
31831 .table
31832 .get(5)
31833 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
31834 }
31835 }
31836
31837 impl ::fidl_next::Constrained for OfferStorage<'_> {
31838 type Constraint = ();
31839
31840 fn validate(
31841 _: ::fidl_next::Slot<'_, Self>,
31842 _: Self::Constraint,
31843 ) -> Result<(), ::fidl_next::ValidationError> {
31844 Ok(())
31845 }
31846 }
31847
31848 unsafe impl ::fidl_next::Wire for OfferStorage<'static> {
31849 type Narrowed<'de> = OfferStorage<'de>;
31850
31851 #[inline]
31852 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
31853 ::fidl_next::munge!(let Self { table } = out);
31854 ::fidl_next::wire::Table::zero_padding(table);
31855 }
31856 }
31857
31858 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferStorage<'de>
31859 where
31860 ___D: ::fidl_next::Decoder<'de> + ?Sized,
31861 {
31862 fn decode(
31863 slot: ::fidl_next::Slot<'_, Self>,
31864 decoder: &mut ___D,
31865 _: (),
31866 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
31867 ::fidl_next::munge!(let Self { table } = slot);
31868
31869 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
31870 match ordinal {
31871 0 => unsafe { ::core::hint::unreachable_unchecked() },
31872
31873 1 => {
31874 ::fidl_next::wire::Envelope::decode_as::<
31875 ___D,
31876 ::fidl_next::wire::String<'de>,
31877 >(slot.as_mut(), decoder, 100)?;
31878
31879 let value = unsafe {
31880 slot.deref_unchecked()
31881 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31882 };
31883
31884 if value.len() > 100 {
31885 return Err(::fidl_next::DecodeError::VectorTooLong {
31886 size: value.len() as u64,
31887 limit: 100,
31888 });
31889 }
31890
31891 Ok(())
31892 }
31893
31894 2 => {
31895 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31896 slot.as_mut(),
31897 decoder,
31898 (),
31899 )?;
31900
31901 Ok(())
31902 }
31903
31904 3 => {
31905 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
31906 slot.as_mut(),
31907 decoder,
31908 (),
31909 )?;
31910
31911 Ok(())
31912 }
31913
31914 4 => {
31915 ::fidl_next::wire::Envelope::decode_as::<
31916 ___D,
31917 ::fidl_next::wire::String<'de>,
31918 >(slot.as_mut(), decoder, 100)?;
31919
31920 let value = unsafe {
31921 slot.deref_unchecked()
31922 .deref_unchecked::<::fidl_next::wire::String<'_>>()
31923 };
31924
31925 if value.len() > 100 {
31926 return Err(::fidl_next::DecodeError::VectorTooLong {
31927 size: value.len() as u64,
31928 limit: 100,
31929 });
31930 }
31931
31932 Ok(())
31933 }
31934
31935 5 => {
31936 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
31937 slot.as_mut(),
31938 decoder,
31939 (),
31940 )?;
31941
31942 Ok(())
31943 }
31944
31945 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
31946 }
31947 })
31948 }
31949 }
31950
31951 impl<'de> OfferStorage<'de> {
31952 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31953 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
31954 }
31955
31956 pub fn take_source_name(
31957 &mut self,
31958 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31959 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
31960 }
31961
31962 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31963 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
31964 }
31965
31966 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31967 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
31968 }
31969
31970 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
31971 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
31972 }
31973
31974 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
31975 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
31976 }
31977
31978 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
31979 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
31980 }
31981
31982 pub fn take_target_name(
31983 &mut self,
31984 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
31985 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
31986 }
31987
31988 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
31989 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
31990 }
31991
31992 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
31993 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
31994 }
31995 }
31996
31997 impl<'de> ::core::fmt::Debug for OfferStorage<'de> {
31998 fn fmt(
31999 &self,
32000 f: &mut ::core::fmt::Formatter<'_>,
32001 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32002 f.debug_struct("OfferStorage")
32003 .field("source_name", &self.source_name())
32004 .field("source", &self.source())
32005 .field("target", &self.target())
32006 .field("target_name", &self.target_name())
32007 .field("availability", &self.availability())
32008 .finish()
32009 }
32010 }
32011
32012 impl<'de> ::fidl_next::IntoNatural for OfferStorage<'de> {
32013 type Natural = crate::natural::OfferStorage;
32014 }
32015
32016 #[repr(C)]
32018 pub struct OfferRunner<'de> {
32019 pub(crate) table: ::fidl_next::wire::Table<'de>,
32020 }
32021
32022 impl<'de> Drop for OfferRunner<'de> {
32023 fn drop(&mut self) {
32024 let _ = self
32025 .table
32026 .get(1)
32027 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32028
32029 let _ = self.table.get(2).map(|envelope| unsafe {
32030 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32031 });
32032
32033 let _ = self
32034 .table
32035 .get(3)
32036 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32037
32038 let _ = self.table.get(4).map(|envelope| unsafe {
32039 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32040 });
32041
32042 let _ = self.table.get(5).map(|envelope| unsafe {
32043 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32044 });
32045 }
32046 }
32047
32048 impl ::fidl_next::Constrained for OfferRunner<'_> {
32049 type Constraint = ();
32050
32051 fn validate(
32052 _: ::fidl_next::Slot<'_, Self>,
32053 _: Self::Constraint,
32054 ) -> Result<(), ::fidl_next::ValidationError> {
32055 Ok(())
32056 }
32057 }
32058
32059 unsafe impl ::fidl_next::Wire for OfferRunner<'static> {
32060 type Narrowed<'de> = OfferRunner<'de>;
32061
32062 #[inline]
32063 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32064 ::fidl_next::munge!(let Self { table } = out);
32065 ::fidl_next::wire::Table::zero_padding(table);
32066 }
32067 }
32068
32069 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferRunner<'de>
32070 where
32071 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32072 {
32073 fn decode(
32074 slot: ::fidl_next::Slot<'_, Self>,
32075 decoder: &mut ___D,
32076 _: (),
32077 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32078 ::fidl_next::munge!(let Self { table } = slot);
32079
32080 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32081 match ordinal {
32082 0 => unsafe { ::core::hint::unreachable_unchecked() },
32083
32084 1 => {
32085 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32086 slot.as_mut(),
32087 decoder,
32088 (),
32089 )?;
32090
32091 Ok(())
32092 }
32093
32094 2 => {
32095 ::fidl_next::wire::Envelope::decode_as::<
32096 ___D,
32097 ::fidl_next::wire::String<'de>,
32098 >(slot.as_mut(), decoder, 100)?;
32099
32100 let value = unsafe {
32101 slot.deref_unchecked()
32102 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32103 };
32104
32105 if value.len() > 100 {
32106 return Err(::fidl_next::DecodeError::VectorTooLong {
32107 size: value.len() as u64,
32108 limit: 100,
32109 });
32110 }
32111
32112 Ok(())
32113 }
32114
32115 3 => {
32116 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32117 slot.as_mut(),
32118 decoder,
32119 (),
32120 )?;
32121
32122 Ok(())
32123 }
32124
32125 4 => {
32126 ::fidl_next::wire::Envelope::decode_as::<
32127 ___D,
32128 ::fidl_next::wire::String<'de>,
32129 >(slot.as_mut(), decoder, 100)?;
32130
32131 let value = unsafe {
32132 slot.deref_unchecked()
32133 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32134 };
32135
32136 if value.len() > 100 {
32137 return Err(::fidl_next::DecodeError::VectorTooLong {
32138 size: value.len() as u64,
32139 limit: 100,
32140 });
32141 }
32142
32143 Ok(())
32144 }
32145
32146 5 => {
32147 ::fidl_next::wire::Envelope::decode_as::<
32148 ___D,
32149 ::fidl_next::wire::String<'de>,
32150 >(slot.as_mut(), decoder, 1024)?;
32151
32152 let value = unsafe {
32153 slot.deref_unchecked()
32154 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32155 };
32156
32157 if value.len() > 1024 {
32158 return Err(::fidl_next::DecodeError::VectorTooLong {
32159 size: value.len() as u64,
32160 limit: 1024,
32161 });
32162 }
32163
32164 Ok(())
32165 }
32166
32167 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32168 }
32169 })
32170 }
32171 }
32172
32173 impl<'de> OfferRunner<'de> {
32174 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32175 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32176 }
32177
32178 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32179 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32180 }
32181
32182 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32183 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32184 }
32185
32186 pub fn take_source_name(
32187 &mut self,
32188 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32189 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32190 }
32191
32192 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32193 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32194 }
32195
32196 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32197 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32198 }
32199
32200 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32201 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32202 }
32203
32204 pub fn take_target_name(
32205 &mut self,
32206 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32207 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32208 }
32209
32210 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32211 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32212 }
32213
32214 pub fn take_source_dictionary(
32215 &mut self,
32216 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32217 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32218 }
32219 }
32220
32221 impl<'de> ::core::fmt::Debug for OfferRunner<'de> {
32222 fn fmt(
32223 &self,
32224 f: &mut ::core::fmt::Formatter<'_>,
32225 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32226 f.debug_struct("OfferRunner")
32227 .field("source", &self.source())
32228 .field("source_name", &self.source_name())
32229 .field("target", &self.target())
32230 .field("target_name", &self.target_name())
32231 .field("source_dictionary", &self.source_dictionary())
32232 .finish()
32233 }
32234 }
32235
32236 impl<'de> ::fidl_next::IntoNatural for OfferRunner<'de> {
32237 type Natural = crate::natural::OfferRunner;
32238 }
32239
32240 #[repr(C)]
32242 pub struct OfferResolver<'de> {
32243 pub(crate) table: ::fidl_next::wire::Table<'de>,
32244 }
32245
32246 impl<'de> Drop for OfferResolver<'de> {
32247 fn drop(&mut self) {
32248 let _ = self
32249 .table
32250 .get(1)
32251 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32252
32253 let _ = self.table.get(2).map(|envelope| unsafe {
32254 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32255 });
32256
32257 let _ = self
32258 .table
32259 .get(3)
32260 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32261
32262 let _ = self.table.get(4).map(|envelope| unsafe {
32263 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32264 });
32265
32266 let _ = self.table.get(5).map(|envelope| unsafe {
32267 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32268 });
32269 }
32270 }
32271
32272 impl ::fidl_next::Constrained for OfferResolver<'_> {
32273 type Constraint = ();
32274
32275 fn validate(
32276 _: ::fidl_next::Slot<'_, Self>,
32277 _: Self::Constraint,
32278 ) -> Result<(), ::fidl_next::ValidationError> {
32279 Ok(())
32280 }
32281 }
32282
32283 unsafe impl ::fidl_next::Wire for OfferResolver<'static> {
32284 type Narrowed<'de> = OfferResolver<'de>;
32285
32286 #[inline]
32287 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32288 ::fidl_next::munge!(let Self { table } = out);
32289 ::fidl_next::wire::Table::zero_padding(table);
32290 }
32291 }
32292
32293 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferResolver<'de>
32294 where
32295 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32296 {
32297 fn decode(
32298 slot: ::fidl_next::Slot<'_, Self>,
32299 decoder: &mut ___D,
32300 _: (),
32301 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32302 ::fidl_next::munge!(let Self { table } = slot);
32303
32304 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32305 match ordinal {
32306 0 => unsafe { ::core::hint::unreachable_unchecked() },
32307
32308 1 => {
32309 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32310 slot.as_mut(),
32311 decoder,
32312 (),
32313 )?;
32314
32315 Ok(())
32316 }
32317
32318 2 => {
32319 ::fidl_next::wire::Envelope::decode_as::<
32320 ___D,
32321 ::fidl_next::wire::String<'de>,
32322 >(slot.as_mut(), decoder, 100)?;
32323
32324 let value = unsafe {
32325 slot.deref_unchecked()
32326 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32327 };
32328
32329 if value.len() > 100 {
32330 return Err(::fidl_next::DecodeError::VectorTooLong {
32331 size: value.len() as u64,
32332 limit: 100,
32333 });
32334 }
32335
32336 Ok(())
32337 }
32338
32339 3 => {
32340 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32341 slot.as_mut(),
32342 decoder,
32343 (),
32344 )?;
32345
32346 Ok(())
32347 }
32348
32349 4 => {
32350 ::fidl_next::wire::Envelope::decode_as::<
32351 ___D,
32352 ::fidl_next::wire::String<'de>,
32353 >(slot.as_mut(), decoder, 100)?;
32354
32355 let value = unsafe {
32356 slot.deref_unchecked()
32357 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32358 };
32359
32360 if value.len() > 100 {
32361 return Err(::fidl_next::DecodeError::VectorTooLong {
32362 size: value.len() as u64,
32363 limit: 100,
32364 });
32365 }
32366
32367 Ok(())
32368 }
32369
32370 5 => {
32371 ::fidl_next::wire::Envelope::decode_as::<
32372 ___D,
32373 ::fidl_next::wire::String<'de>,
32374 >(slot.as_mut(), decoder, 1024)?;
32375
32376 let value = unsafe {
32377 slot.deref_unchecked()
32378 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32379 };
32380
32381 if value.len() > 1024 {
32382 return Err(::fidl_next::DecodeError::VectorTooLong {
32383 size: value.len() as u64,
32384 limit: 1024,
32385 });
32386 }
32387
32388 Ok(())
32389 }
32390
32391 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32392 }
32393 })
32394 }
32395 }
32396
32397 impl<'de> OfferResolver<'de> {
32398 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32399 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32400 }
32401
32402 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32403 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32404 }
32405
32406 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32407 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32408 }
32409
32410 pub fn take_source_name(
32411 &mut self,
32412 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32413 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32414 }
32415
32416 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32417 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32418 }
32419
32420 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32421 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32422 }
32423
32424 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32425 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32426 }
32427
32428 pub fn take_target_name(
32429 &mut self,
32430 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32431 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32432 }
32433
32434 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32435 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32436 }
32437
32438 pub fn take_source_dictionary(
32439 &mut self,
32440 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32441 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32442 }
32443 }
32444
32445 impl<'de> ::core::fmt::Debug for OfferResolver<'de> {
32446 fn fmt(
32447 &self,
32448 f: &mut ::core::fmt::Formatter<'_>,
32449 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32450 f.debug_struct("OfferResolver")
32451 .field("source", &self.source())
32452 .field("source_name", &self.source_name())
32453 .field("target", &self.target())
32454 .field("target_name", &self.target_name())
32455 .field("source_dictionary", &self.source_dictionary())
32456 .finish()
32457 }
32458 }
32459
32460 impl<'de> ::fidl_next::IntoNatural for OfferResolver<'de> {
32461 type Natural = crate::natural::OfferResolver;
32462 }
32463
32464 #[repr(C)]
32466 pub struct OfferEventStream<'de> {
32467 pub(crate) table: ::fidl_next::wire::Table<'de>,
32468 }
32469
32470 impl<'de> Drop for OfferEventStream<'de> {
32471 fn drop(&mut self) {
32472 let _ = self
32473 .table
32474 .get(1)
32475 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32476
32477 let _ = self.table.get(2).map(|envelope| unsafe {
32478 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32479 });
32480
32481 let _ = self.table.get(3).map(|envelope| unsafe {
32482 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>()
32483 });
32484
32485 let _ = self
32486 .table
32487 .get(4)
32488 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32489
32490 let _ = self.table.get(5).map(|envelope| unsafe {
32491 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32492 });
32493
32494 let _ = self
32495 .table
32496 .get(7)
32497 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
32498 }
32499 }
32500
32501 impl ::fidl_next::Constrained for OfferEventStream<'_> {
32502 type Constraint = ();
32503
32504 fn validate(
32505 _: ::fidl_next::Slot<'_, Self>,
32506 _: Self::Constraint,
32507 ) -> Result<(), ::fidl_next::ValidationError> {
32508 Ok(())
32509 }
32510 }
32511
32512 unsafe impl ::fidl_next::Wire for OfferEventStream<'static> {
32513 type Narrowed<'de> = OfferEventStream<'de>;
32514
32515 #[inline]
32516 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32517 ::fidl_next::munge!(let Self { table } = out);
32518 ::fidl_next::wire::Table::zero_padding(table);
32519 }
32520 }
32521
32522 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferEventStream<'de>
32523 where
32524 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32525 {
32526 fn decode(
32527 slot: ::fidl_next::Slot<'_, Self>,
32528 decoder: &mut ___D,
32529 _: (),
32530 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32531 ::fidl_next::munge!(let Self { table } = slot);
32532
32533 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32534 match ordinal {
32535 0 => unsafe { ::core::hint::unreachable_unchecked() },
32536
32537 1 => {
32538 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32539 slot.as_mut(),
32540 decoder,
32541 (),
32542 )?;
32543
32544 Ok(())
32545 }
32546
32547 2 => {
32548 ::fidl_next::wire::Envelope::decode_as::<
32549 ___D,
32550 ::fidl_next::wire::String<'de>,
32551 >(slot.as_mut(), decoder, 100)?;
32552
32553 let value = unsafe {
32554 slot.deref_unchecked()
32555 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32556 };
32557
32558 if value.len() > 100 {
32559 return Err(::fidl_next::DecodeError::VectorTooLong {
32560 size: value.len() as u64,
32561 limit: 100,
32562 });
32563 }
32564
32565 Ok(())
32566 }
32567
32568 3 => {
32569 ::fidl_next::wire::Envelope::decode_as::<
32570 ___D,
32571 ::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>,
32572 >(slot.as_mut(), decoder, (4294967295, ()))?;
32573
32574 Ok(())
32575 }
32576
32577 4 => {
32578 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32579 slot.as_mut(),
32580 decoder,
32581 (),
32582 )?;
32583
32584 Ok(())
32585 }
32586
32587 5 => {
32588 ::fidl_next::wire::Envelope::decode_as::<
32589 ___D,
32590 ::fidl_next::wire::String<'de>,
32591 >(slot.as_mut(), decoder, 100)?;
32592
32593 let value = unsafe {
32594 slot.deref_unchecked()
32595 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32596 };
32597
32598 if value.len() > 100 {
32599 return Err(::fidl_next::DecodeError::VectorTooLong {
32600 size: value.len() as u64,
32601 limit: 100,
32602 });
32603 }
32604
32605 Ok(())
32606 }
32607
32608 7 => {
32609 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
32610 slot.as_mut(),
32611 decoder,
32612 (),
32613 )?;
32614
32615 Ok(())
32616 }
32617
32618 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32619 }
32620 })
32621 }
32622 }
32623
32624 impl<'de> OfferEventStream<'de> {
32625 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32626 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32627 }
32628
32629 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32630 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32631 }
32632
32633 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32634 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32635 }
32636
32637 pub fn take_source_name(
32638 &mut self,
32639 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32640 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32641 }
32642
32643 pub fn scope(
32644 &self,
32645 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>>
32646 {
32647 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32648 }
32649
32650 pub fn take_scope(
32651 &mut self,
32652 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Ref<'de>>> {
32653 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32654 }
32655
32656 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32657 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32658 }
32659
32660 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32661 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32662 }
32663
32664 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32665 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32666 }
32667
32668 pub fn take_target_name(
32669 &mut self,
32670 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32671 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32672 }
32673
32674 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
32675 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
32676 }
32677
32678 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
32679 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
32680 }
32681 }
32682
32683 impl<'de> ::core::fmt::Debug for OfferEventStream<'de> {
32684 fn fmt(
32685 &self,
32686 f: &mut ::core::fmt::Formatter<'_>,
32687 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32688 f.debug_struct("OfferEventStream")
32689 .field("source", &self.source())
32690 .field("source_name", &self.source_name())
32691 .field("scope", &self.scope())
32692 .field("target", &self.target())
32693 .field("target_name", &self.target_name())
32694 .field("availability", &self.availability())
32695 .finish()
32696 }
32697 }
32698
32699 impl<'de> ::fidl_next::IntoNatural for OfferEventStream<'de> {
32700 type Natural = crate::natural::OfferEventStream;
32701 }
32702
32703 #[repr(C)]
32705 pub struct OfferDictionary<'de> {
32706 pub(crate) table: ::fidl_next::wire::Table<'de>,
32707 }
32708
32709 impl<'de> Drop for OfferDictionary<'de> {
32710 fn drop(&mut self) {
32711 let _ = self
32712 .table
32713 .get(1)
32714 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32715
32716 let _ = self.table.get(2).map(|envelope| unsafe {
32717 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32718 });
32719
32720 let _ = self
32721 .table
32722 .get(3)
32723 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32724
32725 let _ = self.table.get(4).map(|envelope| unsafe {
32726 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32727 });
32728
32729 let _ = self.table.get(5).map(|envelope| unsafe {
32730 envelope.read_unchecked::<crate::wire::DependencyType>()
32731 });
32732
32733 let _ = self
32734 .table
32735 .get(6)
32736 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
32737
32738 let _ = self.table.get(7).map(|envelope| unsafe {
32739 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32740 });
32741 }
32742 }
32743
32744 impl ::fidl_next::Constrained for OfferDictionary<'_> {
32745 type Constraint = ();
32746
32747 fn validate(
32748 _: ::fidl_next::Slot<'_, Self>,
32749 _: Self::Constraint,
32750 ) -> Result<(), ::fidl_next::ValidationError> {
32751 Ok(())
32752 }
32753 }
32754
32755 unsafe impl ::fidl_next::Wire for OfferDictionary<'static> {
32756 type Narrowed<'de> = OfferDictionary<'de>;
32757
32758 #[inline]
32759 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
32760 ::fidl_next::munge!(let Self { table } = out);
32761 ::fidl_next::wire::Table::zero_padding(table);
32762 }
32763 }
32764
32765 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferDictionary<'de>
32766 where
32767 ___D: ::fidl_next::Decoder<'de> + ?Sized,
32768 {
32769 fn decode(
32770 slot: ::fidl_next::Slot<'_, Self>,
32771 decoder: &mut ___D,
32772 _: (),
32773 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
32774 ::fidl_next::munge!(let Self { table } = slot);
32775
32776 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
32777 match ordinal {
32778 0 => unsafe { ::core::hint::unreachable_unchecked() },
32779
32780 1 => {
32781 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32782 slot.as_mut(),
32783 decoder,
32784 (),
32785 )?;
32786
32787 Ok(())
32788 }
32789
32790 2 => {
32791 ::fidl_next::wire::Envelope::decode_as::<
32792 ___D,
32793 ::fidl_next::wire::String<'de>,
32794 >(slot.as_mut(), decoder, 100)?;
32795
32796 let value = unsafe {
32797 slot.deref_unchecked()
32798 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32799 };
32800
32801 if value.len() > 100 {
32802 return Err(::fidl_next::DecodeError::VectorTooLong {
32803 size: value.len() as u64,
32804 limit: 100,
32805 });
32806 }
32807
32808 Ok(())
32809 }
32810
32811 3 => {
32812 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
32813 slot.as_mut(),
32814 decoder,
32815 (),
32816 )?;
32817
32818 Ok(())
32819 }
32820
32821 4 => {
32822 ::fidl_next::wire::Envelope::decode_as::<
32823 ___D,
32824 ::fidl_next::wire::String<'de>,
32825 >(slot.as_mut(), decoder, 100)?;
32826
32827 let value = unsafe {
32828 slot.deref_unchecked()
32829 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32830 };
32831
32832 if value.len() > 100 {
32833 return Err(::fidl_next::DecodeError::VectorTooLong {
32834 size: value.len() as u64,
32835 limit: 100,
32836 });
32837 }
32838
32839 Ok(())
32840 }
32841
32842 5 => {
32843 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DependencyType>(
32844 slot.as_mut(),
32845 decoder,
32846 (),
32847 )?;
32848
32849 Ok(())
32850 }
32851
32852 6 => {
32853 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
32854 slot.as_mut(),
32855 decoder,
32856 (),
32857 )?;
32858
32859 Ok(())
32860 }
32861
32862 7 => {
32863 ::fidl_next::wire::Envelope::decode_as::<
32864 ___D,
32865 ::fidl_next::wire::String<'de>,
32866 >(slot.as_mut(), decoder, 1024)?;
32867
32868 let value = unsafe {
32869 slot.deref_unchecked()
32870 .deref_unchecked::<::fidl_next::wire::String<'_>>()
32871 };
32872
32873 if value.len() > 1024 {
32874 return Err(::fidl_next::DecodeError::VectorTooLong {
32875 size: value.len() as u64,
32876 limit: 1024,
32877 });
32878 }
32879
32880 Ok(())
32881 }
32882
32883 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
32884 }
32885 })
32886 }
32887 }
32888
32889 impl<'de> OfferDictionary<'de> {
32890 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32891 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
32892 }
32893
32894 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32895 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
32896 }
32897
32898 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32899 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
32900 }
32901
32902 pub fn take_source_name(
32903 &mut self,
32904 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32905 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
32906 }
32907
32908 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
32909 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
32910 }
32911
32912 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
32913 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
32914 }
32915
32916 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32917 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
32918 }
32919
32920 pub fn take_target_name(
32921 &mut self,
32922 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32923 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
32924 }
32925
32926 pub fn dependency_type(&self) -> ::core::option::Option<&crate::wire::DependencyType> {
32927 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
32928 }
32929
32930 pub fn take_dependency_type(
32931 &mut self,
32932 ) -> ::core::option::Option<crate::wire::DependencyType> {
32933 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
32934 }
32935
32936 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
32937 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
32938 }
32939
32940 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
32941 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
32942 }
32943
32944 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
32945 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
32946 }
32947
32948 pub fn take_source_dictionary(
32949 &mut self,
32950 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
32951 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
32952 }
32953 }
32954
32955 impl<'de> ::core::fmt::Debug for OfferDictionary<'de> {
32956 fn fmt(
32957 &self,
32958 f: &mut ::core::fmt::Formatter<'_>,
32959 ) -> ::core::result::Result<(), ::core::fmt::Error> {
32960 f.debug_struct("OfferDictionary")
32961 .field("source", &self.source())
32962 .field("source_name", &self.source_name())
32963 .field("target", &self.target())
32964 .field("target_name", &self.target_name())
32965 .field("dependency_type", &self.dependency_type())
32966 .field("availability", &self.availability())
32967 .field("source_dictionary", &self.source_dictionary())
32968 .finish()
32969 }
32970 }
32971
32972 impl<'de> ::fidl_next::IntoNatural for OfferDictionary<'de> {
32973 type Natural = crate::natural::OfferDictionary;
32974 }
32975
32976 #[repr(C)]
32978 pub struct OfferConfiguration<'de> {
32979 pub(crate) table: ::fidl_next::wire::Table<'de>,
32980 }
32981
32982 impl<'de> Drop for OfferConfiguration<'de> {
32983 fn drop(&mut self) {
32984 let _ = self
32985 .table
32986 .get(1)
32987 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32988
32989 let _ = self.table.get(2).map(|envelope| unsafe {
32990 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
32991 });
32992
32993 let _ = self
32994 .table
32995 .get(3)
32996 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
32997
32998 let _ = self.table.get(4).map(|envelope| unsafe {
32999 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33000 });
33001
33002 let _ = self
33003 .table
33004 .get(5)
33005 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Availability>() });
33006
33007 let _ = self.table.get(6).map(|envelope| unsafe {
33008 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33009 });
33010 }
33011 }
33012
33013 impl ::fidl_next::Constrained for OfferConfiguration<'_> {
33014 type Constraint = ();
33015
33016 fn validate(
33017 _: ::fidl_next::Slot<'_, Self>,
33018 _: Self::Constraint,
33019 ) -> Result<(), ::fidl_next::ValidationError> {
33020 Ok(())
33021 }
33022 }
33023
33024 unsafe impl ::fidl_next::Wire for OfferConfiguration<'static> {
33025 type Narrowed<'de> = OfferConfiguration<'de>;
33026
33027 #[inline]
33028 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33029 ::fidl_next::munge!(let Self { table } = out);
33030 ::fidl_next::wire::Table::zero_padding(table);
33031 }
33032 }
33033
33034 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for OfferConfiguration<'de>
33035 where
33036 ___D: ::fidl_next::Decoder<'de> + ?Sized,
33037 {
33038 fn decode(
33039 slot: ::fidl_next::Slot<'_, Self>,
33040 decoder: &mut ___D,
33041 _: (),
33042 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33043 ::fidl_next::munge!(let Self { table } = slot);
33044
33045 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33046 match ordinal {
33047 0 => unsafe { ::core::hint::unreachable_unchecked() },
33048
33049 1 => {
33050 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33051 slot.as_mut(),
33052 decoder,
33053 (),
33054 )?;
33055
33056 Ok(())
33057 }
33058
33059 2 => {
33060 ::fidl_next::wire::Envelope::decode_as::<
33061 ___D,
33062 ::fidl_next::wire::String<'de>,
33063 >(slot.as_mut(), decoder, 100)?;
33064
33065 let value = unsafe {
33066 slot.deref_unchecked()
33067 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33068 };
33069
33070 if value.len() > 100 {
33071 return Err(::fidl_next::DecodeError::VectorTooLong {
33072 size: value.len() as u64,
33073 limit: 100,
33074 });
33075 }
33076
33077 Ok(())
33078 }
33079
33080 3 => {
33081 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33082 slot.as_mut(),
33083 decoder,
33084 (),
33085 )?;
33086
33087 Ok(())
33088 }
33089
33090 4 => {
33091 ::fidl_next::wire::Envelope::decode_as::<
33092 ___D,
33093 ::fidl_next::wire::String<'de>,
33094 >(slot.as_mut(), decoder, 100)?;
33095
33096 let value = unsafe {
33097 slot.deref_unchecked()
33098 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33099 };
33100
33101 if value.len() > 100 {
33102 return Err(::fidl_next::DecodeError::VectorTooLong {
33103 size: value.len() as u64,
33104 limit: 100,
33105 });
33106 }
33107
33108 Ok(())
33109 }
33110
33111 5 => {
33112 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Availability>(
33113 slot.as_mut(),
33114 decoder,
33115 (),
33116 )?;
33117
33118 Ok(())
33119 }
33120
33121 6 => {
33122 ::fidl_next::wire::Envelope::decode_as::<
33123 ___D,
33124 ::fidl_next::wire::String<'de>,
33125 >(slot.as_mut(), decoder, 1024)?;
33126
33127 let value = unsafe {
33128 slot.deref_unchecked()
33129 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33130 };
33131
33132 if value.len() > 1024 {
33133 return Err(::fidl_next::DecodeError::VectorTooLong {
33134 size: value.len() as u64,
33135 limit: 1024,
33136 });
33137 }
33138
33139 Ok(())
33140 }
33141
33142 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33143 }
33144 })
33145 }
33146 }
33147
33148 impl<'de> OfferConfiguration<'de> {
33149 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33150 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33151 }
33152
33153 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33154 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
33155 }
33156
33157 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33158 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33159 }
33160
33161 pub fn take_source_name(
33162 &mut self,
33163 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33164 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
33165 }
33166
33167 pub fn target(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33168 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33169 }
33170
33171 pub fn take_target(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33172 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
33173 }
33174
33175 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33176 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
33177 }
33178
33179 pub fn take_target_name(
33180 &mut self,
33181 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33182 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
33183 }
33184
33185 pub fn availability(&self) -> ::core::option::Option<&crate::wire::Availability> {
33186 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
33187 }
33188
33189 pub fn take_availability(&mut self) -> ::core::option::Option<crate::wire::Availability> {
33190 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
33191 }
33192
33193 pub fn source_dictionary(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33194 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
33195 }
33196
33197 pub fn take_source_dictionary(
33198 &mut self,
33199 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33200 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
33201 }
33202 }
33203
33204 impl<'de> ::core::fmt::Debug for OfferConfiguration<'de> {
33205 fn fmt(
33206 &self,
33207 f: &mut ::core::fmt::Formatter<'_>,
33208 ) -> ::core::result::Result<(), ::core::fmt::Error> {
33209 f.debug_struct("OfferConfiguration")
33210 .field("source", &self.source())
33211 .field("source_name", &self.source_name())
33212 .field("target", &self.target())
33213 .field("target_name", &self.target_name())
33214 .field("availability", &self.availability())
33215 .field("source_dictionary", &self.source_dictionary())
33216 .finish()
33217 }
33218 }
33219
33220 impl<'de> ::fidl_next::IntoNatural for OfferConfiguration<'de> {
33221 type Natural = crate::natural::OfferConfiguration;
33222 }
33223
33224 #[repr(transparent)]
33226 pub struct Offer<'de> {
33227 pub(crate) raw: ::fidl_next::wire::Union,
33228 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
33229 }
33230
33231 impl<'de> Drop for Offer<'de> {
33232 fn drop(&mut self) {
33233 match self.raw.ordinal() {
33234 1 => {
33235 let _ = unsafe {
33236 self.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
33237 };
33238 }
33239
33240 2 => {
33241 let _ = unsafe {
33242 self.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
33243 };
33244 }
33245
33246 3 => {
33247 let _ = unsafe {
33248 self.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
33249 };
33250 }
33251
33252 4 => {
33253 let _ = unsafe {
33254 self.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
33255 };
33256 }
33257
33258 5 => {
33259 let _ =
33260 unsafe { self.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>() };
33261 }
33262
33263 6 => {
33264 let _ = unsafe {
33265 self.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
33266 };
33267 }
33268
33269 8 => {
33270 let _ = unsafe {
33271 self.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
33272 };
33273 }
33274
33275 9 => {
33276 let _ = unsafe {
33277 self.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
33278 };
33279 }
33280
33281 10 => {
33282 let _ = unsafe {
33283 self.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
33284 };
33285 }
33286
33287 _ => (),
33288 }
33289 }
33290 }
33291
33292 impl ::fidl_next::Constrained for Offer<'_> {
33293 type Constraint = ();
33294
33295 fn validate(
33296 _: ::fidl_next::Slot<'_, Self>,
33297 _: Self::Constraint,
33298 ) -> Result<(), ::fidl_next::ValidationError> {
33299 Ok(())
33300 }
33301 }
33302
33303 unsafe impl ::fidl_next::Wire for Offer<'static> {
33304 type Narrowed<'de> = Offer<'de>;
33305
33306 #[inline]
33307 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33308 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
33309 ::fidl_next::wire::Union::zero_padding(raw);
33310 }
33311 }
33312
33313 pub mod offer {
33314 pub enum Ref<'de> {
33315 Service(&'de crate::wire::OfferService<'de>),
33316
33317 Protocol(&'de crate::wire::OfferProtocol<'de>),
33318
33319 Directory(&'de crate::wire::OfferDirectory<'de>),
33320
33321 Storage(&'de crate::wire::OfferStorage<'de>),
33322
33323 Runner(&'de crate::wire::OfferRunner<'de>),
33324
33325 Resolver(&'de crate::wire::OfferResolver<'de>),
33326
33327 EventStream(&'de crate::wire::OfferEventStream<'de>),
33328
33329 Dictionary(&'de crate::wire::OfferDictionary<'de>),
33330
33331 Config(&'de crate::wire::OfferConfiguration<'de>),
33332
33333 UnknownOrdinal_(u64),
33334 }
33335
33336 pub enum Value<'de> {
33337 Service(crate::wire::OfferService<'de>),
33338
33339 Protocol(crate::wire::OfferProtocol<'de>),
33340
33341 Directory(crate::wire::OfferDirectory<'de>),
33342
33343 Storage(crate::wire::OfferStorage<'de>),
33344
33345 Runner(crate::wire::OfferRunner<'de>),
33346
33347 Resolver(crate::wire::OfferResolver<'de>),
33348
33349 EventStream(crate::wire::OfferEventStream<'de>),
33350
33351 Dictionary(crate::wire::OfferDictionary<'de>),
33352
33353 Config(crate::wire::OfferConfiguration<'de>),
33354
33355 UnknownOrdinal_(u64),
33356 }
33357 }
33358
33359 impl<'de> Offer<'de> {
33360 pub fn as_ref(&self) -> crate::wire::offer::Ref<'_> {
33361 match self.raw.ordinal() {
33362 1 => crate::wire::offer::Ref::Service(unsafe {
33363 self.raw.get().deref_unchecked::<crate::wire::OfferService<'_>>()
33364 }),
33365
33366 2 => crate::wire::offer::Ref::Protocol(unsafe {
33367 self.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'_>>()
33368 }),
33369
33370 3 => crate::wire::offer::Ref::Directory(unsafe {
33371 self.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'_>>()
33372 }),
33373
33374 4 => crate::wire::offer::Ref::Storage(unsafe {
33375 self.raw.get().deref_unchecked::<crate::wire::OfferStorage<'_>>()
33376 }),
33377
33378 5 => crate::wire::offer::Ref::Runner(unsafe {
33379 self.raw.get().deref_unchecked::<crate::wire::OfferRunner<'_>>()
33380 }),
33381
33382 6 => crate::wire::offer::Ref::Resolver(unsafe {
33383 self.raw.get().deref_unchecked::<crate::wire::OfferResolver<'_>>()
33384 }),
33385
33386 8 => crate::wire::offer::Ref::EventStream(unsafe {
33387 self.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'_>>()
33388 }),
33389
33390 9 => crate::wire::offer::Ref::Dictionary(unsafe {
33391 self.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'_>>()
33392 }),
33393
33394 10 => crate::wire::offer::Ref::Config(unsafe {
33395 self.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'_>>()
33396 }),
33397
33398 unknown => crate::wire::offer::Ref::UnknownOrdinal_(unknown),
33399 }
33400 }
33401
33402 pub fn into_inner(self) -> crate::wire::offer::Value<'de> {
33403 let this = ::core::mem::ManuallyDrop::new(self);
33404
33405 match this.raw.ordinal() {
33406 1 => crate::wire::offer::Value::Service(unsafe {
33407 this.raw.get().read_unchecked::<crate::wire::OfferService<'de>>()
33408 }),
33409
33410 2 => crate::wire::offer::Value::Protocol(unsafe {
33411 this.raw.get().read_unchecked::<crate::wire::OfferProtocol<'de>>()
33412 }),
33413
33414 3 => crate::wire::offer::Value::Directory(unsafe {
33415 this.raw.get().read_unchecked::<crate::wire::OfferDirectory<'de>>()
33416 }),
33417
33418 4 => crate::wire::offer::Value::Storage(unsafe {
33419 this.raw.get().read_unchecked::<crate::wire::OfferStorage<'de>>()
33420 }),
33421
33422 5 => crate::wire::offer::Value::Runner(unsafe {
33423 this.raw.get().read_unchecked::<crate::wire::OfferRunner<'de>>()
33424 }),
33425
33426 6 => crate::wire::offer::Value::Resolver(unsafe {
33427 this.raw.get().read_unchecked::<crate::wire::OfferResolver<'de>>()
33428 }),
33429
33430 8 => crate::wire::offer::Value::EventStream(unsafe {
33431 this.raw.get().read_unchecked::<crate::wire::OfferEventStream<'de>>()
33432 }),
33433
33434 9 => crate::wire::offer::Value::Dictionary(unsafe {
33435 this.raw.get().read_unchecked::<crate::wire::OfferDictionary<'de>>()
33436 }),
33437
33438 10 => crate::wire::offer::Value::Config(unsafe {
33439 this.raw.get().read_unchecked::<crate::wire::OfferConfiguration<'de>>()
33440 }),
33441
33442 unknown => crate::wire::offer::Value::UnknownOrdinal_(unknown),
33443 }
33444 }
33445 }
33446
33447 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Offer<'de>
33448 where
33449 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
33450 ___D: ::fidl_next::Decoder<'de>,
33451 {
33452 fn decode(
33453 mut slot: ::fidl_next::Slot<'_, Self>,
33454 decoder: &mut ___D,
33455 _: (),
33456 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33457 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
33458 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
33459 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferService<'de>>(
33460 raw,
33461 decoder,
33462 (),
33463 )?,
33464
33465 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferProtocol<'de>>(
33466 raw,
33467 decoder,
33468 (),
33469 )?,
33470
33471 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDirectory<'de>>(
33472 raw,
33473 decoder,
33474 (),
33475 )?,
33476
33477 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferStorage<'de>>(
33478 raw,
33479 decoder,
33480 (),
33481 )?,
33482
33483 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferRunner<'de>>(
33484 raw,
33485 decoder,
33486 (),
33487 )?,
33488
33489 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferResolver<'de>>(
33490 raw,
33491 decoder,
33492 (),
33493 )?,
33494
33495 8 => {
33496 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferEventStream<'de>>(
33497 raw,
33498 decoder,
33499 (),
33500 )?
33501 }
33502
33503 9 => {
33504 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDictionary<'de>>(
33505 raw,
33506 decoder,
33507 (),
33508 )?
33509 }
33510
33511 10 => ::fidl_next::wire::Union::decode_as::<
33512 ___D,
33513 crate::wire::OfferConfiguration<'de>,
33514 >(raw, decoder, ())?,
33515
33516 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
33517 }
33518
33519 Ok(())
33520 }
33521 }
33522
33523 impl<'de> ::core::fmt::Debug for Offer<'de> {
33524 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33525 match self.raw.ordinal() {
33526 1 => unsafe {
33527 self.raw.get().deref_unchecked::<crate::wire::OfferService<'_>>().fmt(f)
33528 },
33529 2 => unsafe {
33530 self.raw.get().deref_unchecked::<crate::wire::OfferProtocol<'_>>().fmt(f)
33531 },
33532 3 => unsafe {
33533 self.raw.get().deref_unchecked::<crate::wire::OfferDirectory<'_>>().fmt(f)
33534 },
33535 4 => unsafe {
33536 self.raw.get().deref_unchecked::<crate::wire::OfferStorage<'_>>().fmt(f)
33537 },
33538 5 => unsafe {
33539 self.raw.get().deref_unchecked::<crate::wire::OfferRunner<'_>>().fmt(f)
33540 },
33541 6 => unsafe {
33542 self.raw.get().deref_unchecked::<crate::wire::OfferResolver<'_>>().fmt(f)
33543 },
33544 8 => unsafe {
33545 self.raw.get().deref_unchecked::<crate::wire::OfferEventStream<'_>>().fmt(f)
33546 },
33547 9 => unsafe {
33548 self.raw.get().deref_unchecked::<crate::wire::OfferDictionary<'_>>().fmt(f)
33549 },
33550 10 => unsafe {
33551 self.raw.get().deref_unchecked::<crate::wire::OfferConfiguration<'_>>().fmt(f)
33552 },
33553 _ => unsafe { ::core::hint::unreachable_unchecked() },
33554 }
33555 }
33556 }
33557
33558 impl<'de> ::fidl_next::IntoNatural for Offer<'de> {
33559 type Natural = crate::natural::Offer;
33560 }
33561
33562 #[repr(C)]
33564 pub struct RunnerRegistration<'de> {
33565 pub(crate) table: ::fidl_next::wire::Table<'de>,
33566 }
33567
33568 impl<'de> Drop for RunnerRegistration<'de> {
33569 fn drop(&mut self) {
33570 let _ = self.table.get(1).map(|envelope| unsafe {
33571 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33572 });
33573
33574 let _ = self
33575 .table
33576 .get(2)
33577 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
33578
33579 let _ = self.table.get(3).map(|envelope| unsafe {
33580 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33581 });
33582 }
33583 }
33584
33585 impl ::fidl_next::Constrained for RunnerRegistration<'_> {
33586 type Constraint = ();
33587
33588 fn validate(
33589 _: ::fidl_next::Slot<'_, Self>,
33590 _: Self::Constraint,
33591 ) -> Result<(), ::fidl_next::ValidationError> {
33592 Ok(())
33593 }
33594 }
33595
33596 unsafe impl ::fidl_next::Wire for RunnerRegistration<'static> {
33597 type Narrowed<'de> = RunnerRegistration<'de>;
33598
33599 #[inline]
33600 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33601 ::fidl_next::munge!(let Self { table } = out);
33602 ::fidl_next::wire::Table::zero_padding(table);
33603 }
33604 }
33605
33606 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for RunnerRegistration<'de>
33607 where
33608 ___D: ::fidl_next::Decoder<'de> + ?Sized,
33609 {
33610 fn decode(
33611 slot: ::fidl_next::Slot<'_, Self>,
33612 decoder: &mut ___D,
33613 _: (),
33614 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33615 ::fidl_next::munge!(let Self { table } = slot);
33616
33617 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33618 match ordinal {
33619 0 => unsafe { ::core::hint::unreachable_unchecked() },
33620
33621 1 => {
33622 ::fidl_next::wire::Envelope::decode_as::<
33623 ___D,
33624 ::fidl_next::wire::String<'de>,
33625 >(slot.as_mut(), decoder, 100)?;
33626
33627 let value = unsafe {
33628 slot.deref_unchecked()
33629 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33630 };
33631
33632 if value.len() > 100 {
33633 return Err(::fidl_next::DecodeError::VectorTooLong {
33634 size: value.len() as u64,
33635 limit: 100,
33636 });
33637 }
33638
33639 Ok(())
33640 }
33641
33642 2 => {
33643 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33644 slot.as_mut(),
33645 decoder,
33646 (),
33647 )?;
33648
33649 Ok(())
33650 }
33651
33652 3 => {
33653 ::fidl_next::wire::Envelope::decode_as::<
33654 ___D,
33655 ::fidl_next::wire::String<'de>,
33656 >(slot.as_mut(), decoder, 100)?;
33657
33658 let value = unsafe {
33659 slot.deref_unchecked()
33660 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33661 };
33662
33663 if value.len() > 100 {
33664 return Err(::fidl_next::DecodeError::VectorTooLong {
33665 size: value.len() as u64,
33666 limit: 100,
33667 });
33668 }
33669
33670 Ok(())
33671 }
33672
33673 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33674 }
33675 })
33676 }
33677 }
33678
33679 impl<'de> RunnerRegistration<'de> {
33680 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33681 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33682 }
33683
33684 pub fn take_source_name(
33685 &mut self,
33686 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33687 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
33688 }
33689
33690 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33691 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33692 }
33693
33694 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33695 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
33696 }
33697
33698 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33699 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33700 }
33701
33702 pub fn take_target_name(
33703 &mut self,
33704 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33705 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
33706 }
33707 }
33708
33709 impl<'de> ::core::fmt::Debug for RunnerRegistration<'de> {
33710 fn fmt(
33711 &self,
33712 f: &mut ::core::fmt::Formatter<'_>,
33713 ) -> ::core::result::Result<(), ::core::fmt::Error> {
33714 f.debug_struct("RunnerRegistration")
33715 .field("source_name", &self.source_name())
33716 .field("source", &self.source())
33717 .field("target_name", &self.target_name())
33718 .finish()
33719 }
33720 }
33721
33722 impl<'de> ::fidl_next::IntoNatural for RunnerRegistration<'de> {
33723 type Natural = crate::natural::RunnerRegistration;
33724 }
33725
33726 #[repr(C)]
33728 pub struct ResolverRegistration<'de> {
33729 pub(crate) table: ::fidl_next::wire::Table<'de>,
33730 }
33731
33732 impl<'de> Drop for ResolverRegistration<'de> {
33733 fn drop(&mut self) {
33734 let _ = self.table.get(1).map(|envelope| unsafe {
33735 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33736 });
33737
33738 let _ = self
33739 .table
33740 .get(2)
33741 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
33742
33743 let _ = self.table.get(3).map(|envelope| unsafe {
33744 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33745 });
33746 }
33747 }
33748
33749 impl ::fidl_next::Constrained for ResolverRegistration<'_> {
33750 type Constraint = ();
33751
33752 fn validate(
33753 _: ::fidl_next::Slot<'_, Self>,
33754 _: Self::Constraint,
33755 ) -> Result<(), ::fidl_next::ValidationError> {
33756 Ok(())
33757 }
33758 }
33759
33760 unsafe impl ::fidl_next::Wire for ResolverRegistration<'static> {
33761 type Narrowed<'de> = ResolverRegistration<'de>;
33762
33763 #[inline]
33764 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33765 ::fidl_next::munge!(let Self { table } = out);
33766 ::fidl_next::wire::Table::zero_padding(table);
33767 }
33768 }
33769
33770 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ResolverRegistration<'de>
33771 where
33772 ___D: ::fidl_next::Decoder<'de> + ?Sized,
33773 {
33774 fn decode(
33775 slot: ::fidl_next::Slot<'_, Self>,
33776 decoder: &mut ___D,
33777 _: (),
33778 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33779 ::fidl_next::munge!(let Self { table } = slot);
33780
33781 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33782 match ordinal {
33783 0 => unsafe { ::core::hint::unreachable_unchecked() },
33784
33785 1 => {
33786 ::fidl_next::wire::Envelope::decode_as::<
33787 ___D,
33788 ::fidl_next::wire::String<'de>,
33789 >(slot.as_mut(), decoder, 100)?;
33790
33791 let value = unsafe {
33792 slot.deref_unchecked()
33793 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33794 };
33795
33796 if value.len() > 100 {
33797 return Err(::fidl_next::DecodeError::VectorTooLong {
33798 size: value.len() as u64,
33799 limit: 100,
33800 });
33801 }
33802
33803 Ok(())
33804 }
33805
33806 2 => {
33807 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33808 slot.as_mut(),
33809 decoder,
33810 (),
33811 )?;
33812
33813 Ok(())
33814 }
33815
33816 3 => {
33817 ::fidl_next::wire::Envelope::decode_as::<
33818 ___D,
33819 ::fidl_next::wire::String<'de>,
33820 >(slot.as_mut(), decoder, 100)?;
33821
33822 let value = unsafe {
33823 slot.deref_unchecked()
33824 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33825 };
33826
33827 if value.len() > 100 {
33828 return Err(::fidl_next::DecodeError::VectorTooLong {
33829 size: value.len() as u64,
33830 limit: 100,
33831 });
33832 }
33833
33834 Ok(())
33835 }
33836
33837 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33838 }
33839 })
33840 }
33841 }
33842
33843 impl<'de> ResolverRegistration<'de> {
33844 pub fn resolver(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33845 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
33846 }
33847
33848 pub fn take_resolver(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33849 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
33850 }
33851
33852 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
33853 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
33854 }
33855
33856 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
33857 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
33858 }
33859
33860 pub fn scheme(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
33861 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
33862 }
33863
33864 pub fn take_scheme(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
33865 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
33866 }
33867 }
33868
33869 impl<'de> ::core::fmt::Debug for ResolverRegistration<'de> {
33870 fn fmt(
33871 &self,
33872 f: &mut ::core::fmt::Formatter<'_>,
33873 ) -> ::core::result::Result<(), ::core::fmt::Error> {
33874 f.debug_struct("ResolverRegistration")
33875 .field("resolver", &self.resolver())
33876 .field("source", &self.source())
33877 .field("scheme", &self.scheme())
33878 .finish()
33879 }
33880 }
33881
33882 impl<'de> ::fidl_next::IntoNatural for ResolverRegistration<'de> {
33883 type Natural = crate::natural::ResolverRegistration;
33884 }
33885
33886 #[repr(C)]
33888 pub struct DebugProtocolRegistration<'de> {
33889 pub(crate) table: ::fidl_next::wire::Table<'de>,
33890 }
33891
33892 impl<'de> Drop for DebugProtocolRegistration<'de> {
33893 fn drop(&mut self) {
33894 let _ = self
33895 .table
33896 .get(1)
33897 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Ref<'de>>() });
33898
33899 let _ = self.table.get(2).map(|envelope| unsafe {
33900 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33901 });
33902
33903 let _ = self.table.get(3).map(|envelope| unsafe {
33904 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
33905 });
33906 }
33907 }
33908
33909 impl ::fidl_next::Constrained for DebugProtocolRegistration<'_> {
33910 type Constraint = ();
33911
33912 fn validate(
33913 _: ::fidl_next::Slot<'_, Self>,
33914 _: Self::Constraint,
33915 ) -> Result<(), ::fidl_next::ValidationError> {
33916 Ok(())
33917 }
33918 }
33919
33920 unsafe impl ::fidl_next::Wire for DebugProtocolRegistration<'static> {
33921 type Narrowed<'de> = DebugProtocolRegistration<'de>;
33922
33923 #[inline]
33924 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
33925 ::fidl_next::munge!(let Self { table } = out);
33926 ::fidl_next::wire::Table::zero_padding(table);
33927 }
33928 }
33929
33930 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugProtocolRegistration<'de>
33931 where
33932 ___D: ::fidl_next::Decoder<'de> + ?Sized,
33933 {
33934 fn decode(
33935 slot: ::fidl_next::Slot<'_, Self>,
33936 decoder: &mut ___D,
33937 _: (),
33938 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
33939 ::fidl_next::munge!(let Self { table } = slot);
33940
33941 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
33942 match ordinal {
33943 0 => unsafe { ::core::hint::unreachable_unchecked() },
33944
33945 1 => {
33946 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Ref<'de>>(
33947 slot.as_mut(),
33948 decoder,
33949 (),
33950 )?;
33951
33952 Ok(())
33953 }
33954
33955 2 => {
33956 ::fidl_next::wire::Envelope::decode_as::<
33957 ___D,
33958 ::fidl_next::wire::String<'de>,
33959 >(slot.as_mut(), decoder, 100)?;
33960
33961 let value = unsafe {
33962 slot.deref_unchecked()
33963 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33964 };
33965
33966 if value.len() > 100 {
33967 return Err(::fidl_next::DecodeError::VectorTooLong {
33968 size: value.len() as u64,
33969 limit: 100,
33970 });
33971 }
33972
33973 Ok(())
33974 }
33975
33976 3 => {
33977 ::fidl_next::wire::Envelope::decode_as::<
33978 ___D,
33979 ::fidl_next::wire::String<'de>,
33980 >(slot.as_mut(), decoder, 100)?;
33981
33982 let value = unsafe {
33983 slot.deref_unchecked()
33984 .deref_unchecked::<::fidl_next::wire::String<'_>>()
33985 };
33986
33987 if value.len() > 100 {
33988 return Err(::fidl_next::DecodeError::VectorTooLong {
33989 size: value.len() as u64,
33990 limit: 100,
33991 });
33992 }
33993
33994 Ok(())
33995 }
33996
33997 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
33998 }
33999 })
34000 }
34001 }
34002
34003 impl<'de> DebugProtocolRegistration<'de> {
34004 pub fn source(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
34005 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
34006 }
34007
34008 pub fn take_source(&mut self) -> ::core::option::Option<crate::wire::Ref<'de>> {
34009 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
34010 }
34011
34012 pub fn source_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
34013 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
34014 }
34015
34016 pub fn take_source_name(
34017 &mut self,
34018 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
34019 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
34020 }
34021
34022 pub fn target_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
34023 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
34024 }
34025
34026 pub fn take_target_name(
34027 &mut self,
34028 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
34029 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
34030 }
34031 }
34032
34033 impl<'de> ::core::fmt::Debug for DebugProtocolRegistration<'de> {
34034 fn fmt(
34035 &self,
34036 f: &mut ::core::fmt::Formatter<'_>,
34037 ) -> ::core::result::Result<(), ::core::fmt::Error> {
34038 f.debug_struct("DebugProtocolRegistration")
34039 .field("source", &self.source())
34040 .field("source_name", &self.source_name())
34041 .field("target_name", &self.target_name())
34042 .finish()
34043 }
34044 }
34045
34046 impl<'de> ::fidl_next::IntoNatural for DebugProtocolRegistration<'de> {
34047 type Natural = crate::natural::DebugProtocolRegistration;
34048 }
34049
34050 #[repr(transparent)]
34052 pub struct DebugRegistration<'de> {
34053 pub(crate) raw: ::fidl_next::wire::Union,
34054 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34055 }
34056
34057 impl<'de> Drop for DebugRegistration<'de> {
34058 fn drop(&mut self) {
34059 match self.raw.ordinal() {
34060 1 => {
34061 let _ = unsafe {
34062 self.raw
34063 .get()
34064 .read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
34065 };
34066 }
34067
34068 _ => (),
34069 }
34070 }
34071 }
34072
34073 impl ::fidl_next::Constrained for DebugRegistration<'_> {
34074 type Constraint = ();
34075
34076 fn validate(
34077 _: ::fidl_next::Slot<'_, Self>,
34078 _: Self::Constraint,
34079 ) -> Result<(), ::fidl_next::ValidationError> {
34080 Ok(())
34081 }
34082 }
34083
34084 unsafe impl ::fidl_next::Wire for DebugRegistration<'static> {
34085 type Narrowed<'de> = DebugRegistration<'de>;
34086
34087 #[inline]
34088 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34089 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34090 ::fidl_next::wire::Union::zero_padding(raw);
34091 }
34092 }
34093
34094 pub mod debug_registration {
34095 pub enum Ref<'de> {
34096 Protocol(&'de crate::wire::DebugProtocolRegistration<'de>),
34097
34098 UnknownOrdinal_(u64),
34099 }
34100
34101 pub enum Value<'de> {
34102 Protocol(crate::wire::DebugProtocolRegistration<'de>),
34103
34104 UnknownOrdinal_(u64),
34105 }
34106 }
34107
34108 impl<'de> DebugRegistration<'de> {
34109 pub fn as_ref(&self) -> crate::wire::debug_registration::Ref<'_> {
34110 match self.raw.ordinal() {
34111 1 => crate::wire::debug_registration::Ref::Protocol(unsafe {
34112 self.raw.get().deref_unchecked::<crate::wire::DebugProtocolRegistration<'_>>()
34113 }),
34114
34115 unknown => crate::wire::debug_registration::Ref::UnknownOrdinal_(unknown),
34116 }
34117 }
34118
34119 pub fn into_inner(self) -> crate::wire::debug_registration::Value<'de> {
34120 let this = ::core::mem::ManuallyDrop::new(self);
34121
34122 match this.raw.ordinal() {
34123 1 => crate::wire::debug_registration::Value::Protocol(unsafe {
34124 this.raw.get().read_unchecked::<crate::wire::DebugProtocolRegistration<'de>>()
34125 }),
34126
34127 unknown => crate::wire::debug_registration::Value::UnknownOrdinal_(unknown),
34128 }
34129 }
34130 }
34131
34132 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugRegistration<'de>
34133 where
34134 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34135 ___D: ::fidl_next::Decoder<'de>,
34136 {
34137 fn decode(
34138 mut slot: ::fidl_next::Slot<'_, Self>,
34139 decoder: &mut ___D,
34140 _: (),
34141 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34142 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34143 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
34144 1 => ::fidl_next::wire::Union::decode_as::<
34145 ___D,
34146 crate::wire::DebugProtocolRegistration<'de>,
34147 >(raw, decoder, ())?,
34148
34149 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
34150 }
34151
34152 Ok(())
34153 }
34154 }
34155
34156 impl<'de> ::core::fmt::Debug for DebugRegistration<'de> {
34157 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34158 match self.raw.ordinal() {
34159 1 => unsafe {
34160 self.raw
34161 .get()
34162 .deref_unchecked::<crate::wire::DebugProtocolRegistration<'_>>()
34163 .fmt(f)
34164 },
34165 _ => unsafe { ::core::hint::unreachable_unchecked() },
34166 }
34167 }
34168 }
34169
34170 impl<'de> ::fidl_next::IntoNatural for DebugRegistration<'de> {
34171 type Natural = crate::natural::DebugRegistration;
34172 }
34173
34174 #[repr(C)]
34176 pub struct Environment<'de> {
34177 pub(crate) table: ::fidl_next::wire::Table<'de>,
34178 }
34179
34180 impl<'de> Drop for Environment<'de> {
34181 fn drop(&mut self) {
34182 let _ = self.table.get(1).map(|envelope| unsafe {
34183 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
34184 });
34185
34186 let _ = self.table.get(2).map(|envelope| unsafe {
34187 envelope.read_unchecked::<crate::wire::EnvironmentExtends>()
34188 });
34189
34190 let _ = self.table.get(3)
34191 .map(|envelope| unsafe {
34192 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>>()
34193 });
34194
34195 let _ = self.table.get(4)
34196 .map(|envelope| unsafe {
34197 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>>()
34198 });
34199
34200 let _ = self.table.get(5)
34201 .map(|envelope| unsafe {
34202 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>>()
34203 });
34204
34205 let _ = self
34206 .table
34207 .get(6)
34208 .map(|envelope| unsafe { envelope.read_unchecked::<::fidl_next::wire::Uint32>() });
34209 }
34210 }
34211
34212 impl ::fidl_next::Constrained for Environment<'_> {
34213 type Constraint = ();
34214
34215 fn validate(
34216 _: ::fidl_next::Slot<'_, Self>,
34217 _: Self::Constraint,
34218 ) -> Result<(), ::fidl_next::ValidationError> {
34219 Ok(())
34220 }
34221 }
34222
34223 unsafe impl ::fidl_next::Wire for Environment<'static> {
34224 type Narrowed<'de> = Environment<'de>;
34225
34226 #[inline]
34227 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34228 ::fidl_next::munge!(let Self { table } = out);
34229 ::fidl_next::wire::Table::zero_padding(table);
34230 }
34231 }
34232
34233 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Environment<'de>
34234 where
34235 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34236 {
34237 fn decode(
34238 slot: ::fidl_next::Slot<'_, Self>,
34239 decoder: &mut ___D,
34240 _: (),
34241 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34242 ::fidl_next::munge!(let Self { table } = slot);
34243
34244 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34245 match ordinal {
34246 0 => unsafe { ::core::hint::unreachable_unchecked() },
34247
34248 1 => {
34249 ::fidl_next::wire::Envelope::decode_as::<
34250 ___D,
34251 ::fidl_next::wire::String<'de>,
34252 >(slot.as_mut(), decoder, 100)?;
34253
34254 let value = unsafe {
34255 slot.deref_unchecked()
34256 .deref_unchecked::<::fidl_next::wire::String<'_>>()
34257 };
34258
34259 if value.len() > 100 {
34260 return Err(::fidl_next::DecodeError::VectorTooLong {
34261 size: value.len() as u64,
34262 limit: 100,
34263 });
34264 }
34265
34266 Ok(())
34267 }
34268
34269 2 => {
34270 ::fidl_next::wire::Envelope::decode_as::<
34271 ___D,
34272 crate::wire::EnvironmentExtends,
34273 >(slot.as_mut(), decoder, ())?;
34274
34275 Ok(())
34276 }
34277
34278 3 => {
34279 ::fidl_next::wire::Envelope::decode_as::<
34280 ___D,
34281 ::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>,
34282 >(slot.as_mut(), decoder, (4294967295, ()))?;
34283
34284 Ok(())
34285 }
34286
34287 4 => {
34288 ::fidl_next::wire::Envelope::decode_as::<
34289 ___D,
34290 ::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>,
34291 >(slot.as_mut(), decoder, (4294967295, ()))?;
34292
34293 Ok(())
34294 }
34295
34296 5 => {
34297 ::fidl_next::wire::Envelope::decode_as::<
34298 ___D,
34299 ::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>,
34300 >(slot.as_mut(), decoder, (4294967295, ()))?;
34301
34302 Ok(())
34303 }
34304
34305 6 => {
34306 ::fidl_next::wire::Envelope::decode_as::<___D, ::fidl_next::wire::Uint32>(
34307 slot.as_mut(),
34308 decoder,
34309 (),
34310 )?;
34311
34312 Ok(())
34313 }
34314
34315 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34316 }
34317 })
34318 }
34319 }
34320
34321 impl<'de> Environment<'de> {
34322 pub fn name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
34323 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
34324 }
34325
34326 pub fn take_name(&mut self) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
34327 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
34328 }
34329
34330 pub fn extends(&self) -> ::core::option::Option<&crate::wire::EnvironmentExtends> {
34331 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
34332 }
34333
34334 pub fn take_extends(&mut self) -> ::core::option::Option<crate::wire::EnvironmentExtends> {
34335 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
34336 }
34337
34338 pub fn runners(
34339 &self,
34340 ) -> ::core::option::Option<
34341 &::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>,
34342 > {
34343 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
34344 }
34345
34346 pub fn take_runners(
34347 &mut self,
34348 ) -> ::core::option::Option<
34349 ::fidl_next::wire::Vector<'de, crate::wire::RunnerRegistration<'de>>,
34350 > {
34351 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
34352 }
34353
34354 pub fn resolvers(
34355 &self,
34356 ) -> ::core::option::Option<
34357 &::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>,
34358 > {
34359 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
34360 }
34361
34362 pub fn take_resolvers(
34363 &mut self,
34364 ) -> ::core::option::Option<
34365 ::fidl_next::wire::Vector<'de, crate::wire::ResolverRegistration<'de>>,
34366 > {
34367 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
34368 }
34369
34370 pub fn debug_capabilities(
34371 &self,
34372 ) -> ::core::option::Option<
34373 &::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>,
34374 > {
34375 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
34376 }
34377
34378 pub fn take_debug_capabilities(
34379 &mut self,
34380 ) -> ::core::option::Option<
34381 ::fidl_next::wire::Vector<'de, crate::wire::DebugRegistration<'de>>,
34382 > {
34383 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
34384 }
34385
34386 pub fn stop_timeout_ms(&self) -> ::core::option::Option<&::fidl_next::wire::Uint32> {
34387 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
34388 }
34389
34390 pub fn take_stop_timeout_ms(
34391 &mut self,
34392 ) -> ::core::option::Option<::fidl_next::wire::Uint32> {
34393 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
34394 }
34395 }
34396
34397 impl<'de> ::core::fmt::Debug for Environment<'de> {
34398 fn fmt(
34399 &self,
34400 f: &mut ::core::fmt::Formatter<'_>,
34401 ) -> ::core::result::Result<(), ::core::fmt::Error> {
34402 f.debug_struct("Environment")
34403 .field("name", &self.name())
34404 .field("extends", &self.extends())
34405 .field("runners", &self.runners())
34406 .field("resolvers", &self.resolvers())
34407 .field("debug_capabilities", &self.debug_capabilities())
34408 .field("stop_timeout_ms", &self.stop_timeout_ms())
34409 .finish()
34410 }
34411 }
34412
34413 impl<'de> ::fidl_next::IntoNatural for Environment<'de> {
34414 type Natural = crate::natural::Environment;
34415 }
34416
34417 #[repr(C)]
34419 pub struct ConfigSourceCapabilities<'de> {
34420 pub(crate) table: ::fidl_next::wire::Table<'de>,
34421 }
34422
34423 impl<'de> Drop for ConfigSourceCapabilities<'de> {
34424 fn drop(&mut self) {}
34425 }
34426
34427 impl ::fidl_next::Constrained for ConfigSourceCapabilities<'_> {
34428 type Constraint = ();
34429
34430 fn validate(
34431 _: ::fidl_next::Slot<'_, Self>,
34432 _: Self::Constraint,
34433 ) -> Result<(), ::fidl_next::ValidationError> {
34434 Ok(())
34435 }
34436 }
34437
34438 unsafe impl ::fidl_next::Wire for ConfigSourceCapabilities<'static> {
34439 type Narrowed<'de> = ConfigSourceCapabilities<'de>;
34440
34441 #[inline]
34442 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34443 ::fidl_next::munge!(let Self { table } = out);
34444 ::fidl_next::wire::Table::zero_padding(table);
34445 }
34446 }
34447
34448 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSourceCapabilities<'de>
34449 where
34450 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34451 {
34452 fn decode(
34453 slot: ::fidl_next::Slot<'_, Self>,
34454 decoder: &mut ___D,
34455 _: (),
34456 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34457 ::fidl_next::munge!(let Self { table } = slot);
34458
34459 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34460 match ordinal {
34461 0 => unsafe { ::core::hint::unreachable_unchecked() },
34462
34463 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34464 }
34465 })
34466 }
34467 }
34468
34469 impl<'de> ConfigSourceCapabilities<'de> {}
34470
34471 impl<'de> ::core::fmt::Debug for ConfigSourceCapabilities<'de> {
34472 fn fmt(
34473 &self,
34474 f: &mut ::core::fmt::Formatter<'_>,
34475 ) -> ::core::result::Result<(), ::core::fmt::Error> {
34476 f.debug_struct("ConfigSourceCapabilities").finish()
34477 }
34478 }
34479
34480 impl<'de> ::fidl_next::IntoNatural for ConfigSourceCapabilities<'de> {
34481 type Natural = crate::natural::ConfigSourceCapabilities;
34482 }
34483
34484 #[repr(transparent)]
34486 pub struct ConfigValueSource<'de> {
34487 pub(crate) raw: ::fidl_next::wire::Union,
34488 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
34489 }
34490
34491 impl<'de> Drop for ConfigValueSource<'de> {
34492 fn drop(&mut self) {
34493 match self.raw.ordinal() {
34494 1 => {
34495 let _ = unsafe {
34496 self.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
34497 };
34498 }
34499
34500 2 => {
34501 let _ = unsafe {
34502 self.raw
34503 .get()
34504 .read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
34505 };
34506 }
34507
34508 _ => (),
34509 }
34510 }
34511 }
34512
34513 impl ::fidl_next::Constrained for ConfigValueSource<'_> {
34514 type Constraint = ();
34515
34516 fn validate(
34517 _: ::fidl_next::Slot<'_, Self>,
34518 _: Self::Constraint,
34519 ) -> Result<(), ::fidl_next::ValidationError> {
34520 Ok(())
34521 }
34522 }
34523
34524 unsafe impl ::fidl_next::Wire for ConfigValueSource<'static> {
34525 type Narrowed<'de> = ConfigValueSource<'de>;
34526
34527 #[inline]
34528 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34529 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
34530 ::fidl_next::wire::Union::zero_padding(raw);
34531 }
34532 }
34533
34534 pub mod config_value_source {
34535 pub enum Ref<'de> {
34536 PackagePath(&'de ::fidl_next::wire::String<'de>),
34537
34538 Capabilities(&'de crate::wire::ConfigSourceCapabilities<'de>),
34539
34540 UnknownOrdinal_(u64),
34541 }
34542
34543 pub enum Value<'de> {
34544 PackagePath(::fidl_next::wire::String<'de>),
34545
34546 Capabilities(crate::wire::ConfigSourceCapabilities<'de>),
34547
34548 UnknownOrdinal_(u64),
34549 }
34550 }
34551
34552 impl<'de> ConfigValueSource<'de> {
34553 pub fn as_ref(&self) -> crate::wire::config_value_source::Ref<'_> {
34554 match self.raw.ordinal() {
34555 1 => crate::wire::config_value_source::Ref::PackagePath(unsafe {
34556 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>()
34557 }),
34558
34559 2 => crate::wire::config_value_source::Ref::Capabilities(unsafe {
34560 self.raw.get().deref_unchecked::<crate::wire::ConfigSourceCapabilities<'_>>()
34561 }),
34562
34563 unknown => crate::wire::config_value_source::Ref::UnknownOrdinal_(unknown),
34564 }
34565 }
34566
34567 pub fn into_inner(self) -> crate::wire::config_value_source::Value<'de> {
34568 let this = ::core::mem::ManuallyDrop::new(self);
34569
34570 match this.raw.ordinal() {
34571 1 => crate::wire::config_value_source::Value::PackagePath(unsafe {
34572 this.raw.get().read_unchecked::<::fidl_next::wire::String<'de>>()
34573 }),
34574
34575 2 => crate::wire::config_value_source::Value::Capabilities(unsafe {
34576 this.raw.get().read_unchecked::<crate::wire::ConfigSourceCapabilities<'de>>()
34577 }),
34578
34579 unknown => crate::wire::config_value_source::Value::UnknownOrdinal_(unknown),
34580 }
34581 }
34582 }
34583
34584 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValueSource<'de>
34585 where
34586 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
34587 ___D: ::fidl_next::Decoder<'de>,
34588 {
34589 fn decode(
34590 mut slot: ::fidl_next::Slot<'_, Self>,
34591 decoder: &mut ___D,
34592 _: (),
34593 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34594 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
34595 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
34596 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
34597 raw, decoder, 4294967295,
34598 )?,
34599
34600 2 => ::fidl_next::wire::Union::decode_as::<
34601 ___D,
34602 crate::wire::ConfigSourceCapabilities<'de>,
34603 >(raw, decoder, ())?,
34604
34605 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
34606 }
34607
34608 Ok(())
34609 }
34610 }
34611
34612 impl<'de> ::core::fmt::Debug for ConfigValueSource<'de> {
34613 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
34614 match self.raw.ordinal() {
34615 1 => unsafe {
34616 self.raw.get().deref_unchecked::<::fidl_next::wire::String<'_>>().fmt(f)
34617 },
34618 2 => unsafe {
34619 self.raw
34620 .get()
34621 .deref_unchecked::<crate::wire::ConfigSourceCapabilities<'_>>()
34622 .fmt(f)
34623 },
34624 _ => unsafe { ::core::hint::unreachable_unchecked() },
34625 }
34626 }
34627 }
34628
34629 impl<'de> ::fidl_next::IntoNatural for ConfigValueSource<'de> {
34630 type Natural = crate::natural::ConfigValueSource;
34631 }
34632
34633 #[repr(C)]
34635 pub struct ConfigSchema<'de> {
34636 pub(crate) table: ::fidl_next::wire::Table<'de>,
34637 }
34638
34639 impl<'de> Drop for ConfigSchema<'de> {
34640 fn drop(&mut self) {
34641 let _ = self.table.get(1)
34642 .map(|envelope| unsafe {
34643 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>()
34644 });
34645
34646 let _ = self.table.get(2).map(|envelope| unsafe {
34647 envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>()
34648 });
34649
34650 let _ = self.table.get(3).map(|envelope| unsafe {
34651 envelope.read_unchecked::<crate::wire::ConfigValueSource<'de>>()
34652 });
34653 }
34654 }
34655
34656 impl ::fidl_next::Constrained for ConfigSchema<'_> {
34657 type Constraint = ();
34658
34659 fn validate(
34660 _: ::fidl_next::Slot<'_, Self>,
34661 _: Self::Constraint,
34662 ) -> Result<(), ::fidl_next::ValidationError> {
34663 Ok(())
34664 }
34665 }
34666
34667 unsafe impl ::fidl_next::Wire for ConfigSchema<'static> {
34668 type Narrowed<'de> = ConfigSchema<'de>;
34669
34670 #[inline]
34671 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34672 ::fidl_next::munge!(let Self { table } = out);
34673 ::fidl_next::wire::Table::zero_padding(table);
34674 }
34675 }
34676
34677 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSchema<'de>
34678 where
34679 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34680 {
34681 fn decode(
34682 slot: ::fidl_next::Slot<'_, Self>,
34683 decoder: &mut ___D,
34684 _: (),
34685 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34686 ::fidl_next::munge!(let Self { table } = slot);
34687
34688 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34689 match ordinal {
34690 0 => unsafe { ::core::hint::unreachable_unchecked() },
34691
34692 1 => {
34693 ::fidl_next::wire::Envelope::decode_as::<
34694 ___D,
34695 ::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>,
34696 >(slot.as_mut(), decoder, (4294967295, ()))?;
34697
34698 Ok(())
34699 }
34700
34701 2 => {
34702 ::fidl_next::wire::Envelope::decode_as::<
34703 ___D,
34704 crate::wire::ConfigChecksum<'de>,
34705 >(slot.as_mut(), decoder, ())?;
34706
34707 Ok(())
34708 }
34709
34710 3 => {
34711 ::fidl_next::wire::Envelope::decode_as::<
34712 ___D,
34713 crate::wire::ConfigValueSource<'de>,
34714 >(slot.as_mut(), decoder, ())?;
34715
34716 Ok(())
34717 }
34718
34719 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34720 }
34721 })
34722 }
34723 }
34724
34725 impl<'de> ConfigSchema<'de> {
34726 pub fn fields(
34727 &self,
34728 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>
34729 {
34730 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
34731 }
34732
34733 pub fn take_fields(
34734 &mut self,
34735 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::ConfigField<'de>>>
34736 {
34737 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
34738 }
34739
34740 pub fn checksum(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
34741 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
34742 }
34743
34744 pub fn take_checksum(
34745 &mut self,
34746 ) -> ::core::option::Option<crate::wire::ConfigChecksum<'de>> {
34747 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
34748 }
34749
34750 pub fn value_source(&self) -> ::core::option::Option<&crate::wire::ConfigValueSource<'de>> {
34751 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
34752 }
34753
34754 pub fn take_value_source(
34755 &mut self,
34756 ) -> ::core::option::Option<crate::wire::ConfigValueSource<'de>> {
34757 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
34758 }
34759 }
34760
34761 impl<'de> ::core::fmt::Debug for ConfigSchema<'de> {
34762 fn fmt(
34763 &self,
34764 f: &mut ::core::fmt::Formatter<'_>,
34765 ) -> ::core::result::Result<(), ::core::fmt::Error> {
34766 f.debug_struct("ConfigSchema")
34767 .field("fields", &self.fields())
34768 .field("checksum", &self.checksum())
34769 .field("value_source", &self.value_source())
34770 .finish()
34771 }
34772 }
34773
34774 impl<'de> ::fidl_next::IntoNatural for ConfigSchema<'de> {
34775 type Natural = crate::natural::ConfigSchema;
34776 }
34777
34778 #[repr(C)]
34780 pub struct Component<'de> {
34781 pub(crate) table: ::fidl_next::wire::Table<'de>,
34782 }
34783
34784 impl<'de> Drop for Component<'de> {
34785 fn drop(&mut self) {
34786 let _ = self
34787 .table
34788 .get(1)
34789 .map(|envelope| unsafe { envelope.read_unchecked::<crate::wire::Program<'de>>() });
34790
34791 let _ = self.table.get(2).map(|envelope| unsafe {
34792 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>()
34793 });
34794
34795 let _ = self.table.get(3).map(|envelope| unsafe {
34796 envelope
34797 .read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>()
34798 });
34799
34800 let _ = self.table.get(4).map(|envelope| unsafe {
34801 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>()
34802 });
34803
34804 let _ = self.table.get(5).map(|envelope| unsafe {
34805 envelope
34806 .read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>(
34807 )
34808 });
34809
34810 let _ = self.table.get(6).map(|envelope| unsafe {
34811 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>()
34812 });
34813
34814 let _ = self.table.get(7).map(|envelope| unsafe {
34815 envelope
34816 .read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>(
34817 )
34818 });
34819
34820 let _ = self.table.get(8)
34821 .map(|envelope| unsafe {
34822 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>()
34823 });
34824
34825 let _ = self.table.get(9).map(|envelope| unsafe {
34826 envelope.read_unchecked::<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>()
34827 });
34828
34829 let _ = self.table.get(10).map(|envelope| unsafe {
34830 envelope.read_unchecked::<crate::wire::ConfigSchema<'de>>()
34831 });
34832
34833 let _ = self.table.get(11).map(|envelope| unsafe {
34834 envelope.read_unchecked::<crate::wire::DebugInfo<'de>>()
34835 });
34836 }
34837 }
34838
34839 impl ::fidl_next::Constrained for Component<'_> {
34840 type Constraint = ();
34841
34842 fn validate(
34843 _: ::fidl_next::Slot<'_, Self>,
34844 _: Self::Constraint,
34845 ) -> Result<(), ::fidl_next::ValidationError> {
34846 Ok(())
34847 }
34848 }
34849
34850 unsafe impl ::fidl_next::Wire for Component<'static> {
34851 type Narrowed<'de> = Component<'de>;
34852
34853 #[inline]
34854 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
34855 ::fidl_next::munge!(let Self { table } = out);
34856 ::fidl_next::wire::Table::zero_padding(table);
34857 }
34858 }
34859
34860 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Component<'de>
34861 where
34862 ___D: ::fidl_next::Decoder<'de> + ?Sized,
34863 {
34864 fn decode(
34865 slot: ::fidl_next::Slot<'_, Self>,
34866 decoder: &mut ___D,
34867 _: (),
34868 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
34869 ::fidl_next::munge!(let Self { table } = slot);
34870
34871 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
34872 match ordinal {
34873 0 => unsafe { ::core::hint::unreachable_unchecked() },
34874
34875 1 => {
34876 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::Program<'de>>(
34877 slot.as_mut(),
34878 decoder,
34879 (),
34880 )?;
34881
34882 Ok(())
34883 }
34884
34885 2 => {
34886 ::fidl_next::wire::Envelope::decode_as::<
34887 ___D,
34888 ::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>,
34889 >(slot.as_mut(), decoder, (4294967295, ()))?;
34890
34891 Ok(())
34892 }
34893
34894 3 => {
34895 ::fidl_next::wire::Envelope::decode_as::<
34896 ___D,
34897 ::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>,
34898 >(slot.as_mut(), decoder, (4294967295, ()))?;
34899
34900 Ok(())
34901 }
34902
34903 4 => {
34904 ::fidl_next::wire::Envelope::decode_as::<
34905 ___D,
34906 ::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>,
34907 >(slot.as_mut(), decoder, (4294967295, ()))?;
34908
34909 Ok(())
34910 }
34911
34912 5 => {
34913 ::fidl_next::wire::Envelope::decode_as::<
34914 ___D,
34915 ::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>,
34916 >(slot.as_mut(), decoder, (4294967295, ()))?;
34917
34918 Ok(())
34919 }
34920
34921 6 => {
34922 ::fidl_next::wire::Envelope::decode_as::<
34923 ___D,
34924 ::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>,
34925 >(slot.as_mut(), decoder, (4294967295, ()))?;
34926
34927 Ok(())
34928 }
34929
34930 7 => {
34931 ::fidl_next::wire::Envelope::decode_as::<
34932 ___D,
34933 ::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>,
34934 >(slot.as_mut(), decoder, (4294967295, ()))?;
34935
34936 Ok(())
34937 }
34938
34939 8 => {
34940 ::fidl_next::wire::Envelope::decode_as::<
34941 ___D,
34942 ::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>,
34943 >(slot.as_mut(), decoder, (4294967295, ()))?;
34944
34945 Ok(())
34946 }
34947
34948 9 => {
34949 ::fidl_next::wire::Envelope::decode_as::<
34950 ___D,
34951 ::fidl_next_common_fuchsia_data::wire::Dictionary<'de>,
34952 >(slot.as_mut(), decoder, ())?;
34953
34954 Ok(())
34955 }
34956
34957 10 => {
34958 ::fidl_next::wire::Envelope::decode_as::<
34959 ___D,
34960 crate::wire::ConfigSchema<'de>,
34961 >(slot.as_mut(), decoder, ())?;
34962
34963 Ok(())
34964 }
34965
34966 11 => {
34967 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::DebugInfo<'de>>(
34968 slot.as_mut(),
34969 decoder,
34970 (),
34971 )?;
34972
34973 Ok(())
34974 }
34975
34976 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
34977 }
34978 })
34979 }
34980 }
34981
34982 impl<'de> Component<'de> {
34983 pub fn program(&self) -> ::core::option::Option<&crate::wire::Program<'de>> {
34984 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
34985 }
34986
34987 pub fn take_program(&mut self) -> ::core::option::Option<crate::wire::Program<'de>> {
34988 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
34989 }
34990
34991 pub fn uses(
34992 &self,
34993 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>>
34994 {
34995 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
34996 }
34997
34998 pub fn take_uses(
34999 &mut self,
35000 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Use<'de>>> {
35001 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
35002 }
35003
35004 pub fn exposes(
35005 &self,
35006 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>
35007 {
35008 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
35009 }
35010
35011 pub fn take_exposes(
35012 &mut self,
35013 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Expose<'de>>>
35014 {
35015 unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
35016 }
35017
35018 pub fn offers(
35019 &self,
35020 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>
35021 {
35022 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
35023 }
35024
35025 pub fn take_offers(
35026 &mut self,
35027 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Offer<'de>>>
35028 {
35029 unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
35030 }
35031
35032 pub fn capabilities(
35033 &self,
35034 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>
35035 {
35036 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
35037 }
35038
35039 pub fn take_capabilities(
35040 &mut self,
35041 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Capability<'de>>>
35042 {
35043 unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
35044 }
35045
35046 pub fn children(
35047 &self,
35048 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>
35049 {
35050 unsafe { Some(self.table.get(6)?.deref_unchecked()) }
35051 }
35052
35053 pub fn take_children(
35054 &mut self,
35055 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Child<'de>>>
35056 {
35057 unsafe { Some(self.table.get_mut(6)?.take_unchecked()) }
35058 }
35059
35060 pub fn collections(
35061 &self,
35062 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>
35063 {
35064 unsafe { Some(self.table.get(7)?.deref_unchecked()) }
35065 }
35066
35067 pub fn take_collections(
35068 &mut self,
35069 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Collection<'de>>>
35070 {
35071 unsafe { Some(self.table.get_mut(7)?.take_unchecked()) }
35072 }
35073
35074 pub fn environments(
35075 &self,
35076 ) -> ::core::option::Option<&::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>
35077 {
35078 unsafe { Some(self.table.get(8)?.deref_unchecked()) }
35079 }
35080
35081 pub fn take_environments(
35082 &mut self,
35083 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::Environment<'de>>>
35084 {
35085 unsafe { Some(self.table.get_mut(8)?.take_unchecked()) }
35086 }
35087
35088 pub fn facets(
35089 &self,
35090 ) -> ::core::option::Option<&::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
35091 {
35092 unsafe { Some(self.table.get(9)?.deref_unchecked()) }
35093 }
35094
35095 pub fn take_facets(
35096 &mut self,
35097 ) -> ::core::option::Option<::fidl_next_common_fuchsia_data::wire::Dictionary<'de>>
35098 {
35099 unsafe { Some(self.table.get_mut(9)?.take_unchecked()) }
35100 }
35101
35102 pub fn config(&self) -> ::core::option::Option<&crate::wire::ConfigSchema<'de>> {
35103 unsafe { Some(self.table.get(10)?.deref_unchecked()) }
35104 }
35105
35106 pub fn take_config(&mut self) -> ::core::option::Option<crate::wire::ConfigSchema<'de>> {
35107 unsafe { Some(self.table.get_mut(10)?.take_unchecked()) }
35108 }
35109
35110 pub fn debug_info(&self) -> ::core::option::Option<&crate::wire::DebugInfo<'de>> {
35111 unsafe { Some(self.table.get(11)?.deref_unchecked()) }
35112 }
35113
35114 pub fn take_debug_info(&mut self) -> ::core::option::Option<crate::wire::DebugInfo<'de>> {
35115 unsafe { Some(self.table.get_mut(11)?.take_unchecked()) }
35116 }
35117 }
35118
35119 impl<'de> ::core::fmt::Debug for Component<'de> {
35120 fn fmt(
35121 &self,
35122 f: &mut ::core::fmt::Formatter<'_>,
35123 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35124 f.debug_struct("Component")
35125 .field("program", &self.program())
35126 .field("uses", &self.uses())
35127 .field("exposes", &self.exposes())
35128 .field("offers", &self.offers())
35129 .field("capabilities", &self.capabilities())
35130 .field("children", &self.children())
35131 .field("collections", &self.collections())
35132 .field("environments", &self.environments())
35133 .field("facets", &self.facets())
35134 .field("config", &self.config())
35135 .field("debug_info", &self.debug_info())
35136 .finish()
35137 }
35138 }
35139
35140 impl<'de> ::fidl_next::IntoNatural for Component<'de> {
35141 type Natural = crate::natural::Component;
35142 }
35143
35144 #[repr(C)]
35146 pub struct ConfigValueSpec<'de> {
35147 pub(crate) table: ::fidl_next::wire::Table<'de>,
35148 }
35149
35150 impl<'de> Drop for ConfigValueSpec<'de> {
35151 fn drop(&mut self) {
35152 let _ = self.table.get(1).map(|envelope| unsafe {
35153 envelope.read_unchecked::<crate::wire::ConfigValue<'de>>()
35154 });
35155 }
35156 }
35157
35158 impl ::fidl_next::Constrained for ConfigValueSpec<'_> {
35159 type Constraint = ();
35160
35161 fn validate(
35162 _: ::fidl_next::Slot<'_, Self>,
35163 _: Self::Constraint,
35164 ) -> Result<(), ::fidl_next::ValidationError> {
35165 Ok(())
35166 }
35167 }
35168
35169 unsafe impl ::fidl_next::Wire for ConfigValueSpec<'static> {
35170 type Narrowed<'de> = ConfigValueSpec<'de>;
35171
35172 #[inline]
35173 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35174 ::fidl_next::munge!(let Self { table } = out);
35175 ::fidl_next::wire::Table::zero_padding(table);
35176 }
35177 }
35178
35179 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValueSpec<'de>
35180 where
35181 ___D: ::fidl_next::Decoder<'de> + ?Sized,
35182 {
35183 fn decode(
35184 slot: ::fidl_next::Slot<'_, Self>,
35185 decoder: &mut ___D,
35186 _: (),
35187 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35188 ::fidl_next::munge!(let Self { table } = slot);
35189
35190 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
35191 match ordinal {
35192 0 => unsafe { ::core::hint::unreachable_unchecked() },
35193
35194 1 => {
35195 ::fidl_next::wire::Envelope::decode_as::<
35196 ___D,
35197 crate::wire::ConfigValue<'de>,
35198 >(slot.as_mut(), decoder, ())?;
35199
35200 Ok(())
35201 }
35202
35203 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
35204 }
35205 })
35206 }
35207 }
35208
35209 impl<'de> ConfigValueSpec<'de> {
35210 pub fn value(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
35211 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
35212 }
35213
35214 pub fn take_value(&mut self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
35215 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
35216 }
35217 }
35218
35219 impl<'de> ::core::fmt::Debug for ConfigValueSpec<'de> {
35220 fn fmt(
35221 &self,
35222 f: &mut ::core::fmt::Formatter<'_>,
35223 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35224 f.debug_struct("ConfigValueSpec").field("value", &self.value()).finish()
35225 }
35226 }
35227
35228 impl<'de> ::fidl_next::IntoNatural for ConfigValueSpec<'de> {
35229 type Natural = crate::natural::ConfigValueSpec;
35230 }
35231
35232 #[repr(C)]
35234 pub struct ConfigValuesData<'de> {
35235 pub(crate) table: ::fidl_next::wire::Table<'de>,
35236 }
35237
35238 impl<'de> Drop for ConfigValuesData<'de> {
35239 fn drop(&mut self) {
35240 let _ = self.table.get(1)
35241 .map(|envelope| unsafe {
35242 envelope.read_unchecked::<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>()
35243 });
35244
35245 let _ = self.table.get(2).map(|envelope| unsafe {
35246 envelope.read_unchecked::<crate::wire::ConfigChecksum<'de>>()
35247 });
35248 }
35249 }
35250
35251 impl ::fidl_next::Constrained for ConfigValuesData<'_> {
35252 type Constraint = ();
35253
35254 fn validate(
35255 _: ::fidl_next::Slot<'_, Self>,
35256 _: Self::Constraint,
35257 ) -> Result<(), ::fidl_next::ValidationError> {
35258 Ok(())
35259 }
35260 }
35261
35262 unsafe impl ::fidl_next::Wire for ConfigValuesData<'static> {
35263 type Narrowed<'de> = ConfigValuesData<'de>;
35264
35265 #[inline]
35266 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35267 ::fidl_next::munge!(let Self { table } = out);
35268 ::fidl_next::wire::Table::zero_padding(table);
35269 }
35270 }
35271
35272 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValuesData<'de>
35273 where
35274 ___D: ::fidl_next::Decoder<'de> + ?Sized,
35275 {
35276 fn decode(
35277 slot: ::fidl_next::Slot<'_, Self>,
35278 decoder: &mut ___D,
35279 _: (),
35280 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35281 ::fidl_next::munge!(let Self { table } = slot);
35282
35283 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
35284 match ordinal {
35285 0 => unsafe { ::core::hint::unreachable_unchecked() },
35286
35287 1 => {
35288 ::fidl_next::wire::Envelope::decode_as::<
35289 ___D,
35290 ::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>,
35291 >(slot.as_mut(), decoder, (4294967295, ()))?;
35292
35293 Ok(())
35294 }
35295
35296 2 => {
35297 ::fidl_next::wire::Envelope::decode_as::<
35298 ___D,
35299 crate::wire::ConfigChecksum<'de>,
35300 >(slot.as_mut(), decoder, ())?;
35301
35302 Ok(())
35303 }
35304
35305 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
35306 }
35307 })
35308 }
35309 }
35310
35311 impl<'de> ConfigValuesData<'de> {
35312 pub fn values(
35313 &self,
35314 ) -> ::core::option::Option<
35315 &::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>,
35316 > {
35317 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
35318 }
35319
35320 pub fn take_values(
35321 &mut self,
35322 ) -> ::core::option::Option<::fidl_next::wire::Vector<'de, crate::wire::ConfigValueSpec<'de>>>
35323 {
35324 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
35325 }
35326
35327 pub fn checksum(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
35328 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
35329 }
35330
35331 pub fn take_checksum(
35332 &mut self,
35333 ) -> ::core::option::Option<crate::wire::ConfigChecksum<'de>> {
35334 unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
35335 }
35336 }
35337
35338 impl<'de> ::core::fmt::Debug for ConfigValuesData<'de> {
35339 fn fmt(
35340 &self,
35341 f: &mut ::core::fmt::Formatter<'_>,
35342 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35343 f.debug_struct("ConfigValuesData")
35344 .field("values", &self.values())
35345 .field("checksum", &self.checksum())
35346 .finish()
35347 }
35348 }
35349
35350 impl<'de> ::fidl_next::IntoNatural for ConfigValuesData<'de> {
35351 type Natural = crate::natural::ConfigValuesData;
35352 }
35353
35354 #[repr(C)]
35356 pub struct EventSubscription<'de> {
35357 pub(crate) table: ::fidl_next::wire::Table<'de>,
35358 }
35359
35360 impl<'de> Drop for EventSubscription<'de> {
35361 fn drop(&mut self) {
35362 let _ = self.table.get(1).map(|envelope| unsafe {
35363 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
35364 });
35365 }
35366 }
35367
35368 impl ::fidl_next::Constrained for EventSubscription<'_> {
35369 type Constraint = ();
35370
35371 fn validate(
35372 _: ::fidl_next::Slot<'_, Self>,
35373 _: Self::Constraint,
35374 ) -> Result<(), ::fidl_next::ValidationError> {
35375 Ok(())
35376 }
35377 }
35378
35379 unsafe impl ::fidl_next::Wire for EventSubscription<'static> {
35380 type Narrowed<'de> = EventSubscription<'de>;
35381
35382 #[inline]
35383 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35384 ::fidl_next::munge!(let Self { table } = out);
35385 ::fidl_next::wire::Table::zero_padding(table);
35386 }
35387 }
35388
35389 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for EventSubscription<'de>
35390 where
35391 ___D: ::fidl_next::Decoder<'de> + ?Sized,
35392 {
35393 fn decode(
35394 slot: ::fidl_next::Slot<'_, Self>,
35395 decoder: &mut ___D,
35396 _: (),
35397 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35398 ::fidl_next::munge!(let Self { table } = slot);
35399
35400 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
35401 match ordinal {
35402 0 => unsafe { ::core::hint::unreachable_unchecked() },
35403
35404 1 => {
35405 ::fidl_next::wire::Envelope::decode_as::<
35406 ___D,
35407 ::fidl_next::wire::String<'de>,
35408 >(slot.as_mut(), decoder, 100)?;
35409
35410 let value = unsafe {
35411 slot.deref_unchecked()
35412 .deref_unchecked::<::fidl_next::wire::String<'_>>()
35413 };
35414
35415 if value.len() > 100 {
35416 return Err(::fidl_next::DecodeError::VectorTooLong {
35417 size: value.len() as u64,
35418 limit: 100,
35419 });
35420 }
35421
35422 Ok(())
35423 }
35424
35425 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
35426 }
35427 })
35428 }
35429 }
35430
35431 impl<'de> EventSubscription<'de> {
35432 pub fn event_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
35433 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
35434 }
35435
35436 pub fn take_event_name(
35437 &mut self,
35438 ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
35439 unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
35440 }
35441 }
35442
35443 impl<'de> ::core::fmt::Debug for EventSubscription<'de> {
35444 fn fmt(
35445 &self,
35446 f: &mut ::core::fmt::Formatter<'_>,
35447 ) -> ::core::result::Result<(), ::core::fmt::Error> {
35448 f.debug_struct("EventSubscription").field("event_name", &self.event_name()).finish()
35449 }
35450 }
35451
35452 impl<'de> ::fidl_next::IntoNatural for EventSubscription<'de> {
35453 type Natural = crate::natural::EventSubscription;
35454 }
35455
35456 #[repr(transparent)]
35458 pub struct LayoutParameter<'de> {
35459 pub(crate) raw: ::fidl_next::wire::Union,
35460 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35461 }
35462
35463 impl<'de> Drop for LayoutParameter<'de> {
35464 fn drop(&mut self) {
35465 match self.raw.ordinal() {
35466 1 => {
35467 let _ =
35468 unsafe { self.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>() };
35469 }
35470
35471 _ => (),
35472 }
35473 }
35474 }
35475
35476 impl ::fidl_next::Constrained for LayoutParameter<'_> {
35477 type Constraint = ();
35478
35479 fn validate(
35480 _: ::fidl_next::Slot<'_, Self>,
35481 _: Self::Constraint,
35482 ) -> Result<(), ::fidl_next::ValidationError> {
35483 Ok(())
35484 }
35485 }
35486
35487 unsafe impl ::fidl_next::Wire for LayoutParameter<'static> {
35488 type Narrowed<'de> = LayoutParameter<'de>;
35489
35490 #[inline]
35491 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35492 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35493 ::fidl_next::wire::Union::zero_padding(raw);
35494 }
35495 }
35496
35497 pub mod layout_parameter {
35498 pub enum Ref<'de> {
35499 NestedType(&'de crate::wire::ConfigType<'de>),
35500
35501 UnknownOrdinal_(u64),
35502 }
35503
35504 pub enum Value<'de> {
35505 NestedType(crate::wire::ConfigType<'de>),
35506
35507 UnknownOrdinal_(u64),
35508 }
35509 }
35510
35511 impl<'de> LayoutParameter<'de> {
35512 pub fn as_ref(&self) -> crate::wire::layout_parameter::Ref<'_> {
35513 match self.raw.ordinal() {
35514 1 => crate::wire::layout_parameter::Ref::NestedType(unsafe {
35515 self.raw.get().deref_unchecked::<crate::wire::ConfigType<'_>>()
35516 }),
35517
35518 unknown => crate::wire::layout_parameter::Ref::UnknownOrdinal_(unknown),
35519 }
35520 }
35521
35522 pub fn into_inner(self) -> crate::wire::layout_parameter::Value<'de> {
35523 let this = ::core::mem::ManuallyDrop::new(self);
35524
35525 match this.raw.ordinal() {
35526 1 => crate::wire::layout_parameter::Value::NestedType(unsafe {
35527 this.raw.get().read_unchecked::<crate::wire::ConfigType<'de>>()
35528 }),
35529
35530 unknown => crate::wire::layout_parameter::Value::UnknownOrdinal_(unknown),
35531 }
35532 }
35533 }
35534
35535 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutParameter<'de>
35536 where
35537 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35538 ___D: ::fidl_next::Decoder<'de>,
35539 {
35540 fn decode(
35541 mut slot: ::fidl_next::Slot<'_, Self>,
35542 decoder: &mut ___D,
35543 _: (),
35544 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35545 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35546 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
35547 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ConfigType<'de>>(
35548 raw,
35549 decoder,
35550 (),
35551 )?,
35552
35553 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
35554 }
35555
35556 Ok(())
35557 }
35558 }
35559
35560 impl<'de> ::core::fmt::Debug for LayoutParameter<'de> {
35561 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35562 match self.raw.ordinal() {
35563 1 => unsafe {
35564 self.raw.get().deref_unchecked::<crate::wire::ConfigType<'_>>().fmt(f)
35565 },
35566 _ => unsafe { ::core::hint::unreachable_unchecked() },
35567 }
35568 }
35569 }
35570
35571 impl<'de> ::fidl_next::IntoNatural for LayoutParameter<'de> {
35572 type Natural = crate::natural::LayoutParameter;
35573 }
35574
35575 #[derive(Debug)]
35577 #[repr(C)]
35578 pub struct ResolvedConfigField<'de> {
35579 pub key: ::fidl_next::wire::String<'de>,
35580
35581 pub value: crate::wire::ConfigValue<'de>,
35582 }
35583
35584 static_assertions::const_assert_eq!(std::mem::size_of::<ResolvedConfigField<'_>>(), 32);
35585 static_assertions::const_assert_eq!(std::mem::align_of::<ResolvedConfigField<'_>>(), 8);
35586
35587 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfigField<'_>, key), 0);
35588
35589 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfigField<'_>, value), 16);
35590
35591 impl ::fidl_next::Constrained for ResolvedConfigField<'_> {
35592 type Constraint = ();
35593
35594 fn validate(
35595 _: ::fidl_next::Slot<'_, Self>,
35596 _: Self::Constraint,
35597 ) -> Result<(), ::fidl_next::ValidationError> {
35598 Ok(())
35599 }
35600 }
35601
35602 unsafe impl ::fidl_next::Wire for ResolvedConfigField<'static> {
35603 type Narrowed<'de> = ResolvedConfigField<'de>;
35604
35605 #[inline]
35606 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
35607 ::fidl_next::munge! {
35608 let Self {
35609 key,
35610 value,
35611
35612 } = &mut *out_;
35613 }
35614
35615 ::fidl_next::Wire::zero_padding(key);
35616
35617 ::fidl_next::Wire::zero_padding(value);
35618 }
35619 }
35620
35621 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ResolvedConfigField<'de>
35622 where
35623 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35624 ___D: ::fidl_next::Decoder<'de>,
35625 {
35626 fn decode(
35627 slot_: ::fidl_next::Slot<'_, Self>,
35628 decoder_: &mut ___D,
35629 _: (),
35630 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35631 ::fidl_next::munge! {
35632 let Self {
35633 mut key,
35634 mut value,
35635
35636 } = slot_;
35637 }
35638
35639 let _field = key.as_mut();
35640 ::fidl_next::Constrained::validate(_field, 4294967295)?;
35641 ::fidl_next::Decode::decode(key.as_mut(), decoder_, 4294967295)?;
35642
35643 let _field = value.as_mut();
35644
35645 ::fidl_next::Decode::decode(value.as_mut(), decoder_, ())?;
35646
35647 Ok(())
35648 }
35649 }
35650
35651 impl<'de> ::fidl_next::IntoNatural for ResolvedConfigField<'de> {
35652 type Natural = crate::natural::ResolvedConfigField;
35653 }
35654
35655 #[derive(Debug)]
35657 #[repr(C)]
35658 pub struct ResolvedConfig<'de> {
35659 pub fields: ::fidl_next::wire::Vector<'de, crate::wire::ResolvedConfigField<'de>>,
35660
35661 pub checksum: crate::wire::ConfigChecksum<'de>,
35662 }
35663
35664 static_assertions::const_assert_eq!(std::mem::size_of::<ResolvedConfig<'_>>(), 32);
35665 static_assertions::const_assert_eq!(std::mem::align_of::<ResolvedConfig<'_>>(), 8);
35666
35667 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfig<'_>, fields), 0);
35668
35669 static_assertions::const_assert_eq!(std::mem::offset_of!(ResolvedConfig<'_>, checksum), 16);
35670
35671 impl ::fidl_next::Constrained for ResolvedConfig<'_> {
35672 type Constraint = ();
35673
35674 fn validate(
35675 _: ::fidl_next::Slot<'_, Self>,
35676 _: Self::Constraint,
35677 ) -> Result<(), ::fidl_next::ValidationError> {
35678 Ok(())
35679 }
35680 }
35681
35682 unsafe impl ::fidl_next::Wire for ResolvedConfig<'static> {
35683 type Narrowed<'de> = ResolvedConfig<'de>;
35684
35685 #[inline]
35686 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
35687 ::fidl_next::munge! {
35688 let Self {
35689 fields,
35690 checksum,
35691
35692 } = &mut *out_;
35693 }
35694
35695 ::fidl_next::Wire::zero_padding(fields);
35696
35697 ::fidl_next::Wire::zero_padding(checksum);
35698 }
35699 }
35700
35701 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ResolvedConfig<'de>
35702 where
35703 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35704 ___D: ::fidl_next::Decoder<'de>,
35705 {
35706 fn decode(
35707 slot_: ::fidl_next::Slot<'_, Self>,
35708 decoder_: &mut ___D,
35709 _: (),
35710 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35711 ::fidl_next::munge! {
35712 let Self {
35713 mut fields,
35714 mut checksum,
35715
35716 } = slot_;
35717 }
35718
35719 let _field = fields.as_mut();
35720 ::fidl_next::Constrained::validate(_field, (4294967295, ()))?;
35721 ::fidl_next::Decode::decode(fields.as_mut(), decoder_, (4294967295, ()))?;
35722
35723 let _field = checksum.as_mut();
35724
35725 ::fidl_next::Decode::decode(checksum.as_mut(), decoder_, ())?;
35726
35727 Ok(())
35728 }
35729 }
35730
35731 impl<'de> ::fidl_next::IntoNatural for ResolvedConfig<'de> {
35732 type Natural = crate::natural::ResolvedConfig;
35733 }
35734}
35735
35736pub mod wire_optional {
35737
35738 #[repr(transparent)]
35739 pub struct ConfigSingleValue<'de> {
35740 pub(crate) raw: ::fidl_next::wire::Union,
35741 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35742 }
35743
35744 impl ::fidl_next::Constrained for ConfigSingleValue<'_> {
35745 type Constraint = ();
35746
35747 fn validate(
35748 _: ::fidl_next::Slot<'_, Self>,
35749 _: Self::Constraint,
35750 ) -> Result<(), ::fidl_next::ValidationError> {
35751 Ok(())
35752 }
35753 }
35754
35755 unsafe impl ::fidl_next::Wire for ConfigSingleValue<'static> {
35756 type Narrowed<'de> = ConfigSingleValue<'de>;
35757
35758 #[inline]
35759 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35760 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35761 ::fidl_next::wire::Union::zero_padding(raw);
35762 }
35763 }
35764
35765 impl<'de> ConfigSingleValue<'de> {
35766 pub fn is_some(&self) -> bool {
35767 self.raw.is_some()
35768 }
35769
35770 pub fn is_none(&self) -> bool {
35771 self.raw.is_none()
35772 }
35773
35774 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigSingleValue<'de>> {
35775 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35776 }
35777
35778 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigSingleValue<'de>> {
35779 if self.is_some() {
35780 Some(crate::wire::ConfigSingleValue {
35781 raw: self.raw,
35782 _phantom: ::core::marker::PhantomData,
35783 })
35784 } else {
35785 None
35786 }
35787 }
35788 }
35789
35790 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigSingleValue<'de>
35791 where
35792 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35793 ___D: ::fidl_next::Decoder<'de>,
35794 {
35795 fn decode(
35796 mut slot: ::fidl_next::Slot<'_, Self>,
35797 decoder: &mut ___D,
35798 _: (),
35799 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35800 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35801 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
35802 1 => ::fidl_next::wire::Union::decode_as::<___D, bool>(raw, decoder, ())?,
35803
35804 2 => ::fidl_next::wire::Union::decode_as::<___D, u8>(raw, decoder, ())?,
35805
35806 3 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint16>(
35807 raw,
35808 decoder,
35809 (),
35810 )?,
35811
35812 4 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
35813 raw,
35814 decoder,
35815 (),
35816 )?,
35817
35818 5 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint64>(
35819 raw,
35820 decoder,
35821 (),
35822 )?,
35823
35824 6 => ::fidl_next::wire::Union::decode_as::<___D, i8>(raw, decoder, ())?,
35825
35826 7 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int16>(
35827 raw,
35828 decoder,
35829 (),
35830 )?,
35831
35832 8 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int32>(
35833 raw,
35834 decoder,
35835 (),
35836 )?,
35837
35838 9 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Int64>(
35839 raw,
35840 decoder,
35841 (),
35842 )?,
35843
35844 10 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
35845 raw, decoder, 4294967295,
35846 )?,
35847
35848 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
35849 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
35850 }
35851
35852 Ok(())
35853 }
35854 }
35855
35856 impl<'de> ::core::fmt::Debug for ConfigSingleValue<'de> {
35857 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35858 self.as_ref().fmt(f)
35859 }
35860 }
35861
35862 impl<'de> ::fidl_next::IntoNatural for ConfigSingleValue<'de> {
35863 type Natural = ::core::option::Option<crate::natural::ConfigSingleValue>;
35864 }
35865
35866 #[repr(transparent)]
35867 pub struct ConfigVectorValue<'de> {
35868 pub(crate) raw: ::fidl_next::wire::Union,
35869 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
35870 }
35871
35872 impl ::fidl_next::Constrained for ConfigVectorValue<'_> {
35873 type Constraint = ();
35874
35875 fn validate(
35876 _: ::fidl_next::Slot<'_, Self>,
35877 _: Self::Constraint,
35878 ) -> Result<(), ::fidl_next::ValidationError> {
35879 Ok(())
35880 }
35881 }
35882
35883 unsafe impl ::fidl_next::Wire for ConfigVectorValue<'static> {
35884 type Narrowed<'de> = ConfigVectorValue<'de>;
35885
35886 #[inline]
35887 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
35888 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
35889 ::fidl_next::wire::Union::zero_padding(raw);
35890 }
35891 }
35892
35893 impl<'de> ConfigVectorValue<'de> {
35894 pub fn is_some(&self) -> bool {
35895 self.raw.is_some()
35896 }
35897
35898 pub fn is_none(&self) -> bool {
35899 self.raw.is_none()
35900 }
35901
35902 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigVectorValue<'de>> {
35903 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
35904 }
35905
35906 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigVectorValue<'de>> {
35907 if self.is_some() {
35908 Some(crate::wire::ConfigVectorValue {
35909 raw: self.raw,
35910 _phantom: ::core::marker::PhantomData,
35911 })
35912 } else {
35913 None
35914 }
35915 }
35916 }
35917
35918 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigVectorValue<'de>
35919 where
35920 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
35921 ___D: ::fidl_next::Decoder<'de>,
35922 {
35923 fn decode(
35924 mut slot: ::fidl_next::Slot<'_, Self>,
35925 decoder: &mut ___D,
35926 _: (),
35927 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
35928 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
35929 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
35930 1 => ::fidl_next::wire::Union::decode_as::<
35931 ___D,
35932 ::fidl_next::wire::Vector<'de, bool>,
35933 >(raw, decoder, (4294967295, ()))?,
35934
35935 2 => {
35936 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, u8>>(
35937 raw,
35938 decoder,
35939 (4294967295, ()),
35940 )?
35941 }
35942
35943 3 => ::fidl_next::wire::Union::decode_as::<
35944 ___D,
35945 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint16>,
35946 >(raw, decoder, (4294967295, ()))?,
35947
35948 4 => ::fidl_next::wire::Union::decode_as::<
35949 ___D,
35950 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint32>,
35951 >(raw, decoder, (4294967295, ()))?,
35952
35953 5 => ::fidl_next::wire::Union::decode_as::<
35954 ___D,
35955 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Uint64>,
35956 >(raw, decoder, (4294967295, ()))?,
35957
35958 6 => {
35959 ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Vector<'de, i8>>(
35960 raw,
35961 decoder,
35962 (4294967295, ()),
35963 )?
35964 }
35965
35966 7 => ::fidl_next::wire::Union::decode_as::<
35967 ___D,
35968 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int16>,
35969 >(raw, decoder, (4294967295, ()))?,
35970
35971 8 => ::fidl_next::wire::Union::decode_as::<
35972 ___D,
35973 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int32>,
35974 >(raw, decoder, (4294967295, ()))?,
35975
35976 9 => ::fidl_next::wire::Union::decode_as::<
35977 ___D,
35978 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::Int64>,
35979 >(raw, decoder, (4294967295, ()))?,
35980
35981 10 => ::fidl_next::wire::Union::decode_as::<
35982 ___D,
35983 ::fidl_next::wire::Vector<'de, ::fidl_next::wire::String<'de>>,
35984 >(raw, decoder, (4294967295, 4294967295))?,
35985
35986 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
35987 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
35988 }
35989
35990 Ok(())
35991 }
35992 }
35993
35994 impl<'de> ::core::fmt::Debug for ConfigVectorValue<'de> {
35995 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
35996 self.as_ref().fmt(f)
35997 }
35998 }
35999
36000 impl<'de> ::fidl_next::IntoNatural for ConfigVectorValue<'de> {
36001 type Natural = ::core::option::Option<crate::natural::ConfigVectorValue>;
36002 }
36003
36004 #[repr(transparent)]
36005 pub struct ConfigValue<'de> {
36006 pub(crate) raw: ::fidl_next::wire::Union,
36007 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36008 }
36009
36010 impl ::fidl_next::Constrained for ConfigValue<'_> {
36011 type Constraint = ();
36012
36013 fn validate(
36014 _: ::fidl_next::Slot<'_, Self>,
36015 _: Self::Constraint,
36016 ) -> Result<(), ::fidl_next::ValidationError> {
36017 Ok(())
36018 }
36019 }
36020
36021 unsafe impl ::fidl_next::Wire for ConfigValue<'static> {
36022 type Narrowed<'de> = ConfigValue<'de>;
36023
36024 #[inline]
36025 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36026 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36027 ::fidl_next::wire::Union::zero_padding(raw);
36028 }
36029 }
36030
36031 impl<'de> ConfigValue<'de> {
36032 pub fn is_some(&self) -> bool {
36033 self.raw.is_some()
36034 }
36035
36036 pub fn is_none(&self) -> bool {
36037 self.raw.is_none()
36038 }
36039
36040 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigValue<'de>> {
36041 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36042 }
36043
36044 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigValue<'de>> {
36045 if self.is_some() {
36046 Some(crate::wire::ConfigValue {
36047 raw: self.raw,
36048 _phantom: ::core::marker::PhantomData,
36049 })
36050 } else {
36051 None
36052 }
36053 }
36054 }
36055
36056 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValue<'de>
36057 where
36058 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36059 ___D: ::fidl_next::Decoder<'de>,
36060 {
36061 fn decode(
36062 mut slot: ::fidl_next::Slot<'_, Self>,
36063 decoder: &mut ___D,
36064 _: (),
36065 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36066 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36067 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36068 1 => ::fidl_next::wire::Union::decode_as::<
36069 ___D,
36070 crate::wire::ConfigSingleValue<'de>,
36071 >(raw, decoder, ())?,
36072
36073 2 => ::fidl_next::wire::Union::decode_as::<
36074 ___D,
36075 crate::wire::ConfigVectorValue<'de>,
36076 >(raw, decoder, ())?,
36077
36078 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36079 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36080 }
36081
36082 Ok(())
36083 }
36084 }
36085
36086 impl<'de> ::core::fmt::Debug for ConfigValue<'de> {
36087 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36088 self.as_ref().fmt(f)
36089 }
36090 }
36091
36092 impl<'de> ::fidl_next::IntoNatural for ConfigValue<'de> {
36093 type Natural = ::core::option::Option<crate::natural::ConfigValue>;
36094 }
36095
36096 #[repr(transparent)]
36097 pub struct Ref<'de> {
36098 pub(crate) raw: ::fidl_next::wire::Union,
36099 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36100 }
36101
36102 impl ::fidl_next::Constrained for Ref<'_> {
36103 type Constraint = ();
36104
36105 fn validate(
36106 _: ::fidl_next::Slot<'_, Self>,
36107 _: Self::Constraint,
36108 ) -> Result<(), ::fidl_next::ValidationError> {
36109 Ok(())
36110 }
36111 }
36112
36113 unsafe impl ::fidl_next::Wire for Ref<'static> {
36114 type Narrowed<'de> = Ref<'de>;
36115
36116 #[inline]
36117 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36118 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36119 ::fidl_next::wire::Union::zero_padding(raw);
36120 }
36121 }
36122
36123 impl<'de> Ref<'de> {
36124 pub fn is_some(&self) -> bool {
36125 self.raw.is_some()
36126 }
36127
36128 pub fn is_none(&self) -> bool {
36129 self.raw.is_none()
36130 }
36131
36132 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Ref<'de>> {
36133 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36134 }
36135
36136 pub fn into_option(self) -> ::core::option::Option<crate::wire::Ref<'de>> {
36137 if self.is_some() {
36138 Some(crate::wire::Ref { raw: self.raw, _phantom: ::core::marker::PhantomData })
36139 } else {
36140 None
36141 }
36142 }
36143 }
36144
36145 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Ref<'de>
36146 where
36147 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36148 ___D: ::fidl_next::Decoder<'de>,
36149 {
36150 fn decode(
36151 mut slot: ::fidl_next::Slot<'_, Self>,
36152 decoder: &mut ___D,
36153 _: (),
36154 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36155 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36156 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36157 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ParentRef>(
36158 raw,
36159 decoder,
36160 (),
36161 )?,
36162
36163 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::SelfRef>(
36164 raw,
36165 decoder,
36166 (),
36167 )?,
36168
36169 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ChildRef<'de>>(
36170 raw,
36171 decoder,
36172 (),
36173 )?,
36174
36175 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CollectionRef<'de>>(
36176 raw,
36177 decoder,
36178 (),
36179 )?,
36180
36181 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::FrameworkRef>(
36182 raw,
36183 decoder,
36184 (),
36185 )?,
36186
36187 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::CapabilityRef<'de>>(
36188 raw,
36189 decoder,
36190 (),
36191 )?,
36192
36193 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::DebugRef>(
36194 raw,
36195 decoder,
36196 (),
36197 )?,
36198
36199 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::VoidRef>(
36200 raw,
36201 decoder,
36202 (),
36203 )?,
36204
36205 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EnvironmentRef>(
36206 raw,
36207 decoder,
36208 (),
36209 )?,
36210
36211 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36212 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36213 }
36214
36215 Ok(())
36216 }
36217 }
36218
36219 impl<'de> ::core::fmt::Debug for Ref<'de> {
36220 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36221 self.as_ref().fmt(f)
36222 }
36223 }
36224
36225 impl<'de> ::fidl_next::IntoNatural for Ref<'de> {
36226 type Natural = ::core::option::Option<crate::natural::Ref>;
36227 }
36228
36229 #[repr(transparent)]
36230 pub struct Capability<'de> {
36231 pub(crate) raw: ::fidl_next::wire::Union,
36232 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36233 }
36234
36235 impl ::fidl_next::Constrained for Capability<'_> {
36236 type Constraint = ();
36237
36238 fn validate(
36239 _: ::fidl_next::Slot<'_, Self>,
36240 _: Self::Constraint,
36241 ) -> Result<(), ::fidl_next::ValidationError> {
36242 Ok(())
36243 }
36244 }
36245
36246 unsafe impl ::fidl_next::Wire for Capability<'static> {
36247 type Narrowed<'de> = Capability<'de>;
36248
36249 #[inline]
36250 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36251 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36252 ::fidl_next::wire::Union::zero_padding(raw);
36253 }
36254 }
36255
36256 impl<'de> Capability<'de> {
36257 pub fn is_some(&self) -> bool {
36258 self.raw.is_some()
36259 }
36260
36261 pub fn is_none(&self) -> bool {
36262 self.raw.is_none()
36263 }
36264
36265 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Capability<'de>> {
36266 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36267 }
36268
36269 pub fn into_option(self) -> ::core::option::Option<crate::wire::Capability<'de>> {
36270 if self.is_some() {
36271 Some(crate::wire::Capability {
36272 raw: self.raw,
36273 _phantom: ::core::marker::PhantomData,
36274 })
36275 } else {
36276 None
36277 }
36278 }
36279 }
36280
36281 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Capability<'de>
36282 where
36283 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36284 ___D: ::fidl_next::Decoder<'de>,
36285 {
36286 fn decode(
36287 mut slot: ::fidl_next::Slot<'_, Self>,
36288 decoder: &mut ___D,
36289 _: (),
36290 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36291 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36292 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36293 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Service<'de>>(
36294 raw,
36295 decoder,
36296 (),
36297 )?,
36298
36299 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Protocol<'de>>(
36300 raw,
36301 decoder,
36302 (),
36303 )?,
36304
36305 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Directory<'de>>(
36306 raw,
36307 decoder,
36308 (),
36309 )?,
36310
36311 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Storage<'de>>(
36312 raw,
36313 decoder,
36314 (),
36315 )?,
36316
36317 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Runner<'de>>(
36318 raw,
36319 decoder,
36320 (),
36321 )?,
36322
36323 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Resolver<'de>>(
36324 raw,
36325 decoder,
36326 (),
36327 )?,
36328
36329 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::EventStream<'de>>(
36330 raw,
36331 decoder,
36332 (),
36333 )?,
36334
36335 9 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Dictionary<'de>>(
36336 raw,
36337 decoder,
36338 (),
36339 )?,
36340
36341 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::Configuration<'de>>(
36342 raw,
36343 decoder,
36344 (),
36345 )?,
36346
36347 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36348 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36349 }
36350
36351 Ok(())
36352 }
36353 }
36354
36355 impl<'de> ::core::fmt::Debug for Capability<'de> {
36356 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36357 self.as_ref().fmt(f)
36358 }
36359 }
36360
36361 impl<'de> ::fidl_next::IntoNatural for Capability<'de> {
36362 type Natural = ::core::option::Option<crate::natural::Capability>;
36363 }
36364
36365 #[repr(transparent)]
36366 pub struct LayoutConstraint<'de> {
36367 pub(crate) raw: ::fidl_next::wire::Union,
36368 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36369 }
36370
36371 impl ::fidl_next::Constrained for LayoutConstraint<'_> {
36372 type Constraint = ();
36373
36374 fn validate(
36375 _: ::fidl_next::Slot<'_, Self>,
36376 _: Self::Constraint,
36377 ) -> Result<(), ::fidl_next::ValidationError> {
36378 Ok(())
36379 }
36380 }
36381
36382 unsafe impl ::fidl_next::Wire for LayoutConstraint<'static> {
36383 type Narrowed<'de> = LayoutConstraint<'de>;
36384
36385 #[inline]
36386 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36387 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36388 ::fidl_next::wire::Union::zero_padding(raw);
36389 }
36390 }
36391
36392 impl<'de> LayoutConstraint<'de> {
36393 pub fn is_some(&self) -> bool {
36394 self.raw.is_some()
36395 }
36396
36397 pub fn is_none(&self) -> bool {
36398 self.raw.is_none()
36399 }
36400
36401 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::LayoutConstraint<'de>> {
36402 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36403 }
36404
36405 pub fn into_option(self) -> ::core::option::Option<crate::wire::LayoutConstraint<'de>> {
36406 if self.is_some() {
36407 Some(crate::wire::LayoutConstraint {
36408 raw: self.raw,
36409 _phantom: ::core::marker::PhantomData,
36410 })
36411 } else {
36412 None
36413 }
36414 }
36415 }
36416
36417 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutConstraint<'de>
36418 where
36419 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36420 ___D: ::fidl_next::Decoder<'de>,
36421 {
36422 fn decode(
36423 mut slot: ::fidl_next::Slot<'_, Self>,
36424 decoder: &mut ___D,
36425 _: (),
36426 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36427 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36428 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36429 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::Uint32>(
36430 raw,
36431 decoder,
36432 (),
36433 )?,
36434
36435 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36436 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36437 }
36438
36439 Ok(())
36440 }
36441 }
36442
36443 impl<'de> ::core::fmt::Debug for LayoutConstraint<'de> {
36444 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36445 self.as_ref().fmt(f)
36446 }
36447 }
36448
36449 impl<'de> ::fidl_next::IntoNatural for LayoutConstraint<'de> {
36450 type Natural = ::core::option::Option<crate::natural::LayoutConstraint>;
36451 }
36452
36453 #[repr(transparent)]
36454 pub struct ConfigChecksum<'de> {
36455 pub(crate) raw: ::fidl_next::wire::Union,
36456 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36457 }
36458
36459 impl ::fidl_next::Constrained for ConfigChecksum<'_> {
36460 type Constraint = ();
36461
36462 fn validate(
36463 _: ::fidl_next::Slot<'_, Self>,
36464 _: Self::Constraint,
36465 ) -> Result<(), ::fidl_next::ValidationError> {
36466 Ok(())
36467 }
36468 }
36469
36470 unsafe impl ::fidl_next::Wire for ConfigChecksum<'static> {
36471 type Narrowed<'de> = ConfigChecksum<'de>;
36472
36473 #[inline]
36474 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36475 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36476 ::fidl_next::wire::Union::zero_padding(raw);
36477 }
36478 }
36479
36480 impl<'de> ConfigChecksum<'de> {
36481 pub fn is_some(&self) -> bool {
36482 self.raw.is_some()
36483 }
36484
36485 pub fn is_none(&self) -> bool {
36486 self.raw.is_none()
36487 }
36488
36489 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigChecksum<'de>> {
36490 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36491 }
36492
36493 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigChecksum<'de>> {
36494 if self.is_some() {
36495 Some(crate::wire::ConfigChecksum {
36496 raw: self.raw,
36497 _phantom: ::core::marker::PhantomData,
36498 })
36499 } else {
36500 None
36501 }
36502 }
36503 }
36504
36505 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigChecksum<'de>
36506 where
36507 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36508 ___D: ::fidl_next::Decoder<'de>,
36509 {
36510 fn decode(
36511 mut slot: ::fidl_next::Slot<'_, Self>,
36512 decoder: &mut ___D,
36513 _: (),
36514 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36515 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36516 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36517 1 => ::fidl_next::wire::Union::decode_as::<___D, [u8; 32]>(raw, decoder, ())?,
36518
36519 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36520 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36521 }
36522
36523 Ok(())
36524 }
36525 }
36526
36527 impl<'de> ::core::fmt::Debug for ConfigChecksum<'de> {
36528 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36529 self.as_ref().fmt(f)
36530 }
36531 }
36532
36533 impl<'de> ::fidl_next::IntoNatural for ConfigChecksum<'de> {
36534 type Natural = ::core::option::Option<crate::natural::ConfigChecksum>;
36535 }
36536
36537 #[repr(transparent)]
36538 pub struct Use<'de> {
36539 pub(crate) raw: ::fidl_next::wire::Union,
36540 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36541 }
36542
36543 impl ::fidl_next::Constrained for Use<'_> {
36544 type Constraint = ();
36545
36546 fn validate(
36547 _: ::fidl_next::Slot<'_, Self>,
36548 _: Self::Constraint,
36549 ) -> Result<(), ::fidl_next::ValidationError> {
36550 Ok(())
36551 }
36552 }
36553
36554 unsafe impl ::fidl_next::Wire for Use<'static> {
36555 type Narrowed<'de> = Use<'de>;
36556
36557 #[inline]
36558 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36559 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36560 ::fidl_next::wire::Union::zero_padding(raw);
36561 }
36562 }
36563
36564 impl<'de> Use<'de> {
36565 pub fn is_some(&self) -> bool {
36566 self.raw.is_some()
36567 }
36568
36569 pub fn is_none(&self) -> bool {
36570 self.raw.is_none()
36571 }
36572
36573 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Use<'de>> {
36574 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36575 }
36576
36577 pub fn into_option(self) -> ::core::option::Option<crate::wire::Use<'de>> {
36578 if self.is_some() {
36579 Some(crate::wire::Use { raw: self.raw, _phantom: ::core::marker::PhantomData })
36580 } else {
36581 None
36582 }
36583 }
36584 }
36585
36586 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Use<'de>
36587 where
36588 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36589 ___D: ::fidl_next::Decoder<'de>,
36590 {
36591 fn decode(
36592 mut slot: ::fidl_next::Slot<'_, Self>,
36593 decoder: &mut ___D,
36594 _: (),
36595 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36596 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36597 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36598 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseService<'de>>(
36599 raw,
36600 decoder,
36601 (),
36602 )?,
36603
36604 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseProtocol<'de>>(
36605 raw,
36606 decoder,
36607 (),
36608 )?,
36609
36610 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDirectory<'de>>(
36611 raw,
36612 decoder,
36613 (),
36614 )?,
36615
36616 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseStorage<'de>>(
36617 raw,
36618 decoder,
36619 (),
36620 )?,
36621
36622 7 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseEventStream<'de>>(
36623 raw,
36624 decoder,
36625 (),
36626 )?,
36627
36628 8 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseRunner<'de>>(
36629 raw,
36630 decoder,
36631 (),
36632 )?,
36633
36634 9 => {
36635 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseConfiguration<'de>>(
36636 raw,
36637 decoder,
36638 (),
36639 )?
36640 }
36641
36642 10 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::UseDictionary<'de>>(
36643 raw,
36644 decoder,
36645 (),
36646 )?,
36647
36648 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36649 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36650 }
36651
36652 Ok(())
36653 }
36654 }
36655
36656 impl<'de> ::core::fmt::Debug for Use<'de> {
36657 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36658 self.as_ref().fmt(f)
36659 }
36660 }
36661
36662 impl<'de> ::fidl_next::IntoNatural for Use<'de> {
36663 type Natural = ::core::option::Option<crate::natural::Use>;
36664 }
36665
36666 #[repr(transparent)]
36667 pub struct Expose<'de> {
36668 pub(crate) raw: ::fidl_next::wire::Union,
36669 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36670 }
36671
36672 impl ::fidl_next::Constrained for Expose<'_> {
36673 type Constraint = ();
36674
36675 fn validate(
36676 _: ::fidl_next::Slot<'_, Self>,
36677 _: Self::Constraint,
36678 ) -> Result<(), ::fidl_next::ValidationError> {
36679 Ok(())
36680 }
36681 }
36682
36683 unsafe impl ::fidl_next::Wire for Expose<'static> {
36684 type Narrowed<'de> = Expose<'de>;
36685
36686 #[inline]
36687 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36688 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36689 ::fidl_next::wire::Union::zero_padding(raw);
36690 }
36691 }
36692
36693 impl<'de> Expose<'de> {
36694 pub fn is_some(&self) -> bool {
36695 self.raw.is_some()
36696 }
36697
36698 pub fn is_none(&self) -> bool {
36699 self.raw.is_none()
36700 }
36701
36702 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Expose<'de>> {
36703 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36704 }
36705
36706 pub fn into_option(self) -> ::core::option::Option<crate::wire::Expose<'de>> {
36707 if self.is_some() {
36708 Some(crate::wire::Expose { raw: self.raw, _phantom: ::core::marker::PhantomData })
36709 } else {
36710 None
36711 }
36712 }
36713 }
36714
36715 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Expose<'de>
36716 where
36717 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36718 ___D: ::fidl_next::Decoder<'de>,
36719 {
36720 fn decode(
36721 mut slot: ::fidl_next::Slot<'_, Self>,
36722 decoder: &mut ___D,
36723 _: (),
36724 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36725 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36726 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36727 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeService<'de>>(
36728 raw,
36729 decoder,
36730 (),
36731 )?,
36732
36733 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeProtocol<'de>>(
36734 raw,
36735 decoder,
36736 (),
36737 )?,
36738
36739 3 => {
36740 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDirectory<'de>>(
36741 raw,
36742 decoder,
36743 (),
36744 )?
36745 }
36746
36747 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeRunner<'de>>(
36748 raw,
36749 decoder,
36750 (),
36751 )?,
36752
36753 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeResolver<'de>>(
36754 raw,
36755 decoder,
36756 (),
36757 )?,
36758
36759 7 => {
36760 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ExposeDictionary<'de>>(
36761 raw,
36762 decoder,
36763 (),
36764 )?
36765 }
36766
36767 8 => ::fidl_next::wire::Union::decode_as::<
36768 ___D,
36769 crate::wire::ExposeConfiguration<'de>,
36770 >(raw, decoder, ())?,
36771
36772 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36773 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36774 }
36775
36776 Ok(())
36777 }
36778 }
36779
36780 impl<'de> ::core::fmt::Debug for Expose<'de> {
36781 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36782 self.as_ref().fmt(f)
36783 }
36784 }
36785
36786 impl<'de> ::fidl_next::IntoNatural for Expose<'de> {
36787 type Natural = ::core::option::Option<crate::natural::Expose>;
36788 }
36789
36790 #[repr(transparent)]
36791 pub struct Offer<'de> {
36792 pub(crate) raw: ::fidl_next::wire::Union,
36793 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36794 }
36795
36796 impl ::fidl_next::Constrained for Offer<'_> {
36797 type Constraint = ();
36798
36799 fn validate(
36800 _: ::fidl_next::Slot<'_, Self>,
36801 _: Self::Constraint,
36802 ) -> Result<(), ::fidl_next::ValidationError> {
36803 Ok(())
36804 }
36805 }
36806
36807 unsafe impl ::fidl_next::Wire for Offer<'static> {
36808 type Narrowed<'de> = Offer<'de>;
36809
36810 #[inline]
36811 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36812 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36813 ::fidl_next::wire::Union::zero_padding(raw);
36814 }
36815 }
36816
36817 impl<'de> Offer<'de> {
36818 pub fn is_some(&self) -> bool {
36819 self.raw.is_some()
36820 }
36821
36822 pub fn is_none(&self) -> bool {
36823 self.raw.is_none()
36824 }
36825
36826 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::Offer<'de>> {
36827 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36828 }
36829
36830 pub fn into_option(self) -> ::core::option::Option<crate::wire::Offer<'de>> {
36831 if self.is_some() {
36832 Some(crate::wire::Offer { raw: self.raw, _phantom: ::core::marker::PhantomData })
36833 } else {
36834 None
36835 }
36836 }
36837 }
36838
36839 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Offer<'de>
36840 where
36841 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36842 ___D: ::fidl_next::Decoder<'de>,
36843 {
36844 fn decode(
36845 mut slot: ::fidl_next::Slot<'_, Self>,
36846 decoder: &mut ___D,
36847 _: (),
36848 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36849 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36850 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36851 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferService<'de>>(
36852 raw,
36853 decoder,
36854 (),
36855 )?,
36856
36857 2 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferProtocol<'de>>(
36858 raw,
36859 decoder,
36860 (),
36861 )?,
36862
36863 3 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDirectory<'de>>(
36864 raw,
36865 decoder,
36866 (),
36867 )?,
36868
36869 4 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferStorage<'de>>(
36870 raw,
36871 decoder,
36872 (),
36873 )?,
36874
36875 5 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferRunner<'de>>(
36876 raw,
36877 decoder,
36878 (),
36879 )?,
36880
36881 6 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferResolver<'de>>(
36882 raw,
36883 decoder,
36884 (),
36885 )?,
36886
36887 8 => {
36888 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferEventStream<'de>>(
36889 raw,
36890 decoder,
36891 (),
36892 )?
36893 }
36894
36895 9 => {
36896 ::fidl_next::wire::Union::decode_as::<___D, crate::wire::OfferDictionary<'de>>(
36897 raw,
36898 decoder,
36899 (),
36900 )?
36901 }
36902
36903 10 => ::fidl_next::wire::Union::decode_as::<
36904 ___D,
36905 crate::wire::OfferConfiguration<'de>,
36906 >(raw, decoder, ())?,
36907
36908 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36909 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36910 }
36911
36912 Ok(())
36913 }
36914 }
36915
36916 impl<'de> ::core::fmt::Debug for Offer<'de> {
36917 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
36918 self.as_ref().fmt(f)
36919 }
36920 }
36921
36922 impl<'de> ::fidl_next::IntoNatural for Offer<'de> {
36923 type Natural = ::core::option::Option<crate::natural::Offer>;
36924 }
36925
36926 #[repr(transparent)]
36927 pub struct DebugRegistration<'de> {
36928 pub(crate) raw: ::fidl_next::wire::Union,
36929 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
36930 }
36931
36932 impl ::fidl_next::Constrained for DebugRegistration<'_> {
36933 type Constraint = ();
36934
36935 fn validate(
36936 _: ::fidl_next::Slot<'_, Self>,
36937 _: Self::Constraint,
36938 ) -> Result<(), ::fidl_next::ValidationError> {
36939 Ok(())
36940 }
36941 }
36942
36943 unsafe impl ::fidl_next::Wire for DebugRegistration<'static> {
36944 type Narrowed<'de> = DebugRegistration<'de>;
36945
36946 #[inline]
36947 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
36948 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
36949 ::fidl_next::wire::Union::zero_padding(raw);
36950 }
36951 }
36952
36953 impl<'de> DebugRegistration<'de> {
36954 pub fn is_some(&self) -> bool {
36955 self.raw.is_some()
36956 }
36957
36958 pub fn is_none(&self) -> bool {
36959 self.raw.is_none()
36960 }
36961
36962 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::DebugRegistration<'de>> {
36963 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
36964 }
36965
36966 pub fn into_option(self) -> ::core::option::Option<crate::wire::DebugRegistration<'de>> {
36967 if self.is_some() {
36968 Some(crate::wire::DebugRegistration {
36969 raw: self.raw,
36970 _phantom: ::core::marker::PhantomData,
36971 })
36972 } else {
36973 None
36974 }
36975 }
36976 }
36977
36978 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DebugRegistration<'de>
36979 where
36980 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
36981 ___D: ::fidl_next::Decoder<'de>,
36982 {
36983 fn decode(
36984 mut slot: ::fidl_next::Slot<'_, Self>,
36985 decoder: &mut ___D,
36986 _: (),
36987 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
36988 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
36989 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
36990 1 => ::fidl_next::wire::Union::decode_as::<
36991 ___D,
36992 crate::wire::DebugProtocolRegistration<'de>,
36993 >(raw, decoder, ())?,
36994
36995 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
36996 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
36997 }
36998
36999 Ok(())
37000 }
37001 }
37002
37003 impl<'de> ::core::fmt::Debug for DebugRegistration<'de> {
37004 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37005 self.as_ref().fmt(f)
37006 }
37007 }
37008
37009 impl<'de> ::fidl_next::IntoNatural for DebugRegistration<'de> {
37010 type Natural = ::core::option::Option<crate::natural::DebugRegistration>;
37011 }
37012
37013 #[repr(transparent)]
37014 pub struct ConfigValueSource<'de> {
37015 pub(crate) raw: ::fidl_next::wire::Union,
37016 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
37017 }
37018
37019 impl ::fidl_next::Constrained for ConfigValueSource<'_> {
37020 type Constraint = ();
37021
37022 fn validate(
37023 _: ::fidl_next::Slot<'_, Self>,
37024 _: Self::Constraint,
37025 ) -> Result<(), ::fidl_next::ValidationError> {
37026 Ok(())
37027 }
37028 }
37029
37030 unsafe impl ::fidl_next::Wire for ConfigValueSource<'static> {
37031 type Narrowed<'de> = ConfigValueSource<'de>;
37032
37033 #[inline]
37034 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
37035 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
37036 ::fidl_next::wire::Union::zero_padding(raw);
37037 }
37038 }
37039
37040 impl<'de> ConfigValueSource<'de> {
37041 pub fn is_some(&self) -> bool {
37042 self.raw.is_some()
37043 }
37044
37045 pub fn is_none(&self) -> bool {
37046 self.raw.is_none()
37047 }
37048
37049 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::ConfigValueSource<'de>> {
37050 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
37051 }
37052
37053 pub fn into_option(self) -> ::core::option::Option<crate::wire::ConfigValueSource<'de>> {
37054 if self.is_some() {
37055 Some(crate::wire::ConfigValueSource {
37056 raw: self.raw,
37057 _phantom: ::core::marker::PhantomData,
37058 })
37059 } else {
37060 None
37061 }
37062 }
37063 }
37064
37065 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for ConfigValueSource<'de>
37066 where
37067 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
37068 ___D: ::fidl_next::Decoder<'de>,
37069 {
37070 fn decode(
37071 mut slot: ::fidl_next::Slot<'_, Self>,
37072 decoder: &mut ___D,
37073 _: (),
37074 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
37075 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
37076 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
37077 1 => ::fidl_next::wire::Union::decode_as::<___D, ::fidl_next::wire::String<'de>>(
37078 raw, decoder, 4294967295,
37079 )?,
37080
37081 2 => ::fidl_next::wire::Union::decode_as::<
37082 ___D,
37083 crate::wire::ConfigSourceCapabilities<'de>,
37084 >(raw, decoder, ())?,
37085
37086 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
37087 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
37088 }
37089
37090 Ok(())
37091 }
37092 }
37093
37094 impl<'de> ::core::fmt::Debug for ConfigValueSource<'de> {
37095 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37096 self.as_ref().fmt(f)
37097 }
37098 }
37099
37100 impl<'de> ::fidl_next::IntoNatural for ConfigValueSource<'de> {
37101 type Natural = ::core::option::Option<crate::natural::ConfigValueSource>;
37102 }
37103
37104 #[repr(transparent)]
37105 pub struct LayoutParameter<'de> {
37106 pub(crate) raw: ::fidl_next::wire::Union,
37107 pub(crate) _phantom: ::core::marker::PhantomData<&'de mut [::fidl_next::Chunk]>,
37108 }
37109
37110 impl ::fidl_next::Constrained for LayoutParameter<'_> {
37111 type Constraint = ();
37112
37113 fn validate(
37114 _: ::fidl_next::Slot<'_, Self>,
37115 _: Self::Constraint,
37116 ) -> Result<(), ::fidl_next::ValidationError> {
37117 Ok(())
37118 }
37119 }
37120
37121 unsafe impl ::fidl_next::Wire for LayoutParameter<'static> {
37122 type Narrowed<'de> = LayoutParameter<'de>;
37123
37124 #[inline]
37125 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
37126 ::fidl_next::munge!(let Self { raw, _phantom: _ } = out);
37127 ::fidl_next::wire::Union::zero_padding(raw);
37128 }
37129 }
37130
37131 impl<'de> LayoutParameter<'de> {
37132 pub fn is_some(&self) -> bool {
37133 self.raw.is_some()
37134 }
37135
37136 pub fn is_none(&self) -> bool {
37137 self.raw.is_none()
37138 }
37139
37140 pub fn as_ref(&self) -> ::core::option::Option<&crate::wire::LayoutParameter<'de>> {
37141 if self.is_some() { Some(unsafe { &*(self as *const Self).cast() }) } else { None }
37142 }
37143
37144 pub fn into_option(self) -> ::core::option::Option<crate::wire::LayoutParameter<'de>> {
37145 if self.is_some() {
37146 Some(crate::wire::LayoutParameter {
37147 raw: self.raw,
37148 _phantom: ::core::marker::PhantomData,
37149 })
37150 } else {
37151 None
37152 }
37153 }
37154 }
37155
37156 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for LayoutParameter<'de>
37157 where
37158 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
37159 ___D: ::fidl_next::Decoder<'de>,
37160 {
37161 fn decode(
37162 mut slot: ::fidl_next::Slot<'_, Self>,
37163 decoder: &mut ___D,
37164 _: (),
37165 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
37166 ::fidl_next::munge!(let Self { mut raw, _phantom: _ } = slot.as_mut());
37167 match ::fidl_next::wire::Union::encoded_ordinal(raw.as_mut()) {
37168 1 => ::fidl_next::wire::Union::decode_as::<___D, crate::wire::ConfigType<'de>>(
37169 raw,
37170 decoder,
37171 (),
37172 )?,
37173
37174 0 => ::fidl_next::wire::Union::decode_absent(raw)?,
37175 _ => ::fidl_next::wire::Union::decode_unknown(raw, decoder)?,
37176 }
37177
37178 Ok(())
37179 }
37180 }
37181
37182 impl<'de> ::core::fmt::Debug for LayoutParameter<'de> {
37183 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37184 self.as_ref().fmt(f)
37185 }
37186 }
37187
37188 impl<'de> ::fidl_next::IntoNatural for LayoutParameter<'de> {
37189 type Natural = ::core::option::Option<crate::natural::LayoutParameter>;
37190 }
37191}
37192
37193pub mod generic {
37194
37195 pub type ParentRef = ();
37197
37198 pub type SelfRef = ();
37200
37201 pub struct ChildRef<T0, T1> {
37203 pub name: T0,
37204
37205 pub collection: T1,
37206 }
37207
37208 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ChildRef<'static>, ___E>
37209 for ChildRef<T0, T1>
37210 where
37211 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37212 ___E: ::fidl_next::Encoder,
37213 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37214 T1: ::fidl_next::Encode<::fidl_next::wire::OptionalString<'static>, ___E>,
37215 {
37216 #[inline]
37217 fn encode(
37218 self,
37219 encoder_: &mut ___E,
37220 out_: &mut ::core::mem::MaybeUninit<crate::wire::ChildRef<'static>>,
37221 _: (),
37222 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37223 ::fidl_next::munge! {
37224 let crate::wire::ChildRef {
37225 name,
37226 collection,
37227
37228 } = out_;
37229 }
37230
37231 ::fidl_next::Encode::encode(self.name, encoder_, name, 1024)?;
37232
37233 ::fidl_next::Encode::encode(self.collection, encoder_, collection, 100)?;
37234
37235 Ok(())
37236 }
37237 }
37238
37239 pub struct CollectionRef<T0> {
37241 pub name: T0,
37242 }
37243
37244 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::CollectionRef<'static>, ___E>
37245 for CollectionRef<T0>
37246 where
37247 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37248 ___E: ::fidl_next::Encoder,
37249 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37250 {
37251 #[inline]
37252 fn encode(
37253 self,
37254 encoder_: &mut ___E,
37255 out_: &mut ::core::mem::MaybeUninit<crate::wire::CollectionRef<'static>>,
37256 _: (),
37257 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37258 ::fidl_next::munge! {
37259 let crate::wire::CollectionRef {
37260 name,
37261
37262 } = out_;
37263 }
37264
37265 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
37266
37267 Ok(())
37268 }
37269 }
37270
37271 pub type FrameworkRef = ();
37273
37274 pub struct CapabilityRef<T0> {
37276 pub name: T0,
37277 }
37278
37279 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::CapabilityRef<'static>, ___E>
37280 for CapabilityRef<T0>
37281 where
37282 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37283 ___E: ::fidl_next::Encoder,
37284 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37285 {
37286 #[inline]
37287 fn encode(
37288 self,
37289 encoder_: &mut ___E,
37290 out_: &mut ::core::mem::MaybeUninit<crate::wire::CapabilityRef<'static>>,
37291 _: (),
37292 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37293 ::fidl_next::munge! {
37294 let crate::wire::CapabilityRef {
37295 name,
37296
37297 } = out_;
37298 }
37299
37300 ::fidl_next::Encode::encode(self.name, encoder_, name, 100)?;
37301
37302 Ok(())
37303 }
37304 }
37305
37306 pub type DebugRef = ();
37308
37309 pub type VoidRef = ();
37311
37312 pub type EnvironmentRef = ();
37314
37315 pub struct NameMapping<T0, T1> {
37317 pub source_name: T0,
37318
37319 pub target_name: T1,
37320 }
37321
37322 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::NameMapping<'static>, ___E>
37323 for NameMapping<T0, T1>
37324 where
37325 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37326 ___E: ::fidl_next::Encoder,
37327 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37328 T1: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37329 {
37330 #[inline]
37331 fn encode(
37332 self,
37333 encoder_: &mut ___E,
37334 out_: &mut ::core::mem::MaybeUninit<crate::wire::NameMapping<'static>>,
37335 _: (),
37336 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37337 ::fidl_next::munge! {
37338 let crate::wire::NameMapping {
37339 source_name,
37340 target_name,
37341
37342 } = out_;
37343 }
37344
37345 ::fidl_next::Encode::encode(self.source_name, encoder_, source_name, 100)?;
37346
37347 ::fidl_next::Encode::encode(self.target_name, encoder_, target_name, 100)?;
37348
37349 Ok(())
37350 }
37351 }
37352
37353 pub struct ConfigType<T0, T1, T2> {
37355 pub layout: T0,
37356
37357 pub parameters: T1,
37358
37359 pub constraints: T2,
37360 }
37361
37362 unsafe impl<___E, T0, T1, T2> ::fidl_next::Encode<crate::wire::ConfigType<'static>, ___E>
37363 for ConfigType<T0, T1, T2>
37364 where
37365 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37366 ___E: ::fidl_next::Encoder,
37367 T0: ::fidl_next::Encode<crate::wire::ConfigTypeLayout, ___E>,
37368 T1: ::fidl_next::Encode<
37369 ::fidl_next::wire::OptionalVector<'static, crate::wire::LayoutParameter<'static>>,
37370 ___E,
37371 >,
37372 T2: ::fidl_next::Encode<
37373 ::fidl_next::wire::Vector<'static, crate::wire::LayoutConstraint<'static>>,
37374 ___E,
37375 >,
37376 {
37377 #[inline]
37378 fn encode(
37379 self,
37380 encoder_: &mut ___E,
37381 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConfigType<'static>>,
37382 _: (),
37383 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37384 ::fidl_next::munge! {
37385 let crate::wire::ConfigType {
37386 layout,
37387 parameters,
37388 constraints,
37389
37390 } = out_;
37391 }
37392
37393 ::fidl_next::Encode::encode(self.layout, encoder_, layout, ())?;
37394
37395 ::fidl_next::Encode::encode(self.parameters, encoder_, parameters, (4294967295, ()))?;
37396
37397 ::fidl_next::Encode::encode(self.constraints, encoder_, constraints, (4294967295, ()))?;
37398
37399 Ok(())
37400 }
37401 }
37402
37403 pub struct ResolvedConfigField<T0, T1> {
37405 pub key: T0,
37406
37407 pub value: T1,
37408 }
37409
37410 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ResolvedConfigField<'static>, ___E>
37411 for ResolvedConfigField<T0, T1>
37412 where
37413 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37414 ___E: ::fidl_next::Encoder,
37415 T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
37416 T1: ::fidl_next::Encode<crate::wire::ConfigValue<'static>, ___E>,
37417 {
37418 #[inline]
37419 fn encode(
37420 self,
37421 encoder_: &mut ___E,
37422 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfigField<'static>>,
37423 _: (),
37424 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37425 ::fidl_next::munge! {
37426 let crate::wire::ResolvedConfigField {
37427 key,
37428 value,
37429
37430 } = out_;
37431 }
37432
37433 ::fidl_next::Encode::encode(self.key, encoder_, key, 4294967295)?;
37434
37435 ::fidl_next::Encode::encode(self.value, encoder_, value, ())?;
37436
37437 Ok(())
37438 }
37439 }
37440
37441 pub struct ResolvedConfig<T0, T1> {
37443 pub fields: T0,
37444
37445 pub checksum: T1,
37446 }
37447
37448 unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::ResolvedConfig<'static>, ___E>
37449 for ResolvedConfig<T0, T1>
37450 where
37451 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
37452 ___E: ::fidl_next::Encoder,
37453 T0: ::fidl_next::Encode<
37454 ::fidl_next::wire::Vector<'static, crate::wire::ResolvedConfigField<'static>>,
37455 ___E,
37456 >,
37457 T1: ::fidl_next::Encode<crate::wire::ConfigChecksum<'static>, ___E>,
37458 {
37459 #[inline]
37460 fn encode(
37461 self,
37462 encoder_: &mut ___E,
37463 out_: &mut ::core::mem::MaybeUninit<crate::wire::ResolvedConfig<'static>>,
37464 _: (),
37465 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
37466 ::fidl_next::munge! {
37467 let crate::wire::ResolvedConfig {
37468 fields,
37469 checksum,
37470
37471 } = out_;
37472 }
37473
37474 ::fidl_next::Encode::encode(self.fields, encoder_, fields, (4294967295, ()))?;
37475
37476 ::fidl_next::Encode::encode(self.checksum, encoder_, checksum, ())?;
37477
37478 Ok(())
37479 }
37480 }
37481}
37482
37483pub use self::natural::*;
37484
37485#[doc = " Config keys can only consist of these many bytes\n"]
37486pub const CONFIG_KEY_MAX_SIZE: u32 = 64 as u32;
37487
37488pub const MAX_NAME_LENGTH: u32 = 100 as u32;
37489
37490pub const MAX_PATH_LENGTH: u32 = 1024 as u32;
37491
37492pub const MAX_CHILD_NAME_LENGTH: u32 = 1024 as u32;
37493
37494pub const MAX_URL_SCHEME_LENGTH: u32 = 100 as u32;
37495
37496pub const MAX_MONIKER_LENGTH: u32 = 4096 as u32;
37497
37498#[doc = " The maximum number of EventSubscriptions in an EventStream.\n"]
37499pub const MAX_NUM_EVENT_STREAM_SUBSCRIPTIONS: u64 = 100 as u64;