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