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 fidl::endpoints::ControlHandle for DeviceListenerRegistryControlHandle {
633 fn shutdown(&self) {
634 self.inner.shutdown()
635 }
636
637 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
638 self.inner.shutdown_with_epitaph(status)
639 }
640
641 fn is_closed(&self) -> bool {
642 self.inner.channel().is_closed()
643 }
644 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
645 self.inner.channel().on_closed()
646 }
647
648 #[cfg(target_os = "fuchsia")]
649 fn signal_peer(
650 &self,
651 clear_mask: zx::Signals,
652 set_mask: zx::Signals,
653 ) -> Result<(), zx_status::Status> {
654 use fidl::Peered;
655 self.inner.channel().signal_peer(clear_mask, set_mask)
656 }
657}
658
659impl DeviceListenerRegistryControlHandle {}
660
661#[must_use = "FIDL methods require a response to be sent"]
662#[derive(Debug)]
663pub struct DeviceListenerRegistryRegisterListenerResponder {
664 control_handle: std::mem::ManuallyDrop<DeviceListenerRegistryControlHandle>,
665 tx_id: u32,
666}
667
668impl std::ops::Drop for DeviceListenerRegistryRegisterListenerResponder {
672 fn drop(&mut self) {
673 self.control_handle.shutdown();
674 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
676 }
677}
678
679impl fidl::endpoints::Responder for DeviceListenerRegistryRegisterListenerResponder {
680 type ControlHandle = DeviceListenerRegistryControlHandle;
681
682 fn control_handle(&self) -> &DeviceListenerRegistryControlHandle {
683 &self.control_handle
684 }
685
686 fn drop_without_shutdown(mut self) {
687 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
689 std::mem::forget(self);
691 }
692}
693
694impl DeviceListenerRegistryRegisterListenerResponder {
695 pub fn send(self) -> Result<(), fidl::Error> {
699 let _result = self.send_raw();
700 if _result.is_err() {
701 self.control_handle.shutdown();
702 }
703 self.drop_without_shutdown();
704 _result
705 }
706
707 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
709 let _result = self.send_raw();
710 self.drop_without_shutdown();
711 _result
712 }
713
714 fn send_raw(&self) -> Result<(), fidl::Error> {
715 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
716 (),
717 self.tx_id,
718 0x2f9e7eea89485a7b,
719 fidl::encoding::DynamicFlags::empty(),
720 )
721 }
722}
723
724#[must_use = "FIDL methods require a response to be sent"]
725#[derive(Debug)]
726pub struct DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
727 control_handle: std::mem::ManuallyDrop<DeviceListenerRegistryControlHandle>,
728 tx_id: u32,
729}
730
731impl std::ops::Drop for DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
735 fn drop(&mut self) {
736 self.control_handle.shutdown();
737 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
739 }
740}
741
742impl fidl::endpoints::Responder for DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
743 type ControlHandle = DeviceListenerRegistryControlHandle;
744
745 fn control_handle(&self) -> &DeviceListenerRegistryControlHandle {
746 &self.control_handle
747 }
748
749 fn drop_without_shutdown(mut self) {
750 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
752 std::mem::forget(self);
754 }
755}
756
757impl DeviceListenerRegistryRegisterTouchButtonsListenerResponder {
758 pub fn send(self) -> Result<(), fidl::Error> {
762 let _result = self.send_raw();
763 if _result.is_err() {
764 self.control_handle.shutdown();
765 }
766 self.drop_without_shutdown();
767 _result
768 }
769
770 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
772 let _result = self.send_raw();
773 self.drop_without_shutdown();
774 _result
775 }
776
777 fn send_raw(&self) -> Result<(), fidl::Error> {
778 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
779 (),
780 self.tx_id,
781 0x1625430c46f9b84b,
782 fidl::encoding::DynamicFlags::empty(),
783 )
784 }
785}
786
787#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
788pub struct DisplayBacklightMarker;
789
790impl fidl::endpoints::ProtocolMarker for DisplayBacklightMarker {
791 type Proxy = DisplayBacklightProxy;
792 type RequestStream = DisplayBacklightRequestStream;
793 #[cfg(target_os = "fuchsia")]
794 type SynchronousProxy = DisplayBacklightSynchronousProxy;
795
796 const DEBUG_NAME: &'static str = "fuchsia.ui.policy.DisplayBacklight";
797}
798impl fidl::endpoints::DiscoverableProtocolMarker for DisplayBacklightMarker {}
799
800pub trait DisplayBacklightProxyInterface: Send + Sync {
801 type SetMinimumRgbResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
802 fn r#set_minimum_rgb(&self, minimum_rgb: u8) -> Self::SetMinimumRgbResponseFut;
803}
804#[derive(Debug)]
805#[cfg(target_os = "fuchsia")]
806pub struct DisplayBacklightSynchronousProxy {
807 client: fidl::client::sync::Client,
808}
809
810#[cfg(target_os = "fuchsia")]
811impl fidl::endpoints::SynchronousProxy for DisplayBacklightSynchronousProxy {
812 type Proxy = DisplayBacklightProxy;
813 type Protocol = DisplayBacklightMarker;
814
815 fn from_channel(inner: fidl::Channel) -> Self {
816 Self::new(inner)
817 }
818
819 fn into_channel(self) -> fidl::Channel {
820 self.client.into_channel()
821 }
822
823 fn as_channel(&self) -> &fidl::Channel {
824 self.client.as_channel()
825 }
826}
827
828#[cfg(target_os = "fuchsia")]
829impl DisplayBacklightSynchronousProxy {
830 pub fn new(channel: fidl::Channel) -> Self {
831 Self { client: fidl::client::sync::Client::new(channel) }
832 }
833
834 pub fn into_channel(self) -> fidl::Channel {
835 self.client.into_channel()
836 }
837
838 pub fn wait_for_event(
841 &self,
842 deadline: zx::MonotonicInstant,
843 ) -> Result<DisplayBacklightEvent, fidl::Error> {
844 DisplayBacklightEvent::decode(
845 self.client.wait_for_event::<DisplayBacklightMarker>(deadline)?,
846 )
847 }
848
849 pub fn r#set_minimum_rgb(
858 &self,
859 mut minimum_rgb: u8,
860 ___deadline: zx::MonotonicInstant,
861 ) -> Result<(), fidl::Error> {
862 let _response = self.client.send_query::<
863 DisplayBacklightSetMinimumRgbRequest,
864 fidl::encoding::EmptyPayload,
865 DisplayBacklightMarker,
866 >(
867 (minimum_rgb,),
868 0x25604347bb8a1ca3,
869 fidl::encoding::DynamicFlags::empty(),
870 ___deadline,
871 )?;
872 Ok(_response)
873 }
874}
875
876#[cfg(target_os = "fuchsia")]
877impl From<DisplayBacklightSynchronousProxy> for zx::NullableHandle {
878 fn from(value: DisplayBacklightSynchronousProxy) -> Self {
879 value.into_channel().into()
880 }
881}
882
883#[cfg(target_os = "fuchsia")]
884impl From<fidl::Channel> for DisplayBacklightSynchronousProxy {
885 fn from(value: fidl::Channel) -> Self {
886 Self::new(value)
887 }
888}
889
890#[cfg(target_os = "fuchsia")]
891impl fidl::endpoints::FromClient for DisplayBacklightSynchronousProxy {
892 type Protocol = DisplayBacklightMarker;
893
894 fn from_client(value: fidl::endpoints::ClientEnd<DisplayBacklightMarker>) -> Self {
895 Self::new(value.into_channel())
896 }
897}
898
899#[derive(Debug, Clone)]
900pub struct DisplayBacklightProxy {
901 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
902}
903
904impl fidl::endpoints::Proxy for DisplayBacklightProxy {
905 type Protocol = DisplayBacklightMarker;
906
907 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
908 Self::new(inner)
909 }
910
911 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
912 self.client.into_channel().map_err(|client| Self { client })
913 }
914
915 fn as_channel(&self) -> &::fidl::AsyncChannel {
916 self.client.as_channel()
917 }
918}
919
920impl DisplayBacklightProxy {
921 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
923 let protocol_name = <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
924 Self { client: fidl::client::Client::new(channel, protocol_name) }
925 }
926
927 pub fn take_event_stream(&self) -> DisplayBacklightEventStream {
933 DisplayBacklightEventStream { event_receiver: self.client.take_event_receiver() }
934 }
935
936 pub fn r#set_minimum_rgb(
945 &self,
946 mut minimum_rgb: u8,
947 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
948 DisplayBacklightProxyInterface::r#set_minimum_rgb(self, minimum_rgb)
949 }
950}
951
952impl DisplayBacklightProxyInterface for DisplayBacklightProxy {
953 type SetMinimumRgbResponseFut =
954 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
955 fn r#set_minimum_rgb(&self, mut minimum_rgb: u8) -> Self::SetMinimumRgbResponseFut {
956 fn _decode(
957 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
958 ) -> Result<(), fidl::Error> {
959 let _response = fidl::client::decode_transaction_body::<
960 fidl::encoding::EmptyPayload,
961 fidl::encoding::DefaultFuchsiaResourceDialect,
962 0x25604347bb8a1ca3,
963 >(_buf?)?;
964 Ok(_response)
965 }
966 self.client.send_query_and_decode::<DisplayBacklightSetMinimumRgbRequest, ()>(
967 (minimum_rgb,),
968 0x25604347bb8a1ca3,
969 fidl::encoding::DynamicFlags::empty(),
970 _decode,
971 )
972 }
973}
974
975pub struct DisplayBacklightEventStream {
976 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
977}
978
979impl std::marker::Unpin for DisplayBacklightEventStream {}
980
981impl futures::stream::FusedStream for DisplayBacklightEventStream {
982 fn is_terminated(&self) -> bool {
983 self.event_receiver.is_terminated()
984 }
985}
986
987impl futures::Stream for DisplayBacklightEventStream {
988 type Item = Result<DisplayBacklightEvent, fidl::Error>;
989
990 fn poll_next(
991 mut self: std::pin::Pin<&mut Self>,
992 cx: &mut std::task::Context<'_>,
993 ) -> std::task::Poll<Option<Self::Item>> {
994 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
995 &mut self.event_receiver,
996 cx
997 )?) {
998 Some(buf) => std::task::Poll::Ready(Some(DisplayBacklightEvent::decode(buf))),
999 None => std::task::Poll::Ready(None),
1000 }
1001 }
1002}
1003
1004#[derive(Debug)]
1005pub enum DisplayBacklightEvent {}
1006
1007impl DisplayBacklightEvent {
1008 fn decode(
1010 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1011 ) -> Result<DisplayBacklightEvent, fidl::Error> {
1012 let (bytes, _handles) = buf.split_mut();
1013 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1014 debug_assert_eq!(tx_header.tx_id, 0);
1015 match tx_header.ordinal {
1016 _ => Err(fidl::Error::UnknownOrdinal {
1017 ordinal: tx_header.ordinal,
1018 protocol_name:
1019 <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1020 }),
1021 }
1022 }
1023}
1024
1025pub struct DisplayBacklightRequestStream {
1027 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1028 is_terminated: bool,
1029}
1030
1031impl std::marker::Unpin for DisplayBacklightRequestStream {}
1032
1033impl futures::stream::FusedStream for DisplayBacklightRequestStream {
1034 fn is_terminated(&self) -> bool {
1035 self.is_terminated
1036 }
1037}
1038
1039impl fidl::endpoints::RequestStream for DisplayBacklightRequestStream {
1040 type Protocol = DisplayBacklightMarker;
1041 type ControlHandle = DisplayBacklightControlHandle;
1042
1043 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1044 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1045 }
1046
1047 fn control_handle(&self) -> Self::ControlHandle {
1048 DisplayBacklightControlHandle { inner: self.inner.clone() }
1049 }
1050
1051 fn into_inner(
1052 self,
1053 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1054 {
1055 (self.inner, self.is_terminated)
1056 }
1057
1058 fn from_inner(
1059 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1060 is_terminated: bool,
1061 ) -> Self {
1062 Self { inner, is_terminated }
1063 }
1064}
1065
1066impl futures::Stream for DisplayBacklightRequestStream {
1067 type Item = Result<DisplayBacklightRequest, fidl::Error>;
1068
1069 fn poll_next(
1070 mut self: std::pin::Pin<&mut Self>,
1071 cx: &mut std::task::Context<'_>,
1072 ) -> std::task::Poll<Option<Self::Item>> {
1073 let this = &mut *self;
1074 if this.inner.check_shutdown(cx) {
1075 this.is_terminated = true;
1076 return std::task::Poll::Ready(None);
1077 }
1078 if this.is_terminated {
1079 panic!("polled DisplayBacklightRequestStream after completion");
1080 }
1081 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1082 |bytes, handles| {
1083 match this.inner.channel().read_etc(cx, bytes, handles) {
1084 std::task::Poll::Ready(Ok(())) => {}
1085 std::task::Poll::Pending => return std::task::Poll::Pending,
1086 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1087 this.is_terminated = true;
1088 return std::task::Poll::Ready(None);
1089 }
1090 std::task::Poll::Ready(Err(e)) => {
1091 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1092 e.into(),
1093 ))));
1094 }
1095 }
1096
1097 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1099
1100 std::task::Poll::Ready(Some(match header.ordinal {
1101 0x25604347bb8a1ca3 => {
1102 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1103 let mut req = fidl::new_empty!(
1104 DisplayBacklightSetMinimumRgbRequest,
1105 fidl::encoding::DefaultFuchsiaResourceDialect
1106 );
1107 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DisplayBacklightSetMinimumRgbRequest>(&header, _body_bytes, handles, &mut req)?;
1108 let control_handle =
1109 DisplayBacklightControlHandle { inner: this.inner.clone() };
1110 Ok(DisplayBacklightRequest::SetMinimumRgb {
1111 minimum_rgb: req.minimum_rgb,
1112
1113 responder: DisplayBacklightSetMinimumRgbResponder {
1114 control_handle: std::mem::ManuallyDrop::new(control_handle),
1115 tx_id: header.tx_id,
1116 },
1117 })
1118 }
1119 _ => Err(fidl::Error::UnknownOrdinal {
1120 ordinal: header.ordinal,
1121 protocol_name:
1122 <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1123 }),
1124 }))
1125 },
1126 )
1127 }
1128}
1129
1130#[derive(Debug)]
1145pub enum DisplayBacklightRequest {
1146 SetMinimumRgb { minimum_rgb: u8, responder: DisplayBacklightSetMinimumRgbResponder },
1155}
1156
1157impl DisplayBacklightRequest {
1158 #[allow(irrefutable_let_patterns)]
1159 pub fn into_set_minimum_rgb(self) -> Option<(u8, DisplayBacklightSetMinimumRgbResponder)> {
1160 if let DisplayBacklightRequest::SetMinimumRgb { minimum_rgb, responder } = self {
1161 Some((minimum_rgb, responder))
1162 } else {
1163 None
1164 }
1165 }
1166
1167 pub fn method_name(&self) -> &'static str {
1169 match *self {
1170 DisplayBacklightRequest::SetMinimumRgb { .. } => "set_minimum_rgb",
1171 }
1172 }
1173}
1174
1175#[derive(Debug, Clone)]
1176pub struct DisplayBacklightControlHandle {
1177 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1178}
1179
1180impl fidl::endpoints::ControlHandle for DisplayBacklightControlHandle {
1181 fn shutdown(&self) {
1182 self.inner.shutdown()
1183 }
1184
1185 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1186 self.inner.shutdown_with_epitaph(status)
1187 }
1188
1189 fn is_closed(&self) -> bool {
1190 self.inner.channel().is_closed()
1191 }
1192 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1193 self.inner.channel().on_closed()
1194 }
1195
1196 #[cfg(target_os = "fuchsia")]
1197 fn signal_peer(
1198 &self,
1199 clear_mask: zx::Signals,
1200 set_mask: zx::Signals,
1201 ) -> Result<(), zx_status::Status> {
1202 use fidl::Peered;
1203 self.inner.channel().signal_peer(clear_mask, set_mask)
1204 }
1205}
1206
1207impl DisplayBacklightControlHandle {}
1208
1209#[must_use = "FIDL methods require a response to be sent"]
1210#[derive(Debug)]
1211pub struct DisplayBacklightSetMinimumRgbResponder {
1212 control_handle: std::mem::ManuallyDrop<DisplayBacklightControlHandle>,
1213 tx_id: u32,
1214}
1215
1216impl std::ops::Drop for DisplayBacklightSetMinimumRgbResponder {
1220 fn drop(&mut self) {
1221 self.control_handle.shutdown();
1222 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1224 }
1225}
1226
1227impl fidl::endpoints::Responder for DisplayBacklightSetMinimumRgbResponder {
1228 type ControlHandle = DisplayBacklightControlHandle;
1229
1230 fn control_handle(&self) -> &DisplayBacklightControlHandle {
1231 &self.control_handle
1232 }
1233
1234 fn drop_without_shutdown(mut self) {
1235 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1237 std::mem::forget(self);
1239 }
1240}
1241
1242impl DisplayBacklightSetMinimumRgbResponder {
1243 pub fn send(self) -> Result<(), fidl::Error> {
1247 let _result = self.send_raw();
1248 if _result.is_err() {
1249 self.control_handle.shutdown();
1250 }
1251 self.drop_without_shutdown();
1252 _result
1253 }
1254
1255 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1257 let _result = self.send_raw();
1258 self.drop_without_shutdown();
1259 _result
1260 }
1261
1262 fn send_raw(&self) -> Result<(), fidl::Error> {
1263 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1264 (),
1265 self.tx_id,
1266 0x25604347bb8a1ca3,
1267 fidl::encoding::DynamicFlags::empty(),
1268 )
1269 }
1270}
1271
1272#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1273pub struct MediaButtonsListenerMarker;
1274
1275impl fidl::endpoints::ProtocolMarker for MediaButtonsListenerMarker {
1276 type Proxy = MediaButtonsListenerProxy;
1277 type RequestStream = MediaButtonsListenerRequestStream;
1278 #[cfg(target_os = "fuchsia")]
1279 type SynchronousProxy = MediaButtonsListenerSynchronousProxy;
1280
1281 const DEBUG_NAME: &'static str = "(anonymous) MediaButtonsListener";
1282}
1283
1284pub trait MediaButtonsListenerProxyInterface: Send + Sync {
1285 fn r#on_media_buttons_event(
1286 &self,
1287 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1288 ) -> Result<(), fidl::Error>;
1289 type OnEventResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1290 fn r#on_event(
1291 &self,
1292 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1293 ) -> Self::OnEventResponseFut;
1294}
1295#[derive(Debug)]
1296#[cfg(target_os = "fuchsia")]
1297pub struct MediaButtonsListenerSynchronousProxy {
1298 client: fidl::client::sync::Client,
1299}
1300
1301#[cfg(target_os = "fuchsia")]
1302impl fidl::endpoints::SynchronousProxy for MediaButtonsListenerSynchronousProxy {
1303 type Proxy = MediaButtonsListenerProxy;
1304 type Protocol = MediaButtonsListenerMarker;
1305
1306 fn from_channel(inner: fidl::Channel) -> Self {
1307 Self::new(inner)
1308 }
1309
1310 fn into_channel(self) -> fidl::Channel {
1311 self.client.into_channel()
1312 }
1313
1314 fn as_channel(&self) -> &fidl::Channel {
1315 self.client.as_channel()
1316 }
1317}
1318
1319#[cfg(target_os = "fuchsia")]
1320impl MediaButtonsListenerSynchronousProxy {
1321 pub fn new(channel: fidl::Channel) -> Self {
1322 Self { client: fidl::client::sync::Client::new(channel) }
1323 }
1324
1325 pub fn into_channel(self) -> fidl::Channel {
1326 self.client.into_channel()
1327 }
1328
1329 pub fn wait_for_event(
1332 &self,
1333 deadline: zx::MonotonicInstant,
1334 ) -> Result<MediaButtonsListenerEvent, fidl::Error> {
1335 MediaButtonsListenerEvent::decode(
1336 self.client.wait_for_event::<MediaButtonsListenerMarker>(deadline)?,
1337 )
1338 }
1339
1340 pub fn r#on_media_buttons_event(
1341 &self,
1342 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1343 ) -> Result<(), fidl::Error> {
1344 self.client.send::<MediaButtonsListenerOnMediaButtonsEventRequest>(
1345 (&mut event,),
1346 0x2c2068c386964e00,
1347 fidl::encoding::DynamicFlags::empty(),
1348 )
1349 }
1350
1351 pub fn r#on_event(
1352 &self,
1353 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1354 ___deadline: zx::MonotonicInstant,
1355 ) -> Result<(), fidl::Error> {
1356 let _response = self.client.send_query::<
1357 MediaButtonsListenerOnEventRequest,
1358 fidl::encoding::EmptyPayload,
1359 MediaButtonsListenerMarker,
1360 >(
1361 (&mut event,),
1362 0x16e7130ddcaf877c,
1363 fidl::encoding::DynamicFlags::empty(),
1364 ___deadline,
1365 )?;
1366 Ok(_response)
1367 }
1368}
1369
1370#[cfg(target_os = "fuchsia")]
1371impl From<MediaButtonsListenerSynchronousProxy> for zx::NullableHandle {
1372 fn from(value: MediaButtonsListenerSynchronousProxy) -> Self {
1373 value.into_channel().into()
1374 }
1375}
1376
1377#[cfg(target_os = "fuchsia")]
1378impl From<fidl::Channel> for MediaButtonsListenerSynchronousProxy {
1379 fn from(value: fidl::Channel) -> Self {
1380 Self::new(value)
1381 }
1382}
1383
1384#[cfg(target_os = "fuchsia")]
1385impl fidl::endpoints::FromClient for MediaButtonsListenerSynchronousProxy {
1386 type Protocol = MediaButtonsListenerMarker;
1387
1388 fn from_client(value: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>) -> Self {
1389 Self::new(value.into_channel())
1390 }
1391}
1392
1393#[derive(Debug, Clone)]
1394pub struct MediaButtonsListenerProxy {
1395 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1396}
1397
1398impl fidl::endpoints::Proxy for MediaButtonsListenerProxy {
1399 type Protocol = MediaButtonsListenerMarker;
1400
1401 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1402 Self::new(inner)
1403 }
1404
1405 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1406 self.client.into_channel().map_err(|client| Self { client })
1407 }
1408
1409 fn as_channel(&self) -> &::fidl::AsyncChannel {
1410 self.client.as_channel()
1411 }
1412}
1413
1414impl MediaButtonsListenerProxy {
1415 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1417 let protocol_name =
1418 <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1419 Self { client: fidl::client::Client::new(channel, protocol_name) }
1420 }
1421
1422 pub fn take_event_stream(&self) -> MediaButtonsListenerEventStream {
1428 MediaButtonsListenerEventStream { event_receiver: self.client.take_event_receiver() }
1429 }
1430
1431 pub fn r#on_media_buttons_event(
1432 &self,
1433 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1434 ) -> Result<(), fidl::Error> {
1435 MediaButtonsListenerProxyInterface::r#on_media_buttons_event(self, event)
1436 }
1437
1438 pub fn r#on_event(
1439 &self,
1440 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1441 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1442 MediaButtonsListenerProxyInterface::r#on_event(self, event)
1443 }
1444}
1445
1446impl MediaButtonsListenerProxyInterface for MediaButtonsListenerProxy {
1447 fn r#on_media_buttons_event(
1448 &self,
1449 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1450 ) -> Result<(), fidl::Error> {
1451 self.client.send::<MediaButtonsListenerOnMediaButtonsEventRequest>(
1452 (&mut event,),
1453 0x2c2068c386964e00,
1454 fidl::encoding::DynamicFlags::empty(),
1455 )
1456 }
1457
1458 type OnEventResponseFut =
1459 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1460 fn r#on_event(
1461 &self,
1462 mut event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1463 ) -> Self::OnEventResponseFut {
1464 fn _decode(
1465 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1466 ) -> Result<(), fidl::Error> {
1467 let _response = fidl::client::decode_transaction_body::<
1468 fidl::encoding::EmptyPayload,
1469 fidl::encoding::DefaultFuchsiaResourceDialect,
1470 0x16e7130ddcaf877c,
1471 >(_buf?)?;
1472 Ok(_response)
1473 }
1474 self.client.send_query_and_decode::<MediaButtonsListenerOnEventRequest, ()>(
1475 (&mut event,),
1476 0x16e7130ddcaf877c,
1477 fidl::encoding::DynamicFlags::empty(),
1478 _decode,
1479 )
1480 }
1481}
1482
1483pub struct MediaButtonsListenerEventStream {
1484 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1485}
1486
1487impl std::marker::Unpin for MediaButtonsListenerEventStream {}
1488
1489impl futures::stream::FusedStream for MediaButtonsListenerEventStream {
1490 fn is_terminated(&self) -> bool {
1491 self.event_receiver.is_terminated()
1492 }
1493}
1494
1495impl futures::Stream for MediaButtonsListenerEventStream {
1496 type Item = Result<MediaButtonsListenerEvent, fidl::Error>;
1497
1498 fn poll_next(
1499 mut self: std::pin::Pin<&mut Self>,
1500 cx: &mut std::task::Context<'_>,
1501 ) -> std::task::Poll<Option<Self::Item>> {
1502 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1503 &mut self.event_receiver,
1504 cx
1505 )?) {
1506 Some(buf) => std::task::Poll::Ready(Some(MediaButtonsListenerEvent::decode(buf))),
1507 None => std::task::Poll::Ready(None),
1508 }
1509 }
1510}
1511
1512#[derive(Debug)]
1513pub enum MediaButtonsListenerEvent {}
1514
1515impl MediaButtonsListenerEvent {
1516 fn decode(
1518 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1519 ) -> Result<MediaButtonsListenerEvent, fidl::Error> {
1520 let (bytes, _handles) = buf.split_mut();
1521 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1522 debug_assert_eq!(tx_header.tx_id, 0);
1523 match tx_header.ordinal {
1524 _ => Err(fidl::Error::UnknownOrdinal {
1525 ordinal: tx_header.ordinal,
1526 protocol_name:
1527 <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1528 }),
1529 }
1530 }
1531}
1532
1533pub struct MediaButtonsListenerRequestStream {
1535 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1536 is_terminated: bool,
1537}
1538
1539impl std::marker::Unpin for MediaButtonsListenerRequestStream {}
1540
1541impl futures::stream::FusedStream for MediaButtonsListenerRequestStream {
1542 fn is_terminated(&self) -> bool {
1543 self.is_terminated
1544 }
1545}
1546
1547impl fidl::endpoints::RequestStream for MediaButtonsListenerRequestStream {
1548 type Protocol = MediaButtonsListenerMarker;
1549 type ControlHandle = MediaButtonsListenerControlHandle;
1550
1551 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1552 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1553 }
1554
1555 fn control_handle(&self) -> Self::ControlHandle {
1556 MediaButtonsListenerControlHandle { inner: self.inner.clone() }
1557 }
1558
1559 fn into_inner(
1560 self,
1561 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1562 {
1563 (self.inner, self.is_terminated)
1564 }
1565
1566 fn from_inner(
1567 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1568 is_terminated: bool,
1569 ) -> Self {
1570 Self { inner, is_terminated }
1571 }
1572}
1573
1574impl futures::Stream for MediaButtonsListenerRequestStream {
1575 type Item = Result<MediaButtonsListenerRequest, fidl::Error>;
1576
1577 fn poll_next(
1578 mut self: std::pin::Pin<&mut Self>,
1579 cx: &mut std::task::Context<'_>,
1580 ) -> std::task::Poll<Option<Self::Item>> {
1581 let this = &mut *self;
1582 if this.inner.check_shutdown(cx) {
1583 this.is_terminated = true;
1584 return std::task::Poll::Ready(None);
1585 }
1586 if this.is_terminated {
1587 panic!("polled MediaButtonsListenerRequestStream after completion");
1588 }
1589 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1590 |bytes, handles| {
1591 match this.inner.channel().read_etc(cx, bytes, handles) {
1592 std::task::Poll::Ready(Ok(())) => {}
1593 std::task::Poll::Pending => return std::task::Poll::Pending,
1594 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1595 this.is_terminated = true;
1596 return std::task::Poll::Ready(None);
1597 }
1598 std::task::Poll::Ready(Err(e)) => {
1599 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1600 e.into(),
1601 ))));
1602 }
1603 }
1604
1605 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1607
1608 std::task::Poll::Ready(Some(match header.ordinal {
1609 0x2c2068c386964e00 => {
1610 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1611 let mut req = fidl::new_empty!(MediaButtonsListenerOnMediaButtonsEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1612 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MediaButtonsListenerOnMediaButtonsEventRequest>(&header, _body_bytes, handles, &mut req)?;
1613 let control_handle = MediaButtonsListenerControlHandle {
1614 inner: this.inner.clone(),
1615 };
1616 Ok(MediaButtonsListenerRequest::OnMediaButtonsEvent {event: req.event,
1617
1618 control_handle,
1619 })
1620 }
1621 0x16e7130ddcaf877c => {
1622 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1623 let mut req = fidl::new_empty!(MediaButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1624 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MediaButtonsListenerOnEventRequest>(&header, _body_bytes, handles, &mut req)?;
1625 let control_handle = MediaButtonsListenerControlHandle {
1626 inner: this.inner.clone(),
1627 };
1628 Ok(MediaButtonsListenerRequest::OnEvent {event: req.event,
1629
1630 responder: MediaButtonsListenerOnEventResponder {
1631 control_handle: std::mem::ManuallyDrop::new(control_handle),
1632 tx_id: header.tx_id,
1633 },
1634 })
1635 }
1636 _ => Err(fidl::Error::UnknownOrdinal {
1637 ordinal: header.ordinal,
1638 protocol_name: <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1639 }),
1640 }))
1641 },
1642 )
1643 }
1644}
1645
1646#[derive(Debug)]
1647pub enum MediaButtonsListenerRequest {
1648 OnMediaButtonsEvent {
1649 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1650 control_handle: MediaButtonsListenerControlHandle,
1651 },
1652 OnEvent {
1653 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1654 responder: MediaButtonsListenerOnEventResponder,
1655 },
1656}
1657
1658impl MediaButtonsListenerRequest {
1659 #[allow(irrefutable_let_patterns)]
1660 pub fn into_on_media_buttons_event(
1661 self,
1662 ) -> Option<(fidl_fuchsia_ui_input::MediaButtonsEvent, MediaButtonsListenerControlHandle)> {
1663 if let MediaButtonsListenerRequest::OnMediaButtonsEvent { event, control_handle } = self {
1664 Some((event, control_handle))
1665 } else {
1666 None
1667 }
1668 }
1669
1670 #[allow(irrefutable_let_patterns)]
1671 pub fn into_on_event(
1672 self,
1673 ) -> Option<(fidl_fuchsia_ui_input::MediaButtonsEvent, MediaButtonsListenerOnEventResponder)>
1674 {
1675 if let MediaButtonsListenerRequest::OnEvent { event, responder } = self {
1676 Some((event, responder))
1677 } else {
1678 None
1679 }
1680 }
1681
1682 pub fn method_name(&self) -> &'static str {
1684 match *self {
1685 MediaButtonsListenerRequest::OnMediaButtonsEvent { .. } => "on_media_buttons_event",
1686 MediaButtonsListenerRequest::OnEvent { .. } => "on_event",
1687 }
1688 }
1689}
1690
1691#[derive(Debug, Clone)]
1692pub struct MediaButtonsListenerControlHandle {
1693 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1694}
1695
1696impl fidl::endpoints::ControlHandle for MediaButtonsListenerControlHandle {
1697 fn shutdown(&self) {
1698 self.inner.shutdown()
1699 }
1700
1701 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1702 self.inner.shutdown_with_epitaph(status)
1703 }
1704
1705 fn is_closed(&self) -> bool {
1706 self.inner.channel().is_closed()
1707 }
1708 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1709 self.inner.channel().on_closed()
1710 }
1711
1712 #[cfg(target_os = "fuchsia")]
1713 fn signal_peer(
1714 &self,
1715 clear_mask: zx::Signals,
1716 set_mask: zx::Signals,
1717 ) -> Result<(), zx_status::Status> {
1718 use fidl::Peered;
1719 self.inner.channel().signal_peer(clear_mask, set_mask)
1720 }
1721}
1722
1723impl MediaButtonsListenerControlHandle {}
1724
1725#[must_use = "FIDL methods require a response to be sent"]
1726#[derive(Debug)]
1727pub struct MediaButtonsListenerOnEventResponder {
1728 control_handle: std::mem::ManuallyDrop<MediaButtonsListenerControlHandle>,
1729 tx_id: u32,
1730}
1731
1732impl std::ops::Drop for MediaButtonsListenerOnEventResponder {
1736 fn drop(&mut self) {
1737 self.control_handle.shutdown();
1738 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1740 }
1741}
1742
1743impl fidl::endpoints::Responder for MediaButtonsListenerOnEventResponder {
1744 type ControlHandle = MediaButtonsListenerControlHandle;
1745
1746 fn control_handle(&self) -> &MediaButtonsListenerControlHandle {
1747 &self.control_handle
1748 }
1749
1750 fn drop_without_shutdown(mut self) {
1751 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1753 std::mem::forget(self);
1755 }
1756}
1757
1758impl MediaButtonsListenerOnEventResponder {
1759 pub fn send(self) -> Result<(), fidl::Error> {
1763 let _result = self.send_raw();
1764 if _result.is_err() {
1765 self.control_handle.shutdown();
1766 }
1767 self.drop_without_shutdown();
1768 _result
1769 }
1770
1771 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1773 let _result = self.send_raw();
1774 self.drop_without_shutdown();
1775 _result
1776 }
1777
1778 fn send_raw(&self) -> Result<(), fidl::Error> {
1779 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1780 (),
1781 self.tx_id,
1782 0x16e7130ddcaf877c,
1783 fidl::encoding::DynamicFlags::empty(),
1784 )
1785 }
1786}
1787
1788#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1789pub struct TouchButtonsListenerMarker;
1790
1791impl fidl::endpoints::ProtocolMarker for TouchButtonsListenerMarker {
1792 type Proxy = TouchButtonsListenerProxy;
1793 type RequestStream = TouchButtonsListenerRequestStream;
1794 #[cfg(target_os = "fuchsia")]
1795 type SynchronousProxy = TouchButtonsListenerSynchronousProxy;
1796
1797 const DEBUG_NAME: &'static str = "(anonymous) TouchButtonsListener";
1798}
1799
1800pub trait TouchButtonsListenerProxyInterface: Send + Sync {
1801 type OnEventResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1802 fn r#on_event(
1803 &self,
1804 event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1805 ) -> Self::OnEventResponseFut;
1806}
1807#[derive(Debug)]
1808#[cfg(target_os = "fuchsia")]
1809pub struct TouchButtonsListenerSynchronousProxy {
1810 client: fidl::client::sync::Client,
1811}
1812
1813#[cfg(target_os = "fuchsia")]
1814impl fidl::endpoints::SynchronousProxy for TouchButtonsListenerSynchronousProxy {
1815 type Proxy = TouchButtonsListenerProxy;
1816 type Protocol = TouchButtonsListenerMarker;
1817
1818 fn from_channel(inner: fidl::Channel) -> Self {
1819 Self::new(inner)
1820 }
1821
1822 fn into_channel(self) -> fidl::Channel {
1823 self.client.into_channel()
1824 }
1825
1826 fn as_channel(&self) -> &fidl::Channel {
1827 self.client.as_channel()
1828 }
1829}
1830
1831#[cfg(target_os = "fuchsia")]
1832impl TouchButtonsListenerSynchronousProxy {
1833 pub fn new(channel: fidl::Channel) -> Self {
1834 Self { client: fidl::client::sync::Client::new(channel) }
1835 }
1836
1837 pub fn into_channel(self) -> fidl::Channel {
1838 self.client.into_channel()
1839 }
1840
1841 pub fn wait_for_event(
1844 &self,
1845 deadline: zx::MonotonicInstant,
1846 ) -> Result<TouchButtonsListenerEvent, fidl::Error> {
1847 TouchButtonsListenerEvent::decode(
1848 self.client.wait_for_event::<TouchButtonsListenerMarker>(deadline)?,
1849 )
1850 }
1851
1852 pub fn r#on_event(
1853 &self,
1854 mut event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1855 ___deadline: zx::MonotonicInstant,
1856 ) -> Result<(), fidl::Error> {
1857 let _response = self.client.send_query::<
1858 TouchButtonsListenerOnEventRequest,
1859 fidl::encoding::EmptyPayload,
1860 TouchButtonsListenerMarker,
1861 >(
1862 (&mut event,),
1863 0x476b549161542f92,
1864 fidl::encoding::DynamicFlags::empty(),
1865 ___deadline,
1866 )?;
1867 Ok(_response)
1868 }
1869}
1870
1871#[cfg(target_os = "fuchsia")]
1872impl From<TouchButtonsListenerSynchronousProxy> for zx::NullableHandle {
1873 fn from(value: TouchButtonsListenerSynchronousProxy) -> Self {
1874 value.into_channel().into()
1875 }
1876}
1877
1878#[cfg(target_os = "fuchsia")]
1879impl From<fidl::Channel> for TouchButtonsListenerSynchronousProxy {
1880 fn from(value: fidl::Channel) -> Self {
1881 Self::new(value)
1882 }
1883}
1884
1885#[cfg(target_os = "fuchsia")]
1886impl fidl::endpoints::FromClient for TouchButtonsListenerSynchronousProxy {
1887 type Protocol = TouchButtonsListenerMarker;
1888
1889 fn from_client(value: fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>) -> Self {
1890 Self::new(value.into_channel())
1891 }
1892}
1893
1894#[derive(Debug, Clone)]
1895pub struct TouchButtonsListenerProxy {
1896 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1897}
1898
1899impl fidl::endpoints::Proxy for TouchButtonsListenerProxy {
1900 type Protocol = TouchButtonsListenerMarker;
1901
1902 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1903 Self::new(inner)
1904 }
1905
1906 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1907 self.client.into_channel().map_err(|client| Self { client })
1908 }
1909
1910 fn as_channel(&self) -> &::fidl::AsyncChannel {
1911 self.client.as_channel()
1912 }
1913}
1914
1915impl TouchButtonsListenerProxy {
1916 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1918 let protocol_name =
1919 <TouchButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1920 Self { client: fidl::client::Client::new(channel, protocol_name) }
1921 }
1922
1923 pub fn take_event_stream(&self) -> TouchButtonsListenerEventStream {
1929 TouchButtonsListenerEventStream { event_receiver: self.client.take_event_receiver() }
1930 }
1931
1932 pub fn r#on_event(
1933 &self,
1934 mut event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1935 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1936 TouchButtonsListenerProxyInterface::r#on_event(self, event)
1937 }
1938}
1939
1940impl TouchButtonsListenerProxyInterface for TouchButtonsListenerProxy {
1941 type OnEventResponseFut =
1942 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1943 fn r#on_event(
1944 &self,
1945 mut event: fidl_fuchsia_ui_input::TouchButtonsEvent,
1946 ) -> Self::OnEventResponseFut {
1947 fn _decode(
1948 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1949 ) -> Result<(), fidl::Error> {
1950 let _response = fidl::client::decode_transaction_body::<
1951 fidl::encoding::EmptyPayload,
1952 fidl::encoding::DefaultFuchsiaResourceDialect,
1953 0x476b549161542f92,
1954 >(_buf?)?;
1955 Ok(_response)
1956 }
1957 self.client.send_query_and_decode::<TouchButtonsListenerOnEventRequest, ()>(
1958 (&mut event,),
1959 0x476b549161542f92,
1960 fidl::encoding::DynamicFlags::empty(),
1961 _decode,
1962 )
1963 }
1964}
1965
1966pub struct TouchButtonsListenerEventStream {
1967 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1968}
1969
1970impl std::marker::Unpin for TouchButtonsListenerEventStream {}
1971
1972impl futures::stream::FusedStream for TouchButtonsListenerEventStream {
1973 fn is_terminated(&self) -> bool {
1974 self.event_receiver.is_terminated()
1975 }
1976}
1977
1978impl futures::Stream for TouchButtonsListenerEventStream {
1979 type Item = Result<TouchButtonsListenerEvent, fidl::Error>;
1980
1981 fn poll_next(
1982 mut self: std::pin::Pin<&mut Self>,
1983 cx: &mut std::task::Context<'_>,
1984 ) -> std::task::Poll<Option<Self::Item>> {
1985 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1986 &mut self.event_receiver,
1987 cx
1988 )?) {
1989 Some(buf) => std::task::Poll::Ready(Some(TouchButtonsListenerEvent::decode(buf))),
1990 None => std::task::Poll::Ready(None),
1991 }
1992 }
1993}
1994
1995#[derive(Debug)]
1996pub enum TouchButtonsListenerEvent {
1997 #[non_exhaustive]
1998 _UnknownEvent {
1999 ordinal: u64,
2001 },
2002}
2003
2004impl TouchButtonsListenerEvent {
2005 fn decode(
2007 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2008 ) -> Result<TouchButtonsListenerEvent, fidl::Error> {
2009 let (bytes, _handles) = buf.split_mut();
2010 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2011 debug_assert_eq!(tx_header.tx_id, 0);
2012 match tx_header.ordinal {
2013 _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
2014 Ok(TouchButtonsListenerEvent::_UnknownEvent { ordinal: tx_header.ordinal })
2015 }
2016 _ => Err(fidl::Error::UnknownOrdinal {
2017 ordinal: tx_header.ordinal,
2018 protocol_name:
2019 <TouchButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2020 }),
2021 }
2022 }
2023}
2024
2025pub struct TouchButtonsListenerRequestStream {
2027 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2028 is_terminated: bool,
2029}
2030
2031impl std::marker::Unpin for TouchButtonsListenerRequestStream {}
2032
2033impl futures::stream::FusedStream for TouchButtonsListenerRequestStream {
2034 fn is_terminated(&self) -> bool {
2035 self.is_terminated
2036 }
2037}
2038
2039impl fidl::endpoints::RequestStream for TouchButtonsListenerRequestStream {
2040 type Protocol = TouchButtonsListenerMarker;
2041 type ControlHandle = TouchButtonsListenerControlHandle;
2042
2043 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2044 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2045 }
2046
2047 fn control_handle(&self) -> Self::ControlHandle {
2048 TouchButtonsListenerControlHandle { inner: self.inner.clone() }
2049 }
2050
2051 fn into_inner(
2052 self,
2053 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2054 {
2055 (self.inner, self.is_terminated)
2056 }
2057
2058 fn from_inner(
2059 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2060 is_terminated: bool,
2061 ) -> Self {
2062 Self { inner, is_terminated }
2063 }
2064}
2065
2066impl futures::Stream for TouchButtonsListenerRequestStream {
2067 type Item = Result<TouchButtonsListenerRequest, fidl::Error>;
2068
2069 fn poll_next(
2070 mut self: std::pin::Pin<&mut Self>,
2071 cx: &mut std::task::Context<'_>,
2072 ) -> std::task::Poll<Option<Self::Item>> {
2073 let this = &mut *self;
2074 if this.inner.check_shutdown(cx) {
2075 this.is_terminated = true;
2076 return std::task::Poll::Ready(None);
2077 }
2078 if this.is_terminated {
2079 panic!("polled TouchButtonsListenerRequestStream after completion");
2080 }
2081 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2082 |bytes, handles| {
2083 match this.inner.channel().read_etc(cx, bytes, handles) {
2084 std::task::Poll::Ready(Ok(())) => {}
2085 std::task::Poll::Pending => return std::task::Poll::Pending,
2086 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2087 this.is_terminated = true;
2088 return std::task::Poll::Ready(None);
2089 }
2090 std::task::Poll::Ready(Err(e)) => {
2091 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2092 e.into(),
2093 ))));
2094 }
2095 }
2096
2097 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2099
2100 std::task::Poll::Ready(Some(match header.ordinal {
2101 0x476b549161542f92 => {
2102 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2103 let mut req = fidl::new_empty!(TouchButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2104 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TouchButtonsListenerOnEventRequest>(&header, _body_bytes, handles, &mut req)?;
2105 let control_handle = TouchButtonsListenerControlHandle {
2106 inner: this.inner.clone(),
2107 };
2108 Ok(TouchButtonsListenerRequest::OnEvent {event: req.event,
2109
2110 responder: TouchButtonsListenerOnEventResponder {
2111 control_handle: std::mem::ManuallyDrop::new(control_handle),
2112 tx_id: header.tx_id,
2113 },
2114 })
2115 }
2116 _ if header.tx_id == 0 && header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
2117 Ok(TouchButtonsListenerRequest::_UnknownMethod {
2118 ordinal: header.ordinal,
2119 control_handle: TouchButtonsListenerControlHandle { inner: this.inner.clone() },
2120 method_type: fidl::MethodType::OneWay,
2121 })
2122 }
2123 _ if header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
2124 this.inner.send_framework_err(
2125 fidl::encoding::FrameworkErr::UnknownMethod,
2126 header.tx_id,
2127 header.ordinal,
2128 header.dynamic_flags(),
2129 (bytes, handles),
2130 )?;
2131 Ok(TouchButtonsListenerRequest::_UnknownMethod {
2132 ordinal: header.ordinal,
2133 control_handle: TouchButtonsListenerControlHandle { inner: this.inner.clone() },
2134 method_type: fidl::MethodType::TwoWay,
2135 })
2136 }
2137 _ => Err(fidl::Error::UnknownOrdinal {
2138 ordinal: header.ordinal,
2139 protocol_name: <TouchButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2140 }),
2141 }))
2142 },
2143 )
2144 }
2145}
2146
2147#[derive(Debug)]
2148pub enum TouchButtonsListenerRequest {
2149 OnEvent {
2150 event: fidl_fuchsia_ui_input::TouchButtonsEvent,
2151 responder: TouchButtonsListenerOnEventResponder,
2152 },
2153 #[non_exhaustive]
2155 _UnknownMethod {
2156 ordinal: u64,
2158 control_handle: TouchButtonsListenerControlHandle,
2159 method_type: fidl::MethodType,
2160 },
2161}
2162
2163impl TouchButtonsListenerRequest {
2164 #[allow(irrefutable_let_patterns)]
2165 pub fn into_on_event(
2166 self,
2167 ) -> Option<(fidl_fuchsia_ui_input::TouchButtonsEvent, TouchButtonsListenerOnEventResponder)>
2168 {
2169 if let TouchButtonsListenerRequest::OnEvent { event, responder } = self {
2170 Some((event, responder))
2171 } else {
2172 None
2173 }
2174 }
2175
2176 pub fn method_name(&self) -> &'static str {
2178 match *self {
2179 TouchButtonsListenerRequest::OnEvent { .. } => "on_event",
2180 TouchButtonsListenerRequest::_UnknownMethod {
2181 method_type: fidl::MethodType::OneWay,
2182 ..
2183 } => "unknown one-way method",
2184 TouchButtonsListenerRequest::_UnknownMethod {
2185 method_type: fidl::MethodType::TwoWay,
2186 ..
2187 } => "unknown two-way method",
2188 }
2189 }
2190}
2191
2192#[derive(Debug, Clone)]
2193pub struct TouchButtonsListenerControlHandle {
2194 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2195}
2196
2197impl fidl::endpoints::ControlHandle for TouchButtonsListenerControlHandle {
2198 fn shutdown(&self) {
2199 self.inner.shutdown()
2200 }
2201
2202 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2203 self.inner.shutdown_with_epitaph(status)
2204 }
2205
2206 fn is_closed(&self) -> bool {
2207 self.inner.channel().is_closed()
2208 }
2209 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2210 self.inner.channel().on_closed()
2211 }
2212
2213 #[cfg(target_os = "fuchsia")]
2214 fn signal_peer(
2215 &self,
2216 clear_mask: zx::Signals,
2217 set_mask: zx::Signals,
2218 ) -> Result<(), zx_status::Status> {
2219 use fidl::Peered;
2220 self.inner.channel().signal_peer(clear_mask, set_mask)
2221 }
2222}
2223
2224impl TouchButtonsListenerControlHandle {}
2225
2226#[must_use = "FIDL methods require a response to be sent"]
2227#[derive(Debug)]
2228pub struct TouchButtonsListenerOnEventResponder {
2229 control_handle: std::mem::ManuallyDrop<TouchButtonsListenerControlHandle>,
2230 tx_id: u32,
2231}
2232
2233impl std::ops::Drop for TouchButtonsListenerOnEventResponder {
2237 fn drop(&mut self) {
2238 self.control_handle.shutdown();
2239 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2241 }
2242}
2243
2244impl fidl::endpoints::Responder for TouchButtonsListenerOnEventResponder {
2245 type ControlHandle = TouchButtonsListenerControlHandle;
2246
2247 fn control_handle(&self) -> &TouchButtonsListenerControlHandle {
2248 &self.control_handle
2249 }
2250
2251 fn drop_without_shutdown(mut self) {
2252 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2254 std::mem::forget(self);
2256 }
2257}
2258
2259impl TouchButtonsListenerOnEventResponder {
2260 pub fn send(self) -> Result<(), fidl::Error> {
2264 let _result = self.send_raw();
2265 if _result.is_err() {
2266 self.control_handle.shutdown();
2267 }
2268 self.drop_without_shutdown();
2269 _result
2270 }
2271
2272 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2274 let _result = self.send_raw();
2275 self.drop_without_shutdown();
2276 _result
2277 }
2278
2279 fn send_raw(&self) -> Result<(), fidl::Error> {
2280 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2281 (),
2282 self.tx_id,
2283 0x476b549161542f92,
2284 fidl::encoding::DynamicFlags::empty(),
2285 )
2286 }
2287}
2288
2289mod internal {
2290 use super::*;
2291
2292 impl fidl::encoding::ResourceTypeMarker for DeviceListenerRegistryRegisterListenerRequest {
2293 type Borrowed<'a> = &'a mut Self;
2294 fn take_or_borrow<'a>(
2295 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2296 ) -> Self::Borrowed<'a> {
2297 value
2298 }
2299 }
2300
2301 unsafe impl fidl::encoding::TypeMarker for DeviceListenerRegistryRegisterListenerRequest {
2302 type Owned = Self;
2303
2304 #[inline(always)]
2305 fn inline_align(_context: fidl::encoding::Context) -> usize {
2306 4
2307 }
2308
2309 #[inline(always)]
2310 fn inline_size(_context: fidl::encoding::Context) -> usize {
2311 4
2312 }
2313 }
2314
2315 unsafe impl
2316 fidl::encoding::Encode<
2317 DeviceListenerRegistryRegisterListenerRequest,
2318 fidl::encoding::DefaultFuchsiaResourceDialect,
2319 > for &mut DeviceListenerRegistryRegisterListenerRequest
2320 {
2321 #[inline]
2322 unsafe fn encode(
2323 self,
2324 encoder: &mut fidl::encoding::Encoder<
2325 '_,
2326 fidl::encoding::DefaultFuchsiaResourceDialect,
2327 >,
2328 offset: usize,
2329 _depth: fidl::encoding::Depth,
2330 ) -> fidl::Result<()> {
2331 encoder.debug_check_bounds::<DeviceListenerRegistryRegisterListenerRequest>(offset);
2332 fidl::encoding::Encode::<
2334 DeviceListenerRegistryRegisterListenerRequest,
2335 fidl::encoding::DefaultFuchsiaResourceDialect,
2336 >::encode(
2337 (
2338 <fidl::encoding::Endpoint<
2339 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2340 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
2341 &mut self.listener
2342 ),
2343 ),
2344 encoder,
2345 offset,
2346 _depth,
2347 )
2348 }
2349 }
2350 unsafe impl<
2351 T0: fidl::encoding::Encode<
2352 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2353 fidl::encoding::DefaultFuchsiaResourceDialect,
2354 >,
2355 >
2356 fidl::encoding::Encode<
2357 DeviceListenerRegistryRegisterListenerRequest,
2358 fidl::encoding::DefaultFuchsiaResourceDialect,
2359 > for (T0,)
2360 {
2361 #[inline]
2362 unsafe fn encode(
2363 self,
2364 encoder: &mut fidl::encoding::Encoder<
2365 '_,
2366 fidl::encoding::DefaultFuchsiaResourceDialect,
2367 >,
2368 offset: usize,
2369 depth: fidl::encoding::Depth,
2370 ) -> fidl::Result<()> {
2371 encoder.debug_check_bounds::<DeviceListenerRegistryRegisterListenerRequest>(offset);
2372 self.0.encode(encoder, offset + 0, depth)?;
2376 Ok(())
2377 }
2378 }
2379
2380 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2381 for DeviceListenerRegistryRegisterListenerRequest
2382 {
2383 #[inline(always)]
2384 fn new_empty() -> Self {
2385 Self {
2386 listener: fidl::new_empty!(
2387 fidl::encoding::Endpoint<
2388 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2389 >,
2390 fidl::encoding::DefaultFuchsiaResourceDialect
2391 ),
2392 }
2393 }
2394
2395 #[inline]
2396 unsafe fn decode(
2397 &mut self,
2398 decoder: &mut fidl::encoding::Decoder<
2399 '_,
2400 fidl::encoding::DefaultFuchsiaResourceDialect,
2401 >,
2402 offset: usize,
2403 _depth: fidl::encoding::Depth,
2404 ) -> fidl::Result<()> {
2405 decoder.debug_check_bounds::<Self>(offset);
2406 fidl::decode!(
2408 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2409 fidl::encoding::DefaultFuchsiaResourceDialect,
2410 &mut self.listener,
2411 decoder,
2412 offset + 0,
2413 _depth
2414 )?;
2415 Ok(())
2416 }
2417 }
2418
2419 impl fidl::encoding::ResourceTypeMarker
2420 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2421 {
2422 type Borrowed<'a> = &'a mut Self;
2423 fn take_or_borrow<'a>(
2424 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2425 ) -> Self::Borrowed<'a> {
2426 value
2427 }
2428 }
2429
2430 unsafe impl fidl::encoding::TypeMarker
2431 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2432 {
2433 type Owned = Self;
2434
2435 #[inline(always)]
2436 fn inline_align(_context: fidl::encoding::Context) -> usize {
2437 4
2438 }
2439
2440 #[inline(always)]
2441 fn inline_size(_context: fidl::encoding::Context) -> usize {
2442 4
2443 }
2444 }
2445
2446 unsafe impl
2447 fidl::encoding::Encode<
2448 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
2449 fidl::encoding::DefaultFuchsiaResourceDialect,
2450 > for &mut DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2451 {
2452 #[inline]
2453 unsafe fn encode(
2454 self,
2455 encoder: &mut fidl::encoding::Encoder<
2456 '_,
2457 fidl::encoding::DefaultFuchsiaResourceDialect,
2458 >,
2459 offset: usize,
2460 _depth: fidl::encoding::Depth,
2461 ) -> fidl::Result<()> {
2462 encoder
2463 .debug_check_bounds::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
2464 offset,
2465 );
2466 fidl::encoding::Encode::<
2468 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
2469 fidl::encoding::DefaultFuchsiaResourceDialect,
2470 >::encode(
2471 (
2472 <fidl::encoding::Endpoint<
2473 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2474 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
2475 &mut self.listener
2476 ),
2477 ),
2478 encoder,
2479 offset,
2480 _depth,
2481 )
2482 }
2483 }
2484 unsafe impl<
2485 T0: fidl::encoding::Encode<
2486 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2487 fidl::encoding::DefaultFuchsiaResourceDialect,
2488 >,
2489 >
2490 fidl::encoding::Encode<
2491 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
2492 fidl::encoding::DefaultFuchsiaResourceDialect,
2493 > for (T0,)
2494 {
2495 #[inline]
2496 unsafe fn encode(
2497 self,
2498 encoder: &mut fidl::encoding::Encoder<
2499 '_,
2500 fidl::encoding::DefaultFuchsiaResourceDialect,
2501 >,
2502 offset: usize,
2503 depth: fidl::encoding::Depth,
2504 ) -> fidl::Result<()> {
2505 encoder
2506 .debug_check_bounds::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
2507 offset,
2508 );
2509 self.0.encode(encoder, offset + 0, depth)?;
2513 Ok(())
2514 }
2515 }
2516
2517 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2518 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
2519 {
2520 #[inline(always)]
2521 fn new_empty() -> Self {
2522 Self {
2523 listener: fidl::new_empty!(
2524 fidl::encoding::Endpoint<
2525 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
2526 >,
2527 fidl::encoding::DefaultFuchsiaResourceDialect
2528 ),
2529 }
2530 }
2531
2532 #[inline]
2533 unsafe fn decode(
2534 &mut self,
2535 decoder: &mut fidl::encoding::Decoder<
2536 '_,
2537 fidl::encoding::DefaultFuchsiaResourceDialect,
2538 >,
2539 offset: usize,
2540 _depth: fidl::encoding::Depth,
2541 ) -> fidl::Result<()> {
2542 decoder.debug_check_bounds::<Self>(offset);
2543 fidl::decode!(
2545 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
2546 fidl::encoding::DefaultFuchsiaResourceDialect,
2547 &mut self.listener,
2548 decoder,
2549 offset + 0,
2550 _depth
2551 )?;
2552 Ok(())
2553 }
2554 }
2555
2556 impl fidl::encoding::ResourceTypeMarker
2557 for DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2558 {
2559 type Borrowed<'a> = &'a mut Self;
2560 fn take_or_borrow<'a>(
2561 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2562 ) -> Self::Borrowed<'a> {
2563 value
2564 }
2565 }
2566
2567 unsafe impl fidl::encoding::TypeMarker
2568 for DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2569 {
2570 type Owned = Self;
2571
2572 #[inline(always)]
2573 fn inline_align(_context: fidl::encoding::Context) -> usize {
2574 4
2575 }
2576
2577 #[inline(always)]
2578 fn inline_size(_context: fidl::encoding::Context) -> usize {
2579 4
2580 }
2581 }
2582
2583 unsafe impl
2584 fidl::encoding::Encode<
2585 DeviceListenerRegistryRegisterTouchButtonsListenerRequest,
2586 fidl::encoding::DefaultFuchsiaResourceDialect,
2587 > for &mut DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2588 {
2589 #[inline]
2590 unsafe fn encode(
2591 self,
2592 encoder: &mut fidl::encoding::Encoder<
2593 '_,
2594 fidl::encoding::DefaultFuchsiaResourceDialect,
2595 >,
2596 offset: usize,
2597 _depth: fidl::encoding::Depth,
2598 ) -> fidl::Result<()> {
2599 encoder
2600 .debug_check_bounds::<DeviceListenerRegistryRegisterTouchButtonsListenerRequest>(
2601 offset,
2602 );
2603 fidl::encoding::Encode::<
2605 DeviceListenerRegistryRegisterTouchButtonsListenerRequest,
2606 fidl::encoding::DefaultFuchsiaResourceDialect,
2607 >::encode(
2608 (
2609 <fidl::encoding::Endpoint<
2610 fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
2611 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
2612 &mut self.listener
2613 ),
2614 ),
2615 encoder,
2616 offset,
2617 _depth,
2618 )
2619 }
2620 }
2621 unsafe impl<
2622 T0: fidl::encoding::Encode<
2623 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>>,
2624 fidl::encoding::DefaultFuchsiaResourceDialect,
2625 >,
2626 >
2627 fidl::encoding::Encode<
2628 DeviceListenerRegistryRegisterTouchButtonsListenerRequest,
2629 fidl::encoding::DefaultFuchsiaResourceDialect,
2630 > for (T0,)
2631 {
2632 #[inline]
2633 unsafe fn encode(
2634 self,
2635 encoder: &mut fidl::encoding::Encoder<
2636 '_,
2637 fidl::encoding::DefaultFuchsiaResourceDialect,
2638 >,
2639 offset: usize,
2640 depth: fidl::encoding::Depth,
2641 ) -> fidl::Result<()> {
2642 encoder
2643 .debug_check_bounds::<DeviceListenerRegistryRegisterTouchButtonsListenerRequest>(
2644 offset,
2645 );
2646 self.0.encode(encoder, offset + 0, depth)?;
2650 Ok(())
2651 }
2652 }
2653
2654 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2655 for DeviceListenerRegistryRegisterTouchButtonsListenerRequest
2656 {
2657 #[inline(always)]
2658 fn new_empty() -> Self {
2659 Self {
2660 listener: fidl::new_empty!(
2661 fidl::encoding::Endpoint<
2662 fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>,
2663 >,
2664 fidl::encoding::DefaultFuchsiaResourceDialect
2665 ),
2666 }
2667 }
2668
2669 #[inline]
2670 unsafe fn decode(
2671 &mut self,
2672 decoder: &mut fidl::encoding::Decoder<
2673 '_,
2674 fidl::encoding::DefaultFuchsiaResourceDialect,
2675 >,
2676 offset: usize,
2677 _depth: fidl::encoding::Depth,
2678 ) -> fidl::Result<()> {
2679 decoder.debug_check_bounds::<Self>(offset);
2680 fidl::decode!(
2682 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<TouchButtonsListenerMarker>>,
2683 fidl::encoding::DefaultFuchsiaResourceDialect,
2684 &mut self.listener,
2685 decoder,
2686 offset + 0,
2687 _depth
2688 )?;
2689 Ok(())
2690 }
2691 }
2692
2693 impl fidl::encoding::ResourceTypeMarker for MediaButtonsListenerOnEventRequest {
2694 type Borrowed<'a> = &'a mut Self;
2695 fn take_or_borrow<'a>(
2696 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2697 ) -> Self::Borrowed<'a> {
2698 value
2699 }
2700 }
2701
2702 unsafe impl fidl::encoding::TypeMarker for MediaButtonsListenerOnEventRequest {
2703 type Owned = Self;
2704
2705 #[inline(always)]
2706 fn inline_align(_context: fidl::encoding::Context) -> usize {
2707 8
2708 }
2709
2710 #[inline(always)]
2711 fn inline_size(_context: fidl::encoding::Context) -> usize {
2712 16
2713 }
2714 }
2715
2716 unsafe impl
2717 fidl::encoding::Encode<
2718 MediaButtonsListenerOnEventRequest,
2719 fidl::encoding::DefaultFuchsiaResourceDialect,
2720 > for &mut MediaButtonsListenerOnEventRequest
2721 {
2722 #[inline]
2723 unsafe fn encode(
2724 self,
2725 encoder: &mut fidl::encoding::Encoder<
2726 '_,
2727 fidl::encoding::DefaultFuchsiaResourceDialect,
2728 >,
2729 offset: usize,
2730 _depth: fidl::encoding::Depth,
2731 ) -> fidl::Result<()> {
2732 encoder.debug_check_bounds::<MediaButtonsListenerOnEventRequest>(offset);
2733 fidl::encoding::Encode::<MediaButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2735 (
2736 <fidl_fuchsia_ui_input::MediaButtonsEvent as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.event),
2737 ),
2738 encoder, offset, _depth
2739 )
2740 }
2741 }
2742 unsafe impl<
2743 T0: fidl::encoding::Encode<
2744 fidl_fuchsia_ui_input::MediaButtonsEvent,
2745 fidl::encoding::DefaultFuchsiaResourceDialect,
2746 >,
2747 >
2748 fidl::encoding::Encode<
2749 MediaButtonsListenerOnEventRequest,
2750 fidl::encoding::DefaultFuchsiaResourceDialect,
2751 > for (T0,)
2752 {
2753 #[inline]
2754 unsafe fn encode(
2755 self,
2756 encoder: &mut fidl::encoding::Encoder<
2757 '_,
2758 fidl::encoding::DefaultFuchsiaResourceDialect,
2759 >,
2760 offset: usize,
2761 depth: fidl::encoding::Depth,
2762 ) -> fidl::Result<()> {
2763 encoder.debug_check_bounds::<MediaButtonsListenerOnEventRequest>(offset);
2764 self.0.encode(encoder, offset + 0, depth)?;
2768 Ok(())
2769 }
2770 }
2771
2772 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2773 for MediaButtonsListenerOnEventRequest
2774 {
2775 #[inline(always)]
2776 fn new_empty() -> Self {
2777 Self {
2778 event: fidl::new_empty!(
2779 fidl_fuchsia_ui_input::MediaButtonsEvent,
2780 fidl::encoding::DefaultFuchsiaResourceDialect
2781 ),
2782 }
2783 }
2784
2785 #[inline]
2786 unsafe fn decode(
2787 &mut self,
2788 decoder: &mut fidl::encoding::Decoder<
2789 '_,
2790 fidl::encoding::DefaultFuchsiaResourceDialect,
2791 >,
2792 offset: usize,
2793 _depth: fidl::encoding::Depth,
2794 ) -> fidl::Result<()> {
2795 decoder.debug_check_bounds::<Self>(offset);
2796 fidl::decode!(
2798 fidl_fuchsia_ui_input::MediaButtonsEvent,
2799 fidl::encoding::DefaultFuchsiaResourceDialect,
2800 &mut self.event,
2801 decoder,
2802 offset + 0,
2803 _depth
2804 )?;
2805 Ok(())
2806 }
2807 }
2808
2809 impl fidl::encoding::ResourceTypeMarker for MediaButtonsListenerOnMediaButtonsEventRequest {
2810 type Borrowed<'a> = &'a mut Self;
2811 fn take_or_borrow<'a>(
2812 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2813 ) -> Self::Borrowed<'a> {
2814 value
2815 }
2816 }
2817
2818 unsafe impl fidl::encoding::TypeMarker for MediaButtonsListenerOnMediaButtonsEventRequest {
2819 type Owned = Self;
2820
2821 #[inline(always)]
2822 fn inline_align(_context: fidl::encoding::Context) -> usize {
2823 8
2824 }
2825
2826 #[inline(always)]
2827 fn inline_size(_context: fidl::encoding::Context) -> usize {
2828 16
2829 }
2830 }
2831
2832 unsafe impl
2833 fidl::encoding::Encode<
2834 MediaButtonsListenerOnMediaButtonsEventRequest,
2835 fidl::encoding::DefaultFuchsiaResourceDialect,
2836 > for &mut MediaButtonsListenerOnMediaButtonsEventRequest
2837 {
2838 #[inline]
2839 unsafe fn encode(
2840 self,
2841 encoder: &mut fidl::encoding::Encoder<
2842 '_,
2843 fidl::encoding::DefaultFuchsiaResourceDialect,
2844 >,
2845 offset: usize,
2846 _depth: fidl::encoding::Depth,
2847 ) -> fidl::Result<()> {
2848 encoder.debug_check_bounds::<MediaButtonsListenerOnMediaButtonsEventRequest>(offset);
2849 fidl::encoding::Encode::<MediaButtonsListenerOnMediaButtonsEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2851 (
2852 <fidl_fuchsia_ui_input::MediaButtonsEvent as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.event),
2853 ),
2854 encoder, offset, _depth
2855 )
2856 }
2857 }
2858 unsafe impl<
2859 T0: fidl::encoding::Encode<
2860 fidl_fuchsia_ui_input::MediaButtonsEvent,
2861 fidl::encoding::DefaultFuchsiaResourceDialect,
2862 >,
2863 >
2864 fidl::encoding::Encode<
2865 MediaButtonsListenerOnMediaButtonsEventRequest,
2866 fidl::encoding::DefaultFuchsiaResourceDialect,
2867 > for (T0,)
2868 {
2869 #[inline]
2870 unsafe fn encode(
2871 self,
2872 encoder: &mut fidl::encoding::Encoder<
2873 '_,
2874 fidl::encoding::DefaultFuchsiaResourceDialect,
2875 >,
2876 offset: usize,
2877 depth: fidl::encoding::Depth,
2878 ) -> fidl::Result<()> {
2879 encoder.debug_check_bounds::<MediaButtonsListenerOnMediaButtonsEventRequest>(offset);
2880 self.0.encode(encoder, offset + 0, depth)?;
2884 Ok(())
2885 }
2886 }
2887
2888 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2889 for MediaButtonsListenerOnMediaButtonsEventRequest
2890 {
2891 #[inline(always)]
2892 fn new_empty() -> Self {
2893 Self {
2894 event: fidl::new_empty!(
2895 fidl_fuchsia_ui_input::MediaButtonsEvent,
2896 fidl::encoding::DefaultFuchsiaResourceDialect
2897 ),
2898 }
2899 }
2900
2901 #[inline]
2902 unsafe fn decode(
2903 &mut self,
2904 decoder: &mut fidl::encoding::Decoder<
2905 '_,
2906 fidl::encoding::DefaultFuchsiaResourceDialect,
2907 >,
2908 offset: usize,
2909 _depth: fidl::encoding::Depth,
2910 ) -> fidl::Result<()> {
2911 decoder.debug_check_bounds::<Self>(offset);
2912 fidl::decode!(
2914 fidl_fuchsia_ui_input::MediaButtonsEvent,
2915 fidl::encoding::DefaultFuchsiaResourceDialect,
2916 &mut self.event,
2917 decoder,
2918 offset + 0,
2919 _depth
2920 )?;
2921 Ok(())
2922 }
2923 }
2924
2925 impl fidl::encoding::ResourceTypeMarker for TouchButtonsListenerOnEventRequest {
2926 type Borrowed<'a> = &'a mut Self;
2927 fn take_or_borrow<'a>(
2928 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2929 ) -> Self::Borrowed<'a> {
2930 value
2931 }
2932 }
2933
2934 unsafe impl fidl::encoding::TypeMarker for TouchButtonsListenerOnEventRequest {
2935 type Owned = Self;
2936
2937 #[inline(always)]
2938 fn inline_align(_context: fidl::encoding::Context) -> usize {
2939 8
2940 }
2941
2942 #[inline(always)]
2943 fn inline_size(_context: fidl::encoding::Context) -> usize {
2944 16
2945 }
2946 }
2947
2948 unsafe impl
2949 fidl::encoding::Encode<
2950 TouchButtonsListenerOnEventRequest,
2951 fidl::encoding::DefaultFuchsiaResourceDialect,
2952 > for &mut TouchButtonsListenerOnEventRequest
2953 {
2954 #[inline]
2955 unsafe fn encode(
2956 self,
2957 encoder: &mut fidl::encoding::Encoder<
2958 '_,
2959 fidl::encoding::DefaultFuchsiaResourceDialect,
2960 >,
2961 offset: usize,
2962 _depth: fidl::encoding::Depth,
2963 ) -> fidl::Result<()> {
2964 encoder.debug_check_bounds::<TouchButtonsListenerOnEventRequest>(offset);
2965 fidl::encoding::Encode::<TouchButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2967 (
2968 <fidl_fuchsia_ui_input::TouchButtonsEvent as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.event),
2969 ),
2970 encoder, offset, _depth
2971 )
2972 }
2973 }
2974 unsafe impl<
2975 T0: fidl::encoding::Encode<
2976 fidl_fuchsia_ui_input::TouchButtonsEvent,
2977 fidl::encoding::DefaultFuchsiaResourceDialect,
2978 >,
2979 >
2980 fidl::encoding::Encode<
2981 TouchButtonsListenerOnEventRequest,
2982 fidl::encoding::DefaultFuchsiaResourceDialect,
2983 > for (T0,)
2984 {
2985 #[inline]
2986 unsafe fn encode(
2987 self,
2988 encoder: &mut fidl::encoding::Encoder<
2989 '_,
2990 fidl::encoding::DefaultFuchsiaResourceDialect,
2991 >,
2992 offset: usize,
2993 depth: fidl::encoding::Depth,
2994 ) -> fidl::Result<()> {
2995 encoder.debug_check_bounds::<TouchButtonsListenerOnEventRequest>(offset);
2996 self.0.encode(encoder, offset + 0, depth)?;
3000 Ok(())
3001 }
3002 }
3003
3004 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3005 for TouchButtonsListenerOnEventRequest
3006 {
3007 #[inline(always)]
3008 fn new_empty() -> Self {
3009 Self {
3010 event: fidl::new_empty!(
3011 fidl_fuchsia_ui_input::TouchButtonsEvent,
3012 fidl::encoding::DefaultFuchsiaResourceDialect
3013 ),
3014 }
3015 }
3016
3017 #[inline]
3018 unsafe fn decode(
3019 &mut self,
3020 decoder: &mut fidl::encoding::Decoder<
3021 '_,
3022 fidl::encoding::DefaultFuchsiaResourceDialect,
3023 >,
3024 offset: usize,
3025 _depth: fidl::encoding::Depth,
3026 ) -> fidl::Result<()> {
3027 decoder.debug_check_bounds::<Self>(offset);
3028 fidl::decode!(
3030 fidl_fuchsia_ui_input::TouchButtonsEvent,
3031 fidl::encoding::DefaultFuchsiaResourceDialect,
3032 &mut self.event,
3033 decoder,
3034 offset + 0,
3035 _depth
3036 )?;
3037 Ok(())
3038 }
3039 }
3040}