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