1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_ui_policy_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct DeviceListenerRegistryRegisterListenerRequest {
16 pub listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
20 for DeviceListenerRegistryRegisterListenerRequest
21{
22}
23
24#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
25pub struct DeviceListenerRegistryRegisterMediaButtonsListenerRequest {
26 pub listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
27}
28
29impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
30 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
31{
32}
33
34#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
35pub struct DeviceListenerRegistryRegisterTouchButtonsListenerRequest {
36 pub listener: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
37}
38
39impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
40 for DeviceListenerRegistryRegisterTouchButtonsListenerRequest
41{
42}
43
44#[derive(Debug, PartialEq)]
45pub struct MediaButtonsListenerOnEventRequest {
46 pub event: fidl_fuchsia_ui_input::MediaButtonsEvent,
47}
48
49impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
50 for MediaButtonsListenerOnEventRequest
51{
52}
53
54#[derive(Debug, PartialEq)]
55pub struct MediaButtonsListenerOnMediaButtonsEventRequest {
56 pub event: fidl_fuchsia_ui_input::MediaButtonsEvent,
57}
58
59impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
60 for MediaButtonsListenerOnMediaButtonsEventRequest
61{
62}
63
64#[derive(Debug, PartialEq)]
65pub struct TouchButtonsListenerOnEventRequest {
66 pub event: fidl_fuchsia_ui_input::TouchButtonsEvent,
67}
68
69impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
70 for TouchButtonsListenerOnEventRequest
71{
72}
73
74#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
75pub struct DeviceListenerRegistryMarker;
76
77impl fidl::endpoints::ProtocolMarker for DeviceListenerRegistryMarker {
78 type Proxy = DeviceListenerRegistryProxy;
79 type RequestStream = DeviceListenerRegistryRequestStream;
80 #[cfg(target_os = "fuchsia")]
81 type SynchronousProxy = DeviceListenerRegistrySynchronousProxy;
82
83 const DEBUG_NAME: &'static str = "fuchsia.ui.policy.DeviceListenerRegistry";
84}
85impl fidl::endpoints::DiscoverableProtocolMarker for DeviceListenerRegistryMarker {}
86
87pub trait DeviceListenerRegistryProxyInterface: Send + Sync {
88 fn r#register_media_buttons_listener(
89 &self,
90 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
91 ) -> Result<(), fidl::Error>;
92 type RegisterListenerResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
93 fn r#register_listener(
94 &self,
95 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
96 ) -> Self::RegisterListenerResponseFut;
97 type RegisterTouchButtonsListenerResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
98 + Send;
99 fn r#register_touch_buttons_listener(
100 &self,
101 listener: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
102 ) -> Self::RegisterTouchButtonsListenerResponseFut;
103}
104#[derive(Debug)]
105#[cfg(target_os = "fuchsia")]
106pub struct DeviceListenerRegistrySynchronousProxy {
107 client: fidl::client::sync::Client,
108}
109
110#[cfg(target_os = "fuchsia")]
111impl fidl::endpoints::SynchronousProxy for DeviceListenerRegistrySynchronousProxy {
112 type Proxy = DeviceListenerRegistryProxy;
113 type Protocol = DeviceListenerRegistryMarker;
114
115 fn from_channel(inner: fidl::Channel) -> Self {
116 Self::new(inner)
117 }
118
119 fn into_channel(self) -> fidl::Channel {
120 self.client.into_channel()
121 }
122
123 fn as_channel(&self) -> &fidl::Channel {
124 self.client.as_channel()
125 }
126}
127
128#[cfg(target_os = "fuchsia")]
129impl DeviceListenerRegistrySynchronousProxy {
130 pub fn new(channel: fidl::Channel) -> Self {
131 Self { client: fidl::client::sync::Client::new(channel) }
132 }
133
134 pub fn into_channel(self) -> fidl::Channel {
135 self.client.into_channel()
136 }
137
138 pub fn wait_for_event(
141 &self,
142 deadline: zx::MonotonicInstant,
143 ) -> Result<DeviceListenerRegistryEvent, fidl::Error> {
144 DeviceListenerRegistryEvent::decode(
145 self.client.wait_for_event::<DeviceListenerRegistryMarker>(deadline)?,
146 )
147 }
148
149 pub fn r#register_media_buttons_listener(
152 &self,
153 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
154 ) -> Result<(), fidl::Error> {
155 self.client.send::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
156 (listener,),
157 0x3826318765c72e70,
158 fidl::encoding::DynamicFlags::empty(),
159 )
160 }
161
162 pub fn r#register_listener(
167 &self,
168 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
169 ___deadline: zx::MonotonicInstant,
170 ) -> Result<(), fidl::Error> {
171 let _response = self.client.send_query::<
172 DeviceListenerRegistryRegisterListenerRequest,
173 fidl::encoding::EmptyPayload,
174 DeviceListenerRegistryMarker,
175 >(
176 (listener,),
177 0x2f9e7eea89485a7b,
178 fidl::encoding::DynamicFlags::empty(),
179 ___deadline,
180 )?;
181 Ok(_response)
182 }
183
184 pub fn r#register_touch_buttons_listener(
188 &self,
189 mut listener: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
190 ___deadline: zx::MonotonicInstant,
191 ) -> Result<(), fidl::Error> {
192 let _response = self.client.send_query::<
193 DeviceListenerRegistryRegisterTouchButtonsListenerRequest,
194 fidl::encoding::EmptyPayload,
195 DeviceListenerRegistryMarker,
196 >(
197 (listener,),
198 0x1625430c46f9b84b,
199 fidl::encoding::DynamicFlags::empty(),
200 ___deadline,
201 )?;
202 Ok(_response)
203 }
204}
205
206#[cfg(target_os = "fuchsia")]
207impl From<DeviceListenerRegistrySynchronousProxy> for zx::NullableHandle {
208 fn from(value: DeviceListenerRegistrySynchronousProxy) -> Self {
209 value.into_channel().into()
210 }
211}
212
213#[cfg(target_os = "fuchsia")]
214impl From<fidl::Channel> for DeviceListenerRegistrySynchronousProxy {
215 fn from(value: fidl::Channel) -> Self {
216 Self::new(value)
217 }
218}
219
220#[cfg(target_os = "fuchsia")]
221impl fidl::endpoints::FromClient for DeviceListenerRegistrySynchronousProxy {
222 type Protocol = DeviceListenerRegistryMarker;
223
224 fn from_client(value: fidl::endpoints::ClientEnd<DeviceListenerRegistryMarker>) -> Self {
225 Self::new(value.into_channel())
226 }
227}
228
229#[derive(Debug, Clone)]
230pub struct DeviceListenerRegistryProxy {
231 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
232}
233
234impl fidl::endpoints::Proxy for DeviceListenerRegistryProxy {
235 type Protocol = DeviceListenerRegistryMarker;
236
237 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
238 Self::new(inner)
239 }
240
241 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
242 self.client.into_channel().map_err(|client| Self { client })
243 }
244
245 fn as_channel(&self) -> &::fidl::AsyncChannel {
246 self.client.as_channel()
247 }
248}
249
250impl DeviceListenerRegistryProxy {
251 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
253 let protocol_name =
254 <DeviceListenerRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
255 Self { client: fidl::client::Client::new(channel, protocol_name) }
256 }
257
258 pub fn take_event_stream(&self) -> DeviceListenerRegistryEventStream {
264 DeviceListenerRegistryEventStream { event_receiver: self.client.take_event_receiver() }
265 }
266
267 pub fn r#register_media_buttons_listener(
270 &self,
271 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
272 ) -> Result<(), fidl::Error> {
273 DeviceListenerRegistryProxyInterface::r#register_media_buttons_listener(self, listener)
274 }
275
276 pub fn r#register_listener(
281 &self,
282 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
283 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
284 DeviceListenerRegistryProxyInterface::r#register_listener(self, listener)
285 }
286
287 pub fn r#register_touch_buttons_listener(
291 &self,
292 mut listener: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
293 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
294 DeviceListenerRegistryProxyInterface::r#register_touch_buttons_listener(self, listener)
295 }
296}
297
298impl DeviceListenerRegistryProxyInterface for DeviceListenerRegistryProxy {
299 fn r#register_media_buttons_listener(
300 &self,
301 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
302 ) -> Result<(), fidl::Error> {
303 self.client.send::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
304 (listener,),
305 0x3826318765c72e70,
306 fidl::encoding::DynamicFlags::empty(),
307 )
308 }
309
310 type RegisterListenerResponseFut =
311 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
312 fn r#register_listener(
313 &self,
314 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
315 ) -> Self::RegisterListenerResponseFut {
316 fn _decode(
317 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
318 ) -> Result<(), fidl::Error> {
319 let _response = fidl::client::decode_transaction_body::<
320 fidl::encoding::EmptyPayload,
321 fidl::encoding::DefaultFuchsiaResourceDialect,
322 0x2f9e7eea89485a7b,
323 >(_buf?)?;
324 Ok(_response)
325 }
326 self.client.send_query_and_decode::<DeviceListenerRegistryRegisterListenerRequest, ()>(
327 (listener,),
328 0x2f9e7eea89485a7b,
329 fidl::encoding::DynamicFlags::empty(),
330 _decode,
331 )
332 }
333
334 type RegisterTouchButtonsListenerResponseFut =
335 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
336 fn r#register_touch_buttons_listener(
337 &self,
338 mut listener: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
339 ) -> Self::RegisterTouchButtonsListenerResponseFut {
340 fn _decode(
341 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
342 ) -> Result<(), fidl::Error> {
343 let _response = fidl::client::decode_transaction_body::<
344 fidl::encoding::EmptyPayload,
345 fidl::encoding::DefaultFuchsiaResourceDialect,
346 0x1625430c46f9b84b,
347 >(_buf?)?;
348 Ok(_response)
349 }
350 self.client
351 .send_query_and_decode::<DeviceListenerRegistryRegisterTouchButtonsListenerRequest, ()>(
352 (listener,),
353 0x1625430c46f9b84b,
354 fidl::encoding::DynamicFlags::empty(),
355 _decode,
356 )
357 }
358}
359
360pub struct DeviceListenerRegistryEventStream {
361 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
362}
363
364impl std::marker::Unpin for DeviceListenerRegistryEventStream {}
365
366impl futures::stream::FusedStream for DeviceListenerRegistryEventStream {
367 fn is_terminated(&self) -> bool {
368 self.event_receiver.is_terminated()
369 }
370}
371
372impl futures::Stream for DeviceListenerRegistryEventStream {
373 type Item = Result<DeviceListenerRegistryEvent, fidl::Error>;
374
375 fn poll_next(
376 mut self: std::pin::Pin<&mut Self>,
377 cx: &mut std::task::Context<'_>,
378 ) -> std::task::Poll<Option<Self::Item>> {
379 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
380 &mut self.event_receiver,
381 cx
382 )?) {
383 Some(buf) => std::task::Poll::Ready(Some(DeviceListenerRegistryEvent::decode(buf))),
384 None => std::task::Poll::Ready(None),
385 }
386 }
387}
388
389#[derive(Debug)]
390pub enum DeviceListenerRegistryEvent {}
391
392impl DeviceListenerRegistryEvent {
393 fn decode(
395 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
396 ) -> Result<DeviceListenerRegistryEvent, fidl::Error> {
397 let (bytes, _handles) = buf.split_mut();
398 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
399 debug_assert_eq!(tx_header.tx_id, 0);
400 match tx_header.ordinal {
401 _ => Err(fidl::Error::UnknownOrdinal {
402 ordinal: tx_header.ordinal,
403 protocol_name:
404 <DeviceListenerRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
405 }),
406 }
407 }
408}
409
410pub struct DeviceListenerRegistryRequestStream {
412 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
413 is_terminated: bool,
414}
415
416impl std::marker::Unpin for DeviceListenerRegistryRequestStream {}
417
418impl futures::stream::FusedStream for DeviceListenerRegistryRequestStream {
419 fn is_terminated(&self) -> bool {
420 self.is_terminated
421 }
422}
423
424impl fidl::endpoints::RequestStream for DeviceListenerRegistryRequestStream {
425 type Protocol = DeviceListenerRegistryMarker;
426 type ControlHandle = DeviceListenerRegistryControlHandle;
427
428 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
429 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
430 }
431
432 fn control_handle(&self) -> Self::ControlHandle {
433 DeviceListenerRegistryControlHandle { inner: self.inner.clone() }
434 }
435
436 fn into_inner(
437 self,
438 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
439 {
440 (self.inner, self.is_terminated)
441 }
442
443 fn from_inner(
444 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
445 is_terminated: bool,
446 ) -> Self {
447 Self { inner, is_terminated }
448 }
449}
450
451impl futures::Stream for DeviceListenerRegistryRequestStream {
452 type Item = Result<DeviceListenerRegistryRequest, fidl::Error>;
453
454 fn poll_next(
455 mut self: std::pin::Pin<&mut Self>,
456 cx: &mut std::task::Context<'_>,
457 ) -> std::task::Poll<Option<Self::Item>> {
458 let this = &mut *self;
459 if this.inner.check_shutdown(cx) {
460 this.is_terminated = true;
461 return std::task::Poll::Ready(None);
462 }
463 if this.is_terminated {
464 panic!("polled DeviceListenerRegistryRequestStream after completion");
465 }
466 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
467 |bytes, handles| {
468 match this.inner.channel().read_etc(cx, bytes, handles) {
469 std::task::Poll::Ready(Ok(())) => {}
470 std::task::Poll::Pending => return std::task::Poll::Pending,
471 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
472 this.is_terminated = true;
473 return std::task::Poll::Ready(None);
474 }
475 std::task::Poll::Ready(Err(e)) => {
476 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
477 e.into(),
478 ))));
479 }
480 }
481
482 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
484
485 std::task::Poll::Ready(Some(match header.ordinal {
486 0x3826318765c72e70 => {
487 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
488 let mut req = fidl::new_empty!(DeviceListenerRegistryRegisterMediaButtonsListenerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
489 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(&header, _body_bytes, handles, &mut req)?;
490 let control_handle = DeviceListenerRegistryControlHandle {
491 inner: this.inner.clone(),
492 };
493 Ok(DeviceListenerRegistryRequest::RegisterMediaButtonsListener {listener: req.listener,
494
495 control_handle,
496 })
497 }
498 0x2f9e7eea89485a7b => {
499 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
500 let mut req = fidl::new_empty!(DeviceListenerRegistryRegisterListenerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
501 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DeviceListenerRegistryRegisterListenerRequest>(&header, _body_bytes, handles, &mut req)?;
502 let control_handle = DeviceListenerRegistryControlHandle {
503 inner: this.inner.clone(),
504 };
505 Ok(DeviceListenerRegistryRequest::RegisterListener {listener: req.listener,
506
507 responder: DeviceListenerRegistryRegisterListenerResponder {
508 control_handle: std::mem::ManuallyDrop::new(control_handle),
509 tx_id: header.tx_id,
510 },
511 })
512 }
513 0x1625430c46f9b84b => {
514 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
515 let mut req = fidl::new_empty!(DeviceListenerRegistryRegisterTouchButtonsListenerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
516 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DeviceListenerRegistryRegisterTouchButtonsListenerRequest>(&header, _body_bytes, handles, &mut req)?;
517 let control_handle = DeviceListenerRegistryControlHandle {
518 inner: this.inner.clone(),
519 };
520 Ok(DeviceListenerRegistryRequest::RegisterTouchButtonsListener {listener: req.listener,
521
522 responder: DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
523 control_handle: std::mem::ManuallyDrop::new(control_handle),
524 tx_id: header.tx_id,
525 },
526 })
527 }
528 _ => Err(fidl::Error::UnknownOrdinal {
529 ordinal: header.ordinal,
530 protocol_name: <DeviceListenerRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
531 }),
532 }))
533 },
534 )
535 }
536}
537
538#[derive(Debug)]
540pub enum DeviceListenerRegistryRequest {
541 RegisterMediaButtonsListener {
544 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
545 control_handle: DeviceListenerRegistryControlHandle,
546 },
547 RegisterListener {
552 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
553 responder: DeviceListenerRegistryRegisterListenerResponder,
554 },
555 RegisterTouchButtonsListener {
559 listener: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
560 responder: DeviceListenerRegistryRegisterTouchButtonsListenerResponder,
561 },
562}
563
564impl DeviceListenerRegistryRequest {
565 #[allow(irrefutable_let_patterns)]
566 pub fn into_register_media_buttons_listener(
567 self,
568 ) -> Option<(
569 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
570 DeviceListenerRegistryControlHandle,
571 )> {
572 if let DeviceListenerRegistryRequest::RegisterMediaButtonsListener {
573 listener,
574 control_handle,
575 } = self
576 {
577 Some((listener, control_handle))
578 } else {
579 None
580 }
581 }
582
583 #[allow(irrefutable_let_patterns)]
584 pub fn into_register_listener(
585 self,
586 ) -> Option<(
587 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
588 DeviceListenerRegistryRegisterListenerResponder,
589 )> {
590 if let DeviceListenerRegistryRequest::RegisterListener { listener, responder } = self {
591 Some((listener, responder))
592 } else {
593 None
594 }
595 }
596
597 #[allow(irrefutable_let_patterns)]
598 pub fn into_register_touch_buttons_listener(
599 self,
600 ) -> Option<(
601 fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
602 DeviceListenerRegistryRegisterTouchButtonsListenerResponder,
603 )> {
604 if let DeviceListenerRegistryRequest::RegisterTouchButtonsListener { listener, responder } =
605 self
606 {
607 Some((listener, responder))
608 } else {
609 None
610 }
611 }
612
613 pub fn method_name(&self) -> &'static str {
615 match *self {
616 DeviceListenerRegistryRequest::RegisterMediaButtonsListener { .. } => {
617 "register_media_buttons_listener"
618 }
619 DeviceListenerRegistryRequest::RegisterListener { .. } => "register_listener",
620 DeviceListenerRegistryRequest::RegisterTouchButtonsListener { .. } => {
621 "register_touch_buttons_listener"
622 }
623 }
624 }
625}
626
627#[derive(Debug, Clone)]
628pub struct DeviceListenerRegistryControlHandle {
629 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
630}
631
632impl DeviceListenerRegistryControlHandle {
633 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
634 self.inner.shutdown_with_epitaph(status.into())
635 }
636}
637
638impl fidl::endpoints::ControlHandle for DeviceListenerRegistryControlHandle {
639 fn shutdown(&self) {
640 self.inner.shutdown()
641 }
642
643 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
644 self.inner.shutdown_with_epitaph(status)
645 }
646
647 fn is_closed(&self) -> bool {
648 self.inner.channel().is_closed()
649 }
650 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
651 self.inner.channel().on_closed()
652 }
653
654 #[cfg(target_os = "fuchsia")]
655 fn signal_peer(
656 &self,
657 clear_mask: zx::Signals,
658 set_mask: zx::Signals,
659 ) -> Result<(), zx_status::Status> {
660 use fidl::Peered;
661 self.inner.channel().signal_peer(clear_mask, set_mask)
662 }
663}
664
665impl DeviceListenerRegistryControlHandle {}
666
667#[must_use = "FIDL methods require a response to be sent"]
668#[derive(Debug)]
669pub struct DeviceListenerRegistryRegisterListenerResponder {
670 control_handle: std::mem::ManuallyDrop<DeviceListenerRegistryControlHandle>,
671 tx_id: u32,
672}
673
674impl std::ops::Drop for DeviceListenerRegistryRegisterListenerResponder {
678 fn drop(&mut self) {
679 self.control_handle.shutdown();
680 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
682 }
683}
684
685impl fidl::endpoints::Responder for DeviceListenerRegistryRegisterListenerResponder {
686 type ControlHandle = DeviceListenerRegistryControlHandle;
687
688 fn control_handle(&self) -> &DeviceListenerRegistryControlHandle {
689 &self.control_handle
690 }
691
692 fn drop_without_shutdown(mut self) {
693 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
695 std::mem::forget(self);
697 }
698}
699
700impl DeviceListenerRegistryRegisterListenerResponder {
701 pub fn send(self) -> Result<(), fidl::Error> {
705 let _result = self.send_raw();
706 if _result.is_err() {
707 self.control_handle.shutdown();
708 }
709 self.drop_without_shutdown();
710 _result
711 }
712
713 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
715 let _result = self.send_raw();
716 self.drop_without_shutdown();
717 _result
718 }
719
720 fn send_raw(&self) -> Result<(), fidl::Error> {
721 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
722 (),
723 self.tx_id,
724 0x2f9e7eea89485a7b,
725 fidl::encoding::DynamicFlags::empty(),
726 )
727 }
728}
729
730#[must_use = "FIDL methods require a response to be sent"]
731#[derive(Debug)]
732pub struct DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
733 control_handle: std::mem::ManuallyDrop<DeviceListenerRegistryControlHandle>,
734 tx_id: u32,
735}
736
737impl std::ops::Drop for DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
741 fn drop(&mut self) {
742 self.control_handle.shutdown();
743 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
745 }
746}
747
748impl fidl::endpoints::Responder for DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
749 type ControlHandle = DeviceListenerRegistryControlHandle;
750
751 fn control_handle(&self) -> &DeviceListenerRegistryControlHandle {
752 &self.control_handle
753 }
754
755 fn drop_without_shutdown(mut self) {
756 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
758 std::mem::forget(self);
760 }
761}
762
763impl DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
764 pub fn send(self) -> Result<(), fidl::Error> {
768 let _result = self.send_raw();
769 if _result.is_err() {
770 self.control_handle.shutdown();
771 }
772 self.drop_without_shutdown();
773 _result
774 }
775
776 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
778 let _result = self.send_raw();
779 self.drop_without_shutdown();
780 _result
781 }
782
783 fn send_raw(&self) -> Result<(), fidl::Error> {
784 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
785 (),
786 self.tx_id,
787 0x1625430c46f9b84b,
788 fidl::encoding::DynamicFlags::empty(),
789 )
790 }
791}
792
793#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
794pub struct DisplayBacklightMarker;
795
796impl fidl::endpoints::ProtocolMarker for DisplayBacklightMarker {
797 type Proxy = DisplayBacklightProxy;
798 type RequestStream = DisplayBacklightRequestStream;
799 #[cfg(target_os = "fuchsia")]
800 type SynchronousProxy = DisplayBacklightSynchronousProxy;
801
802 const DEBUG_NAME: &'static str = "fuchsia.ui.policy.DisplayBacklight";
803}
804impl fidl::endpoints::DiscoverableProtocolMarker for DisplayBacklightMarker {}
805
806pub trait DisplayBacklightProxyInterface: Send + Sync {
807 type SetMinimumRgbResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
808 fn r#set_minimum_rgb(&self, minimum_rgb: u8) -> Self::SetMinimumRgbResponseFut;
809}
810#[derive(Debug)]
811#[cfg(target_os = "fuchsia")]
812pub struct DisplayBacklightSynchronousProxy {
813 client: fidl::client::sync::Client,
814}
815
816#[cfg(target_os = "fuchsia")]
817impl fidl::endpoints::SynchronousProxy for DisplayBacklightSynchronousProxy {
818 type Proxy = DisplayBacklightProxy;
819 type Protocol = DisplayBacklightMarker;
820
821 fn from_channel(inner: fidl::Channel) -> Self {
822 Self::new(inner)
823 }
824
825 fn into_channel(self) -> fidl::Channel {
826 self.client.into_channel()
827 }
828
829 fn as_channel(&self) -> &fidl::Channel {
830 self.client.as_channel()
831 }
832}
833
834#[cfg(target_os = "fuchsia")]
835impl DisplayBacklightSynchronousProxy {
836 pub fn new(channel: fidl::Channel) -> Self {
837 Self { client: fidl::client::sync::Client::new(channel) }
838 }
839
840 pub fn into_channel(self) -> fidl::Channel {
841 self.client.into_channel()
842 }
843
844 pub fn wait_for_event(
847 &self,
848 deadline: zx::MonotonicInstant,
849 ) -> Result<DisplayBacklightEvent, fidl::Error> {
850 DisplayBacklightEvent::decode(
851 self.client.wait_for_event::<DisplayBacklightMarker>(deadline)?,
852 )
853 }
854
855 pub fn r#set_minimum_rgb(
864 &self,
865 mut minimum_rgb: u8,
866 ___deadline: zx::MonotonicInstant,
867 ) -> Result<(), fidl::Error> {
868 let _response = self.client.send_query::<
869 DisplayBacklightSetMinimumRgbRequest,
870 fidl::encoding::EmptyPayload,
871 DisplayBacklightMarker,
872 >(
873 (minimum_rgb,),
874 0x25604347bb8a1ca3,
875 fidl::encoding::DynamicFlags::empty(),
876 ___deadline,
877 )?;
878 Ok(_response)
879 }
880}
881
882#[cfg(target_os = "fuchsia")]
883impl From<DisplayBacklightSynchronousProxy> for zx::NullableHandle {
884 fn from(value: DisplayBacklightSynchronousProxy) -> Self {
885 value.into_channel().into()
886 }
887}
888
889#[cfg(target_os = "fuchsia")]
890impl From<fidl::Channel> for DisplayBacklightSynchronousProxy {
891 fn from(value: fidl::Channel) -> Self {
892 Self::new(value)
893 }
894}
895
896#[cfg(target_os = "fuchsia")]
897impl fidl::endpoints::FromClient for DisplayBacklightSynchronousProxy {
898 type Protocol = DisplayBacklightMarker;
899
900 fn from_client(value: fidl::endpoints::ClientEnd<DisplayBacklightMarker>) -> Self {
901 Self::new(value.into_channel())
902 }
903}
904
905#[derive(Debug, Clone)]
906pub struct DisplayBacklightProxy {
907 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
908}
909
910impl fidl::endpoints::Proxy for DisplayBacklightProxy {
911 type Protocol = DisplayBacklightMarker;
912
913 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
914 Self::new(inner)
915 }
916
917 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
918 self.client.into_channel().map_err(|client| Self { client })
919 }
920
921 fn as_channel(&self) -> &::fidl::AsyncChannel {
922 self.client.as_channel()
923 }
924}
925
926impl DisplayBacklightProxy {
927 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
929 let protocol_name = <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
930 Self { client: fidl::client::Client::new(channel, protocol_name) }
931 }
932
933 pub fn take_event_stream(&self) -> DisplayBacklightEventStream {
939 DisplayBacklightEventStream { event_receiver: self.client.take_event_receiver() }
940 }
941
942 pub fn r#set_minimum_rgb(
951 &self,
952 mut minimum_rgb: u8,
953 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
954 DisplayBacklightProxyInterface::r#set_minimum_rgb(self, minimum_rgb)
955 }
956}
957
958impl DisplayBacklightProxyInterface for DisplayBacklightProxy {
959 type SetMinimumRgbResponseFut =
960 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
961 fn r#set_minimum_rgb(&self, mut minimum_rgb: u8) -> Self::SetMinimumRgbResponseFut {
962 fn _decode(
963 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
964 ) -> Result<(), fidl::Error> {
965 let _response = fidl::client::decode_transaction_body::<
966 fidl::encoding::EmptyPayload,
967 fidl::encoding::DefaultFuchsiaResourceDialect,
968 0x25604347bb8a1ca3,
969 >(_buf?)?;
970 Ok(_response)
971 }
972 self.client.send_query_and_decode::<DisplayBacklightSetMinimumRgbRequest, ()>(
973 (minimum_rgb,),
974 0x25604347bb8a1ca3,
975 fidl::encoding::DynamicFlags::empty(),
976 _decode,
977 )
978 }
979}
980
981pub struct DisplayBacklightEventStream {
982 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
983}
984
985impl std::marker::Unpin for DisplayBacklightEventStream {}
986
987impl futures::stream::FusedStream for DisplayBacklightEventStream {
988 fn is_terminated(&self) -> bool {
989 self.event_receiver.is_terminated()
990 }
991}
992
993impl futures::Stream for DisplayBacklightEventStream {
994 type Item = Result<DisplayBacklightEvent, fidl::Error>;
995
996 fn poll_next(
997 mut self: std::pin::Pin<&mut Self>,
998 cx: &mut std::task::Context<'_>,
999 ) -> std::task::Poll<Option<Self::Item>> {
1000 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1001 &mut self.event_receiver,
1002 cx
1003 )?) {
1004 Some(buf) => std::task::Poll::Ready(Some(DisplayBacklightEvent::decode(buf))),
1005 None => std::task::Poll::Ready(None),
1006 }
1007 }
1008}
1009
1010#[derive(Debug)]
1011pub enum DisplayBacklightEvent {}
1012
1013impl DisplayBacklightEvent {
1014 fn decode(
1016 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1017 ) -> Result<DisplayBacklightEvent, fidl::Error> {
1018 let (bytes, _handles) = buf.split_mut();
1019 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1020 debug_assert_eq!(tx_header.tx_id, 0);
1021 match tx_header.ordinal {
1022 _ => Err(fidl::Error::UnknownOrdinal {
1023 ordinal: tx_header.ordinal,
1024 protocol_name:
1025 <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1026 }),
1027 }
1028 }
1029}
1030
1031pub struct DisplayBacklightRequestStream {
1033 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1034 is_terminated: bool,
1035}
1036
1037impl std::marker::Unpin for DisplayBacklightRequestStream {}
1038
1039impl futures::stream::FusedStream for DisplayBacklightRequestStream {
1040 fn is_terminated(&self) -> bool {
1041 self.is_terminated
1042 }
1043}
1044
1045impl fidl::endpoints::RequestStream for DisplayBacklightRequestStream {
1046 type Protocol = DisplayBacklightMarker;
1047 type ControlHandle = DisplayBacklightControlHandle;
1048
1049 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1050 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1051 }
1052
1053 fn control_handle(&self) -> Self::ControlHandle {
1054 DisplayBacklightControlHandle { inner: self.inner.clone() }
1055 }
1056
1057 fn into_inner(
1058 self,
1059 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1060 {
1061 (self.inner, self.is_terminated)
1062 }
1063
1064 fn from_inner(
1065 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1066 is_terminated: bool,
1067 ) -> Self {
1068 Self { inner, is_terminated }
1069 }
1070}
1071
1072impl futures::Stream for DisplayBacklightRequestStream {
1073 type Item = Result<DisplayBacklightRequest, fidl::Error>;
1074
1075 fn poll_next(
1076 mut self: std::pin::Pin<&mut Self>,
1077 cx: &mut std::task::Context<'_>,
1078 ) -> std::task::Poll<Option<Self::Item>> {
1079 let this = &mut *self;
1080 if this.inner.check_shutdown(cx) {
1081 this.is_terminated = true;
1082 return std::task::Poll::Ready(None);
1083 }
1084 if this.is_terminated {
1085 panic!("polled DisplayBacklightRequestStream after completion");
1086 }
1087 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1088 |bytes, handles| {
1089 match this.inner.channel().read_etc(cx, bytes, handles) {
1090 std::task::Poll::Ready(Ok(())) => {}
1091 std::task::Poll::Pending => return std::task::Poll::Pending,
1092 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1093 this.is_terminated = true;
1094 return std::task::Poll::Ready(None);
1095 }
1096 std::task::Poll::Ready(Err(e)) => {
1097 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1098 e.into(),
1099 ))));
1100 }
1101 }
1102
1103 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1105
1106 std::task::Poll::Ready(Some(match header.ordinal {
1107 0x25604347bb8a1ca3 => {
1108 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1109 let mut req = fidl::new_empty!(
1110 DisplayBacklightSetMinimumRgbRequest,
1111 fidl::encoding::DefaultFuchsiaResourceDialect
1112 );
1113 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DisplayBacklightSetMinimumRgbRequest>(&header, _body_bytes, handles, &mut req)?;
1114 let control_handle =
1115 DisplayBacklightControlHandle { inner: this.inner.clone() };
1116 Ok(DisplayBacklightRequest::SetMinimumRgb {
1117 minimum_rgb: req.minimum_rgb,
1118
1119 responder: DisplayBacklightSetMinimumRgbResponder {
1120 control_handle: std::mem::ManuallyDrop::new(control_handle),
1121 tx_id: header.tx_id,
1122 },
1123 })
1124 }
1125 _ => Err(fidl::Error::UnknownOrdinal {
1126 ordinal: header.ordinal,
1127 protocol_name:
1128 <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1129 }),
1130 }))
1131 },
1132 )
1133 }
1134}
1135
1136#[derive(Debug)]
1151pub enum DisplayBacklightRequest {
1152 SetMinimumRgb { minimum_rgb: u8, responder: DisplayBacklightSetMinimumRgbResponder },
1161}
1162
1163impl DisplayBacklightRequest {
1164 #[allow(irrefutable_let_patterns)]
1165 pub fn into_set_minimum_rgb(self) -> Option<(u8, DisplayBacklightSetMinimumRgbResponder)> {
1166 if let DisplayBacklightRequest::SetMinimumRgb { minimum_rgb, responder } = self {
1167 Some((minimum_rgb, responder))
1168 } else {
1169 None
1170 }
1171 }
1172
1173 pub fn method_name(&self) -> &'static str {
1175 match *self {
1176 DisplayBacklightRequest::SetMinimumRgb { .. } => "set_minimum_rgb",
1177 }
1178 }
1179}
1180
1181#[derive(Debug, Clone)]
1182pub struct DisplayBacklightControlHandle {
1183 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1184}
1185
1186impl DisplayBacklightControlHandle {
1187 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
1188 self.inner.shutdown_with_epitaph(status.into())
1189 }
1190}
1191
1192impl fidl::endpoints::ControlHandle for DisplayBacklightControlHandle {
1193 fn shutdown(&self) {
1194 self.inner.shutdown()
1195 }
1196
1197 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
1198 self.inner.shutdown_with_epitaph(status)
1199 }
1200
1201 fn is_closed(&self) -> bool {
1202 self.inner.channel().is_closed()
1203 }
1204 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1205 self.inner.channel().on_closed()
1206 }
1207
1208 #[cfg(target_os = "fuchsia")]
1209 fn signal_peer(
1210 &self,
1211 clear_mask: zx::Signals,
1212 set_mask: zx::Signals,
1213 ) -> Result<(), zx_status::Status> {
1214 use fidl::Peered;
1215 self.inner.channel().signal_peer(clear_mask, set_mask)
1216 }
1217}
1218
1219impl DisplayBacklightControlHandle {}
1220
1221#[must_use = "FIDL methods require a response to be sent"]
1222#[derive(Debug)]
1223pub struct DisplayBacklightSetMinimumRgbResponder {
1224 control_handle: std::mem::ManuallyDrop<DisplayBacklightControlHandle>,
1225 tx_id: u32,
1226}
1227
1228impl std::ops::Drop for DisplayBacklightSetMinimumRgbResponder {
1232 fn drop(&mut self) {
1233 self.control_handle.shutdown();
1234 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1236 }
1237}
1238
1239impl fidl::endpoints::Responder for DisplayBacklightSetMinimumRgbResponder {
1240 type ControlHandle = DisplayBacklightControlHandle;
1241
1242 fn control_handle(&self) -> &DisplayBacklightControlHandle {
1243 &self.control_handle
1244 }
1245
1246 fn drop_without_shutdown(mut self) {
1247 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1249 std::mem::forget(self);
1251 }
1252}
1253
1254impl DisplayBacklightSetMinimumRgbResponder {
1255 pub fn send(self) -> Result<(), fidl::Error> {
1259 let _result = self.send_raw();
1260 if _result.is_err() {
1261 self.control_handle.shutdown();
1262 }
1263 self.drop_without_shutdown();
1264 _result
1265 }
1266
1267 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1269 let _result = self.send_raw();
1270 self.drop_without_shutdown();
1271 _result
1272 }
1273
1274 fn send_raw(&self) -> Result<(), fidl::Error> {
1275 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1276 (),
1277 self.tx_id,
1278 0x25604347bb8a1ca3,
1279 fidl::encoding::DynamicFlags::empty(),
1280 )
1281 }
1282}
1283
1284#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1285pub struct MediaButtonsListenerMarker;
1286
1287impl fidl::endpoints::ProtocolMarker for MediaButtonsListenerMarker {
1288 type Proxy = MediaButtonsListenerProxy;
1289 type RequestStream = MediaButtonsListenerRequestStream;
1290 #[cfg(target_os = "fuchsia")]
1291 type SynchronousProxy = MediaButtonsListenerSynchronousProxy;
1292
1293 const DEBUG_NAME: &'static str = "(anonymous) MediaButtonsListener";
1294}
1295
1296pub trait MediaButtonsListenerProxyInterface: Send + Sync {
1297 fn r#on_media_buttons_event(
1298 &self,
1299 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1300 ) -> Result<(), fidl::Error>;
1301 type OnEventResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1302 fn r#on_event(
1303 &self,
1304 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1305 ) -> Self::OnEventResponseFut;
1306}
1307#[derive(Debug)]
1308#[cfg(target_os = "fuchsia")]
1309pub struct MediaButtonsListenerSynchronousProxy {
1310 client: fidl::client::sync::Client,
1311}
1312
1313#[cfg(target_os = "fuchsia")]
1314impl fidl::endpoints::SynchronousProxy for MediaButtonsListenerSynchronousProxy {
1315 type Proxy = MediaButtonsListenerProxy;
1316 type Protocol = MediaButtonsListenerMarker;
1317
1318 fn from_channel(inner: fidl::Channel) -> Self {
1319 Self::new(inner)
1320 }
1321
1322 fn into_channel(self) -> fidl::Channel {
1323 self.client.into_channel()
1324 }
1325
1326 fn as_channel(&self) -> &fidl::Channel {
1327 self.client.as_channel()
1328 }
1329}
1330
1331#[cfg(target_os = "fuchsia")]
1332impl MediaButtonsListenerSynchronousProxy {
1333 pub fn new(channel: fidl::Channel) -> Self {
1334 Self { client: fidl::client::sync::Client::new(channel) }
1335 }
1336
1337 pub fn into_channel(self) -> fidl::Channel {
1338 self.client.into_channel()
1339 }
1340
1341 pub fn wait_for_event(
1344 &self,
1345 deadline: zx::MonotonicInstant,
1346 ) -> Result<MediaButtonsListenerEvent, fidl::Error> {
1347 MediaButtonsListenerEvent::decode(
1348 self.client.wait_for_event::<MediaButtonsListenerMarker>(deadline)?,
1349 )
1350 }
1351
1352 pub fn r#on_media_buttons_event(
1353 &self,
1354 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1355 ) -> Result<(), fidl::Error> {
1356 self.client.send::<MediaButtonsListenerOnMediaButtonsEventRequest>(
1357 (&mut event,),
1358 0x2c2068c386964e00,
1359 fidl::encoding::DynamicFlags::empty(),
1360 )
1361 }
1362
1363 pub fn r#on_event(
1364 &self,
1365 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1366 ___deadline: zx::MonotonicInstant,
1367 ) -> Result<(), fidl::Error> {
1368 let _response = self.client.send_query::<
1369 MediaButtonsListenerOnEventRequest,
1370 fidl::encoding::EmptyPayload,
1371 MediaButtonsListenerMarker,
1372 >(
1373 (&mut event,),
1374 0x16e7130ddcaf877c,
1375 fidl::encoding::DynamicFlags::empty(),
1376 ___deadline,
1377 )?;
1378 Ok(_response)
1379 }
1380}
1381
1382#[cfg(target_os = "fuchsia")]
1383impl From<MediaButtonsListenerSynchronousProxy> for zx::NullableHandle {
1384 fn from(value: MediaButtonsListenerSynchronousProxy) -> Self {
1385 value.into_channel().into()
1386 }
1387}
1388
1389#[cfg(target_os = "fuchsia")]
1390impl From<fidl::Channel> for MediaButtonsListenerSynchronousProxy {
1391 fn from(value: fidl::Channel) -> Self {
1392 Self::new(value)
1393 }
1394}
1395
1396#[cfg(target_os = "fuchsia")]
1397impl fidl::endpoints::FromClient for MediaButtonsListenerSynchronousProxy {
1398 type Protocol = MediaButtonsListenerMarker;
1399
1400 fn from_client(value: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>) -> Self {
1401 Self::new(value.into_channel())
1402 }
1403}
1404
1405#[derive(Debug, Clone)]
1406pub struct MediaButtonsListenerProxy {
1407 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1408}
1409
1410impl fidl::endpoints::Proxy for MediaButtonsListenerProxy {
1411 type Protocol = MediaButtonsListenerMarker;
1412
1413 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1414 Self::new(inner)
1415 }
1416
1417 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1418 self.client.into_channel().map_err(|client| Self { client })
1419 }
1420
1421 fn as_channel(&self) -> &::fidl::AsyncChannel {
1422 self.client.as_channel()
1423 }
1424}
1425
1426impl MediaButtonsListenerProxy {
1427 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1429 let protocol_name =
1430 <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1431 Self { client: fidl::client::Client::new(channel, protocol_name) }
1432 }
1433
1434 pub fn take_event_stream(&self) -> MediaButtonsListenerEventStream {
1440 MediaButtonsListenerEventStream { event_receiver: self.client.take_event_receiver() }
1441 }
1442
1443 pub fn r#on_media_buttons_event(
1444 &self,
1445 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1446 ) -> Result<(), fidl::Error> {
1447 MediaButtonsListenerProxyInterface::r#on_media_buttons_event(self, event)
1448 }
1449
1450 pub fn r#on_event(
1451 &self,
1452 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1453 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1454 MediaButtonsListenerProxyInterface::r#on_event(self, event)
1455 }
1456}
1457
1458impl MediaButtonsListenerProxyInterface for MediaButtonsListenerProxy {
1459 fn r#on_media_buttons_event(
1460 &self,
1461 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1462 ) -> Result<(), fidl::Error> {
1463 self.client.send::<MediaButtonsListenerOnMediaButtonsEventRequest>(
1464 (&mut event,),
1465 0x2c2068c386964e00,
1466 fidl::encoding::DynamicFlags::empty(),
1467 )
1468 }
1469
1470 type OnEventResponseFut =
1471 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1472 fn r#on_event(
1473 &self,
1474 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1475 ) -> Self::OnEventResponseFut {
1476 fn _decode(
1477 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1478 ) -> Result<(), fidl::Error> {
1479 let _response = fidl::client::decode_transaction_body::<
1480 fidl::encoding::EmptyPayload,
1481 fidl::encoding::DefaultFuchsiaResourceDialect,
1482 0x16e7130ddcaf877c,
1483 >(_buf?)?;
1484 Ok(_response)
1485 }
1486 self.client.send_query_and_decode::<MediaButtonsListenerOnEventRequest, ()>(
1487 (&mut event,),
1488 0x16e7130ddcaf877c,
1489 fidl::encoding::DynamicFlags::empty(),
1490 _decode,
1491 )
1492 }
1493}
1494
1495pub struct MediaButtonsListenerEventStream {
1496 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1497}
1498
1499impl std::marker::Unpin for MediaButtonsListenerEventStream {}
1500
1501impl futures::stream::FusedStream for MediaButtonsListenerEventStream {
1502 fn is_terminated(&self) -> bool {
1503 self.event_receiver.is_terminated()
1504 }
1505}
1506
1507impl futures::Stream for MediaButtonsListenerEventStream {
1508 type Item = Result<MediaButtonsListenerEvent, fidl::Error>;
1509
1510 fn poll_next(
1511 mut self: std::pin::Pin<&mut Self>,
1512 cx: &mut std::task::Context<'_>,
1513 ) -> std::task::Poll<Option<Self::Item>> {
1514 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1515 &mut self.event_receiver,
1516 cx
1517 )?) {
1518 Some(buf) => std::task::Poll::Ready(Some(MediaButtonsListenerEvent::decode(buf))),
1519 None => std::task::Poll::Ready(None),
1520 }
1521 }
1522}
1523
1524#[derive(Debug)]
1525pub enum MediaButtonsListenerEvent {}
1526
1527impl MediaButtonsListenerEvent {
1528 fn decode(
1530 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1531 ) -> Result<MediaButtonsListenerEvent, fidl::Error> {
1532 let (bytes, _handles) = buf.split_mut();
1533 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1534 debug_assert_eq!(tx_header.tx_id, 0);
1535 match tx_header.ordinal {
1536 _ => Err(fidl::Error::UnknownOrdinal {
1537 ordinal: tx_header.ordinal,
1538 protocol_name:
1539 <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1540 }),
1541 }
1542 }
1543}
1544
1545pub struct MediaButtonsListenerRequestStream {
1547 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1548 is_terminated: bool,
1549}
1550
1551impl std::marker::Unpin for MediaButtonsListenerRequestStream {}
1552
1553impl futures::stream::FusedStream for MediaButtonsListenerRequestStream {
1554 fn is_terminated(&self) -> bool {
1555 self.is_terminated
1556 }
1557}
1558
1559impl fidl::endpoints::RequestStream for MediaButtonsListenerRequestStream {
1560 type Protocol = MediaButtonsListenerMarker;
1561 type ControlHandle = MediaButtonsListenerControlHandle;
1562
1563 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1564 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1565 }
1566
1567 fn control_handle(&self) -> Self::ControlHandle {
1568 MediaButtonsListenerControlHandle { inner: self.inner.clone() }
1569 }
1570
1571 fn into_inner(
1572 self,
1573 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1574 {
1575 (self.inner, self.is_terminated)
1576 }
1577
1578 fn from_inner(
1579 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1580 is_terminated: bool,
1581 ) -> Self {
1582 Self { inner, is_terminated }
1583 }
1584}
1585
1586impl futures::Stream for MediaButtonsListenerRequestStream {
1587 type Item = Result<MediaButtonsListenerRequest, fidl::Error>;
1588
1589 fn poll_next(
1590 mut self: std::pin::Pin<&mut Self>,
1591 cx: &mut std::task::Context<'_>,
1592 ) -> std::task::Poll<Option<Self::Item>> {
1593 let this = &mut *self;
1594 if this.inner.check_shutdown(cx) {
1595 this.is_terminated = true;
1596 return std::task::Poll::Ready(None);
1597 }
1598 if this.is_terminated {
1599 panic!("polled MediaButtonsListenerRequestStream after completion");
1600 }
1601 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1602 |bytes, handles| {
1603 match this.inner.channel().read_etc(cx, bytes, handles) {
1604 std::task::Poll::Ready(Ok(())) => {}
1605 std::task::Poll::Pending => return std::task::Poll::Pending,
1606 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1607 this.is_terminated = true;
1608 return std::task::Poll::Ready(None);
1609 }
1610 std::task::Poll::Ready(Err(e)) => {
1611 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1612 e.into(),
1613 ))));
1614 }
1615 }
1616
1617 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1619
1620 std::task::Poll::Ready(Some(match header.ordinal {
1621 0x2c2068c386964e00 => {
1622 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1623 let mut req = fidl::new_empty!(MediaButtonsListenerOnMediaButtonsEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1624 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MediaButtonsListenerOnMediaButtonsEventRequest>(&header, _body_bytes, handles, &mut req)?;
1625 let control_handle = MediaButtonsListenerControlHandle {
1626 inner: this.inner.clone(),
1627 };
1628 Ok(MediaButtonsListenerRequest::OnMediaButtonsEvent {event: req.event,
1629
1630 control_handle,
1631 })
1632 }
1633 0x16e7130ddcaf877c => {
1634 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1635 let mut req = fidl::new_empty!(MediaButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1636 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MediaButtonsListenerOnEventRequest>(&header, _body_bytes, handles, &mut req)?;
1637 let control_handle = MediaButtonsListenerControlHandle {
1638 inner: this.inner.clone(),
1639 };
1640 Ok(MediaButtonsListenerRequest::OnEvent {event: req.event,
1641
1642 responder: MediaButtonsListenerOnEventResponder {
1643 control_handle: std::mem::ManuallyDrop::new(control_handle),
1644 tx_id: header.tx_id,
1645 },
1646 })
1647 }
1648 _ => Err(fidl::Error::UnknownOrdinal {
1649 ordinal: header.ordinal,
1650 protocol_name: <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1651 }),
1652 }))
1653 },
1654 )
1655 }
1656}
1657
1658#[derive(Debug)]
1659pub enum MediaButtonsListenerRequest {
1660 OnMediaButtonsEvent {
1661 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1662 control_handle: MediaButtonsListenerControlHandle,
1663 },
1664 OnEvent {
1665 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1666 responder: MediaButtonsListenerOnEventResponder,
1667 },
1668}
1669
1670impl MediaButtonsListenerRequest {
1671 #[allow(irrefutable_let_patterns)]
1672 pub fn into_on_media_buttons_event(
1673 self,
1674 ) -> Option<(fidl_fuchsia_ui_input::MediaButtonsEvent, MediaButtonsListenerControlHandle)> {
1675 if let MediaButtonsListenerRequest::OnMediaButtonsEvent { event, control_handle } = self {
1676 Some((event, control_handle))
1677 } else {
1678 None
1679 }
1680 }
1681
1682 #[allow(irrefutable_let_patterns)]
1683 pub fn into_on_event(
1684 self,
1685 ) -> Option<(fidl_fuchsia_ui_input::MediaButtonsEvent, MediaButtonsListenerOnEventResponder)>
1686 {
1687 if let MediaButtonsListenerRequest::OnEvent { event, responder } = self {
1688 Some((event, responder))
1689 } else {
1690 None
1691 }
1692 }
1693
1694 pub fn method_name(&self) -> &'static str {
1696 match *self {
1697 MediaButtonsListenerRequest::OnMediaButtonsEvent { .. } => "on_media_buttons_event",
1698 MediaButtonsListenerRequest::OnEvent { .. } => "on_event",
1699 }
1700 }
1701}
1702
1703#[derive(Debug, Clone)]
1704pub struct MediaButtonsListenerControlHandle {
1705 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1706}
1707
1708impl MediaButtonsListenerControlHandle {
1709 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
1710 self.inner.shutdown_with_epitaph(status.into())
1711 }
1712}
1713
1714impl fidl::endpoints::ControlHandle for MediaButtonsListenerControlHandle {
1715 fn shutdown(&self) {
1716 self.inner.shutdown()
1717 }
1718
1719 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
1720 self.inner.shutdown_with_epitaph(status)
1721 }
1722
1723 fn is_closed(&self) -> bool {
1724 self.inner.channel().is_closed()
1725 }
1726 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1727 self.inner.channel().on_closed()
1728 }
1729
1730 #[cfg(target_os = "fuchsia")]
1731 fn signal_peer(
1732 &self,
1733 clear_mask: zx::Signals,
1734 set_mask: zx::Signals,
1735 ) -> Result<(), zx_status::Status> {
1736 use fidl::Peered;
1737 self.inner.channel().signal_peer(clear_mask, set_mask)
1738 }
1739}
1740
1741impl MediaButtonsListenerControlHandle {}
1742
1743#[must_use = "FIDL methods require a response to be sent"]
1744#[derive(Debug)]
1745pub struct MediaButtonsListenerOnEventResponder {
1746 control_handle: std::mem::ManuallyDrop<MediaButtonsListenerControlHandle>,
1747 tx_id: u32,
1748}
1749
1750impl std::ops::Drop for MediaButtonsListenerOnEventResponder {
1754 fn drop(&mut self) {
1755 self.control_handle.shutdown();
1756 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1758 }
1759}
1760
1761impl fidl::endpoints::Responder for MediaButtonsListenerOnEventResponder {
1762 type ControlHandle = MediaButtonsListenerControlHandle;
1763
1764 fn control_handle(&self) -> &MediaButtonsListenerControlHandle {
1765 &self.control_handle
1766 }
1767
1768 fn drop_without_shutdown(mut self) {
1769 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1771 std::mem::forget(self);
1773 }
1774}
1775
1776impl MediaButtonsListenerOnEventResponder {
1777 pub fn send(self) -> Result<(), fidl::Error> {
1781 let _result = self.send_raw();
1782 if _result.is_err() {
1783 self.control_handle.shutdown();
1784 }
1785 self.drop_without_shutdown();
1786 _result
1787 }
1788
1789 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1791 let _result = self.send_raw();
1792 self.drop_without_shutdown();
1793 _result
1794 }
1795
1796 fn send_raw(&self) -> Result<(), fidl::Error> {
1797 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1798 (),
1799 self.tx_id,
1800 0x16e7130ddcaf877c,
1801 fidl::encoding::DynamicFlags::empty(),
1802 )
1803 }
1804}
1805
1806#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1807pub struct TouchButtonsListenerMarker;
1808
1809impl fidl::endpoints::ProtocolMarker for TouchButtonsListenerMarker {
1810 type Proxy = TouchButtonsListenerProxy;
1811 type RequestStream = TouchButtonsListenerRequestStream;
1812 #[cfg(target_os = "fuchsia")]
1813 type SynchronousProxy = TouchButtonsListenerSynchronousProxy;
1814
1815 const DEBUG_NAME: &'static str = "(anonymous) TouchButtonsListener";
1816}
1817
1818pub trait TouchButtonsListenerProxyInterface: Send + Sync {
1819 type OnEventResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1820 fn r#on_event(
1821 &self,
1822 event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1823 ) -> Self::OnEventResponseFut;
1824}
1825#[derive(Debug)]
1826#[cfg(target_os = "fuchsia")]
1827pub struct TouchButtonsListenerSynchronousProxy {
1828 client: fidl::client::sync::Client,
1829}
1830
1831#[cfg(target_os = "fuchsia")]
1832impl fidl::endpoints::SynchronousProxy for TouchButtonsListenerSynchronousProxy {
1833 type Proxy = TouchButtonsListenerProxy;
1834 type Protocol = TouchButtonsListenerMarker;
1835
1836 fn from_channel(inner: fidl::Channel) -> Self {
1837 Self::new(inner)
1838 }
1839
1840 fn into_channel(self) -> fidl::Channel {
1841 self.client.into_channel()
1842 }
1843
1844 fn as_channel(&self) -> &fidl::Channel {
1845 self.client.as_channel()
1846 }
1847}
1848
1849#[cfg(target_os = "fuchsia")]
1850impl TouchButtonsListenerSynchronousProxy {
1851 pub fn new(channel: fidl::Channel) -> Self {
1852 Self { client: fidl::client::sync::Client::new(channel) }
1853 }
1854
1855 pub fn into_channel(self) -> fidl::Channel {
1856 self.client.into_channel()
1857 }
1858
1859 pub fn wait_for_event(
1862 &self,
1863 deadline: zx::MonotonicInstant,
1864 ) -> Result<TouchButtonsListenerEvent, fidl::Error> {
1865 TouchButtonsListenerEvent::decode(
1866 self.client.wait_for_event::<TouchButtonsListenerMarker>(deadline)?,
1867 )
1868 }
1869
1870 pub fn r#on_event(
1871 &self,
1872 mut event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1873 ___deadline: zx::MonotonicInstant,
1874 ) -> Result<(), fidl::Error> {
1875 let _response = self.client.send_query::<
1876 TouchButtonsListenerOnEventRequest,
1877 fidl::encoding::EmptyPayload,
1878 TouchButtonsListenerMarker,
1879 >(
1880 (&mut event,),
1881 0x476b549161542f92,
1882 fidl::encoding::DynamicFlags::empty(),
1883 ___deadline,
1884 )?;
1885 Ok(_response)
1886 }
1887}
1888
1889#[cfg(target_os = "fuchsia")]
1890impl From<TouchButtonsListenerSynchronousProxy> for zx::NullableHandle {
1891 fn from(value: TouchButtonsListenerSynchronousProxy) -> Self {
1892 value.into_channel().into()
1893 }
1894}
1895
1896#[cfg(target_os = "fuchsia")]
1897impl From<fidl::Channel> for TouchButtonsListenerSynchronousProxy {
1898 fn from(value: fidl::Channel) -> Self {
1899 Self::new(value)
1900 }
1901}
1902
1903#[cfg(target_os = "fuchsia")]
1904impl fidl::endpoints::FromClient for TouchButtonsListenerSynchronousProxy {
1905 type Protocol = TouchButtonsListenerMarker;
1906
1907 fn from_client(value: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>) -> Self {
1908 Self::new(value.into_channel())
1909 }
1910}
1911
1912#[derive(Debug, Clone)]
1913pub struct TouchButtonsListenerProxy {
1914 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1915}
1916
1917impl fidl::endpoints::Proxy for TouchButtonsListenerProxy {
1918 type Protocol = TouchButtonsListenerMarker;
1919
1920 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1921 Self::new(inner)
1922 }
1923
1924 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1925 self.client.into_channel().map_err(|client| Self { client })
1926 }
1927
1928 fn as_channel(&self) -> &::fidl::AsyncChannel {
1929 self.client.as_channel()
1930 }
1931}
1932
1933impl TouchButtonsListenerProxy {
1934 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1936 let protocol_name =
1937 <TouchButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1938 Self { client: fidl::client::Client::new(channel, protocol_name) }
1939 }
1940
1941 pub fn take_event_stream(&self) -> TouchButtonsListenerEventStream {
1947 TouchButtonsListenerEventStream { event_receiver: self.client.take_event_receiver() }
1948 }
1949
1950 pub fn r#on_event(
1951 &self,
1952 mut event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1953 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1954 TouchButtonsListenerProxyInterface::r#on_event(self, event)
1955 }
1956}
1957
1958impl TouchButtonsListenerProxyInterface for TouchButtonsListenerProxy {
1959 type OnEventResponseFut =
1960 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1961 fn r#on_event(
1962 &self,
1963 mut event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1964 ) -> Self::OnEventResponseFut {
1965 fn _decode(
1966 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1967 ) -> Result<(), fidl::Error> {
1968 let _response = fidl::client::decode_transaction_body::<
1969 fidl::encoding::EmptyPayload,
1970 fidl::encoding::DefaultFuchsiaResourceDialect,
1971 0x476b549161542f92,
1972 >(_buf?)?;
1973 Ok(_response)
1974 }
1975 self.client.send_query_and_decode::<TouchButtonsListenerOnEventRequest, ()>(
1976 (&mut event,),
1977 0x476b549161542f92,
1978 fidl::encoding::DynamicFlags::empty(),
1979 _decode,
1980 )
1981 }
1982}
1983
1984pub struct TouchButtonsListenerEventStream {
1985 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1986}
1987
1988impl std::marker::Unpin for TouchButtonsListenerEventStream {}
1989
1990impl futures::stream::FusedStream for TouchButtonsListenerEventStream {
1991 fn is_terminated(&self) -> bool {
1992 self.event_receiver.is_terminated()
1993 }
1994}
1995
1996impl futures::Stream for TouchButtonsListenerEventStream {
1997 type Item = Result<TouchButtonsListenerEvent, fidl::Error>;
1998
1999 fn poll_next(
2000 mut self: std::pin::Pin<&mut Self>,
2001 cx: &mut std::task::Context<'_>,
2002 ) -> std::task::Poll<Option<Self::Item>> {
2003 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2004 &mut self.event_receiver,
2005 cx
2006 )?) {
2007 Some(buf) => std::task::Poll::Ready(Some(TouchButtonsListenerEvent::decode(buf))),
2008 None => std::task::Poll::Ready(None),
2009 }
2010 }
2011}
2012
2013#[derive(Debug)]
2014pub enum TouchButtonsListenerEvent {
2015 #[non_exhaustive]
2016 _UnknownEvent {
2017 ordinal: u64,
2019 },
2020}
2021
2022impl TouchButtonsListenerEvent {
2023 fn decode(
2025 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2026 ) -> Result<TouchButtonsListenerEvent, fidl::Error> {
2027 let (bytes, _handles) = buf.split_mut();
2028 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2029 debug_assert_eq!(tx_header.tx_id, 0);
2030 match tx_header.ordinal {
2031 _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
2032 Ok(TouchButtonsListenerEvent::_UnknownEvent { ordinal: tx_header.ordinal })
2033 }
2034 _ => Err(fidl::Error::UnknownOrdinal {
2035 ordinal: tx_header.ordinal,
2036 protocol_name:
2037 <TouchButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2038 }),
2039 }
2040 }
2041}
2042
2043pub struct TouchButtonsListenerRequestStream {
2045 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2046 is_terminated: bool,
2047}
2048
2049impl std::marker::Unpin for TouchButtonsListenerRequestStream {}
2050
2051impl futures::stream::FusedStream for TouchButtonsListenerRequestStream {
2052 fn is_terminated(&self) -> bool {
2053 self.is_terminated
2054 }
2055}
2056
2057impl fidl::endpoints::RequestStream for TouchButtonsListenerRequestStream {
2058 type Protocol = TouchButtonsListenerMarker;
2059 type ControlHandle = TouchButtonsListenerControlHandle;
2060
2061 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2062 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2063 }
2064
2065 fn control_handle(&self) -> Self::ControlHandle {
2066 TouchButtonsListenerControlHandle { inner: self.inner.clone() }
2067 }
2068
2069 fn into_inner(
2070 self,
2071 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2072 {
2073 (self.inner, self.is_terminated)
2074 }
2075
2076 fn from_inner(
2077 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2078 is_terminated: bool,
2079 ) -> Self {
2080 Self { inner, is_terminated }
2081 }
2082}
2083
2084impl futures::Stream for TouchButtonsListenerRequestStream {
2085 type Item = Result<TouchButtonsListenerRequest, fidl::Error>;
2086
2087 fn poll_next(
2088 mut self: std::pin::Pin<&mut Self>,
2089 cx: &mut std::task::Context<'_>,
2090 ) -> std::task::Poll<Option<Self::Item>> {
2091 let this = &mut *self;
2092 if this.inner.check_shutdown(cx) {
2093 this.is_terminated = true;
2094 return std::task::Poll::Ready(None);
2095 }
2096 if this.is_terminated {
2097 panic!("polled TouchButtonsListenerRequestStream after completion");
2098 }
2099 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2100 |bytes, handles| {
2101 match this.inner.channel().read_etc(cx, bytes, handles) {
2102 std::task::Poll::Ready(Ok(())) => {}
2103 std::task::Poll::Pending => return std::task::Poll::Pending,
2104 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2105 this.is_terminated = true;
2106 return std::task::Poll::Ready(None);
2107 }
2108 std::task::Poll::Ready(Err(e)) => {
2109 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2110 e.into(),
2111 ))));
2112 }
2113 }
2114
2115 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2117
2118 std::task::Poll::Ready(Some(match header.ordinal {
2119 0x476b549161542f92 => {
2120 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2121 let mut req = fidl::new_empty!(TouchButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2122 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TouchButtonsListenerOnEventRequest>(&header, _body_bytes, handles, &mut req)?;
2123 let control_handle = TouchButtonsListenerControlHandle {
2124 inner: this.inner.clone(),
2125 };
2126 Ok(TouchButtonsListenerRequest::OnEvent {event: req.event,
2127
2128 responder: TouchButtonsListenerOnEventResponder {
2129 control_handle: std::mem::ManuallyDrop::new(control_handle),
2130 tx_id: header.tx_id,
2131 },
2132 })
2133 }
2134 _ if header.tx_id == 0 && header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
2135 Ok(TouchButtonsListenerRequest::_UnknownMethod {
2136 ordinal: header.ordinal,
2137 control_handle: TouchButtonsListenerControlHandle { inner: this.inner.clone() },
2138 method_type: fidl::MethodType::OneWay,
2139 })
2140 }
2141 _ if header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
2142 this.inner.send_framework_err(
2143 fidl::encoding::FrameworkErr::UnknownMethod,
2144 header.tx_id,
2145 header.ordinal,
2146 header.dynamic_flags(),
2147 (bytes, handles),
2148 )?;
2149 Ok(TouchButtonsListenerRequest::_UnknownMethod {
2150 ordinal: header.ordinal,
2151 control_handle: TouchButtonsListenerControlHandle { inner: this.inner.clone() },
2152 method_type: fidl::MethodType::TwoWay,
2153 })
2154 }
2155 _ => Err(fidl::Error::UnknownOrdinal {
2156 ordinal: header.ordinal,
2157 protocol_name: <TouchButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2158 }),
2159 }))
2160 },
2161 )
2162 }
2163}
2164
2165#[derive(Debug)]
2166pub enum TouchButtonsListenerRequest {
2167 OnEvent {
2168 event: fidl_fuchsia_ui_input::TouchButtonsEvent,
2169 responder: TouchButtonsListenerOnEventResponder,
2170 },
2171 #[non_exhaustive]
2173 _UnknownMethod {
2174 ordinal: u64,
2176 control_handle: TouchButtonsListenerControlHandle,
2177 method_type: fidl::MethodType,
2178 },
2179}
2180
2181impl TouchButtonsListenerRequest {
2182 #[allow(irrefutable_let_patterns)]
2183 pub fn into_on_event(
2184 self,
2185 ) -> Option<(fidl_fuchsia_ui_input::TouchButtonsEvent, TouchButtonsListenerOnEventResponder)>
2186 {
2187 if let TouchButtonsListenerRequest::OnEvent { event, responder } = self {
2188 Some((event, responder))
2189 } else {
2190 None
2191 }
2192 }
2193
2194 pub fn method_name(&self) -> &'static str {
2196 match *self {
2197 TouchButtonsListenerRequest::OnEvent { .. } => "on_event",
2198 TouchButtonsListenerRequest::_UnknownMethod {
2199 method_type: fidl::MethodType::OneWay,
2200 ..
2201 } => "unknown one-way method",
2202 TouchButtonsListenerRequest::_UnknownMethod {
2203 method_type: fidl::MethodType::TwoWay,
2204 ..
2205 } => "unknown two-way method",
2206 }
2207 }
2208}
2209
2210#[derive(Debug, Clone)]
2211pub struct TouchButtonsListenerControlHandle {
2212 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2213}
2214
2215impl TouchButtonsListenerControlHandle {
2216 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
2217 self.inner.shutdown_with_epitaph(status.into())
2218 }
2219}
2220
2221impl fidl::endpoints::ControlHandle for TouchButtonsListenerControlHandle {
2222 fn shutdown(&self) {
2223 self.inner.shutdown()
2224 }
2225
2226 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
2227 self.inner.shutdown_with_epitaph(status)
2228 }
2229
2230 fn is_closed(&self) -> bool {
2231 self.inner.channel().is_closed()
2232 }
2233 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2234 self.inner.channel().on_closed()
2235 }
2236
2237 #[cfg(target_os = "fuchsia")]
2238 fn signal_peer(
2239 &self,
2240 clear_mask: zx::Signals,
2241 set_mask: zx::Signals,
2242 ) -> Result<(), zx_status::Status> {
2243 use fidl::Peered;
2244 self.inner.channel().signal_peer(clear_mask, set_mask)
2245 }
2246}
2247
2248impl TouchButtonsListenerControlHandle {}
2249
2250#[must_use = "FIDL methods require a response to be sent"]
2251#[derive(Debug)]
2252pub struct TouchButtonsListenerOnEventResponder {
2253 control_handle: std::mem::ManuallyDrop<TouchButtonsListenerControlHandle>,
2254 tx_id: u32,
2255}
2256
2257impl std::ops::Drop for TouchButtonsListenerOnEventResponder {
2261 fn drop(&mut self) {
2262 self.control_handle.shutdown();
2263 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2265 }
2266}
2267
2268impl fidl::endpoints::Responder for TouchButtonsListenerOnEventResponder {
2269 type ControlHandle = TouchButtonsListenerControlHandle;
2270
2271 fn control_handle(&self) -> &TouchButtonsListenerControlHandle {
2272 &self.control_handle
2273 }
2274
2275 fn drop_without_shutdown(mut self) {
2276 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2278 std::mem::forget(self);
2280 }
2281}
2282
2283impl TouchButtonsListenerOnEventResponder {
2284 pub fn send(self) -> Result<(), fidl::Error> {
2288 let _result = self.send_raw();
2289 if _result.is_err() {
2290 self.control_handle.shutdown();
2291 }
2292 self.drop_without_shutdown();
2293 _result
2294 }
2295
2296 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2298 let _result = self.send_raw();
2299 self.drop_without_shutdown();
2300 _result
2301 }
2302
2303 fn send_raw(&self) -> Result<(), fidl::Error> {
2304 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2305 (),
2306 self.tx_id,
2307 0x476b549161542f92,
2308 fidl::encoding::DynamicFlags::empty(),
2309 )
2310 }
2311}
2312
2313mod internal {
2314 use super::*;
2315
2316 impl fidl::encoding::ResourceTypeMarker for DeviceListenerRegistryRegisterListenerRequest {
2317 type Borrowed<'a> = &'a mut Self;
2318 fn take_or_borrow<'a>(
2319 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2320 ) -> Self::Borrowed<'a> {
2321 value
2322 }
2323 }
2324
2325 unsafe impl fidl::encoding::TypeMarker for DeviceListenerRegistryRegisterListenerRequest {
2326 type Owned = Self;
2327
2328 #[inline(always)]
2329 fn inline_align(_context: fidl::encoding::Context) -> usize {
2330 4
2331 }
2332
2333 #[inline(always)]
2334 fn inline_size(_context: fidl::encoding::Context) -> usize {
2335 4
2336 }
2337 }
2338
2339 unsafe impl
2340 fidl::encoding::Encode<
2341 DeviceListenerRegistryRegisterListenerRequest,
2342 fidl::encoding::DefaultFuchsiaResourceDialect,
2343 > for &mut DeviceListenerRegistryRegisterListenerRequest
2344 {
2345 #[inline]
2346 unsafe fn encode(
2347 self,
2348 encoder: &mut fidl::encoding::Encoder<
2349 '_,
2350 fidl::encoding::DefaultFuchsiaResourceDialect,
2351 >,
2352 offset: usize,
2353 _depth: fidl::encoding::Depth,
2354 ) -> fidl::Result<()> {
2355 encoder.debug_check_bounds::<DeviceListenerRegistryRegisterListenerRequest>(offset);
2356 fidl::encoding::Encode::<
2358 DeviceListenerRegistryRegisterListenerRequest,
2359 fidl::encoding::DefaultFuchsiaResourceDialect,
2360 >::encode(
2361 (
2362 <fidl::encoding::Endpoint<
2363 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2364 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
2365 &mut self.listener
2366 ),
2367 ),
2368 encoder,
2369 offset,
2370 _depth,
2371 )
2372 }
2373 }
2374 unsafe impl<
2375 T0: fidl::encoding::Encode<
2376 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2377 fidl::encoding::DefaultFuchsiaResourceDialect,
2378 >,
2379 >
2380 fidl::encoding::Encode<
2381 DeviceListenerRegistryRegisterListenerRequest,
2382 fidl::encoding::DefaultFuchsiaResourceDialect,
2383 > for (T0,)
2384 {
2385 #[inline]
2386 unsafe fn encode(
2387 self,
2388 encoder: &mut fidl::encoding::Encoder<
2389 '_,
2390 fidl::encoding::DefaultFuchsiaResourceDialect,
2391 >,
2392 offset: usize,
2393 depth: fidl::encoding::Depth,
2394 ) -> fidl::Result<()> {
2395 encoder.debug_check_bounds::<DeviceListenerRegistryRegisterListenerRequest>(offset);
2396 self.0.encode(encoder, offset + 0, depth)?;
2400 Ok(())
2401 }
2402 }
2403
2404 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2405 for DeviceListenerRegistryRegisterListenerRequest
2406 {
2407 #[inline(always)]
2408 fn new_empty() -> Self {
2409 Self {
2410 listener: fidl::new_empty!(
2411 fidl::encoding::Endpoint<
2412 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2413 >,
2414 fidl::encoding::DefaultFuchsiaResourceDialect
2415 ),
2416 }
2417 }
2418
2419 #[inline]
2420 unsafe fn decode(
2421 &mut self,
2422 decoder: &mut fidl::encoding::Decoder<
2423 '_,
2424 fidl::encoding::DefaultFuchsiaResourceDialect,
2425 >,
2426 offset: usize,
2427 _depth: fidl::encoding::Depth,
2428 ) -> fidl::Result<()> {
2429 decoder.debug_check_bounds::<Self>(offset);
2430 fidl::decode!(
2432 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2433 fidl::encoding::DefaultFuchsiaResourceDialect,
2434 &mut self.listener,
2435 decoder,
2436 offset + 0,
2437 _depth
2438 )?;
2439 Ok(())
2440 }
2441 }
2442
2443 impl fidl::encoding::ResourceTypeMarker
2444 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2445 {
2446 type Borrowed<'a> = &'a mut Self;
2447 fn take_or_borrow<'a>(
2448 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2449 ) -> Self::Borrowed<'a> {
2450 value
2451 }
2452 }
2453
2454 unsafe impl fidl::encoding::TypeMarker
2455 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2456 {
2457 type Owned = Self;
2458
2459 #[inline(always)]
2460 fn inline_align(_context: fidl::encoding::Context) -> usize {
2461 4
2462 }
2463
2464 #[inline(always)]
2465 fn inline_size(_context: fidl::encoding::Context) -> usize {
2466 4
2467 }
2468 }
2469
2470 unsafe impl
2471 fidl::encoding::Encode<
2472 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
2473 fidl::encoding::DefaultFuchsiaResourceDialect,
2474 > for &mut DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2475 {
2476 #[inline]
2477 unsafe fn encode(
2478 self,
2479 encoder: &mut fidl::encoding::Encoder<
2480 '_,
2481 fidl::encoding::DefaultFuchsiaResourceDialect,
2482 >,
2483 offset: usize,
2484 _depth: fidl::encoding::Depth,
2485 ) -> fidl::Result<()> {
2486 encoder
2487 .debug_check_bounds::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
2488 offset,
2489 );
2490 fidl::encoding::Encode::<
2492 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
2493 fidl::encoding::DefaultFuchsiaResourceDialect,
2494 >::encode(
2495 (
2496 <fidl::encoding::Endpoint<
2497 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2498 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
2499 &mut self.listener
2500 ),
2501 ),
2502 encoder,
2503 offset,
2504 _depth,
2505 )
2506 }
2507 }
2508 unsafe impl<
2509 T0: fidl::encoding::Encode<
2510 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2511 fidl::encoding::DefaultFuchsiaResourceDialect,
2512 >,
2513 >
2514 fidl::encoding::Encode<
2515 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
2516 fidl::encoding::DefaultFuchsiaResourceDialect,
2517 > for (T0,)
2518 {
2519 #[inline]
2520 unsafe fn encode(
2521 self,
2522 encoder: &mut fidl::encoding::Encoder<
2523 '_,
2524 fidl::encoding::DefaultFuchsiaResourceDialect,
2525 >,
2526 offset: usize,
2527 depth: fidl::encoding::Depth,
2528 ) -> fidl::Result<()> {
2529 encoder
2530 .debug_check_bounds::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
2531 offset,
2532 );
2533 self.0.encode(encoder, offset + 0, depth)?;
2537 Ok(())
2538 }
2539 }
2540
2541 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2542 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2543 {
2544 #[inline(always)]
2545 fn new_empty() -> Self {
2546 Self {
2547 listener: fidl::new_empty!(
2548 fidl::encoding::Endpoint<
2549 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2550 >,
2551 fidl::encoding::DefaultFuchsiaResourceDialect
2552 ),
2553 }
2554 }
2555
2556 #[inline]
2557 unsafe fn decode(
2558 &mut self,
2559 decoder: &mut fidl::encoding::Decoder<
2560 '_,
2561 fidl::encoding::DefaultFuchsiaResourceDialect,
2562 >,
2563 offset: usize,
2564 _depth: fidl::encoding::Depth,
2565 ) -> fidl::Result<()> {
2566 decoder.debug_check_bounds::<Self>(offset);
2567 fidl::decode!(
2569 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2570 fidl::encoding::DefaultFuchsiaResourceDialect,
2571 &mut self.listener,
2572 decoder,
2573 offset + 0,
2574 _depth
2575 )?;
2576 Ok(())
2577 }
2578 }
2579
2580 impl fidl::encoding::ResourceTypeMarker
2581 for DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2582 {
2583 type Borrowed<'a> = &'a mut Self;
2584 fn take_or_borrow<'a>(
2585 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2586 ) -> Self::Borrowed<'a> {
2587 value
2588 }
2589 }
2590
2591 unsafe impl fidl::encoding::TypeMarker
2592 for DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2593 {
2594 type Owned = Self;
2595
2596 #[inline(always)]
2597 fn inline_align(_context: fidl::encoding::Context) -> usize {
2598 4
2599 }
2600
2601 #[inline(always)]
2602 fn inline_size(_context: fidl::encoding::Context) -> usize {
2603 4
2604 }
2605 }
2606
2607 unsafe impl
2608 fidl::encoding::Encode<
2609 DeviceListenerRegistryRegisterTouchButtonsListenerRequest,
2610 fidl::encoding::DefaultFuchsiaResourceDialect,
2611 > for &mut DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2612 {
2613 #[inline]
2614 unsafe fn encode(
2615 self,
2616 encoder: &mut fidl::encoding::Encoder<
2617 '_,
2618 fidl::encoding::DefaultFuchsiaResourceDialect,
2619 >,
2620 offset: usize,
2621 _depth: fidl::encoding::Depth,
2622 ) -> fidl::Result<()> {
2623 encoder
2624 .debug_check_bounds::<DeviceListenerRegistryRegisterTouchButtonsListenerRequest>(
2625 offset,
2626 );
2627 fidl::encoding::Encode::<
2629 DeviceListenerRegistryRegisterTouchButtonsListenerRequest,
2630 fidl::encoding::DefaultFuchsiaResourceDialect,
2631 >::encode(
2632 (
2633 <fidl::encoding::Endpoint<
2634 fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
2635 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
2636 &mut self.listener
2637 ),
2638 ),
2639 encoder,
2640 offset,
2641 _depth,
2642 )
2643 }
2644 }
2645 unsafe impl<
2646 T0: fidl::encoding::Encode<
2647 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>>,
2648 fidl::encoding::DefaultFuchsiaResourceDialect,
2649 >,
2650 >
2651 fidl::encoding::Encode<
2652 DeviceListenerRegistryRegisterTouchButtonsListenerRequest,
2653 fidl::encoding::DefaultFuchsiaResourceDialect,
2654 > for (T0,)
2655 {
2656 #[inline]
2657 unsafe fn encode(
2658 self,
2659 encoder: &mut fidl::encoding::Encoder<
2660 '_,
2661 fidl::encoding::DefaultFuchsiaResourceDialect,
2662 >,
2663 offset: usize,
2664 depth: fidl::encoding::Depth,
2665 ) -> fidl::Result<()> {
2666 encoder
2667 .debug_check_bounds::<DeviceListenerRegistryRegisterTouchButtonsListenerRequest>(
2668 offset,
2669 );
2670 self.0.encode(encoder, offset + 0, depth)?;
2674 Ok(())
2675 }
2676 }
2677
2678 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2679 for DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2680 {
2681 #[inline(always)]
2682 fn new_empty() -> Self {
2683 Self {
2684 listener: fidl::new_empty!(
2685 fidl::encoding::Endpoint<
2686 fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
2687 >,
2688 fidl::encoding::DefaultFuchsiaResourceDialect
2689 ),
2690 }
2691 }
2692
2693 #[inline]
2694 unsafe fn decode(
2695 &mut self,
2696 decoder: &mut fidl::encoding::Decoder<
2697 '_,
2698 fidl::encoding::DefaultFuchsiaResourceDialect,
2699 >,
2700 offset: usize,
2701 _depth: fidl::encoding::Depth,
2702 ) -> fidl::Result<()> {
2703 decoder.debug_check_bounds::<Self>(offset);
2704 fidl::decode!(
2706 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>>,
2707 fidl::encoding::DefaultFuchsiaResourceDialect,
2708 &mut self.listener,
2709 decoder,
2710 offset + 0,
2711 _depth
2712 )?;
2713 Ok(())
2714 }
2715 }
2716
2717 impl fidl::encoding::ResourceTypeMarker for MediaButtonsListenerOnEventRequest {
2718 type Borrowed<'a> = &'a mut Self;
2719 fn take_or_borrow<'a>(
2720 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2721 ) -> Self::Borrowed<'a> {
2722 value
2723 }
2724 }
2725
2726 unsafe impl fidl::encoding::TypeMarker for MediaButtonsListenerOnEventRequest {
2727 type Owned = Self;
2728
2729 #[inline(always)]
2730 fn inline_align(_context: fidl::encoding::Context) -> usize {
2731 8
2732 }
2733
2734 #[inline(always)]
2735 fn inline_size(_context: fidl::encoding::Context) -> usize {
2736 16
2737 }
2738 }
2739
2740 unsafe impl
2741 fidl::encoding::Encode<
2742 MediaButtonsListenerOnEventRequest,
2743 fidl::encoding::DefaultFuchsiaResourceDialect,
2744 > for &mut MediaButtonsListenerOnEventRequest
2745 {
2746 #[inline]
2747 unsafe fn encode(
2748 self,
2749 encoder: &mut fidl::encoding::Encoder<
2750 '_,
2751 fidl::encoding::DefaultFuchsiaResourceDialect,
2752 >,
2753 offset: usize,
2754 _depth: fidl::encoding::Depth,
2755 ) -> fidl::Result<()> {
2756 encoder.debug_check_bounds::<MediaButtonsListenerOnEventRequest>(offset);
2757 fidl::encoding::Encode::<MediaButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2759 (
2760 <fidl_fuchsia_ui_input::MediaButtonsEvent as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.event),
2761 ),
2762 encoder, offset, _depth
2763 )
2764 }
2765 }
2766 unsafe impl<
2767 T0: fidl::encoding::Encode<
2768 fidl_fuchsia_ui_input::MediaButtonsEvent,
2769 fidl::encoding::DefaultFuchsiaResourceDialect,
2770 >,
2771 >
2772 fidl::encoding::Encode<
2773 MediaButtonsListenerOnEventRequest,
2774 fidl::encoding::DefaultFuchsiaResourceDialect,
2775 > for (T0,)
2776 {
2777 #[inline]
2778 unsafe fn encode(
2779 self,
2780 encoder: &mut fidl::encoding::Encoder<
2781 '_,
2782 fidl::encoding::DefaultFuchsiaResourceDialect,
2783 >,
2784 offset: usize,
2785 depth: fidl::encoding::Depth,
2786 ) -> fidl::Result<()> {
2787 encoder.debug_check_bounds::<MediaButtonsListenerOnEventRequest>(offset);
2788 self.0.encode(encoder, offset + 0, depth)?;
2792 Ok(())
2793 }
2794 }
2795
2796 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2797 for MediaButtonsListenerOnEventRequest
2798 {
2799 #[inline(always)]
2800 fn new_empty() -> Self {
2801 Self {
2802 event: fidl::new_empty!(
2803 fidl_fuchsia_ui_input::MediaButtonsEvent,
2804 fidl::encoding::DefaultFuchsiaResourceDialect
2805 ),
2806 }
2807 }
2808
2809 #[inline]
2810 unsafe fn decode(
2811 &mut self,
2812 decoder: &mut fidl::encoding::Decoder<
2813 '_,
2814 fidl::encoding::DefaultFuchsiaResourceDialect,
2815 >,
2816 offset: usize,
2817 _depth: fidl::encoding::Depth,
2818 ) -> fidl::Result<()> {
2819 decoder.debug_check_bounds::<Self>(offset);
2820 fidl::decode!(
2822 fidl_fuchsia_ui_input::MediaButtonsEvent,
2823 fidl::encoding::DefaultFuchsiaResourceDialect,
2824 &mut self.event,
2825 decoder,
2826 offset + 0,
2827 _depth
2828 )?;
2829 Ok(())
2830 }
2831 }
2832
2833 impl fidl::encoding::ResourceTypeMarker for MediaButtonsListenerOnMediaButtonsEventRequest {
2834 type Borrowed<'a> = &'a mut Self;
2835 fn take_or_borrow<'a>(
2836 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2837 ) -> Self::Borrowed<'a> {
2838 value
2839 }
2840 }
2841
2842 unsafe impl fidl::encoding::TypeMarker for MediaButtonsListenerOnMediaButtonsEventRequest {
2843 type Owned = Self;
2844
2845 #[inline(always)]
2846 fn inline_align(_context: fidl::encoding::Context) -> usize {
2847 8
2848 }
2849
2850 #[inline(always)]
2851 fn inline_size(_context: fidl::encoding::Context) -> usize {
2852 16
2853 }
2854 }
2855
2856 unsafe impl
2857 fidl::encoding::Encode<
2858 MediaButtonsListenerOnMediaButtonsEventRequest,
2859 fidl::encoding::DefaultFuchsiaResourceDialect,
2860 > for &mut MediaButtonsListenerOnMediaButtonsEventRequest
2861 {
2862 #[inline]
2863 unsafe fn encode(
2864 self,
2865 encoder: &mut fidl::encoding::Encoder<
2866 '_,
2867 fidl::encoding::DefaultFuchsiaResourceDialect,
2868 >,
2869 offset: usize,
2870 _depth: fidl::encoding::Depth,
2871 ) -> fidl::Result<()> {
2872 encoder.debug_check_bounds::<MediaButtonsListenerOnMediaButtonsEventRequest>(offset);
2873 fidl::encoding::Encode::<MediaButtonsListenerOnMediaButtonsEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2875 (
2876 <fidl_fuchsia_ui_input::MediaButtonsEvent as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.event),
2877 ),
2878 encoder, offset, _depth
2879 )
2880 }
2881 }
2882 unsafe impl<
2883 T0: fidl::encoding::Encode<
2884 fidl_fuchsia_ui_input::MediaButtonsEvent,
2885 fidl::encoding::DefaultFuchsiaResourceDialect,
2886 >,
2887 >
2888 fidl::encoding::Encode<
2889 MediaButtonsListenerOnMediaButtonsEventRequest,
2890 fidl::encoding::DefaultFuchsiaResourceDialect,
2891 > for (T0,)
2892 {
2893 #[inline]
2894 unsafe fn encode(
2895 self,
2896 encoder: &mut fidl::encoding::Encoder<
2897 '_,
2898 fidl::encoding::DefaultFuchsiaResourceDialect,
2899 >,
2900 offset: usize,
2901 depth: fidl::encoding::Depth,
2902 ) -> fidl::Result<()> {
2903 encoder.debug_check_bounds::<MediaButtonsListenerOnMediaButtonsEventRequest>(offset);
2904 self.0.encode(encoder, offset + 0, depth)?;
2908 Ok(())
2909 }
2910 }
2911
2912 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2913 for MediaButtonsListenerOnMediaButtonsEventRequest
2914 {
2915 #[inline(always)]
2916 fn new_empty() -> Self {
2917 Self {
2918 event: fidl::new_empty!(
2919 fidl_fuchsia_ui_input::MediaButtonsEvent,
2920 fidl::encoding::DefaultFuchsiaResourceDialect
2921 ),
2922 }
2923 }
2924
2925 #[inline]
2926 unsafe fn decode(
2927 &mut self,
2928 decoder: &mut fidl::encoding::Decoder<
2929 '_,
2930 fidl::encoding::DefaultFuchsiaResourceDialect,
2931 >,
2932 offset: usize,
2933 _depth: fidl::encoding::Depth,
2934 ) -> fidl::Result<()> {
2935 decoder.debug_check_bounds::<Self>(offset);
2936 fidl::decode!(
2938 fidl_fuchsia_ui_input::MediaButtonsEvent,
2939 fidl::encoding::DefaultFuchsiaResourceDialect,
2940 &mut self.event,
2941 decoder,
2942 offset + 0,
2943 _depth
2944 )?;
2945 Ok(())
2946 }
2947 }
2948
2949 impl fidl::encoding::ResourceTypeMarker for TouchButtonsListenerOnEventRequest {
2950 type Borrowed<'a> = &'a mut Self;
2951 fn take_or_borrow<'a>(
2952 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2953 ) -> Self::Borrowed<'a> {
2954 value
2955 }
2956 }
2957
2958 unsafe impl fidl::encoding::TypeMarker for TouchButtonsListenerOnEventRequest {
2959 type Owned = Self;
2960
2961 #[inline(always)]
2962 fn inline_align(_context: fidl::encoding::Context) -> usize {
2963 8
2964 }
2965
2966 #[inline(always)]
2967 fn inline_size(_context: fidl::encoding::Context) -> usize {
2968 16
2969 }
2970 }
2971
2972 unsafe impl
2973 fidl::encoding::Encode<
2974 TouchButtonsListenerOnEventRequest,
2975 fidl::encoding::DefaultFuchsiaResourceDialect,
2976 > for &mut TouchButtonsListenerOnEventRequest
2977 {
2978 #[inline]
2979 unsafe fn encode(
2980 self,
2981 encoder: &mut fidl::encoding::Encoder<
2982 '_,
2983 fidl::encoding::DefaultFuchsiaResourceDialect,
2984 >,
2985 offset: usize,
2986 _depth: fidl::encoding::Depth,
2987 ) -> fidl::Result<()> {
2988 encoder.debug_check_bounds::<TouchButtonsListenerOnEventRequest>(offset);
2989 fidl::encoding::Encode::<TouchButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2991 (
2992 <fidl_fuchsia_ui_input::TouchButtonsEvent as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.event),
2993 ),
2994 encoder, offset, _depth
2995 )
2996 }
2997 }
2998 unsafe impl<
2999 T0: fidl::encoding::Encode<
3000 fidl_fuchsia_ui_input::TouchButtonsEvent,
3001 fidl::encoding::DefaultFuchsiaResourceDialect,
3002 >,
3003 >
3004 fidl::encoding::Encode<
3005 TouchButtonsListenerOnEventRequest,
3006 fidl::encoding::DefaultFuchsiaResourceDialect,
3007 > for (T0,)
3008 {
3009 #[inline]
3010 unsafe fn encode(
3011 self,
3012 encoder: &mut fidl::encoding::Encoder<
3013 '_,
3014 fidl::encoding::DefaultFuchsiaResourceDialect,
3015 >,
3016 offset: usize,
3017 depth: fidl::encoding::Depth,
3018 ) -> fidl::Result<()> {
3019 encoder.debug_check_bounds::<TouchButtonsListenerOnEventRequest>(offset);
3020 self.0.encode(encoder, offset + 0, depth)?;
3024 Ok(())
3025 }
3026 }
3027
3028 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3029 for TouchButtonsListenerOnEventRequest
3030 {
3031 #[inline(always)]
3032 fn new_empty() -> Self {
3033 Self {
3034 event: fidl::new_empty!(
3035 fidl_fuchsia_ui_input::TouchButtonsEvent,
3036 fidl::encoding::DefaultFuchsiaResourceDialect
3037 ),
3038 }
3039 }
3040
3041 #[inline]
3042 unsafe fn decode(
3043 &mut self,
3044 decoder: &mut fidl::encoding::Decoder<
3045 '_,
3046 fidl::encoding::DefaultFuchsiaResourceDialect,
3047 >,
3048 offset: usize,
3049 _depth: fidl::encoding::Depth,
3050 ) -> fidl::Result<()> {
3051 decoder.debug_check_bounds::<Self>(offset);
3052 fidl::decode!(
3054 fidl_fuchsia_ui_input::TouchButtonsEvent,
3055 fidl::encoding::DefaultFuchsiaResourceDialect,
3056 &mut self.event,
3057 decoder,
3058 offset + 0,
3059 _depth
3060 )?;
3061 Ok(())
3062 }
3063 }
3064}