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 LauncherControlHandle {
1041 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
1042 self.inner.shutdown_with_epitaph(status.into())
1043 }
1044}
1045
1046impl fidl::endpoints::ControlHandle for LauncherControlHandle {
1047 fn shutdown(&self) {
1048 self.inner.shutdown()
1049 }
1050
1051 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
1052 self.inner.shutdown_with_epitaph(status)
1053 }
1054
1055 fn is_closed(&self) -> bool {
1056 self.inner.channel().is_closed()
1057 }
1058 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1059 self.inner.channel().on_closed()
1060 }
1061
1062 #[cfg(target_os = "fuchsia")]
1063 fn signal_peer(
1064 &self,
1065 clear_mask: zx::Signals,
1066 set_mask: zx::Signals,
1067 ) -> Result<(), zx_status::Status> {
1068 use fidl::Peered;
1069 self.inner.channel().signal_peer(clear_mask, set_mask)
1070 }
1071}
1072
1073impl LauncherControlHandle {
1074 pub fn send_on_terminated(&self, mut return_code: i32) -> Result<(), fidl::Error> {
1075 self.inner.send::<LauncherOnTerminatedRequest>(
1076 (return_code,),
1077 0,
1078 0x6e5422dc5fe6b3f2,
1079 fidl::encoding::DynamicFlags::empty(),
1080 )
1081 }
1082}
1083
1084#[must_use = "FIDL methods require a response to be sent"]
1085#[derive(Debug)]
1086pub struct LauncherExploreComponentOverPtyResponder {
1087 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1088 tx_id: u32,
1089}
1090
1091impl std::ops::Drop for LauncherExploreComponentOverPtyResponder {
1095 fn drop(&mut self) {
1096 self.control_handle.shutdown();
1097 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1099 }
1100}
1101
1102impl fidl::endpoints::Responder for LauncherExploreComponentOverPtyResponder {
1103 type ControlHandle = LauncherControlHandle;
1104
1105 fn control_handle(&self) -> &LauncherControlHandle {
1106 &self.control_handle
1107 }
1108
1109 fn drop_without_shutdown(mut self) {
1110 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1112 std::mem::forget(self);
1114 }
1115}
1116
1117impl LauncherExploreComponentOverPtyResponder {
1118 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1122 let _result = self.send_raw(result);
1123 if _result.is_err() {
1124 self.control_handle.shutdown();
1125 }
1126 self.drop_without_shutdown();
1127 _result
1128 }
1129
1130 pub fn send_no_shutdown_on_err(
1132 self,
1133 mut result: Result<(), LauncherError>,
1134 ) -> Result<(), fidl::Error> {
1135 let _result = self.send_raw(result);
1136 self.drop_without_shutdown();
1137 _result
1138 }
1139
1140 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1141 self.control_handle.inner.send::<fidl::encoding::ResultType<
1142 fidl::encoding::EmptyStruct,
1143 LauncherError,
1144 >>(
1145 result,
1146 self.tx_id,
1147 0x22efaa9c12b8779f,
1148 fidl::encoding::DynamicFlags::empty(),
1149 )
1150 }
1151}
1152
1153#[must_use = "FIDL methods require a response to be sent"]
1154#[derive(Debug)]
1155pub struct LauncherExploreComponentOverSocketResponder {
1156 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1157 tx_id: u32,
1158}
1159
1160impl std::ops::Drop for LauncherExploreComponentOverSocketResponder {
1164 fn drop(&mut self) {
1165 self.control_handle.shutdown();
1166 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1168 }
1169}
1170
1171impl fidl::endpoints::Responder for LauncherExploreComponentOverSocketResponder {
1172 type ControlHandle = LauncherControlHandle;
1173
1174 fn control_handle(&self) -> &LauncherControlHandle {
1175 &self.control_handle
1176 }
1177
1178 fn drop_without_shutdown(mut self) {
1179 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1181 std::mem::forget(self);
1183 }
1184}
1185
1186impl LauncherExploreComponentOverSocketResponder {
1187 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1191 let _result = self.send_raw(result);
1192 if _result.is_err() {
1193 self.control_handle.shutdown();
1194 }
1195 self.drop_without_shutdown();
1196 _result
1197 }
1198
1199 pub fn send_no_shutdown_on_err(
1201 self,
1202 mut result: Result<(), LauncherError>,
1203 ) -> Result<(), fidl::Error> {
1204 let _result = self.send_raw(result);
1205 self.drop_without_shutdown();
1206 _result
1207 }
1208
1209 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1210 self.control_handle.inner.send::<fidl::encoding::ResultType<
1211 fidl::encoding::EmptyStruct,
1212 LauncherError,
1213 >>(
1214 result,
1215 self.tx_id,
1216 0x233557fb2b70eb68,
1217 fidl::encoding::DynamicFlags::empty(),
1218 )
1219 }
1220}
1221
1222#[must_use = "FIDL methods require a response to be sent"]
1223#[derive(Debug)]
1224pub struct LauncherExplorePackageOverSocketResponder {
1225 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1226 tx_id: u32,
1227}
1228
1229impl std::ops::Drop for LauncherExplorePackageOverSocketResponder {
1233 fn drop(&mut self) {
1234 self.control_handle.shutdown();
1235 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1237 }
1238}
1239
1240impl fidl::endpoints::Responder for LauncherExplorePackageOverSocketResponder {
1241 type ControlHandle = LauncherControlHandle;
1242
1243 fn control_handle(&self) -> &LauncherControlHandle {
1244 &self.control_handle
1245 }
1246
1247 fn drop_without_shutdown(mut self) {
1248 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1250 std::mem::forget(self);
1252 }
1253}
1254
1255impl LauncherExplorePackageOverSocketResponder {
1256 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1260 let _result = self.send_raw(result);
1261 if _result.is_err() {
1262 self.control_handle.shutdown();
1263 }
1264 self.drop_without_shutdown();
1265 _result
1266 }
1267
1268 pub fn send_no_shutdown_on_err(
1270 self,
1271 mut result: Result<(), LauncherError>,
1272 ) -> Result<(), fidl::Error> {
1273 let _result = self.send_raw(result);
1274 self.drop_without_shutdown();
1275 _result
1276 }
1277
1278 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1279 self.control_handle.inner.send::<fidl::encoding::ResultType<
1280 fidl::encoding::EmptyStruct,
1281 LauncherError,
1282 >>(
1283 result,
1284 self.tx_id,
1285 0x8e536067655b5a2,
1286 fidl::encoding::DynamicFlags::empty(),
1287 )
1288 }
1289}
1290
1291#[must_use = "FIDL methods require a response to be sent"]
1292#[derive(Debug)]
1293pub struct LauncherExplorePackageOverSocket2Responder {
1294 control_handle: std::mem::ManuallyDrop<LauncherControlHandle>,
1295 tx_id: u32,
1296}
1297
1298impl std::ops::Drop for LauncherExplorePackageOverSocket2Responder {
1302 fn drop(&mut self) {
1303 self.control_handle.shutdown();
1304 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1306 }
1307}
1308
1309impl fidl::endpoints::Responder for LauncherExplorePackageOverSocket2Responder {
1310 type ControlHandle = LauncherControlHandle;
1311
1312 fn control_handle(&self) -> &LauncherControlHandle {
1313 &self.control_handle
1314 }
1315
1316 fn drop_without_shutdown(mut self) {
1317 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1319 std::mem::forget(self);
1321 }
1322}
1323
1324impl LauncherExplorePackageOverSocket2Responder {
1325 pub fn send(self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1329 let _result = self.send_raw(result);
1330 if _result.is_err() {
1331 self.control_handle.shutdown();
1332 }
1333 self.drop_without_shutdown();
1334 _result
1335 }
1336
1337 pub fn send_no_shutdown_on_err(
1339 self,
1340 mut result: Result<(), LauncherError>,
1341 ) -> Result<(), fidl::Error> {
1342 let _result = self.send_raw(result);
1343 self.drop_without_shutdown();
1344 _result
1345 }
1346
1347 fn send_raw(&self, mut result: Result<(), LauncherError>) -> Result<(), fidl::Error> {
1348 self.control_handle.inner.send::<fidl::encoding::ResultType<
1349 fidl::encoding::EmptyStruct,
1350 LauncherError,
1351 >>(
1352 result,
1353 self.tx_id,
1354 0x3884e07c1fa8d20b,
1355 fidl::encoding::DynamicFlags::empty(),
1356 )
1357 }
1358}
1359
1360mod internal {
1361 use super::*;
1362
1363 impl fidl::encoding::ResourceTypeMarker for LauncherExploreComponentOverPtyRequest {
1364 type Borrowed<'a> = &'a mut Self;
1365 fn take_or_borrow<'a>(
1366 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1367 ) -> Self::Borrowed<'a> {
1368 value
1369 }
1370 }
1371
1372 unsafe impl fidl::encoding::TypeMarker for LauncherExploreComponentOverPtyRequest {
1373 type Owned = Self;
1374
1375 #[inline(always)]
1376 fn inline_align(_context: fidl::encoding::Context) -> usize {
1377 8
1378 }
1379
1380 #[inline(always)]
1381 fn inline_size(_context: fidl::encoding::Context) -> usize {
1382 64
1383 }
1384 }
1385
1386 unsafe impl
1387 fidl::encoding::Encode<
1388 LauncherExploreComponentOverPtyRequest,
1389 fidl::encoding::DefaultFuchsiaResourceDialect,
1390 > for &mut LauncherExploreComponentOverPtyRequest
1391 {
1392 #[inline]
1393 unsafe fn encode(
1394 self,
1395 encoder: &mut fidl::encoding::Encoder<
1396 '_,
1397 fidl::encoding::DefaultFuchsiaResourceDialect,
1398 >,
1399 offset: usize,
1400 _depth: fidl::encoding::Depth,
1401 ) -> fidl::Result<()> {
1402 encoder.debug_check_bounds::<LauncherExploreComponentOverPtyRequest>(offset);
1403 fidl::encoding::Encode::<LauncherExploreComponentOverPtyRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1405 (
1406 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.moniker),
1407 <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.pty),
1408 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
1409 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
1410 <DashNamespaceLayout as fidl::encoding::ValueTypeMarker>::borrow(&self.ns_layout),
1411 ),
1412 encoder, offset, _depth
1413 )
1414 }
1415 }
1416 unsafe impl<
1417 T0: fidl::encoding::Encode<
1418 fidl::encoding::UnboundedString,
1419 fidl::encoding::DefaultFuchsiaResourceDialect,
1420 >,
1421 T1: fidl::encoding::Encode<
1422 fidl::encoding::Endpoint<
1423 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
1424 >,
1425 fidl::encoding::DefaultFuchsiaResourceDialect,
1426 >,
1427 T2: fidl::encoding::Encode<
1428 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1429 fidl::encoding::DefaultFuchsiaResourceDialect,
1430 >,
1431 T3: fidl::encoding::Encode<
1432 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1433 fidl::encoding::DefaultFuchsiaResourceDialect,
1434 >,
1435 T4: fidl::encoding::Encode<DashNamespaceLayout, fidl::encoding::DefaultFuchsiaResourceDialect>,
1436 >
1437 fidl::encoding::Encode<
1438 LauncherExploreComponentOverPtyRequest,
1439 fidl::encoding::DefaultFuchsiaResourceDialect,
1440 > for (T0, T1, T2, T3, T4)
1441 {
1442 #[inline]
1443 unsafe fn encode(
1444 self,
1445 encoder: &mut fidl::encoding::Encoder<
1446 '_,
1447 fidl::encoding::DefaultFuchsiaResourceDialect,
1448 >,
1449 offset: usize,
1450 depth: fidl::encoding::Depth,
1451 ) -> fidl::Result<()> {
1452 encoder.debug_check_bounds::<LauncherExploreComponentOverPtyRequest>(offset);
1453 unsafe {
1456 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1457 (ptr as *mut u64).write_unaligned(0);
1458 }
1459 unsafe {
1460 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(56);
1461 (ptr as *mut u64).write_unaligned(0);
1462 }
1463 self.0.encode(encoder, offset + 0, depth)?;
1465 self.1.encode(encoder, offset + 16, depth)?;
1466 self.2.encode(encoder, offset + 24, depth)?;
1467 self.3.encode(encoder, offset + 40, depth)?;
1468 self.4.encode(encoder, offset + 56, depth)?;
1469 Ok(())
1470 }
1471 }
1472
1473 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1474 for LauncherExploreComponentOverPtyRequest
1475 {
1476 #[inline(always)]
1477 fn new_empty() -> Self {
1478 Self {
1479 moniker: fidl::new_empty!(
1480 fidl::encoding::UnboundedString,
1481 fidl::encoding::DefaultFuchsiaResourceDialect
1482 ),
1483 pty: fidl::new_empty!(
1484 fidl::encoding::Endpoint<
1485 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
1486 >,
1487 fidl::encoding::DefaultFuchsiaResourceDialect
1488 ),
1489 tool_urls: fidl::new_empty!(
1490 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1491 fidl::encoding::DefaultFuchsiaResourceDialect
1492 ),
1493 command: fidl::new_empty!(
1494 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1495 fidl::encoding::DefaultFuchsiaResourceDialect
1496 ),
1497 ns_layout: fidl::new_empty!(
1498 DashNamespaceLayout,
1499 fidl::encoding::DefaultFuchsiaResourceDialect
1500 ),
1501 }
1502 }
1503
1504 #[inline]
1505 unsafe fn decode(
1506 &mut self,
1507 decoder: &mut fidl::encoding::Decoder<
1508 '_,
1509 fidl::encoding::DefaultFuchsiaResourceDialect,
1510 >,
1511 offset: usize,
1512 _depth: fidl::encoding::Depth,
1513 ) -> fidl::Result<()> {
1514 decoder.debug_check_bounds::<Self>(offset);
1515 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1517 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1518 let mask = 0xffffffff00000000u64;
1519 let maskedval = padval & mask;
1520 if maskedval != 0 {
1521 return Err(fidl::Error::NonZeroPadding {
1522 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1523 });
1524 }
1525 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(56) };
1526 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1527 let mask = 0xffffffff00000000u64;
1528 let maskedval = padval & mask;
1529 if maskedval != 0 {
1530 return Err(fidl::Error::NonZeroPadding {
1531 padding_start: offset + 56 + ((mask as u64).trailing_zeros() / 8) as usize,
1532 });
1533 }
1534 fidl::decode!(
1535 fidl::encoding::UnboundedString,
1536 fidl::encoding::DefaultFuchsiaResourceDialect,
1537 &mut self.moniker,
1538 decoder,
1539 offset + 0,
1540 _depth
1541 )?;
1542 fidl::decode!(
1543 fidl::encoding::Endpoint<
1544 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_pty::DeviceMarker>,
1545 >,
1546 fidl::encoding::DefaultFuchsiaResourceDialect,
1547 &mut self.pty,
1548 decoder,
1549 offset + 16,
1550 _depth
1551 )?;
1552 fidl::decode!(
1553 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1554 fidl::encoding::DefaultFuchsiaResourceDialect,
1555 &mut self.tool_urls,
1556 decoder,
1557 offset + 24,
1558 _depth
1559 )?;
1560 fidl::decode!(
1561 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1562 fidl::encoding::DefaultFuchsiaResourceDialect,
1563 &mut self.command,
1564 decoder,
1565 offset + 40,
1566 _depth
1567 )?;
1568 fidl::decode!(
1569 DashNamespaceLayout,
1570 fidl::encoding::DefaultFuchsiaResourceDialect,
1571 &mut self.ns_layout,
1572 decoder,
1573 offset + 56,
1574 _depth
1575 )?;
1576 Ok(())
1577 }
1578 }
1579
1580 impl fidl::encoding::ResourceTypeMarker for LauncherExploreComponentOverSocketRequest {
1581 type Borrowed<'a> = &'a mut Self;
1582 fn take_or_borrow<'a>(
1583 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1584 ) -> Self::Borrowed<'a> {
1585 value
1586 }
1587 }
1588
1589 unsafe impl fidl::encoding::TypeMarker for LauncherExploreComponentOverSocketRequest {
1590 type Owned = Self;
1591
1592 #[inline(always)]
1593 fn inline_align(_context: fidl::encoding::Context) -> usize {
1594 8
1595 }
1596
1597 #[inline(always)]
1598 fn inline_size(_context: fidl::encoding::Context) -> usize {
1599 64
1600 }
1601 }
1602
1603 unsafe impl
1604 fidl::encoding::Encode<
1605 LauncherExploreComponentOverSocketRequest,
1606 fidl::encoding::DefaultFuchsiaResourceDialect,
1607 > for &mut LauncherExploreComponentOverSocketRequest
1608 {
1609 #[inline]
1610 unsafe fn encode(
1611 self,
1612 encoder: &mut fidl::encoding::Encoder<
1613 '_,
1614 fidl::encoding::DefaultFuchsiaResourceDialect,
1615 >,
1616 offset: usize,
1617 _depth: fidl::encoding::Depth,
1618 ) -> fidl::Result<()> {
1619 encoder.debug_check_bounds::<LauncherExploreComponentOverSocketRequest>(offset);
1620 fidl::encoding::Encode::<LauncherExploreComponentOverSocketRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1622 (
1623 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.moniker),
1624 <fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.socket),
1625 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
1626 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
1627 <DashNamespaceLayout as fidl::encoding::ValueTypeMarker>::borrow(&self.ns_layout),
1628 ),
1629 encoder, offset, _depth
1630 )
1631 }
1632 }
1633 unsafe impl<
1634 T0: fidl::encoding::Encode<
1635 fidl::encoding::UnboundedString,
1636 fidl::encoding::DefaultFuchsiaResourceDialect,
1637 >,
1638 T1: fidl::encoding::Encode<
1639 fidl::encoding::HandleType<
1640 fidl::Socket,
1641 { fidl::ObjectType::SOCKET.into_raw() },
1642 2147483648,
1643 >,
1644 fidl::encoding::DefaultFuchsiaResourceDialect,
1645 >,
1646 T2: fidl::encoding::Encode<
1647 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1648 fidl::encoding::DefaultFuchsiaResourceDialect,
1649 >,
1650 T3: fidl::encoding::Encode<
1651 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1652 fidl::encoding::DefaultFuchsiaResourceDialect,
1653 >,
1654 T4: fidl::encoding::Encode<DashNamespaceLayout, fidl::encoding::DefaultFuchsiaResourceDialect>,
1655 >
1656 fidl::encoding::Encode<
1657 LauncherExploreComponentOverSocketRequest,
1658 fidl::encoding::DefaultFuchsiaResourceDialect,
1659 > for (T0, T1, T2, T3, T4)
1660 {
1661 #[inline]
1662 unsafe fn encode(
1663 self,
1664 encoder: &mut fidl::encoding::Encoder<
1665 '_,
1666 fidl::encoding::DefaultFuchsiaResourceDialect,
1667 >,
1668 offset: usize,
1669 depth: fidl::encoding::Depth,
1670 ) -> fidl::Result<()> {
1671 encoder.debug_check_bounds::<LauncherExploreComponentOverSocketRequest>(offset);
1672 unsafe {
1675 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1676 (ptr as *mut u64).write_unaligned(0);
1677 }
1678 unsafe {
1679 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(56);
1680 (ptr as *mut u64).write_unaligned(0);
1681 }
1682 self.0.encode(encoder, offset + 0, depth)?;
1684 self.1.encode(encoder, offset + 16, depth)?;
1685 self.2.encode(encoder, offset + 24, depth)?;
1686 self.3.encode(encoder, offset + 40, depth)?;
1687 self.4.encode(encoder, offset + 56, depth)?;
1688 Ok(())
1689 }
1690 }
1691
1692 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1693 for LauncherExploreComponentOverSocketRequest
1694 {
1695 #[inline(always)]
1696 fn new_empty() -> Self {
1697 Self {
1698 moniker: fidl::new_empty!(
1699 fidl::encoding::UnboundedString,
1700 fidl::encoding::DefaultFuchsiaResourceDialect
1701 ),
1702 socket: fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1703 tool_urls: fidl::new_empty!(
1704 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1705 fidl::encoding::DefaultFuchsiaResourceDialect
1706 ),
1707 command: fidl::new_empty!(
1708 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1709 fidl::encoding::DefaultFuchsiaResourceDialect
1710 ),
1711 ns_layout: fidl::new_empty!(
1712 DashNamespaceLayout,
1713 fidl::encoding::DefaultFuchsiaResourceDialect
1714 ),
1715 }
1716 }
1717
1718 #[inline]
1719 unsafe fn decode(
1720 &mut self,
1721 decoder: &mut fidl::encoding::Decoder<
1722 '_,
1723 fidl::encoding::DefaultFuchsiaResourceDialect,
1724 >,
1725 offset: usize,
1726 _depth: fidl::encoding::Depth,
1727 ) -> fidl::Result<()> {
1728 decoder.debug_check_bounds::<Self>(offset);
1729 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1731 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1732 let mask = 0xffffffff00000000u64;
1733 let maskedval = padval & mask;
1734 if maskedval != 0 {
1735 return Err(fidl::Error::NonZeroPadding {
1736 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1737 });
1738 }
1739 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(56) };
1740 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1741 let mask = 0xffffffff00000000u64;
1742 let maskedval = padval & mask;
1743 if maskedval != 0 {
1744 return Err(fidl::Error::NonZeroPadding {
1745 padding_start: offset + 56 + ((mask as u64).trailing_zeros() / 8) as usize,
1746 });
1747 }
1748 fidl::decode!(
1749 fidl::encoding::UnboundedString,
1750 fidl::encoding::DefaultFuchsiaResourceDialect,
1751 &mut self.moniker,
1752 decoder,
1753 offset + 0,
1754 _depth
1755 )?;
1756 fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.socket, decoder, offset + 16, _depth)?;
1757 fidl::decode!(
1758 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1759 fidl::encoding::DefaultFuchsiaResourceDialect,
1760 &mut self.tool_urls,
1761 decoder,
1762 offset + 24,
1763 _depth
1764 )?;
1765 fidl::decode!(
1766 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1767 fidl::encoding::DefaultFuchsiaResourceDialect,
1768 &mut self.command,
1769 decoder,
1770 offset + 40,
1771 _depth
1772 )?;
1773 fidl::decode!(
1774 DashNamespaceLayout,
1775 fidl::encoding::DefaultFuchsiaResourceDialect,
1776 &mut self.ns_layout,
1777 decoder,
1778 offset + 56,
1779 _depth
1780 )?;
1781 Ok(())
1782 }
1783 }
1784
1785 impl fidl::encoding::ResourceTypeMarker for LauncherExplorePackageOverSocket2Request {
1786 type Borrowed<'a> = &'a mut Self;
1787 fn take_or_borrow<'a>(
1788 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1789 ) -> Self::Borrowed<'a> {
1790 value
1791 }
1792 }
1793
1794 unsafe impl fidl::encoding::TypeMarker for LauncherExplorePackageOverSocket2Request {
1795 type Owned = Self;
1796
1797 #[inline(always)]
1798 fn inline_align(_context: fidl::encoding::Context) -> usize {
1799 8
1800 }
1801
1802 #[inline(always)]
1803 fn inline_size(_context: fidl::encoding::Context) -> usize {
1804 80
1805 }
1806 }
1807
1808 unsafe impl
1809 fidl::encoding::Encode<
1810 LauncherExplorePackageOverSocket2Request,
1811 fidl::encoding::DefaultFuchsiaResourceDialect,
1812 > for &mut LauncherExplorePackageOverSocket2Request
1813 {
1814 #[inline]
1815 unsafe fn encode(
1816 self,
1817 encoder: &mut fidl::encoding::Encoder<
1818 '_,
1819 fidl::encoding::DefaultFuchsiaResourceDialect,
1820 >,
1821 offset: usize,
1822 _depth: fidl::encoding::Depth,
1823 ) -> fidl::Result<()> {
1824 encoder.debug_check_bounds::<LauncherExplorePackageOverSocket2Request>(offset);
1825 fidl::encoding::Encode::<LauncherExplorePackageOverSocket2Request, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1827 (
1828 <FuchsiaPkgResolver as fidl::encoding::ValueTypeMarker>::borrow(&self.fuchsia_pkg_resolver),
1829 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.url),
1830 <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.subpackages),
1831 <fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.socket),
1832 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
1833 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
1834 ),
1835 encoder, offset, _depth
1836 )
1837 }
1838 }
1839 unsafe impl<
1840 T0: fidl::encoding::Encode<FuchsiaPkgResolver, fidl::encoding::DefaultFuchsiaResourceDialect>,
1841 T1: fidl::encoding::Encode<
1842 fidl::encoding::UnboundedString,
1843 fidl::encoding::DefaultFuchsiaResourceDialect,
1844 >,
1845 T2: fidl::encoding::Encode<
1846 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
1847 fidl::encoding::DefaultFuchsiaResourceDialect,
1848 >,
1849 T3: fidl::encoding::Encode<
1850 fidl::encoding::HandleType<
1851 fidl::Socket,
1852 { fidl::ObjectType::SOCKET.into_raw() },
1853 2147483648,
1854 >,
1855 fidl::encoding::DefaultFuchsiaResourceDialect,
1856 >,
1857 T4: fidl::encoding::Encode<
1858 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1859 fidl::encoding::DefaultFuchsiaResourceDialect,
1860 >,
1861 T5: fidl::encoding::Encode<
1862 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1863 fidl::encoding::DefaultFuchsiaResourceDialect,
1864 >,
1865 >
1866 fidl::encoding::Encode<
1867 LauncherExplorePackageOverSocket2Request,
1868 fidl::encoding::DefaultFuchsiaResourceDialect,
1869 > for (T0, T1, T2, T3, T4, T5)
1870 {
1871 #[inline]
1872 unsafe fn encode(
1873 self,
1874 encoder: &mut fidl::encoding::Encoder<
1875 '_,
1876 fidl::encoding::DefaultFuchsiaResourceDialect,
1877 >,
1878 offset: usize,
1879 depth: fidl::encoding::Depth,
1880 ) -> fidl::Result<()> {
1881 encoder.debug_check_bounds::<LauncherExplorePackageOverSocket2Request>(offset);
1882 unsafe {
1885 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1886 (ptr as *mut u64).write_unaligned(0);
1887 }
1888 unsafe {
1889 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
1890 (ptr as *mut u64).write_unaligned(0);
1891 }
1892 self.0.encode(encoder, offset + 0, depth)?;
1894 self.1.encode(encoder, offset + 8, depth)?;
1895 self.2.encode(encoder, offset + 24, depth)?;
1896 self.3.encode(encoder, offset + 40, depth)?;
1897 self.4.encode(encoder, offset + 48, depth)?;
1898 self.5.encode(encoder, offset + 64, depth)?;
1899 Ok(())
1900 }
1901 }
1902
1903 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1904 for LauncherExplorePackageOverSocket2Request
1905 {
1906 #[inline(always)]
1907 fn new_empty() -> Self {
1908 Self {
1909 fuchsia_pkg_resolver: fidl::new_empty!(
1910 FuchsiaPkgResolver,
1911 fidl::encoding::DefaultFuchsiaResourceDialect
1912 ),
1913 url: fidl::new_empty!(
1914 fidl::encoding::UnboundedString,
1915 fidl::encoding::DefaultFuchsiaResourceDialect
1916 ),
1917 subpackages: fidl::new_empty!(
1918 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
1919 fidl::encoding::DefaultFuchsiaResourceDialect
1920 ),
1921 socket: fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1922 tool_urls: fidl::new_empty!(
1923 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1924 fidl::encoding::DefaultFuchsiaResourceDialect
1925 ),
1926 command: fidl::new_empty!(
1927 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1928 fidl::encoding::DefaultFuchsiaResourceDialect
1929 ),
1930 }
1931 }
1932
1933 #[inline]
1934 unsafe fn decode(
1935 &mut self,
1936 decoder: &mut fidl::encoding::Decoder<
1937 '_,
1938 fidl::encoding::DefaultFuchsiaResourceDialect,
1939 >,
1940 offset: usize,
1941 _depth: fidl::encoding::Depth,
1942 ) -> fidl::Result<()> {
1943 decoder.debug_check_bounds::<Self>(offset);
1944 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1946 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1947 let mask = 0xffffffff00000000u64;
1948 let maskedval = padval & mask;
1949 if maskedval != 0 {
1950 return Err(fidl::Error::NonZeroPadding {
1951 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1952 });
1953 }
1954 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
1955 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1956 let mask = 0xffffffff00000000u64;
1957 let maskedval = padval & mask;
1958 if maskedval != 0 {
1959 return Err(fidl::Error::NonZeroPadding {
1960 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
1961 });
1962 }
1963 fidl::decode!(
1964 FuchsiaPkgResolver,
1965 fidl::encoding::DefaultFuchsiaResourceDialect,
1966 &mut self.fuchsia_pkg_resolver,
1967 decoder,
1968 offset + 0,
1969 _depth
1970 )?;
1971 fidl::decode!(
1972 fidl::encoding::UnboundedString,
1973 fidl::encoding::DefaultFuchsiaResourceDialect,
1974 &mut self.url,
1975 decoder,
1976 offset + 8,
1977 _depth
1978 )?;
1979 fidl::decode!(
1980 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
1981 fidl::encoding::DefaultFuchsiaResourceDialect,
1982 &mut self.subpackages,
1983 decoder,
1984 offset + 24,
1985 _depth
1986 )?;
1987 fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.socket, decoder, offset + 40, _depth)?;
1988 fidl::decode!(
1989 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
1990 fidl::encoding::DefaultFuchsiaResourceDialect,
1991 &mut self.tool_urls,
1992 decoder,
1993 offset + 48,
1994 _depth
1995 )?;
1996 fidl::decode!(
1997 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
1998 fidl::encoding::DefaultFuchsiaResourceDialect,
1999 &mut self.command,
2000 decoder,
2001 offset + 64,
2002 _depth
2003 )?;
2004 Ok(())
2005 }
2006 }
2007
2008 impl fidl::encoding::ResourceTypeMarker for LauncherExplorePackageOverSocketRequest {
2009 type Borrowed<'a> = &'a mut Self;
2010 fn take_or_borrow<'a>(
2011 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2012 ) -> Self::Borrowed<'a> {
2013 value
2014 }
2015 }
2016
2017 unsafe impl fidl::encoding::TypeMarker for LauncherExplorePackageOverSocketRequest {
2018 type Owned = Self;
2019
2020 #[inline(always)]
2021 fn inline_align(_context: fidl::encoding::Context) -> usize {
2022 8
2023 }
2024
2025 #[inline(always)]
2026 fn inline_size(_context: fidl::encoding::Context) -> usize {
2027 72
2028 }
2029 }
2030
2031 unsafe impl
2032 fidl::encoding::Encode<
2033 LauncherExplorePackageOverSocketRequest,
2034 fidl::encoding::DefaultFuchsiaResourceDialect,
2035 > for &mut LauncherExplorePackageOverSocketRequest
2036 {
2037 #[inline]
2038 unsafe fn encode(
2039 self,
2040 encoder: &mut fidl::encoding::Encoder<
2041 '_,
2042 fidl::encoding::DefaultFuchsiaResourceDialect,
2043 >,
2044 offset: usize,
2045 _depth: fidl::encoding::Depth,
2046 ) -> fidl::Result<()> {
2047 encoder.debug_check_bounds::<LauncherExplorePackageOverSocketRequest>(offset);
2048 fidl::encoding::Encode::<LauncherExplorePackageOverSocketRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2050 (
2051 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.url),
2052 <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.subpackages),
2053 <fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.socket),
2054 <fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20> as fidl::encoding::ValueTypeMarker>::borrow(&self.tool_urls),
2055 <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.command),
2056 ),
2057 encoder, offset, _depth
2058 )
2059 }
2060 }
2061 unsafe impl<
2062 T0: fidl::encoding::Encode<
2063 fidl::encoding::UnboundedString,
2064 fidl::encoding::DefaultFuchsiaResourceDialect,
2065 >,
2066 T1: fidl::encoding::Encode<
2067 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2068 fidl::encoding::DefaultFuchsiaResourceDialect,
2069 >,
2070 T2: fidl::encoding::Encode<
2071 fidl::encoding::HandleType<
2072 fidl::Socket,
2073 { fidl::ObjectType::SOCKET.into_raw() },
2074 2147483648,
2075 >,
2076 fidl::encoding::DefaultFuchsiaResourceDialect,
2077 >,
2078 T3: fidl::encoding::Encode<
2079 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
2080 fidl::encoding::DefaultFuchsiaResourceDialect,
2081 >,
2082 T4: fidl::encoding::Encode<
2083 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2084 fidl::encoding::DefaultFuchsiaResourceDialect,
2085 >,
2086 >
2087 fidl::encoding::Encode<
2088 LauncherExplorePackageOverSocketRequest,
2089 fidl::encoding::DefaultFuchsiaResourceDialect,
2090 > for (T0, T1, T2, T3, T4)
2091 {
2092 #[inline]
2093 unsafe fn encode(
2094 self,
2095 encoder: &mut fidl::encoding::Encoder<
2096 '_,
2097 fidl::encoding::DefaultFuchsiaResourceDialect,
2098 >,
2099 offset: usize,
2100 depth: fidl::encoding::Depth,
2101 ) -> fidl::Result<()> {
2102 encoder.debug_check_bounds::<LauncherExplorePackageOverSocketRequest>(offset);
2103 unsafe {
2106 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
2107 (ptr as *mut u64).write_unaligned(0);
2108 }
2109 self.0.encode(encoder, offset + 0, depth)?;
2111 self.1.encode(encoder, offset + 16, depth)?;
2112 self.2.encode(encoder, offset + 32, depth)?;
2113 self.3.encode(encoder, offset + 40, depth)?;
2114 self.4.encode(encoder, offset + 56, depth)?;
2115 Ok(())
2116 }
2117 }
2118
2119 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2120 for LauncherExplorePackageOverSocketRequest
2121 {
2122 #[inline(always)]
2123 fn new_empty() -> Self {
2124 Self {
2125 url: fidl::new_empty!(
2126 fidl::encoding::UnboundedString,
2127 fidl::encoding::DefaultFuchsiaResourceDialect
2128 ),
2129 subpackages: fidl::new_empty!(
2130 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2131 fidl::encoding::DefaultFuchsiaResourceDialect
2132 ),
2133 socket: fidl::new_empty!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
2134 tool_urls: fidl::new_empty!(
2135 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
2136 fidl::encoding::DefaultFuchsiaResourceDialect
2137 ),
2138 command: fidl::new_empty!(
2139 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2140 fidl::encoding::DefaultFuchsiaResourceDialect
2141 ),
2142 }
2143 }
2144
2145 #[inline]
2146 unsafe fn decode(
2147 &mut self,
2148 decoder: &mut fidl::encoding::Decoder<
2149 '_,
2150 fidl::encoding::DefaultFuchsiaResourceDialect,
2151 >,
2152 offset: usize,
2153 _depth: fidl::encoding::Depth,
2154 ) -> fidl::Result<()> {
2155 decoder.debug_check_bounds::<Self>(offset);
2156 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
2158 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2159 let mask = 0xffffffff00000000u64;
2160 let maskedval = padval & mask;
2161 if maskedval != 0 {
2162 return Err(fidl::Error::NonZeroPadding {
2163 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
2164 });
2165 }
2166 fidl::decode!(
2167 fidl::encoding::UnboundedString,
2168 fidl::encoding::DefaultFuchsiaResourceDialect,
2169 &mut self.url,
2170 decoder,
2171 offset + 0,
2172 _depth
2173 )?;
2174 fidl::decode!(
2175 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2176 fidl::encoding::DefaultFuchsiaResourceDialect,
2177 &mut self.subpackages,
2178 decoder,
2179 offset + 16,
2180 _depth
2181 )?;
2182 fidl::decode!(fidl::encoding::HandleType<fidl::Socket, { fidl::ObjectType::SOCKET.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.socket, decoder, offset + 32, _depth)?;
2183 fidl::decode!(
2184 fidl::encoding::Vector<fidl::encoding::BoundedString<4096>, 20>,
2185 fidl::encoding::DefaultFuchsiaResourceDialect,
2186 &mut self.tool_urls,
2187 decoder,
2188 offset + 40,
2189 _depth
2190 )?;
2191 fidl::decode!(
2192 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2193 fidl::encoding::DefaultFuchsiaResourceDialect,
2194 &mut self.command,
2195 decoder,
2196 offset + 56,
2197 _depth
2198 )?;
2199 Ok(())
2200 }
2201 }
2202}