Skip to main content

fidl_next_common_fuchsia_device_fs/
fidl_next_common_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    ::fidl_next::bitflags::bitflags! {
8        #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, )]pub struct ConnectionType: u8 {
9            #[doc = " Represents the fuchsia.io/Node protocol.\n"]const NODE = 1;
10            #[doc = " Represents the fuchsia.device/Controller protocol.\n"]const CONTROLLER = 2;
11            #[doc = " Represents the device specific FIDL.\n"]const DEVICE = 4;
12            const _ = !0;
13        }
14    }
15
16    unsafe impl<___E> ::fidl_next::Encode<crate::wire::ConnectionType, ___E> for ConnectionType
17    where
18        ___E: ?Sized,
19    {
20        #[inline]
21        fn encode(
22            self,
23            encoder: &mut ___E,
24            out: &mut ::core::mem::MaybeUninit<crate::wire::ConnectionType>,
25            _: (),
26        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
27            ::fidl_next::Encode::encode(&self, encoder, out, ())
28        }
29    }
30
31    unsafe impl<'a, ___E> ::fidl_next::Encode<crate::wire::ConnectionType, ___E> for &'a ConnectionType
32    where
33        ___E: ?Sized,
34    {
35        #[inline]
36        fn encode(
37            self,
38            _: &mut ___E,
39            out: &mut ::core::mem::MaybeUninit<crate::wire::ConnectionType>,
40            _: (),
41        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
42            ::fidl_next::munge!(let crate::wire::ConnectionType { value } = out);
43
44            let _ = value.write(u8::from(self.bits()));
45            Ok(())
46        }
47    }
48
49    impl ::core::convert::From<crate::wire::ConnectionType> for ConnectionType {
50        fn from(wire: crate::wire::ConnectionType) -> Self {
51            Self::from_bits_retain(u8::from(wire.value))
52        }
53    }
54
55    impl ::fidl_next::FromWire<crate::wire::ConnectionType> for ConnectionType {
56        #[inline]
57        fn from_wire(wire: crate::wire::ConnectionType) -> Self {
58            Self::from(wire)
59        }
60    }
61
62    impl ::fidl_next::FromWireRef<crate::wire::ConnectionType> for ConnectionType {
63        #[inline]
64        fn from_wire_ref(wire: &crate::wire::ConnectionType) -> Self {
65            Self::from(*wire)
66        }
67    }
68
69    #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
70    pub struct TopologicalPathGetTopologicalPathResponse {
71        pub path: ::std::string::String,
72    }
73
74    unsafe impl<___E>
75        ::fidl_next::Encode<crate::wire::TopologicalPathGetTopologicalPathResponse<'static>, ___E>
76        for TopologicalPathGetTopologicalPathResponse
77    where
78        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
79        ___E: ::fidl_next::Encoder,
80    {
81        #[inline]
82        fn encode(
83            self,
84            encoder_: &mut ___E,
85            out_: &mut ::core::mem::MaybeUninit<
86                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
87            >,
88            _: (),
89        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
90            ::fidl_next::munge! {
91                let crate::wire::TopologicalPathGetTopologicalPathResponse {
92                    path,
93
94                } = out_;
95            }
96
97            ::fidl_next::Encode::encode(self.path, encoder_, path, 1024)?;
98
99            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(path.as_mut_ptr()) };
100            ::fidl_next::Constrained::validate(_field, 1024)?;
101
102            Ok(())
103        }
104    }
105
106    unsafe impl<'a, ___E>
107        ::fidl_next::Encode<crate::wire::TopologicalPathGetTopologicalPathResponse<'static>, ___E>
108        for &'a TopologicalPathGetTopologicalPathResponse
109    where
110        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
111        ___E: ::fidl_next::Encoder,
112    {
113        #[inline]
114        fn encode(
115            self,
116            encoder_: &mut ___E,
117            out_: &mut ::core::mem::MaybeUninit<
118                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
119            >,
120            _: (),
121        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
122            ::fidl_next::munge! {
123                let crate::wire::TopologicalPathGetTopologicalPathResponse {
124                    path,
125
126                } = out_;
127            }
128
129            ::fidl_next::Encode::encode(&self.path, encoder_, path, 1024)?;
130
131            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(path.as_mut_ptr()) };
132            ::fidl_next::Constrained::validate(_field, 1024)?;
133
134            Ok(())
135        }
136    }
137
138    unsafe impl<___E>
139        ::fidl_next::EncodeOption<
140            ::fidl_next::wire::Box<
141                'static,
142                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
143            >,
144            ___E,
145        > for TopologicalPathGetTopologicalPathResponse
146    where
147        ___E: ::fidl_next::Encoder + ?Sized,
148        TopologicalPathGetTopologicalPathResponse: ::fidl_next::Encode<
149                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
150                ___E,
151            >,
152    {
153        #[inline]
154        fn encode_option(
155            this: ::core::option::Option<Self>,
156            encoder: &mut ___E,
157            out: &mut ::core::mem::MaybeUninit<
158                ::fidl_next::wire::Box<
159                    'static,
160                    crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
161                >,
162            >,
163            _: (),
164        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
165            if let Some(inner) = this {
166                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
167                ::fidl_next::wire::Box::encode_present(out);
168            } else {
169                ::fidl_next::wire::Box::encode_absent(out);
170            }
171
172            Ok(())
173        }
174    }
175
176    unsafe impl<'a, ___E>
177        ::fidl_next::EncodeOption<
178            ::fidl_next::wire::Box<
179                'static,
180                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
181            >,
182            ___E,
183        > for &'a TopologicalPathGetTopologicalPathResponse
184    where
185        ___E: ::fidl_next::Encoder + ?Sized,
186        &'a TopologicalPathGetTopologicalPathResponse: ::fidl_next::Encode<
187                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
188                ___E,
189            >,
190    {
191        #[inline]
192        fn encode_option(
193            this: ::core::option::Option<Self>,
194            encoder: &mut ___E,
195            out: &mut ::core::mem::MaybeUninit<
196                ::fidl_next::wire::Box<
197                    'static,
198                    crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
199                >,
200            >,
201            _: (),
202        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
203            if let Some(inner) = this {
204                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
205                ::fidl_next::wire::Box::encode_present(out);
206            } else {
207                ::fidl_next::wire::Box::encode_absent(out);
208            }
209
210            Ok(())
211        }
212    }
213
214    impl<'de> ::fidl_next::FromWire<crate::wire::TopologicalPathGetTopologicalPathResponse<'de>>
215        for TopologicalPathGetTopologicalPathResponse
216    {
217        #[inline]
218        fn from_wire(wire: crate::wire::TopologicalPathGetTopologicalPathResponse<'de>) -> Self {
219            Self { path: ::fidl_next::FromWire::from_wire(wire.path) }
220        }
221    }
222
223    impl<'de> ::fidl_next::FromWireRef<crate::wire::TopologicalPathGetTopologicalPathResponse<'de>>
224        for TopologicalPathGetTopologicalPathResponse
225    {
226        #[inline]
227        fn from_wire_ref(
228            wire: &crate::wire::TopologicalPathGetTopologicalPathResponse<'de>,
229        ) -> Self {
230            Self { path: ::fidl_next::FromWireRef::from_wire_ref(&wire.path) }
231        }
232    }
233}
234
235pub mod wire {
236
237    /// The wire type corresponding to [`ConnectionType`](crate::natural::ConnectionType).
238    #[derive(Clone, Copy, Debug)]
239    #[repr(transparent)]
240    pub struct ConnectionType {
241        pub(crate) value: u8,
242    }
243
244    impl ::fidl_next::Constrained for ConnectionType {
245        type Constraint = ();
246
247        fn validate(
248            _: ::fidl_next::Slot<'_, Self>,
249            _: Self::Constraint,
250        ) -> Result<(), ::fidl_next::ValidationError> {
251            Ok(())
252        }
253    }
254
255    unsafe impl ::fidl_next::Wire for ConnectionType {
256        type Narrowed<'de> = Self;
257
258        #[inline]
259        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
260            // Wire bits have no padding
261        }
262    }
263
264    unsafe impl<___D> ::fidl_next::Decode<___D> for ConnectionType
265    where
266        ___D: ?Sized,
267    {
268        fn decode(
269            slot: ::fidl_next::Slot<'_, Self>,
270            _: &mut ___D,
271            _: (),
272        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
273            Ok(())
274        }
275    }
276
277    impl ::core::convert::From<crate::natural::ConnectionType> for ConnectionType {
278        fn from(natural: crate::natural::ConnectionType) -> Self {
279            Self { value: u8::from(natural.bits()) }
280        }
281    }
282
283    impl ::fidl_next::IntoNatural for ConnectionType {
284        type Natural = crate::natural::ConnectionType;
285    }
286
287    /// The wire type corresponding to [`TopologicalPathGetTopologicalPathResponse`].
288    #[derive(Debug)]
289    #[repr(C)]
290    pub struct TopologicalPathGetTopologicalPathResponse<'de> {
291        pub path: ::fidl_next::wire::String<'de>,
292    }
293
294    static_assertions::const_assert_eq!(
295        std::mem::size_of::<TopologicalPathGetTopologicalPathResponse<'_>>(),
296        16
297    );
298    static_assertions::const_assert_eq!(
299        std::mem::align_of::<TopologicalPathGetTopologicalPathResponse<'_>>(),
300        8
301    );
302
303    static_assertions::const_assert_eq!(
304        std::mem::offset_of!(TopologicalPathGetTopologicalPathResponse<'_>, path),
305        0
306    );
307
308    impl ::fidl_next::Constrained for TopologicalPathGetTopologicalPathResponse<'_> {
309        type Constraint = ();
310
311        fn validate(
312            _: ::fidl_next::Slot<'_, Self>,
313            _: Self::Constraint,
314        ) -> Result<(), ::fidl_next::ValidationError> {
315            Ok(())
316        }
317    }
318
319    unsafe impl ::fidl_next::Wire for TopologicalPathGetTopologicalPathResponse<'static> {
320        type Narrowed<'de> = TopologicalPathGetTopologicalPathResponse<'de>;
321
322        #[inline]
323        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
324            ::fidl_next::munge! {
325                let Self {
326                    path,
327
328                } = &mut *out_;
329            }
330
331            ::fidl_next::Wire::zero_padding(path);
332        }
333    }
334
335    unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for TopologicalPathGetTopologicalPathResponse<'de>
336    where
337        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
338        ___D: ::fidl_next::Decoder<'de>,
339    {
340        fn decode(
341            slot_: ::fidl_next::Slot<'_, Self>,
342            decoder_: &mut ___D,
343            _: (),
344        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
345            ::fidl_next::munge! {
346                let Self {
347                    mut path,
348
349                } = slot_;
350            }
351
352            let _field = path.as_mut();
353            ::fidl_next::Constrained::validate(_field, 1024)?;
354            ::fidl_next::Decode::decode(path.as_mut(), decoder_, 1024)?;
355
356            let path = unsafe { path.deref_unchecked() };
357
358            if path.len() > 1024 {
359                return Err(::fidl_next::DecodeError::VectorTooLong {
360                    size: path.len() as u64,
361                    limit: 1024,
362                });
363            }
364
365            Ok(())
366        }
367    }
368
369    impl<'de> ::fidl_next::IntoNatural for TopologicalPathGetTopologicalPathResponse<'de> {
370        type Natural = crate::natural::TopologicalPathGetTopologicalPathResponse;
371    }
372}
373
374pub mod wire_optional {}
375
376pub mod generic {
377
378    /// The generic type corresponding to [`TopologicalPathGetTopologicalPathResponse`].
379    pub struct TopologicalPathGetTopologicalPathResponse<T0> {
380        pub path: T0,
381    }
382
383    unsafe impl<___E, T0>
384        ::fidl_next::Encode<crate::wire::TopologicalPathGetTopologicalPathResponse<'static>, ___E>
385        for TopologicalPathGetTopologicalPathResponse<T0>
386    where
387        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
388        ___E: ::fidl_next::Encoder,
389        T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
390    {
391        #[inline]
392        fn encode(
393            self,
394            encoder_: &mut ___E,
395            out_: &mut ::core::mem::MaybeUninit<
396                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
397            >,
398            _: (),
399        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
400            ::fidl_next::munge! {
401                let crate::wire::TopologicalPathGetTopologicalPathResponse {
402                    path,
403
404                } = out_;
405            }
406
407            ::fidl_next::Encode::encode(self.path, encoder_, path, 1024)?;
408
409            Ok(())
410        }
411    }
412
413    unsafe impl<'a, ___E, T0>
414        ::fidl_next::Encode<crate::wire::TopologicalPathGetTopologicalPathResponse<'static>, ___E>
415        for &'a TopologicalPathGetTopologicalPathResponse<T0>
416    where
417        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
418        ___E: ::fidl_next::Encoder,
419        &'a T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
420    {
421        #[inline]
422        fn encode(
423            self,
424            encoder_: &mut ___E,
425            out_: &mut ::core::mem::MaybeUninit<
426                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
427            >,
428            _: (),
429        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
430            ::fidl_next::munge! {
431                let crate::wire::TopologicalPathGetTopologicalPathResponse {
432                    path,
433
434                } = out_;
435            }
436
437            ::fidl_next::Encode::encode(&self.path, encoder_, path, 1024)?;
438
439            Ok(())
440        }
441    }
442}
443
444pub use self::natural::*;
445
446#[doc = " This name is reserved for accessing the fuchsia.device/Controller protocol\n within /dev/. No devices can be created with this name.\n"]
447pub const DEVICE_CONTROLLER_NAME: &str = "device_controller";
448
449#[doc = " This name is reserved for accessing the device specific protocol\n within /dev/. No devices can be created with this name.\n"]
450pub const DEVICE_PROTOCOL_NAME: &str = "device_protocol";
451
452#[doc = " This name is reserved for accessing the fuchsia.device.fs/TopologicalPath protocol\n within /dev/. No devices can be created with this name.\n"]
453pub const DEVICE_TOPOLOGY_NAME: &str = "device_topology";
454
455#[doc = " Maximum length of a device path\n"]
456pub const MAX_DEVICE_PATH_LEN: u64 = 1024 as u64;
457
458#[doc = " Maximum length for a driver path\n"]
459pub const MAX_DRIVER_PATH_LEN: u64 = 1024 as u64;
460
461/// The type corresponding to the TopologicalPath protocol.
462#[derive(PartialEq, Debug)]
463pub struct TopologicalPath;
464
465#[cfg(target_os = "fuchsia")]
466impl ::fidl_next::HasTransport for TopologicalPath {
467    type Transport = ::fidl_next::fuchsia::zx::Channel;
468}
469
470pub mod topological_path {
471    pub mod prelude {
472        pub use crate::{
473            TopologicalPath, TopologicalPathClientHandler, TopologicalPathLocalClientHandler,
474            TopologicalPathLocalServerHandler, TopologicalPathServerHandler, topological_path,
475        };
476
477        pub use crate::natural::TopologicalPathGetTopologicalPathResponse;
478    }
479
480    pub struct GetTopologicalPath;
481
482    impl ::fidl_next::Method for GetTopologicalPath {
483        const ORDINAL: u64 = 6266213890697819096;
484        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
485            ::fidl_next::protocol::Flexibility::Strict;
486
487        type Protocol = crate::TopologicalPath;
488
489        type Request = ::fidl_next::wire::EmptyMessageBody;
490    }
491
492    impl ::fidl_next::TwoWayMethod for GetTopologicalPath {
493        type Response = ::fidl_next::wire::Result<
494            'static,
495            crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
496            ::fidl_next::wire::fuchsia::Status,
497        >;
498    }
499
500    impl<___R> ::fidl_next::Respond<___R> for GetTopologicalPath {
501        type Output = ::core::result::Result<
502            crate::generic::TopologicalPathGetTopologicalPathResponse<___R>,
503            ::fidl_next::never::Never,
504        >;
505
506        fn respond(response: ___R) -> Self::Output {
507            ::core::result::Result::Ok(crate::generic::TopologicalPathGetTopologicalPathResponse {
508                path: response,
509            })
510        }
511    }
512
513    impl<___R> ::fidl_next::RespondErr<___R> for GetTopologicalPath {
514        type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
515
516        fn respond_err(response: ___R) -> Self::Output {
517            ::core::result::Result::Err(response)
518        }
519    }
520
521    mod ___detail {
522        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::TopologicalPath
523        where
524            ___T: ::fidl_next::Transport,
525        {
526            type Client = TopologicalPathClient<___T>;
527            type Server = TopologicalPathServer<___T>;
528        }
529
530        /// The client for the `TopologicalPath` protocol.
531        #[repr(transparent)]
532        pub struct TopologicalPathClient<___T: ::fidl_next::Transport> {
533            #[allow(dead_code)]
534            client: ::fidl_next::protocol::Client<___T>,
535        }
536
537        impl<___T> TopologicalPathClient<___T>
538        where
539            ___T: ::fidl_next::Transport,
540        {
541            #[doc = " Return the topological path for this device\n"]
542            pub fn get_topological_path(
543                &self,
544            ) -> ::fidl_next::TwoWayFuture<'_, super::GetTopologicalPath, ___T> {
545                ::fidl_next::TwoWayFuture::from_untyped(
546                    self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
547                        6266213890697819096,
548                        <super::GetTopologicalPath as ::fidl_next::Method>::FLEXIBILITY,
549                        (),
550                    ),
551                )
552            }
553        }
554
555        /// The server for the `TopologicalPath` protocol.
556        #[repr(transparent)]
557        pub struct TopologicalPathServer<___T: ::fidl_next::Transport> {
558            server: ::fidl_next::protocol::Server<___T>,
559        }
560
561        impl<___T> TopologicalPathServer<___T> where ___T: ::fidl_next::Transport {}
562    }
563}
564
565#[diagnostic::on_unimplemented(
566    note = "If {Self} implements the non-local TopologicalPathClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
567)]
568
569/// A client handler for the TopologicalPath protocol.
570///
571/// See [`TopologicalPath`] for more details.
572pub trait TopologicalPathLocalClientHandler<
573    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
574    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
575>
576{
577}
578
579impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for TopologicalPath
580where
581    ___H: TopologicalPathLocalClientHandler<___T>,
582    ___T: ::fidl_next::Transport,
583{
584    async fn on_event(
585        handler: &mut ___H,
586        mut message: ::fidl_next::Message<___T>,
587    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
588        match *message.header().ordinal {
589            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
590        }
591    }
592}
593
594#[diagnostic::on_unimplemented(
595    note = "If {Self} implements the non-local TopologicalPathServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
596)]
597
598/// A server handler for the TopologicalPath protocol.
599///
600/// See [`TopologicalPath`] for more details.
601pub trait TopologicalPathLocalServerHandler<
602    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
603    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
604>
605{
606    #[doc = " Return the topological path for this device\n"]
607    fn get_topological_path(
608        &mut self,
609
610        responder: ::fidl_next::Responder<topological_path::GetTopologicalPath, ___T>,
611    ) -> impl ::core::future::Future<Output = ()>;
612}
613
614impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for TopologicalPath
615where
616    ___H: TopologicalPathLocalServerHandler<___T>,
617    ___T: ::fidl_next::Transport,
618{
619    async fn on_one_way(
620        handler: &mut ___H,
621        mut message: ::fidl_next::Message<___T>,
622    ) -> ::core::result::Result<
623        (),
624        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
625    > {
626        match *message.header().ordinal {
627            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
628        }
629    }
630
631    async fn on_two_way(
632        handler: &mut ___H,
633        mut message: ::fidl_next::Message<___T>,
634        responder: ::fidl_next::protocol::Responder<___T>,
635    ) -> ::core::result::Result<
636        (),
637        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
638    > {
639        match *message.header().ordinal {
640            6266213890697819096 => {
641                let responder = ::fidl_next::Responder::from_untyped(responder);
642
643                handler.get_topological_path(responder).await;
644                Ok(())
645            }
646
647            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
648        }
649    }
650}
651
652/// A client handler for the TopologicalPath protocol.
653///
654/// See [`TopologicalPath`] for more details.
655pub trait TopologicalPathClientHandler<
656    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
657    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
658>
659{
660}
661
662impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for TopologicalPath
663where
664    ___H: TopologicalPathClientHandler<___T> + ::core::marker::Send,
665    ___T: ::fidl_next::Transport,
666{
667    async fn on_event(
668        handler: &mut ___H,
669        mut message: ::fidl_next::Message<___T>,
670    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
671        match *message.header().ordinal {
672            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
673        }
674    }
675}
676
677/// A server handler for the TopologicalPath protocol.
678///
679/// See [`TopologicalPath`] for more details.
680pub trait TopologicalPathServerHandler<
681    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
682    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
683>
684{
685    #[doc = " Return the topological path for this device\n"]
686    fn get_topological_path(
687        &mut self,
688
689        responder: ::fidl_next::Responder<topological_path::GetTopologicalPath, ___T>,
690    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
691}
692
693impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for TopologicalPath
694where
695    ___H: TopologicalPathServerHandler<___T> + ::core::marker::Send,
696    ___T: ::fidl_next::Transport,
697{
698    async fn on_one_way(
699        handler: &mut ___H,
700        mut message: ::fidl_next::Message<___T>,
701    ) -> ::core::result::Result<
702        (),
703        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
704    > {
705        match *message.header().ordinal {
706            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
707        }
708    }
709
710    async fn on_two_way(
711        handler: &mut ___H,
712        mut message: ::fidl_next::Message<___T>,
713        responder: ::fidl_next::protocol::Responder<___T>,
714    ) -> ::core::result::Result<
715        (),
716        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
717    > {
718        match *message.header().ordinal {
719            6266213890697819096 => {
720                let responder = ::fidl_next::Responder::from_untyped(responder);
721
722                handler.get_topological_path(responder).await;
723                Ok(())
724            }
725
726            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
727        }
728    }
729}
730
731impl<___T> TopologicalPathClientHandler<___T> for ::fidl_next::IgnoreEvents where
732    ___T: ::fidl_next::Transport
733{
734}
735
736impl<___H, ___T> TopologicalPathLocalClientHandler<___T> for ::fidl_next::Local<___H>
737where
738    ___H: TopologicalPathClientHandler<___T>,
739    ___T: ::fidl_next::Transport,
740{
741}
742
743impl<___H, ___T> TopologicalPathLocalServerHandler<___T> for ::fidl_next::Local<___H>
744where
745    ___H: TopologicalPathServerHandler<___T>,
746    ___T: ::fidl_next::Transport,
747{
748    async fn get_topological_path(
749        &mut self,
750
751        responder: ::fidl_next::Responder<topological_path::GetTopologicalPath, ___T>,
752    ) {
753        ___H::get_topological_path(&mut self.0, responder).await
754    }
755}