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