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