1#![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 #[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 #[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 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 pub struct RpmbRequestRequest<T0> {
370 pub request: T0,
371 }
372
373 unsafe impl<___E, T0> ::fidl_next::Encode<crate::wire::RpmbRequestRequest<'static>, ___E>
374 for RpmbRequestRequest<T0>
375 where
376 ___E: ::fidl_next::encoder::InternalHandleEncoder + ?Sized,
377 ___E: ::fidl_next::Encoder,
378 ___E: ::fidl_next::fuchsia::HandleEncoder,
379 T0: ::fidl_next::Encode<crate::wire::Request<'static>, ___E>,
380 {
381 #[inline]
382 fn encode(
383 self,
384 encoder_: &mut ___E,
385 out_: &mut ::core::mem::MaybeUninit<crate::wire::RpmbRequestRequest<'static>>,
386 _: (),
387 ) -> ::core::result::Result<(), ::fidl_next::EncodeError> {
388 ::fidl_next::munge! {
389 let crate::wire::RpmbRequestRequest {
390 request,
391
392 } = out_;
393 }
394
395 ::fidl_next::Encode::encode(self.request, encoder_, request, ())?;
396
397 Ok(())
398 }
399 }
400}
401
402pub use self::natural::*;
403
404#[derive(PartialEq, Debug)]
406pub struct Rpmb;
407
408impl ::fidl_next::Discoverable for Rpmb {
409 const PROTOCOL_NAME: &'static str = "fuchsia.hardware.rpmb.Rpmb";
410}
411
412#[cfg(target_os = "fuchsia")]
413impl ::fidl_next::HasTransport for Rpmb {
414 type Transport = ::fidl_next::fuchsia::zx::Channel;
415}
416
417pub mod rpmb {
418 pub mod prelude {
419 pub use crate::{
420 Rpmb, RpmbClientHandler, RpmbLocalClientHandler, RpmbLocalServerHandler,
421 RpmbServerHandler, rpmb,
422 };
423
424 pub use crate::natural::RpmbGetDeviceInfoResponse;
425
426 pub use crate::natural::RpmbRequestRequest;
427
428 pub use crate::natural::RpmbRequestResponse;
429 }
430
431 pub struct GetDeviceInfo;
432
433 impl ::fidl_next::Method for GetDeviceInfo {
434 const ORDINAL: u64 = 6399474108337708832;
435 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
436 ::fidl_next::protocol::Flexibility::Strict;
437
438 type Protocol = crate::Rpmb;
439
440 type Request = ::fidl_next::wire::EmptyMessageBody;
441 }
442
443 impl ::fidl_next::TwoWayMethod for GetDeviceInfo {
444 type Response = ::fidl_next::wire::Strict<crate::wire::RpmbGetDeviceInfoResponse<'static>>;
445 }
446
447 impl<___R> ::fidl_next::Respond<___R> for GetDeviceInfo {
448 type Output = ::fidl_next::Strict<crate::generic::RpmbGetDeviceInfoResponse<___R>>;
449
450 fn respond(response: ___R) -> Self::Output {
451 ::fidl_next::Strict(crate::generic::RpmbGetDeviceInfoResponse { info: response })
452 }
453 }
454
455 pub struct Request;
456
457 impl ::fidl_next::Method for Request {
458 const ORDINAL: u64 = 2199356259956099574;
459 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
460 ::fidl_next::protocol::Flexibility::Strict;
461
462 type Protocol = crate::Rpmb;
463
464 type Request = crate::wire::RpmbRequestRequest<'static>;
465 }
466
467 impl ::fidl_next::TwoWayMethod for Request {
468 type Response = ::fidl_next::wire::Result<
469 'static,
470 crate::wire::RpmbRequestResponse,
471 ::fidl_next::wire::fuchsia::Status,
472 >;
473 }
474
475 impl<___R> ::fidl_next::Respond<___R> for Request {
476 type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
477
478 fn respond(response: ___R) -> Self::Output {
479 ::core::result::Result::Ok(response)
480 }
481 }
482
483 impl<___R> ::fidl_next::RespondErr<___R> for Request {
484 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
485
486 fn respond_err(response: ___R) -> Self::Output {
487 ::core::result::Result::Err(response)
488 }
489 }
490
491 mod ___detail {
492 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::Rpmb
493 where
494 ___T: ::fidl_next::Transport,
495 {
496 type Client = RpmbClient<___T>;
497 type Server = RpmbServer<___T>;
498 }
499
500 #[repr(transparent)]
502 pub struct RpmbClient<___T: ::fidl_next::Transport> {
503 #[allow(dead_code)]
504 client: ::fidl_next::protocol::Client<___T>,
505 }
506
507 impl<___T> RpmbClient<___T>
508 where
509 ___T: ::fidl_next::Transport,
510 {
511 pub fn get_device_info(
512 &self,
513 ) -> ::fidl_next::TwoWayFuture<'_, super::GetDeviceInfo, ___T> {
514 ::fidl_next::TwoWayFuture::from_untyped(
515 self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
516 6399474108337708832,
517 <super::GetDeviceInfo as ::fidl_next::Method>::FLEXIBILITY,
518 (),
519 ),
520 )
521 }
522
523 pub fn request(
524 &self,
525
526 request: impl ::fidl_next::Encode<
527 crate::wire::Request<'static>,
528 <___T as ::fidl_next::Transport>::SendBuffer,
529 >,
530 ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
531 where
532 <___T as ::fidl_next::Transport>::SendBuffer:
533 ::fidl_next::encoder::InternalHandleEncoder,
534 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
535 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
536 {
537 self.request_with(crate::generic::RpmbRequestRequest { request })
538 }
539
540 pub fn request_with<___R>(
541 &self,
542 request: ___R,
543 ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
544 where
545 ___R: ::fidl_next::Encode<
546 crate::wire::RpmbRequestRequest<'static>,
547 <___T as ::fidl_next::Transport>::SendBuffer,
548 >,
549 {
550 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
551 2199356259956099574,
552 <super::Request as ::fidl_next::Method>::FLEXIBILITY,
553 request,
554 ))
555 }
556 }
557
558 #[repr(transparent)]
560 pub struct RpmbServer<___T: ::fidl_next::Transport> {
561 server: ::fidl_next::protocol::Server<___T>,
562 }
563
564 impl<___T> RpmbServer<___T> where ___T: ::fidl_next::Transport {}
565 }
566}
567
568#[diagnostic::on_unimplemented(
569 note = "If {Self} implements the non-local RpmbClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
570)]
571
572pub trait RpmbLocalClientHandler<
576 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
577 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
578>
579{
580}
581
582impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for Rpmb
583where
584 ___H: RpmbLocalClientHandler<___T>,
585 ___T: ::fidl_next::Transport,
586{
587 async fn on_event(
588 handler: &mut ___H,
589 mut message: ::fidl_next::Message<___T>,
590 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
591 match *message.header().ordinal {
592 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
593 }
594 }
595}
596
597#[diagnostic::on_unimplemented(
598 note = "If {Self} implements the non-local RpmbServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
599)]
600
601pub trait RpmbLocalServerHandler<
605 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
606 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
607>
608{
609 fn get_device_info(
610 &mut self,
611
612 responder: ::fidl_next::Responder<rpmb::GetDeviceInfo, ___T>,
613 ) -> impl ::core::future::Future<Output = ()>;
614
615 fn request(
616 &mut self,
617
618 request: ::fidl_next::Request<rpmb::Request, ___T>,
619
620 responder: ::fidl_next::Responder<rpmb::Request, ___T>,
621 ) -> impl ::core::future::Future<Output = ()>;
622}
623
624impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for Rpmb
625where
626 ___H: RpmbLocalServerHandler<___T>,
627 ___T: ::fidl_next::Transport,
628 for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
629 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
630 Constraint = (),
631 >,
632{
633 async fn on_one_way(
634 handler: &mut ___H,
635 mut message: ::fidl_next::Message<___T>,
636 ) -> ::core::result::Result<
637 (),
638 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
639 > {
640 match *message.header().ordinal {
641 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
642 }
643 }
644
645 async fn on_two_way(
646 handler: &mut ___H,
647 mut message: ::fidl_next::Message<___T>,
648 responder: ::fidl_next::protocol::Responder<___T>,
649 ) -> ::core::result::Result<
650 (),
651 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
652 > {
653 match *message.header().ordinal {
654 6399474108337708832 => {
655 let responder = ::fidl_next::Responder::from_untyped(responder);
656
657 handler.get_device_info(responder).await;
658 Ok(())
659 }
660
661 2199356259956099574 => {
662 let responder = ::fidl_next::Responder::from_untyped(responder);
663
664 match ::fidl_next::AsDecoderExt::into_decoded(message) {
665 Ok(decoded) => {
666 handler
667 .request(::fidl_next::Request::from_decoded(decoded), responder)
668 .await;
669 Ok(())
670 }
671 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
672 ordinal: 2199356259956099574,
673 error,
674 }),
675 }
676 }
677
678 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
679 }
680 }
681}
682
683pub trait RpmbClientHandler<
687 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
688 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
689>
690{
691}
692
693impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for Rpmb
694where
695 ___H: RpmbClientHandler<___T> + ::core::marker::Send,
696 ___T: ::fidl_next::Transport,
697{
698 async fn on_event(
699 handler: &mut ___H,
700 mut message: ::fidl_next::Message<___T>,
701 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
702 match *message.header().ordinal {
703 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
704 }
705 }
706}
707
708pub trait RpmbServerHandler<
712 #[cfg(target_os = "fuchsia")] ___T: ::fidl_next::Transport = ::fidl_next::fuchsia::zx::Channel,
713 #[cfg(not(target_os = "fuchsia"))] ___T: ::fidl_next::Transport,
714>
715{
716 fn get_device_info(
717 &mut self,
718
719 responder: ::fidl_next::Responder<rpmb::GetDeviceInfo, ___T>,
720 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
721
722 fn request(
723 &mut self,
724
725 request: ::fidl_next::Request<rpmb::Request, ___T>,
726
727 responder: ::fidl_next::Responder<rpmb::Request, ___T>,
728 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
729}
730
731impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for Rpmb
732where
733 ___H: RpmbServerHandler<___T> + ::core::marker::Send,
734 ___T: ::fidl_next::Transport,
735 for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
736 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
737 Constraint = (),
738 >,
739{
740 async fn on_one_way(
741 handler: &mut ___H,
742 mut message: ::fidl_next::Message<___T>,
743 ) -> ::core::result::Result<
744 (),
745 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
746 > {
747 match *message.header().ordinal {
748 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
749 }
750 }
751
752 async fn on_two_way(
753 handler: &mut ___H,
754 mut message: ::fidl_next::Message<___T>,
755 responder: ::fidl_next::protocol::Responder<___T>,
756 ) -> ::core::result::Result<
757 (),
758 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
759 > {
760 match *message.header().ordinal {
761 6399474108337708832 => {
762 let responder = ::fidl_next::Responder::from_untyped(responder);
763
764 handler.get_device_info(responder).await;
765 Ok(())
766 }
767
768 2199356259956099574 => {
769 let responder = ::fidl_next::Responder::from_untyped(responder);
770
771 match ::fidl_next::AsDecoderExt::into_decoded(message) {
772 Ok(decoded) => {
773 handler
774 .request(::fidl_next::Request::from_decoded(decoded), responder)
775 .await;
776 Ok(())
777 }
778 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
779 ordinal: 2199356259956099574,
780 error,
781 }),
782 }
783 }
784
785 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
786 }
787 }
788}
789
790impl<___T> RpmbClientHandler<___T> for ::fidl_next::IgnoreEvents where ___T: ::fidl_next::Transport {}
791
792impl<___H, ___T> RpmbLocalClientHandler<___T> for ::fidl_next::Local<___H>
793where
794 ___H: RpmbClientHandler<___T>,
795 ___T: ::fidl_next::Transport,
796{
797}
798
799impl<___H, ___T> RpmbLocalServerHandler<___T> for ::fidl_next::Local<___H>
800where
801 ___H: RpmbServerHandler<___T>,
802 ___T: ::fidl_next::Transport,
803{
804 async fn get_device_info(
805 &mut self,
806
807 responder: ::fidl_next::Responder<rpmb::GetDeviceInfo, ___T>,
808 ) {
809 ___H::get_device_info(&mut self.0, responder).await
810 }
811
812 async fn request(
813 &mut self,
814
815 request: ::fidl_next::Request<rpmb::Request, ___T>,
816
817 responder: ::fidl_next::Responder<rpmb::Request, ___T>,
818 ) {
819 ___H::request(&mut self.0, request, responder).await
820 }
821}
822
823#[doc = " A driver transport variant of the `Rpmb` protocol.\n"]
825#[derive(PartialEq, Debug)]
826pub struct DriverRpmb;
827
828impl ::fidl_next::Discoverable for DriverRpmb {
829 const PROTOCOL_NAME: &'static str = "fuchsia.hardware.rpmb.DriverRpmb";
830}
831
832#[cfg(feature = "driver")]
833impl ::fidl_next::HasTransport for DriverRpmb {
834 type Transport = ::fdf_fidl::DriverChannel;
835}
836
837pub mod driver_rpmb {
838 pub mod prelude {
839 pub use crate::{
840 DriverRpmb, DriverRpmbClientHandler, DriverRpmbLocalClientHandler,
841 DriverRpmbLocalServerHandler, DriverRpmbServerHandler, driver_rpmb,
842 };
843
844 pub use crate::natural::RpmbGetDeviceInfoResponse;
845
846 pub use crate::natural::RpmbRequestRequest;
847
848 pub use crate::natural::RpmbRequestResponse;
849 }
850
851 pub struct GetDeviceInfo;
852
853 impl ::fidl_next::Method for GetDeviceInfo {
854 const ORDINAL: u64 = 6399474108337708832;
855 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
856 ::fidl_next::protocol::Flexibility::Strict;
857
858 type Protocol = crate::DriverRpmb;
859
860 type Request = ::fidl_next::wire::EmptyMessageBody;
861 }
862
863 impl ::fidl_next::TwoWayMethod for GetDeviceInfo {
864 type Response = ::fidl_next::wire::Strict<crate::wire::RpmbGetDeviceInfoResponse<'static>>;
865 }
866
867 impl<___R> ::fidl_next::Respond<___R> for GetDeviceInfo {
868 type Output = ::fidl_next::Strict<crate::generic::RpmbGetDeviceInfoResponse<___R>>;
869
870 fn respond(response: ___R) -> Self::Output {
871 ::fidl_next::Strict(crate::generic::RpmbGetDeviceInfoResponse { info: response })
872 }
873 }
874
875 pub struct Request;
876
877 impl ::fidl_next::Method for Request {
878 const ORDINAL: u64 = 2199356259956099574;
879 const FLEXIBILITY: ::fidl_next::protocol::Flexibility =
880 ::fidl_next::protocol::Flexibility::Strict;
881
882 type Protocol = crate::DriverRpmb;
883
884 type Request = crate::wire::RpmbRequestRequest<'static>;
885 }
886
887 impl ::fidl_next::TwoWayMethod for Request {
888 type Response = ::fidl_next::wire::Result<
889 'static,
890 crate::wire::RpmbRequestResponse,
891 ::fidl_next::wire::fuchsia::Status,
892 >;
893 }
894
895 impl<___R> ::fidl_next::Respond<___R> for Request {
896 type Output = ::core::result::Result<___R, ::fidl_next::never::Never>;
897
898 fn respond(response: ___R) -> Self::Output {
899 ::core::result::Result::Ok(response)
900 }
901 }
902
903 impl<___R> ::fidl_next::RespondErr<___R> for Request {
904 type Output = ::core::result::Result<::fidl_next::never::Never, ___R>;
905
906 fn respond_err(response: ___R) -> Self::Output {
907 ::core::result::Result::Err(response)
908 }
909 }
910
911 mod ___detail {
912 unsafe impl<___T> ::fidl_next::HasConnectionHandles<___T> for crate::DriverRpmb
913 where
914 ___T: ::fidl_next::Transport,
915 {
916 type Client = DriverRpmbClient<___T>;
917 type Server = DriverRpmbServer<___T>;
918 }
919
920 #[repr(transparent)]
922 pub struct DriverRpmbClient<___T: ::fidl_next::Transport> {
923 #[allow(dead_code)]
924 client: ::fidl_next::protocol::Client<___T>,
925 }
926
927 impl<___T> DriverRpmbClient<___T>
928 where
929 ___T: ::fidl_next::Transport,
930 {
931 pub fn get_device_info(
932 &self,
933 ) -> ::fidl_next::TwoWayFuture<'_, super::GetDeviceInfo, ___T> {
934 ::fidl_next::TwoWayFuture::from_untyped(
935 self.client.send_two_way::<::fidl_next::wire::EmptyMessageBody>(
936 6399474108337708832,
937 <super::GetDeviceInfo as ::fidl_next::Method>::FLEXIBILITY,
938 (),
939 ),
940 )
941 }
942
943 pub fn request(
944 &self,
945
946 request: impl ::fidl_next::Encode<
947 crate::wire::Request<'static>,
948 <___T as ::fidl_next::Transport>::SendBuffer,
949 >,
950 ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
951 where
952 <___T as ::fidl_next::Transport>::SendBuffer:
953 ::fidl_next::encoder::InternalHandleEncoder,
954 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::Encoder,
955 <___T as ::fidl_next::Transport>::SendBuffer: ::fidl_next::fuchsia::HandleEncoder,
956 {
957 self.request_with(crate::generic::RpmbRequestRequest { request })
958 }
959
960 pub fn request_with<___R>(
961 &self,
962 request: ___R,
963 ) -> ::fidl_next::TwoWayFuture<'_, super::Request, ___T>
964 where
965 ___R: ::fidl_next::Encode<
966 crate::wire::RpmbRequestRequest<'static>,
967 <___T as ::fidl_next::Transport>::SendBuffer,
968 >,
969 {
970 ::fidl_next::TwoWayFuture::from_untyped(self.client.send_two_way(
971 2199356259956099574,
972 <super::Request as ::fidl_next::Method>::FLEXIBILITY,
973 request,
974 ))
975 }
976 }
977
978 #[repr(transparent)]
980 pub struct DriverRpmbServer<___T: ::fidl_next::Transport> {
981 server: ::fidl_next::protocol::Server<___T>,
982 }
983
984 impl<___T> DriverRpmbServer<___T> where ___T: ::fidl_next::Transport {}
985 }
986}
987
988#[diagnostic::on_unimplemented(
989 note = "If {Self} implements the non-local DriverRpmbClientHandler trait, use `spawn_as_local` or the `Local` adapter type"
990)]
991
992pub trait DriverRpmbLocalClientHandler<
996 #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
997 #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
998>
999{
1000}
1001
1002impl<___H, ___T> ::fidl_next::DispatchLocalClientMessage<___H, ___T> for DriverRpmb
1003where
1004 ___H: DriverRpmbLocalClientHandler<___T>,
1005 ___T: ::fidl_next::Transport,
1006{
1007 async fn on_event(
1008 handler: &mut ___H,
1009 mut message: ::fidl_next::Message<___T>,
1010 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
1011 match *message.header().ordinal {
1012 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1013 }
1014 }
1015}
1016
1017#[diagnostic::on_unimplemented(
1018 note = "If {Self} implements the non-local DriverRpmbServerHandler trait, use `spawn_as_local` or the `Local` adapter type"
1019)]
1020
1021pub trait DriverRpmbLocalServerHandler<
1025 #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
1026 #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
1027>
1028{
1029 fn get_device_info(
1030 &mut self,
1031
1032 responder: ::fidl_next::Responder<driver_rpmb::GetDeviceInfo, ___T>,
1033 ) -> impl ::core::future::Future<Output = ()>;
1034
1035 fn request(
1036 &mut self,
1037
1038 request: ::fidl_next::Request<driver_rpmb::Request, ___T>,
1039
1040 responder: ::fidl_next::Responder<driver_rpmb::Request, ___T>,
1041 ) -> impl ::core::future::Future<Output = ()>;
1042}
1043
1044impl<___H, ___T> ::fidl_next::DispatchLocalServerMessage<___H, ___T> for DriverRpmb
1045where
1046 ___H: DriverRpmbLocalServerHandler<___T>,
1047 ___T: ::fidl_next::Transport,
1048 for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
1049 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1050 Constraint = (),
1051 >,
1052{
1053 async fn on_one_way(
1054 handler: &mut ___H,
1055 mut message: ::fidl_next::Message<___T>,
1056 ) -> ::core::result::Result<
1057 (),
1058 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1059 > {
1060 match *message.header().ordinal {
1061 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1062 }
1063 }
1064
1065 async fn on_two_way(
1066 handler: &mut ___H,
1067 mut message: ::fidl_next::Message<___T>,
1068 responder: ::fidl_next::protocol::Responder<___T>,
1069 ) -> ::core::result::Result<
1070 (),
1071 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1072 > {
1073 match *message.header().ordinal {
1074 6399474108337708832 => {
1075 let responder = ::fidl_next::Responder::from_untyped(responder);
1076
1077 handler.get_device_info(responder).await;
1078 Ok(())
1079 }
1080
1081 2199356259956099574 => {
1082 let responder = ::fidl_next::Responder::from_untyped(responder);
1083
1084 match ::fidl_next::AsDecoderExt::into_decoded(message) {
1085 Ok(decoded) => {
1086 handler
1087 .request(::fidl_next::Request::from_decoded(decoded), responder)
1088 .await;
1089 Ok(())
1090 }
1091 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1092 ordinal: 2199356259956099574,
1093 error,
1094 }),
1095 }
1096 }
1097
1098 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1099 }
1100 }
1101}
1102
1103pub trait DriverRpmbClientHandler<
1107 #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
1108 #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
1109>
1110{
1111}
1112
1113impl<___H, ___T> ::fidl_next::DispatchClientMessage<___H, ___T> for DriverRpmb
1114where
1115 ___H: DriverRpmbClientHandler<___T> + ::core::marker::Send,
1116 ___T: ::fidl_next::Transport,
1117{
1118 async fn on_event(
1119 handler: &mut ___H,
1120 mut message: ::fidl_next::Message<___T>,
1121 ) -> ::core::result::Result<(), ::fidl_next::ProtocolError<___T::Error>> {
1122 match *message.header().ordinal {
1123 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1124 }
1125 }
1126}
1127
1128pub trait DriverRpmbServerHandler<
1132 #[cfg(feature = "driver")] ___T: ::fidl_next::Transport = ::fdf_fidl::DriverChannel,
1133 #[cfg(not(feature = "driver"))] ___T: ::fidl_next::Transport,
1134>
1135{
1136 fn get_device_info(
1137 &mut self,
1138
1139 responder: ::fidl_next::Responder<driver_rpmb::GetDeviceInfo, ___T>,
1140 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1141
1142 fn request(
1143 &mut self,
1144
1145 request: ::fidl_next::Request<driver_rpmb::Request, ___T>,
1146
1147 responder: ::fidl_next::Responder<driver_rpmb::Request, ___T>,
1148 ) -> impl ::core::future::Future<Output = ()> + ::core::marker::Send;
1149}
1150
1151impl<___H, ___T> ::fidl_next::DispatchServerMessage<___H, ___T> for DriverRpmb
1152where
1153 ___H: DriverRpmbServerHandler<___T> + ::core::marker::Send,
1154 ___T: ::fidl_next::Transport,
1155 for<'de> crate::wire::RpmbRequestRequest<'de>: ::fidl_next::Decode<
1156 <<___T as ::fidl_next::Transport>::RecvBuffer as ::fidl_next::AsDecoder<'de>>::Decoder,
1157 Constraint = (),
1158 >,
1159{
1160 async fn on_one_way(
1161 handler: &mut ___H,
1162 mut message: ::fidl_next::Message<___T>,
1163 ) -> ::core::result::Result<
1164 (),
1165 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1166 > {
1167 match *message.header().ordinal {
1168 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1169 }
1170 }
1171
1172 async fn on_two_way(
1173 handler: &mut ___H,
1174 mut message: ::fidl_next::Message<___T>,
1175 responder: ::fidl_next::protocol::Responder<___T>,
1176 ) -> ::core::result::Result<
1177 (),
1178 ::fidl_next::ProtocolError<<___T as ::fidl_next::Transport>::Error>,
1179 > {
1180 match *message.header().ordinal {
1181 6399474108337708832 => {
1182 let responder = ::fidl_next::Responder::from_untyped(responder);
1183
1184 handler.get_device_info(responder).await;
1185 Ok(())
1186 }
1187
1188 2199356259956099574 => {
1189 let responder = ::fidl_next::Responder::from_untyped(responder);
1190
1191 match ::fidl_next::AsDecoderExt::into_decoded(message) {
1192 Ok(decoded) => {
1193 handler
1194 .request(::fidl_next::Request::from_decoded(decoded), responder)
1195 .await;
1196 Ok(())
1197 }
1198 Err(error) => Err(::fidl_next::ProtocolError::InvalidMessage {
1199 ordinal: 2199356259956099574,
1200 error,
1201 }),
1202 }
1203 }
1204
1205 ordinal => Err(::fidl_next::ProtocolError::UnknownOrdinal(ordinal)),
1206 }
1207 }
1208}
1209
1210impl<___T> DriverRpmbClientHandler<___T> for ::fidl_next::IgnoreEvents where
1211 ___T: ::fidl_next::Transport
1212{
1213}
1214
1215impl<___H, ___T> DriverRpmbLocalClientHandler<___T> for ::fidl_next::Local<___H>
1216where
1217 ___H: DriverRpmbClientHandler<___T>,
1218 ___T: ::fidl_next::Transport,
1219{
1220}
1221
1222impl<___H, ___T> DriverRpmbLocalServerHandler<___T> for ::fidl_next::Local<___H>
1223where
1224 ___H: DriverRpmbServerHandler<___T>,
1225 ___T: ::fidl_next::Transport,
1226{
1227 async fn get_device_info(
1228 &mut self,
1229
1230 responder: ::fidl_next::Responder<driver_rpmb::GetDeviceInfo, ___T>,
1231 ) {
1232 ___H::get_device_info(&mut self.0, responder).await
1233 }
1234
1235 async fn request(
1236 &mut self,
1237
1238 request: ::fidl_next::Request<driver_rpmb::Request, ___T>,
1239
1240 responder: ::fidl_next::Responder<driver_rpmb::Request, ___T>,
1241 ) {
1242 ___H::request(&mut self.0, request, responder).await
1243 }
1244}
1245
1246#[derive(Debug)]
1248pub struct Service;
1249
1250impl ::fidl_next::DiscoverableService for Service {
1251 const SERVICE_NAME: &'static str = "fuchsia.hardware.rpmb.Service";
1252 const MEMBER_NAMES: &'static [&'static str] = &["device"];
1253}
1254
1255impl ::fidl_next::HasServiceRequest<::fidl_next::fuchsia::zx::Channel> for Service {}
1256
1257impl<___C> ::fidl_next::Service<___C> for Service
1258where
1259 ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
1260{
1261 type Connector = ServiceConnector<___C>;
1262}
1263
1264#[repr(transparent)]
1266pub struct ServiceConnector<___C> {
1267 #[allow(dead_code)]
1268 connector: ___C,
1269}
1270
1271impl<___C> ServiceConnector<___C>
1272where
1273 ___C: ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>,
1274{
1275 pub fn device(
1277 &self,
1278 server_end: ::fidl_next::ServerEnd<crate::Rpmb, ::fidl_next::fuchsia::zx::Channel>,
1279 ) -> ::core::result::Result<
1280 (),
1281 <___C as ::fidl_next::protocol::ServiceConnector<::fidl_next::fuchsia::zx::Channel>>::Error,
1282 > {
1283 ::fidl_next::protocol::ServiceConnector::<
1284 ::fidl_next::fuchsia::zx::Channel
1285 >::connect_to_member(
1286 &self.connector,
1287 "device",
1288 server_end.into_untyped(),
1289 )
1290 }
1291}
1292
1293pub trait ServiceHandler {
1295 fn device(
1297 &self,
1298 server_end: ::fidl_next::ServerEnd<crate::Rpmb, ::fidl_next::fuchsia::zx::Channel>,
1299 );
1300}
1301
1302impl<___H, ___T> ::fidl_next::DispatchServiceHandler<___H, ___T> for Service
1303where
1304 ___H: ServiceHandler,
1305 ::fidl_next::fuchsia::zx::Channel: ::fidl_next::InstanceFromServiceTransport<___T>,
1306{
1307 fn on_connection(handler: &___H, member: &str, server_end: ___T) {
1308 use ::fidl_next::InstanceFromServiceTransport;
1309 match member {
1310 "device" => handler.device(::fidl_next::ServerEnd::from_untyped(
1311 ::fidl_next::fuchsia::zx::Channel::from_service_transport(server_end),
1312 )),
1313
1314 _ => unreachable!(),
1315 }
1316 }
1317}
1318
1319pub use fidl_next_common_fuchsia_hardware_rpmb::*;