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
125                    path,
126
127                } = out_;
128            }
129
130            ::fidl_next::Encode::encode(&self.path, encoder_, path, 1024)?;
131
132            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(path.as_mut_ptr()) };
133            ::fidl_next::Constrained::validate(_field, 1024)?;
134
135            Ok(())
136        }
137    }
138
139    unsafe impl<___E>
140        ::fidl_next::EncodeOption<
141            ::fidl_next::wire::Box<
142                'static,
143                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
144            >,
145            ___E,
146        > for TopologicalPathGetTopologicalPathResponse
147    where
148        ___E: ::fidl_next::Encoder + ?Sized,
149        TopologicalPathGetTopologicalPathResponse: ::fidl_next::Encode<
150                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
151                ___E,
152            >,
153    {
154        #[inline]
155        fn encode_option(
156            this: ::core::option::Option<Self>,
157            encoder: &mut ___E,
158            out: &mut ::core::mem::MaybeUninit<
159                ::fidl_next::wire::Box<
160                    'static,
161                    crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
162                >,
163            >,
164            _: (),
165        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
166            if let Some(inner) = this {
167                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
168                ::fidl_next::wire::Box::encode_present(out);
169            } else {
170                ::fidl_next::wire::Box::encode_absent(out);
171            }
172
173            Ok(())
174        }
175    }
176
177    unsafe impl<'a, ___E>
178        ::fidl_next::EncodeOption<
179            ::fidl_next::wire::Box<
180                'static,
181                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
182            >,
183            ___E,
184        > for &'a TopologicalPathGetTopologicalPathResponse
185    where
186        ___E: ::fidl_next::Encoder + ?Sized,
187        &'a TopologicalPathGetTopologicalPathResponse: ::fidl_next::Encode<
188                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
189                ___E,
190            >,
191    {
192        #[inline]
193        fn encode_option(
194            this: ::core::option::Option<Self>,
195            encoder: &mut ___E,
196            out: &mut ::core::mem::MaybeUninit<
197                ::fidl_next::wire::Box<
198                    'static,
199                    crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
200                >,
201            >,
202            _: (),
203        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
204            if let Some(inner) = this {
205                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
206                ::fidl_next::wire::Box::encode_present(out);
207            } else {
208                ::fidl_next::wire::Box::encode_absent(out);
209            }
210
211            Ok(())
212        }
213    }
214
215    impl<'de> ::fidl_next::FromWire<crate::wire::TopologicalPathGetTopologicalPathResponse<'de>>
216        for TopologicalPathGetTopologicalPathResponse
217    {
218        #[inline]
219        fn from_wire(wire: crate::wire::TopologicalPathGetTopologicalPathResponse<'de>) -> Self {
220            Self { path: ::fidl_next::FromWire::from_wire(wire.path) }
221        }
222    }
223
224    impl<'de> ::fidl_next::FromWireRef<crate::wire::TopologicalPathGetTopologicalPathResponse<'de>>
225        for TopologicalPathGetTopologicalPathResponse
226    {
227        #[inline]
228        fn from_wire_ref(
229            wire: &crate::wire::TopologicalPathGetTopologicalPathResponse<'de>,
230        ) -> Self {
231            Self { path: ::fidl_next::FromWireRef::from_wire_ref(&wire.path) }
232        }
233    }
234}
235
236pub mod wire {
237
238    /// The wire type corresponding to [`ConnectionType`](crate::natural::ConnectionType).
239    #[derive(Clone, Copy, Debug)]
240    #[repr(transparent)]
241    pub struct ConnectionType {
242        pub(crate) value: u8,
243    }
244
245    impl ::fidl_next::Constrained for ConnectionType {
246        type Constraint = ();
247
248        fn validate(
249            _: ::fidl_next::Slot<'_, Self>,
250            _: Self::Constraint,
251        ) -> Result<(), ::fidl_next::ValidationError> {
252            Ok(())
253        }
254    }
255
256    unsafe impl ::fidl_next::Wire for ConnectionType {
257        type Narrowed<'de> = Self;
258
259        #[inline]
260        fn zero_padding(_: &mut ::core::mem::MaybeUninit<Self>) {
261            // Wire bits have no padding
262        }
263    }
264
265    unsafe impl<___D> ::fidl_next::Decode<___D> for ConnectionType
266    where
267        ___D: ?Sized,
268    {
269        fn decode(
270            slot: ::fidl_next::Slot<'_, Self>,
271            _: &mut ___D,
272            _: (),
273        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
274            Ok(())
275        }
276    }
277
278    impl ::core::convert::From<crate::natural::ConnectionType> for ConnectionType {
279        fn from(natural: crate::natural::ConnectionType) -> Self {
280            Self { value: u8::from(natural.bits()) }
281        }
282    }
283
284    impl ::fidl_next::IntoNatural for ConnectionType {
285        type Natural = crate::natural::ConnectionType;
286    }
287
288    /// The wire type corresponding to [`TopologicalPathGetTopologicalPathResponse`].
289    #[derive(Debug)]
290    #[repr(C)]
291    pub struct TopologicalPathGetTopologicalPathResponse<'de> {
292        pub path: ::fidl_next::wire::String<'de>,
293    }
294
295    static_assertions::const_assert_eq!(
296        std::mem::size_of::<TopologicalPathGetTopologicalPathResponse<'_>>(),
297        16
298    );
299    static_assertions::const_assert_eq!(
300        std::mem::align_of::<TopologicalPathGetTopologicalPathResponse<'_>>(),
301        8
302    );
303
304    static_assertions::const_assert_eq!(
305        std::mem::offset_of!(TopologicalPathGetTopologicalPathResponse<'_>, path),
306        0
307    );
308
309    impl ::fidl_next::Constrained for TopologicalPathGetTopologicalPathResponse<'_> {
310        type Constraint = ();
311
312        fn validate(
313            _: ::fidl_next::Slot<'_, Self>,
314            _: Self::Constraint,
315        ) -> Result<(), ::fidl_next::ValidationError> {
316            Ok(())
317        }
318    }
319
320    unsafe impl ::fidl_next::Wire for TopologicalPathGetTopologicalPathResponse<'static> {
321        type Narrowed<'de> = TopologicalPathGetTopologicalPathResponse<'de>;
322
323        #[inline]
324        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
325            ::fidl_next::munge! {
326                let Self {
327
328                    path,
329
330                } = &mut *out_;
331            }
332
333            ::fidl_next::Wire::zero_padding(path);
334        }
335    }
336
337    unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for TopologicalPathGetTopologicalPathResponse<'de>
338    where
339        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
340        ___D: ::fidl_next::Decoder<'de>,
341    {
342        fn decode(
343            slot_: ::fidl_next::Slot<'_, Self>,
344            decoder_: &mut ___D,
345            _: (),
346        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
347            ::fidl_next::munge! {
348                let Self {
349
350                    mut path,
351
352                } = slot_;
353            }
354
355            let _field = path.as_mut();
356            ::fidl_next::Constrained::validate(_field, 1024)?;
357            ::fidl_next::Decode::decode(path.as_mut(), decoder_, 1024)?;
358
359            let path = unsafe { path.deref_unchecked() };
360
361            if path.len() > 1024 {
362                return Err(::fidl_next::DecodeError::VectorTooLong {
363                    size: path.len() as u64,
364                    limit: 1024,
365                });
366            }
367
368            Ok(())
369        }
370    }
371
372    impl<'de> ::fidl_next::IntoNatural for TopologicalPathGetTopologicalPathResponse<'de> {
373        type Natural = crate::natural::TopologicalPathGetTopologicalPathResponse;
374    }
375}
376
377pub mod wire_optional {}
378
379pub mod generic {
380
381    pub struct TopologicalPathGetTopologicalPathResponse<T0> {
382        pub path: T0,
383    }
384
385    unsafe impl<___E, T0>
386        ::fidl_next::Encode<crate::wire::TopologicalPathGetTopologicalPathResponse<'static>, ___E>
387        for TopologicalPathGetTopologicalPathResponse<T0>
388    where
389        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
390        ___E: ::fidl_next::Encoder,
391        T0: ::fidl_next::Encode<::fidl_next::wire::String<'static>, ___E>,
392    {
393        #[inline]
394        fn encode(
395            self,
396            encoder_: &mut ___E,
397            out_: &mut ::core::mem::MaybeUninit<
398                crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
399            >,
400            _: (),
401        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
402            ::fidl_next::munge! {
403                let crate::wire::TopologicalPathGetTopologicalPathResponse {
404
405                    path,
406
407                } = out_;
408            }
409
410            ::fidl_next::Encode::encode(self.path, encoder_, path, 1024)?;
411
412            Ok(())
413        }
414    }
415}
416
417pub use self::natural::*;
418
419#[doc = " This name is reserved for accessing the fuchsia.device/Controller protocol\n within /dev/. No devices can be created with this name.\n"]
420pub const DEVICE_CONTROLLER_NAME: &str = "device_controller";
421
422#[doc = " This name is reserved for accessing the device specific protocol\n within /dev/. No devices can be created with this name.\n"]
423pub const DEVICE_PROTOCOL_NAME: &str = "device_protocol";
424
425#[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"]
426pub const DEVICE_TOPOLOGY_NAME: &str = "device_topology";
427
428#[doc = " Maximum length of a device path\n"]
429pub const MAX_DEVICE_PATH_LEN: u64 = 1024 as u64;
430
431#[doc = " Maximum length for a driver path\n"]
432pub const MAX_DRIVER_PATH_LEN: u64 = 1024 as u64;
433
434/// The type corresponding to the TopologicalPath protocol.
435#[derive(PartialEq, Debug)]
436pub struct TopologicalPath;
437
438#[cfg(target_os = "fuchsia")]
439impl ::fidl_next::HasTransport for TopologicalPath {
440    type Transport = ::fidl_next::fuchsia::zx::Channel;
441}
442
443pub mod topological_path {
444    pub mod prelude {
445        pub use crate::{
446            TopologicalPath, TopologicalPathClientHandler, TopologicalPathServerHandler,
447            topological_path,
448        };
449
450        pub use crate::natural::TopologicalPathGetTopologicalPathResponse;
451    }
452
453    pub struct GetTopologicalPath;
454
455    impl ::fidl_next::Method for GetTopologicalPath {
456        const ORDINAL: u64 = 6266213890697819096;
457        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
458            ::fidl_next::protocol::Flexibility::Strict;
459
460        type Protocol = crate::TopologicalPath;
461
462        type Request = ();
463    }
464
465    impl ::fidl_next::TwoWayMethod for GetTopologicalPath {
466        type Response = ::fidl_next::wire::Result<
467            'static,
468            crate::wire::TopologicalPathGetTopologicalPathResponse<'static>,
469            ::fidl_next::wire::Int32,
470        >;
471    }
472
473    impl<___R> ::fidl_next::Respond<___R> for GetTopologicalPath {
474        type Output = ::core::result::Result<
475            crate::generic::TopologicalPathGetTopologicalPathResponse<___R>,
476            ::fidl_next::util::Never,
477        >;
478
479        fn respond(response: ___R) -> Self::Output {
480            ::core::result::Result::Ok(crate::generic::TopologicalPathGetTopologicalPathResponse {
481                path: response,
482            })
483        }
484    }
485
486    impl<___R> ::fidl_next::RespondErr<___R> for GetTopologicalPath {
487        type Output = ::core::result::Result<::fidl_next::util::Never, ___R>;
488
489        fn respond_err(response: ___R) -> Self::Output {
490            ::core::result::Result::Err(response)
491        }
492    }
493
494    mod ___detail {
495        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::TopologicalPath
496        where
497            ___T: ::fidl_next::Transport,
498        {
499            type Client = TopologicalPathClient<___T>;
500            type Server = TopologicalPathServer<___T>;
501        }
502
503        /// The client for the `TopologicalPath` protocol.
504        #[repr(transparent)]
505        pub struct TopologicalPathClient<___T: ::fidl_next::Transport> {
506            #[allow(dead_code)]
507            client: ::fidl_next::protocol::Client<___T>,
508        }
509
510        impl<___T> TopologicalPathClient<___T>
511        where
512            ___T: ::fidl_next::Transport,
513        {
514            #[doc = " Return the topological path for this device\n"]
515            pub fn get_topological_path(
516                &self,
517            ) -> ::fidl_next::TwoWayFuture<'_, super::GetTopologicalPath, ___T> {
518                ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
519                    6266213890697819096,
520                    <super::GetTopologicalPath as ::fidl_next::Method>::FLEXIBILITY,
521                    (),
522                ))
523            }
524        }
525
526        /// The server for the `TopologicalPath` protocol.
527        #[repr(transparent)]
528        pub struct TopologicalPathServer<___T: ::fidl_next::Transport> {
529            server: ::fidl_next::protocol::Server<___T>,
530        }
531
532        impl<___T> TopologicalPathServer<___T> where ___T: ::fidl_next::Transport {}
533    }
534}
535
536/// A client handler for the TopologicalPath protocol.
537///
538/// See [`TopologicalPath`] for more details.
539pub trait TopologicalPathClientHandler<
540    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
541    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
542>
543{
544}
545
546impl<___T> TopologicalPathClientHandler<___T> for ::fidl_next::IgnoreEvents where
547    ___T: ::fidl_next::Transport
548{
549}
550
551impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for TopologicalPath
552where
553    ___H: TopologicalPathClientHandler<___T> + ::core::marker::Send,
554    ___T: ::fidl_next::Transport,
555{
556    async fn on_event(
557        handler: &mut ___H,
558        ordinal: u64,
559        flexibility: ::fidl_next::protocol::Flexibility,
560        body: ::fidl_next::Body<___T>,
561    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
562        match ordinal {
563            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
564        }
565    }
566}
567
568/// A server handler for the TopologicalPath protocol.
569///
570/// See [`TopologicalPath`] for more details.
571pub trait TopologicalPathServerHandler<
572    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
573    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
574>
575{
576    #[doc = " Return the topological path for this device\n"]
577    fn get_topological_path(
578        &mut self,
579
580        responder: ::fidl_next::Responder<topological_path::GetTopologicalPath, ___T>,
581    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
582}
583
584impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for TopologicalPath
585where
586    ___H: TopologicalPathServerHandler<___T> + ::core::marker::Send,
587    ___T: ::fidl_next::Transport,
588{
589    async fn on_one_way(
590        handler: &mut ___H,
591        ordinal: u64,
592        flexibility: ::fidl_next::protocol::Flexibility,
593        body: ::fidl_next::Body<___T>,
594    ) -> ::core::result::Result<
595        (),
596        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
597    > {
598        match ordinal {
599            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
600        }
601    }
602
603    async fn on_two_way(
604        handler: &mut ___H,
605        ordinal: u64,
606        flexibility: ::fidl_next::protocol::Flexibility,
607        body: ::fidl_next::Body<___T>,
608        responder: ::fidl_next::protocol::Responder<___T>,
609    ) -> ::core::result::Result<
610        (),
611        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
612    > {
613        match ordinal {
614            6266213890697819096 => {
615                let responder = ::fidl_next::Responder::from_untyped(responder);
616
617                handler.get_topological_path(responder).await;
618                Ok(())
619            }
620
621            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
622        }
623    }
624}
625
626/// Compatibility shims which mimic some API surfaces of the current Rust bindings.
627pub mod compat {
628
629    impl ::fidl_next::CompatFrom<crate::ConnectionType> for ::fidl_fuchsia_device_fs::ConnectionType {
630        fn compat_from(value: crate::ConnectionType) -> Self {
631            Self::from_bits_retain(value.bits())
632        }
633    }
634
635    impl ::fidl_next::CompatFrom<::fidl_fuchsia_device_fs::ConnectionType> for crate::ConnectionType {
636        fn compat_from(value: ::fidl_fuchsia_device_fs::ConnectionType) -> Self {
637            Self::from_bits_retain(value.bits())
638        }
639    }
640
641    impl ::fidl_next::CompatFrom<crate::TopologicalPathGetTopologicalPathResponse>
642        for ::fidl_fuchsia_device_fs::TopologicalPathGetTopologicalPathResponse
643    {
644        #[inline]
645        fn compat_from(value: crate::TopologicalPathGetTopologicalPathResponse) -> Self {
646            Self { path: ::fidl_next::CompatFrom::compat_from(value.path) }
647        }
648    }
649
650    impl
651        ::fidl_next::CompatFrom<::fidl_fuchsia_device_fs::TopologicalPathGetTopologicalPathResponse>
652        for crate::TopologicalPathGetTopologicalPathResponse
653    {
654        #[inline]
655        fn compat_from(
656            value: ::fidl_fuchsia_device_fs::TopologicalPathGetTopologicalPathResponse,
657        ) -> Self {
658            Self { path: ::fidl_next::CompatFrom::compat_from(value.path) }
659        }
660    }
661
662    #[cfg(target_os = "fuchsia")]
663    /// An alias for a client over `zx::Channel` for the `TopologicalPath`
664    /// protocol.
665    pub type TopologicalPathProxy = ::fidl_next::Client<crate::TopologicalPath>;
666
667    impl ::fidl_next::CompatFrom<crate::TopologicalPath>
668        for ::fidl_fuchsia_device_fs::TopologicalPathMarker
669    {
670        fn compat_from(_: crate::TopologicalPath) -> Self {
671            Self
672        }
673    }
674
675    impl ::fidl_next::CompatFrom<::fidl_fuchsia_device_fs::TopologicalPathMarker>
676        for crate::TopologicalPath
677    {
678        fn compat_from(_: ::fidl_fuchsia_device_fs::TopologicalPathMarker) -> Self {
679            Self
680        }
681    }
682
683    #[cfg(target_os = "fuchsia")]
684
685    impl ::fidl_next::ClientCompatFrom<::fidl_fuchsia_device_fs::TopologicalPathProxy>
686        for crate::TopologicalPath
687    {
688        fn client_compat_from(
689            proxy: ::fidl_fuchsia_device_fs::TopologicalPathProxy,
690        ) -> ::fidl_next::ClientDispatcher<Self, ::fidl_next::fuchsia::zx::Channel> {
691            let channel = ::fidl::endpoints::Proxy::into_channel(proxy).unwrap().into_zx_channel();
692            let client_end = ::fidl_next::ClientEnd::from_untyped(channel);
693            ::fidl_next::ClientDispatcher::new(client_end)
694        }
695    }
696}