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 _ = self.table.get(1).map(|envelope| unsafe {
393                envelope.read_unchecked::<::fidl_next::ClientEnd<
394                        crate::Connector,
395                        ::fidl_next::wire::fuchsia::Channel,
396                    >>()
397            });
398
399            let _ = self.table.get(2).map(|envelope| unsafe {
400                envelope.read_unchecked::<::fidl_next::wire::String<'de>>()
401            });
402
403            let _ = self.table.get(3).map(|envelope| unsafe {
404                envelope.read_unchecked::<::fidl_next::wire::fuchsia::Vmo>()
405            });
406
407            let _ = self.table.get(4).map(|envelope| unsafe {
408                envelope.read_unchecked::<crate::wire::ConnectionType>()
409            });
410
411            let _ = self.table.get(5).map(|envelope| unsafe {
412                envelope.read_unchecked::<::fidl_next::ClientEnd<
413                        crate::Connector,
414                        ::fidl_next::wire::fuchsia::Channel,
415                    >>()
416            });
417        }
418    }
419
420    impl ::fidl_next::Constrained for DevfsAddArgs<'_> {
421        type Constraint = ();
422
423        fn validate(
424            _: ::fidl_next::Slot<'_, Self>,
425            _: Self::Constraint,
426        ) -> Result<(), ::fidl_next::ValidationError> {
427            Ok(())
428        }
429    }
430
431    unsafe impl ::fidl_next::Wire for DevfsAddArgs<'static> {
432        type Narrowed<'de> = DevfsAddArgs<'de>;
433
434        #[inline]
435        fn zero_padding(out: &mut ::core::mem::MaybeUninit<Self>) {
436            ::fidl_next::munge!(let Self { table } = out);
437            ::fidl_next::wire::Table::zero_padding(table);
438        }
439    }
440
441    unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for DevfsAddArgs<'de>
442    where
443        ___D: ::fidl_next::Decoder<'de> + ?Sized,
444        ___D: ::fidl_next::fuchsia::HandleDecoder,
445    {
446        fn decode(
447            slot: ::fidl_next::Slot<'_, Self>,
448            decoder: &mut ___D,
449            _: (),
450        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
451            ::fidl_next::munge!(let Self { table } = slot);
452
453            ::fidl_next::wire::Table::decode_with(table, decoder, |ordinal, mut slot, decoder| {
454                match ordinal {
455                    0 => unsafe { ::core::hint::unreachable_unchecked() },
456
457                    1 => {
458                        ::fidl_next::wire::Envelope::decode_as::<
459                            ___D,
460                            ::fidl_next::ClientEnd<
461                                crate::Connector,
462                                ::fidl_next::wire::fuchsia::Channel,
463                            >,
464                        >(slot.as_mut(), decoder, ())?;
465
466                        Ok(())
467                    }
468
469                    2 => {
470                        ::fidl_next::wire::Envelope::decode_as::<
471                            ___D,
472                            ::fidl_next::wire::String<'de>,
473                        >(slot.as_mut(), decoder, 255)?;
474
475                        let value = unsafe {
476                            slot.deref_unchecked()
477                                .deref_unchecked::<::fidl_next::wire::String<'_>>()
478                        };
479
480                        if value.len() > 255 {
481                            return Err(::fidl_next::DecodeError::VectorTooLong {
482                                size: value.len() as u64,
483                                limit: 255,
484                            });
485                        }
486
487                        Ok(())
488                    }
489
490                    3 => {
491                        ::fidl_next::wire::Envelope::decode_as::<
492                            ___D,
493                            ::fidl_next::wire::fuchsia::Vmo,
494                        >(slot.as_mut(), decoder, ())?;
495
496                        Ok(())
497                    }
498
499                    4 => {
500                        ::fidl_next::wire::Envelope::decode_as::<___D, crate::wire::ConnectionType>(
501                            slot.as_mut(),
502                            decoder,
503                            (),
504                        )?;
505
506                        Ok(())
507                    }
508
509                    5 => {
510                        ::fidl_next::wire::Envelope::decode_as::<
511                            ___D,
512                            ::fidl_next::ClientEnd<
513                                crate::Connector,
514                                ::fidl_next::wire::fuchsia::Channel,
515                            >,
516                        >(slot.as_mut(), decoder, ())?;
517
518                        Ok(())
519                    }
520
521                    _ => ::fidl_next::wire::Envelope::decode_unknown(slot, decoder),
522                }
523            })
524        }
525    }
526
527    impl<'de> DevfsAddArgs<'de> {
528        pub fn connector(
529            &self,
530        ) -> ::core::option::Option<
531            &::fidl_next::ClientEnd<crate::Connector, ::fidl_next::wire::fuchsia::Channel>,
532        > {
533            unsafe { Some(self.table.get(1)?.deref_unchecked()) }
534        }
535
536        pub fn take_connector(
537            &mut self,
538        ) -> ::core::option::Option<
539            ::fidl_next::ClientEnd<crate::Connector, ::fidl_next::wire::fuchsia::Channel>,
540        > {
541            unsafe { Some(self.table.get_mut(1)?.take_unchecked()) }
542        }
543
544        pub fn class_name(&self) -> ::core::option::Option<&::fidl_next::wire::String<'de>> {
545            unsafe { Some(self.table.get(2)?.deref_unchecked()) }
546        }
547
548        pub fn take_class_name(
549            &mut self,
550        ) -> ::core::option::Option<::fidl_next::wire::String<'de>> {
551            unsafe { Some(self.table.get_mut(2)?.take_unchecked()) }
552        }
553
554        pub fn inspect(&self) -> ::core::option::Option<&::fidl_next::wire::fuchsia::Vmo> {
555            unsafe { Some(self.table.get(3)?.deref_unchecked()) }
556        }
557
558        pub fn take_inspect(&mut self) -> ::core::option::Option<::fidl_next::wire::fuchsia::Vmo> {
559            unsafe { Some(self.table.get_mut(3)?.take_unchecked()) }
560        }
561
562        pub fn connector_supports(&self) -> ::core::option::Option<&crate::wire::ConnectionType> {
563            unsafe { Some(self.table.get(4)?.deref_unchecked()) }
564        }
565
566        pub fn take_connector_supports(
567            &mut self,
568        ) -> ::core::option::Option<crate::wire::ConnectionType> {
569            unsafe { Some(self.table.get_mut(4)?.take_unchecked()) }
570        }
571
572        pub fn controller_connector(
573            &self,
574        ) -> ::core::option::Option<
575            &::fidl_next::ClientEnd<crate::Connector, ::fidl_next::wire::fuchsia::Channel>,
576        > {
577            unsafe { Some(self.table.get(5)?.deref_unchecked()) }
578        }
579
580        pub fn take_controller_connector(
581            &mut self,
582        ) -> ::core::option::Option<
583            ::fidl_next::ClientEnd<crate::Connector, ::fidl_next::wire::fuchsia::Channel>,
584        > {
585            unsafe { Some(self.table.get_mut(5)?.take_unchecked()) }
586        }
587    }
588
589    impl<'de> ::core::fmt::Debug for DevfsAddArgs<'de> {
590        fn fmt(
591            &self,
592            f: &mut ::core::fmt::Formatter<'_>,
593        ) -> ::core::result::Result<(), ::core::fmt::Error> {
594            f.debug_struct("DevfsAddArgs")
595                .field("connector", &self.connector())
596                .field("class_name", &self.class_name())
597                .field("inspect", &self.inspect())
598                .field("connector_supports", &self.connector_supports())
599                .field("controller_connector", &self.controller_connector())
600                .finish()
601        }
602    }
603
604    impl<'de> ::fidl_next::IntoNatural for DevfsAddArgs<'de> {
605        type Natural = crate::natural::DevfsAddArgs;
606    }
607}
608
609pub mod wire_optional {
610
611    pub use fidl_next_common_fuchsia_device_fs::wire_optional::*;
612}
613
614pub mod generic {
615
616    pub use fidl_next_common_fuchsia_device_fs::generic::*;
617
618    /// The generic type corresponding to [`ConnectorConnectRequest`].
619    pub struct ConnectorConnectRequest<T0> {
620        pub server: T0,
621    }
622
623    unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::ConnectorConnectRequest, ___E>
624        for ConnectorConnectRequest<T0>
625    where
626        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
627        ___E: ::fidl_next::fuchsia::HandleEncoder,
628        T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Channel, ___E>,
629    {
630        #[inline]
631        fn encode(
632            self,
633            encoder_: &mut ___E,
634            out_: &mut ::core::mem::MaybeUninit<crate::wire::ConnectorConnectRequest>,
635            _: (),
636        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
637            ::fidl_next::munge! {
638                let crate::wire::ConnectorConnectRequest {
639                    server,
640
641                } = out_;
642            }
643
644            ::fidl_next::Encode::encode(self.server, encoder_, server, ())?;
645
646            Ok(())
647        }
648    }
649}
650
651pub use self::natural::*;
652
653/// The type corresponding to the Connector protocol.
654#[doc = " A connector lets a client forward the server end of a protocol.\n"]
655#[derive(PartialEq, Debug)]
656pub struct Connector;
657
658#[cfg(target_os = "fuchsia")]
659impl ::fidl_next::HasTransport for Connector {
660    type Transport = ::fidl_next::fuchsia::zx::Channel;
661}
662
663pub mod connector {
664    pub mod prelude {
665        pub use crate::{
666            Connector, ConnectorClientHandler, ConnectorLocalClientHandler,
667            ConnectorLocalServerHandler, ConnectorServerHandler, connector,
668        };
669
670        pub use crate::natural::ConnectorConnectRequest;
671    }
672
673    pub struct Connect;
674
675    impl ::fidl_next::Method for Connect {
676        const ORDINAL: u64 = 3169778387179902201;
677        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
678            ::fidl_next::protocol::Flexibility::Strict;
679
680        type Protocol = crate::Connector;
681
682        type Request = crate::wire::ConnectorConnectRequest;
683    }
684
685    mod ___detail {
686        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Connector
687        where
688            ___T: ::fidl_next::Transport,
689        {
690            type Client = ConnectorClient<___T>;
691            type Server = ConnectorServer<___T>;
692        }
693
694        /// The client for the `Connector` protocol.
695        #[repr(transparent)]
696        pub struct ConnectorClient<___T: ::fidl_next::Transport> {
697            #[allow(dead_code)]
698            client: ::fidl_next::protocol::Client<___T>,
699        }
700
701        impl<___T> ConnectorClient<___T>
702        where
703            ___T: ::fidl_next::Transport,
704        {
705            #[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"]
706            pub fn connect(
707                &self,
708
709                server: impl ::fidl_next::Encode<
710                    ::fidl_next::wire::fuchsia::Channel,
711                    <___T as ::fidl_next::Transport>::SendBuffer,
712                >,
713            ) -> ::fidl_next::SendFuture<'_, ___T>
714            where
715                <___T as ::fidl_next::Transport>::SendBuffer:
716                    ::fidl_next::encoder::InternalHandleEncoder,
717                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
718            {
719                self.connect_with(crate::generic::ConnectorConnectRequest { server })
720            }
721
722            #[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"]
723            pub fn connect_with<___R>(&self, request: ___R) -> ::fidl_next::SendFuture<'_, ___T>
724            where
725                ___R: ::fidl_next::Encode<
726                        crate::wire::ConnectorConnectRequest,
727                        <___T as ::fidl_next::Transport>::SendBuffer,
728                    >,
729            {
730                ::fidl_next::SendFuture::from_untyped(self.client.send_one_way(
731                    3169778387179902201,
732                    <super::Connect as ::fidl_next::Method>::FLEXIBILITY,
733                    request,
734                ))
735            }
736        }
737
738        /// The server for the `Connector` protocol.
739        #[repr(transparent)]
740        pub struct ConnectorServer<___T: ::fidl_next::Transport> {
741            server: ::fidl_next::protocol::Server<___T>,
742        }
743
744        impl<___T> ConnectorServer<___T> where ___T: ::fidl_next::Transport {}
745    }
746}
747
748#[diagnostic::on_unimplemented(
749    note = "If {Self} implements the non-local ConnectorClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
750)]
751
752/// A client handler for the Connector protocol.
753///
754/// See [`Connector`] for more details.
755pub trait ConnectorLocalClientHandler<
756    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
757    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
758>
759{
760}
761
762impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Connector
763where
764    ___H: ConnectorLocalClientHandler<___T>,
765    ___T: ::fidl_next::Transport,
766{
767    async fn on_event(
768        handler: &mut ___H,
769        mut message: ::fidl_next::Message<___T>,
770    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
771        match *message.header().ordinal {
772            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
773        }
774    }
775}
776
777#[diagnostic::on_unimplemented(
778    note = "If {Self} implements the non-local ConnectorServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
779)]
780
781/// A server handler for the Connector protocol.
782///
783/// See [`Connector`] for more details.
784pub trait ConnectorLocalServerHandler<
785    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
786    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
787>
788{
789    #[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"]
790    fn connect(
791        &mut self,
792
793        request: ::fidl_next::Request<connector::Connect, ___T>,
794    ) -> impl ::core::future::Future<Output = ()>;
795}
796
797impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Connector
798where
799    ___H: ConnectorLocalServerHandler<___T>,
800    ___T: ::fidl_next::Transport,
801    for<'de> crate::wire::ConnectorConnectRequest: ::fidl_next::Decode<
802            <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
803            Constraint = (),
804        >,
805{
806    async fn on_one_way(
807        handler: &mut ___H,
808        mut message: ::fidl_next::Message<___T>,
809    ) -> ::core::result::Result<
810        (),
811        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
812    > {
813        match *message.header().ordinal {
814            3169778387179902201 => match ::fidl_next::AsDecoderExt::into_decoded(message) {
815                Ok(decoded) => {
816                    handler.connect(::fidl_next::Request::from_decoded(decoded)).await;
817                    Ok(())
818                }
819                Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
820                    ordinal: 3169778387179902201,
821                    error,
822                }),
823            },
824
825            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
826        }
827    }
828
829    async fn on_two_way(
830        handler: &mut ___H,
831        mut message: ::fidl_next::Message<___T>,
832        responder: ::fidl_next::protocol::Responder<___T>,
833    ) -> ::core::result::Result<
834        (),
835        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
836    > {
837        match *message.header().ordinal {
838            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
839        }
840    }
841}
842
843/// A client handler for the Connector protocol.
844///
845/// See [`Connector`] for more details.
846pub trait ConnectorClientHandler<
847    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
848    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
849>
850{
851}
852
853impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Connector
854where
855    ___H: ConnectorClientHandler<___T> + ::core::marker::Send,
856    ___T: ::fidl_next::Transport,
857{
858    async fn on_event(
859        handler: &mut ___H,
860        mut message: ::fidl_next::Message<___T>,
861    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
862        match *message.header().ordinal {
863            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
864        }
865    }
866}
867
868/// A server handler for the Connector protocol.
869///
870/// See [`Connector`] for more details.
871pub trait ConnectorServerHandler<
872    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
873    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
874>
875{
876    #[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"]
877    fn connect(
878        &mut self,
879
880        request: ::fidl_next::Request<connector::Connect, ___T>,
881    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
882}
883
884impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Connector
885where
886    ___H: ConnectorServerHandler<___T> + ::core::marker::Send,
887    ___T: ::fidl_next::Transport,
888    for<'de> crate::wire::ConnectorConnectRequest: ::fidl_next::Decode<
889            <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
890            Constraint = (),
891        >,
892{
893    async fn on_one_way(
894        handler: &mut ___H,
895        mut message: ::fidl_next::Message<___T>,
896    ) -> ::core::result::Result<
897        (),
898        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
899    > {
900        match *message.header().ordinal {
901            3169778387179902201 => match ::fidl_next::AsDecoderExt::into_decoded(message) {
902                Ok(decoded) => {
903                    handler.connect(::fidl_next::Request::from_decoded(decoded)).await;
904                    Ok(())
905                }
906                Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
907                    ordinal: 3169778387179902201,
908                    error,
909                }),
910            },
911
912            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
913        }
914    }
915
916    async fn on_two_way(
917        handler: &mut ___H,
918        mut message: ::fidl_next::Message<___T>,
919        responder: ::fidl_next::protocol::Responder<___T>,
920    ) -> ::core::result::Result<
921        (),
922        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
923    > {
924        match *message.header().ordinal {
925            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
926        }
927    }
928}
929
930impl<___T> ConnectorClientHandler<___T> for ::fidl_next::IgnoreEvents where
931    ___T: ::fidl_next::Transport
932{
933}
934
935impl<___H, ___T> ConnectorLocalClientHandler<___T> for ::fidl_next::Local<___H>
936where
937    ___H: ConnectorClientHandler<___T>,
938    ___T: ::fidl_next::Transport,
939{
940}
941
942impl<___H, ___T> ConnectorLocalServerHandler<___T> for ::fidl_next::Local<___H>
943where
944    ___H: ConnectorServerHandler<___T>,
945    ___T: ::fidl_next::Transport,
946{
947    async fn connect(&mut self, request: ::fidl_next::Request<connector::Connect, ___T>) {
948        ___H::connect(&mut self.0, request).await
949    }
950}
951
952pub use fidl_next_common_fuchsia_device_fs::*;