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