Skip to main content

fidl_next_fuchsia_device_fs/
fidl_next_fuchsia_device_fs.rs

1// DO NOT EDIT: This file is machine-generated by fidlgen
2#![warn(clippy::all)]
3#![allow(unused_parens, unused_variables, unused_mut, unused_imports, unreachable_code)]
4
5pub mod natural {
6
7    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    /// The wire type corresponding to [`ConnectorConnectRequest`].
317    #[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    /// The wire type corresponding to [`DevfsAddArgs`].
385    #[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    /// The generic type corresponding to [`ConnectorConnectRequest`].
589    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/// The type corresponding to the Connector protocol.
624#[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::{Connector, ConnectorClientHandler, ConnectorServerHandler, connector};
636
637        pub use crate::natural::ConnectorConnectRequest;
638    }
639
640    pub struct Connect;
641
642    impl ::fidl_next::Method for Connect {
643        const ORDINAL: u64 = 3169778387179902201;
644        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
645            ::fidl_next::protocol::Flexibility::Strict;
646
647        type Protocol = crate::Connector;
648
649        type Request = crate::wire::ConnectorConnectRequest;
650    }
651
652    mod ___detail {
653        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Connector
654        where
655            ___T: ::fidl_next::Transport,
656        {
657            type Client = ConnectorClient<___T>;
658            type Server = ConnectorServer<___T>;
659        }
660
661        /// The client for the `Connector` protocol.
662        #[repr(transparent)]
663        pub struct ConnectorClient<___T: ::fidl_next::Transport> {
664            #[allow(dead_code)]
665            client: ::fidl_next::protocol::Client<___T>,
666        }
667
668        impl<___T> ConnectorClient<___T>
669        where
670            ___T: ::fidl_next::Transport,
671        {
672            #[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"]
673            pub fn connect(
674                &self,
675
676                server: impl ::fidl_next::Encode<
677                    ::fidl_next::wire::fuchsia::Channel,
678                    <___T as ::fidl_next::Transport>::SendBuffer,
679                >,
680            ) -> ::fidl_next::SendFuture<'_, ___T>
681            where
682                <___T as ::fidl_next::Transport>::SendBuffer:
683                    ::fidl_next::encoder::InternalHandleEncoder,
684                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
685            {
686                self.connect_with(crate::generic::ConnectorConnectRequest { server })
687            }
688
689            #[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"]
690            pub fn connect_with<___R>(&self, request: ___R) -> ::fidl_next::SendFuture<'_, ___T>
691            where
692                ___R: ::fidl_next::Encode<
693                        crate::wire::ConnectorConnectRequest,
694                        <___T as ::fidl_next::Transport>::SendBuffer,
695                    >,
696            {
697                ::fidl_next::SendFuture::from_untyped(self.client.send_one_way(
698                    3169778387179902201,
699                    <super::Connect as ::fidl_next::Method>::FLEXIBILITY,
700                    request,
701                ))
702            }
703        }
704
705        /// The server for the `Connector` protocol.
706        #[repr(transparent)]
707        pub struct ConnectorServer<___T: ::fidl_next::Transport> {
708            server: ::fidl_next::protocol::Server<___T>,
709        }
710
711        impl<___T> ConnectorServer<___T> where ___T: ::fidl_next::Transport {}
712    }
713}
714
715/// A client handler for the Connector protocol.
716///
717/// See [`Connector`] for more details.
718pub trait ConnectorClientHandler<
719    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
720    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
721>
722{
723}
724
725impl<___T> ConnectorClientHandler<___T> for ::fidl_next::IgnoreEvents where
726    ___T: ::fidl_next::Transport
727{
728}
729
730impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Connector
731where
732    ___H: ConnectorClientHandler<___T> + ::core::marker::Send,
733    ___T: ::fidl_next::Transport,
734{
735    async fn on_event(
736        handler: &mut ___H,
737        ordinal: u64,
738        flexibility: ::fidl_next::protocol::Flexibility,
739        body: ::fidl_next::Body<___T>,
740    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
741        match ordinal {
742            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
743        }
744    }
745}
746
747/// A server handler for the Connector protocol.
748///
749/// See [`Connector`] for more details.
750pub trait ConnectorServerHandler<
751    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
752    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
753>
754{
755    #[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"]
756    fn connect(
757        &mut self,
758
759        request: ::fidl_next::Request<connector::Connect, ___T>,
760    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
761}
762
763impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Connector
764where
765    ___H: ConnectorServerHandler<___T> + ::core::marker::Send,
766    ___T: ::fidl_next::Transport,
767    for<'de> crate::wire::ConnectorConnectRequest: ::fidl_next::Decode<
768            <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
769            Constraint = (),
770        >,
771{
772    async fn on_one_way(
773        handler: &mut ___H,
774        ordinal: u64,
775        flexibility: ::fidl_next::protocol::Flexibility,
776        body: ::fidl_next::Body<___T>,
777    ) -> ::core::result::Result<
778        (),
779        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
780    > {
781        match ordinal {
782            3169778387179902201 => match ::fidl_next::AsDecoderExt::into_decoded(body) {
783                Ok(decoded) => {
784                    handler.connect(::fidl_next::Request::from_decoded(decoded)).await;
785                    Ok(())
786                }
787                Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
788                    ordinal: 3169778387179902201,
789                    error,
790                }),
791            },
792
793            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
794        }
795    }
796
797    async fn on_two_way(
798        handler: &mut ___H,
799        ordinal: u64,
800        flexibility: ::fidl_next::protocol::Flexibility,
801        body: ::fidl_next::Body<___T>,
802        responder: ::fidl_next::protocol::Responder<___T>,
803    ) -> ::core::result::Result<
804        (),
805        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
806    > {
807        match ordinal {
808            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
809        }
810    }
811}
812
813pub use fidl_next_common_fuchsia_device_fs::*;