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 fidl::endpoints::ControlHandle for FacadeIteratorControlHandle {
399 fn shutdown(&self) {
400 self.inner.shutdown()
401 }
402
403 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
404 self.inner.shutdown_with_epitaph(status)
405 }
406
407 fn is_closed(&self) -> bool {
408 self.inner.channel().is_closed()
409 }
410 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
411 self.inner.channel().on_closed()
412 }
413
414 #[cfg(target_os = "fuchsia")]
415 fn signal_peer(
416 &self,
417 clear_mask: zx::Signals,
418 set_mask: zx::Signals,
419 ) -> Result<(), zx_status::Status> {
420 use fidl::Peered;
421 self.inner.channel().signal_peer(clear_mask, set_mask)
422 }
423}
424
425impl FacadeIteratorControlHandle {}
426
427#[must_use = "FIDL methods require a response to be sent"]
428#[derive(Debug)]
429pub struct FacadeIteratorGetNextResponder {
430 control_handle: std::mem::ManuallyDrop<FacadeIteratorControlHandle>,
431 tx_id: u32,
432}
433
434impl std::ops::Drop for FacadeIteratorGetNextResponder {
438 fn drop(&mut self) {
439 self.control_handle.shutdown();
440 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
442 }
443}
444
445impl fidl::endpoints::Responder for FacadeIteratorGetNextResponder {
446 type ControlHandle = FacadeIteratorControlHandle;
447
448 fn control_handle(&self) -> &FacadeIteratorControlHandle {
449 &self.control_handle
450 }
451
452 fn drop_without_shutdown(mut self) {
453 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
455 std::mem::forget(self);
457 }
458}
459
460impl FacadeIteratorGetNextResponder {
461 pub fn send(self, mut facades: &[String]) -> Result<(), fidl::Error> {
465 let _result = self.send_raw(facades);
466 if _result.is_err() {
467 self.control_handle.shutdown();
468 }
469 self.drop_without_shutdown();
470 _result
471 }
472
473 pub fn send_no_shutdown_on_err(self, mut facades: &[String]) -> Result<(), fidl::Error> {
475 let _result = self.send_raw(facades);
476 self.drop_without_shutdown();
477 _result
478 }
479
480 fn send_raw(&self, mut facades: &[String]) -> Result<(), fidl::Error> {
481 self.control_handle.inner.send::<FacadeIteratorGetNextResponse>(
482 (facades,),
483 self.tx_id,
484 0x1d22c13a17449134,
485 fidl::encoding::DynamicFlags::empty(),
486 )
487 }
488}
489
490#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
491pub struct FacadeProviderMarker;
492
493impl fidl::endpoints::ProtocolMarker for FacadeProviderMarker {
494 type Proxy = FacadeProviderProxy;
495 type RequestStream = FacadeProviderRequestStream;
496 #[cfg(target_os = "fuchsia")]
497 type SynchronousProxy = FacadeProviderSynchronousProxy;
498
499 const DEBUG_NAME: &'static str = "fuchsia.testing.sl4f.FacadeProvider";
500}
501impl fidl::endpoints::DiscoverableProtocolMarker for FacadeProviderMarker {}
502
503pub trait FacadeProviderProxyInterface: Send + Sync {
504 fn r#get_facades(
505 &self,
506 iterator: fidl::endpoints::ServerEnd<FacadeIteratorMarker>,
507 ) -> Result<(), fidl::Error>;
508 type ExecuteResponseFut: std::future::Future<Output = Result<(Option<fidl::Vmo>, Option<String>), fidl::Error>>
509 + Send;
510 fn r#execute(
511 &self,
512 facade: &str,
513 command: &str,
514 params_blob: fidl::Vmo,
515 ) -> Self::ExecuteResponseFut;
516 type CleanupResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
517 fn r#cleanup(&self) -> Self::CleanupResponseFut;
518 type PrintResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
519 fn r#print(&self) -> Self::PrintResponseFut;
520}
521#[derive(Debug)]
522#[cfg(target_os = "fuchsia")]
523pub struct FacadeProviderSynchronousProxy {
524 client: fidl::client::sync::Client,
525}
526
527#[cfg(target_os = "fuchsia")]
528impl fidl::endpoints::SynchronousProxy for FacadeProviderSynchronousProxy {
529 type Proxy = FacadeProviderProxy;
530 type Protocol = FacadeProviderMarker;
531
532 fn from_channel(inner: fidl::Channel) -> Self {
533 Self::new(inner)
534 }
535
536 fn into_channel(self) -> fidl::Channel {
537 self.client.into_channel()
538 }
539
540 fn as_channel(&self) -> &fidl::Channel {
541 self.client.as_channel()
542 }
543}
544
545#[cfg(target_os = "fuchsia")]
546impl FacadeProviderSynchronousProxy {
547 pub fn new(channel: fidl::Channel) -> Self {
548 Self { client: fidl::client::sync::Client::new(channel) }
549 }
550
551 pub fn into_channel(self) -> fidl::Channel {
552 self.client.into_channel()
553 }
554
555 pub fn wait_for_event(
558 &self,
559 deadline: zx::MonotonicInstant,
560 ) -> Result<FacadeProviderEvent, fidl::Error> {
561 FacadeProviderEvent::decode(self.client.wait_for_event::<FacadeProviderMarker>(deadline)?)
562 }
563
564 pub fn r#get_facades(
566 &self,
567 mut iterator: fidl::endpoints::ServerEnd<FacadeIteratorMarker>,
568 ) -> Result<(), fidl::Error> {
569 self.client.send::<FacadeProviderGetFacadesRequest>(
570 (iterator,),
571 0xe3f63eb545df361,
572 fidl::encoding::DynamicFlags::empty(),
573 )
574 }
575
576 pub fn r#execute(
578 &self,
579 mut facade: &str,
580 mut command: &str,
581 mut params_blob: fidl::Vmo,
582 ___deadline: zx::MonotonicInstant,
583 ) -> Result<(Option<fidl::Vmo>, Option<String>), fidl::Error> {
584 let _response = self.client.send_query::<
585 FacadeProviderExecuteRequest,
586 FacadeProviderExecuteResponse,
587 FacadeProviderMarker,
588 >(
589 (facade, command, params_blob,),
590 0x7d6de537b3caf392,
591 fidl::encoding::DynamicFlags::empty(),
592 ___deadline,
593 )?;
594 Ok((_response.result_blob, _response.error))
595 }
596
597 pub fn r#cleanup(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
600 let _response = self.client.send_query::<
601 fidl::encoding::EmptyPayload,
602 fidl::encoding::EmptyPayload,
603 FacadeProviderMarker,
604 >(
605 (),
606 0x3d3accf7ad309712,
607 fidl::encoding::DynamicFlags::empty(),
608 ___deadline,
609 )?;
610 Ok(_response)
611 }
612
613 pub fn r#print(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
615 let _response = self.client.send_query::<
616 fidl::encoding::EmptyPayload,
617 fidl::encoding::EmptyPayload,
618 FacadeProviderMarker,
619 >(
620 (),
621 0x3e8853ac2d3a18d7,
622 fidl::encoding::DynamicFlags::empty(),
623 ___deadline,
624 )?;
625 Ok(_response)
626 }
627}
628
629#[cfg(target_os = "fuchsia")]
630impl From<FacadeProviderSynchronousProxy> for zx::NullableHandle {
631 fn from(value: FacadeProviderSynchronousProxy) -> Self {
632 value.into_channel().into()
633 }
634}
635
636#[cfg(target_os = "fuchsia")]
637impl From<fidl::Channel> for FacadeProviderSynchronousProxy {
638 fn from(value: fidl::Channel) -> Self {
639 Self::new(value)
640 }
641}
642
643#[cfg(target_os = "fuchsia")]
644impl fidl::endpoints::FromClient for FacadeProviderSynchronousProxy {
645 type Protocol = FacadeProviderMarker;
646
647 fn from_client(value: fidl::endpoints::ClientEnd<FacadeProviderMarker>) -> Self {
648 Self::new(value.into_channel())
649 }
650}
651
652#[derive(Debug, Clone)]
653pub struct FacadeProviderProxy {
654 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
655}
656
657impl fidl::endpoints::Proxy for FacadeProviderProxy {
658 type Protocol = FacadeProviderMarker;
659
660 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
661 Self::new(inner)
662 }
663
664 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
665 self.client.into_channel().map_err(|client| Self { client })
666 }
667
668 fn as_channel(&self) -> &::fidl::AsyncChannel {
669 self.client.as_channel()
670 }
671}
672
673impl FacadeProviderProxy {
674 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
676 let protocol_name = <FacadeProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
677 Self { client: fidl::client::Client::new(channel, protocol_name) }
678 }
679
680 pub fn take_event_stream(&self) -> FacadeProviderEventStream {
686 FacadeProviderEventStream { event_receiver: self.client.take_event_receiver() }
687 }
688
689 pub fn r#get_facades(
691 &self,
692 mut iterator: fidl::endpoints::ServerEnd<FacadeIteratorMarker>,
693 ) -> Result<(), fidl::Error> {
694 FacadeProviderProxyInterface::r#get_facades(self, iterator)
695 }
696
697 pub fn r#execute(
699 &self,
700 mut facade: &str,
701 mut command: &str,
702 mut params_blob: fidl::Vmo,
703 ) -> fidl::client::QueryResponseFut<
704 (Option<fidl::Vmo>, Option<String>),
705 fidl::encoding::DefaultFuchsiaResourceDialect,
706 > {
707 FacadeProviderProxyInterface::r#execute(self, facade, command, params_blob)
708 }
709
710 pub fn r#cleanup(
713 &self,
714 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
715 FacadeProviderProxyInterface::r#cleanup(self)
716 }
717
718 pub fn r#print(
720 &self,
721 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
722 FacadeProviderProxyInterface::r#print(self)
723 }
724}
725
726impl FacadeProviderProxyInterface for FacadeProviderProxy {
727 fn r#get_facades(
728 &self,
729 mut iterator: fidl::endpoints::ServerEnd<FacadeIteratorMarker>,
730 ) -> Result<(), fidl::Error> {
731 self.client.send::<FacadeProviderGetFacadesRequest>(
732 (iterator,),
733 0xe3f63eb545df361,
734 fidl::encoding::DynamicFlags::empty(),
735 )
736 }
737
738 type ExecuteResponseFut = fidl::client::QueryResponseFut<
739 (Option<fidl::Vmo>, Option<String>),
740 fidl::encoding::DefaultFuchsiaResourceDialect,
741 >;
742 fn r#execute(
743 &self,
744 mut facade: &str,
745 mut command: &str,
746 mut params_blob: fidl::Vmo,
747 ) -> Self::ExecuteResponseFut {
748 fn _decode(
749 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
750 ) -> Result<(Option<fidl::Vmo>, Option<String>), fidl::Error> {
751 let _response = fidl::client::decode_transaction_body::<
752 FacadeProviderExecuteResponse,
753 fidl::encoding::DefaultFuchsiaResourceDialect,
754 0x7d6de537b3caf392,
755 >(_buf?)?;
756 Ok((_response.result_blob, _response.error))
757 }
758 self.client.send_query_and_decode::<
759 FacadeProviderExecuteRequest,
760 (Option<fidl::Vmo>, Option<String>),
761 >(
762 (facade, command, params_blob,),
763 0x7d6de537b3caf392,
764 fidl::encoding::DynamicFlags::empty(),
765 _decode,
766 )
767 }
768
769 type CleanupResponseFut =
770 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
771 fn r#cleanup(&self) -> Self::CleanupResponseFut {
772 fn _decode(
773 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
774 ) -> Result<(), fidl::Error> {
775 let _response = fidl::client::decode_transaction_body::<
776 fidl::encoding::EmptyPayload,
777 fidl::encoding::DefaultFuchsiaResourceDialect,
778 0x3d3accf7ad309712,
779 >(_buf?)?;
780 Ok(_response)
781 }
782 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
783 (),
784 0x3d3accf7ad309712,
785 fidl::encoding::DynamicFlags::empty(),
786 _decode,
787 )
788 }
789
790 type PrintResponseFut =
791 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
792 fn r#print(&self) -> Self::PrintResponseFut {
793 fn _decode(
794 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
795 ) -> Result<(), fidl::Error> {
796 let _response = fidl::client::decode_transaction_body::<
797 fidl::encoding::EmptyPayload,
798 fidl::encoding::DefaultFuchsiaResourceDialect,
799 0x3e8853ac2d3a18d7,
800 >(_buf?)?;
801 Ok(_response)
802 }
803 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
804 (),
805 0x3e8853ac2d3a18d7,
806 fidl::encoding::DynamicFlags::empty(),
807 _decode,
808 )
809 }
810}
811
812pub struct FacadeProviderEventStream {
813 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
814}
815
816impl std::marker::Unpin for FacadeProviderEventStream {}
817
818impl futures::stream::FusedStream for FacadeProviderEventStream {
819 fn is_terminated(&self) -> bool {
820 self.event_receiver.is_terminated()
821 }
822}
823
824impl futures::Stream for FacadeProviderEventStream {
825 type Item = Result<FacadeProviderEvent, fidl::Error>;
826
827 fn poll_next(
828 mut self: std::pin::Pin<&mut Self>,
829 cx: &mut std::task::Context<'_>,
830 ) -> std::task::Poll<Option<Self::Item>> {
831 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
832 &mut self.event_receiver,
833 cx
834 )?) {
835 Some(buf) => std::task::Poll::Ready(Some(FacadeProviderEvent::decode(buf))),
836 None => std::task::Poll::Ready(None),
837 }
838 }
839}
840
841#[derive(Debug)]
842pub enum FacadeProviderEvent {}
843
844impl FacadeProviderEvent {
845 fn decode(
847 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
848 ) -> Result<FacadeProviderEvent, fidl::Error> {
849 let (bytes, _handles) = buf.split_mut();
850 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
851 debug_assert_eq!(tx_header.tx_id, 0);
852 match tx_header.ordinal {
853 _ => Err(fidl::Error::UnknownOrdinal {
854 ordinal: tx_header.ordinal,
855 protocol_name:
856 <FacadeProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
857 }),
858 }
859 }
860}
861
862pub struct FacadeProviderRequestStream {
864 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
865 is_terminated: bool,
866}
867
868impl std::marker::Unpin for FacadeProviderRequestStream {}
869
870impl futures::stream::FusedStream for FacadeProviderRequestStream {
871 fn is_terminated(&self) -> bool {
872 self.is_terminated
873 }
874}
875
876impl fidl::endpoints::RequestStream for FacadeProviderRequestStream {
877 type Protocol = FacadeProviderMarker;
878 type ControlHandle = FacadeProviderControlHandle;
879
880 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
881 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
882 }
883
884 fn control_handle(&self) -> Self::ControlHandle {
885 FacadeProviderControlHandle { inner: self.inner.clone() }
886 }
887
888 fn into_inner(
889 self,
890 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
891 {
892 (self.inner, self.is_terminated)
893 }
894
895 fn from_inner(
896 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
897 is_terminated: bool,
898 ) -> Self {
899 Self { inner, is_terminated }
900 }
901}
902
903impl futures::Stream for FacadeProviderRequestStream {
904 type Item = Result<FacadeProviderRequest, fidl::Error>;
905
906 fn poll_next(
907 mut self: std::pin::Pin<&mut Self>,
908 cx: &mut std::task::Context<'_>,
909 ) -> std::task::Poll<Option<Self::Item>> {
910 let this = &mut *self;
911 if this.inner.check_shutdown(cx) {
912 this.is_terminated = true;
913 return std::task::Poll::Ready(None);
914 }
915 if this.is_terminated {
916 panic!("polled FacadeProviderRequestStream after completion");
917 }
918 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
919 |bytes, handles| {
920 match this.inner.channel().read_etc(cx, bytes, handles) {
921 std::task::Poll::Ready(Ok(())) => {}
922 std::task::Poll::Pending => return std::task::Poll::Pending,
923 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
924 this.is_terminated = true;
925 return std::task::Poll::Ready(None);
926 }
927 std::task::Poll::Ready(Err(e)) => {
928 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
929 e.into(),
930 ))));
931 }
932 }
933
934 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
936
937 std::task::Poll::Ready(Some(match header.ordinal {
938 0xe3f63eb545df361 => {
939 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
940 let mut req = fidl::new_empty!(
941 FacadeProviderGetFacadesRequest,
942 fidl::encoding::DefaultFuchsiaResourceDialect
943 );
944 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FacadeProviderGetFacadesRequest>(&header, _body_bytes, handles, &mut req)?;
945 let control_handle =
946 FacadeProviderControlHandle { inner: this.inner.clone() };
947 Ok(FacadeProviderRequest::GetFacades {
948 iterator: req.iterator,
949
950 control_handle,
951 })
952 }
953 0x7d6de537b3caf392 => {
954 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
955 let mut req = fidl::new_empty!(
956 FacadeProviderExecuteRequest,
957 fidl::encoding::DefaultFuchsiaResourceDialect
958 );
959 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FacadeProviderExecuteRequest>(&header, _body_bytes, handles, &mut req)?;
960 let control_handle =
961 FacadeProviderControlHandle { inner: this.inner.clone() };
962 Ok(FacadeProviderRequest::Execute {
963 facade: req.facade,
964 command: req.command,
965 params_blob: req.params_blob,
966
967 responder: FacadeProviderExecuteResponder {
968 control_handle: std::mem::ManuallyDrop::new(control_handle),
969 tx_id: header.tx_id,
970 },
971 })
972 }
973 0x3d3accf7ad309712 => {
974 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
975 let mut req = fidl::new_empty!(
976 fidl::encoding::EmptyPayload,
977 fidl::encoding::DefaultFuchsiaResourceDialect
978 );
979 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
980 let control_handle =
981 FacadeProviderControlHandle { inner: this.inner.clone() };
982 Ok(FacadeProviderRequest::Cleanup {
983 responder: FacadeProviderCleanupResponder {
984 control_handle: std::mem::ManuallyDrop::new(control_handle),
985 tx_id: header.tx_id,
986 },
987 })
988 }
989 0x3e8853ac2d3a18d7 => {
990 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
991 let mut req = fidl::new_empty!(
992 fidl::encoding::EmptyPayload,
993 fidl::encoding::DefaultFuchsiaResourceDialect
994 );
995 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
996 let control_handle =
997 FacadeProviderControlHandle { inner: this.inner.clone() };
998 Ok(FacadeProviderRequest::Print {
999 responder: FacadeProviderPrintResponder {
1000 control_handle: std::mem::ManuallyDrop::new(control_handle),
1001 tx_id: header.tx_id,
1002 },
1003 })
1004 }
1005 _ => Err(fidl::Error::UnknownOrdinal {
1006 ordinal: header.ordinal,
1007 protocol_name:
1008 <FacadeProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1009 }),
1010 }))
1011 },
1012 )
1013 }
1014}
1015
1016#[derive(Debug)]
1021pub enum FacadeProviderRequest {
1022 GetFacades {
1024 iterator: fidl::endpoints::ServerEnd<FacadeIteratorMarker>,
1025 control_handle: FacadeProviderControlHandle,
1026 },
1027 Execute {
1029 facade: String,
1030 command: String,
1031 params_blob: fidl::Vmo,
1032 responder: FacadeProviderExecuteResponder,
1033 },
1034 Cleanup { responder: FacadeProviderCleanupResponder },
1037 Print { responder: FacadeProviderPrintResponder },
1039}
1040
1041impl FacadeProviderRequest {
1042 #[allow(irrefutable_let_patterns)]
1043 pub fn into_get_facades(
1044 self,
1045 ) -> Option<(fidl::endpoints::ServerEnd<FacadeIteratorMarker>, FacadeProviderControlHandle)>
1046 {
1047 if let FacadeProviderRequest::GetFacades { iterator, control_handle } = self {
1048 Some((iterator, control_handle))
1049 } else {
1050 None
1051 }
1052 }
1053
1054 #[allow(irrefutable_let_patterns)]
1055 pub fn into_execute(
1056 self,
1057 ) -> Option<(String, String, fidl::Vmo, FacadeProviderExecuteResponder)> {
1058 if let FacadeProviderRequest::Execute { facade, command, params_blob, responder } = self {
1059 Some((facade, command, params_blob, responder))
1060 } else {
1061 None
1062 }
1063 }
1064
1065 #[allow(irrefutable_let_patterns)]
1066 pub fn into_cleanup(self) -> Option<(FacadeProviderCleanupResponder)> {
1067 if let FacadeProviderRequest::Cleanup { responder } = self {
1068 Some((responder))
1069 } else {
1070 None
1071 }
1072 }
1073
1074 #[allow(irrefutable_let_patterns)]
1075 pub fn into_print(self) -> Option<(FacadeProviderPrintResponder)> {
1076 if let FacadeProviderRequest::Print { responder } = self { Some((responder)) } else { None }
1077 }
1078
1079 pub fn method_name(&self) -> &'static str {
1081 match *self {
1082 FacadeProviderRequest::GetFacades { .. } => "get_facades",
1083 FacadeProviderRequest::Execute { .. } => "execute",
1084 FacadeProviderRequest::Cleanup { .. } => "cleanup",
1085 FacadeProviderRequest::Print { .. } => "print",
1086 }
1087 }
1088}
1089
1090#[derive(Debug, Clone)]
1091pub struct FacadeProviderControlHandle {
1092 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1093}
1094
1095impl fidl::endpoints::ControlHandle for FacadeProviderControlHandle {
1096 fn shutdown(&self) {
1097 self.inner.shutdown()
1098 }
1099
1100 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1101 self.inner.shutdown_with_epitaph(status)
1102 }
1103
1104 fn is_closed(&self) -> bool {
1105 self.inner.channel().is_closed()
1106 }
1107 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1108 self.inner.channel().on_closed()
1109 }
1110
1111 #[cfg(target_os = "fuchsia")]
1112 fn signal_peer(
1113 &self,
1114 clear_mask: zx::Signals,
1115 set_mask: zx::Signals,
1116 ) -> Result<(), zx_status::Status> {
1117 use fidl::Peered;
1118 self.inner.channel().signal_peer(clear_mask, set_mask)
1119 }
1120}
1121
1122impl FacadeProviderControlHandle {}
1123
1124#[must_use = "FIDL methods require a response to be sent"]
1125#[derive(Debug)]
1126pub struct FacadeProviderExecuteResponder {
1127 control_handle: std::mem::ManuallyDrop<FacadeProviderControlHandle>,
1128 tx_id: u32,
1129}
1130
1131impl std::ops::Drop for FacadeProviderExecuteResponder {
1135 fn drop(&mut self) {
1136 self.control_handle.shutdown();
1137 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1139 }
1140}
1141
1142impl fidl::endpoints::Responder for FacadeProviderExecuteResponder {
1143 type ControlHandle = FacadeProviderControlHandle;
1144
1145 fn control_handle(&self) -> &FacadeProviderControlHandle {
1146 &self.control_handle
1147 }
1148
1149 fn drop_without_shutdown(mut self) {
1150 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1152 std::mem::forget(self);
1154 }
1155}
1156
1157impl FacadeProviderExecuteResponder {
1158 pub fn send(
1162 self,
1163 mut result_blob: Option<fidl::Vmo>,
1164 mut error: Option<&str>,
1165 ) -> Result<(), fidl::Error> {
1166 let _result = self.send_raw(result_blob, error);
1167 if _result.is_err() {
1168 self.control_handle.shutdown();
1169 }
1170 self.drop_without_shutdown();
1171 _result
1172 }
1173
1174 pub fn send_no_shutdown_on_err(
1176 self,
1177 mut result_blob: Option<fidl::Vmo>,
1178 mut error: Option<&str>,
1179 ) -> Result<(), fidl::Error> {
1180 let _result = self.send_raw(result_blob, error);
1181 self.drop_without_shutdown();
1182 _result
1183 }
1184
1185 fn send_raw(
1186 &self,
1187 mut result_blob: Option<fidl::Vmo>,
1188 mut error: Option<&str>,
1189 ) -> Result<(), fidl::Error> {
1190 self.control_handle.inner.send::<FacadeProviderExecuteResponse>(
1191 (result_blob, error),
1192 self.tx_id,
1193 0x7d6de537b3caf392,
1194 fidl::encoding::DynamicFlags::empty(),
1195 )
1196 }
1197}
1198
1199#[must_use = "FIDL methods require a response to be sent"]
1200#[derive(Debug)]
1201pub struct FacadeProviderCleanupResponder {
1202 control_handle: std::mem::ManuallyDrop<FacadeProviderControlHandle>,
1203 tx_id: u32,
1204}
1205
1206impl std::ops::Drop for FacadeProviderCleanupResponder {
1210 fn drop(&mut self) {
1211 self.control_handle.shutdown();
1212 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1214 }
1215}
1216
1217impl fidl::endpoints::Responder for FacadeProviderCleanupResponder {
1218 type ControlHandle = FacadeProviderControlHandle;
1219
1220 fn control_handle(&self) -> &FacadeProviderControlHandle {
1221 &self.control_handle
1222 }
1223
1224 fn drop_without_shutdown(mut self) {
1225 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1227 std::mem::forget(self);
1229 }
1230}
1231
1232impl FacadeProviderCleanupResponder {
1233 pub fn send(self) -> Result<(), fidl::Error> {
1237 let _result = self.send_raw();
1238 if _result.is_err() {
1239 self.control_handle.shutdown();
1240 }
1241 self.drop_without_shutdown();
1242 _result
1243 }
1244
1245 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1247 let _result = self.send_raw();
1248 self.drop_without_shutdown();
1249 _result
1250 }
1251
1252 fn send_raw(&self) -> Result<(), fidl::Error> {
1253 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1254 (),
1255 self.tx_id,
1256 0x3d3accf7ad309712,
1257 fidl::encoding::DynamicFlags::empty(),
1258 )
1259 }
1260}
1261
1262#[must_use = "FIDL methods require a response to be sent"]
1263#[derive(Debug)]
1264pub struct FacadeProviderPrintResponder {
1265 control_handle: std::mem::ManuallyDrop<FacadeProviderControlHandle>,
1266 tx_id: u32,
1267}
1268
1269impl std::ops::Drop for FacadeProviderPrintResponder {
1273 fn drop(&mut self) {
1274 self.control_handle.shutdown();
1275 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1277 }
1278}
1279
1280impl fidl::endpoints::Responder for FacadeProviderPrintResponder {
1281 type ControlHandle = FacadeProviderControlHandle;
1282
1283 fn control_handle(&self) -> &FacadeProviderControlHandle {
1284 &self.control_handle
1285 }
1286
1287 fn drop_without_shutdown(mut self) {
1288 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1290 std::mem::forget(self);
1292 }
1293}
1294
1295impl FacadeProviderPrintResponder {
1296 pub fn send(self) -> Result<(), fidl::Error> {
1300 let _result = self.send_raw();
1301 if _result.is_err() {
1302 self.control_handle.shutdown();
1303 }
1304 self.drop_without_shutdown();
1305 _result
1306 }
1307
1308 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1310 let _result = self.send_raw();
1311 self.drop_without_shutdown();
1312 _result
1313 }
1314
1315 fn send_raw(&self) -> Result<(), fidl::Error> {
1316 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1317 (),
1318 self.tx_id,
1319 0x3e8853ac2d3a18d7,
1320 fidl::encoding::DynamicFlags::empty(),
1321 )
1322 }
1323}
1324
1325mod internal {
1326 use super::*;
1327
1328 impl fidl::encoding::ResourceTypeMarker for FacadeProviderExecuteRequest {
1329 type Borrowed<'a> = &'a mut Self;
1330 fn take_or_borrow<'a>(
1331 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1332 ) -> Self::Borrowed<'a> {
1333 value
1334 }
1335 }
1336
1337 unsafe impl fidl::encoding::TypeMarker for FacadeProviderExecuteRequest {
1338 type Owned = Self;
1339
1340 #[inline(always)]
1341 fn inline_align(_context: fidl::encoding::Context) -> usize {
1342 8
1343 }
1344
1345 #[inline(always)]
1346 fn inline_size(_context: fidl::encoding::Context) -> usize {
1347 40
1348 }
1349 }
1350
1351 unsafe impl
1352 fidl::encoding::Encode<
1353 FacadeProviderExecuteRequest,
1354 fidl::encoding::DefaultFuchsiaResourceDialect,
1355 > for &mut FacadeProviderExecuteRequest
1356 {
1357 #[inline]
1358 unsafe fn encode(
1359 self,
1360 encoder: &mut fidl::encoding::Encoder<
1361 '_,
1362 fidl::encoding::DefaultFuchsiaResourceDialect,
1363 >,
1364 offset: usize,
1365 _depth: fidl::encoding::Depth,
1366 ) -> fidl::Result<()> {
1367 encoder.debug_check_bounds::<FacadeProviderExecuteRequest>(offset);
1368 fidl::encoding::Encode::<
1370 FacadeProviderExecuteRequest,
1371 fidl::encoding::DefaultFuchsiaResourceDialect,
1372 >::encode(
1373 (
1374 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
1375 &self.facade,
1376 ),
1377 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
1378 &self.command,
1379 ),
1380 <fidl::encoding::HandleType<
1381 fidl::Vmo,
1382 { fidl::ObjectType::VMO.into_raw() },
1383 2147483648,
1384 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
1385 &mut self.params_blob
1386 ),
1387 ),
1388 encoder,
1389 offset,
1390 _depth,
1391 )
1392 }
1393 }
1394 unsafe impl<
1395 T0: fidl::encoding::Encode<
1396 fidl::encoding::UnboundedString,
1397 fidl::encoding::DefaultFuchsiaResourceDialect,
1398 >,
1399 T1: fidl::encoding::Encode<
1400 fidl::encoding::UnboundedString,
1401 fidl::encoding::DefaultFuchsiaResourceDialect,
1402 >,
1403 T2: fidl::encoding::Encode<
1404 fidl::encoding::HandleType<
1405 fidl::Vmo,
1406 { fidl::ObjectType::VMO.into_raw() },
1407 2147483648,
1408 >,
1409 fidl::encoding::DefaultFuchsiaResourceDialect,
1410 >,
1411 >
1412 fidl::encoding::Encode<
1413 FacadeProviderExecuteRequest,
1414 fidl::encoding::DefaultFuchsiaResourceDialect,
1415 > for (T0, T1, T2)
1416 {
1417 #[inline]
1418 unsafe fn encode(
1419 self,
1420 encoder: &mut fidl::encoding::Encoder<
1421 '_,
1422 fidl::encoding::DefaultFuchsiaResourceDialect,
1423 >,
1424 offset: usize,
1425 depth: fidl::encoding::Depth,
1426 ) -> fidl::Result<()> {
1427 encoder.debug_check_bounds::<FacadeProviderExecuteRequest>(offset);
1428 unsafe {
1431 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
1432 (ptr as *mut u64).write_unaligned(0);
1433 }
1434 self.0.encode(encoder, offset + 0, depth)?;
1436 self.1.encode(encoder, offset + 16, depth)?;
1437 self.2.encode(encoder, offset + 32, depth)?;
1438 Ok(())
1439 }
1440 }
1441
1442 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1443 for FacadeProviderExecuteRequest
1444 {
1445 #[inline(always)]
1446 fn new_empty() -> Self {
1447 Self {
1448 facade: fidl::new_empty!(
1449 fidl::encoding::UnboundedString,
1450 fidl::encoding::DefaultFuchsiaResourceDialect
1451 ),
1452 command: fidl::new_empty!(
1453 fidl::encoding::UnboundedString,
1454 fidl::encoding::DefaultFuchsiaResourceDialect
1455 ),
1456 params_blob: fidl::new_empty!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1457 }
1458 }
1459
1460 #[inline]
1461 unsafe fn decode(
1462 &mut self,
1463 decoder: &mut fidl::encoding::Decoder<
1464 '_,
1465 fidl::encoding::DefaultFuchsiaResourceDialect,
1466 >,
1467 offset: usize,
1468 _depth: fidl::encoding::Depth,
1469 ) -> fidl::Result<()> {
1470 decoder.debug_check_bounds::<Self>(offset);
1471 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
1473 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1474 let mask = 0xffffffff00000000u64;
1475 let maskedval = padval & mask;
1476 if maskedval != 0 {
1477 return Err(fidl::Error::NonZeroPadding {
1478 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
1479 });
1480 }
1481 fidl::decode!(
1482 fidl::encoding::UnboundedString,
1483 fidl::encoding::DefaultFuchsiaResourceDialect,
1484 &mut self.facade,
1485 decoder,
1486 offset + 0,
1487 _depth
1488 )?;
1489 fidl::decode!(
1490 fidl::encoding::UnboundedString,
1491 fidl::encoding::DefaultFuchsiaResourceDialect,
1492 &mut self.command,
1493 decoder,
1494 offset + 16,
1495 _depth
1496 )?;
1497 fidl::decode!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.params_blob, decoder, offset + 32, _depth)?;
1498 Ok(())
1499 }
1500 }
1501
1502 impl fidl::encoding::ResourceTypeMarker for FacadeProviderExecuteResponse {
1503 type Borrowed<'a> = &'a mut Self;
1504 fn take_or_borrow<'a>(
1505 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1506 ) -> Self::Borrowed<'a> {
1507 value
1508 }
1509 }
1510
1511 unsafe impl fidl::encoding::TypeMarker for FacadeProviderExecuteResponse {
1512 type Owned = Self;
1513
1514 #[inline(always)]
1515 fn inline_align(_context: fidl::encoding::Context) -> usize {
1516 8
1517 }
1518
1519 #[inline(always)]
1520 fn inline_size(_context: fidl::encoding::Context) -> usize {
1521 24
1522 }
1523 }
1524
1525 unsafe impl
1526 fidl::encoding::Encode<
1527 FacadeProviderExecuteResponse,
1528 fidl::encoding::DefaultFuchsiaResourceDialect,
1529 > for &mut FacadeProviderExecuteResponse
1530 {
1531 #[inline]
1532 unsafe fn encode(
1533 self,
1534 encoder: &mut fidl::encoding::Encoder<
1535 '_,
1536 fidl::encoding::DefaultFuchsiaResourceDialect,
1537 >,
1538 offset: usize,
1539 _depth: fidl::encoding::Depth,
1540 ) -> fidl::Result<()> {
1541 encoder.debug_check_bounds::<FacadeProviderExecuteResponse>(offset);
1542 fidl::encoding::Encode::<FacadeProviderExecuteResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1544 (
1545 <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),
1546 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.error),
1547 ),
1548 encoder, offset, _depth
1549 )
1550 }
1551 }
1552 unsafe impl<
1553 T0: fidl::encoding::Encode<
1554 fidl::encoding::Optional<
1555 fidl::encoding::HandleType<
1556 fidl::Vmo,
1557 { fidl::ObjectType::VMO.into_raw() },
1558 2147483648,
1559 >,
1560 >,
1561 fidl::encoding::DefaultFuchsiaResourceDialect,
1562 >,
1563 T1: fidl::encoding::Encode<
1564 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1565 fidl::encoding::DefaultFuchsiaResourceDialect,
1566 >,
1567 >
1568 fidl::encoding::Encode<
1569 FacadeProviderExecuteResponse,
1570 fidl::encoding::DefaultFuchsiaResourceDialect,
1571 > for (T0, T1)
1572 {
1573 #[inline]
1574 unsafe fn encode(
1575 self,
1576 encoder: &mut fidl::encoding::Encoder<
1577 '_,
1578 fidl::encoding::DefaultFuchsiaResourceDialect,
1579 >,
1580 offset: usize,
1581 depth: fidl::encoding::Depth,
1582 ) -> fidl::Result<()> {
1583 encoder.debug_check_bounds::<FacadeProviderExecuteResponse>(offset);
1584 unsafe {
1587 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1588 (ptr as *mut u64).write_unaligned(0);
1589 }
1590 self.0.encode(encoder, offset + 0, depth)?;
1592 self.1.encode(encoder, offset + 8, depth)?;
1593 Ok(())
1594 }
1595 }
1596
1597 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1598 for FacadeProviderExecuteResponse
1599 {
1600 #[inline(always)]
1601 fn new_empty() -> Self {
1602 Self {
1603 result_blob: fidl::new_empty!(
1604 fidl::encoding::Optional<
1605 fidl::encoding::HandleType<
1606 fidl::Vmo,
1607 { fidl::ObjectType::VMO.into_raw() },
1608 2147483648,
1609 >,
1610 >,
1611 fidl::encoding::DefaultFuchsiaResourceDialect
1612 ),
1613 error: fidl::new_empty!(
1614 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1615 fidl::encoding::DefaultFuchsiaResourceDialect
1616 ),
1617 }
1618 }
1619
1620 #[inline]
1621 unsafe fn decode(
1622 &mut self,
1623 decoder: &mut fidl::encoding::Decoder<
1624 '_,
1625 fidl::encoding::DefaultFuchsiaResourceDialect,
1626 >,
1627 offset: usize,
1628 _depth: fidl::encoding::Depth,
1629 ) -> fidl::Result<()> {
1630 decoder.debug_check_bounds::<Self>(offset);
1631 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1633 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1634 let mask = 0xffffffff00000000u64;
1635 let maskedval = padval & mask;
1636 if maskedval != 0 {
1637 return Err(fidl::Error::NonZeroPadding {
1638 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1639 });
1640 }
1641 fidl::decode!(
1642 fidl::encoding::Optional<
1643 fidl::encoding::HandleType<
1644 fidl::Vmo,
1645 { fidl::ObjectType::VMO.into_raw() },
1646 2147483648,
1647 >,
1648 >,
1649 fidl::encoding::DefaultFuchsiaResourceDialect,
1650 &mut self.result_blob,
1651 decoder,
1652 offset + 0,
1653 _depth
1654 )?;
1655 fidl::decode!(
1656 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1657 fidl::encoding::DefaultFuchsiaResourceDialect,
1658 &mut self.error,
1659 decoder,
1660 offset + 8,
1661 _depth
1662 )?;
1663 Ok(())
1664 }
1665 }
1666
1667 impl fidl::encoding::ResourceTypeMarker for FacadeProviderGetFacadesRequest {
1668 type Borrowed<'a> = &'a mut Self;
1669 fn take_or_borrow<'a>(
1670 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1671 ) -> Self::Borrowed<'a> {
1672 value
1673 }
1674 }
1675
1676 unsafe impl fidl::encoding::TypeMarker for FacadeProviderGetFacadesRequest {
1677 type Owned = Self;
1678
1679 #[inline(always)]
1680 fn inline_align(_context: fidl::encoding::Context) -> usize {
1681 4
1682 }
1683
1684 #[inline(always)]
1685 fn inline_size(_context: fidl::encoding::Context) -> usize {
1686 4
1687 }
1688 }
1689
1690 unsafe impl
1691 fidl::encoding::Encode<
1692 FacadeProviderGetFacadesRequest,
1693 fidl::encoding::DefaultFuchsiaResourceDialect,
1694 > for &mut FacadeProviderGetFacadesRequest
1695 {
1696 #[inline]
1697 unsafe fn encode(
1698 self,
1699 encoder: &mut fidl::encoding::Encoder<
1700 '_,
1701 fidl::encoding::DefaultFuchsiaResourceDialect,
1702 >,
1703 offset: usize,
1704 _depth: fidl::encoding::Depth,
1705 ) -> fidl::Result<()> {
1706 encoder.debug_check_bounds::<FacadeProviderGetFacadesRequest>(offset);
1707 fidl::encoding::Encode::<FacadeProviderGetFacadesRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1709 (
1710 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FacadeIteratorMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.iterator),
1711 ),
1712 encoder, offset, _depth
1713 )
1714 }
1715 }
1716 unsafe impl<
1717 T0: fidl::encoding::Encode<
1718 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FacadeIteratorMarker>>,
1719 fidl::encoding::DefaultFuchsiaResourceDialect,
1720 >,
1721 >
1722 fidl::encoding::Encode<
1723 FacadeProviderGetFacadesRequest,
1724 fidl::encoding::DefaultFuchsiaResourceDialect,
1725 > for (T0,)
1726 {
1727 #[inline]
1728 unsafe fn encode(
1729 self,
1730 encoder: &mut fidl::encoding::Encoder<
1731 '_,
1732 fidl::encoding::DefaultFuchsiaResourceDialect,
1733 >,
1734 offset: usize,
1735 depth: fidl::encoding::Depth,
1736 ) -> fidl::Result<()> {
1737 encoder.debug_check_bounds::<FacadeProviderGetFacadesRequest>(offset);
1738 self.0.encode(encoder, offset + 0, depth)?;
1742 Ok(())
1743 }
1744 }
1745
1746 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1747 for FacadeProviderGetFacadesRequest
1748 {
1749 #[inline(always)]
1750 fn new_empty() -> Self {
1751 Self {
1752 iterator: fidl::new_empty!(
1753 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FacadeIteratorMarker>>,
1754 fidl::encoding::DefaultFuchsiaResourceDialect
1755 ),
1756 }
1757 }
1758
1759 #[inline]
1760 unsafe fn decode(
1761 &mut self,
1762 decoder: &mut fidl::encoding::Decoder<
1763 '_,
1764 fidl::encoding::DefaultFuchsiaResourceDialect,
1765 >,
1766 offset: usize,
1767 _depth: fidl::encoding::Depth,
1768 ) -> fidl::Result<()> {
1769 decoder.debug_check_bounds::<Self>(offset);
1770 fidl::decode!(
1772 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FacadeIteratorMarker>>,
1773 fidl::encoding::DefaultFuchsiaResourceDialect,
1774 &mut self.iterator,
1775 decoder,
1776 offset + 0,
1777 _depth
1778 )?;
1779 Ok(())
1780 }
1781 }
1782}