Skip to main content

fidl_next_fuchsia_hardware_power/
fidl_next_fuchsia_hardware_power.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_hardware_power::natural::*;
8
9    #[derive(Debug, PartialEq)]
10    #[repr(C)]
11    pub struct PowerTokenProviderGetTokenResponse {
12        pub handle: ::fidl_next::fuchsia::zx::Event,
13    }
14
15    unsafe impl<___E> ::fidl_next::Encode<crate::wire::PowerTokenProviderGetTokenResponse, ___E>
16        for PowerTokenProviderGetTokenResponse
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::PowerTokenProviderGetTokenResponse,
24        > = unsafe {
25            ::fidl_next::CopyOptimization::enable_if(
26                true && <::fidl_next::fuchsia::zx::Event as ::fidl_next::Encode<
27                    ::fidl_next::wire::fuchsia::Event,
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::PowerTokenProviderGetTokenResponse>,
39            _: (),
40        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
41            ::fidl_next::munge! {
42                let crate::wire::PowerTokenProviderGetTokenResponse {
43                    handle,
44
45                } = out_;
46            }
47
48            ::fidl_next::Encode::encode(self.handle, encoder_, handle, ())?;
49
50            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(handle.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::PowerTokenProviderGetTokenResponse>,
59            ___E,
60        > for PowerTokenProviderGetTokenResponse
61    where
62        ___E: ::fidl_next::Encoder + ?Sized,
63        PowerTokenProviderGetTokenResponse:
64            ::fidl_next::Encode<crate::wire::PowerTokenProviderGetTokenResponse, ___E>,
65    {
66        #[inline]
67        fn encode_option(
68            this: ::core::option::Option<Self>,
69            encoder: &mut ___E,
70            out: &mut ::core::mem::MaybeUninit<
71                ::fidl_next::wire::Box<'static, crate::wire::PowerTokenProviderGetTokenResponse>,
72            >,
73            _: (),
74        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
75            if let Some(inner) = this {
76                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
77                ::fidl_next::wire::Box::encode_present(out);
78            } else {
79                ::fidl_next::wire::Box::encode_absent(out);
80            }
81
82            Ok(())
83        }
84    }
85
86    impl ::fidl_next::FromWire<crate::wire::PowerTokenProviderGetTokenResponse>
87        for PowerTokenProviderGetTokenResponse
88    {
89        const COPY_OPTIMIZATION: ::fidl_next::CopyOptimization<
90            crate::wire::PowerTokenProviderGetTokenResponse,
91            Self,
92        > = unsafe {
93            ::fidl_next::CopyOptimization::enable_if(
94                true && <::fidl_next::fuchsia::zx::Event as ::fidl_next::FromWire<
95                    ::fidl_next::wire::fuchsia::Event,
96                >>::COPY_OPTIMIZATION
97                    .is_enabled(),
98            )
99        };
100
101        #[inline]
102        fn from_wire(wire: crate::wire::PowerTokenProviderGetTokenResponse) -> Self {
103            Self { handle: ::fidl_next::FromWire::from_wire(wire.handle) }
104        }
105    }
106}
107
108pub mod wire {
109
110    pub use fidl_next_common_fuchsia_hardware_power::wire::*;
111
112    /// The wire type corresponding to [`PowerTokenProviderGetTokenResponse`].
113    #[derive(Debug)]
114    #[repr(C)]
115    pub struct PowerTokenProviderGetTokenResponse {
116        pub handle: ::fidl_next::wire::fuchsia::Event,
117    }
118
119    static_assertions::const_assert_eq!(
120        std::mem::size_of::<PowerTokenProviderGetTokenResponse>(),
121        4
122    );
123    static_assertions::const_assert_eq!(
124        std::mem::align_of::<PowerTokenProviderGetTokenResponse>(),
125        4
126    );
127
128    static_assertions::const_assert_eq!(
129        std::mem::offset_of!(PowerTokenProviderGetTokenResponse, handle),
130        0
131    );
132
133    impl ::fidl_next::Constrained for PowerTokenProviderGetTokenResponse {
134        type Constraint = ();
135
136        fn validate(
137            _: ::fidl_next::Slot<'_, Self>,
138            _: Self::Constraint,
139        ) -> Result<(), ::fidl_next::ValidationError> {
140            Ok(())
141        }
142    }
143
144    unsafe impl ::fidl_next::Wire for PowerTokenProviderGetTokenResponse {
145        type Narrowed<'de> = PowerTokenProviderGetTokenResponse;
146
147        #[inline]
148        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
149            ::fidl_next::munge! {
150                let Self {
151                    handle,
152
153                } = &mut *out_;
154            }
155
156            ::fidl_next::Wire::zero_padding(handle);
157        }
158    }
159
160    unsafe impl<___D> ::fidl_next::Decode<___D> for PowerTokenProviderGetTokenResponse
161    where
162        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
163        ___D: ::fidl_next::fuchsia::HandleDecoder,
164    {
165        fn decode(
166            slot_: ::fidl_next::Slot<'_, Self>,
167            decoder_: &mut ___D,
168            _: (),
169        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
170            ::fidl_next::munge! {
171                let Self {
172                    mut handle,
173
174                } = slot_;
175            }
176
177            let _field = handle.as_mut();
178
179            ::fidl_next::Decode::decode(handle.as_mut(), decoder_, ())?;
180
181            Ok(())
182        }
183    }
184
185    impl ::fidl_next::IntoNatural for PowerTokenProviderGetTokenResponse {
186        type Natural = crate::natural::PowerTokenProviderGetTokenResponse;
187    }
188}
189
190pub mod wire_optional {
191
192    pub use fidl_next_common_fuchsia_hardware_power::wire_optional::*;
193}
194
195pub mod generic {
196
197    pub use fidl_next_common_fuchsia_hardware_power::generic::*;
198
199    /// The generic type corresponding to [`PowerTokenProviderGetTokenResponse`].
200    pub struct PowerTokenProviderGetTokenResponse<T0> {
201        pub handle: T0,
202    }
203
204    unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::PowerTokenProviderGetTokenResponse, ___E>
205        for PowerTokenProviderGetTokenResponse<T0>
206    where
207        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
208        ___E: ::fidl_next::fuchsia::HandleEncoder,
209        T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Event, ___E>,
210    {
211        #[inline]
212        fn encode(
213            self,
214            encoder_: &mut ___E,
215            out_: &mut ::core::mem::MaybeUninit<crate::wire::PowerTokenProviderGetTokenResponse>,
216            _: (),
217        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
218            ::fidl_next::munge! {
219                let crate::wire::PowerTokenProviderGetTokenResponse {
220                    handle,
221
222                } = out_;
223            }
224
225            ::fidl_next::Encode::encode(self.handle, encoder_, handle, ())?;
226
227            Ok(())
228        }
229    }
230
231    unsafe impl<'a, ___E, T0>
232        ::fidl_next::Encode<crate::wire::PowerTokenProviderGetTokenResponse, ___E>
233        for &'a PowerTokenProviderGetTokenResponse<T0>
234    where
235        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
236        ___E: ::fidl_next::fuchsia::HandleEncoder,
237        &'a T0: ::fidl_next::Encode<::fidl_next::wire::fuchsia::Event, ___E>,
238    {
239        #[inline]
240        fn encode(
241            self,
242            encoder_: &mut ___E,
243            out_: &mut ::core::mem::MaybeUninit<crate::wire::PowerTokenProviderGetTokenResponse>,
244            _: (),
245        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
246            ::fidl_next::munge! {
247                let crate::wire::PowerTokenProviderGetTokenResponse {
248                    handle,
249
250                } = out_;
251            }
252
253            ::fidl_next::Encode::encode(&self.handle, encoder_, handle, ())?;
254
255            Ok(())
256        }
257    }
258}
259
260pub use self::natural::*;
261
262/// The type corresponding to the PowerTokenProvider protocol.
263#[derive(PartialEq, Debug)]
264pub struct PowerTokenProvider;
265
266impl ::fidl_next::Discoverable for PowerTokenProvider {
267    const PROTOCOL_NAME: &'static str = "fuchsia.hardware.power.PowerTokenProvider";
268}
269
270#[cfg(target_os = "fuchsia")]
271impl ::fidl_next::HasTransport for PowerTokenProvider {
272    type Transport = ::fidl_next::fuchsia::zx::Channel;
273}
274
275pub mod power_token_provider {
276    pub mod prelude {
277        pub use crate::{
278            PowerTokenProvider, PowerTokenProviderClientHandler,
279            PowerTokenProviderLocalClientHandler, PowerTokenProviderLocalServerHandler,
280            PowerTokenProviderServerHandler, power_token_provider,
281        };
282
283        pub use crate::natural::PowerTokenProviderGetTokenResponse;
284    }
285
286    pub struct GetToken;
287
288    impl ::fidl_next::Method for GetToken {
289        const ORDINAL: u64 = 2926448721688236234;
290        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
291            ::fidl_next::protocol::Flexibility::Flexible;
292
293        type Protocol = crate::PowerTokenProvider;
294
295        type Request = ::fidl_next::wire::EmptyMessageBody;
296    }
297
298    impl ::fidl_next::TwoWayMethod for GetToken {
299        type Response = ::fidl_next::wire::Result<
300            'static,
301            crate::wire::PowerTokenProviderGetTokenResponse,
302            ::fidl_next::wire::fuchsia::Status,
303        >;
304    }
305
306    impl<___R> ::fidl_next::Respond<___R> for GetToken {
307        type Output = ::core::result::Result<
308            crate::generic::PowerTokenProviderGetTokenResponse<___R>,
309            ::fidl_next::never::Never,
310        >;
311
312        fn respond(response: ___R) -> Self::Output {
313            ::core::result::Result::Ok(crate::generic::PowerTokenProviderGetTokenResponse {
314                handle: response,
315            })
316        }
317    }
318
319    impl<___R> ::fidl_next::RespondErr<___R> for GetToken {
320        type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
321
322        fn respond_err(response: ___R) -> Self::Output {
323            ::core::result::Result::Err(response)
324        }
325    }
326
327    mod ___detail {
328        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::PowerTokenProvider
329        where
330            ___T: ::fidl_next::Transport,
331        {
332            type Client = PowerTokenProviderClient<___T>;
333            type Server = PowerTokenProviderServer<___T>;
334        }
335
336        /// The client for the `PowerTokenProvider` protocol.
337        #[repr(transparent)]
338        pub struct PowerTokenProviderClient<___T: ::fidl_next::Transport> {
339            #[allow(dead_code)]
340            client: ::fidl_next::protocol::Client<___T>,
341        }
342
343        impl<___T> PowerTokenProviderClient<___T>
344        where
345            ___T: ::fidl_next::Transport,
346        {
347            #[doc = " Returns a token which can be used with `fuchsia.power.broker` APIs to\n create a relationship between this driver\'s power element(s) and the\n power element this token is associated with.\n"]
348            pub fn get_token(&self) -> ::fidl_next::TwoWayFuture<'_, super::GetToken, ___T> {
349                ::fidl_next::TwoWayFuture::from_untyped(
350                    self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
351                        2926448721688236234,
352                        <super::GetToken as ::fidl_next::Method>::FLEXIBILITY,
353                        (),
354                    ),
355                )
356            }
357        }
358
359        /// The server for the `PowerTokenProvider` protocol.
360        #[repr(transparent)]
361        pub struct PowerTokenProviderServer<___T: ::fidl_next::Transport> {
362            server: ::fidl_next::protocol::Server<___T>,
363        }
364
365        impl<___T> PowerTokenProviderServer<___T> where ___T: ::fidl_next::Transport {}
366    }
367}
368
369#[diagnostic::on_unimplemented(
370    note = "If {Self} implements the non-local PowerTokenProviderClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
371)]
372
373/// A client handler for the PowerTokenProvider protocol.
374///
375/// See [`PowerTokenProvider`] for more details.
376pub trait PowerTokenProviderLocalClientHandler<
377    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
378    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
379>
380{
381    fn on_unknown_interaction(&mut self, ordinal: u64) -> impl ::core::future::Future<Output = ()> {
382        ::core::future::ready(())
383    }
384}
385
386impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for PowerTokenProvider
387where
388    ___H: PowerTokenProviderLocalClientHandler<___T>,
389    ___T: ::fidl_next::Transport,
390{
391    async fn on_event(
392        handler: &mut ___H,
393        mut message: ::fidl_next::Message<___T>,
394    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
395        match *message.header().ordinal {
396            ordinal => {
397                handler.on_unknown_interaction(ordinal).await;
398                if ::core::matches!(
399                    message.header().flexibility(),
400                    ::fidl_next::protocol::Flexibility::Strict
401                ) {
402                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
403                } else {
404                    Ok(())
405                }
406            }
407        }
408    }
409}
410
411#[diagnostic::on_unimplemented(
412    note = "If {Self} implements the non-local PowerTokenProviderServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
413)]
414
415/// A server handler for the PowerTokenProvider protocol.
416///
417/// See [`PowerTokenProvider`] for more details.
418pub trait PowerTokenProviderLocalServerHandler<
419    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
420    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
421>
422{
423    #[doc = " Returns a token which can be used with `fuchsia.power.broker` APIs to\n create a relationship between this driver\'s power element(s) and the\n power element this token is associated with.\n"]
424    fn get_token(
425        &mut self,
426
427        responder: ::fidl_next::Responder<power_token_provider::GetToken, ___T>,
428    ) -> impl ::core::future::Future<Output = ()>;
429
430    fn on_unknown_interaction(&mut self, ordinal: u64) -> impl ::core::future::Future<Output = ()> {
431        ::core::future::ready(())
432    }
433}
434
435impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for PowerTokenProvider
436where
437    ___H: PowerTokenProviderLocalServerHandler<___T>,
438    ___T: ::fidl_next::Transport,
439{
440    async fn on_one_way(
441        handler: &mut ___H,
442        mut message: ::fidl_next::Message<___T>,
443    ) -> ::core::result::Result<
444        (),
445        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
446    > {
447        match *message.header().ordinal {
448            ordinal => {
449                handler.on_unknown_interaction(ordinal).await;
450                if ::core::matches!(
451                    message.header().flexibility(),
452                    ::fidl_next::protocol::Flexibility::Strict
453                ) {
454                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
455                } else {
456                    Ok(())
457                }
458            }
459        }
460    }
461
462    async fn on_two_way(
463        handler: &mut ___H,
464        mut message: ::fidl_next::Message<___T>,
465        responder: ::fidl_next::protocol::Responder<___T>,
466    ) -> ::core::result::Result<
467        (),
468        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
469    > {
470        match *message.header().ordinal {
471            2926448721688236234 => {
472                let responder = ::fidl_next::Responder::from_untyped(responder);
473
474                handler.get_token(responder).await;
475                Ok(())
476            }
477
478            ordinal => {
479                handler.on_unknown_interaction(ordinal).await;
480                if ::core::matches!(
481                    message.header().flexibility(),
482                    ::fidl_next::protocol::Flexibility::Strict
483                ) {
484                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
485                } else {
486                    responder
487                        .respond_framework_error(
488                            ordinal,
489                            ::fidl_next::FrameworkError::UnknownMethod,
490                        )
491                        .expect("encoding a framework error should never fail")
492                        .await?;
493                    Ok(())
494                }
495            }
496        }
497    }
498}
499
500/// A client handler for the PowerTokenProvider protocol.
501///
502/// See [`PowerTokenProvider`] for more details.
503pub trait PowerTokenProviderClientHandler<
504    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
505    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
506>
507{
508    fn on_unknown_interaction(
509        &mut self,
510        ordinal: u64,
511    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send {
512        ::core::future::ready(())
513    }
514}
515
516impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for PowerTokenProvider
517where
518    ___H: PowerTokenProviderClientHandler<___T> + ::core::marker::Send,
519    ___T: ::fidl_next::Transport,
520{
521    async fn on_event(
522        handler: &mut ___H,
523        mut message: ::fidl_next::Message<___T>,
524    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
525        match *message.header().ordinal {
526            ordinal => {
527                handler.on_unknown_interaction(ordinal).await;
528                if ::core::matches!(
529                    message.header().flexibility(),
530                    ::fidl_next::protocol::Flexibility::Strict
531                ) {
532                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
533                } else {
534                    Ok(())
535                }
536            }
537        }
538    }
539}
540
541/// A server handler for the PowerTokenProvider protocol.
542///
543/// See [`PowerTokenProvider`] for more details.
544pub trait PowerTokenProviderServerHandler<
545    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
546    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
547>
548{
549    #[doc = " Returns a token which can be used with `fuchsia.power.broker` APIs to\n create a relationship between this driver\'s power element(s) and the\n power element this token is associated with.\n"]
550    fn get_token(
551        &mut self,
552
553        responder: ::fidl_next::Responder<power_token_provider::GetToken, ___T>,
554    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
555
556    fn on_unknown_interaction(
557        &mut self,
558        ordinal: u64,
559    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send {
560        ::core::future::ready(())
561    }
562}
563
564impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for PowerTokenProvider
565where
566    ___H: PowerTokenProviderServerHandler<___T> + ::core::marker::Send,
567    ___T: ::fidl_next::Transport,
568{
569    async fn on_one_way(
570        handler: &mut ___H,
571        mut message: ::fidl_next::Message<___T>,
572    ) -> ::core::result::Result<
573        (),
574        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
575    > {
576        match *message.header().ordinal {
577            ordinal => {
578                handler.on_unknown_interaction(ordinal).await;
579                if ::core::matches!(
580                    message.header().flexibility(),
581                    ::fidl_next::protocol::Flexibility::Strict
582                ) {
583                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
584                } else {
585                    Ok(())
586                }
587            }
588        }
589    }
590
591    async fn on_two_way(
592        handler: &mut ___H,
593        mut message: ::fidl_next::Message<___T>,
594        responder: ::fidl_next::protocol::Responder<___T>,
595    ) -> ::core::result::Result<
596        (),
597        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
598    > {
599        match *message.header().ordinal {
600            2926448721688236234 => {
601                let responder = ::fidl_next::Responder::from_untyped(responder);
602
603                handler.get_token(responder).await;
604                Ok(())
605            }
606
607            ordinal => {
608                handler.on_unknown_interaction(ordinal).await;
609                if ::core::matches!(
610                    message.header().flexibility(),
611                    ::fidl_next::protocol::Flexibility::Strict
612                ) {
613                    Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal))
614                } else {
615                    responder
616                        .respond_framework_error(
617                            ordinal,
618                            ::fidl_next::FrameworkError::UnknownMethod,
619                        )
620                        .expect("encoding a framework error should never fail")
621                        .await?;
622                    Ok(())
623                }
624            }
625        }
626    }
627}
628
629impl<___T> PowerTokenProviderClientHandler<___T> for ::fidl_next::IgnoreEvents
630where
631    ___T: ::fidl_next::Transport,
632{
633    async fn on_unknown_interaction(&mut self, _: u64) {}
634}
635
636impl<___H, ___T> PowerTokenProviderLocalClientHandler<___T> for ::fidl_next::Local<___H>
637where
638    ___H: PowerTokenProviderClientHandler<___T>,
639    ___T: ::fidl_next::Transport,
640{
641    async fn on_unknown_interaction(&mut self, ordinal: u64) {
642        ___H::on_unknown_interaction(&mut self.0, ordinal).await
643    }
644}
645
646impl<___H, ___T> PowerTokenProviderLocalServerHandler<___T> for ::fidl_next::Local<___H>
647where
648    ___H: PowerTokenProviderServerHandler<___T>,
649    ___T: ::fidl_next::Transport,
650{
651    async fn get_token(
652        &mut self,
653
654        responder: ::fidl_next::Responder<power_token_provider::GetToken, ___T>,
655    ) {
656        ___H::get_token(&mut self.0, responder).await
657    }
658
659    async fn on_unknown_interaction(&mut self, ordinal: u64) {
660        ___H::on_unknown_interaction(&mut self.0, ordinal).await
661    }
662}
663
664/// The type corresponding to the PowerTokenService service.
665#[derive(Debug)]
666pub struct PowerTokenService;
667
668impl ::fidl_next::DiscoverableService for PowerTokenService {
669    const SERVICE_NAME: &'static str = "fuchsia.hardware.power.PowerTokenService";
670    const MEMBER_NAMES: &'static [&'static str] = &["token_provider"];
671}
672
673impl ::fidl_next::HasServiceRequest<::fidl_next::fuchsia::zx::Channel> for PowerTokenService {}
674
675impl<___C> ::fidl_next::Service<___C> for PowerTokenService
676where
677    ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
678{
679    type Connector = PowerTokenServiceConnector<___C>;
680}
681
682/// A strongly-typed service connector for the `PowerTokenService` service.
683#[repr(transparent)]
684pub struct PowerTokenServiceConnector<___C> {
685    #[allow(dead_code)]
686    connector: ___C,
687}
688
689impl<___C> PowerTokenServiceConnector<___C>
690where
691    ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
692{
693    /// Attempts to connect to the `token_provider` service member.
694    pub fn token_provider(
695        &self,
696        server_end: ::fidl_next::ServerEnd<
697            crate::PowerTokenProvider,
698            ::fidl_next::fuchsia::zx::Channel,
699        >,
700    ) -> ::core::result::Result<
701        (),
702        <___C as ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>>::Error,
703    > {
704        ::fidl_next::protocol::ServiceConnector::<
705                ::fidl_next::fuchsia::zx::Channel
706            >::connect_to_member(
707                &self.connector,
708                "token_provider",
709                server_end.into_untyped(),
710            )
711    }
712}
713
714/// A service handler for the `PowerTokenService` service.
715pub trait PowerTokenServiceHandler {
716    /// Handles an attempt to connect to the `token_provider` member.
717    fn token_provider(
718        &self,
719        server_end: ::fidl_next::ServerEnd<
720            crate::PowerTokenProvider,
721            ::fidl_next::fuchsia::zx::Channel,
722        >,
723    );
724}
725
726impl<___H, ___T> ::fidl_next::DispatchServiceHandler<___H, ___T> for PowerTokenService
727where
728    ___H: PowerTokenServiceHandler,
729    ::fidl_next::fuchsia::zx::Channel: ::fidl_next::InstanceFromServiceTransport<___T>,
730{
731    fn on_connection(handler: &___H, member: &str, server_end: ___T) {
732        use ::fidl_next::InstanceFromServiceTransport;
733        match member {
734            "token_provider" => handler.token_provider(::fidl_next::ServerEnd::from_untyped(
735                ::fidl_next::fuchsia::zx::Channel::from_service_transport(server_end),
736            )),
737
738            _ => unreachable!(),
739        }
740    }
741}
742
743/// The type corresponding to the Service service.
744#[derive(Debug)]
745pub struct Service;
746
747impl ::fidl_next::DiscoverableService for Service {
748    const SERVICE_NAME: &'static str = "fuchsia.hardware.power.Service";
749    const MEMBER_NAMES: &'static [&'static str] = &["device"];
750}
751
752impl ::fidl_next::HasServiceRequest<::fidl_next::fuchsia::zx::Channel> for Service {}
753
754impl<___C> ::fidl_next::Service<___C> for Service
755where
756    ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
757{
758    type Connector = ServiceConnector<___C>;
759}
760
761/// A strongly-typed service connector for the `Service` service.
762#[repr(transparent)]
763pub struct ServiceConnector<___C> {
764    #[allow(dead_code)]
765    connector: ___C,
766}
767
768impl<___C> ServiceConnector<___C>
769where
770    ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
771{
772    /// Attempts to connect to the `device` service member.
773    pub fn device(
774        &self,
775        server_end: ::fidl_next::ServerEnd<crate::Device, ::fidl_next::fuchsia::zx::Channel>,
776    ) -> ::core::result::Result<
777        (),
778        <___C as ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>>::Error,
779    > {
780        ::fidl_next::protocol::ServiceConnector::<
781                ::fidl_next::fuchsia::zx::Channel
782            >::connect_to_member(
783                &self.connector,
784                "device",
785                server_end.into_untyped(),
786            )
787    }
788}
789
790/// A service handler for the `Service` service.
791pub trait ServiceHandler {
792    /// Handles an attempt to connect to the `device` member.
793    fn device(
794        &self,
795        server_end: ::fidl_next::ServerEnd<crate::Device, ::fidl_next::fuchsia::zx::Channel>,
796    );
797}
798
799impl<___H, ___T> ::fidl_next::DispatchServiceHandler<___H, ___T> for Service
800where
801    ___H: ServiceHandler,
802    ::fidl_next::fuchsia::zx::Channel: ::fidl_next::InstanceFromServiceTransport<___T>,
803{
804    fn on_connection(handler: &___H, member: &str, server_end: ___T) {
805        use ::fidl_next::InstanceFromServiceTransport;
806        match member {
807            "device" => handler.device(::fidl_next::ServerEnd::from_untyped(
808                ::fidl_next::fuchsia::zx::Channel::from_service_transport(server_end),
809            )),
810
811            _ => unreachable!(),
812        }
813    }
814}
815
816pub use fidl_next_common_fuchsia_hardware_power::*;