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_dash__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct LauncherExploreComponentOverPtyRequest {
16 pub moniker: String,
18 pub pty: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
20 pub tool_urls: Vec<String>,
23 pub command: Option<String>,
25 pub ns_layout: DashNamespaceLayout,
27}
28
29impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
30 for LauncherExploreComponentOverPtyRequest
31{
32}
33
34#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
35pub struct LauncherExploreComponentOverSocketRequest {
36 pub moniker: String,
38 pub socket: fidl::Socket,
40 pub tool_urls: Vec<String>,
43 pub command: Option<String>,
45 pub ns_layout: DashNamespaceLayout,
47}
48
49impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
50 for LauncherExploreComponentOverSocketRequest
51{
52}
53
54#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
55pub struct LauncherExplorePackageOverSocket2Request {
56 pub fuchsia_pkg_resolver: FuchsiaPkgResolver,
59 pub url: String,
65 pub subpackages: Vec<String>,
69 pub socket: fidl::Socket,
71 pub tool_urls: Vec<String>,
74 pub command: Option<String>,
76}
77
78impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
79 for LauncherExplorePackageOverSocket2Request
80{
81}
82
83#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
84pub struct LauncherExplorePackageOverSocketRequest {
85 pub url: String,
91 pub subpackages: Vec<String>,
95 pub socket: fidl::Socket,
97 pub tool_urls: Vec<String>,
100 pub command: Option<String>,
102}
103
104impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
105 for LauncherExplorePackageOverSocketRequest
106{
107}
108
109#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
110pub struct LauncherMarker;
111
112impl fidl::endpoints::ProtocolMarker for LauncherMarker {
113 type Proxy = LauncherProxy;
114 type RequestStream = LauncherRequestStream;
115 #[cfg(target_os = "fuchsia")]
116 type SynchronousProxy = LauncherSynchronousProxy;
117
118 const DEBUG_NAME: &'static str = "fuchsia.dash.Launcher";
119}
120impl fidl::endpoints::DiscoverableProtocolMarker for LauncherMarker {}
121pub type LauncherExploreComponentOverPtyResult = Result<(), LauncherError>;
122pub type LauncherExploreComponentOverSocketResult = Result<(), LauncherError>;
123pub type LauncherExplorePackageOverSocketResult = Result<(), LauncherError>;
124pub type LauncherExplorePackageOverSocket2Result = Result<(), LauncherError>;
125
126pub trait LauncherProxyInterface: Send + Sync {
127 type ExploreComponentOverPtyResponseFut: std::future::Future<Output = Result<LauncherExploreComponentOverPtyResult, fidl::Error>>
128 + Send;
129 fn r#explore_component_over_pty(
130 &self,
131 moniker: &str,
132 pty: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
133 tool_urls: &[String],
134 command: Option<&str>,
135 ns_layout: DashNamespaceLayout,
136 ) -> Self::ExploreComponentOverPtyResponseFut;
137 type ExploreComponentOverSocketResponseFut: std::future::Future<Output = Result<LauncherExploreComponentOverSocketResult, fidl::Error>>
138 + Send;
139 fn r#explore_component_over_socket(
140 &self,
141 moniker: &str,
142 socket: fidl::Socket,
143 tool_urls: &[String],
144 command: Option<&str>,
145 ns_layout: DashNamespaceLayout,
146 ) -> Self::ExploreComponentOverSocketResponseFut;
147 type ExplorePackageOverSocketResponseFut: std::future::Future<Output = Result<LauncherExplorePackageOverSocketResult, fidl::Error>>
148 + Send;
149 fn r#explore_package_over_socket(
150 &self,
151 url: &str,
152 subpackages: &[String],
153 socket: fidl::Socket,
154 tool_urls: &[String],
155 command: Option<&str>,
156 ) -> Self::ExplorePackageOverSocketResponseFut;
157 type ExplorePackageOverSocket2ResponseFut: std::future::Future<Output = Result<LauncherExplorePackageOverSocket2Result, fidl::Error>>
158 + Send;
159 fn r#explore_package_over_socket2(
160 &self,
161 fuchsia_pkg_resolver: FuchsiaPkgResolver,
162 url: &str,
163 subpackages: &[String],
164 socket: fidl::Socket,
165 tool_urls: &[String],
166 command: Option<&str>,
167 ) -> Self::ExplorePackageOverSocket2ResponseFut;
168}
169#[derive(Debug)]
170#[cfg(target_os = "fuchsia")]
171pub struct LauncherSynchronousProxy {
172 client: fidl::client::sync::Client,
173}
174
175#[cfg(target_os = "fuchsia")]
176impl fidl::endpoints::SynchronousProxy for LauncherSynchronousProxy {
177 type Proxy = LauncherProxy;
178 type Protocol = LauncherMarker;
179
180 fn from_channel(inner: fidl::Channel) -> Self {
181 Self::new(inner)
182 }
183
184 fn into_channel(self) -> fidl::Channel {
185 self.client.into_channel()
186 }
187
188 fn as_channel(&self) -> &fidl::Channel {
189 self.client.as_channel()
190 }
191}
192
193#[cfg(target_os = "fuchsia")]
194impl LauncherSynchronousProxy {
195 pub fn new(channel: fidl::Channel) -> Self {
196 let protocol_name = <LauncherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
197 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
198 }
199
200 pub fn into_channel(self) -> fidl::Channel {
201 self.client.into_channel()
202 }
203
204 pub fn wait_for_event(
207 &self,
208 deadline: zx::MonotonicInstant,
209 ) -> Result<LauncherEvent, fidl::Error> {
210 LauncherEvent::decode(self.client.wait_for_event(deadline)?)
211 }
212
213 pub fn r#explore_component_over_pty(
216 &self,
217 mut moniker: &str,
218 mut pty: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
219 mut tool_urls: &[String],
220 mut command: Option<&str>,
221 mut ns_layout: DashNamespaceLayout,
222 ___deadline: zx::MonotonicInstant,
223 ) -> Result<LauncherExploreComponentOverPtyResult, fidl::Error> {
224 let _response = self.client.send_query::<
225 LauncherExploreComponentOverPtyRequest,
226 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
227 >(
228 (moniker, pty, tool_urls, command, ns_layout,),
229 0x22efaa9c12b8779f,
230 fidl::encoding::DynamicFlags::empty(),
231 ___deadline,
232 )?;
233 Ok(_response.map(|x| x))
234 }
235
236 pub fn r#explore_component_over_socket(
242 &self,
243 mut moniker: &str,
244 mut socket: fidl::Socket,
245 mut tool_urls: &[String],
246 mut command: Option<&str>,
247 mut ns_layout: DashNamespaceLayout,
248 ___deadline: zx::MonotonicInstant,
249 ) -> Result<LauncherExploreComponentOverSocketResult, fidl::Error> {
250 let _response = self.client.send_query::<
251 LauncherExploreComponentOverSocketRequest,
252 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
253 >(
254 (moniker, socket, tool_urls, command, ns_layout,),
255 0x233557fb2b70eb68,
256 fidl::encoding::DynamicFlags::empty(),
257 ___deadline,
258 )?;
259 Ok(_response.map(|x| x))
260 }
261
262 pub fn r#explore_package_over_socket(
273 &self,
274 mut url: &str,
275 mut subpackages: &[String],
276 mut socket: fidl::Socket,
277 mut tool_urls: &[String],
278 mut command: Option<&str>,
279 ___deadline: zx::MonotonicInstant,
280 ) -> Result<LauncherExplorePackageOverSocketResult, fidl::Error> {
281 let _response = self.client.send_query::<
282 LauncherExplorePackageOverSocketRequest,
283 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
284 >(
285 (url, subpackages, socket, tool_urls, command,),
286 0x8e536067655b5a2,
287 fidl::encoding::DynamicFlags::empty(),
288 ___deadline,
289 )?;
290 Ok(_response.map(|x| x))
291 }
292
293 pub fn r#explore_package_over_socket2(
299 &self,
300 mut fuchsia_pkg_resolver: FuchsiaPkgResolver,
301 mut url: &str,
302 mut subpackages: &[String],
303 mut socket: fidl::Socket,
304 mut tool_urls: &[String],
305 mut command: Option<&str>,
306 ___deadline: zx::MonotonicInstant,
307 ) -> Result<LauncherExplorePackageOverSocket2Result, fidl::Error> {
308 let _response = self.client.send_query::<
309 LauncherExplorePackageOverSocket2Request,
310 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
311 >(
312 (fuchsia_pkg_resolver, url, subpackages, socket, tool_urls, command,),
313 0x3884e07c1fa8d20b,
314 fidl::encoding::DynamicFlags::empty(),
315 ___deadline,
316 )?;
317 Ok(_response.map(|x| x))
318 }
319}
320
321#[cfg(target_os = "fuchsia")]
322impl From<LauncherSynchronousProxy> for zx::Handle {
323 fn from(value: LauncherSynchronousProxy) -> Self {
324 value.into_channel().into()
325 }
326}
327
328#[cfg(target_os = "fuchsia")]
329impl From<fidl::Channel> for LauncherSynchronousProxy {
330 fn from(value: fidl::Channel) -> Self {
331 Self::new(value)
332 }
333}
334
335#[cfg(target_os = "fuchsia")]
336impl fidl::endpoints::FromClient for LauncherSynchronousProxy {
337 type Protocol = LauncherMarker;
338
339 fn from_client(value: fidl::endpoints::ClientEnd<LauncherMarker>) -> Self {
340 Self::new(value.into_channel())
341 }
342}
343
344#[derive(Debug, Clone)]
345pub struct LauncherProxy {
346 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
347}
348
349impl fidl::endpoints::Proxy for LauncherProxy {
350 type Protocol = LauncherMarker;
351
352 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
353 Self::new(inner)
354 }
355
356 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
357 self.client.into_channel().map_err(|client| Self { client })
358 }
359
360 fn as_channel(&self) -> &::fidl::AsyncChannel {
361 self.client.as_channel()
362 }
363}
364
365impl LauncherProxy {
366 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
368 let protocol_name = <LauncherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
369 Self { client: fidl::client::Client::new(channel, protocol_name) }
370 }
371
372 pub fn take_event_stream(&self) -> LauncherEventStream {
378 LauncherEventStream { event_receiver: self.client.take_event_receiver() }
379 }
380
381 pub fn r#explore_component_over_pty(
384 &self,
385 mut moniker: &str,
386 mut pty: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
387 mut tool_urls: &[String],
388 mut command: Option<&str>,
389 mut ns_layout: DashNamespaceLayout,
390 ) -> fidl::client::QueryResponseFut<
391 LauncherExploreComponentOverPtyResult,
392 fidl::encoding::DefaultFuchsiaResourceDialect,
393 > {
394 LauncherProxyInterface::r#explore_component_over_pty(
395 self, moniker, pty, tool_urls, command, ns_layout,
396 )
397 }
398
399 pub fn r#explore_component_over_socket(
405 &self,
406 mut moniker: &str,
407 mut socket: fidl::Socket,
408 mut tool_urls: &[String],
409 mut command: Option<&str>,
410 mut ns_layout: DashNamespaceLayout,
411 ) -> fidl::client::QueryResponseFut<
412 LauncherExploreComponentOverSocketResult,
413 fidl::encoding::DefaultFuchsiaResourceDialect,
414 > {
415 LauncherProxyInterface::r#explore_component_over_socket(
416 self, moniker, socket, tool_urls, command, ns_layout,
417 )
418 }
419
420 pub fn r#explore_package_over_socket(
431 &self,
432 mut url: &str,
433 mut subpackages: &[String],
434 mut socket: fidl::Socket,
435 mut tool_urls: &[String],
436 mut command: Option<&str>,
437 ) -> fidl::client::QueryResponseFut<
438 LauncherExplorePackageOverSocketResult,
439 fidl::encoding::DefaultFuchsiaResourceDialect,
440 > {
441 LauncherProxyInterface::r#explore_package_over_socket(
442 self,
443 url,
444 subpackages,
445 socket,
446 tool_urls,
447 command,
448 )
449 }
450
451 pub fn r#explore_package_over_socket2(
457 &self,
458 mut fuchsia_pkg_resolver: FuchsiaPkgResolver,
459 mut url: &str,
460 mut subpackages: &[String],
461 mut socket: fidl::Socket,
462 mut tool_urls: &[String],
463 mut command: Option<&str>,
464 ) -> fidl::client::QueryResponseFut<
465 LauncherExplorePackageOverSocket2Result,
466 fidl::encoding::DefaultFuchsiaResourceDialect,
467 > {
468 LauncherProxyInterface::r#explore_package_over_socket2(
469 self,
470 fuchsia_pkg_resolver,
471 url,
472 subpackages,
473 socket,
474 tool_urls,
475 command,
476 )
477 }
478}
479
480impl LauncherProxyInterface for LauncherProxy {
481 type ExploreComponentOverPtyResponseFut = fidl::client::QueryResponseFut<
482 LauncherExploreComponentOverPtyResult,
483 fidl::encoding::DefaultFuchsiaResourceDialect,
484 >;
485 fn r#explore_component_over_pty(
486 &self,
487 mut moniker: &str,
488 mut pty: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
489 mut tool_urls: &[String],
490 mut command: Option<&str>,
491 mut ns_layout: DashNamespaceLayout,
492 ) -> Self::ExploreComponentOverPtyResponseFut {
493 fn _decode(
494 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
495 ) -> Result<LauncherExploreComponentOverPtyResult, fidl::Error> {
496 let _response = fidl::client::decode_transaction_body::<
497 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
498 fidl::encoding::DefaultFuchsiaResourceDialect,
499 0x22efaa9c12b8779f,
500 >(_buf?)?;
501 Ok(_response.map(|x| x))
502 }
503 self.client.send_query_and_decode::<
504 LauncherExploreComponentOverPtyRequest,
505 LauncherExploreComponentOverPtyResult,
506 >(
507 (moniker, pty, tool_urls, command, ns_layout,),
508 0x22efaa9c12b8779f,
509 fidl::encoding::DynamicFlags::empty(),
510 _decode,
511 )
512 }
513
514 type ExploreComponentOverSocketResponseFut = fidl::client::QueryResponseFut<
515 LauncherExploreComponentOverSocketResult,
516 fidl::encoding::DefaultFuchsiaResourceDialect,
517 >;
518 fn r#explore_component_over_socket(
519 &self,
520 mut moniker: &str,
521 mut socket: fidl::Socket,
522 mut tool_urls: &[String],
523 mut command: Option<&str>,
524 mut ns_layout: DashNamespaceLayout,
525 ) -> Self::ExploreComponentOverSocketResponseFut {
526 fn _decode(
527 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
528 ) -> Result<LauncherExploreComponentOverSocketResult, fidl::Error> {
529 let _response = fidl::client::decode_transaction_body::<
530 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
531 fidl::encoding::DefaultFuchsiaResourceDialect,
532 0x233557fb2b70eb68,
533 >(_buf?)?;
534 Ok(_response.map(|x| x))
535 }
536 self.client.send_query_and_decode::<
537 LauncherExploreComponentOverSocketRequest,
538 LauncherExploreComponentOverSocketResult,
539 >(
540 (moniker, socket, tool_urls, command, ns_layout,),
541 0x233557fb2b70eb68,
542 fidl::encoding::DynamicFlags::empty(),
543 _decode,
544 )
545 }
546
547 type ExplorePackageOverSocketResponseFut = fidl::client::QueryResponseFut<
548 LauncherExplorePackageOverSocketResult,
549 fidl::encoding::DefaultFuchsiaResourceDialect,
550 >;
551 fn r#explore_package_over_socket(
552 &self,
553 mut url: &str,
554 mut subpackages: &[String],
555 mut socket: fidl::Socket,
556 mut tool_urls: &[String],
557 mut command: Option<&str>,
558 ) -> Self::ExplorePackageOverSocketResponseFut {
559 fn _decode(
560 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
561 ) -> Result<LauncherExplorePackageOverSocketResult, fidl::Error> {
562 let _response = fidl::client::decode_transaction_body::<
563 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
564 fidl::encoding::DefaultFuchsiaResourceDialect,
565 0x8e536067655b5a2,
566 >(_buf?)?;
567 Ok(_response.map(|x| x))
568 }
569 self.client.send_query_and_decode::<
570 LauncherExplorePackageOverSocketRequest,
571 LauncherExplorePackageOverSocketResult,
572 >(
573 (url, subpackages, socket, tool_urls, command,),
574 0x8e536067655b5a2,
575 fidl::encoding::DynamicFlags::empty(),
576 _decode,
577 )
578 }
579
580 type ExplorePackageOverSocket2ResponseFut = fidl::client::QueryResponseFut<
581 LauncherExplorePackageOverSocket2Result,
582 fidl::encoding::DefaultFuchsiaResourceDialect,
583 >;
584 fn r#explore_package_over_socket2(
585 &self,
586 mut fuchsia_pkg_resolver: FuchsiaPkgResolver,
587 mut url: &str,
588 mut subpackages: &[String],
589 mut socket: fidl::Socket,
590 mut tool_urls: &[String],
591 mut command: Option<&str>,
592 ) -> Self::ExplorePackageOverSocket2ResponseFut {
593 fn _decode(
594 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
595 ) -> Result<LauncherExplorePackageOverSocket2Result, fidl::Error> {
596 let _response = fidl::client::decode_transaction_body::<
597 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, LauncherError>,
598 fidl::encoding::DefaultFuchsiaResourceDialect,
599 0x3884e07c1fa8d20b,
600 >(_buf?)?;
601 Ok(_response.map(|x| x))
602 }
603 self.client.send_query_and_decode::<
604 LauncherExplorePackageOverSocket2Request,
605 LauncherExplorePackageOverSocket2Result,
606 >(
607 (fuchsia_pkg_resolver, url, subpackages, socket, tool_urls, command,),
608 0x3884e07c1fa8d20b,
609 fidl::encoding::DynamicFlags::empty(),
610 _decode,
611 )
612 }
613}
614
615pub struct LauncherEventStream {
616 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
617}
618
619impl std::marker::Unpin for LauncherEventStream {}
620
621impl futures::stream::FusedStream for LauncherEventStream {
622 fn is_terminated(&self) -> bool {
623 self.event_receiver.is_terminated()
624 }
625}
626
627impl futures::Stream for LauncherEventStream {
628 type Item = Result<LauncherEvent, fidl::Error>;
629
630 fn poll_next(
631 mut self: std::pin::Pin<&mut Self>,
632 cx: &mut std::task::Context<'_>,
633 ) -> std::task::Poll<Option<Self::Item>> {
634 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
635 &mut self.event_receiver,
636 cx
637 )?) {
638 Some(buf) => std::task::Poll::Ready(Some(LauncherEvent::decode(buf))),
639 None => std::task::Poll::Ready(None),
640 }
641 }
642}
643
644#[derive(Debug)]
645pub enum LauncherEvent {
646 OnTerminated { return_code: i32 },
647}
648
649impl LauncherEvent {
650 #[allow(irrefutable_let_patterns)]
651 pub fn into_on_terminated(self) -> Option<i32> {
652 if let LauncherEvent::OnTerminated { return_code } = self {
653 Some((return_code))
654 } else {
655 None
656 }
657 }
658
659 fn decode(
661 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
662 ) -> Result<LauncherEvent, fidl::Error> {
663 let (bytes, _handles) = buf.split_mut();
664 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
665 debug_assert_eq!(tx_header.tx_id, 0);
666 match tx_header.ordinal {
667 0x6e5422dc5fe6b3f2 => {
668 let mut out = fidl::new_empty!(
669 LauncherOnTerminatedRequest,
670 fidl::encoding::DefaultFuchsiaResourceDialect
671 );
672 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<LauncherOnTerminatedRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
673 Ok((LauncherEvent::OnTerminated { return_code: out.return_code }))
674 }
675 _ => Err(fidl::Error::UnknownOrdinal {
676 ordinal: tx_header.ordinal,
677 protocol_name: <LauncherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
678 }),
679 }
680 }
681}
682
683pub struct LauncherRequestStream {
685 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
686 is_terminated: bool,
687}
688
689impl std::marker::Unpin for LauncherRequestStream {}
690
691impl futures::stream::FusedStream for LauncherRequestStream {
692 fn is_terminated(&self) -> bool {
693 self.is_terminated
694 }
695}
696
697impl fidl::endpoints::RequestStream for LauncherRequestStream {
698 type Protocol = LauncherMarker;
699 type ControlHandle = LauncherControlHandle;
700
701 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
702 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
703 }
704
705 fn control_handle(&self) -> Self::ControlHandle {
706 LauncherControlHandle { inner: self.inner.clone() }
707 }
708
709 fn into_inner(
710 self,
711 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
712 {
713 (self.inner, self.is_terminated)
714 }
715
716 fn from_inner(
717 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
718 is_terminated: bool,
719 ) -> Self {
720 Self { inner, is_terminated }
721 }
722}
723
724impl futures::Stream for LauncherRequestStream {
725 type Item = Result<LauncherRequest, fidl::Error>;
726
727 fn poll_next(
728 mut self: std::pin::Pin<&mut Self>,
729 cx: &mut std::task::Context<'_>,
730 ) -> std::task::Poll<Option<Self::Item>> {
731 let this = &mut *self;
732 if this.inner.check_shutdown(cx) {
733 this.is_terminated = true;
734 return std::task::Poll::Ready(None);
735 }
736 if this.is_terminated {
737 panic!("polled LauncherRequestStream after completion");
738 }
739 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
740 |bytes, handles| {
741 match this.inner.channel().read_etc(cx, bytes, handles) {
742 std::task::Poll::Ready(Ok(())) => {}
743 std::task::Poll::Pending => return std::task::Poll::Pending,
744 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
745 this.is_terminated = true;
746 return std::task::Poll::Ready(None);
747 }
748 std::task::Poll::Ready(Err(e)) => {
749 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
750 e.into(),
751 ))))
752 }
753 }
754
755 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
757
758 std::task::Poll::Ready(Some(match header.ordinal {
759 0x22efaa9c12b8779f => {
760 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
761 let mut req = fidl::new_empty!(
762 LauncherExploreComponentOverPtyRequest,
763 fidl::encoding::DefaultFuchsiaResourceDialect
764 );
765 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<LauncherExploreComponentOverPtyRequest>(&header, _body_bytes, handles, &mut req)?;
766 let control_handle = LauncherControlHandle { inner: this.inner.clone() };
767 Ok(LauncherRequest::ExploreComponentOverPty {
768 moniker: req.moniker,
769 pty: req.pty,
770 tool_urls: req.tool_urls,
771 command: req.command,
772 ns_layout: req.ns_layout,
773
774 responder: LauncherExploreComponentOverPtyResponder {
775 control_handle: std::mem::ManuallyDrop::new(control_handle),
776 tx_id: header.tx_id,
777 },
778 })
779 }
780 0x233557fb2b70eb68 => {
781 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
782 let mut req = fidl::new_empty!(
783 LauncherExploreComponentOverSocketRequest,
784 fidl::encoding::DefaultFuchsiaResourceDialect
785 );
786 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<LauncherExploreComponentOverSocketRequest>(&header, _body_bytes, handles, &mut req)?;
787 let control_handle = LauncherControlHandle { inner: this.inner.clone() };
788 Ok(LauncherRequest::ExploreComponentOverSocket {
789 moniker: req.moniker,
790 socket: req.socket,
791 tool_urls: req.tool_urls,
792 command: req.command,
793 ns_layout: req.ns_layout,
794
795 responder: LauncherExploreComponentOverSocketResponder {
796 control_handle: std::mem::ManuallyDrop::new(control_handle),
797 tx_id: header.tx_id,
798 },
799 })
800 }
801 0x8e536067655b5a2 => {
802 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
803 let mut req = fidl::new_empty!(
804 LauncherExplorePackageOverSocketRequest,
805 fidl::encoding::DefaultFuchsiaResourceDialect
806 );
807 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<LauncherExplorePackageOverSocketRequest>(&header, _body_bytes, handles, &mut req)?;
808 let control_handle = LauncherControlHandle { inner: this.inner.clone() };
809 Ok(LauncherRequest::ExplorePackageOverSocket {
810 url: req.url,
811 subpackages: req.subpackages,
812 socket: req.socket,
813 tool_urls: req.tool_urls,
814 command: req.command,
815
816 responder: LauncherExplorePackageOverSocketResponder {
817 control_handle: std::mem::ManuallyDrop::new(control_handle),
818 tx_id: header.tx_id,
819 },
820 })
821 }
822 0x3884e07c1fa8d20b => {
823 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
824 let mut req = fidl::new_empty!(
825 LauncherExplorePackageOverSocket2Request,
826 fidl::encoding::DefaultFuchsiaResourceDialect
827 );
828 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<LauncherExplorePackageOverSocket2Request>(&header, _body_bytes, handles, &mut req)?;
829 let control_handle = LauncherControlHandle { inner: this.inner.clone() };
830 Ok(LauncherRequest::ExplorePackageOverSocket2 {
831 fuchsia_pkg_resolver: req.fuchsia_pkg_resolver,
832 url: req.url,
833 subpackages: req.subpackages,
834 socket: req.socket,
835 tool_urls: req.tool_urls,
836 command: req.command,
837
838 responder: LauncherExplorePackageOverSocket2Responder {
839 control_handle: std::mem::ManuallyDrop::new(control_handle),
840 tx_id: header.tx_id,
841 },
842 })
843 }
844 _ => Err(fidl::Error::UnknownOrdinal {
845 ordinal: header.ordinal,
846 protocol_name:
847 <LauncherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
848 }),
849 }))
850 },
851 )
852 }
853}
854
855#[derive(Debug)]
856pub enum LauncherRequest {
857 ExploreComponentOverPty {
860 moniker: String,
861 pty: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
862 tool_urls: Vec<String>,
863 command: Option<String>,
864 ns_layout: DashNamespaceLayout,
865 responder: LauncherExploreComponentOverPtyResponder,
866 },
867 ExploreComponentOverSocket {
873 moniker: String,
874 socket: fidl::Socket,
875 tool_urls: Vec<String>,
876 command: Option<String>,
877 ns_layout: DashNamespaceLayout,
878 responder: LauncherExploreComponentOverSocketResponder,
879 },
880 ExplorePackageOverSocket {
891 url: String,
892 subpackages: Vec<String>,
893 socket: fidl::Socket,
894 tool_urls: Vec<String>,
895 command: Option<String>,
896 responder: LauncherExplorePackageOverSocketResponder,
897 },
898 ExplorePackageOverSocket2 {
904 fuchsia_pkg_resolver: FuchsiaPkgResolver,
905 url: String,
906 subpackages: Vec<String>,
907 socket: fidl::Socket,
908 tool_urls: Vec<String>,
909 command: Option<String>,
910 responder: LauncherExplorePackageOverSocket2Responder,
911 },
912}
913
914impl LauncherRequest {
915 #[allow(irrefutable_let_patterns)]
916 pub fn into_explore_component_over_pty(
917 self,
918 ) -> Option<(
919 String,
920 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
921 Vec<String>,
922 Option<String>,
923 DashNamespaceLayout,
924 LauncherExploreComponentOverPtyResponder,
925 )> {
926 if let LauncherRequest::ExploreComponentOverPty {
927 moniker,
928 pty,
929 tool_urls,
930 command,
931 ns_layout,
932 responder,
933 } = self
934 {
935 Some((moniker, pty, tool_urls, command, ns_layout, responder))
936 } else {
937 None
938 }
939 }
940
941 #[allow(irrefutable_let_patterns)]
942 pub fn into_explore_component_over_socket(
943 self,
944 ) -> Option<(
945 String,
946 fidl::Socket,
947 Vec<String>,
948 Option<String>,
949 DashNamespaceLayout,
950 LauncherExploreComponentOverSocketResponder,
951 )> {
952 if let LauncherRequest::ExploreComponentOverSocket {
953 moniker,
954 socket,
955 tool_urls,
956 command,
957 ns_layout,
958 responder,
959 } = self
960 {
961 Some((moniker, socket, tool_urls, command, ns_layout, responder))
962 } else {
963 None
964 }
965 }
966
967 #[allow(irrefutable_let_patterns)]
968 pub fn into_explore_package_over_socket(
969 self,
970 ) -> Option<(
971 String,
972 Vec<String>,
973 fidl::Socket,
974 Vec<String>,
975 Option<String>,
976 LauncherExplorePackageOverSocketResponder,
977 )> {
978 if let LauncherRequest::ExplorePackageOverSocket {
979 url,
980 subpackages,
981 socket,
982 tool_urls,
983 command,
984 responder,
985 } = self
986 {
987 Some((url, subpackages, socket, tool_urls, command, responder))
988 } else {
989 None
990 }
991 }
992
993 #[allow(irrefutable_let_patterns)]
994 pub fn into_explore_package_over_socket2(
995 self,
996 ) -> Option<(
997 FuchsiaPkgResolver,
998 String,
999 Vec<String>,
1000 fidl::Socket,
1001 Vec<String>,
1002 Option<String>,
1003 LauncherExplorePackageOverSocket2Responder,
1004 )> {
1005 if let LauncherRequest::ExplorePackageOverSocket2 {
1006 fuchsia_pkg_resolver,
1007 url,
1008 subpackages,
1009 socket,
1010 tool_urls,
1011 command,
1012 responder,
1013 } = self
1014 {
1015 Some((fuchsia_pkg_resolver, url, subpackages, socket, tool_urls, command, responder))
1016 } else {
1017 None
1018 }
1019 }
1020
1021 pub fn method_name(&self) -> &'static str {
1023 match *self {
1024 LauncherRequest::ExploreComponentOverPty { .. } => "explore_component_over_pty",
1025 LauncherRequest::ExploreComponentOverSocket { .. } => "explore_component_over_socket",
1026 LauncherRequest::ExplorePackageOverSocket { .. } => "explore_package_over_socket",
1027 LauncherRequest::ExplorePackageOverSocket2 { .. } => "explore_package_over_socket2",
1028 }
1029 }
1030}
1031
1032#[derive(Debug, Clone)]
1033pub struct LauncherControlHandle {
1034 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1035}
1036
1037impl fidl::endpoints::ControlHandle for LauncherControlHandle {
1038 fn shutdown(&self) {
1039 self.inner.shutdown()
1040 }
1041 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1042 self.inner.shutdown_with_epitaph(status)
1043 }
1044
1045 fn is_closed(&self) -> bool {
1046 self.inner.channel().is_closed()
1047 }
1048 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1049 self.inner.channel().on_closed()
1050 }
1051
1052 #[cfg(target_os = "fuchsia")]
1053 fn signal_peer(
1054 &self,
1055 clear_mask: zx::Signals,
1056 set_mask: zx::Signals,
1057 ) -> Result<(), zx_status::Status> {
1058 use fidl::Peered;
1059 self.inner.channel().signal_peer(clear_mask, set_mask)
1060 }
1061}
1062
1063impl LauncherControlHandle {
1064 pub fn send_on_terminated(&self, mut return_code: i32) -> Result<(), fidl::Error> {
1065 self.inner.send::<LauncherOnTerminatedRequest>(
1066 (return_code,),
1067 0,
1068 0x6e5422dc5fe6b3f2,
1069 fidl::encoding::DynamicFlags::empty(),
1070 )
1071 }
1072}
1073
1074#[must_use = "FIDL methods require a response to be sent"]
1075#[derive(Debug)]
1076pub struct LauncherExploreComponentOverPtyResponder {
1077 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1078 tx_id: u32,
1079}
1080
1081impl std::ops::Drop for LauncherExploreComponentOverPtyResponder {
1085 fn drop(&mut self) {
1086 self.control_handle.shutdown();
1087 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1089 }
1090}
1091
1092impl fidl::endpoints::Responder for LauncherExploreComponentOverPtyResponder {
1093 type ControlHandle = LauncherControlHandle;
1094
1095 fn control_handle(&self) -> &LauncherControlHandle {
1096 &self.control_handle
1097 }
1098
1099 fn drop_without_shutdown(mut self) {
1100 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1102 std::mem::forget(self);
1104 }
1105}
1106
1107impl LauncherExploreComponentOverPtyResponder {
1108 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1112 let _result = self.send_raw(result);
1113 if _result.is_err() {
1114 self.control_handle.shutdown();
1115 }
1116 self.drop_without_shutdown();
1117 _result
1118 }
1119
1120 pub fn send_no_shutdown_on_err(
1122 self,
1123 mut result: Result<(), LauncherError>,
1124 ) -> Result<(), fidl::Error> {
1125 let _result = self.send_raw(result);
1126 self.drop_without_shutdown();
1127 _result
1128 }
1129
1130 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1131 self.control_handle.inner.send::<fidl::encoding::ResultType<
1132 fidl::encoding::EmptyStruct,
1133 LauncherError,
1134 >>(
1135 result,
1136 self.tx_id,
1137 0x22efaa9c12b8779f,
1138 fidl::encoding::DynamicFlags::empty(),
1139 )
1140 }
1141}
1142
1143#[must_use = "FIDL methods require a response to be sent"]
1144#[derive(Debug)]
1145pub struct LauncherExploreComponentOverSocketResponder {
1146 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1147 tx_id: u32,
1148}
1149
1150impl std::ops::Drop for LauncherExploreComponentOverSocketResponder {
1154 fn drop(&mut self) {
1155 self.control_handle.shutdown();
1156 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1158 }
1159}
1160
1161impl fidl::endpoints::Responder for LauncherExploreComponentOverSocketResponder {
1162 type ControlHandle = LauncherControlHandle;
1163
1164 fn control_handle(&self) -> &LauncherControlHandle {
1165 &self.control_handle
1166 }
1167
1168 fn drop_without_shutdown(mut self) {
1169 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1171 std::mem::forget(self);
1173 }
1174}
1175
1176impl LauncherExploreComponentOverSocketResponder {
1177 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1181 let _result = self.send_raw(result);
1182 if _result.is_err() {
1183 self.control_handle.shutdown();
1184 }
1185 self.drop_without_shutdown();
1186 _result
1187 }
1188
1189 pub fn send_no_shutdown_on_err(
1191 self,
1192 mut result: Result<(), LauncherError>,
1193 ) -> Result<(), fidl::Error> {
1194 let _result = self.send_raw(result);
1195 self.drop_without_shutdown();
1196 _result
1197 }
1198
1199 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1200 self.control_handle.inner.send::<fidl::encoding::ResultType<
1201 fidl::encoding::EmptyStruct,
1202 LauncherError,
1203 >>(
1204 result,
1205 self.tx_id,
1206 0x233557fb2b70eb68,
1207 fidl::encoding::DynamicFlags::empty(),
1208 )
1209 }
1210}
1211
1212#[must_use = "FIDL methods require a response to be sent"]
1213#[derive(Debug)]
1214pub struct LauncherExplorePackageOverSocketResponder {
1215 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1216 tx_id: u32,
1217}
1218
1219impl std::ops::Drop for LauncherExplorePackageOverSocketResponder {
1223 fn drop(&mut self) {
1224 self.control_handle.shutdown();
1225 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1227 }
1228}
1229
1230impl fidl::endpoints::Responder for LauncherExplorePackageOverSocketResponder {
1231 type ControlHandle = LauncherControlHandle;
1232
1233 fn control_handle(&self) -> &LauncherControlHandle {
1234 &self.control_handle
1235 }
1236
1237 fn drop_without_shutdown(mut self) {
1238 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1240 std::mem::forget(self);
1242 }
1243}
1244
1245impl LauncherExplorePackageOverSocketResponder {
1246 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1250 let _result = self.send_raw(result);
1251 if _result.is_err() {
1252 self.control_handle.shutdown();
1253 }
1254 self.drop_without_shutdown();
1255 _result
1256 }
1257
1258 pub fn send_no_shutdown_on_err(
1260 self,
1261 mut result: Result<(), LauncherError>,
1262 ) -> Result<(), fidl::Error> {
1263 let _result = self.send_raw(result);
1264 self.drop_without_shutdown();
1265 _result
1266 }
1267
1268 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1269 self.control_handle.inner.send::<fidl::encoding::ResultType<
1270 fidl::encoding::EmptyStruct,
1271 LauncherError,
1272 >>(
1273 result,
1274 self.tx_id,
1275 0x8e536067655b5a2,
1276 fidl::encoding::DynamicFlags::empty(),
1277 )
1278 }
1279}
1280
1281#[must_use = "FIDL methods require a response to be sent"]
1282#[derive(Debug)]
1283pub struct LauncherExplorePackageOverSocket2Responder {
1284 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1285 tx_id: u32,
1286}
1287
1288impl std::ops::Drop for LauncherExplorePackageOverSocket2Responder {
1292 fn drop(&mut self) {
1293 self.control_handle.shutdown();
1294 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1296 }
1297}
1298
1299impl fidl::endpoints::Responder for LauncherExplorePackageOverSocket2Responder {
1300 type ControlHandle = LauncherControlHandle;
1301
1302 fn control_handle(&self) -> &LauncherControlHandle {
1303 &self.control_handle
1304 }
1305
1306 fn drop_without_shutdown(mut self) {
1307 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1309 std::mem::forget(self);
1311 }
1312}
1313
1314impl LauncherExplorePackageOverSocket2Responder {
1315 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1319 let _result = self.send_raw(result);
1320 if _result.is_err() {
1321 self.control_handle.shutdown();
1322 }
1323 self.drop_without_shutdown();
1324 _result
1325 }
1326
1327 pub fn send_no_shutdown_on_err(
1329 self,
1330 mut result: Result<(), LauncherError>,
1331 ) -> Result<(), fidl::Error> {
1332 let _result = self.send_raw(result);
1333 self.drop_without_shutdown();
1334 _result
1335 }
1336
1337 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1338 self.control_handle.inner.send::<fidl::encoding::ResultType<
1339 fidl::encoding::EmptyStruct,
1340 LauncherError,
1341 >>(
1342 result,
1343 self.tx_id,
1344 0x3884e07c1fa8d20b,
1345 fidl::encoding::DynamicFlags::empty(),
1346 )
1347 }
1348}
1349
1350mod internal {
1351 use super::*;
1352
1353 impl fidl::encoding::ResourceTypeMarker for LauncherExploreComponentOverPtyRequest {
1354 type Borrowed<'a> = &'a mut Self;
1355 fn take_or_borrow<'a>(
1356 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1357 ) -> Self::Borrowed<'a> {
1358 value
1359 }
1360 }
1361
1362 unsafe impl fidl::encoding::TypeMarker for LauncherExploreComponentOverPtyRequest {
1363 type Owned = Self;
1364
1365 #[inline(always)]
1366 fn inline_align(_context: fidl::encoding::Context) -> usize {
1367 8
1368 }
1369
1370 #[inline(always)]
1371 fn inline_size(_context: fidl::encoding::Context) -> usize {
1372 64
1373 }
1374 }
1375
1376 unsafe impl
1377 fidl::encoding::Encode<
1378 LauncherExploreComponentOverPtyRequest,
1379 fidl::encoding::DefaultFuchsiaResourceDialect,
1380 > for &mut LauncherExploreComponentOverPtyRequest
1381 {
1382 #[inline]
1383 unsafe fn encode(
1384 self,
1385 encoder: &mut fidl::encoding::Encoder<
1386 '_,
1387 fidl::encoding::DefaultFuchsiaResourceDialect,
1388 >,
1389 offset: usize,
1390 _depth: fidl::encoding::Depth,
1391 ) -> fidl::Result<()> {
1392 encoder.debug_check_bounds::<LauncherExploreComponentOverPtyRequest>(offset);
1393 fidl::encoding::Encode::<LauncherExploreComponentOverPtyRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1395 (
1396 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.moniker),
1397 <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.pty),
1398 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
1399 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
1400 <DashNamespaceLayout as fidl::encoding::ValueTypeMarker>::borrow(&self.ns_layout),
1401 ),
1402 encoder, offset, _depth
1403 )
1404 }
1405 }
1406 unsafe impl<
1407 T0: fidl::encoding::Encode<
1408 fidl::encoding::UnboundedString,
1409 fidl::encoding::DefaultFuchsiaResourceDialect,
1410 >,
1411 T1: fidl::encoding::Encode<
1412 fidl::encoding::Endpoint<
1413 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
1414 >,
1415 fidl::encoding::DefaultFuchsiaResourceDialect,
1416 >,
1417 T2: fidl::encoding::Encode<
1418 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1419 fidl::encoding::DefaultFuchsiaResourceDialect,
1420 >,
1421 T3: fidl::encoding::Encode<
1422 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1423 fidl::encoding::DefaultFuchsiaResourceDialect,
1424 >,
1425 T4: fidl::encoding::Encode<
1426 DashNamespaceLayout,
1427 fidl::encoding::DefaultFuchsiaResourceDialect,
1428 >,
1429 >
1430 fidl::encoding::Encode<
1431 LauncherExploreComponentOverPtyRequest,
1432 fidl::encoding::DefaultFuchsiaResourceDialect,
1433 > for (T0, T1, T2, T3, T4)
1434 {
1435 #[inline]
1436 unsafe fn encode(
1437 self,
1438 encoder: &mut fidl::encoding::Encoder<
1439 '_,
1440 fidl::encoding::DefaultFuchsiaResourceDialect,
1441 >,
1442 offset: usize,
1443 depth: fidl::encoding::Depth,
1444 ) -> fidl::Result<()> {
1445 encoder.debug_check_bounds::<LauncherExploreComponentOverPtyRequest>(offset);
1446 unsafe {
1449 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1450 (ptr as *mut u64).write_unaligned(0);
1451 }
1452 unsafe {
1453 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(56);
1454 (ptr as *mut u64).write_unaligned(0);
1455 }
1456 self.0.encode(encoder, offset + 0, depth)?;
1458 self.1.encode(encoder, offset + 16, depth)?;
1459 self.2.encode(encoder, offset + 24, depth)?;
1460 self.3.encode(encoder, offset + 40, depth)?;
1461 self.4.encode(encoder, offset + 56, depth)?;
1462 Ok(())
1463 }
1464 }
1465
1466 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1467 for LauncherExploreComponentOverPtyRequest
1468 {
1469 #[inline(always)]
1470 fn new_empty() -> Self {
1471 Self {
1472 moniker: fidl::new_empty!(
1473 fidl::encoding::UnboundedString,
1474 fidl::encoding::DefaultFuchsiaResourceDialect
1475 ),
1476 pty: fidl::new_empty!(
1477 fidl::encoding::Endpoint<
1478 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
1479 >,
1480 fidl::encoding::DefaultFuchsiaResourceDialect
1481 ),
1482 tool_urls: fidl::new_empty!(
1483 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1484 fidl::encoding::DefaultFuchsiaResourceDialect
1485 ),
1486 command: fidl::new_empty!(
1487 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1488 fidl::encoding::DefaultFuchsiaResourceDialect
1489 ),
1490 ns_layout: fidl::new_empty!(
1491 DashNamespaceLayout,
1492 fidl::encoding::DefaultFuchsiaResourceDialect
1493 ),
1494 }
1495 }
1496
1497 #[inline]
1498 unsafe fn decode(
1499 &mut self,
1500 decoder: &mut fidl::encoding::Decoder<
1501 '_,
1502 fidl::encoding::DefaultFuchsiaResourceDialect,
1503 >,
1504 offset: usize,
1505 _depth: fidl::encoding::Depth,
1506 ) -> fidl::Result<()> {
1507 decoder.debug_check_bounds::<Self>(offset);
1508 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1510 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1511 let mask = 0xffffffff00000000u64;
1512 let maskedval = padval & mask;
1513 if maskedval != 0 {
1514 return Err(fidl::Error::NonZeroPadding {
1515 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1516 });
1517 }
1518 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(56) };
1519 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1520 let mask = 0xffffffff00000000u64;
1521 let maskedval = padval & mask;
1522 if maskedval != 0 {
1523 return Err(fidl::Error::NonZeroPadding {
1524 padding_start: offset + 56 + ((mask as u64).trailing_zeros() / 8) as usize,
1525 });
1526 }
1527 fidl::decode!(
1528 fidl::encoding::UnboundedString,
1529 fidl::encoding::DefaultFuchsiaResourceDialect,
1530 &mut self.moniker,
1531 decoder,
1532 offset + 0,
1533 _depth
1534 )?;
1535 fidl::decode!(
1536 fidl::encoding::Endpoint<
1537 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
1538 >,
1539 fidl::encoding::DefaultFuchsiaResourceDialect,
1540 &mut self.pty,
1541 decoder,
1542 offset + 16,
1543 _depth
1544 )?;
1545 fidl::decode!(
1546 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1547 fidl::encoding::DefaultFuchsiaResourceDialect,
1548 &mut self.tool_urls,
1549 decoder,
1550 offset + 24,
1551 _depth
1552 )?;
1553 fidl::decode!(
1554 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1555 fidl::encoding::DefaultFuchsiaResourceDialect,
1556 &mut self.command,
1557 decoder,
1558 offset + 40,
1559 _depth
1560 )?;
1561 fidl::decode!(
1562 DashNamespaceLayout,
1563 fidl::encoding::DefaultFuchsiaResourceDialect,
1564 &mut self.ns_layout,
1565 decoder,
1566 offset + 56,
1567 _depth
1568 )?;
1569 Ok(())
1570 }
1571 }
1572
1573 impl fidl::encoding::ResourceTypeMarker for LauncherExploreComponentOverSocketRequest {
1574 type Borrowed<'a> = &'a mut Self;
1575 fn take_or_borrow<'a>(
1576 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1577 ) -> Self::Borrowed<'a> {
1578 value
1579 }
1580 }
1581
1582 unsafe impl fidl::encoding::TypeMarker for LauncherExploreComponentOverSocketRequest {
1583 type Owned = Self;
1584
1585 #[inline(always)]
1586 fn inline_align(_context: fidl::encoding::Context) -> usize {
1587 8
1588 }
1589
1590 #[inline(always)]
1591 fn inline_size(_context: fidl::encoding::Context) -> usize {
1592 64
1593 }
1594 }
1595
1596 unsafe impl
1597 fidl::encoding::Encode<
1598 LauncherExploreComponentOverSocketRequest,
1599 fidl::encoding::DefaultFuchsiaResourceDialect,
1600 > for &mut LauncherExploreComponentOverSocketRequest
1601 {
1602 #[inline]
1603 unsafe fn encode(
1604 self,
1605 encoder: &mut fidl::encoding::Encoder<
1606 '_,
1607 fidl::encoding::DefaultFuchsiaResourceDialect,
1608 >,
1609 offset: usize,
1610 _depth: fidl::encoding::Depth,
1611 ) -> fidl::Result<()> {
1612 encoder.debug_check_bounds::<LauncherExploreComponentOverSocketRequest>(offset);
1613 fidl::encoding::Encode::<LauncherExploreComponentOverSocketRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1615 (
1616 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.moniker),
1617 <fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.socket),
1618 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
1619 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
1620 <DashNamespaceLayout as fidl::encoding::ValueTypeMarker>::borrow(&self.ns_layout),
1621 ),
1622 encoder, offset, _depth
1623 )
1624 }
1625 }
1626 unsafe impl<
1627 T0: fidl::encoding::Encode<
1628 fidl::encoding::UnboundedString,
1629 fidl::encoding::DefaultFuchsiaResourceDialect,
1630 >,
1631 T1: fidl::encoding::Encode<
1632 fidl::encoding::HandleType<
1633 fidl::Socket,
1634 { fidl::ObjectType::SOCKET.into_raw() },
1635 2147483648,
1636 >,
1637 fidl::encoding::DefaultFuchsiaResourceDialect,
1638 >,
1639 T2: fidl::encoding::Encode<
1640 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1641 fidl::encoding::DefaultFuchsiaResourceDialect,
1642 >,
1643 T3: fidl::encoding::Encode<
1644 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1645 fidl::encoding::DefaultFuchsiaResourceDialect,
1646 >,
1647 T4: fidl::encoding::Encode<
1648 DashNamespaceLayout,
1649 fidl::encoding::DefaultFuchsiaResourceDialect,
1650 >,
1651 >
1652 fidl::encoding::Encode<
1653 LauncherExploreComponentOverSocketRequest,
1654 fidl::encoding::DefaultFuchsiaResourceDialect,
1655 > for (T0, T1, T2, T3, T4)
1656 {
1657 #[inline]
1658 unsafe fn encode(
1659 self,
1660 encoder: &mut fidl::encoding::Encoder<
1661 '_,
1662 fidl::encoding::DefaultFuchsiaResourceDialect,
1663 >,
1664 offset: usize,
1665 depth: fidl::encoding::Depth,
1666 ) -> fidl::Result<()> {
1667 encoder.debug_check_bounds::<LauncherExploreComponentOverSocketRequest>(offset);
1668 unsafe {
1671 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1672 (ptr as *mut u64).write_unaligned(0);
1673 }
1674 unsafe {
1675 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(56);
1676 (ptr as *mut u64).write_unaligned(0);
1677 }
1678 self.0.encode(encoder, offset + 0, depth)?;
1680 self.1.encode(encoder, offset + 16, depth)?;
1681 self.2.encode(encoder, offset + 24, depth)?;
1682 self.3.encode(encoder, offset + 40, depth)?;
1683 self.4.encode(encoder, offset + 56, depth)?;
1684 Ok(())
1685 }
1686 }
1687
1688 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1689 for LauncherExploreComponentOverSocketRequest
1690 {
1691 #[inline(always)]
1692 fn new_empty() -> Self {
1693 Self {
1694 moniker: fidl::new_empty!(
1695 fidl::encoding::UnboundedString,
1696 fidl::encoding::DefaultFuchsiaResourceDialect
1697 ),
1698 socket: fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1699 tool_urls: fidl::new_empty!(
1700 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1701 fidl::encoding::DefaultFuchsiaResourceDialect
1702 ),
1703 command: fidl::new_empty!(
1704 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1705 fidl::encoding::DefaultFuchsiaResourceDialect
1706 ),
1707 ns_layout: fidl::new_empty!(
1708 DashNamespaceLayout,
1709 fidl::encoding::DefaultFuchsiaResourceDialect
1710 ),
1711 }
1712 }
1713
1714 #[inline]
1715 unsafe fn decode(
1716 &mut self,
1717 decoder: &mut fidl::encoding::Decoder<
1718 '_,
1719 fidl::encoding::DefaultFuchsiaResourceDialect,
1720 >,
1721 offset: usize,
1722 _depth: fidl::encoding::Depth,
1723 ) -> fidl::Result<()> {
1724 decoder.debug_check_bounds::<Self>(offset);
1725 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1727 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1728 let mask = 0xffffffff00000000u64;
1729 let maskedval = padval & mask;
1730 if maskedval != 0 {
1731 return Err(fidl::Error::NonZeroPadding {
1732 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1733 });
1734 }
1735 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(56) };
1736 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1737 let mask = 0xffffffff00000000u64;
1738 let maskedval = padval & mask;
1739 if maskedval != 0 {
1740 return Err(fidl::Error::NonZeroPadding {
1741 padding_start: offset + 56 + ((mask as u64).trailing_zeros() / 8) as usize,
1742 });
1743 }
1744 fidl::decode!(
1745 fidl::encoding::UnboundedString,
1746 fidl::encoding::DefaultFuchsiaResourceDialect,
1747 &mut self.moniker,
1748 decoder,
1749 offset + 0,
1750 _depth
1751 )?;
1752 fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.socket, decoder, offset + 16, _depth)?;
1753 fidl::decode!(
1754 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1755 fidl::encoding::DefaultFuchsiaResourceDialect,
1756 &mut self.tool_urls,
1757 decoder,
1758 offset + 24,
1759 _depth
1760 )?;
1761 fidl::decode!(
1762 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1763 fidl::encoding::DefaultFuchsiaResourceDialect,
1764 &mut self.command,
1765 decoder,
1766 offset + 40,
1767 _depth
1768 )?;
1769 fidl::decode!(
1770 DashNamespaceLayout,
1771 fidl::encoding::DefaultFuchsiaResourceDialect,
1772 &mut self.ns_layout,
1773 decoder,
1774 offset + 56,
1775 _depth
1776 )?;
1777 Ok(())
1778 }
1779 }
1780
1781 impl fidl::encoding::ResourceTypeMarker for LauncherExplorePackageOverSocket2Request {
1782 type Borrowed<'a> = &'a mut Self;
1783 fn take_or_borrow<'a>(
1784 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1785 ) -> Self::Borrowed<'a> {
1786 value
1787 }
1788 }
1789
1790 unsafe impl fidl::encoding::TypeMarker for LauncherExplorePackageOverSocket2Request {
1791 type Owned = Self;
1792
1793 #[inline(always)]
1794 fn inline_align(_context: fidl::encoding::Context) -> usize {
1795 8
1796 }
1797
1798 #[inline(always)]
1799 fn inline_size(_context: fidl::encoding::Context) -> usize {
1800 80
1801 }
1802 }
1803
1804 unsafe impl
1805 fidl::encoding::Encode<
1806 LauncherExplorePackageOverSocket2Request,
1807 fidl::encoding::DefaultFuchsiaResourceDialect,
1808 > for &mut LauncherExplorePackageOverSocket2Request
1809 {
1810 #[inline]
1811 unsafe fn encode(
1812 self,
1813 encoder: &mut fidl::encoding::Encoder<
1814 '_,
1815 fidl::encoding::DefaultFuchsiaResourceDialect,
1816 >,
1817 offset: usize,
1818 _depth: fidl::encoding::Depth,
1819 ) -> fidl::Result<()> {
1820 encoder.debug_check_bounds::<LauncherExplorePackageOverSocket2Request>(offset);
1821 fidl::encoding::Encode::<LauncherExplorePackageOverSocket2Request, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1823 (
1824 <FuchsiaPkgResolver as fidl::encoding::ValueTypeMarker>::borrow(&self.fuchsia_pkg_resolver),
1825 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.url),
1826 <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.subpackages),
1827 <fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.socket),
1828 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
1829 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
1830 ),
1831 encoder, offset, _depth
1832 )
1833 }
1834 }
1835 unsafe impl<
1836 T0: fidl::encoding::Encode<
1837 FuchsiaPkgResolver,
1838 fidl::encoding::DefaultFuchsiaResourceDialect,
1839 >,
1840 T1: fidl::encoding::Encode<
1841 fidl::encoding::UnboundedString,
1842 fidl::encoding::DefaultFuchsiaResourceDialect,
1843 >,
1844 T2: fidl::encoding::Encode<
1845 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
1846 fidl::encoding::DefaultFuchsiaResourceDialect,
1847 >,
1848 T3: fidl::encoding::Encode<
1849 fidl::encoding::HandleType<
1850 fidl::Socket,
1851 { fidl::ObjectType::SOCKET.into_raw() },
1852 2147483648,
1853 >,
1854 fidl::encoding::DefaultFuchsiaResourceDialect,
1855 >,
1856 T4: fidl::encoding::Encode<
1857 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1858 fidl::encoding::DefaultFuchsiaResourceDialect,
1859 >,
1860 T5: fidl::encoding::Encode<
1861 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1862 fidl::encoding::DefaultFuchsiaResourceDialect,
1863 >,
1864 >
1865 fidl::encoding::Encode<
1866 LauncherExplorePackageOverSocket2Request,
1867 fidl::encoding::DefaultFuchsiaResourceDialect,
1868 > for (T0, T1, T2, T3, T4, T5)
1869 {
1870 #[inline]
1871 unsafe fn encode(
1872 self,
1873 encoder: &mut fidl::encoding::Encoder<
1874 '_,
1875 fidl::encoding::DefaultFuchsiaResourceDialect,
1876 >,
1877 offset: usize,
1878 depth: fidl::encoding::Depth,
1879 ) -> fidl::Result<()> {
1880 encoder.debug_check_bounds::<LauncherExplorePackageOverSocket2Request>(offset);
1881 unsafe {
1884 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1885 (ptr as *mut u64).write_unaligned(0);
1886 }
1887 unsafe {
1888 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
1889 (ptr as *mut u64).write_unaligned(0);
1890 }
1891 self.0.encode(encoder, offset + 0, depth)?;
1893 self.1.encode(encoder, offset + 8, depth)?;
1894 self.2.encode(encoder, offset + 24, depth)?;
1895 self.3.encode(encoder, offset + 40, depth)?;
1896 self.4.encode(encoder, offset + 48, depth)?;
1897 self.5.encode(encoder, offset + 64, depth)?;
1898 Ok(())
1899 }
1900 }
1901
1902 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1903 for LauncherExplorePackageOverSocket2Request
1904 {
1905 #[inline(always)]
1906 fn new_empty() -> Self {
1907 Self {
1908 fuchsia_pkg_resolver: fidl::new_empty!(
1909 FuchsiaPkgResolver,
1910 fidl::encoding::DefaultFuchsiaResourceDialect
1911 ),
1912 url: fidl::new_empty!(
1913 fidl::encoding::UnboundedString,
1914 fidl::encoding::DefaultFuchsiaResourceDialect
1915 ),
1916 subpackages: fidl::new_empty!(
1917 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
1918 fidl::encoding::DefaultFuchsiaResourceDialect
1919 ),
1920 socket: fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1921 tool_urls: fidl::new_empty!(
1922 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1923 fidl::encoding::DefaultFuchsiaResourceDialect
1924 ),
1925 command: fidl::new_empty!(
1926 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1927 fidl::encoding::DefaultFuchsiaResourceDialect
1928 ),
1929 }
1930 }
1931
1932 #[inline]
1933 unsafe fn decode(
1934 &mut self,
1935 decoder: &mut fidl::encoding::Decoder<
1936 '_,
1937 fidl::encoding::DefaultFuchsiaResourceDialect,
1938 >,
1939 offset: usize,
1940 _depth: fidl::encoding::Depth,
1941 ) -> fidl::Result<()> {
1942 decoder.debug_check_bounds::<Self>(offset);
1943 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1945 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1946 let mask = 0xffffffff00000000u64;
1947 let maskedval = padval & mask;
1948 if maskedval != 0 {
1949 return Err(fidl::Error::NonZeroPadding {
1950 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1951 });
1952 }
1953 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
1954 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1955 let mask = 0xffffffff00000000u64;
1956 let maskedval = padval & mask;
1957 if maskedval != 0 {
1958 return Err(fidl::Error::NonZeroPadding {
1959 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
1960 });
1961 }
1962 fidl::decode!(
1963 FuchsiaPkgResolver,
1964 fidl::encoding::DefaultFuchsiaResourceDialect,
1965 &mut self.fuchsia_pkg_resolver,
1966 decoder,
1967 offset + 0,
1968 _depth
1969 )?;
1970 fidl::decode!(
1971 fidl::encoding::UnboundedString,
1972 fidl::encoding::DefaultFuchsiaResourceDialect,
1973 &mut self.url,
1974 decoder,
1975 offset + 8,
1976 _depth
1977 )?;
1978 fidl::decode!(
1979 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
1980 fidl::encoding::DefaultFuchsiaResourceDialect,
1981 &mut self.subpackages,
1982 decoder,
1983 offset + 24,
1984 _depth
1985 )?;
1986 fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.socket, decoder, offset + 40, _depth)?;
1987 fidl::decode!(
1988 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1989 fidl::encoding::DefaultFuchsiaResourceDialect,
1990 &mut self.tool_urls,
1991 decoder,
1992 offset + 48,
1993 _depth
1994 )?;
1995 fidl::decode!(
1996 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1997 fidl::encoding::DefaultFuchsiaResourceDialect,
1998 &mut self.command,
1999 decoder,
2000 offset + 64,
2001 _depth
2002 )?;
2003 Ok(())
2004 }
2005 }
2006
2007 impl fidl::encoding::ResourceTypeMarker for LauncherExplorePackageOverSocketRequest {
2008 type Borrowed<'a> = &'a mut Self;
2009 fn take_or_borrow<'a>(
2010 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2011 ) -> Self::Borrowed<'a> {
2012 value
2013 }
2014 }
2015
2016 unsafe impl fidl::encoding::TypeMarker for LauncherExplorePackageOverSocketRequest {
2017 type Owned = Self;
2018
2019 #[inline(always)]
2020 fn inline_align(_context: fidl::encoding::Context) -> usize {
2021 8
2022 }
2023
2024 #[inline(always)]
2025 fn inline_size(_context: fidl::encoding::Context) -> usize {
2026 72
2027 }
2028 }
2029
2030 unsafe impl
2031 fidl::encoding::Encode<
2032 LauncherExplorePackageOverSocketRequest,
2033 fidl::encoding::DefaultFuchsiaResourceDialect,
2034 > for &mut LauncherExplorePackageOverSocketRequest
2035 {
2036 #[inline]
2037 unsafe fn encode(
2038 self,
2039 encoder: &mut fidl::encoding::Encoder<
2040 '_,
2041 fidl::encoding::DefaultFuchsiaResourceDialect,
2042 >,
2043 offset: usize,
2044 _depth: fidl::encoding::Depth,
2045 ) -> fidl::Result<()> {
2046 encoder.debug_check_bounds::<LauncherExplorePackageOverSocketRequest>(offset);
2047 fidl::encoding::Encode::<LauncherExplorePackageOverSocketRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2049 (
2050 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.url),
2051 <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.subpackages),
2052 <fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.socket),
2053 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
2054 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
2055 ),
2056 encoder, offset, _depth
2057 )
2058 }
2059 }
2060 unsafe impl<
2061 T0: fidl::encoding::Encode<
2062 fidl::encoding::UnboundedString,
2063 fidl::encoding::DefaultFuchsiaResourceDialect,
2064 >,
2065 T1: fidl::encoding::Encode<
2066 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2067 fidl::encoding::DefaultFuchsiaResourceDialect,
2068 >,
2069 T2: fidl::encoding::Encode<
2070 fidl::encoding::HandleType<
2071 fidl::Socket,
2072 { fidl::ObjectType::SOCKET.into_raw() },
2073 2147483648,
2074 >,
2075 fidl::encoding::DefaultFuchsiaResourceDialect,
2076 >,
2077 T3: fidl::encoding::Encode<
2078 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
2079 fidl::encoding::DefaultFuchsiaResourceDialect,
2080 >,
2081 T4: fidl::encoding::Encode<
2082 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2083 fidl::encoding::DefaultFuchsiaResourceDialect,
2084 >,
2085 >
2086 fidl::encoding::Encode<
2087 LauncherExplorePackageOverSocketRequest,
2088 fidl::encoding::DefaultFuchsiaResourceDialect,
2089 > for (T0, T1, T2, T3, T4)
2090 {
2091 #[inline]
2092 unsafe fn encode(
2093 self,
2094 encoder: &mut fidl::encoding::Encoder<
2095 '_,
2096 fidl::encoding::DefaultFuchsiaResourceDialect,
2097 >,
2098 offset: usize,
2099 depth: fidl::encoding::Depth,
2100 ) -> fidl::Result<()> {
2101 encoder.debug_check_bounds::<LauncherExplorePackageOverSocketRequest>(offset);
2102 unsafe {
2105 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
2106 (ptr as *mut u64).write_unaligned(0);
2107 }
2108 self.0.encode(encoder, offset + 0, depth)?;
2110 self.1.encode(encoder, offset + 16, depth)?;
2111 self.2.encode(encoder, offset + 32, depth)?;
2112 self.3.encode(encoder, offset + 40, depth)?;
2113 self.4.encode(encoder, offset + 56, depth)?;
2114 Ok(())
2115 }
2116 }
2117
2118 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2119 for LauncherExplorePackageOverSocketRequest
2120 {
2121 #[inline(always)]
2122 fn new_empty() -> Self {
2123 Self {
2124 url: fidl::new_empty!(
2125 fidl::encoding::UnboundedString,
2126 fidl::encoding::DefaultFuchsiaResourceDialect
2127 ),
2128 subpackages: fidl::new_empty!(
2129 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2130 fidl::encoding::DefaultFuchsiaResourceDialect
2131 ),
2132 socket: fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
2133 tool_urls: fidl::new_empty!(
2134 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
2135 fidl::encoding::DefaultFuchsiaResourceDialect
2136 ),
2137 command: fidl::new_empty!(
2138 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2139 fidl::encoding::DefaultFuchsiaResourceDialect
2140 ),
2141 }
2142 }
2143
2144 #[inline]
2145 unsafe fn decode(
2146 &mut self,
2147 decoder: &mut fidl::encoding::Decoder<
2148 '_,
2149 fidl::encoding::DefaultFuchsiaResourceDialect,
2150 >,
2151 offset: usize,
2152 _depth: fidl::encoding::Depth,
2153 ) -> fidl::Result<()> {
2154 decoder.debug_check_bounds::<Self>(offset);
2155 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
2157 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2158 let mask = 0xffffffff00000000u64;
2159 let maskedval = padval & mask;
2160 if maskedval != 0 {
2161 return Err(fidl::Error::NonZeroPadding {
2162 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
2163 });
2164 }
2165 fidl::decode!(
2166 fidl::encoding::UnboundedString,
2167 fidl::encoding::DefaultFuchsiaResourceDialect,
2168 &mut self.url,
2169 decoder,
2170 offset + 0,
2171 _depth
2172 )?;
2173 fidl::decode!(
2174 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2175 fidl::encoding::DefaultFuchsiaResourceDialect,
2176 &mut self.subpackages,
2177 decoder,
2178 offset + 16,
2179 _depth
2180 )?;
2181 fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.socket, decoder, offset + 32, _depth)?;
2182 fidl::decode!(
2183 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
2184 fidl::encoding::DefaultFuchsiaResourceDialect,
2185 &mut self.tool_urls,
2186 decoder,
2187 offset + 40,
2188 _depth
2189 )?;
2190 fidl::decode!(
2191 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2192 fidl::encoding::DefaultFuchsiaResourceDialect,
2193 &mut self.command,
2194 decoder,
2195 offset + 56,
2196 _depth
2197 )?;
2198 Ok(())
2199 }
2200 }
2201}