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