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
414pub use self::natural::*;
415
416#[doc = " This name is reserved for accessing the fuchsia.device/Controller protocol\n within /dev/. No devices can be created with this name.\n"]
417pub const DEVICE_CONTROLLER_NAME: &str = "device_controller";
418
419#[doc = " This name is reserved for accessing the device specific protocol\n within /dev/. No devices can be created with this name.\n"]
420pub const DEVICE_PROTOCOL_NAME: &str = "device_protocol";
421
422#[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"]
423pub const DEVICE_TOPOLOGY_NAME: &str = "device_topology";
424
425#[doc = " Maximum length of a device path\n"]
426pub const MAX_DEVICE_PATH_LEN: u64 = 1024 as u64;
427
428#[doc = " Maximum length for a driver path\n"]
429pub const MAX_DRIVER_PATH_LEN: u64 = 1024 as u64;
430
431/// The type corresponding to the TopologicalPath protocol.
432#[derive(PartialEq, Debug)]
433pub struct TopologicalPath;
434
435#[cfg(target_os = "fuchsia")]
436impl ::fidl_next::HasTransport for TopologicalPath {
437    type Transport = ::fidl_next::fuchsia::zx::Channel;
438}
439
440pub mod topological_path {
441    pub mod prelude {
442        pub use crate::{
443            TopologicalPath, TopologicalPathClientHandler, TopologicalPathLocalClientHandler,
444            TopologicalPathLocalServerHandler, TopologicalPathServerHandler, topological_path,
445        };
446
447        pub use crate::natural::TopologicalPathGetTopologicalPathResponse;
448    }
449
450    pub struct GetTopologicalPath;
451
452    impl ::fidl_next::Method for GetTopologicalPath {
453        const ORDINAL: u64 = 6266213890697819096;
454        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
455            ::fidl_next::protocol::Flexibility::Strict;
456
457        type Protocol = crate::TopologicalPath;
458
459        type Request = ::fidl_next::wire::EmptyMessageBody;
460    }
461
462    impl ::fidl_next::TwoWayMethod for GetTopologicalPath {
463        type Response = ::fidl_next::wire::Result<
464            'static,
465            crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
466            ::fidl_next::wire::Int32,
467        >;
468    }
469
470    impl<___R> ::fidl_next::Respond<___R> for GetTopologicalPath {
471        type Output = ::core::result::Result<
472            crate::generic::TopologicalPathGetTopologicalPathResponse<___R>,
473            ::fidl_next::util::Never,
474        >;
475
476        fn respond(response: ___R) -> Self::Output {
477            ::core::result::Result::Ok(crate::generic::TopologicalPathGetTopologicalPathResponse {
478                path: response,
479            })
480        }
481    }
482
483    impl<___R> ::fidl_next::RespondErr<___R> for GetTopologicalPath {
484        type Output = ::core::result::Result<::fidl_next::util::Never, ___R>;
485
486        fn respond_err(response: ___R) -> Self::Output {
487            ::core::result::Result::Err(response)
488        }
489    }
490
491    mod ___detail {
492        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::TopologicalPath
493        where
494            ___T: ::fidl_next::Transport,
495        {
496            type Client = TopologicalPathClient<___T>;
497            type Server = TopologicalPathServer<___T>;
498        }
499
500        /// The client for the `TopologicalPath` protocol.
501        #[repr(transparent)]
502        pub struct TopologicalPathClient<___T: ::fidl_next::Transport> {
503            #[allow(dead_code)]
504            client: ::fidl_next::protocol::Client<___T>,
505        }
506
507        impl<___T> TopologicalPathClient<___T>
508        where
509            ___T: ::fidl_next::Transport,
510        {
511            #[doc = " Return the topological path for this device\n"]
512            pub fn get_topological_path(
513                &self,
514            ) -> ::fidl_next::TwoWayFuture<'_, super::GetTopologicalPath, ___T> {
515                ::fidl_next::TwoWayFuture::from_untyped(
516                    self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
517                        6266213890697819096,
518                        <super::GetTopologicalPath as ::fidl_next::Method>::FLEXIBILITY,
519                        (),
520                    ),
521                )
522            }
523        }
524
525        /// The server for the `TopologicalPath` protocol.
526        #[repr(transparent)]
527        pub struct TopologicalPathServer<___T: ::fidl_next::Transport> {
528            server: ::fidl_next::protocol::Server<___T>,
529        }
530
531        impl<___T> TopologicalPathServer<___T> where ___T: ::fidl_next::Transport {}
532    }
533}
534
535#[diagnostic::on_unimplemented(
536    note = "If {Self} implements the non-local TopologicalPathClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
537)]
538
539/// A client handler for the TopologicalPath protocol.
540///
541/// See [`TopologicalPath`] for more details.
542pub trait TopologicalPathLocalClientHandler<
543    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
544    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
545>
546{
547}
548
549impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for TopologicalPath
550where
551    ___H: TopologicalPathLocalClientHandler<___T>,
552    ___T: ::fidl_next::Transport,
553{
554    async fn on_event(
555        handler: &mut ___H,
556        ordinal: u64,
557        flexibility: ::fidl_next::protocol::Flexibility,
558        body: ::fidl_next::Body<___T>,
559    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
560        match ordinal {
561            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
562        }
563    }
564}
565
566#[diagnostic::on_unimplemented(
567    note = "If {Self} implements the non-local TopologicalPathServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
568)]
569
570/// A server handler for the TopologicalPath protocol.
571///
572/// See [`TopologicalPath`] for more details.
573pub trait TopologicalPathLocalServerHandler<
574    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
575    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
576>
577{
578    #[doc = " Return the topological path for this device\n"]
579    fn get_topological_path(
580        &mut self,
581
582        responder: ::fidl_next::Responder<topological_path::GetTopologicalPath, ___T>,
583    ) -> impl ::core::future::Future<Output = ()>;
584}
585
586impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for TopologicalPath
587where
588    ___H: TopologicalPathLocalServerHandler<___T>,
589    ___T: ::fidl_next::Transport,
590{
591    async fn on_one_way(
592        handler: &mut ___H,
593        ordinal: u64,
594        flexibility: ::fidl_next::protocol::Flexibility,
595        body: ::fidl_next::Body<___T>,
596    ) -> ::core::result::Result<
597        (),
598        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
599    > {
600        match ordinal {
601            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
602        }
603    }
604
605    async fn on_two_way(
606        handler: &mut ___H,
607        ordinal: u64,
608        flexibility: ::fidl_next::protocol::Flexibility,
609        body: ::fidl_next::Body<___T>,
610        responder: ::fidl_next::protocol::Responder<___T>,
611    ) -> ::core::result::Result<
612        (),
613        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
614    > {
615        match ordinal {
616            6266213890697819096 => {
617                let responder = ::fidl_next::Responder::from_untyped(responder);
618
619                handler.get_topological_path(responder).await;
620                Ok(())
621            }
622
623            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
624        }
625    }
626}
627
628/// A client handler for the TopologicalPath protocol.
629///
630/// See [`TopologicalPath`] for more details.
631pub trait TopologicalPathClientHandler<
632    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
633    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
634>
635{
636}
637
638impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for TopologicalPath
639where
640    ___H: TopologicalPathClientHandler<___T> + ::core::marker::Send,
641    ___T: ::fidl_next::Transport,
642{
643    async fn on_event(
644        handler: &mut ___H,
645        ordinal: u64,
646        flexibility: ::fidl_next::protocol::Flexibility,
647        body: ::fidl_next::Body<___T>,
648    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
649        match ordinal {
650            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
651        }
652    }
653}
654
655/// A server handler for the TopologicalPath protocol.
656///
657/// See [`TopologicalPath`] for more details.
658pub trait TopologicalPathServerHandler<
659    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
660    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
661>
662{
663    #[doc = " Return the topological path for this device\n"]
664    fn get_topological_path(
665        &mut self,
666
667        responder: ::fidl_next::Responder<topological_path::GetTopologicalPath, ___T>,
668    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
669}
670
671impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for TopologicalPath
672where
673    ___H: TopologicalPathServerHandler<___T> + ::core::marker::Send,
674    ___T: ::fidl_next::Transport,
675{
676    async fn on_one_way(
677        handler: &mut ___H,
678        ordinal: u64,
679        flexibility: ::fidl_next::protocol::Flexibility,
680        body: ::fidl_next::Body<___T>,
681    ) -> ::core::result::Result<
682        (),
683        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
684    > {
685        match ordinal {
686            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
687        }
688    }
689
690    async fn on_two_way(
691        handler: &mut ___H,
692        ordinal: u64,
693        flexibility: ::fidl_next::protocol::Flexibility,
694        body: ::fidl_next::Body<___T>,
695        responder: ::fidl_next::protocol::Responder<___T>,
696    ) -> ::core::result::Result<
697        (),
698        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
699    > {
700        match ordinal {
701            6266213890697819096 => {
702                let responder = ::fidl_next::Responder::from_untyped(responder);
703
704                handler.get_topological_path(responder).await;
705                Ok(())
706            }
707
708            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
709        }
710    }
711}
712
713impl<___T> TopologicalPathClientHandler<___T> for ::fidl_next::IgnoreEvents where
714    ___T: ::fidl_next::Transport
715{
716}
717
718impl<___H, ___T> TopologicalPathLocalClientHandler<___T> for ::fidl_next::Local<___H>
719where
720    ___H: TopologicalPathClientHandler<___T>,
721    ___T: ::fidl_next::Transport,
722{
723}
724
725impl<___H, ___T> TopologicalPathLocalServerHandler<___T> for ::fidl_next::Local<___H>
726where
727    ___H: TopologicalPathServerHandler<___T>,
728    ___T: ::fidl_next::Transport,
729{
730    async fn get_topological_path(
731        &mut self,
732
733        responder: ::fidl_next::Responder<topological_path::GetTopologicalPath, ___T>,
734    ) {
735        ___H::get_topological_path(&mut self.0, responder).await
736    }
737}