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