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