Skip to main content

fidl_next_fuchsia_hardware_rpmb/
fidl_next_fuchsia_hardware_rpmb.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_rpmb::natural::*;
8
9    #[doc = " Represents an RPMB operation, which consists of sending one or more frames then receiving zero\n or more frames. The tx_frames and rx_frames VMOs will be transferred to the protocol\n implementation, so clients should keep duplicates of them if access is needed after the call to\n Request().\n The request will be aborted as soon as an error is encountered, meaning the read operation will\n not be performed if the write operation failed. Invalid parameters passed through tx_frames or\n rx_frames will cause an error to be returned immediately, without either operation having been\n performed.\n"]
10    #[derive(Debug, PartialEq)]
11    pub struct Request {
12        pub tx_frames: ::fidl_next_fuchsia_mem::natural::Range,
13
14        pub rx_frames:
15            ::core::option::Option<::std::boxed::Box<::fidl_next_fuchsia_mem::natural::Range>>,
16    }
17
18    unsafe impl<___E> ::fidl_next::Encode<crate::wire::Request<'static>, ___E> for Request
19    where
20        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
21        ___E: ::fidl_next::Encoder,
22        ___E: ::fidl_next::fuchsia::HandleEncoder,
23    {
24        #[inline]
25        fn encode(
26            self,
27            encoder_: &mut ___E,
28            out_: &mut ::core::mem::MaybeUninit<crate::wire::Request<'static>>,
29            _: (),
30        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
31            ::fidl_next::munge! {
32                let crate::wire::Request {
33                    tx_frames,
34                    rx_frames,
35
36                } = out_;
37            }
38
39            ::fidl_next::Encode::encode(self.tx_frames, encoder_, tx_frames, ())?;
40
41            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(tx_frames.as_mut_ptr()) };
42
43            ::fidl_next::Encode::encode(self.rx_frames, encoder_, rx_frames, ())?;
44
45            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(rx_frames.as_mut_ptr()) };
46
47            Ok(())
48        }
49    }
50
51    unsafe impl<___E>
52        ::fidl_next::EncodeOption<
53            ::fidl_next::wire::Box<'static, crate::wire::Request<'static>>,
54            ___E,
55        > for Request
56    where
57        ___E: ::fidl_next::Encoder + ?Sized,
58        Request: ::fidl_next::Encode<crate::wire::Request<'static>, ___E>,
59    {
60        #[inline]
61        fn encode_option(
62            this: ::core::option::Option<Self>,
63            encoder: &mut ___E,
64            out: &mut ::core::mem::MaybeUninit<
65                ::fidl_next::wire::Box<'static, crate::wire::Request<'static>>,
66            >,
67            _: (),
68        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
69            if let Some(inner) = this {
70                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
71                ::fidl_next::wire::Box::encode_present(out);
72            } else {
73                ::fidl_next::wire::Box::encode_absent(out);
74            }
75
76            Ok(())
77        }
78    }
79
80    impl<'de> ::fidl_next::FromWire<crate::wire::Request<'de>> for Request {
81        #[inline]
82        fn from_wire(wire: crate::wire::Request<'de>) -> Self {
83            Self {
84                tx_frames: ::fidl_next::FromWire::from_wire(wire.tx_frames),
85
86                rx_frames: ::fidl_next::FromWire::from_wire(wire.rx_frames),
87            }
88        }
89    }
90
91    #[derive(Debug, PartialEq)]
92    pub struct RpmbRequestRequest {
93        pub request: crate::natural::Request,
94    }
95
96    unsafe impl<___E> ::fidl_next::Encode<crate::wire::RpmbRequestRequest<'static>, ___E>
97        for RpmbRequestRequest
98    where
99        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
100        ___E: ::fidl_next::Encoder,
101        ___E: ::fidl_next::fuchsia::HandleEncoder,
102    {
103        #[inline]
104        fn encode(
105            self,
106            encoder_: &mut ___E,
107            out_: &mut ::core::mem::MaybeUninit<crate::wire::RpmbRequestRequest<'static>>,
108            _: (),
109        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
110            ::fidl_next::munge! {
111                let crate::wire::RpmbRequestRequest {
112                    request,
113
114                } = out_;
115            }
116
117            ::fidl_next::Encode::encode(self.request, encoder_, request, ())?;
118
119            let mut _field = unsafe { ::fidl_next::Slot::new_unchecked(request.as_mut_ptr()) };
120
121            Ok(())
122        }
123    }
124
125    unsafe impl<___E>
126        ::fidl_next::EncodeOption<
127            ::fidl_next::wire::Box<'static, crate::wire::RpmbRequestRequest<'static>>,
128            ___E,
129        > for RpmbRequestRequest
130    where
131        ___E: ::fidl_next::Encoder + ?Sized,
132        RpmbRequestRequest: ::fidl_next::Encode<crate::wire::RpmbRequestRequest<'static>, ___E>,
133    {
134        #[inline]
135        fn encode_option(
136            this: ::core::option::Option<Self>,
137            encoder: &mut ___E,
138            out: &mut ::core::mem::MaybeUninit<
139                ::fidl_next::wire::Box<'static, crate::wire::RpmbRequestRequest<'static>>,
140            >,
141            _: (),
142        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
143            if let Some(inner) = this {
144                ::fidl_next::EncoderExt::encode_next(encoder, inner)?;
145                ::fidl_next::wire::Box::encode_present(out);
146            } else {
147                ::fidl_next::wire::Box::encode_absent(out);
148            }
149
150            Ok(())
151        }
152    }
153
154    impl<'de> ::fidl_next::FromWire<crate::wire::RpmbRequestRequest<'de>> for RpmbRequestRequest {
155        #[inline]
156        fn from_wire(wire: crate::wire::RpmbRequestRequest<'de>) -> Self {
157            Self { request: ::fidl_next::FromWire::from_wire(wire.request) }
158        }
159    }
160}
161
162pub mod wire {
163
164    pub use fidl_next_common_fuchsia_hardware_rpmb::wire::*;
165
166    /// The wire type corresponding to [`Request`].
167    #[derive(Debug)]
168    #[repr(C)]
169    pub struct Request<'de> {
170        pub tx_frames: ::fidl_next_fuchsia_mem::wire::Range,
171
172        pub rx_frames: ::fidl_next::wire::Box<'de, ::fidl_next_fuchsia_mem::wire::Range>,
173    }
174
175    static_assertions::const_assert_eq!(std::mem::size_of::<Request<'_>>(), 32);
176    static_assertions::const_assert_eq!(std::mem::align_of::<Request<'_>>(), 8);
177
178    static_assertions::const_assert_eq!(std::mem::offset_of!(Request<'_>, tx_frames), 0);
179
180    static_assertions::const_assert_eq!(std::mem::offset_of!(Request<'_>, rx_frames), 24);
181
182    impl ::fidl_next::Constrained for Request<'_> {
183        type Constraint = ();
184
185        fn validate(
186            _: ::fidl_next::Slot<'_, Self>,
187            _: Self::Constraint,
188        ) -> Result<(), ::fidl_next::ValidationError> {
189            Ok(())
190        }
191    }
192
193    unsafe impl ::fidl_next::Wire for Request<'static> {
194        type Narrowed<'de> = Request<'de>;
195
196        #[inline]
197        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
198            ::fidl_next::munge! {
199                let Self {
200                    tx_frames,
201                    rx_frames,
202
203                } = &mut *out_;
204            }
205
206            ::fidl_next::Wire::zero_padding(tx_frames);
207
208            ::fidl_next::Wire::zero_padding(rx_frames);
209        }
210    }
211
212    unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for Request<'de>
213    where
214        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
215        ___D: ::fidl_next::Decoder<'de>,
216        ___D: ::fidl_next::fuchsia::HandleDecoder,
217    {
218        fn decode(
219            slot_: ::fidl_next::Slot<'_, Self>,
220            decoder_: &mut ___D,
221            _: (),
222        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
223            ::fidl_next::munge! {
224                let Self {
225                    mut tx_frames,
226                    mut rx_frames,
227
228                } = slot_;
229            }
230
231            let _field = tx_frames.as_mut();
232
233            ::fidl_next::Decode::decode(tx_frames.as_mut(), decoder_, ())?;
234
235            let _field = rx_frames.as_mut();
236
237            ::fidl_next::Decode::decode(rx_frames.as_mut(), decoder_, ())?;
238
239            Ok(())
240        }
241    }
242
243    impl<'de> ::fidl_next::IntoNatural for Request<'de> {
244        type Natural = crate::natural::Request;
245    }
246
247    /// The wire type corresponding to [`RpmbRequestRequest`].
248    #[derive(Debug)]
249    #[repr(C)]
250    pub struct RpmbRequestRequest<'de> {
251        pub request: crate::wire::Request<'de>,
252    }
253
254    static_assertions::const_assert_eq!(std::mem::size_of::<RpmbRequestRequest<'_>>(), 32);
255    static_assertions::const_assert_eq!(std::mem::align_of::<RpmbRequestRequest<'_>>(), 8);
256
257    static_assertions::const_assert_eq!(std::mem::offset_of!(RpmbRequestRequest<'_>, request), 0);
258
259    impl ::fidl_next::Constrained for RpmbRequestRequest<'_> {
260        type Constraint = ();
261
262        fn validate(
263            _: ::fidl_next::Slot<'_, Self>,
264            _: Self::Constraint,
265        ) -> Result<(), ::fidl_next::ValidationError> {
266            Ok(())
267        }
268    }
269
270    unsafe impl ::fidl_next::Wire for RpmbRequestRequest<'static> {
271        type Narrowed<'de> = RpmbRequestRequest<'de>;
272
273        #[inline]
274        fn zero_padding(out_: &mut ::core::mem::MaybeUninit<Self>) {
275            ::fidl_next::munge! {
276                let Self {
277                    request,
278
279                } = &mut *out_;
280            }
281
282            ::fidl_next::Wire::zero_padding(request);
283        }
284    }
285
286    unsafe impl<'de, ___D> ::fidl_next::Decode<___D> for RpmbRequestRequest<'de>
287    where
288        ___D: ::fidl_next::decoder::InternalHandleDecoder + ?Sized,
289        ___D: ::fidl_next::Decoder<'de>,
290        ___D: ::fidl_next::fuchsia::HandleDecoder,
291    {
292        fn decode(
293            slot_: ::fidl_next::Slot<'_, Self>,
294            decoder_: &mut ___D,
295            _: (),
296        ) -> ::core::result::Result<(), ::fidl_next::DecodeError> {
297            ::fidl_next::munge! {
298                let Self {
299                    mut request,
300
301                } = slot_;
302            }
303
304            let _field = request.as_mut();
305
306            ::fidl_next::Decode::decode(request.as_mut(), decoder_, ())?;
307
308            Ok(())
309        }
310    }
311
312    impl<'de> ::fidl_next::IntoNatural for RpmbRequestRequest<'de> {
313        type Natural = crate::natural::RpmbRequestRequest;
314    }
315}
316
317pub mod wire_optional {
318
319    pub use fidl_next_common_fuchsia_hardware_rpmb::wire_optional::*;
320}
321
322pub mod generic {
323
324    pub use fidl_next_common_fuchsia_hardware_rpmb::generic::*;
325
326    /// The generic type corresponding to [`Request`].
327    pub struct Request<T0, T1> {
328        pub tx_frames: T0,
329
330        pub rx_frames: T1,
331    }
332
333    unsafe impl<___E, T0, T1> ::fidl_next::Encode<crate::wire::Request<'static>, ___E>
334        for Request<T0, T1>
335    where
336        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
337        ___E: ::fidl_next::Encoder,
338        ___E: ::fidl_next::fuchsia::HandleEncoder,
339        T0: ::fidl_next::Encode<::fidl_next_fuchsia_mem::wire::Range, ___E>,
340        T1: ::fidl_next::Encode<
341                ::fidl_next::wire::Box<'static, ::fidl_next_fuchsia_mem::wire::Range>,
342                ___E,
343            >,
344    {
345        #[inline]
346        fn encode(
347            self,
348            encoder_: &mut ___E,
349            out_: &mut ::core::mem::MaybeUninit<crate::wire::Request<'static>>,
350            _: (),
351        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
352            ::fidl_next::munge! {
353                let crate::wire::Request {
354                    tx_frames,
355                    rx_frames,
356
357                } = out_;
358            }
359
360            ::fidl_next::Encode::encode(self.tx_frames, encoder_, tx_frames, ())?;
361
362            ::fidl_next::Encode::encode(self.rx_frames, encoder_, rx_frames, ())?;
363
364            Ok(())
365        }
366    }
367
368    unsafe impl<'a, ___E, T0, T1> ::fidl_next::Encode<crate::wire::Request<'static>, ___E>
369        for &'a Request<T0, T1>
370    where
371        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
372        ___E: ::fidl_next::Encoder,
373        ___E: ::fidl_next::fuchsia::HandleEncoder,
374        &'a T0: ::fidl_next::Encode<::fidl_next_fuchsia_mem::wire::Range, ___E>,
375        &'a T1: ::fidl_next::Encode<
376                ::fidl_next::wire::Box<'static, ::fidl_next_fuchsia_mem::wire::Range>,
377                ___E,
378            >,
379    {
380        #[inline]
381        fn encode(
382            self,
383            encoder_: &mut ___E,
384            out_: &mut ::core::mem::MaybeUninit<crate::wire::Request<'static>>,
385            _: (),
386        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
387            ::fidl_next::munge! {
388                let crate::wire::Request {
389                    tx_frames,
390                    rx_frames,
391
392                } = out_;
393            }
394
395            ::fidl_next::Encode::encode(&self.tx_frames, encoder_, tx_frames, ())?;
396
397            ::fidl_next::Encode::encode(&self.rx_frames, encoder_, rx_frames, ())?;
398
399            Ok(())
400        }
401    }
402
403    /// The generic type corresponding to [`RpmbRequestRequest`].
404    pub struct RpmbRequestRequest<T0> {
405        pub request: T0,
406    }
407
408    unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::RpmbRequestRequest<'static>, ___E>
409        for RpmbRequestRequest<T0>
410    where
411        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
412        ___E: ::fidl_next::Encoder,
413        ___E: ::fidl_next::fuchsia::HandleEncoder,
414        T0: ::fidl_next::Encode<crate::wire::Request<'static>, ___E>,
415    {
416        #[inline]
417        fn encode(
418            self,
419            encoder_: &mut ___E,
420            out_: &mut ::core::mem::MaybeUninit<crate::wire::RpmbRequestRequest<'static>>,
421            _: (),
422        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
423            ::fidl_next::munge! {
424                let crate::wire::RpmbRequestRequest {
425                    request,
426
427                } = out_;
428            }
429
430            ::fidl_next::Encode::encode(self.request, encoder_, request, ())?;
431
432            Ok(())
433        }
434    }
435
436    unsafe impl<'a, ___E, T0> ::fidl_next::Encode<crate::wire::RpmbRequestRequest<'static>, ___E>
437        for &'a RpmbRequestRequest<T0>
438    where
439        ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
440        ___E: ::fidl_next::Encoder,
441        ___E: ::fidl_next::fuchsia::HandleEncoder,
442        &'a T0: ::fidl_next::Encode<crate::wire::Request<'static>, ___E>,
443    {
444        #[inline]
445        fn encode(
446            self,
447            encoder_: &mut ___E,
448            out_: &mut ::core::mem::MaybeUninit<crate::wire::RpmbRequestRequest<'static>>,
449            _: (),
450        ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
451            ::fidl_next::munge! {
452                let crate::wire::RpmbRequestRequest {
453                    request,
454
455                } = out_;
456            }
457
458            ::fidl_next::Encode::encode(&self.request, encoder_, request, ())?;
459
460            Ok(())
461        }
462    }
463}
464
465pub use self::natural::*;
466
467/// The type corresponding to the Rpmb protocol.
468#[derive(PartialEq, Debug)]
469pub struct Rpmb;
470
471impl ::fidl_next::Discoverable for Rpmb {
472    const PROTOCOL_NAME: &'static str = "fuchsia.hardware.rpmb.Rpmb";
473}
474
475#[cfg(target_os = "fuchsia")]
476impl ::fidl_next::HasTransport for Rpmb {
477    type Transport = ::fidl_next::fuchsia::zx::Channel;
478}
479
480pub mod rpmb {
481    pub mod prelude {
482        pub use crate::{
483            Rpmb, RpmbClientHandler, RpmbLocalClientHandler, RpmbLocalServerHandler,
484            RpmbServerHandler, rpmb,
485        };
486
487        pub use crate::natural::RpmbGetDeviceInfoResponse;
488
489        pub use crate::natural::RpmbRequestRequest;
490
491        pub use crate::natural::RpmbRequestResponse;
492    }
493
494    pub struct GetDeviceInfo;
495
496    impl ::fidl_next::Method for GetDeviceInfo {
497        const ORDINAL: u64 = 6399474108337708832;
498        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
499            ::fidl_next::protocol::Flexibility::Strict;
500
501        type Protocol = crate::Rpmb;
502
503        type Request = ::fidl_next::wire::EmptyMessageBody;
504    }
505
506    impl ::fidl_next::TwoWayMethod for GetDeviceInfo {
507        type Response = ::fidl_next::wire::Strict<crate::wire::RpmbGetDeviceInfoResponse<'static>>;
508    }
509
510    impl<___R> ::fidl_next::Respond<___R> for GetDeviceInfo {
511        type Output = ::fidl_next::Strict<crate::generic::RpmbGetDeviceInfoResponse<___R>>;
512
513        fn respond(response: ___R) -> Self::Output {
514            ::fidl_next::Strict(crate::generic::RpmbGetDeviceInfoResponse { info: response })
515        }
516    }
517
518    pub struct Request;
519
520    impl ::fidl_next::Method for Request {
521        const ORDINAL: u64 = 2199356259956099574;
522        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
523            ::fidl_next::protocol::Flexibility::Strict;
524
525        type Protocol = crate::Rpmb;
526
527        type Request = crate::wire::RpmbRequestRequest<'static>;
528    }
529
530    impl ::fidl_next::TwoWayMethod for Request {
531        type Response = ::fidl_next::wire::Result<
532            'static,
533            crate::wire::RpmbRequestResponse,
534            ::fidl_next::wire::fuchsia::Status,
535        >;
536    }
537
538    impl<___R> ::fidl_next::Respond<___R> for Request {
539        type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
540
541        fn respond(response: ___R) -> Self::Output {
542            ::core::result::Result::Ok(response)
543        }
544    }
545
546    impl<___R> ::fidl_next::RespondErr<___R> for Request {
547        type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
548
549        fn respond_err(response: ___R) -> Self::Output {
550            ::core::result::Result::Err(response)
551        }
552    }
553
554    mod ___detail {
555        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Rpmb
556        where
557            ___T: ::fidl_next::Transport,
558        {
559            type Client = RpmbClient<___T>;
560            type Server = RpmbServer<___T>;
561        }
562
563        /// The client for the `Rpmb` protocol.
564        #[repr(transparent)]
565        pub struct RpmbClient<___T: ::fidl_next::Transport> {
566            #[allow(dead_code)]
567            client: ::fidl_next::protocol::Client<___T>,
568        }
569
570        impl<___T> RpmbClient<___T>
571        where
572            ___T: ::fidl_next::Transport,
573        {
574            pub fn get_device_info(
575                &self,
576            ) -> ::fidl_next::TwoWayFuture<'_, super::GetDeviceInfo, ___T> {
577                ::fidl_next::TwoWayFuture::from_untyped(
578                    self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
579                        6399474108337708832,
580                        <super::GetDeviceInfo as ::fidl_next::Method>::FLEXIBILITY,
581                        (),
582                    ),
583                )
584            }
585
586            pub fn request(
587                &self,
588
589                request: impl ::fidl_next::Encode<
590                    crate::wire::Request<'static>,
591                    <___T as ::fidl_next::Transport>::SendBuffer,
592                >,
593            ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
594            where
595                <___T as ::fidl_next::Transport>::SendBuffer:
596                    ::fidl_next::encoder::InternalHandleEncoder,
597                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
598                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
599            {
600                self.request_with(crate::generic::RpmbRequestRequest { request })
601            }
602
603            pub fn request_with<___R>(
604                &self,
605                request: ___R,
606            ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
607            where
608                ___R: ::fidl_next::Encode<
609                        crate::wire::RpmbRequestRequest<'static>,
610                        <___T as ::fidl_next::Transport>::SendBuffer,
611                    >,
612            {
613                ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
614                    2199356259956099574,
615                    <super::Request as ::fidl_next::Method>::FLEXIBILITY,
616                    request,
617                ))
618            }
619        }
620
621        /// The server for the `Rpmb` protocol.
622        #[repr(transparent)]
623        pub struct RpmbServer<___T: ::fidl_next::Transport> {
624            server: ::fidl_next::protocol::Server<___T>,
625        }
626
627        impl<___T> RpmbServer<___T> where ___T: ::fidl_next::Transport {}
628    }
629}
630
631#[diagnostic::on_unimplemented(
632    note = "If {Self} implements the non-local RpmbClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
633)]
634
635/// A client handler for the Rpmb protocol.
636///
637/// See [`Rpmb`] for more details.
638pub trait RpmbLocalClientHandler<
639    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
640    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
641>
642{
643}
644
645impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Rpmb
646where
647    ___H: RpmbLocalClientHandler<___T>,
648    ___T: ::fidl_next::Transport,
649{
650    async fn on_event(
651        handler: &mut ___H,
652        mut message: ::fidl_next::Message<___T>,
653    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
654        match *message.header().ordinal {
655            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
656        }
657    }
658}
659
660#[diagnostic::on_unimplemented(
661    note = "If {Self} implements the non-local RpmbServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
662)]
663
664/// A server handler for the Rpmb protocol.
665///
666/// See [`Rpmb`] for more details.
667pub trait RpmbLocalServerHandler<
668    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
669    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
670>
671{
672    fn get_device_info(
673        &mut self,
674
675        responder: ::fidl_next::Responder<rpmb::GetDeviceInfo, ___T>,
676    ) -> impl ::core::future::Future<Output = ()>;
677
678    fn request(
679        &mut self,
680
681        request: ::fidl_next::Request<rpmb::Request, ___T>,
682
683        responder: ::fidl_next::Responder<rpmb::Request, ___T>,
684    ) -> impl ::core::future::Future<Output = ()>;
685}
686
687impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Rpmb
688where
689    ___H: RpmbLocalServerHandler<___T>,
690    ___T: ::fidl_next::Transport,
691    for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
692            <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
693            Constraint = (),
694        >,
695{
696    async fn on_one_way(
697        handler: &mut ___H,
698        mut message: ::fidl_next::Message<___T>,
699    ) -> ::core::result::Result<
700        (),
701        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
702    > {
703        match *message.header().ordinal {
704            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
705        }
706    }
707
708    async fn on_two_way(
709        handler: &mut ___H,
710        mut message: ::fidl_next::Message<___T>,
711        responder: ::fidl_next::protocol::Responder<___T>,
712    ) -> ::core::result::Result<
713        (),
714        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
715    > {
716        match *message.header().ordinal {
717            6399474108337708832 => {
718                let responder = ::fidl_next::Responder::from_untyped(responder);
719
720                handler.get_device_info(responder).await;
721                Ok(())
722            }
723
724            2199356259956099574 => {
725                let responder = ::fidl_next::Responder::from_untyped(responder);
726
727                match ::fidl_next::AsDecoderExt::into_decoded(message) {
728                    Ok(decoded) => {
729                        handler
730                            .request(::fidl_next::Request::from_decoded(decoded), responder)
731                            .await;
732                        Ok(())
733                    }
734                    Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
735                        ordinal: 2199356259956099574,
736                        error,
737                    }),
738                }
739            }
740
741            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
742        }
743    }
744}
745
746/// A client handler for the Rpmb protocol.
747///
748/// See [`Rpmb`] for more details.
749pub trait RpmbClientHandler<
750    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
751    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
752>
753{
754}
755
756impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Rpmb
757where
758    ___H: RpmbClientHandler<___T> + ::core::marker::Send,
759    ___T: ::fidl_next::Transport,
760{
761    async fn on_event(
762        handler: &mut ___H,
763        mut message: ::fidl_next::Message<___T>,
764    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
765        match *message.header().ordinal {
766            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
767        }
768    }
769}
770
771/// A server handler for the Rpmb protocol.
772///
773/// See [`Rpmb`] for more details.
774pub trait RpmbServerHandler<
775    #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
776    #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
777>
778{
779    fn get_device_info(
780        &mut self,
781
782        responder: ::fidl_next::Responder<rpmb::GetDeviceInfo, ___T>,
783    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
784
785    fn request(
786        &mut self,
787
788        request: ::fidl_next::Request<rpmb::Request, ___T>,
789
790        responder: ::fidl_next::Responder<rpmb::Request, ___T>,
791    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
792}
793
794impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Rpmb
795where
796    ___H: RpmbServerHandler<___T> + ::core::marker::Send,
797    ___T: ::fidl_next::Transport,
798    for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
799            <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
800            Constraint = (),
801        >,
802{
803    async fn on_one_way(
804        handler: &mut ___H,
805        mut message: ::fidl_next::Message<___T>,
806    ) -> ::core::result::Result<
807        (),
808        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
809    > {
810        match *message.header().ordinal {
811            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
812        }
813    }
814
815    async fn on_two_way(
816        handler: &mut ___H,
817        mut message: ::fidl_next::Message<___T>,
818        responder: ::fidl_next::protocol::Responder<___T>,
819    ) -> ::core::result::Result<
820        (),
821        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
822    > {
823        match *message.header().ordinal {
824            6399474108337708832 => {
825                let responder = ::fidl_next::Responder::from_untyped(responder);
826
827                handler.get_device_info(responder).await;
828                Ok(())
829            }
830
831            2199356259956099574 => {
832                let responder = ::fidl_next::Responder::from_untyped(responder);
833
834                match ::fidl_next::AsDecoderExt::into_decoded(message) {
835                    Ok(decoded) => {
836                        handler
837                            .request(::fidl_next::Request::from_decoded(decoded), responder)
838                            .await;
839                        Ok(())
840                    }
841                    Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
842                        ordinal: 2199356259956099574,
843                        error,
844                    }),
845                }
846            }
847
848            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
849        }
850    }
851}
852
853impl<___T> RpmbClientHandler<___T> for ::fidl_next::IgnoreEvents where ___T: ::fidl_next::Transport {}
854
855impl<___H, ___T> RpmbLocalClientHandler<___T> for ::fidl_next::Local<___H>
856where
857    ___H: RpmbClientHandler<___T>,
858    ___T: ::fidl_next::Transport,
859{
860}
861
862impl<___H, ___T> RpmbLocalServerHandler<___T> for ::fidl_next::Local<___H>
863where
864    ___H: RpmbServerHandler<___T>,
865    ___T: ::fidl_next::Transport,
866{
867    async fn get_device_info(
868        &mut self,
869
870        responder: ::fidl_next::Responder<rpmb::GetDeviceInfo, ___T>,
871    ) {
872        ___H::get_device_info(&mut self.0, responder).await
873    }
874
875    async fn request(
876        &mut self,
877
878        request: ::fidl_next::Request<rpmb::Request, ___T>,
879
880        responder: ::fidl_next::Responder<rpmb::Request, ___T>,
881    ) {
882        ___H::request(&mut self.0, request, responder).await
883    }
884}
885
886/// The type corresponding to the DriverRpmb protocol.
887#[doc = " A driver transport variant of the `Rpmb` protocol.\n"]
888#[derive(PartialEq, Debug)]
889pub struct DriverRpmb;
890
891impl ::fidl_next::Discoverable for DriverRpmb {
892    const PROTOCOL_NAME: &'static str = "fuchsia.hardware.rpmb.DriverRpmb";
893}
894
895#[cfg(feature = "driver")]
896impl ::fidl_next::HasTransport for DriverRpmb {
897    type Transport = ::fdf_fidl::DriverChannel;
898}
899
900pub mod driver_rpmb {
901    pub mod prelude {
902        pub use crate::{
903            DriverRpmb, DriverRpmbClientHandler, DriverRpmbLocalClientHandler,
904            DriverRpmbLocalServerHandler, DriverRpmbServerHandler, driver_rpmb,
905        };
906
907        pub use crate::natural::RpmbGetDeviceInfoResponse;
908
909        pub use crate::natural::RpmbRequestRequest;
910
911        pub use crate::natural::RpmbRequestResponse;
912    }
913
914    pub struct GetDeviceInfo;
915
916    impl ::fidl_next::Method for GetDeviceInfo {
917        const ORDINAL: u64 = 6399474108337708832;
918        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
919            ::fidl_next::protocol::Flexibility::Strict;
920
921        type Protocol = crate::DriverRpmb;
922
923        type Request = ::fidl_next::wire::EmptyMessageBody;
924    }
925
926    impl ::fidl_next::TwoWayMethod for GetDeviceInfo {
927        type Response = ::fidl_next::wire::Strict<crate::wire::RpmbGetDeviceInfoResponse<'static>>;
928    }
929
930    impl<___R> ::fidl_next::Respond<___R> for GetDeviceInfo {
931        type Output = ::fidl_next::Strict<crate::generic::RpmbGetDeviceInfoResponse<___R>>;
932
933        fn respond(response: ___R) -> Self::Output {
934            ::fidl_next::Strict(crate::generic::RpmbGetDeviceInfoResponse { info: response })
935        }
936    }
937
938    pub struct Request;
939
940    impl ::fidl_next::Method for Request {
941        const ORDINAL: u64 = 2199356259956099574;
942        const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
943            ::fidl_next::protocol::Flexibility::Strict;
944
945        type Protocol = crate::DriverRpmb;
946
947        type Request = crate::wire::RpmbRequestRequest<'static>;
948    }
949
950    impl ::fidl_next::TwoWayMethod for Request {
951        type Response = ::fidl_next::wire::Result<
952            'static,
953            crate::wire::RpmbRequestResponse,
954            ::fidl_next::wire::fuchsia::Status,
955        >;
956    }
957
958    impl<___R> ::fidl_next::Respond<___R> for Request {
959        type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
960
961        fn respond(response: ___R) -> Self::Output {
962            ::core::result::Result::Ok(response)
963        }
964    }
965
966    impl<___R> ::fidl_next::RespondErr<___R> for Request {
967        type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
968
969        fn respond_err(response: ___R) -> Self::Output {
970            ::core::result::Result::Err(response)
971        }
972    }
973
974    mod ___detail {
975        unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::DriverRpmb
976        where
977            ___T: ::fidl_next::Transport,
978        {
979            type Client = DriverRpmbClient<___T>;
980            type Server = DriverRpmbServer<___T>;
981        }
982
983        /// The client for the `DriverRpmb` protocol.
984        #[repr(transparent)]
985        pub struct DriverRpmbClient<___T: ::fidl_next::Transport> {
986            #[allow(dead_code)]
987            client: ::fidl_next::protocol::Client<___T>,
988        }
989
990        impl<___T> DriverRpmbClient<___T>
991        where
992            ___T: ::fidl_next::Transport,
993        {
994            pub fn get_device_info(
995                &self,
996            ) -> ::fidl_next::TwoWayFuture<'_, super::GetDeviceInfo, ___T> {
997                ::fidl_next::TwoWayFuture::from_untyped(
998                    self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
999                        6399474108337708832,
1000                        <super::GetDeviceInfo as ::fidl_next::Method>::FLEXIBILITY,
1001                        (),
1002                    ),
1003                )
1004            }
1005
1006            pub fn request(
1007                &self,
1008
1009                request: impl ::fidl_next::Encode<
1010                    crate::wire::Request<'static>,
1011                    <___T as ::fidl_next::Transport>::SendBuffer,
1012                >,
1013            ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
1014            where
1015                <___T as ::fidl_next::Transport>::SendBuffer:
1016                    ::fidl_next::encoder::InternalHandleEncoder,
1017                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
1018                <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
1019            {
1020                self.request_with(crate::generic::RpmbRequestRequest { request })
1021            }
1022
1023            pub fn request_with<___R>(
1024                &self,
1025                request: ___R,
1026            ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
1027            where
1028                ___R: ::fidl_next::Encode<
1029                        crate::wire::RpmbRequestRequest<'static>,
1030                        <___T as ::fidl_next::Transport>::SendBuffer,
1031                    >,
1032            {
1033                ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
1034                    2199356259956099574,
1035                    <super::Request as ::fidl_next::Method>::FLEXIBILITY,
1036                    request,
1037                ))
1038            }
1039        }
1040
1041        /// The server for the `DriverRpmb` protocol.
1042        #[repr(transparent)]
1043        pub struct DriverRpmbServer<___T: ::fidl_next::Transport> {
1044            server: ::fidl_next::protocol::Server<___T>,
1045        }
1046
1047        impl<___T> DriverRpmbServer<___T> where ___T: ::fidl_next::Transport {}
1048    }
1049}
1050
1051#[diagnostic::on_unimplemented(
1052    note = "If {Self} implements the non-local DriverRpmbClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
1053)]
1054
1055/// A client handler for the DriverRpmb protocol.
1056///
1057/// See [`DriverRpmb`] for more details.
1058pub trait DriverRpmbLocalClientHandler<
1059    #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
1060    #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
1061>
1062{
1063}
1064
1065impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for DriverRpmb
1066where
1067    ___H: DriverRpmbLocalClientHandler<___T>,
1068    ___T: ::fidl_next::Transport,
1069{
1070    async fn on_event(
1071        handler: &mut ___H,
1072        mut message: ::fidl_next::Message<___T>,
1073    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
1074        match *message.header().ordinal {
1075            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1076        }
1077    }
1078}
1079
1080#[diagnostic::on_unimplemented(
1081    note = "If {Self} implements the non-local DriverRpmbServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
1082)]
1083
1084/// A server handler for the DriverRpmb protocol.
1085///
1086/// See [`DriverRpmb`] for more details.
1087pub trait DriverRpmbLocalServerHandler<
1088    #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
1089    #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
1090>
1091{
1092    fn get_device_info(
1093        &mut self,
1094
1095        responder: ::fidl_next::Responder<driver_rpmb::GetDeviceInfo, ___T>,
1096    ) -> impl ::core::future::Future<Output = ()>;
1097
1098    fn request(
1099        &mut self,
1100
1101        request: ::fidl_next::Request<driver_rpmb::Request, ___T>,
1102
1103        responder: ::fidl_next::Responder<driver_rpmb::Request, ___T>,
1104    ) -> impl ::core::future::Future<Output = ()>;
1105}
1106
1107impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for DriverRpmb
1108where
1109    ___H: DriverRpmbLocalServerHandler<___T>,
1110    ___T: ::fidl_next::Transport,
1111    for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
1112            <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1113            Constraint = (),
1114        >,
1115{
1116    async fn on_one_way(
1117        handler: &mut ___H,
1118        mut message: ::fidl_next::Message<___T>,
1119    ) -> ::core::result::Result<
1120        (),
1121        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1122    > {
1123        match *message.header().ordinal {
1124            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1125        }
1126    }
1127
1128    async fn on_two_way(
1129        handler: &mut ___H,
1130        mut message: ::fidl_next::Message<___T>,
1131        responder: ::fidl_next::protocol::Responder<___T>,
1132    ) -> ::core::result::Result<
1133        (),
1134        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1135    > {
1136        match *message.header().ordinal {
1137            6399474108337708832 => {
1138                let responder = ::fidl_next::Responder::from_untyped(responder);
1139
1140                handler.get_device_info(responder).await;
1141                Ok(())
1142            }
1143
1144            2199356259956099574 => {
1145                let responder = ::fidl_next::Responder::from_untyped(responder);
1146
1147                match ::fidl_next::AsDecoderExt::into_decoded(message) {
1148                    Ok(decoded) => {
1149                        handler
1150                            .request(::fidl_next::Request::from_decoded(decoded), responder)
1151                            .await;
1152                        Ok(())
1153                    }
1154                    Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1155                        ordinal: 2199356259956099574,
1156                        error,
1157                    }),
1158                }
1159            }
1160
1161            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1162        }
1163    }
1164}
1165
1166/// A client handler for the DriverRpmb protocol.
1167///
1168/// See [`DriverRpmb`] for more details.
1169pub trait DriverRpmbClientHandler<
1170    #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
1171    #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
1172>
1173{
1174}
1175
1176impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for DriverRpmb
1177where
1178    ___H: DriverRpmbClientHandler<___T> + ::core::marker::Send,
1179    ___T: ::fidl_next::Transport,
1180{
1181    async fn on_event(
1182        handler: &mut ___H,
1183        mut message: ::fidl_next::Message<___T>,
1184    ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
1185        match *message.header().ordinal {
1186            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1187        }
1188    }
1189}
1190
1191/// A server handler for the DriverRpmb protocol.
1192///
1193/// See [`DriverRpmb`] for more details.
1194pub trait DriverRpmbServerHandler<
1195    #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
1196    #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
1197>
1198{
1199    fn get_device_info(
1200        &mut self,
1201
1202        responder: ::fidl_next::Responder<driver_rpmb::GetDeviceInfo, ___T>,
1203    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1204
1205    fn request(
1206        &mut self,
1207
1208        request: ::fidl_next::Request<driver_rpmb::Request, ___T>,
1209
1210        responder: ::fidl_next::Responder<driver_rpmb::Request, ___T>,
1211    ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1212}
1213
1214impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for DriverRpmb
1215where
1216    ___H: DriverRpmbServerHandler<___T> + ::core::marker::Send,
1217    ___T: ::fidl_next::Transport,
1218    for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
1219            <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1220            Constraint = (),
1221        >,
1222{
1223    async fn on_one_way(
1224        handler: &mut ___H,
1225        mut message: ::fidl_next::Message<___T>,
1226    ) -> ::core::result::Result<
1227        (),
1228        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1229    > {
1230        match *message.header().ordinal {
1231            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1232        }
1233    }
1234
1235    async fn on_two_way(
1236        handler: &mut ___H,
1237        mut message: ::fidl_next::Message<___T>,
1238        responder: ::fidl_next::protocol::Responder<___T>,
1239    ) -> ::core::result::Result<
1240        (),
1241        ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1242    > {
1243        match *message.header().ordinal {
1244            6399474108337708832 => {
1245                let responder = ::fidl_next::Responder::from_untyped(responder);
1246
1247                handler.get_device_info(responder).await;
1248                Ok(())
1249            }
1250
1251            2199356259956099574 => {
1252                let responder = ::fidl_next::Responder::from_untyped(responder);
1253
1254                match ::fidl_next::AsDecoderExt::into_decoded(message) {
1255                    Ok(decoded) => {
1256                        handler
1257                            .request(::fidl_next::Request::from_decoded(decoded), responder)
1258                            .await;
1259                        Ok(())
1260                    }
1261                    Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1262                        ordinal: 2199356259956099574,
1263                        error,
1264                    }),
1265                }
1266            }
1267
1268            ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1269        }
1270    }
1271}
1272
1273impl<___T> DriverRpmbClientHandler<___T> for ::fidl_next::IgnoreEvents where
1274    ___T: ::fidl_next::Transport
1275{
1276}
1277
1278impl<___H, ___T> DriverRpmbLocalClientHandler<___T> for ::fidl_next::Local<___H>
1279where
1280    ___H: DriverRpmbClientHandler<___T>,
1281    ___T: ::fidl_next::Transport,
1282{
1283}
1284
1285impl<___H, ___T> DriverRpmbLocalServerHandler<___T> for ::fidl_next::Local<___H>
1286where
1287    ___H: DriverRpmbServerHandler<___T>,
1288    ___T: ::fidl_next::Transport,
1289{
1290    async fn get_device_info(
1291        &mut self,
1292
1293        responder: ::fidl_next::Responder<driver_rpmb::GetDeviceInfo, ___T>,
1294    ) {
1295        ___H::get_device_info(&mut self.0, responder).await
1296    }
1297
1298    async fn request(
1299        &mut self,
1300
1301        request: ::fidl_next::Request<driver_rpmb::Request, ___T>,
1302
1303        responder: ::fidl_next::Responder<driver_rpmb::Request, ___T>,
1304    ) {
1305        ___H::request(&mut self.0, request, responder).await
1306    }
1307}
1308
1309/// The type corresponding to the Service service.
1310#[derive(Debug)]
1311pub struct Service;
1312
1313impl ::fidl_next::DiscoverableService for Service {
1314    const SERVICE_NAME: &'static str = "fuchsia.hardware.rpmb.Service";
1315    const MEMBER_NAMES: &'static [&'static str] = &["device"];
1316}
1317
1318impl ::fidl_next::HasServiceRequest<::fidl_next::fuchsia::zx::Channel> for Service {}
1319
1320impl<___C> ::fidl_next::Service<___C> for Service
1321where
1322    ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
1323{
1324    type Connector = ServiceConnector<___C>;
1325}
1326
1327/// A strongly-typed service connector for the `Service` service.
1328#[repr(transparent)]
1329pub struct ServiceConnector<___C> {
1330    #[allow(dead_code)]
1331    connector: ___C,
1332}
1333
1334impl<___C> ServiceConnector<___C>
1335where
1336    ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
1337{
1338    /// Attempts to connect to the `device` service member.
1339    pub fn device(
1340        &self,
1341        server_end: ::fidl_next::ServerEnd<crate::Rpmb, ::fidl_next::fuchsia::zx::Channel>,
1342    ) -> ::core::result::Result<
1343        (),
1344        <___C as ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>>::Error,
1345    > {
1346        ::fidl_next::protocol::ServiceConnector::<
1347                ::fidl_next::fuchsia::zx::Channel
1348            >::connect_to_member(
1349                &self.connector,
1350                "device",
1351                server_end.into_untyped(),
1352            )
1353    }
1354}
1355
1356/// A service handler for the `Service` service.
1357pub trait ServiceHandler {
1358    /// Handles an attempt to connect to the `device` member.
1359    fn device(
1360        &self,
1361        server_end: ::fidl_next::ServerEnd<crate::Rpmb, ::fidl_next::fuchsia::zx::Channel>,
1362    );
1363}
1364
1365impl<___H, ___T> ::fidl_next::DispatchServiceHandler<___H, ___T> for Service
1366where
1367    ___H: ServiceHandler,
1368    ::fidl_next::fuchsia::zx::Channel: ::fidl_next::InstanceFromServiceTransport<___T>,
1369{
1370    fn on_connection(handler: &___H, member: &str, server_end: ___T) {
1371        use ::fidl_next::InstanceFromServiceTransport;
1372        match member {
1373            "device" => handler.device(::fidl_next::ServerEnd::from_untyped(
1374                ::fidl_next::fuchsia::zx::Channel::from_service_transport(server_end),
1375            )),
1376
1377            _ => unreachable!(),
1378        }
1379    }
1380}
1381
1382pub use fidl_next_common_fuchsia_hardware_rpmb::*;