1#![warn(clippy::all)]
3#![allow(unused_parens, unused_variables, unused_mut, unused_imports, unreachable_code)]
4
5pub mod natural {
6
7 pub use fidl_next_common_fuchsia_device_fs::natural::*;
8
9 #[derive(Debug, PartialEq)]
10 #[repr(C)]
11 pub struct ConnectorConnectRequest {
12 pub server: ::fidl_next::fuchsia::zx::Channel,
13 }
14
15 unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConnectorConnectRequest, ___E>
16 for ConnectorConnectRequest
17 where
18 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
19 ___E: ::fidl_next::fuchsia::HandleEncoder,
20 {
21 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
22 Self,
23 crate::wire::ConnectorConnectRequest,
24 > = unsafe {
25 ::fidl_next::CopyOptimization::enable_if(
26 true && <::fidl_next::fuchsia::zx::Channel as ::fidl_next::Encode<
27 ::fidl_next::wire::fuchsia::Channel,
28 ___E,
29 >>::COPY_OPTIMIZATION
30 .is_enabled(),
31 )
32 };
33
34 #[inline]
35 fn encode(
36 self,
37 encoder_: &mut ___E,
38 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConnectorConnectRequest>,
39 _: (),
40 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
41 ::fidl_next::munge! {
42 let crate::wire::ConnectorConnectRequest {
43 server,
44
45 } = out_;
46 }
47
48 ::fidl_next::Encode::encode(self.server, encoder_, server, ())?;
49
50 let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(server.as_mut_ptr()) };
51
52 Ok(())
53 }
54 }
55
56 unsafe impl<___E>
57 ::fidl_next::EncodeOption<
58 ::fidl_next::wire::Box<'static, crate::wire::ConnectorConnectRequest>,
59 ___E,
60 > for ConnectorConnectRequest
61 where
62 ___E: ::fidl_next::Encoder + ?Sized,
63 ConnectorConnectRequest: ::fidl_next::Encode<crate::wire::ConnectorConnectRequest, ___E>,
64 {
65 #[inline]
66 fn encode_option(
67 this: ::core::option::Option<Self>,
68 encoder: &mut ___E,
69 out: &mut ::core::mem::MaybeUninit<
70 ::fidl_next::wire::Box<'static, crate::wire::ConnectorConnectRequest>,
71 >,
72 _: (),
73 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
74 if let Some(inner) = this {
75 ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
76 ::fidl_next::wire::Box::encode_present(out);
77 } else {
78 ::fidl_next::wire::Box::encode_absent(out);
79 }
80
81 Ok(())
82 }
83 }
84
85 impl ::fidl_next::FromWire<crate::wire::ConnectorConnectRequest> for ConnectorConnectRequest {
86 const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
87 crate::wire::ConnectorConnectRequest,
88 Self,
89 > = unsafe {
90 ::fidl_next::CopyOptimization::enable_if(
91 true && <::fidl_next::fuchsia::zx::Channel as ::fidl_next::FromWire<
92 ::fidl_next::wire::fuchsia::Channel,
93 >>::COPY_OPTIMIZATION
94 .is_enabled(),
95 )
96 };
97
98 #[inline]
99 fn from_wire(wire: crate::wire::ConnectorConnectRequest) -> Self {
100 Self { server: ::fidl_next::FromWire::from_wire(wire.server) }
101 }
102 }
103
104 #[derive(Debug, Default, PartialEq)]
105 pub struct DevfsAddArgs {
106 pub connector: ::core::option::Option<
107 ::fidl_next::ClientEnd<crate::Connector, ::fidl_next::fuchsia::zx::Channel>,
108 >,
109
110 pub class_name: ::core::option::Option<::std::string::String>,
111
112 pub inspect: ::core::option::Option<::fidl_next::fuchsia::zx::Vmo>,
113
114 pub connector_supports: ::core::option::Option<crate::natural::ConnectionType>,
115
116 pub controller_connector: ::core::option::Option<
117 ::fidl_next::ClientEnd<crate::Connector, ::fidl_next::fuchsia::zx::Channel>,
118 >,
119 }
120
121 impl DevfsAddArgs {
122 fn __max_ordinal(&self) -> usize {
123 if self.controller_connector.is_some() {
124 return 5;
125 }
126
127 if self.connector_supports.is_some() {
128 return 4;
129 }
130
131 if self.inspect.is_some() {
132 return 3;
133 }
134
135 if self.class_name.is_some() {
136 return 2;
137 }
138
139 if self.connector.is_some() {
140 return 1;
141 }
142
143 0
144 }
145 }
146
147 unsafe impl<___E> ::fidl_next::Encode<crate::wire::DevfsAddArgs<'static>, ___E> for DevfsAddArgs
148 where
149 ___E: ::fidl_next::Encoder + ?Sized,
150 ___E: ::fidl_next::fuchsia::HandleEncoder,
151 {
152 #[inline]
153 fn encode(
154 mut self,
155 encoder: &mut ___E,
156 out: &mut ::core::mem::MaybeUninit<crate::wire::DevfsAddArgs<'static>>,
157 _: (),
158 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
159 ::fidl_next::munge!(let crate::wire::DevfsAddArgs { table } = out);
160
161 let max_ord = self.__max_ordinal();
162
163 let mut out = ::core::mem::MaybeUninit::<::fidl_next::wire::Envelope>::uninit();
164 ::fidl_next::Wire::zero_padding(&mut out);
165
166 let mut preallocated = ::fidl_next::EncoderExt::preallocate::<
167 ::fidl_next::wire::Envelope,
168 >(encoder, max_ord);
169
170 for i in 1..=max_ord {
171 match i {
172 5 => {
173 if let Some(value) = self.controller_connector.take() {
174 ::fidl_next::wire::Envelope::encode_value::<
175 ::fidl_next::ClientEnd<
176 crate::Connector,
177 ::fidl_next::wire::fuchsia::Channel,
178 >,
179 ___E,
180 >(
181 value, preallocated.encoder, &mut out, ()
182 )?;
183 } else {
184 ::fidl_next::wire::Envelope::encode_zero(&mut out)
185 }
186 }
187
188 4 => {
189 if let Some(value) = self.connector_supports.take() {
190 ::fidl_next::wire::Envelope::encode_value::<
191 crate::wire::ConnectionType,
192 ___E,
193 >(
194 value, preallocated.encoder, &mut out, ()
195 )?;
196 } else {
197 ::fidl_next::wire::Envelope::encode_zero(&mut out)
198 }
199 }
200
201 3 => {
202 if let Some(value) = self.inspect.take() {
203 ::fidl_next::wire::Envelope::encode_value::<
204 ::fidl_next::wire::fuchsia::Vmo,
205 ___E,
206 >(
207 value, preallocated.encoder, &mut out, ()
208 )?;
209 } else {
210 ::fidl_next::wire::Envelope::encode_zero(&mut out)
211 }
212 }
213
214 2 => {
215 if let Some(value) = self.class_name.take() {
216 ::fidl_next::wire::Envelope::encode_value::<
217 ::fidl_next::wire::String<'static>,
218 ___E,
219 >(
220 value, preallocated.encoder, &mut out, 255
221 )?;
222 } else {
223 ::fidl_next::wire::Envelope::encode_zero(&mut out)
224 }
225 }
226
227 1 => {
228 if let Some(value) = self.connector.take() {
229 ::fidl_next::wire::Envelope::encode_value::<
230 ::fidl_next::ClientEnd<
231 crate::Connector,
232 ::fidl_next::wire::fuchsia::Channel,
233 >,
234 ___E,
235 >(
236 value, preallocated.encoder, &mut out, ()
237 )?;
238 } else {
239 ::fidl_next::wire::Envelope::encode_zero(&mut out)
240 }
241 }
242
243 _ => ::fidl_next::wire::Envelope::encode_zero(&mut out),
244 }
245 unsafe {
246 preallocated.write_next(out.assume_init_ref());
247 }
248 }
249
250 ::fidl_next::wire::Table::encode_len(table, max_ord);
251
252 Ok(())
253 }
254 }
255
256 impl<'de> ::fidl_next::FromWire<crate::wire::DevfsAddArgs<'de>> for DevfsAddArgs {
257 #[inline]
258 fn from_wire(wire_: crate::wire::DevfsAddArgs<'de>) -> Self {
259 let wire_ = ::core::mem::ManuallyDrop::new(wire_);
260
261 let connector = wire_.table.get(1);
262
263 let class_name = wire_.table.get(2);
264
265 let inspect = wire_.table.get(3);
266
267 let connector_supports = wire_.table.get(4);
268
269 let controller_connector = wire_.table.get(5);
270
271 Self {
272 connector: connector.map(|envelope| {
273 ::fidl_next::FromWire::from_wire(unsafe {
274 envelope.read_unchecked::<::fidl_next::ClientEnd<
275 crate::Connector,
276 ::fidl_next::wire::fuchsia::Channel,
277 >>()
278 })
279 }),
280
281 class_name: class_name.map(|envelope| {
282 ::fidl_next::FromWire::from_wire(unsafe {
283 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
284 })
285 }),
286
287 inspect: inspect.map(|envelope| {
288 ::fidl_next::FromWire::from_wire(unsafe {
289 envelope.read_unchecked::<::fidl_next::wire::fuchsia::Vmo>()
290 })
291 }),
292
293 connector_supports: connector_supports.map(|envelope| {
294 ::fidl_next::FromWire::from_wire(unsafe {
295 envelope.read_unchecked::<crate::wire::ConnectionType>()
296 })
297 }),
298
299 controller_connector: controller_connector.map(|envelope| {
300 ::fidl_next::FromWire::from_wire(unsafe {
301 envelope.read_unchecked::<::fidl_next::ClientEnd<
302 crate::Connector,
303 ::fidl_next::wire::fuchsia::Channel,
304 >>()
305 })
306 }),
307 }
308 }
309 }
310}
311
312pub mod wire {
313
314 pub use fidl_next_common_fuchsia_device_fs::wire::*;
315
316 #[derive(Debug)]
318 #[repr(C)]
319 pub struct ConnectorConnectRequest {
320 pub server: ::fidl_next::wire::fuchsia::Channel,
321 }
322
323 static_assertions::const_assert_eq!(std::mem::size_of::<ConnectorConnectRequest>(), 4);
324 static_assertions::const_assert_eq!(std::mem::align_of::<ConnectorConnectRequest>(), 4);
325
326 static_assertions::const_assert_eq!(std::mem::offset_of!(ConnectorConnectRequest, server), 0);
327
328 impl ::fidl_next::Constrained for ConnectorConnectRequest {
329 type Constraint = ();
330
331 fn validate(
332 _: ::fidl_next::Slot<'_, Self>,
333 _: Self::Constraint,
334 ) -> Result<(), ::fidl_next::ValidationError> {
335 Ok(())
336 }
337 }
338
339 unsafe impl ::fidl_next::Wire for ConnectorConnectRequest {
340 type Narrowed<'de> = ConnectorConnectRequest;
341
342 #[inline]
343 fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
344 ::fidl_next::munge! {
345 let Self {
346 server,
347
348 } = &mut *out_;
349 }
350
351 ::fidl_next::Wire::zero_padding(server);
352 }
353 }
354
355 unsafe impl<___D> ::fidl_next::Decode<___D> for ConnectorConnectRequest
356 where
357 ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
358 ___D: ::fidl_next::fuchsia::HandleDecoder,
359 {
360 fn decode(
361 slot_: ::fidl_next::Slot<'_, Self>,
362 decoder_: &mut ___D,
363 _: (),
364 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
365 ::fidl_next::munge! {
366 let Self {
367 mut server,
368
369 } = slot_;
370 }
371
372 let _field = server.as_mut();
373
374 ::fidl_next::Decode::decode(server.as_mut(), decoder_, ())?;
375
376 Ok(())
377 }
378 }
379
380 impl ::fidl_next::IntoNatural for ConnectorConnectRequest {
381 type Natural = crate::natural::ConnectorConnectRequest;
382 }
383
384 #[repr(C)]
386 pub struct DevfsAddArgs<'de> {
387 pub(crate) table: ::fidl_next::wire::Table<'de>,
388 }
389
390 impl<'de> Drop for DevfsAddArgs<'de> {
391 fn drop(&mut self) {
392 let _ =
393 self.table.get(1).map(|envelope| unsafe {
394 envelope.read_unchecked::<::fidl_next::ClientEnd<
395 crate::Connector,
396 ::fidl_next::wire::fuchsia::Channel,
397 >>()
398 });
399
400 let _ = self.table.get(2).map(|envelope| unsafe {
401 envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
402 });
403
404 let _ = self.table.get(3).map(|envelope| unsafe {
405 envelope.read_unchecked::<::fidl_next::wire::fuchsia::Vmo>()
406 });
407
408 let _ = self.table.get(4).map(|envelope| unsafe {
409 envelope.read_unchecked::<crate::wire::ConnectionType>()
410 });
411
412 let _ =
413 self.table.get(5).map(|envelope| unsafe {
414 envelope.read_unchecked::<::fidl_next::ClientEnd<
415 crate::Connector,
416 ::fidl_next::wire::fuchsia::Channel,
417 >>()
418 });
419 }
420 }
421
422 impl ::fidl_next::Constrained for DevfsAddArgs<'_> {
423 type Constraint = ();
424
425 fn validate(
426 _: ::fidl_next::Slot<'_, Self>,
427 _: Self::Constraint,
428 ) -> Result<(), ::fidl_next::ValidationError> {
429 Ok(())
430 }
431 }
432
433 unsafe impl ::fidl_next::Wire for DevfsAddArgs<'static> {
434 type Narrowed<'de> = DevfsAddArgs<'de>;
435
436 #[inline]
437 fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
438 ::fidl_next::munge!(let Self { table } = out);
439 ::fidl_next::wire::Table::zero_padding(table);
440 }
441 }
442
443 unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DevfsAddArgs<'de>
444 where
445 ___D: ::fidl_next::Decoder<'de> + ?Sized,
446 ___D: ::fidl_next::fuchsia::HandleDecoder,
447 {
448 fn decode(
449 slot: ::fidl_next::Slot<'_, Self>,
450 decoder: &mut ___D,
451 _: (),
452 ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
453 ::fidl_next::munge!(let Self { table } = slot);
454
455 ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
456 match ordinal {
457 0 => unsafe { ::core::hint::unreachable_unchecked() },
458
459 1 => {
460 ::fidl_next::wire::Envelope::decode_as::<
461 ___D,
462 ::fidl_next::ClientEnd<
463 crate::Connector,
464 ::fidl_next::wire::fuchsia::Channel,
465 >,
466 >(slot.as_mut(), decoder, ())?;
467
468 Ok(())
469 }
470
471 2 => {
472 ::fidl_next::wire::Envelope::decode_as::<
473 ___D,
474 ::fidl_next::wire::String<'de>,
475 >(slot.as_mut(), decoder, 255)?;
476
477 let value = unsafe {
478 slot.deref_unchecked()
479 .deref_unchecked::<::fidl_next::wire::String<'_>>()
480 };
481
482 if value.len() > 255 {
483 return Err(::fidl_next::DecodeError::VectorTooLong {
484 size: value.len() as u64,
485 limit: 255,
486 });
487 }
488
489 Ok(())
490 }
491
492 3 => {
493 ::fidl_next::wire::Envelope::decode_as::<
494 ___D,
495 ::fidl_next::wire::fuchsia::Vmo,
496 >(slot.as_mut(), decoder, ())?;
497
498 Ok(())
499 }
500
501 4 => {
502 ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::ConnectionType>(
503 slot.as_mut(),
504 decoder,
505 (),
506 )?;
507
508 Ok(())
509 }
510
511 5 => {
512 ::fidl_next::wire::Envelope::decode_as::<
513 ___D,
514 ::fidl_next::ClientEnd<
515 crate::Connector,
516 ::fidl_next::wire::fuchsia::Channel,
517 >,
518 >(slot.as_mut(), decoder, ())?;
519
520 Ok(())
521 }
522
523 _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
524 }
525 })
526 }
527 }
528
529 impl<'de> DevfsAddArgs<'de> {
530 pub fn connector(
531 &self,
532 ) -> ::core::option::Option<
533 &::fidl_next::ClientEnd<crate::Connector, ::fidl_next::wire::fuchsia::Channel>,
534 > {
535 unsafe { Some(self.table.get(1)?.deref_unchecked()) }
536 }
537
538 pub fn class_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
539 unsafe { Some(self.table.get(2)?.deref_unchecked()) }
540 }
541
542 pub fn inspect(&self) -> ::core::option::Option<&::fidl_next::wire::fuchsia::Vmo> {
543 unsafe { Some(self.table.get(3)?.deref_unchecked()) }
544 }
545
546 pub fn connector_supports(&self) -> ::core::option::Option<&crate::wire::ConnectionType> {
547 unsafe { Some(self.table.get(4)?.deref_unchecked()) }
548 }
549
550 pub fn controller_connector(
551 &self,
552 ) -> ::core::option::Option<
553 &::fidl_next::ClientEnd<crate::Connector, ::fidl_next::wire::fuchsia::Channel>,
554 > {
555 unsafe { Some(self.table.get(5)?.deref_unchecked()) }
556 }
557 }
558
559 impl<'de> ::core::fmt::Debug for DevfsAddArgs<'de> {
560 fn fmt(
561 &self,
562 f: &mut ::core::fmt::Formatter<'_>,
563 ) -> ::core::result::Result<(), ::core::fmt::Error> {
564 f.debug_struct("DevfsAddArgs")
565 .field("connector", &self.connector())
566 .field("class_name", &self.class_name())
567 .field("inspect", &self.inspect())
568 .field("connector_supports", &self.connector_supports())
569 .field("controller_connector", &self.controller_connector())
570 .finish()
571 }
572 }
573
574 impl<'de> ::fidl_next::IntoNatural for DevfsAddArgs<'de> {
575 type Natural = crate::natural::DevfsAddArgs;
576 }
577}
578
579pub mod wire_optional {
580
581 pub use fidl_next_common_fuchsia_device_fs::wire_optional::*;
582}
583
584pub mod generic {
585
586 pub use fidl_next_common_fuchsia_device_fs::generic::*;
587
588 pub struct ConnectorConnectRequest<T0> {
590 pub server: T0,
591 }
592
593 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::ConnectorConnectRequest, ___E>
594 for ConnectorConnectRequest<T0>
595 where
596 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
597 ___E: ::fidl_next::fuchsia::HandleEncoder,
598 T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Channel, ___E>,
599 {
600 #[inline]
601 fn encode(
602 self,
603 encoder_: &mut ___E,
604 out_: &mut ::core::mem::MaybeUninit<crate::wire::ConnectorConnectRequest>,
605 _: (),
606 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
607 ::fidl_next::munge! {
608 let crate::wire::ConnectorConnectRequest {
609 server,
610
611 } = out_;
612 }
613
614 ::fidl_next::Encode::encode(self.server, encoder_, server, ())?;
615
616 Ok(())
617 }
618 }
619}
620
621pub use self::natural::*;
622
623#[doc = " A connector lets a client forward the server end of a protocol.\n"]
625#[derive(PartialEq, Debug)]
626pub struct Connector;
627
628#[cfg(target_os = "fuchsia")]
629impl ::fidl_next::HasTransport for Connector {
630 type Transport = ::fidl_next::fuchsia::zx::Channel;
631}
632
633pub mod connector {
634 pub mod prelude {
635 pub use crate::{
636 Connector, ConnectorClientHandler, ConnectorLocalClientHandler,
637 ConnectorLocalServerHandler, ConnectorServerHandler, connector,
638 };
639
640 pub use crate::natural::ConnectorConnectRequest;
641 }
642
643 pub struct Connect;
644
645 impl ::fidl_next::Method for Connect {
646 const ORDINAL: u64 = 3169778387179902201;
647 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
648 ::fidl_next::protocol::Flexibility::Strict;
649
650 type Protocol = crate::Connector;
651
652 type Request = crate::wire::ConnectorConnectRequest;
653 }
654
655 mod ___detail {
656 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Connector
657 where
658 ___T: ::fidl_next::Transport,
659 {
660 type Client = ConnectorClient<___T>;
661 type Server = ConnectorServer<___T>;
662 }
663
664 #[repr(transparent)]
666 pub struct ConnectorClient<___T: ::fidl_next::Transport> {
667 #[allow(dead_code)]
668 client: ::fidl_next::protocol::Client<___T>,
669 }
670
671 impl<___T> ConnectorClient<___T>
672 where
673 ___T: ::fidl_next::Transport,
674 {
675 #[doc = " Forward a server end of a protocol so that it can be connected.\n + request `server` the server end of the protocol to be served. The FIDL protocol that\n this speaks is determined out-of-band.\n - response This function has no response. The function is one-way to match the pipelining\n behaviors of other virtual filesystems.\n"]
676 pub fn connect(
677 &self,
678
679 server: impl ::fidl_next::Encode<
680 ::fidl_next::wire::fuchsia::Channel,
681 <___T as ::fidl_next::Transport>::SendBuffer,
682 >,
683 ) -> ::fidl_next::SendFuture<'_, ___T>
684 where
685 <___T as ::fidl_next::Transport>::SendBuffer:
686 ::fidl_next::encoder::InternalHandleEncoder,
687 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
688 {
689 self.connect_with(crate::generic::ConnectorConnectRequest { server })
690 }
691
692 #[doc = " Forward a server end of a protocol so that it can be connected.\n + request `server` the server end of the protocol to be served. The FIDL protocol that\n this speaks is determined out-of-band.\n - response This function has no response. The function is one-way to match the pipelining\n behaviors of other virtual filesystems.\n"]
693 pub fn connect_with<___R>(&self, request: ___R) -> ::fidl_next::SendFuture<'_, ___T>
694 where
695 ___R: ::fidl_next::Encode<
696 crate::wire::ConnectorConnectRequest,
697 <___T as ::fidl_next::Transport>::SendBuffer,
698 >,
699 {
700 ::fidl_next::SendFuture::from_untyped(self.client.send_one_way(
701 3169778387179902201,
702 <super::Connect as ::fidl_next::Method>::FLEXIBILITY,
703 request,
704 ))
705 }
706 }
707
708 #[repr(transparent)]
710 pub struct ConnectorServer<___T: ::fidl_next::Transport> {
711 server: ::fidl_next::protocol::Server<___T>,
712 }
713
714 impl<___T> ConnectorServer<___T> where ___T: ::fidl_next::Transport {}
715 }
716}
717
718#[diagnostic::on_unimplemented(
719 note = "If {Self} implements the non-local ConnectorClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
720)]
721
722pub trait ConnectorLocalClientHandler<
726 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
727 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
728>
729{
730}
731
732impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Connector
733where
734 ___H: ConnectorLocalClientHandler<___T>,
735 ___T: ::fidl_next::Transport,
736{
737 async fn on_event(
738 handler: &mut ___H,
739 ordinal: u64,
740 flexibility: ::fidl_next::protocol::Flexibility,
741 body: ::fidl_next::Body<___T>,
742 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
743 match ordinal {
744 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
745 }
746 }
747}
748
749#[diagnostic::on_unimplemented(
750 note = "If {Self} implements the non-local ConnectorServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
751)]
752
753pub trait ConnectorLocalServerHandler<
757 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
758 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
759>
760{
761 #[doc = " Forward a server end of a protocol so that it can be connected.\n + request `server` the server end of the protocol to be served. The FIDL protocol that\n this speaks is determined out-of-band.\n - response This function has no response. The function is one-way to match the pipelining\n behaviors of other virtual filesystems.\n"]
762 fn connect(
763 &mut self,
764
765 request: ::fidl_next::Request<connector::Connect, ___T>,
766 ) -> impl ::core::future::Future<Output = ()>;
767}
768
769impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Connector
770where
771 ___H: ConnectorLocalServerHandler<___T>,
772 ___T: ::fidl_next::Transport,
773 for<'de> crate::wire::ConnectorConnectRequest: ::fidl_next::Decode<
774 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
775 Constraint = (),
776 >,
777{
778 async fn on_one_way(
779 handler: &mut ___H,
780 ordinal: u64,
781 flexibility: ::fidl_next::protocol::Flexibility,
782 body: ::fidl_next::Body<___T>,
783 ) -> ::core::result::Result<
784 (),
785 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
786 > {
787 match ordinal {
788 3169778387179902201 => match ::fidl_next::AsDecoderExt::into_decoded(body) {
789 Ok(decoded) => {
790 handler.connect(::fidl_next::Request::from_decoded(decoded)).await;
791 Ok(())
792 }
793 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
794 ordinal: 3169778387179902201,
795 error,
796 }),
797 },
798
799 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
800 }
801 }
802
803 async fn on_two_way(
804 handler: &mut ___H,
805 ordinal: u64,
806 flexibility: ::fidl_next::protocol::Flexibility,
807 body: ::fidl_next::Body<___T>,
808 responder: ::fidl_next::protocol::Responder<___T>,
809 ) -> ::core::result::Result<
810 (),
811 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
812 > {
813 match ordinal {
814 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
815 }
816 }
817}
818
819pub trait ConnectorClientHandler<
823 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
824 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
825>
826{
827}
828
829impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Connector
830where
831 ___H: ConnectorClientHandler<___T> + ::core::marker::Send,
832 ___T: ::fidl_next::Transport,
833{
834 async fn on_event(
835 handler: &mut ___H,
836 ordinal: u64,
837 flexibility: ::fidl_next::protocol::Flexibility,
838 body: ::fidl_next::Body<___T>,
839 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
840 match ordinal {
841 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
842 }
843 }
844}
845
846pub trait ConnectorServerHandler<
850 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
851 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
852>
853{
854 #[doc = " Forward a server end of a protocol so that it can be connected.\n + request `server` the server end of the protocol to be served. The FIDL protocol that\n this speaks is determined out-of-band.\n - response This function has no response. The function is one-way to match the pipelining\n behaviors of other virtual filesystems.\n"]
855 fn connect(
856 &mut self,
857
858 request: ::fidl_next::Request<connector::Connect, ___T>,
859 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
860}
861
862impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Connector
863where
864 ___H: ConnectorServerHandler<___T> + ::core::marker::Send,
865 ___T: ::fidl_next::Transport,
866 for<'de> crate::wire::ConnectorConnectRequest: ::fidl_next::Decode<
867 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
868 Constraint = (),
869 >,
870{
871 async fn on_one_way(
872 handler: &mut ___H,
873 ordinal: u64,
874 flexibility: ::fidl_next::protocol::Flexibility,
875 body: ::fidl_next::Body<___T>,
876 ) -> ::core::result::Result<
877 (),
878 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
879 > {
880 match ordinal {
881 3169778387179902201 => match ::fidl_next::AsDecoderExt::into_decoded(body) {
882 Ok(decoded) => {
883 handler.connect(::fidl_next::Request::from_decoded(decoded)).await;
884 Ok(())
885 }
886 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
887 ordinal: 3169778387179902201,
888 error,
889 }),
890 },
891
892 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
893 }
894 }
895
896 async fn on_two_way(
897 handler: &mut ___H,
898 ordinal: u64,
899 flexibility: ::fidl_next::protocol::Flexibility,
900 body: ::fidl_next::Body<___T>,
901 responder: ::fidl_next::protocol::Responder<___T>,
902 ) -> ::core::result::Result<
903 (),
904 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
905 > {
906 match ordinal {
907 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
908 }
909 }
910}
911
912impl<___T> ConnectorClientHandler<___T> for ::fidl_next::IgnoreEvents where
913 ___T: ::fidl_next::Transport
914{
915}
916
917impl<___H, ___T> ConnectorLocalClientHandler<___T> for ::fidl_next::Local<___H>
918where
919 ___H: ConnectorClientHandler<___T>,
920 ___T: ::fidl_next::Transport,
921{
922}
923
924impl<___H, ___T> ConnectorLocalServerHandler<___T> for ::fidl_next::Local<___H>
925where
926 ___H: ConnectorServerHandler<___T>,
927 ___T: ::fidl_next::Transport,
928{
929 async fn connect(&mut self, request: ::fidl_next::Request<connector::Connect, ___T>) {
930 ___H::connect(&mut self.0, request).await
931 }
932}
933
934pub use fidl_next_common_fuchsia_device_fs::*;