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