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_accessibility_scene_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, PartialEq)]
15pub struct ProviderCreateViewRequest {
16 pub a11y_view_token: fidl_fuchsia_ui_views::ViewCreationToken,
17 pub proxy_viewport_token: fidl_fuchsia_ui_views::ViewportCreationToken,
18}
19
20impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ProviderCreateViewRequest {}
21
22#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
23pub struct ProviderMarker;
24
25impl fidl::endpoints::ProtocolMarker for ProviderMarker {
26 type Proxy = ProviderProxy;
27 type RequestStream = ProviderRequestStream;
28 #[cfg(target_os = "fuchsia")]
29 type SynchronousProxy = ProviderSynchronousProxy;
30
31 const DEBUG_NAME: &'static str = "fuchsia.accessibility.scene.Provider";
32}
33impl fidl::endpoints::DiscoverableProtocolMarker for ProviderMarker {}
34
35pub trait ProviderProxyInterface: Send + Sync {
36 fn r#create_view(
37 &self,
38 a11y_view_token: fidl_fuchsia_ui_views::ViewCreationToken,
39 proxy_viewport_token: fidl_fuchsia_ui_views::ViewportCreationToken,
40 ) -> Result<(), fidl::Error>;
41}
42#[derive(Debug)]
43#[cfg(target_os = "fuchsia")]
44pub struct ProviderSynchronousProxy {
45 client: fidl::client::sync::Client,
46}
47
48#[cfg(target_os = "fuchsia")]
49impl fidl::endpoints::SynchronousProxy for ProviderSynchronousProxy {
50 type Proxy = ProviderProxy;
51 type Protocol = ProviderMarker;
52
53 fn from_channel(inner: fidl::Channel) -> Self {
54 Self::new(inner)
55 }
56
57 fn into_channel(self) -> fidl::Channel {
58 self.client.into_channel()
59 }
60
61 fn as_channel(&self) -> &fidl::Channel {
62 self.client.as_channel()
63 }
64}
65
66#[cfg(target_os = "fuchsia")]
67impl ProviderSynchronousProxy {
68 pub fn new(channel: fidl::Channel) -> Self {
69 let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
70 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
71 }
72
73 pub fn into_channel(self) -> fidl::Channel {
74 self.client.into_channel()
75 }
76
77 pub fn wait_for_event(
80 &self,
81 deadline: zx::MonotonicInstant,
82 ) -> Result<ProviderEvent, fidl::Error> {
83 ProviderEvent::decode(self.client.wait_for_event(deadline)?)
84 }
85
86 pub fn r#create_view(
137 &self,
138 mut a11y_view_token: fidl_fuchsia_ui_views::ViewCreationToken,
139 mut proxy_viewport_token: fidl_fuchsia_ui_views::ViewportCreationToken,
140 ) -> Result<(), fidl::Error> {
141 self.client.send::<ProviderCreateViewRequest>(
142 (&mut a11y_view_token, &mut proxy_viewport_token),
143 0x406435c9e8281daf,
144 fidl::encoding::DynamicFlags::empty(),
145 )
146 }
147}
148
149#[derive(Debug, Clone)]
150pub struct ProviderProxy {
151 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
152}
153
154impl fidl::endpoints::Proxy for ProviderProxy {
155 type Protocol = ProviderMarker;
156
157 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
158 Self::new(inner)
159 }
160
161 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
162 self.client.into_channel().map_err(|client| Self { client })
163 }
164
165 fn as_channel(&self) -> &::fidl::AsyncChannel {
166 self.client.as_channel()
167 }
168}
169
170impl ProviderProxy {
171 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
173 let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
174 Self { client: fidl::client::Client::new(channel, protocol_name) }
175 }
176
177 pub fn take_event_stream(&self) -> ProviderEventStream {
183 ProviderEventStream { event_receiver: self.client.take_event_receiver() }
184 }
185
186 pub fn r#create_view(
237 &self,
238 mut a11y_view_token: fidl_fuchsia_ui_views::ViewCreationToken,
239 mut proxy_viewport_token: fidl_fuchsia_ui_views::ViewportCreationToken,
240 ) -> Result<(), fidl::Error> {
241 ProviderProxyInterface::r#create_view(self, a11y_view_token, proxy_viewport_token)
242 }
243}
244
245impl ProviderProxyInterface for ProviderProxy {
246 fn r#create_view(
247 &self,
248 mut a11y_view_token: fidl_fuchsia_ui_views::ViewCreationToken,
249 mut proxy_viewport_token: fidl_fuchsia_ui_views::ViewportCreationToken,
250 ) -> Result<(), fidl::Error> {
251 self.client.send::<ProviderCreateViewRequest>(
252 (&mut a11y_view_token, &mut proxy_viewport_token),
253 0x406435c9e8281daf,
254 fidl::encoding::DynamicFlags::empty(),
255 )
256 }
257}
258
259pub struct ProviderEventStream {
260 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
261}
262
263impl std::marker::Unpin for ProviderEventStream {}
264
265impl futures::stream::FusedStream for ProviderEventStream {
266 fn is_terminated(&self) -> bool {
267 self.event_receiver.is_terminated()
268 }
269}
270
271impl futures::Stream for ProviderEventStream {
272 type Item = Result<ProviderEvent, fidl::Error>;
273
274 fn poll_next(
275 mut self: std::pin::Pin<&mut Self>,
276 cx: &mut std::task::Context<'_>,
277 ) -> std::task::Poll<Option<Self::Item>> {
278 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
279 &mut self.event_receiver,
280 cx
281 )?) {
282 Some(buf) => std::task::Poll::Ready(Some(ProviderEvent::decode(buf))),
283 None => std::task::Poll::Ready(None),
284 }
285 }
286}
287
288#[derive(Debug)]
289pub enum ProviderEvent {}
290
291impl ProviderEvent {
292 fn decode(
294 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
295 ) -> Result<ProviderEvent, fidl::Error> {
296 let (bytes, _handles) = buf.split_mut();
297 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
298 debug_assert_eq!(tx_header.tx_id, 0);
299 match tx_header.ordinal {
300 _ => Err(fidl::Error::UnknownOrdinal {
301 ordinal: tx_header.ordinal,
302 protocol_name: <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
303 }),
304 }
305 }
306}
307
308pub struct ProviderRequestStream {
310 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
311 is_terminated: bool,
312}
313
314impl std::marker::Unpin for ProviderRequestStream {}
315
316impl futures::stream::FusedStream for ProviderRequestStream {
317 fn is_terminated(&self) -> bool {
318 self.is_terminated
319 }
320}
321
322impl fidl::endpoints::RequestStream for ProviderRequestStream {
323 type Protocol = ProviderMarker;
324 type ControlHandle = ProviderControlHandle;
325
326 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
327 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
328 }
329
330 fn control_handle(&self) -> Self::ControlHandle {
331 ProviderControlHandle { inner: self.inner.clone() }
332 }
333
334 fn into_inner(
335 self,
336 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
337 {
338 (self.inner, self.is_terminated)
339 }
340
341 fn from_inner(
342 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
343 is_terminated: bool,
344 ) -> Self {
345 Self { inner, is_terminated }
346 }
347}
348
349impl futures::Stream for ProviderRequestStream {
350 type Item = Result<ProviderRequest, fidl::Error>;
351
352 fn poll_next(
353 mut self: std::pin::Pin<&mut Self>,
354 cx: &mut std::task::Context<'_>,
355 ) -> std::task::Poll<Option<Self::Item>> {
356 let this = &mut *self;
357 if this.inner.check_shutdown(cx) {
358 this.is_terminated = true;
359 return std::task::Poll::Ready(None);
360 }
361 if this.is_terminated {
362 panic!("polled ProviderRequestStream after completion");
363 }
364 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
365 |bytes, handles| {
366 match this.inner.channel().read_etc(cx, bytes, handles) {
367 std::task::Poll::Ready(Ok(())) => {}
368 std::task::Poll::Pending => return std::task::Poll::Pending,
369 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
370 this.is_terminated = true;
371 return std::task::Poll::Ready(None);
372 }
373 std::task::Poll::Ready(Err(e)) => {
374 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
375 e.into(),
376 ))))
377 }
378 }
379
380 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
382
383 std::task::Poll::Ready(Some(match header.ordinal {
384 0x406435c9e8281daf => {
385 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
386 let mut req = fidl::new_empty!(
387 ProviderCreateViewRequest,
388 fidl::encoding::DefaultFuchsiaResourceDialect
389 );
390 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderCreateViewRequest>(&header, _body_bytes, handles, &mut req)?;
391 let control_handle = ProviderControlHandle { inner: this.inner.clone() };
392 Ok(ProviderRequest::CreateView {
393 a11y_view_token: req.a11y_view_token,
394 proxy_viewport_token: req.proxy_viewport_token,
395
396 control_handle,
397 })
398 }
399 _ => Err(fidl::Error::UnknownOrdinal {
400 ordinal: header.ordinal,
401 protocol_name:
402 <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
403 }),
404 }))
405 },
406 )
407 }
408}
409
410#[derive(Debug)]
411pub enum ProviderRequest {
412 CreateView {
463 a11y_view_token: fidl_fuchsia_ui_views::ViewCreationToken,
464 proxy_viewport_token: fidl_fuchsia_ui_views::ViewportCreationToken,
465 control_handle: ProviderControlHandle,
466 },
467}
468
469impl ProviderRequest {
470 #[allow(irrefutable_let_patterns)]
471 pub fn into_create_view(
472 self,
473 ) -> Option<(
474 fidl_fuchsia_ui_views::ViewCreationToken,
475 fidl_fuchsia_ui_views::ViewportCreationToken,
476 ProviderControlHandle,
477 )> {
478 if let ProviderRequest::CreateView {
479 a11y_view_token,
480 proxy_viewport_token,
481 control_handle,
482 } = self
483 {
484 Some((a11y_view_token, proxy_viewport_token, control_handle))
485 } else {
486 None
487 }
488 }
489
490 pub fn method_name(&self) -> &'static str {
492 match *self {
493 ProviderRequest::CreateView { .. } => "create_view",
494 }
495 }
496}
497
498#[derive(Debug, Clone)]
499pub struct ProviderControlHandle {
500 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
501}
502
503impl fidl::endpoints::ControlHandle for ProviderControlHandle {
504 fn shutdown(&self) {
505 self.inner.shutdown()
506 }
507 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
508 self.inner.shutdown_with_epitaph(status)
509 }
510
511 fn is_closed(&self) -> bool {
512 self.inner.channel().is_closed()
513 }
514 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
515 self.inner.channel().on_closed()
516 }
517
518 #[cfg(target_os = "fuchsia")]
519 fn signal_peer(
520 &self,
521 clear_mask: zx::Signals,
522 set_mask: zx::Signals,
523 ) -> Result<(), zx_status::Status> {
524 use fidl::Peered;
525 self.inner.channel().signal_peer(clear_mask, set_mask)
526 }
527}
528
529impl ProviderControlHandle {}
530
531mod internal {
532 use super::*;
533
534 impl fidl::encoding::ResourceTypeMarker for ProviderCreateViewRequest {
535 type Borrowed<'a> = &'a mut Self;
536 fn take_or_borrow<'a>(
537 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
538 ) -> Self::Borrowed<'a> {
539 value
540 }
541 }
542
543 unsafe impl fidl::encoding::TypeMarker for ProviderCreateViewRequest {
544 type Owned = Self;
545
546 #[inline(always)]
547 fn inline_align(_context: fidl::encoding::Context) -> usize {
548 4
549 }
550
551 #[inline(always)]
552 fn inline_size(_context: fidl::encoding::Context) -> usize {
553 8
554 }
555 }
556
557 unsafe impl
558 fidl::encoding::Encode<
559 ProviderCreateViewRequest,
560 fidl::encoding::DefaultFuchsiaResourceDialect,
561 > for &mut ProviderCreateViewRequest
562 {
563 #[inline]
564 unsafe fn encode(
565 self,
566 encoder: &mut fidl::encoding::Encoder<
567 '_,
568 fidl::encoding::DefaultFuchsiaResourceDialect,
569 >,
570 offset: usize,
571 _depth: fidl::encoding::Depth,
572 ) -> fidl::Result<()> {
573 encoder.debug_check_bounds::<ProviderCreateViewRequest>(offset);
574 fidl::encoding::Encode::<ProviderCreateViewRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
576 (
577 <fidl_fuchsia_ui_views::ViewCreationToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.a11y_view_token),
578 <fidl_fuchsia_ui_views::ViewportCreationToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.proxy_viewport_token),
579 ),
580 encoder, offset, _depth
581 )
582 }
583 }
584 unsafe impl<
585 T0: fidl::encoding::Encode<
586 fidl_fuchsia_ui_views::ViewCreationToken,
587 fidl::encoding::DefaultFuchsiaResourceDialect,
588 >,
589 T1: fidl::encoding::Encode<
590 fidl_fuchsia_ui_views::ViewportCreationToken,
591 fidl::encoding::DefaultFuchsiaResourceDialect,
592 >,
593 >
594 fidl::encoding::Encode<
595 ProviderCreateViewRequest,
596 fidl::encoding::DefaultFuchsiaResourceDialect,
597 > for (T0, T1)
598 {
599 #[inline]
600 unsafe fn encode(
601 self,
602 encoder: &mut fidl::encoding::Encoder<
603 '_,
604 fidl::encoding::DefaultFuchsiaResourceDialect,
605 >,
606 offset: usize,
607 depth: fidl::encoding::Depth,
608 ) -> fidl::Result<()> {
609 encoder.debug_check_bounds::<ProviderCreateViewRequest>(offset);
610 self.0.encode(encoder, offset + 0, depth)?;
614 self.1.encode(encoder, offset + 4, depth)?;
615 Ok(())
616 }
617 }
618
619 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
620 for ProviderCreateViewRequest
621 {
622 #[inline(always)]
623 fn new_empty() -> Self {
624 Self {
625 a11y_view_token: fidl::new_empty!(
626 fidl_fuchsia_ui_views::ViewCreationToken,
627 fidl::encoding::DefaultFuchsiaResourceDialect
628 ),
629 proxy_viewport_token: fidl::new_empty!(
630 fidl_fuchsia_ui_views::ViewportCreationToken,
631 fidl::encoding::DefaultFuchsiaResourceDialect
632 ),
633 }
634 }
635
636 #[inline]
637 unsafe fn decode(
638 &mut self,
639 decoder: &mut fidl::encoding::Decoder<
640 '_,
641 fidl::encoding::DefaultFuchsiaResourceDialect,
642 >,
643 offset: usize,
644 _depth: fidl::encoding::Depth,
645 ) -> fidl::Result<()> {
646 decoder.debug_check_bounds::<Self>(offset);
647 fidl::decode!(
649 fidl_fuchsia_ui_views::ViewCreationToken,
650 fidl::encoding::DefaultFuchsiaResourceDialect,
651 &mut self.a11y_view_token,
652 decoder,
653 offset + 0,
654 _depth
655 )?;
656 fidl::decode!(
657 fidl_fuchsia_ui_views::ViewportCreationToken,
658 fidl::encoding::DefaultFuchsiaResourceDialect,
659 &mut self.proxy_viewport_token,
660 decoder,
661 offset + 4,
662 _depth
663 )?;
664 Ok(())
665 }
666 }
667}