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, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
35pub struct DeviceListenerRegistryMarker;
36
37impl fidl::endpoints::ProtocolMarker for DeviceListenerRegistryMarker {
38 type Proxy = DeviceListenerRegistryProxy;
39 type RequestStream = DeviceListenerRegistryRequestStream;
40 #[cfg(target_os = "fuchsia")]
41 type SynchronousProxy = DeviceListenerRegistrySynchronousProxy;
42
43 const DEBUG_NAME: &'static str = "fuchsia.ui.policy.DeviceListenerRegistry";
44}
45impl fidl::endpoints::DiscoverableProtocolMarker for DeviceListenerRegistryMarker {}
46
47pub trait DeviceListenerRegistryProxyInterface: Send + Sync {
48 fn r#register_media_buttons_listener(
49 &self,
50 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
51 ) -> Result<(), fidl::Error>;
52 type RegisterListenerResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
53 fn r#register_listener(
54 &self,
55 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
56 ) -> Self::RegisterListenerResponseFut;
57}
58#[derive(Debug)]
59#[cfg(target_os = "fuchsia")]
60pub struct DeviceListenerRegistrySynchronousProxy {
61 client: fidl::client::sync::Client,
62}
63
64#[cfg(target_os = "fuchsia")]
65impl fidl::endpoints::SynchronousProxy for DeviceListenerRegistrySynchronousProxy {
66 type Proxy = DeviceListenerRegistryProxy;
67 type Protocol = DeviceListenerRegistryMarker;
68
69 fn from_channel(inner: fidl::Channel) -> Self {
70 Self::new(inner)
71 }
72
73 fn into_channel(self) -> fidl::Channel {
74 self.client.into_channel()
75 }
76
77 fn as_channel(&self) -> &fidl::Channel {
78 self.client.as_channel()
79 }
80}
81
82#[cfg(target_os = "fuchsia")]
83impl DeviceListenerRegistrySynchronousProxy {
84 pub fn new(channel: fidl::Channel) -> Self {
85 let protocol_name =
86 <DeviceListenerRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
87 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
88 }
89
90 pub fn into_channel(self) -> fidl::Channel {
91 self.client.into_channel()
92 }
93
94 pub fn wait_for_event(
97 &self,
98 deadline: zx::MonotonicInstant,
99 ) -> Result<DeviceListenerRegistryEvent, fidl::Error> {
100 DeviceListenerRegistryEvent::decode(self.client.wait_for_event(deadline)?)
101 }
102
103 pub fn r#register_media_buttons_listener(
106 &self,
107 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
108 ) -> Result<(), fidl::Error> {
109 self.client.send::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
110 (listener,),
111 0x3826318765c72e70,
112 fidl::encoding::DynamicFlags::empty(),
113 )
114 }
115
116 pub fn r#register_listener(
121 &self,
122 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
123 ___deadline: zx::MonotonicInstant,
124 ) -> Result<(), fidl::Error> {
125 let _response = self.client.send_query::<
126 DeviceListenerRegistryRegisterListenerRequest,
127 fidl::encoding::EmptyPayload,
128 >(
129 (listener,),
130 0x2f9e7eea89485a7b,
131 fidl::encoding::DynamicFlags::empty(),
132 ___deadline,
133 )?;
134 Ok(_response)
135 }
136}
137
138#[derive(Debug, Clone)]
139pub struct DeviceListenerRegistryProxy {
140 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
141}
142
143impl fidl::endpoints::Proxy for DeviceListenerRegistryProxy {
144 type Protocol = DeviceListenerRegistryMarker;
145
146 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
147 Self::new(inner)
148 }
149
150 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
151 self.client.into_channel().map_err(|client| Self { client })
152 }
153
154 fn as_channel(&self) -> &::fidl::AsyncChannel {
155 self.client.as_channel()
156 }
157}
158
159impl DeviceListenerRegistryProxy {
160 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
162 let protocol_name =
163 <DeviceListenerRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
164 Self { client: fidl::client::Client::new(channel, protocol_name) }
165 }
166
167 pub fn take_event_stream(&self) -> DeviceListenerRegistryEventStream {
173 DeviceListenerRegistryEventStream { event_receiver: self.client.take_event_receiver() }
174 }
175
176 pub fn r#register_media_buttons_listener(
179 &self,
180 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
181 ) -> Result<(), fidl::Error> {
182 DeviceListenerRegistryProxyInterface::r#register_media_buttons_listener(self, listener)
183 }
184
185 pub fn r#register_listener(
190 &self,
191 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
192 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
193 DeviceListenerRegistryProxyInterface::r#register_listener(self, listener)
194 }
195}
196
197impl DeviceListenerRegistryProxyInterface for DeviceListenerRegistryProxy {
198 fn r#register_media_buttons_listener(
199 &self,
200 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
201 ) -> Result<(), fidl::Error> {
202 self.client.send::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
203 (listener,),
204 0x3826318765c72e70,
205 fidl::encoding::DynamicFlags::empty(),
206 )
207 }
208
209 type RegisterListenerResponseFut =
210 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
211 fn r#register_listener(
212 &self,
213 mut listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
214 ) -> Self::RegisterListenerResponseFut {
215 fn _decode(
216 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
217 ) -> Result<(), fidl::Error> {
218 let _response = fidl::client::decode_transaction_body::<
219 fidl::encoding::EmptyPayload,
220 fidl::encoding::DefaultFuchsiaResourceDialect,
221 0x2f9e7eea89485a7b,
222 >(_buf?)?;
223 Ok(_response)
224 }
225 self.client.send_query_and_decode::<DeviceListenerRegistryRegisterListenerRequest, ()>(
226 (listener,),
227 0x2f9e7eea89485a7b,
228 fidl::encoding::DynamicFlags::empty(),
229 _decode,
230 )
231 }
232}
233
234pub struct DeviceListenerRegistryEventStream {
235 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
236}
237
238impl std::marker::Unpin for DeviceListenerRegistryEventStream {}
239
240impl futures::stream::FusedStream for DeviceListenerRegistryEventStream {
241 fn is_terminated(&self) -> bool {
242 self.event_receiver.is_terminated()
243 }
244}
245
246impl futures::Stream for DeviceListenerRegistryEventStream {
247 type Item = Result<DeviceListenerRegistryEvent, fidl::Error>;
248
249 fn poll_next(
250 mut self: std::pin::Pin<&mut Self>,
251 cx: &mut std::task::Context<'_>,
252 ) -> std::task::Poll<Option<Self::Item>> {
253 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
254 &mut self.event_receiver,
255 cx
256 )?) {
257 Some(buf) => std::task::Poll::Ready(Some(DeviceListenerRegistryEvent::decode(buf))),
258 None => std::task::Poll::Ready(None),
259 }
260 }
261}
262
263#[derive(Debug)]
264pub enum DeviceListenerRegistryEvent {}
265
266impl DeviceListenerRegistryEvent {
267 fn decode(
269 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
270 ) -> Result<DeviceListenerRegistryEvent, fidl::Error> {
271 let (bytes, _handles) = buf.split_mut();
272 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
273 debug_assert_eq!(tx_header.tx_id, 0);
274 match tx_header.ordinal {
275 _ => Err(fidl::Error::UnknownOrdinal {
276 ordinal: tx_header.ordinal,
277 protocol_name:
278 <DeviceListenerRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
279 }),
280 }
281 }
282}
283
284pub struct DeviceListenerRegistryRequestStream {
286 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
287 is_terminated: bool,
288}
289
290impl std::marker::Unpin for DeviceListenerRegistryRequestStream {}
291
292impl futures::stream::FusedStream for DeviceListenerRegistryRequestStream {
293 fn is_terminated(&self) -> bool {
294 self.is_terminated
295 }
296}
297
298impl fidl::endpoints::RequestStream for DeviceListenerRegistryRequestStream {
299 type Protocol = DeviceListenerRegistryMarker;
300 type ControlHandle = DeviceListenerRegistryControlHandle;
301
302 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
303 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
304 }
305
306 fn control_handle(&self) -> Self::ControlHandle {
307 DeviceListenerRegistryControlHandle { inner: self.inner.clone() }
308 }
309
310 fn into_inner(
311 self,
312 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
313 {
314 (self.inner, self.is_terminated)
315 }
316
317 fn from_inner(
318 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
319 is_terminated: bool,
320 ) -> Self {
321 Self { inner, is_terminated }
322 }
323}
324
325impl futures::Stream for DeviceListenerRegistryRequestStream {
326 type Item = Result<DeviceListenerRegistryRequest, fidl::Error>;
327
328 fn poll_next(
329 mut self: std::pin::Pin<&mut Self>,
330 cx: &mut std::task::Context<'_>,
331 ) -> std::task::Poll<Option<Self::Item>> {
332 let this = &mut *self;
333 if this.inner.check_shutdown(cx) {
334 this.is_terminated = true;
335 return std::task::Poll::Ready(None);
336 }
337 if this.is_terminated {
338 panic!("polled DeviceListenerRegistryRequestStream after completion");
339 }
340 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
341 |bytes, handles| {
342 match this.inner.channel().read_etc(cx, bytes, handles) {
343 std::task::Poll::Ready(Ok(())) => {}
344 std::task::Poll::Pending => return std::task::Poll::Pending,
345 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
346 this.is_terminated = true;
347 return std::task::Poll::Ready(None);
348 }
349 std::task::Poll::Ready(Err(e)) => {
350 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
351 e.into(),
352 ))))
353 }
354 }
355
356 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
358
359 std::task::Poll::Ready(Some(match header.ordinal {
360 0x3826318765c72e70 => {
361 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
362 let mut req = fidl::new_empty!(DeviceListenerRegistryRegisterMediaButtonsListenerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
363 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(&header, _body_bytes, handles, &mut req)?;
364 let control_handle = DeviceListenerRegistryControlHandle {
365 inner: this.inner.clone(),
366 };
367 Ok(DeviceListenerRegistryRequest::RegisterMediaButtonsListener {listener: req.listener,
368
369 control_handle,
370 })
371 }
372 0x2f9e7eea89485a7b => {
373 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
374 let mut req = fidl::new_empty!(DeviceListenerRegistryRegisterListenerRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
375 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DeviceListenerRegistryRegisterListenerRequest>(&header, _body_bytes, handles, &mut req)?;
376 let control_handle = DeviceListenerRegistryControlHandle {
377 inner: this.inner.clone(),
378 };
379 Ok(DeviceListenerRegistryRequest::RegisterListener {listener: req.listener,
380
381 responder: DeviceListenerRegistryRegisterListenerResponder {
382 control_handle: std::mem::ManuallyDrop::new(control_handle),
383 tx_id: header.tx_id,
384 },
385 })
386 }
387 _ => Err(fidl::Error::UnknownOrdinal {
388 ordinal: header.ordinal,
389 protocol_name: <DeviceListenerRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
390 }),
391 }))
392 },
393 )
394 }
395}
396
397#[derive(Debug)]
399pub enum DeviceListenerRegistryRequest {
400 RegisterMediaButtonsListener {
403 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
404 control_handle: DeviceListenerRegistryControlHandle,
405 },
406 RegisterListener {
411 listener: fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
412 responder: DeviceListenerRegistryRegisterListenerResponder,
413 },
414}
415
416impl DeviceListenerRegistryRequest {
417 #[allow(irrefutable_let_patterns)]
418 pub fn into_register_media_buttons_listener(
419 self,
420 ) -> Option<(
421 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
422 DeviceListenerRegistryControlHandle,
423 )> {
424 if let DeviceListenerRegistryRequest::RegisterMediaButtonsListener {
425 listener,
426 control_handle,
427 } = self
428 {
429 Some((listener, control_handle))
430 } else {
431 None
432 }
433 }
434
435 #[allow(irrefutable_let_patterns)]
436 pub fn into_register_listener(
437 self,
438 ) -> Option<(
439 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
440 DeviceListenerRegistryRegisterListenerResponder,
441 )> {
442 if let DeviceListenerRegistryRequest::RegisterListener { listener, responder } = self {
443 Some((listener, responder))
444 } else {
445 None
446 }
447 }
448
449 pub fn method_name(&self) -> &'static str {
451 match *self {
452 DeviceListenerRegistryRequest::RegisterMediaButtonsListener { .. } => {
453 "register_media_buttons_listener"
454 }
455 DeviceListenerRegistryRequest::RegisterListener { .. } => "register_listener",
456 }
457 }
458}
459
460#[derive(Debug, Clone)]
461pub struct DeviceListenerRegistryControlHandle {
462 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
463}
464
465impl fidl::endpoints::ControlHandle for DeviceListenerRegistryControlHandle {
466 fn shutdown(&self) {
467 self.inner.shutdown()
468 }
469 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
470 self.inner.shutdown_with_epitaph(status)
471 }
472
473 fn is_closed(&self) -> bool {
474 self.inner.channel().is_closed()
475 }
476 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
477 self.inner.channel().on_closed()
478 }
479
480 #[cfg(target_os = "fuchsia")]
481 fn signal_peer(
482 &self,
483 clear_mask: zx::Signals,
484 set_mask: zx::Signals,
485 ) -> Result<(), zx_status::Status> {
486 use fidl::Peered;
487 self.inner.channel().signal_peer(clear_mask, set_mask)
488 }
489}
490
491impl DeviceListenerRegistryControlHandle {}
492
493#[must_use = "FIDL methods require a response to be sent"]
494#[derive(Debug)]
495pub struct DeviceListenerRegistryRegisterListenerResponder {
496 control_handle: std::mem::ManuallyDrop<DeviceListenerRegistryControlHandle>,
497 tx_id: u32,
498}
499
500impl std::ops::Drop for DeviceListenerRegistryRegisterListenerResponder {
504 fn drop(&mut self) {
505 self.control_handle.shutdown();
506 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
508 }
509}
510
511impl fidl::endpoints::Responder for DeviceListenerRegistryRegisterListenerResponder {
512 type ControlHandle = DeviceListenerRegistryControlHandle;
513
514 fn control_handle(&self) -> &DeviceListenerRegistryControlHandle {
515 &self.control_handle
516 }
517
518 fn drop_without_shutdown(mut self) {
519 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
521 std::mem::forget(self);
523 }
524}
525
526impl DeviceListenerRegistryRegisterListenerResponder {
527 pub fn send(self) -> Result<(), fidl::Error> {
531 let _result = self.send_raw();
532 if _result.is_err() {
533 self.control_handle.shutdown();
534 }
535 self.drop_without_shutdown();
536 _result
537 }
538
539 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
541 let _result = self.send_raw();
542 self.drop_without_shutdown();
543 _result
544 }
545
546 fn send_raw(&self) -> Result<(), fidl::Error> {
547 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
548 (),
549 self.tx_id,
550 0x2f9e7eea89485a7b,
551 fidl::encoding::DynamicFlags::empty(),
552 )
553 }
554}
555
556#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
557pub struct DisplayBacklightMarker;
558
559impl fidl::endpoints::ProtocolMarker for DisplayBacklightMarker {
560 type Proxy = DisplayBacklightProxy;
561 type RequestStream = DisplayBacklightRequestStream;
562 #[cfg(target_os = "fuchsia")]
563 type SynchronousProxy = DisplayBacklightSynchronousProxy;
564
565 const DEBUG_NAME: &'static str = "fuchsia.ui.policy.DisplayBacklight";
566}
567impl fidl::endpoints::DiscoverableProtocolMarker for DisplayBacklightMarker {}
568
569pub trait DisplayBacklightProxyInterface: Send + Sync {
570 type SetMinimumRgbResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
571 fn r#set_minimum_rgb(&self, minimum_rgb: u8) -> Self::SetMinimumRgbResponseFut;
572}
573#[derive(Debug)]
574#[cfg(target_os = "fuchsia")]
575pub struct DisplayBacklightSynchronousProxy {
576 client: fidl::client::sync::Client,
577}
578
579#[cfg(target_os = "fuchsia")]
580impl fidl::endpoints::SynchronousProxy for DisplayBacklightSynchronousProxy {
581 type Proxy = DisplayBacklightProxy;
582 type Protocol = DisplayBacklightMarker;
583
584 fn from_channel(inner: fidl::Channel) -> Self {
585 Self::new(inner)
586 }
587
588 fn into_channel(self) -> fidl::Channel {
589 self.client.into_channel()
590 }
591
592 fn as_channel(&self) -> &fidl::Channel {
593 self.client.as_channel()
594 }
595}
596
597#[cfg(target_os = "fuchsia")]
598impl DisplayBacklightSynchronousProxy {
599 pub fn new(channel: fidl::Channel) -> Self {
600 let protocol_name = <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
601 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
602 }
603
604 pub fn into_channel(self) -> fidl::Channel {
605 self.client.into_channel()
606 }
607
608 pub fn wait_for_event(
611 &self,
612 deadline: zx::MonotonicInstant,
613 ) -> Result<DisplayBacklightEvent, fidl::Error> {
614 DisplayBacklightEvent::decode(self.client.wait_for_event(deadline)?)
615 }
616
617 pub fn r#set_minimum_rgb(
626 &self,
627 mut minimum_rgb: u8,
628 ___deadline: zx::MonotonicInstant,
629 ) -> Result<(), fidl::Error> {
630 let _response = self
631 .client
632 .send_query::<DisplayBacklightSetMinimumRgbRequest, fidl::encoding::EmptyPayload>(
633 (minimum_rgb,),
634 0x25604347bb8a1ca3,
635 fidl::encoding::DynamicFlags::empty(),
636 ___deadline,
637 )?;
638 Ok(_response)
639 }
640}
641
642#[derive(Debug, Clone)]
643pub struct DisplayBacklightProxy {
644 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
645}
646
647impl fidl::endpoints::Proxy for DisplayBacklightProxy {
648 type Protocol = DisplayBacklightMarker;
649
650 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
651 Self::new(inner)
652 }
653
654 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
655 self.client.into_channel().map_err(|client| Self { client })
656 }
657
658 fn as_channel(&self) -> &::fidl::AsyncChannel {
659 self.client.as_channel()
660 }
661}
662
663impl DisplayBacklightProxy {
664 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
666 let protocol_name = <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
667 Self { client: fidl::client::Client::new(channel, protocol_name) }
668 }
669
670 pub fn take_event_stream(&self) -> DisplayBacklightEventStream {
676 DisplayBacklightEventStream { event_receiver: self.client.take_event_receiver() }
677 }
678
679 pub fn r#set_minimum_rgb(
688 &self,
689 mut minimum_rgb: u8,
690 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
691 DisplayBacklightProxyInterface::r#set_minimum_rgb(self, minimum_rgb)
692 }
693}
694
695impl DisplayBacklightProxyInterface for DisplayBacklightProxy {
696 type SetMinimumRgbResponseFut =
697 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
698 fn r#set_minimum_rgb(&self, mut minimum_rgb: u8) -> Self::SetMinimumRgbResponseFut {
699 fn _decode(
700 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
701 ) -> Result<(), fidl::Error> {
702 let _response = fidl::client::decode_transaction_body::<
703 fidl::encoding::EmptyPayload,
704 fidl::encoding::DefaultFuchsiaResourceDialect,
705 0x25604347bb8a1ca3,
706 >(_buf?)?;
707 Ok(_response)
708 }
709 self.client.send_query_and_decode::<DisplayBacklightSetMinimumRgbRequest, ()>(
710 (minimum_rgb,),
711 0x25604347bb8a1ca3,
712 fidl::encoding::DynamicFlags::empty(),
713 _decode,
714 )
715 }
716}
717
718pub struct DisplayBacklightEventStream {
719 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
720}
721
722impl std::marker::Unpin for DisplayBacklightEventStream {}
723
724impl futures::stream::FusedStream for DisplayBacklightEventStream {
725 fn is_terminated(&self) -> bool {
726 self.event_receiver.is_terminated()
727 }
728}
729
730impl futures::Stream for DisplayBacklightEventStream {
731 type Item = Result<DisplayBacklightEvent, fidl::Error>;
732
733 fn poll_next(
734 mut self: std::pin::Pin<&mut Self>,
735 cx: &mut std::task::Context<'_>,
736 ) -> std::task::Poll<Option<Self::Item>> {
737 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
738 &mut self.event_receiver,
739 cx
740 )?) {
741 Some(buf) => std::task::Poll::Ready(Some(DisplayBacklightEvent::decode(buf))),
742 None => std::task::Poll::Ready(None),
743 }
744 }
745}
746
747#[derive(Debug)]
748pub enum DisplayBacklightEvent {}
749
750impl DisplayBacklightEvent {
751 fn decode(
753 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
754 ) -> Result<DisplayBacklightEvent, fidl::Error> {
755 let (bytes, _handles) = buf.split_mut();
756 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
757 debug_assert_eq!(tx_header.tx_id, 0);
758 match tx_header.ordinal {
759 _ => Err(fidl::Error::UnknownOrdinal {
760 ordinal: tx_header.ordinal,
761 protocol_name:
762 <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
763 }),
764 }
765 }
766}
767
768pub struct DisplayBacklightRequestStream {
770 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
771 is_terminated: bool,
772}
773
774impl std::marker::Unpin for DisplayBacklightRequestStream {}
775
776impl futures::stream::FusedStream for DisplayBacklightRequestStream {
777 fn is_terminated(&self) -> bool {
778 self.is_terminated
779 }
780}
781
782impl fidl::endpoints::RequestStream for DisplayBacklightRequestStream {
783 type Protocol = DisplayBacklightMarker;
784 type ControlHandle = DisplayBacklightControlHandle;
785
786 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
787 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
788 }
789
790 fn control_handle(&self) -> Self::ControlHandle {
791 DisplayBacklightControlHandle { inner: self.inner.clone() }
792 }
793
794 fn into_inner(
795 self,
796 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
797 {
798 (self.inner, self.is_terminated)
799 }
800
801 fn from_inner(
802 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
803 is_terminated: bool,
804 ) -> Self {
805 Self { inner, is_terminated }
806 }
807}
808
809impl futures::Stream for DisplayBacklightRequestStream {
810 type Item = Result<DisplayBacklightRequest, fidl::Error>;
811
812 fn poll_next(
813 mut self: std::pin::Pin<&mut Self>,
814 cx: &mut std::task::Context<'_>,
815 ) -> std::task::Poll<Option<Self::Item>> {
816 let this = &mut *self;
817 if this.inner.check_shutdown(cx) {
818 this.is_terminated = true;
819 return std::task::Poll::Ready(None);
820 }
821 if this.is_terminated {
822 panic!("polled DisplayBacklightRequestStream after completion");
823 }
824 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
825 |bytes, handles| {
826 match this.inner.channel().read_etc(cx, bytes, handles) {
827 std::task::Poll::Ready(Ok(())) => {}
828 std::task::Poll::Pending => return std::task::Poll::Pending,
829 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
830 this.is_terminated = true;
831 return std::task::Poll::Ready(None);
832 }
833 std::task::Poll::Ready(Err(e)) => {
834 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
835 e.into(),
836 ))))
837 }
838 }
839
840 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
842
843 std::task::Poll::Ready(Some(match header.ordinal {
844 0x25604347bb8a1ca3 => {
845 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
846 let mut req = fidl::new_empty!(
847 DisplayBacklightSetMinimumRgbRequest,
848 fidl::encoding::DefaultFuchsiaResourceDialect
849 );
850 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DisplayBacklightSetMinimumRgbRequest>(&header, _body_bytes, handles, &mut req)?;
851 let control_handle =
852 DisplayBacklightControlHandle { inner: this.inner.clone() };
853 Ok(DisplayBacklightRequest::SetMinimumRgb {
854 minimum_rgb: req.minimum_rgb,
855
856 responder: DisplayBacklightSetMinimumRgbResponder {
857 control_handle: std::mem::ManuallyDrop::new(control_handle),
858 tx_id: header.tx_id,
859 },
860 })
861 }
862 _ => Err(fidl::Error::UnknownOrdinal {
863 ordinal: header.ordinal,
864 protocol_name:
865 <DisplayBacklightMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
866 }),
867 }))
868 },
869 )
870 }
871}
872
873#[derive(Debug)]
888pub enum DisplayBacklightRequest {
889 SetMinimumRgb { minimum_rgb: u8, responder: DisplayBacklightSetMinimumRgbResponder },
898}
899
900impl DisplayBacklightRequest {
901 #[allow(irrefutable_let_patterns)]
902 pub fn into_set_minimum_rgb(self) -> Option<(u8, DisplayBacklightSetMinimumRgbResponder)> {
903 if let DisplayBacklightRequest::SetMinimumRgb { minimum_rgb, responder } = self {
904 Some((minimum_rgb, responder))
905 } else {
906 None
907 }
908 }
909
910 pub fn method_name(&self) -> &'static str {
912 match *self {
913 DisplayBacklightRequest::SetMinimumRgb { .. } => "set_minimum_rgb",
914 }
915 }
916}
917
918#[derive(Debug, Clone)]
919pub struct DisplayBacklightControlHandle {
920 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
921}
922
923impl fidl::endpoints::ControlHandle for DisplayBacklightControlHandle {
924 fn shutdown(&self) {
925 self.inner.shutdown()
926 }
927 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
928 self.inner.shutdown_with_epitaph(status)
929 }
930
931 fn is_closed(&self) -> bool {
932 self.inner.channel().is_closed()
933 }
934 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
935 self.inner.channel().on_closed()
936 }
937
938 #[cfg(target_os = "fuchsia")]
939 fn signal_peer(
940 &self,
941 clear_mask: zx::Signals,
942 set_mask: zx::Signals,
943 ) -> Result<(), zx_status::Status> {
944 use fidl::Peered;
945 self.inner.channel().signal_peer(clear_mask, set_mask)
946 }
947}
948
949impl DisplayBacklightControlHandle {}
950
951#[must_use = "FIDL methods require a response to be sent"]
952#[derive(Debug)]
953pub struct DisplayBacklightSetMinimumRgbResponder {
954 control_handle: std::mem::ManuallyDrop<DisplayBacklightControlHandle>,
955 tx_id: u32,
956}
957
958impl std::ops::Drop for DisplayBacklightSetMinimumRgbResponder {
962 fn drop(&mut self) {
963 self.control_handle.shutdown();
964 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
966 }
967}
968
969impl fidl::endpoints::Responder for DisplayBacklightSetMinimumRgbResponder {
970 type ControlHandle = DisplayBacklightControlHandle;
971
972 fn control_handle(&self) -> &DisplayBacklightControlHandle {
973 &self.control_handle
974 }
975
976 fn drop_without_shutdown(mut self) {
977 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
979 std::mem::forget(self);
981 }
982}
983
984impl DisplayBacklightSetMinimumRgbResponder {
985 pub fn send(self) -> Result<(), fidl::Error> {
989 let _result = self.send_raw();
990 if _result.is_err() {
991 self.control_handle.shutdown();
992 }
993 self.drop_without_shutdown();
994 _result
995 }
996
997 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
999 let _result = self.send_raw();
1000 self.drop_without_shutdown();
1001 _result
1002 }
1003
1004 fn send_raw(&self) -> Result<(), fidl::Error> {
1005 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1006 (),
1007 self.tx_id,
1008 0x25604347bb8a1ca3,
1009 fidl::encoding::DynamicFlags::empty(),
1010 )
1011 }
1012}
1013
1014#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1015pub struct MediaButtonsListenerMarker;
1016
1017impl fidl::endpoints::ProtocolMarker for MediaButtonsListenerMarker {
1018 type Proxy = MediaButtonsListenerProxy;
1019 type RequestStream = MediaButtonsListenerRequestStream;
1020 #[cfg(target_os = "fuchsia")]
1021 type SynchronousProxy = MediaButtonsListenerSynchronousProxy;
1022
1023 const DEBUG_NAME: &'static str = "(anonymous) MediaButtonsListener";
1024}
1025
1026pub trait MediaButtonsListenerProxyInterface: Send + Sync {
1027 fn r#on_media_buttons_event(
1028 &self,
1029 event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1030 ) -> Result<(), fidl::Error>;
1031 type OnEventResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1032 fn r#on_event(
1033 &self,
1034 event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1035 ) -> Self::OnEventResponseFut;
1036}
1037#[derive(Debug)]
1038#[cfg(target_os = "fuchsia")]
1039pub struct MediaButtonsListenerSynchronousProxy {
1040 client: fidl::client::sync::Client,
1041}
1042
1043#[cfg(target_os = "fuchsia")]
1044impl fidl::endpoints::SynchronousProxy for MediaButtonsListenerSynchronousProxy {
1045 type Proxy = MediaButtonsListenerProxy;
1046 type Protocol = MediaButtonsListenerMarker;
1047
1048 fn from_channel(inner: fidl::Channel) -> Self {
1049 Self::new(inner)
1050 }
1051
1052 fn into_channel(self) -> fidl::Channel {
1053 self.client.into_channel()
1054 }
1055
1056 fn as_channel(&self) -> &fidl::Channel {
1057 self.client.as_channel()
1058 }
1059}
1060
1061#[cfg(target_os = "fuchsia")]
1062impl MediaButtonsListenerSynchronousProxy {
1063 pub fn new(channel: fidl::Channel) -> Self {
1064 let protocol_name =
1065 <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1066 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1067 }
1068
1069 pub fn into_channel(self) -> fidl::Channel {
1070 self.client.into_channel()
1071 }
1072
1073 pub fn wait_for_event(
1076 &self,
1077 deadline: zx::MonotonicInstant,
1078 ) -> Result<MediaButtonsListenerEvent, fidl::Error> {
1079 MediaButtonsListenerEvent::decode(self.client.wait_for_event(deadline)?)
1080 }
1081
1082 pub fn r#on_media_buttons_event(
1083 &self,
1084 mut event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1085 ) -> Result<(), fidl::Error> {
1086 self.client.send::<MediaButtonsListenerOnMediaButtonsEventRequest>(
1087 (event,),
1088 0x2c2068c386964e00,
1089 fidl::encoding::DynamicFlags::empty(),
1090 )
1091 }
1092
1093 pub fn r#on_event(
1094 &self,
1095 mut event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1096 ___deadline: zx::MonotonicInstant,
1097 ) -> Result<(), fidl::Error> {
1098 let _response = self
1099 .client
1100 .send_query::<MediaButtonsListenerOnEventRequest, fidl::encoding::EmptyPayload>(
1101 (event,),
1102 0x16e7130ddcaf877c,
1103 fidl::encoding::DynamicFlags::empty(),
1104 ___deadline,
1105 )?;
1106 Ok(_response)
1107 }
1108}
1109
1110#[derive(Debug, Clone)]
1111pub struct MediaButtonsListenerProxy {
1112 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1113}
1114
1115impl fidl::endpoints::Proxy for MediaButtonsListenerProxy {
1116 type Protocol = MediaButtonsListenerMarker;
1117
1118 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1119 Self::new(inner)
1120 }
1121
1122 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1123 self.client.into_channel().map_err(|client| Self { client })
1124 }
1125
1126 fn as_channel(&self) -> &::fidl::AsyncChannel {
1127 self.client.as_channel()
1128 }
1129}
1130
1131impl MediaButtonsListenerProxy {
1132 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1134 let protocol_name =
1135 <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1136 Self { client: fidl::client::Client::new(channel, protocol_name) }
1137 }
1138
1139 pub fn take_event_stream(&self) -> MediaButtonsListenerEventStream {
1145 MediaButtonsListenerEventStream { event_receiver: self.client.take_event_receiver() }
1146 }
1147
1148 pub fn r#on_media_buttons_event(
1149 &self,
1150 mut event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1151 ) -> Result<(), fidl::Error> {
1152 MediaButtonsListenerProxyInterface::r#on_media_buttons_event(self, event)
1153 }
1154
1155 pub fn r#on_event(
1156 &self,
1157 mut event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1158 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1159 MediaButtonsListenerProxyInterface::r#on_event(self, event)
1160 }
1161}
1162
1163impl MediaButtonsListenerProxyInterface for MediaButtonsListenerProxy {
1164 fn r#on_media_buttons_event(
1165 &self,
1166 mut event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1167 ) -> Result<(), fidl::Error> {
1168 self.client.send::<MediaButtonsListenerOnMediaButtonsEventRequest>(
1169 (event,),
1170 0x2c2068c386964e00,
1171 fidl::encoding::DynamicFlags::empty(),
1172 )
1173 }
1174
1175 type OnEventResponseFut =
1176 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1177 fn r#on_event(
1178 &self,
1179 mut event: &fidl_fuchsia_ui_input::MediaButtonsEvent,
1180 ) -> Self::OnEventResponseFut {
1181 fn _decode(
1182 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1183 ) -> Result<(), fidl::Error> {
1184 let _response = fidl::client::decode_transaction_body::<
1185 fidl::encoding::EmptyPayload,
1186 fidl::encoding::DefaultFuchsiaResourceDialect,
1187 0x16e7130ddcaf877c,
1188 >(_buf?)?;
1189 Ok(_response)
1190 }
1191 self.client.send_query_and_decode::<MediaButtonsListenerOnEventRequest, ()>(
1192 (event,),
1193 0x16e7130ddcaf877c,
1194 fidl::encoding::DynamicFlags::empty(),
1195 _decode,
1196 )
1197 }
1198}
1199
1200pub struct MediaButtonsListenerEventStream {
1201 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1202}
1203
1204impl std::marker::Unpin for MediaButtonsListenerEventStream {}
1205
1206impl futures::stream::FusedStream for MediaButtonsListenerEventStream {
1207 fn is_terminated(&self) -> bool {
1208 self.event_receiver.is_terminated()
1209 }
1210}
1211
1212impl futures::Stream for MediaButtonsListenerEventStream {
1213 type Item = Result<MediaButtonsListenerEvent, fidl::Error>;
1214
1215 fn poll_next(
1216 mut self: std::pin::Pin<&mut Self>,
1217 cx: &mut std::task::Context<'_>,
1218 ) -> std::task::Poll<Option<Self::Item>> {
1219 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1220 &mut self.event_receiver,
1221 cx
1222 )?) {
1223 Some(buf) => std::task::Poll::Ready(Some(MediaButtonsListenerEvent::decode(buf))),
1224 None => std::task::Poll::Ready(None),
1225 }
1226 }
1227}
1228
1229#[derive(Debug)]
1230pub enum MediaButtonsListenerEvent {}
1231
1232impl MediaButtonsListenerEvent {
1233 fn decode(
1235 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1236 ) -> Result<MediaButtonsListenerEvent, fidl::Error> {
1237 let (bytes, _handles) = buf.split_mut();
1238 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1239 debug_assert_eq!(tx_header.tx_id, 0);
1240 match tx_header.ordinal {
1241 _ => Err(fidl::Error::UnknownOrdinal {
1242 ordinal: tx_header.ordinal,
1243 protocol_name:
1244 <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1245 }),
1246 }
1247 }
1248}
1249
1250pub struct MediaButtonsListenerRequestStream {
1252 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1253 is_terminated: bool,
1254}
1255
1256impl std::marker::Unpin for MediaButtonsListenerRequestStream {}
1257
1258impl futures::stream::FusedStream for MediaButtonsListenerRequestStream {
1259 fn is_terminated(&self) -> bool {
1260 self.is_terminated
1261 }
1262}
1263
1264impl fidl::endpoints::RequestStream for MediaButtonsListenerRequestStream {
1265 type Protocol = MediaButtonsListenerMarker;
1266 type ControlHandle = MediaButtonsListenerControlHandle;
1267
1268 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1269 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1270 }
1271
1272 fn control_handle(&self) -> Self::ControlHandle {
1273 MediaButtonsListenerControlHandle { inner: self.inner.clone() }
1274 }
1275
1276 fn into_inner(
1277 self,
1278 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1279 {
1280 (self.inner, self.is_terminated)
1281 }
1282
1283 fn from_inner(
1284 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1285 is_terminated: bool,
1286 ) -> Self {
1287 Self { inner, is_terminated }
1288 }
1289}
1290
1291impl futures::Stream for MediaButtonsListenerRequestStream {
1292 type Item = Result<MediaButtonsListenerRequest, fidl::Error>;
1293
1294 fn poll_next(
1295 mut self: std::pin::Pin<&mut Self>,
1296 cx: &mut std::task::Context<'_>,
1297 ) -> std::task::Poll<Option<Self::Item>> {
1298 let this = &mut *self;
1299 if this.inner.check_shutdown(cx) {
1300 this.is_terminated = true;
1301 return std::task::Poll::Ready(None);
1302 }
1303 if this.is_terminated {
1304 panic!("polled MediaButtonsListenerRequestStream after completion");
1305 }
1306 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1307 |bytes, handles| {
1308 match this.inner.channel().read_etc(cx, bytes, handles) {
1309 std::task::Poll::Ready(Ok(())) => {}
1310 std::task::Poll::Pending => return std::task::Poll::Pending,
1311 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1312 this.is_terminated = true;
1313 return std::task::Poll::Ready(None);
1314 }
1315 std::task::Poll::Ready(Err(e)) => {
1316 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1317 e.into(),
1318 ))))
1319 }
1320 }
1321
1322 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1324
1325 std::task::Poll::Ready(Some(match header.ordinal {
1326 0x2c2068c386964e00 => {
1327 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1328 let mut req = fidl::new_empty!(MediaButtonsListenerOnMediaButtonsEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1329 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MediaButtonsListenerOnMediaButtonsEventRequest>(&header, _body_bytes, handles, &mut req)?;
1330 let control_handle = MediaButtonsListenerControlHandle {
1331 inner: this.inner.clone(),
1332 };
1333 Ok(MediaButtonsListenerRequest::OnMediaButtonsEvent {event: req.event,
1334
1335 control_handle,
1336 })
1337 }
1338 0x16e7130ddcaf877c => {
1339 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1340 let mut req = fidl::new_empty!(MediaButtonsListenerOnEventRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1341 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MediaButtonsListenerOnEventRequest>(&header, _body_bytes, handles, &mut req)?;
1342 let control_handle = MediaButtonsListenerControlHandle {
1343 inner: this.inner.clone(),
1344 };
1345 Ok(MediaButtonsListenerRequest::OnEvent {event: req.event,
1346
1347 responder: MediaButtonsListenerOnEventResponder {
1348 control_handle: std::mem::ManuallyDrop::new(control_handle),
1349 tx_id: header.tx_id,
1350 },
1351 })
1352 }
1353 _ => Err(fidl::Error::UnknownOrdinal {
1354 ordinal: header.ordinal,
1355 protocol_name: <MediaButtonsListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1356 }),
1357 }))
1358 },
1359 )
1360 }
1361}
1362
1363#[derive(Debug)]
1367pub enum MediaButtonsListenerRequest {
1368 OnMediaButtonsEvent {
1369 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1370 control_handle: MediaButtonsListenerControlHandle,
1371 },
1372 OnEvent {
1373 event: fidl_fuchsia_ui_input::MediaButtonsEvent,
1374 responder: MediaButtonsListenerOnEventResponder,
1375 },
1376}
1377
1378impl MediaButtonsListenerRequest {
1379 #[allow(irrefutable_let_patterns)]
1380 pub fn into_on_media_buttons_event(
1381 self,
1382 ) -> Option<(fidl_fuchsia_ui_input::MediaButtonsEvent, MediaButtonsListenerControlHandle)> {
1383 if let MediaButtonsListenerRequest::OnMediaButtonsEvent { event, control_handle } = self {
1384 Some((event, control_handle))
1385 } else {
1386 None
1387 }
1388 }
1389
1390 #[allow(irrefutable_let_patterns)]
1391 pub fn into_on_event(
1392 self,
1393 ) -> Option<(fidl_fuchsia_ui_input::MediaButtonsEvent, MediaButtonsListenerOnEventResponder)>
1394 {
1395 if let MediaButtonsListenerRequest::OnEvent { event, responder } = self {
1396 Some((event, responder))
1397 } else {
1398 None
1399 }
1400 }
1401
1402 pub fn method_name(&self) -> &'static str {
1404 match *self {
1405 MediaButtonsListenerRequest::OnMediaButtonsEvent { .. } => "on_media_buttons_event",
1406 MediaButtonsListenerRequest::OnEvent { .. } => "on_event",
1407 }
1408 }
1409}
1410
1411#[derive(Debug, Clone)]
1412pub struct MediaButtonsListenerControlHandle {
1413 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1414}
1415
1416impl fidl::endpoints::ControlHandle for MediaButtonsListenerControlHandle {
1417 fn shutdown(&self) {
1418 self.inner.shutdown()
1419 }
1420 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1421 self.inner.shutdown_with_epitaph(status)
1422 }
1423
1424 fn is_closed(&self) -> bool {
1425 self.inner.channel().is_closed()
1426 }
1427 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1428 self.inner.channel().on_closed()
1429 }
1430
1431 #[cfg(target_os = "fuchsia")]
1432 fn signal_peer(
1433 &self,
1434 clear_mask: zx::Signals,
1435 set_mask: zx::Signals,
1436 ) -> Result<(), zx_status::Status> {
1437 use fidl::Peered;
1438 self.inner.channel().signal_peer(clear_mask, set_mask)
1439 }
1440}
1441
1442impl MediaButtonsListenerControlHandle {}
1443
1444#[must_use = "FIDL methods require a response to be sent"]
1445#[derive(Debug)]
1446pub struct MediaButtonsListenerOnEventResponder {
1447 control_handle: std::mem::ManuallyDrop<MediaButtonsListenerControlHandle>,
1448 tx_id: u32,
1449}
1450
1451impl std::ops::Drop for MediaButtonsListenerOnEventResponder {
1455 fn drop(&mut self) {
1456 self.control_handle.shutdown();
1457 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1459 }
1460}
1461
1462impl fidl::endpoints::Responder for MediaButtonsListenerOnEventResponder {
1463 type ControlHandle = MediaButtonsListenerControlHandle;
1464
1465 fn control_handle(&self) -> &MediaButtonsListenerControlHandle {
1466 &self.control_handle
1467 }
1468
1469 fn drop_without_shutdown(mut self) {
1470 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1472 std::mem::forget(self);
1474 }
1475}
1476
1477impl MediaButtonsListenerOnEventResponder {
1478 pub fn send(self) -> Result<(), fidl::Error> {
1482 let _result = self.send_raw();
1483 if _result.is_err() {
1484 self.control_handle.shutdown();
1485 }
1486 self.drop_without_shutdown();
1487 _result
1488 }
1489
1490 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1492 let _result = self.send_raw();
1493 self.drop_without_shutdown();
1494 _result
1495 }
1496
1497 fn send_raw(&self) -> Result<(), fidl::Error> {
1498 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1499 (),
1500 self.tx_id,
1501 0x16e7130ddcaf877c,
1502 fidl::encoding::DynamicFlags::empty(),
1503 )
1504 }
1505}
1506
1507mod internal {
1508 use super::*;
1509
1510 impl fidl::encoding::ResourceTypeMarker for DeviceListenerRegistryRegisterListenerRequest {
1511 type Borrowed<'a> = &'a mut Self;
1512 fn take_or_borrow<'a>(
1513 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1514 ) -> Self::Borrowed<'a> {
1515 value
1516 }
1517 }
1518
1519 unsafe impl fidl::encoding::TypeMarker for DeviceListenerRegistryRegisterListenerRequest {
1520 type Owned = Self;
1521
1522 #[inline(always)]
1523 fn inline_align(_context: fidl::encoding::Context) -> usize {
1524 4
1525 }
1526
1527 #[inline(always)]
1528 fn inline_size(_context: fidl::encoding::Context) -> usize {
1529 4
1530 }
1531 }
1532
1533 unsafe impl
1534 fidl::encoding::Encode<
1535 DeviceListenerRegistryRegisterListenerRequest,
1536 fidl::encoding::DefaultFuchsiaResourceDialect,
1537 > for &mut DeviceListenerRegistryRegisterListenerRequest
1538 {
1539 #[inline]
1540 unsafe fn encode(
1541 self,
1542 encoder: &mut fidl::encoding::Encoder<
1543 '_,
1544 fidl::encoding::DefaultFuchsiaResourceDialect,
1545 >,
1546 offset: usize,
1547 _depth: fidl::encoding::Depth,
1548 ) -> fidl::Result<()> {
1549 encoder.debug_check_bounds::<DeviceListenerRegistryRegisterListenerRequest>(offset);
1550 fidl::encoding::Encode::<
1552 DeviceListenerRegistryRegisterListenerRequest,
1553 fidl::encoding::DefaultFuchsiaResourceDialect,
1554 >::encode(
1555 (
1556 <fidl::encoding::Endpoint<
1557 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
1558 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
1559 &mut self.listener
1560 ),
1561 ),
1562 encoder,
1563 offset,
1564 _depth,
1565 )
1566 }
1567 }
1568 unsafe impl<
1569 T0: fidl::encoding::Encode<
1570 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
1571 fidl::encoding::DefaultFuchsiaResourceDialect,
1572 >,
1573 >
1574 fidl::encoding::Encode<
1575 DeviceListenerRegistryRegisterListenerRequest,
1576 fidl::encoding::DefaultFuchsiaResourceDialect,
1577 > for (T0,)
1578 {
1579 #[inline]
1580 unsafe fn encode(
1581 self,
1582 encoder: &mut fidl::encoding::Encoder<
1583 '_,
1584 fidl::encoding::DefaultFuchsiaResourceDialect,
1585 >,
1586 offset: usize,
1587 depth: fidl::encoding::Depth,
1588 ) -> fidl::Result<()> {
1589 encoder.debug_check_bounds::<DeviceListenerRegistryRegisterListenerRequest>(offset);
1590 self.0.encode(encoder, offset + 0, depth)?;
1594 Ok(())
1595 }
1596 }
1597
1598 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1599 for DeviceListenerRegistryRegisterListenerRequest
1600 {
1601 #[inline(always)]
1602 fn new_empty() -> Self {
1603 Self {
1604 listener: fidl::new_empty!(
1605 fidl::encoding::Endpoint<
1606 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
1607 >,
1608 fidl::encoding::DefaultFuchsiaResourceDialect
1609 ),
1610 }
1611 }
1612
1613 #[inline]
1614 unsafe fn decode(
1615 &mut self,
1616 decoder: &mut fidl::encoding::Decoder<
1617 '_,
1618 fidl::encoding::DefaultFuchsiaResourceDialect,
1619 >,
1620 offset: usize,
1621 _depth: fidl::encoding::Depth,
1622 ) -> fidl::Result<()> {
1623 decoder.debug_check_bounds::<Self>(offset);
1624 fidl::decode!(
1626 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
1627 fidl::encoding::DefaultFuchsiaResourceDialect,
1628 &mut self.listener,
1629 decoder,
1630 offset + 0,
1631 _depth
1632 )?;
1633 Ok(())
1634 }
1635 }
1636
1637 impl fidl::encoding::ResourceTypeMarker
1638 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
1639 {
1640 type Borrowed<'a> = &'a mut Self;
1641 fn take_or_borrow<'a>(
1642 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1643 ) -> Self::Borrowed<'a> {
1644 value
1645 }
1646 }
1647
1648 unsafe impl fidl::encoding::TypeMarker
1649 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
1650 {
1651 type Owned = Self;
1652
1653 #[inline(always)]
1654 fn inline_align(_context: fidl::encoding::Context) -> usize {
1655 4
1656 }
1657
1658 #[inline(always)]
1659 fn inline_size(_context: fidl::encoding::Context) -> usize {
1660 4
1661 }
1662 }
1663
1664 unsafe impl
1665 fidl::encoding::Encode<
1666 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
1667 fidl::encoding::DefaultFuchsiaResourceDialect,
1668 > for &mut DeviceListenerRegistryRegisterMediaButtonsListenerRequest
1669 {
1670 #[inline]
1671 unsafe fn encode(
1672 self,
1673 encoder: &mut fidl::encoding::Encoder<
1674 '_,
1675 fidl::encoding::DefaultFuchsiaResourceDialect,
1676 >,
1677 offset: usize,
1678 _depth: fidl::encoding::Depth,
1679 ) -> fidl::Result<()> {
1680 encoder
1681 .debug_check_bounds::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
1682 offset,
1683 );
1684 fidl::encoding::Encode::<
1686 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
1687 fidl::encoding::DefaultFuchsiaResourceDialect,
1688 >::encode(
1689 (
1690 <fidl::encoding::Endpoint<
1691 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
1692 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
1693 &mut self.listener
1694 ),
1695 ),
1696 encoder,
1697 offset,
1698 _depth,
1699 )
1700 }
1701 }
1702 unsafe impl<
1703 T0: fidl::encoding::Encode<
1704 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
1705 fidl::encoding::DefaultFuchsiaResourceDialect,
1706 >,
1707 >
1708 fidl::encoding::Encode<
1709 DeviceListenerRegistryRegisterMediaButtonsListenerRequest,
1710 fidl::encoding::DefaultFuchsiaResourceDialect,
1711 > for (T0,)
1712 {
1713 #[inline]
1714 unsafe fn encode(
1715 self,
1716 encoder: &mut fidl::encoding::Encoder<
1717 '_,
1718 fidl::encoding::DefaultFuchsiaResourceDialect,
1719 >,
1720 offset: usize,
1721 depth: fidl::encoding::Depth,
1722 ) -> fidl::Result<()> {
1723 encoder
1724 .debug_check_bounds::<DeviceListenerRegistryRegisterMediaButtonsListenerRequest>(
1725 offset,
1726 );
1727 self.0.encode(encoder, offset + 0, depth)?;
1731 Ok(())
1732 }
1733 }
1734
1735 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1736 for DeviceListenerRegistryRegisterMediaButtonsListenerRequest
1737 {
1738 #[inline(always)]
1739 fn new_empty() -> Self {
1740 Self {
1741 listener: fidl::new_empty!(
1742 fidl::encoding::Endpoint<
1743 fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>,
1744 >,
1745 fidl::encoding::DefaultFuchsiaResourceDialect
1746 ),
1747 }
1748 }
1749
1750 #[inline]
1751 unsafe fn decode(
1752 &mut self,
1753 decoder: &mut fidl::encoding::Decoder<
1754 '_,
1755 fidl::encoding::DefaultFuchsiaResourceDialect,
1756 >,
1757 offset: usize,
1758 _depth: fidl::encoding::Depth,
1759 ) -> fidl::Result<()> {
1760 decoder.debug_check_bounds::<Self>(offset);
1761 fidl::decode!(
1763 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<MediaButtonsListenerMarker>>,
1764 fidl::encoding::DefaultFuchsiaResourceDialect,
1765 &mut self.listener,
1766 decoder,
1767 offset + 0,
1768 _depth
1769 )?;
1770 Ok(())
1771 }
1772 }
1773}