1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fdomain_client::fidl::{ControlHandle as _, FDomainFlexibleIntoResult as _, Responder as _};
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9pub use fidl_fuchsia_pkg__common::*;
10use futures::future::{self, MaybeDone, TryFutureExt};
11use zx_status;
12
13#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
14pub struct FontResolverResolveRequest {
15 pub package_url: String,
16 pub directory_request: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
17}
18
19impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect> for FontResolverResolveRequest {}
20
21#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
22pub struct NeededBlobsGetMissingBlobsRequest {
23 pub iterator: fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>,
24}
25
26impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
27 for NeededBlobsGetMissingBlobsRequest
28{
29}
30
31#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
32pub struct NeededBlobsOpenBlobResponse {
33 pub writer: Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
34}
35
36impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
37 for NeededBlobsOpenBlobResponse
38{
39}
40
41#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
42pub struct NeededBlobsOpenMetaBlobResponse {
43 pub writer: Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
44}
45
46impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
47 for NeededBlobsOpenMetaBlobResponse
48{
49}
50
51#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
52pub struct PackageCacheBasePackageIndexRequest {
53 pub iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
54}
55
56impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
57 for PackageCacheBasePackageIndexRequest
58{
59}
60
61#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
62pub struct PackageCacheCachePackageIndexRequest {
63 pub iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
64}
65
66impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
67 for PackageCacheCachePackageIndexRequest
68{
69}
70
71#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
72pub struct PackageCacheGetRequest {
73 pub meta_far_blob: BlobInfo,
74 pub gc_protection: GcProtection,
75 pub needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
76 pub dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
77}
78
79impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect> for PackageCacheGetRequest {}
80
81#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
82pub struct PackageCacheGetSubpackageRequest {
83 pub superpackage: BlobId,
84 pub subpackage: PackageUrl,
85 pub dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
86}
87
88impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
89 for PackageCacheGetSubpackageRequest
90{
91}
92
93#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
94pub struct PackageCacheWriteBlobsRequest {
95 pub needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
96}
97
98impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
99 for PackageCacheWriteBlobsRequest
100{
101}
102
103#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
104pub struct PackageResolverResolveRequest {
105 pub package_url: String,
106 pub dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
107}
108
109impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
110 for PackageResolverResolveRequest
111{
112}
113
114#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
115pub struct PackageResolverResolveWithContextRequest {
116 pub package_url: String,
117 pub context: ResolutionContext,
118 pub dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
119}
120
121impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
122 for PackageResolverResolveWithContextRequest
123{
124}
125
126#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
127pub struct RepositoryManagerListRequest {
128 pub iterator: fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
129}
130
131impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
132 for RepositoryManagerListRequest
133{
134}
135
136#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
137pub struct RetainedBlobsReplaceRequest {
138 pub iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
139}
140
141impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
142 for RetainedBlobsReplaceRequest
143{
144}
145
146#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
147pub struct RetainedPackagesReplaceRequest {
148 pub iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
149}
150
151impl fidl::Standalone<fdomain_client::fidl::FDomainResourceDialect>
152 for RetainedPackagesReplaceRequest
153{
154}
155
156#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
157pub struct BlobIdIteratorMarker;
158
159impl fdomain_client::fidl::ProtocolMarker for BlobIdIteratorMarker {
160 type Proxy = BlobIdIteratorProxy;
161 type RequestStream = BlobIdIteratorRequestStream;
162
163 const DEBUG_NAME: &'static str = "(anonymous) BlobIdIterator";
164}
165
166pub trait BlobIdIteratorProxyInterface: Send + Sync {
167 type NextResponseFut: std::future::Future<Output = Result<Vec<BlobId>, fidl::Error>> + Send;
168 fn r#next(&self) -> Self::NextResponseFut;
169}
170
171#[derive(Debug, Clone)]
172pub struct BlobIdIteratorProxy {
173 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
174}
175
176impl fdomain_client::fidl::Proxy for BlobIdIteratorProxy {
177 type Protocol = BlobIdIteratorMarker;
178
179 fn from_channel(inner: fdomain_client::Channel) -> Self {
180 Self::new(inner)
181 }
182
183 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
184 self.client.into_channel().map_err(|client| Self { client })
185 }
186
187 fn as_channel(&self) -> &fdomain_client::Channel {
188 self.client.as_channel()
189 }
190}
191
192impl BlobIdIteratorProxy {
193 pub fn new(channel: fdomain_client::Channel) -> Self {
195 let protocol_name =
196 <BlobIdIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
197 Self { client: fidl::client::Client::new(channel, protocol_name) }
198 }
199
200 pub fn take_event_stream(&self) -> BlobIdIteratorEventStream {
206 BlobIdIteratorEventStream { event_receiver: self.client.take_event_receiver() }
207 }
208
209 pub fn r#next(
214 &self,
215 ) -> fidl::client::QueryResponseFut<Vec<BlobId>, fdomain_client::fidl::FDomainResourceDialect>
216 {
217 BlobIdIteratorProxyInterface::r#next(self)
218 }
219}
220
221impl BlobIdIteratorProxyInterface for BlobIdIteratorProxy {
222 type NextResponseFut =
223 fidl::client::QueryResponseFut<Vec<BlobId>, fdomain_client::fidl::FDomainResourceDialect>;
224 fn r#next(&self) -> Self::NextResponseFut {
225 fn _decode(
226 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
227 ) -> Result<Vec<BlobId>, fidl::Error> {
228 let _response = fidl::client::decode_transaction_body::<
229 BlobIdIteratorNextResponse,
230 fdomain_client::fidl::FDomainResourceDialect,
231 0x5eb0af0daeb8f537,
232 >(_buf?)?;
233 Ok(_response.blobs)
234 }
235 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<BlobId>>(
236 (),
237 0x5eb0af0daeb8f537,
238 fidl::encoding::DynamicFlags::empty(),
239 _decode,
240 )
241 }
242}
243
244pub struct BlobIdIteratorEventStream {
245 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
246}
247
248impl std::marker::Unpin for BlobIdIteratorEventStream {}
249
250impl futures::stream::FusedStream for BlobIdIteratorEventStream {
251 fn is_terminated(&self) -> bool {
252 self.event_receiver.is_terminated()
253 }
254}
255
256impl futures::Stream for BlobIdIteratorEventStream {
257 type Item = Result<BlobIdIteratorEvent, fidl::Error>;
258
259 fn poll_next(
260 mut self: std::pin::Pin<&mut Self>,
261 cx: &mut std::task::Context<'_>,
262 ) -> std::task::Poll<Option<Self::Item>> {
263 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
264 &mut self.event_receiver,
265 cx
266 )?) {
267 Some(buf) => std::task::Poll::Ready(Some(BlobIdIteratorEvent::decode(buf))),
268 None => std::task::Poll::Ready(None),
269 }
270 }
271}
272
273#[derive(Debug)]
274pub enum BlobIdIteratorEvent {}
275
276impl BlobIdIteratorEvent {
277 fn decode(
279 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
280 ) -> Result<BlobIdIteratorEvent, fidl::Error> {
281 let (bytes, _handles) = buf.split_mut();
282 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
283 debug_assert_eq!(tx_header.tx_id, 0);
284 match tx_header.ordinal {
285 _ => Err(fidl::Error::UnknownOrdinal {
286 ordinal: tx_header.ordinal,
287 protocol_name:
288 <BlobIdIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
289 }),
290 }
291 }
292}
293
294pub struct BlobIdIteratorRequestStream {
296 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
297 is_terminated: bool,
298}
299
300impl std::marker::Unpin for BlobIdIteratorRequestStream {}
301
302impl futures::stream::FusedStream for BlobIdIteratorRequestStream {
303 fn is_terminated(&self) -> bool {
304 self.is_terminated
305 }
306}
307
308impl fdomain_client::fidl::RequestStream for BlobIdIteratorRequestStream {
309 type Protocol = BlobIdIteratorMarker;
310 type ControlHandle = BlobIdIteratorControlHandle;
311
312 fn from_channel(channel: fdomain_client::Channel) -> Self {
313 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
314 }
315
316 fn control_handle(&self) -> Self::ControlHandle {
317 BlobIdIteratorControlHandle { inner: self.inner.clone() }
318 }
319
320 fn into_inner(
321 self,
322 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
323 {
324 (self.inner, self.is_terminated)
325 }
326
327 fn from_inner(
328 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
329 is_terminated: bool,
330 ) -> Self {
331 Self { inner, is_terminated }
332 }
333}
334
335impl futures::Stream for BlobIdIteratorRequestStream {
336 type Item = Result<BlobIdIteratorRequest, fidl::Error>;
337
338 fn poll_next(
339 mut self: std::pin::Pin<&mut Self>,
340 cx: &mut std::task::Context<'_>,
341 ) -> std::task::Poll<Option<Self::Item>> {
342 let this = &mut *self;
343 if this.inner.check_shutdown(cx) {
344 this.is_terminated = true;
345 return std::task::Poll::Ready(None);
346 }
347 if this.is_terminated {
348 panic!("polled BlobIdIteratorRequestStream after completion");
349 }
350 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
351 |bytes, handles| {
352 match this.inner.channel().read_etc(cx, bytes, handles) {
353 std::task::Poll::Ready(Ok(())) => {}
354 std::task::Poll::Pending => return std::task::Poll::Pending,
355 std::task::Poll::Ready(Err(None)) => {
356 this.is_terminated = true;
357 return std::task::Poll::Ready(None);
358 }
359 std::task::Poll::Ready(Err(Some(e))) => {
360 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
361 e.into(),
362 ))));
363 }
364 }
365
366 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
368
369 std::task::Poll::Ready(Some(match header.ordinal {
370 0x5eb0af0daeb8f537 => {
371 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
372 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fdomain_client::fidl::FDomainResourceDialect);
373 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
374 let control_handle = BlobIdIteratorControlHandle {
375 inner: this.inner.clone(),
376 };
377 Ok(BlobIdIteratorRequest::Next {
378 responder: BlobIdIteratorNextResponder {
379 control_handle: std::mem::ManuallyDrop::new(control_handle),
380 tx_id: header.tx_id,
381 },
382 })
383 }
384 _ => Err(fidl::Error::UnknownOrdinal {
385 ordinal: header.ordinal,
386 protocol_name: <BlobIdIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
387 }),
388 }))
389 },
390 )
391 }
392}
393
394#[derive(Debug)]
397pub enum BlobIdIteratorRequest {
398 Next { responder: BlobIdIteratorNextResponder },
403}
404
405impl BlobIdIteratorRequest {
406 #[allow(irrefutable_let_patterns)]
407 pub fn into_next(self) -> Option<(BlobIdIteratorNextResponder)> {
408 if let BlobIdIteratorRequest::Next { responder } = self { Some((responder)) } else { None }
409 }
410
411 pub fn method_name(&self) -> &'static str {
413 match *self {
414 BlobIdIteratorRequest::Next { .. } => "next",
415 }
416 }
417}
418
419#[derive(Debug, Clone)]
420pub struct BlobIdIteratorControlHandle {
421 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
422}
423
424impl fdomain_client::fidl::ControlHandle for BlobIdIteratorControlHandle {
425 fn shutdown(&self) {
426 self.inner.shutdown()
427 }
428
429 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
430 self.inner.shutdown_with_epitaph(status)
431 }
432
433 fn is_closed(&self) -> bool {
434 self.inner.channel().is_closed()
435 }
436 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
437 self.inner.channel().on_closed()
438 }
439}
440
441impl BlobIdIteratorControlHandle {}
442
443#[must_use = "FIDL methods require a response to be sent"]
444#[derive(Debug)]
445pub struct BlobIdIteratorNextResponder {
446 control_handle: std::mem::ManuallyDrop<BlobIdIteratorControlHandle>,
447 tx_id: u32,
448}
449
450impl std::ops::Drop for BlobIdIteratorNextResponder {
454 fn drop(&mut self) {
455 self.control_handle.shutdown();
456 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
458 }
459}
460
461impl fdomain_client::fidl::Responder for BlobIdIteratorNextResponder {
462 type ControlHandle = BlobIdIteratorControlHandle;
463
464 fn control_handle(&self) -> &BlobIdIteratorControlHandle {
465 &self.control_handle
466 }
467
468 fn drop_without_shutdown(mut self) {
469 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
471 std::mem::forget(self);
473 }
474}
475
476impl BlobIdIteratorNextResponder {
477 pub fn send(self, mut blobs: &[BlobId]) -> Result<(), fidl::Error> {
481 let _result = self.send_raw(blobs);
482 if _result.is_err() {
483 self.control_handle.shutdown();
484 }
485 self.drop_without_shutdown();
486 _result
487 }
488
489 pub fn send_no_shutdown_on_err(self, mut blobs: &[BlobId]) -> Result<(), fidl::Error> {
491 let _result = self.send_raw(blobs);
492 self.drop_without_shutdown();
493 _result
494 }
495
496 fn send_raw(&self, mut blobs: &[BlobId]) -> Result<(), fidl::Error> {
497 self.control_handle.inner.send::<BlobIdIteratorNextResponse>(
498 (blobs,),
499 self.tx_id,
500 0x5eb0af0daeb8f537,
501 fidl::encoding::DynamicFlags::empty(),
502 )
503 }
504}
505
506#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
507pub struct BlobInfoIteratorMarker;
508
509impl fdomain_client::fidl::ProtocolMarker for BlobInfoIteratorMarker {
510 type Proxy = BlobInfoIteratorProxy;
511 type RequestStream = BlobInfoIteratorRequestStream;
512
513 const DEBUG_NAME: &'static str = "(anonymous) BlobInfoIterator";
514}
515
516pub trait BlobInfoIteratorProxyInterface: Send + Sync {
517 type NextResponseFut: std::future::Future<Output = Result<Vec<BlobInfo>, fidl::Error>> + Send;
518 fn r#next(&self) -> Self::NextResponseFut;
519}
520
521#[derive(Debug, Clone)]
522pub struct BlobInfoIteratorProxy {
523 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
524}
525
526impl fdomain_client::fidl::Proxy for BlobInfoIteratorProxy {
527 type Protocol = BlobInfoIteratorMarker;
528
529 fn from_channel(inner: fdomain_client::Channel) -> Self {
530 Self::new(inner)
531 }
532
533 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
534 self.client.into_channel().map_err(|client| Self { client })
535 }
536
537 fn as_channel(&self) -> &fdomain_client::Channel {
538 self.client.as_channel()
539 }
540}
541
542impl BlobInfoIteratorProxy {
543 pub fn new(channel: fdomain_client::Channel) -> Self {
545 let protocol_name =
546 <BlobInfoIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
547 Self { client: fidl::client::Client::new(channel, protocol_name) }
548 }
549
550 pub fn take_event_stream(&self) -> BlobInfoIteratorEventStream {
556 BlobInfoIteratorEventStream { event_receiver: self.client.take_event_receiver() }
557 }
558
559 pub fn r#next(
564 &self,
565 ) -> fidl::client::QueryResponseFut<Vec<BlobInfo>, fdomain_client::fidl::FDomainResourceDialect>
566 {
567 BlobInfoIteratorProxyInterface::r#next(self)
568 }
569}
570
571impl BlobInfoIteratorProxyInterface for BlobInfoIteratorProxy {
572 type NextResponseFut =
573 fidl::client::QueryResponseFut<Vec<BlobInfo>, fdomain_client::fidl::FDomainResourceDialect>;
574 fn r#next(&self) -> Self::NextResponseFut {
575 fn _decode(
576 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
577 ) -> Result<Vec<BlobInfo>, fidl::Error> {
578 let _response = fidl::client::decode_transaction_body::<
579 BlobInfoIteratorNextResponse,
580 fdomain_client::fidl::FDomainResourceDialect,
581 0x2b889489a59b6970,
582 >(_buf?)?;
583 Ok(_response.blobs)
584 }
585 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<BlobInfo>>(
586 (),
587 0x2b889489a59b6970,
588 fidl::encoding::DynamicFlags::empty(),
589 _decode,
590 )
591 }
592}
593
594pub struct BlobInfoIteratorEventStream {
595 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
596}
597
598impl std::marker::Unpin for BlobInfoIteratorEventStream {}
599
600impl futures::stream::FusedStream for BlobInfoIteratorEventStream {
601 fn is_terminated(&self) -> bool {
602 self.event_receiver.is_terminated()
603 }
604}
605
606impl futures::Stream for BlobInfoIteratorEventStream {
607 type Item = Result<BlobInfoIteratorEvent, fidl::Error>;
608
609 fn poll_next(
610 mut self: std::pin::Pin<&mut Self>,
611 cx: &mut std::task::Context<'_>,
612 ) -> std::task::Poll<Option<Self::Item>> {
613 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
614 &mut self.event_receiver,
615 cx
616 )?) {
617 Some(buf) => std::task::Poll::Ready(Some(BlobInfoIteratorEvent::decode(buf))),
618 None => std::task::Poll::Ready(None),
619 }
620 }
621}
622
623#[derive(Debug)]
624pub enum BlobInfoIteratorEvent {}
625
626impl BlobInfoIteratorEvent {
627 fn decode(
629 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
630 ) -> Result<BlobInfoIteratorEvent, fidl::Error> {
631 let (bytes, _handles) = buf.split_mut();
632 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
633 debug_assert_eq!(tx_header.tx_id, 0);
634 match tx_header.ordinal {
635 _ => Err(fidl::Error::UnknownOrdinal {
636 ordinal: tx_header.ordinal,
637 protocol_name:
638 <BlobInfoIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
639 }),
640 }
641 }
642}
643
644pub struct BlobInfoIteratorRequestStream {
646 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
647 is_terminated: bool,
648}
649
650impl std::marker::Unpin for BlobInfoIteratorRequestStream {}
651
652impl futures::stream::FusedStream for BlobInfoIteratorRequestStream {
653 fn is_terminated(&self) -> bool {
654 self.is_terminated
655 }
656}
657
658impl fdomain_client::fidl::RequestStream for BlobInfoIteratorRequestStream {
659 type Protocol = BlobInfoIteratorMarker;
660 type ControlHandle = BlobInfoIteratorControlHandle;
661
662 fn from_channel(channel: fdomain_client::Channel) -> Self {
663 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
664 }
665
666 fn control_handle(&self) -> Self::ControlHandle {
667 BlobInfoIteratorControlHandle { inner: self.inner.clone() }
668 }
669
670 fn into_inner(
671 self,
672 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
673 {
674 (self.inner, self.is_terminated)
675 }
676
677 fn from_inner(
678 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
679 is_terminated: bool,
680 ) -> Self {
681 Self { inner, is_terminated }
682 }
683}
684
685impl futures::Stream for BlobInfoIteratorRequestStream {
686 type Item = Result<BlobInfoIteratorRequest, fidl::Error>;
687
688 fn poll_next(
689 mut self: std::pin::Pin<&mut Self>,
690 cx: &mut std::task::Context<'_>,
691 ) -> std::task::Poll<Option<Self::Item>> {
692 let this = &mut *self;
693 if this.inner.check_shutdown(cx) {
694 this.is_terminated = true;
695 return std::task::Poll::Ready(None);
696 }
697 if this.is_terminated {
698 panic!("polled BlobInfoIteratorRequestStream after completion");
699 }
700 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
701 |bytes, handles| {
702 match this.inner.channel().read_etc(cx, bytes, handles) {
703 std::task::Poll::Ready(Ok(())) => {}
704 std::task::Poll::Pending => return std::task::Poll::Pending,
705 std::task::Poll::Ready(Err(None)) => {
706 this.is_terminated = true;
707 return std::task::Poll::Ready(None);
708 }
709 std::task::Poll::Ready(Err(Some(e))) => {
710 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
711 e.into(),
712 ))));
713 }
714 }
715
716 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
718
719 std::task::Poll::Ready(Some(match header.ordinal {
720 0x2b889489a59b6970 => {
721 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
722 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fdomain_client::fidl::FDomainResourceDialect);
723 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
724 let control_handle = BlobInfoIteratorControlHandle {
725 inner: this.inner.clone(),
726 };
727 Ok(BlobInfoIteratorRequest::Next {
728 responder: BlobInfoIteratorNextResponder {
729 control_handle: std::mem::ManuallyDrop::new(control_handle),
730 tx_id: header.tx_id,
731 },
732 })
733 }
734 _ => Err(fidl::Error::UnknownOrdinal {
735 ordinal: header.ordinal,
736 protocol_name: <BlobInfoIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
737 }),
738 }))
739 },
740 )
741 }
742}
743
744#[derive(Debug)]
747pub enum BlobInfoIteratorRequest {
748 Next { responder: BlobInfoIteratorNextResponder },
753}
754
755impl BlobInfoIteratorRequest {
756 #[allow(irrefutable_let_patterns)]
757 pub fn into_next(self) -> Option<(BlobInfoIteratorNextResponder)> {
758 if let BlobInfoIteratorRequest::Next { responder } = self {
759 Some((responder))
760 } else {
761 None
762 }
763 }
764
765 pub fn method_name(&self) -> &'static str {
767 match *self {
768 BlobInfoIteratorRequest::Next { .. } => "next",
769 }
770 }
771}
772
773#[derive(Debug, Clone)]
774pub struct BlobInfoIteratorControlHandle {
775 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
776}
777
778impl fdomain_client::fidl::ControlHandle for BlobInfoIteratorControlHandle {
779 fn shutdown(&self) {
780 self.inner.shutdown()
781 }
782
783 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
784 self.inner.shutdown_with_epitaph(status)
785 }
786
787 fn is_closed(&self) -> bool {
788 self.inner.channel().is_closed()
789 }
790 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
791 self.inner.channel().on_closed()
792 }
793}
794
795impl BlobInfoIteratorControlHandle {}
796
797#[must_use = "FIDL methods require a response to be sent"]
798#[derive(Debug)]
799pub struct BlobInfoIteratorNextResponder {
800 control_handle: std::mem::ManuallyDrop<BlobInfoIteratorControlHandle>,
801 tx_id: u32,
802}
803
804impl std::ops::Drop for BlobInfoIteratorNextResponder {
808 fn drop(&mut self) {
809 self.control_handle.shutdown();
810 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
812 }
813}
814
815impl fdomain_client::fidl::Responder for BlobInfoIteratorNextResponder {
816 type ControlHandle = BlobInfoIteratorControlHandle;
817
818 fn control_handle(&self) -> &BlobInfoIteratorControlHandle {
819 &self.control_handle
820 }
821
822 fn drop_without_shutdown(mut self) {
823 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
825 std::mem::forget(self);
827 }
828}
829
830impl BlobInfoIteratorNextResponder {
831 pub fn send(self, mut blobs: &[BlobInfo]) -> Result<(), fidl::Error> {
835 let _result = self.send_raw(blobs);
836 if _result.is_err() {
837 self.control_handle.shutdown();
838 }
839 self.drop_without_shutdown();
840 _result
841 }
842
843 pub fn send_no_shutdown_on_err(self, mut blobs: &[BlobInfo]) -> Result<(), fidl::Error> {
845 let _result = self.send_raw(blobs);
846 self.drop_without_shutdown();
847 _result
848 }
849
850 fn send_raw(&self, mut blobs: &[BlobInfo]) -> Result<(), fidl::Error> {
851 self.control_handle.inner.send::<BlobInfoIteratorNextResponse>(
852 (blobs,),
853 self.tx_id,
854 0x2b889489a59b6970,
855 fidl::encoding::DynamicFlags::empty(),
856 )
857 }
858}
859
860#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
861pub struct CupMarker;
862
863impl fdomain_client::fidl::ProtocolMarker for CupMarker {
864 type Proxy = CupProxy;
865 type RequestStream = CupRequestStream;
866
867 const DEBUG_NAME: &'static str = "fuchsia.pkg.Cup";
868}
869impl fdomain_client::fidl::DiscoverableProtocolMarker for CupMarker {}
870pub type CupWriteResult = Result<(), WriteError>;
871pub type CupGetInfoResult = Result<(String, String), GetInfoError>;
872
873pub trait CupProxyInterface: Send + Sync {
874 type WriteResponseFut: std::future::Future<Output = Result<CupWriteResult, fidl::Error>> + Send;
875 fn r#write(&self, url: &PackageUrl, cup: &CupData) -> Self::WriteResponseFut;
876 type GetInfoResponseFut: std::future::Future<Output = Result<CupGetInfoResult, fidl::Error>>
877 + Send;
878 fn r#get_info(&self, url: &PackageUrl) -> Self::GetInfoResponseFut;
879}
880
881#[derive(Debug, Clone)]
882pub struct CupProxy {
883 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
884}
885
886impl fdomain_client::fidl::Proxy for CupProxy {
887 type Protocol = CupMarker;
888
889 fn from_channel(inner: fdomain_client::Channel) -> Self {
890 Self::new(inner)
891 }
892
893 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
894 self.client.into_channel().map_err(|client| Self { client })
895 }
896
897 fn as_channel(&self) -> &fdomain_client::Channel {
898 self.client.as_channel()
899 }
900}
901
902impl CupProxy {
903 pub fn new(channel: fdomain_client::Channel) -> Self {
905 let protocol_name = <CupMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
906 Self { client: fidl::client::Client::new(channel, protocol_name) }
907 }
908
909 pub fn take_event_stream(&self) -> CupEventStream {
915 CupEventStream { event_receiver: self.client.take_event_receiver() }
916 }
917
918 pub fn r#write(
921 &self,
922 mut url: &PackageUrl,
923 mut cup: &CupData,
924 ) -> fidl::client::QueryResponseFut<CupWriteResult, fdomain_client::fidl::FDomainResourceDialect>
925 {
926 CupProxyInterface::r#write(self, url, cup)
927 }
928
929 pub fn r#get_info(
931 &self,
932 mut url: &PackageUrl,
933 ) -> fidl::client::QueryResponseFut<
934 CupGetInfoResult,
935 fdomain_client::fidl::FDomainResourceDialect,
936 > {
937 CupProxyInterface::r#get_info(self, url)
938 }
939}
940
941impl CupProxyInterface for CupProxy {
942 type WriteResponseFut = fidl::client::QueryResponseFut<
943 CupWriteResult,
944 fdomain_client::fidl::FDomainResourceDialect,
945 >;
946 fn r#write(&self, mut url: &PackageUrl, mut cup: &CupData) -> Self::WriteResponseFut {
947 fn _decode(
948 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
949 ) -> Result<CupWriteResult, fidl::Error> {
950 let _response = fidl::client::decode_transaction_body::<
951 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, WriteError>,
952 fdomain_client::fidl::FDomainResourceDialect,
953 0x29f30e83bda39c37,
954 >(_buf?)?;
955 Ok(_response.map(|x| x))
956 }
957 self.client.send_query_and_decode::<CupWriteRequest, CupWriteResult>(
958 (url, cup),
959 0x29f30e83bda39c37,
960 fidl::encoding::DynamicFlags::empty(),
961 _decode,
962 )
963 }
964
965 type GetInfoResponseFut = fidl::client::QueryResponseFut<
966 CupGetInfoResult,
967 fdomain_client::fidl::FDomainResourceDialect,
968 >;
969 fn r#get_info(&self, mut url: &PackageUrl) -> Self::GetInfoResponseFut {
970 fn _decode(
971 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
972 ) -> Result<CupGetInfoResult, fidl::Error> {
973 let _response = fidl::client::decode_transaction_body::<
974 fidl::encoding::ResultType<CupGetInfoResponse, GetInfoError>,
975 fdomain_client::fidl::FDomainResourceDialect,
976 0x5b2cedd887209b9c,
977 >(_buf?)?;
978 Ok(_response.map(|x| (x.version, x.channel)))
979 }
980 self.client.send_query_and_decode::<CupGetInfoRequest, CupGetInfoResult>(
981 (url,),
982 0x5b2cedd887209b9c,
983 fidl::encoding::DynamicFlags::empty(),
984 _decode,
985 )
986 }
987}
988
989pub struct CupEventStream {
990 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
991}
992
993impl std::marker::Unpin for CupEventStream {}
994
995impl futures::stream::FusedStream for CupEventStream {
996 fn is_terminated(&self) -> bool {
997 self.event_receiver.is_terminated()
998 }
999}
1000
1001impl futures::Stream for CupEventStream {
1002 type Item = Result<CupEvent, fidl::Error>;
1003
1004 fn poll_next(
1005 mut self: std::pin::Pin<&mut Self>,
1006 cx: &mut std::task::Context<'_>,
1007 ) -> std::task::Poll<Option<Self::Item>> {
1008 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1009 &mut self.event_receiver,
1010 cx
1011 )?) {
1012 Some(buf) => std::task::Poll::Ready(Some(CupEvent::decode(buf))),
1013 None => std::task::Poll::Ready(None),
1014 }
1015 }
1016}
1017
1018#[derive(Debug)]
1019pub enum CupEvent {}
1020
1021impl CupEvent {
1022 fn decode(
1024 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1025 ) -> Result<CupEvent, fidl::Error> {
1026 let (bytes, _handles) = buf.split_mut();
1027 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1028 debug_assert_eq!(tx_header.tx_id, 0);
1029 match tx_header.ordinal {
1030 _ => Err(fidl::Error::UnknownOrdinal {
1031 ordinal: tx_header.ordinal,
1032 protocol_name: <CupMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
1033 }),
1034 }
1035 }
1036}
1037
1038pub struct CupRequestStream {
1040 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
1041 is_terminated: bool,
1042}
1043
1044impl std::marker::Unpin for CupRequestStream {}
1045
1046impl futures::stream::FusedStream for CupRequestStream {
1047 fn is_terminated(&self) -> bool {
1048 self.is_terminated
1049 }
1050}
1051
1052impl fdomain_client::fidl::RequestStream for CupRequestStream {
1053 type Protocol = CupMarker;
1054 type ControlHandle = CupControlHandle;
1055
1056 fn from_channel(channel: fdomain_client::Channel) -> Self {
1057 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1058 }
1059
1060 fn control_handle(&self) -> Self::ControlHandle {
1061 CupControlHandle { inner: self.inner.clone() }
1062 }
1063
1064 fn into_inner(
1065 self,
1066 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
1067 {
1068 (self.inner, self.is_terminated)
1069 }
1070
1071 fn from_inner(
1072 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
1073 is_terminated: bool,
1074 ) -> Self {
1075 Self { inner, is_terminated }
1076 }
1077}
1078
1079impl futures::Stream for CupRequestStream {
1080 type Item = Result<CupRequest, fidl::Error>;
1081
1082 fn poll_next(
1083 mut self: std::pin::Pin<&mut Self>,
1084 cx: &mut std::task::Context<'_>,
1085 ) -> std::task::Poll<Option<Self::Item>> {
1086 let this = &mut *self;
1087 if this.inner.check_shutdown(cx) {
1088 this.is_terminated = true;
1089 return std::task::Poll::Ready(None);
1090 }
1091 if this.is_terminated {
1092 panic!("polled CupRequestStream after completion");
1093 }
1094 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
1095 |bytes, handles| {
1096 match this.inner.channel().read_etc(cx, bytes, handles) {
1097 std::task::Poll::Ready(Ok(())) => {}
1098 std::task::Poll::Pending => return std::task::Poll::Pending,
1099 std::task::Poll::Ready(Err(None)) => {
1100 this.is_terminated = true;
1101 return std::task::Poll::Ready(None);
1102 }
1103 std::task::Poll::Ready(Err(Some(e))) => {
1104 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1105 e.into(),
1106 ))));
1107 }
1108 }
1109
1110 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1112
1113 std::task::Poll::Ready(Some(match header.ordinal {
1114 0x29f30e83bda39c37 => {
1115 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1116 let mut req = fidl::new_empty!(
1117 CupWriteRequest,
1118 fdomain_client::fidl::FDomainResourceDialect
1119 );
1120 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<CupWriteRequest>(&header, _body_bytes, handles, &mut req)?;
1121 let control_handle = CupControlHandle { inner: this.inner.clone() };
1122 Ok(CupRequest::Write {
1123 url: req.url,
1124 cup: req.cup,
1125
1126 responder: CupWriteResponder {
1127 control_handle: std::mem::ManuallyDrop::new(control_handle),
1128 tx_id: header.tx_id,
1129 },
1130 })
1131 }
1132 0x5b2cedd887209b9c => {
1133 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1134 let mut req = fidl::new_empty!(
1135 CupGetInfoRequest,
1136 fdomain_client::fidl::FDomainResourceDialect
1137 );
1138 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<CupGetInfoRequest>(&header, _body_bytes, handles, &mut req)?;
1139 let control_handle = CupControlHandle { inner: this.inner.clone() };
1140 Ok(CupRequest::GetInfo {
1141 url: req.url,
1142
1143 responder: CupGetInfoResponder {
1144 control_handle: std::mem::ManuallyDrop::new(control_handle),
1145 tx_id: header.tx_id,
1146 },
1147 })
1148 }
1149 _ => Err(fidl::Error::UnknownOrdinal {
1150 ordinal: header.ordinal,
1151 protocol_name:
1152 <CupMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
1153 }),
1154 }))
1155 },
1156 )
1157 }
1158}
1159
1160#[derive(Debug)]
1163pub enum CupRequest {
1164 Write { url: PackageUrl, cup: CupData, responder: CupWriteResponder },
1167 GetInfo { url: PackageUrl, responder: CupGetInfoResponder },
1169}
1170
1171impl CupRequest {
1172 #[allow(irrefutable_let_patterns)]
1173 pub fn into_write(self) -> Option<(PackageUrl, CupData, CupWriteResponder)> {
1174 if let CupRequest::Write { url, cup, responder } = self {
1175 Some((url, cup, responder))
1176 } else {
1177 None
1178 }
1179 }
1180
1181 #[allow(irrefutable_let_patterns)]
1182 pub fn into_get_info(self) -> Option<(PackageUrl, CupGetInfoResponder)> {
1183 if let CupRequest::GetInfo { url, responder } = self {
1184 Some((url, responder))
1185 } else {
1186 None
1187 }
1188 }
1189
1190 pub fn method_name(&self) -> &'static str {
1192 match *self {
1193 CupRequest::Write { .. } => "write",
1194 CupRequest::GetInfo { .. } => "get_info",
1195 }
1196 }
1197}
1198
1199#[derive(Debug, Clone)]
1200pub struct CupControlHandle {
1201 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
1202}
1203
1204impl fdomain_client::fidl::ControlHandle for CupControlHandle {
1205 fn shutdown(&self) {
1206 self.inner.shutdown()
1207 }
1208
1209 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1210 self.inner.shutdown_with_epitaph(status)
1211 }
1212
1213 fn is_closed(&self) -> bool {
1214 self.inner.channel().is_closed()
1215 }
1216 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
1217 self.inner.channel().on_closed()
1218 }
1219}
1220
1221impl CupControlHandle {}
1222
1223#[must_use = "FIDL methods require a response to be sent"]
1224#[derive(Debug)]
1225pub struct CupWriteResponder {
1226 control_handle: std::mem::ManuallyDrop<CupControlHandle>,
1227 tx_id: u32,
1228}
1229
1230impl std::ops::Drop for CupWriteResponder {
1234 fn drop(&mut self) {
1235 self.control_handle.shutdown();
1236 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1238 }
1239}
1240
1241impl fdomain_client::fidl::Responder for CupWriteResponder {
1242 type ControlHandle = CupControlHandle;
1243
1244 fn control_handle(&self) -> &CupControlHandle {
1245 &self.control_handle
1246 }
1247
1248 fn drop_without_shutdown(mut self) {
1249 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1251 std::mem::forget(self);
1253 }
1254}
1255
1256impl CupWriteResponder {
1257 pub fn send(self, mut result: Result<(), WriteError>) -> Result<(), fidl::Error> {
1261 let _result = self.send_raw(result);
1262 if _result.is_err() {
1263 self.control_handle.shutdown();
1264 }
1265 self.drop_without_shutdown();
1266 _result
1267 }
1268
1269 pub fn send_no_shutdown_on_err(
1271 self,
1272 mut result: Result<(), WriteError>,
1273 ) -> Result<(), fidl::Error> {
1274 let _result = self.send_raw(result);
1275 self.drop_without_shutdown();
1276 _result
1277 }
1278
1279 fn send_raw(&self, mut result: Result<(), WriteError>) -> Result<(), fidl::Error> {
1280 self.control_handle
1281 .inner
1282 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, WriteError>>(
1283 result,
1284 self.tx_id,
1285 0x29f30e83bda39c37,
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 CupGetInfoResponder {
1294 control_handle: std::mem::ManuallyDrop<CupControlHandle>,
1295 tx_id: u32,
1296}
1297
1298impl std::ops::Drop for CupGetInfoResponder {
1302 fn drop(&mut self) {
1303 self.control_handle.shutdown();
1304 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1306 }
1307}
1308
1309impl fdomain_client::fidl::Responder for CupGetInfoResponder {
1310 type ControlHandle = CupControlHandle;
1311
1312 fn control_handle(&self) -> &CupControlHandle {
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 CupGetInfoResponder {
1325 pub fn send(self, mut result: Result<(&str, &str), GetInfoError>) -> 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<(&str, &str), GetInfoError>,
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<(&str, &str), GetInfoError>) -> Result<(), fidl::Error> {
1348 self.control_handle
1349 .inner
1350 .send::<fidl::encoding::ResultType<CupGetInfoResponse, GetInfoError>>(
1351 result,
1352 self.tx_id,
1353 0x5b2cedd887209b9c,
1354 fidl::encoding::DynamicFlags::empty(),
1355 )
1356 }
1357}
1358
1359#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1360pub struct FontResolverMarker;
1361
1362impl fdomain_client::fidl::ProtocolMarker for FontResolverMarker {
1363 type Proxy = FontResolverProxy;
1364 type RequestStream = FontResolverRequestStream;
1365
1366 const DEBUG_NAME: &'static str = "fuchsia.pkg.FontResolver";
1367}
1368impl fdomain_client::fidl::DiscoverableProtocolMarker for FontResolverMarker {}
1369pub type FontResolverResolveResult = Result<(), i32>;
1370
1371pub trait FontResolverProxyInterface: Send + Sync {
1372 type ResolveResponseFut: std::future::Future<Output = Result<FontResolverResolveResult, fidl::Error>>
1373 + Send;
1374 fn r#resolve(
1375 &self,
1376 package_url: &str,
1377 directory_request: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
1378 ) -> Self::ResolveResponseFut;
1379}
1380
1381#[derive(Debug, Clone)]
1382pub struct FontResolverProxy {
1383 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
1384}
1385
1386impl fdomain_client::fidl::Proxy for FontResolverProxy {
1387 type Protocol = FontResolverMarker;
1388
1389 fn from_channel(inner: fdomain_client::Channel) -> Self {
1390 Self::new(inner)
1391 }
1392
1393 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
1394 self.client.into_channel().map_err(|client| Self { client })
1395 }
1396
1397 fn as_channel(&self) -> &fdomain_client::Channel {
1398 self.client.as_channel()
1399 }
1400}
1401
1402impl FontResolverProxy {
1403 pub fn new(channel: fdomain_client::Channel) -> Self {
1405 let protocol_name =
1406 <FontResolverMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
1407 Self { client: fidl::client::Client::new(channel, protocol_name) }
1408 }
1409
1410 pub fn take_event_stream(&self) -> FontResolverEventStream {
1416 FontResolverEventStream { event_receiver: self.client.take_event_receiver() }
1417 }
1418
1419 pub fn r#resolve(
1436 &self,
1437 mut package_url: &str,
1438 mut directory_request: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
1439 ) -> fidl::client::QueryResponseFut<
1440 FontResolverResolveResult,
1441 fdomain_client::fidl::FDomainResourceDialect,
1442 > {
1443 FontResolverProxyInterface::r#resolve(self, package_url, directory_request)
1444 }
1445}
1446
1447impl FontResolverProxyInterface for FontResolverProxy {
1448 type ResolveResponseFut = fidl::client::QueryResponseFut<
1449 FontResolverResolveResult,
1450 fdomain_client::fidl::FDomainResourceDialect,
1451 >;
1452 fn r#resolve(
1453 &self,
1454 mut package_url: &str,
1455 mut directory_request: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
1456 ) -> Self::ResolveResponseFut {
1457 fn _decode(
1458 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1459 ) -> Result<FontResolverResolveResult, fidl::Error> {
1460 let _response = fidl::client::decode_transaction_body::<
1461 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
1462 fdomain_client::fidl::FDomainResourceDialect,
1463 0x159f60cc5ba432da,
1464 >(_buf?)?;
1465 Ok(_response.map(|x| x))
1466 }
1467 self.client.send_query_and_decode::<FontResolverResolveRequest, FontResolverResolveResult>(
1468 (package_url, directory_request),
1469 0x159f60cc5ba432da,
1470 fidl::encoding::DynamicFlags::empty(),
1471 _decode,
1472 )
1473 }
1474}
1475
1476pub struct FontResolverEventStream {
1477 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
1478}
1479
1480impl std::marker::Unpin for FontResolverEventStream {}
1481
1482impl futures::stream::FusedStream for FontResolverEventStream {
1483 fn is_terminated(&self) -> bool {
1484 self.event_receiver.is_terminated()
1485 }
1486}
1487
1488impl futures::Stream for FontResolverEventStream {
1489 type Item = Result<FontResolverEvent, fidl::Error>;
1490
1491 fn poll_next(
1492 mut self: std::pin::Pin<&mut Self>,
1493 cx: &mut std::task::Context<'_>,
1494 ) -> std::task::Poll<Option<Self::Item>> {
1495 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1496 &mut self.event_receiver,
1497 cx
1498 )?) {
1499 Some(buf) => std::task::Poll::Ready(Some(FontResolverEvent::decode(buf))),
1500 None => std::task::Poll::Ready(None),
1501 }
1502 }
1503}
1504
1505#[derive(Debug)]
1506pub enum FontResolverEvent {}
1507
1508impl FontResolverEvent {
1509 fn decode(
1511 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1512 ) -> Result<FontResolverEvent, fidl::Error> {
1513 let (bytes, _handles) = buf.split_mut();
1514 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1515 debug_assert_eq!(tx_header.tx_id, 0);
1516 match tx_header.ordinal {
1517 _ => Err(fidl::Error::UnknownOrdinal {
1518 ordinal: tx_header.ordinal,
1519 protocol_name:
1520 <FontResolverMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
1521 }),
1522 }
1523 }
1524}
1525
1526pub struct FontResolverRequestStream {
1528 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
1529 is_terminated: bool,
1530}
1531
1532impl std::marker::Unpin for FontResolverRequestStream {}
1533
1534impl futures::stream::FusedStream for FontResolverRequestStream {
1535 fn is_terminated(&self) -> bool {
1536 self.is_terminated
1537 }
1538}
1539
1540impl fdomain_client::fidl::RequestStream for FontResolverRequestStream {
1541 type Protocol = FontResolverMarker;
1542 type ControlHandle = FontResolverControlHandle;
1543
1544 fn from_channel(channel: fdomain_client::Channel) -> Self {
1545 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1546 }
1547
1548 fn control_handle(&self) -> Self::ControlHandle {
1549 FontResolverControlHandle { inner: self.inner.clone() }
1550 }
1551
1552 fn into_inner(
1553 self,
1554 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
1555 {
1556 (self.inner, self.is_terminated)
1557 }
1558
1559 fn from_inner(
1560 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
1561 is_terminated: bool,
1562 ) -> Self {
1563 Self { inner, is_terminated }
1564 }
1565}
1566
1567impl futures::Stream for FontResolverRequestStream {
1568 type Item = Result<FontResolverRequest, fidl::Error>;
1569
1570 fn poll_next(
1571 mut self: std::pin::Pin<&mut Self>,
1572 cx: &mut std::task::Context<'_>,
1573 ) -> std::task::Poll<Option<Self::Item>> {
1574 let this = &mut *self;
1575 if this.inner.check_shutdown(cx) {
1576 this.is_terminated = true;
1577 return std::task::Poll::Ready(None);
1578 }
1579 if this.is_terminated {
1580 panic!("polled FontResolverRequestStream after completion");
1581 }
1582 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
1583 |bytes, handles| {
1584 match this.inner.channel().read_etc(cx, bytes, handles) {
1585 std::task::Poll::Ready(Ok(())) => {}
1586 std::task::Poll::Pending => return std::task::Poll::Pending,
1587 std::task::Poll::Ready(Err(None)) => {
1588 this.is_terminated = true;
1589 return std::task::Poll::Ready(None);
1590 }
1591 std::task::Poll::Ready(Err(Some(e))) => {
1592 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1593 e.into(),
1594 ))));
1595 }
1596 }
1597
1598 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1600
1601 std::task::Poll::Ready(Some(match header.ordinal {
1602 0x159f60cc5ba432da => {
1603 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1604 let mut req = fidl::new_empty!(
1605 FontResolverResolveRequest,
1606 fdomain_client::fidl::FDomainResourceDialect
1607 );
1608 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<FontResolverResolveRequest>(&header, _body_bytes, handles, &mut req)?;
1609 let control_handle =
1610 FontResolverControlHandle { inner: this.inner.clone() };
1611 Ok(FontResolverRequest::Resolve {
1612 package_url: req.package_url,
1613 directory_request: req.directory_request,
1614
1615 responder: FontResolverResolveResponder {
1616 control_handle: std::mem::ManuallyDrop::new(control_handle),
1617 tx_id: header.tx_id,
1618 },
1619 })
1620 }
1621 _ => Err(fidl::Error::UnknownOrdinal {
1622 ordinal: header.ordinal,
1623 protocol_name:
1624 <FontResolverMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
1625 }),
1626 }))
1627 },
1628 )
1629 }
1630}
1631
1632#[derive(Debug)]
1640pub enum FontResolverRequest {
1641 Resolve {
1658 package_url: String,
1659 directory_request: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
1660 responder: FontResolverResolveResponder,
1661 },
1662}
1663
1664impl FontResolverRequest {
1665 #[allow(irrefutable_let_patterns)]
1666 pub fn into_resolve(
1667 self,
1668 ) -> Option<(
1669 String,
1670 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
1671 FontResolverResolveResponder,
1672 )> {
1673 if let FontResolverRequest::Resolve { package_url, directory_request, responder } = self {
1674 Some((package_url, directory_request, responder))
1675 } else {
1676 None
1677 }
1678 }
1679
1680 pub fn method_name(&self) -> &'static str {
1682 match *self {
1683 FontResolverRequest::Resolve { .. } => "resolve",
1684 }
1685 }
1686}
1687
1688#[derive(Debug, Clone)]
1689pub struct FontResolverControlHandle {
1690 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
1691}
1692
1693impl fdomain_client::fidl::ControlHandle for FontResolverControlHandle {
1694 fn shutdown(&self) {
1695 self.inner.shutdown()
1696 }
1697
1698 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1699 self.inner.shutdown_with_epitaph(status)
1700 }
1701
1702 fn is_closed(&self) -> bool {
1703 self.inner.channel().is_closed()
1704 }
1705 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
1706 self.inner.channel().on_closed()
1707 }
1708}
1709
1710impl FontResolverControlHandle {}
1711
1712#[must_use = "FIDL methods require a response to be sent"]
1713#[derive(Debug)]
1714pub struct FontResolverResolveResponder {
1715 control_handle: std::mem::ManuallyDrop<FontResolverControlHandle>,
1716 tx_id: u32,
1717}
1718
1719impl std::ops::Drop for FontResolverResolveResponder {
1723 fn drop(&mut self) {
1724 self.control_handle.shutdown();
1725 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1727 }
1728}
1729
1730impl fdomain_client::fidl::Responder for FontResolverResolveResponder {
1731 type ControlHandle = FontResolverControlHandle;
1732
1733 fn control_handle(&self) -> &FontResolverControlHandle {
1734 &self.control_handle
1735 }
1736
1737 fn drop_without_shutdown(mut self) {
1738 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1740 std::mem::forget(self);
1742 }
1743}
1744
1745impl FontResolverResolveResponder {
1746 pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
1750 let _result = self.send_raw(result);
1751 if _result.is_err() {
1752 self.control_handle.shutdown();
1753 }
1754 self.drop_without_shutdown();
1755 _result
1756 }
1757
1758 pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
1760 let _result = self.send_raw(result);
1761 self.drop_without_shutdown();
1762 _result
1763 }
1764
1765 fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
1766 self.control_handle
1767 .inner
1768 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
1769 result,
1770 self.tx_id,
1771 0x159f60cc5ba432da,
1772 fidl::encoding::DynamicFlags::empty(),
1773 )
1774 }
1775}
1776
1777#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1778pub struct NeededBlobsMarker;
1779
1780impl fdomain_client::fidl::ProtocolMarker for NeededBlobsMarker {
1781 type Proxy = NeededBlobsProxy;
1782 type RequestStream = NeededBlobsRequestStream;
1783
1784 const DEBUG_NAME: &'static str = "(anonymous) NeededBlobs";
1785}
1786pub type NeededBlobsOpenMetaBlobResult = Result<
1787 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
1788 OpenBlobError,
1789>;
1790pub type NeededBlobsOpenBlobResult = Result<
1791 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
1792 OpenBlobError,
1793>;
1794pub type NeededBlobsBlobWrittenResult = Result<(), BlobWrittenError>;
1795
1796pub trait NeededBlobsProxyInterface: Send + Sync {
1797 type OpenMetaBlobResponseFut: std::future::Future<Output = Result<NeededBlobsOpenMetaBlobResult, fidl::Error>>
1798 + Send;
1799 fn r#open_meta_blob(&self) -> Self::OpenMetaBlobResponseFut;
1800 fn r#get_missing_blobs(
1801 &self,
1802 iterator: fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>,
1803 ) -> Result<(), fidl::Error>;
1804 type OpenBlobResponseFut: std::future::Future<Output = Result<NeededBlobsOpenBlobResult, fidl::Error>>
1805 + Send;
1806 fn r#open_blob(&self, blob_id: &BlobId, allow_existing: bool) -> Self::OpenBlobResponseFut;
1807 type BlobWrittenResponseFut: std::future::Future<Output = Result<NeededBlobsBlobWrittenResult, fidl::Error>>
1808 + Send;
1809 fn r#blob_written(&self, blob_id: &BlobId) -> Self::BlobWrittenResponseFut;
1810 type AbortResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1811 fn r#abort(&self) -> Self::AbortResponseFut;
1812}
1813
1814#[derive(Debug, Clone)]
1815pub struct NeededBlobsProxy {
1816 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
1817}
1818
1819impl fdomain_client::fidl::Proxy for NeededBlobsProxy {
1820 type Protocol = NeededBlobsMarker;
1821
1822 fn from_channel(inner: fdomain_client::Channel) -> Self {
1823 Self::new(inner)
1824 }
1825
1826 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
1827 self.client.into_channel().map_err(|client| Self { client })
1828 }
1829
1830 fn as_channel(&self) -> &fdomain_client::Channel {
1831 self.client.as_channel()
1832 }
1833}
1834
1835impl NeededBlobsProxy {
1836 pub fn new(channel: fdomain_client::Channel) -> Self {
1838 let protocol_name = <NeededBlobsMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
1839 Self { client: fidl::client::Client::new(channel, protocol_name) }
1840 }
1841
1842 pub fn take_event_stream(&self) -> NeededBlobsEventStream {
1848 NeededBlobsEventStream { event_receiver: self.client.take_event_receiver() }
1849 }
1850
1851 pub fn r#open_meta_blob(
1864 &self,
1865 ) -> fidl::client::QueryResponseFut<
1866 NeededBlobsOpenMetaBlobResult,
1867 fdomain_client::fidl::FDomainResourceDialect,
1868 > {
1869 NeededBlobsProxyInterface::r#open_meta_blob(self)
1870 }
1871
1872 pub fn r#get_missing_blobs(
1890 &self,
1891 mut iterator: fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>,
1892 ) -> Result<(), fidl::Error> {
1893 NeededBlobsProxyInterface::r#get_missing_blobs(self, iterator)
1894 }
1895
1896 pub fn r#open_blob(
1906 &self,
1907 mut blob_id: &BlobId,
1908 mut allow_existing: bool,
1909 ) -> fidl::client::QueryResponseFut<
1910 NeededBlobsOpenBlobResult,
1911 fdomain_client::fidl::FDomainResourceDialect,
1912 > {
1913 NeededBlobsProxyInterface::r#open_blob(self, blob_id, allow_existing)
1914 }
1915
1916 pub fn r#blob_written(
1927 &self,
1928 mut blob_id: &BlobId,
1929 ) -> fidl::client::QueryResponseFut<
1930 NeededBlobsBlobWrittenResult,
1931 fdomain_client::fidl::FDomainResourceDialect,
1932 > {
1933 NeededBlobsProxyInterface::r#blob_written(self, blob_id)
1934 }
1935
1936 pub fn r#abort(
1946 &self,
1947 ) -> fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect> {
1948 NeededBlobsProxyInterface::r#abort(self)
1949 }
1950}
1951
1952impl NeededBlobsProxyInterface for NeededBlobsProxy {
1953 type OpenMetaBlobResponseFut = fidl::client::QueryResponseFut<
1954 NeededBlobsOpenMetaBlobResult,
1955 fdomain_client::fidl::FDomainResourceDialect,
1956 >;
1957 fn r#open_meta_blob(&self) -> Self::OpenMetaBlobResponseFut {
1958 fn _decode(
1959 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1960 ) -> Result<NeededBlobsOpenMetaBlobResult, fidl::Error> {
1961 let _response = fidl::client::decode_transaction_body::<
1962 fidl::encoding::ResultType<NeededBlobsOpenMetaBlobResponse, OpenBlobError>,
1963 fdomain_client::fidl::FDomainResourceDialect,
1964 0x42f385a58180f5fb,
1965 >(_buf?)?;
1966 Ok(_response.map(|x| x.writer))
1967 }
1968 self.client
1969 .send_query_and_decode::<fidl::encoding::EmptyPayload, NeededBlobsOpenMetaBlobResult>(
1970 (),
1971 0x42f385a58180f5fb,
1972 fidl::encoding::DynamicFlags::empty(),
1973 _decode,
1974 )
1975 }
1976
1977 fn r#get_missing_blobs(
1978 &self,
1979 mut iterator: fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>,
1980 ) -> Result<(), fidl::Error> {
1981 self.client.send::<NeededBlobsGetMissingBlobsRequest>(
1982 (iterator,),
1983 0x44eaf14fd56e7ae1,
1984 fidl::encoding::DynamicFlags::empty(),
1985 )
1986 }
1987
1988 type OpenBlobResponseFut = fidl::client::QueryResponseFut<
1989 NeededBlobsOpenBlobResult,
1990 fdomain_client::fidl::FDomainResourceDialect,
1991 >;
1992 fn r#open_blob(
1993 &self,
1994 mut blob_id: &BlobId,
1995 mut allow_existing: bool,
1996 ) -> Self::OpenBlobResponseFut {
1997 fn _decode(
1998 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1999 ) -> Result<NeededBlobsOpenBlobResult, fidl::Error> {
2000 let _response = fidl::client::decode_transaction_body::<
2001 fidl::encoding::ResultType<NeededBlobsOpenBlobResponse, OpenBlobError>,
2002 fdomain_client::fidl::FDomainResourceDialect,
2003 0x67cd4c4cd10ea9e0,
2004 >(_buf?)?;
2005 Ok(_response.map(|x| x.writer))
2006 }
2007 self.client.send_query_and_decode::<NeededBlobsOpenBlobRequest, NeededBlobsOpenBlobResult>(
2008 (blob_id, allow_existing),
2009 0x67cd4c4cd10ea9e0,
2010 fidl::encoding::DynamicFlags::empty(),
2011 _decode,
2012 )
2013 }
2014
2015 type BlobWrittenResponseFut = fidl::client::QueryResponseFut<
2016 NeededBlobsBlobWrittenResult,
2017 fdomain_client::fidl::FDomainResourceDialect,
2018 >;
2019 fn r#blob_written(&self, mut blob_id: &BlobId) -> Self::BlobWrittenResponseFut {
2020 fn _decode(
2021 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2022 ) -> Result<NeededBlobsBlobWrittenResult, fidl::Error> {
2023 let _response = fidl::client::decode_transaction_body::<
2024 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, BlobWrittenError>,
2025 fdomain_client::fidl::FDomainResourceDialect,
2026 0x222f80ec77433f44,
2027 >(_buf?)?;
2028 Ok(_response.map(|x| x))
2029 }
2030 self.client
2031 .send_query_and_decode::<NeededBlobsBlobWrittenRequest, NeededBlobsBlobWrittenResult>(
2032 (blob_id,),
2033 0x222f80ec77433f44,
2034 fidl::encoding::DynamicFlags::empty(),
2035 _decode,
2036 )
2037 }
2038
2039 type AbortResponseFut =
2040 fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect>;
2041 fn r#abort(&self) -> Self::AbortResponseFut {
2042 fn _decode(
2043 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2044 ) -> Result<(), fidl::Error> {
2045 let _response = fidl::client::decode_transaction_body::<
2046 fidl::encoding::EmptyPayload,
2047 fdomain_client::fidl::FDomainResourceDialect,
2048 0x6fda8d5ebea74cbb,
2049 >(_buf?)?;
2050 Ok(_response)
2051 }
2052 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
2053 (),
2054 0x6fda8d5ebea74cbb,
2055 fidl::encoding::DynamicFlags::empty(),
2056 _decode,
2057 )
2058 }
2059}
2060
2061pub struct NeededBlobsEventStream {
2062 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
2063}
2064
2065impl std::marker::Unpin for NeededBlobsEventStream {}
2066
2067impl futures::stream::FusedStream for NeededBlobsEventStream {
2068 fn is_terminated(&self) -> bool {
2069 self.event_receiver.is_terminated()
2070 }
2071}
2072
2073impl futures::Stream for NeededBlobsEventStream {
2074 type Item = Result<NeededBlobsEvent, fidl::Error>;
2075
2076 fn poll_next(
2077 mut self: std::pin::Pin<&mut Self>,
2078 cx: &mut std::task::Context<'_>,
2079 ) -> std::task::Poll<Option<Self::Item>> {
2080 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2081 &mut self.event_receiver,
2082 cx
2083 )?) {
2084 Some(buf) => std::task::Poll::Ready(Some(NeededBlobsEvent::decode(buf))),
2085 None => std::task::Poll::Ready(None),
2086 }
2087 }
2088}
2089
2090#[derive(Debug)]
2091pub enum NeededBlobsEvent {}
2092
2093impl NeededBlobsEvent {
2094 fn decode(
2096 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2097 ) -> Result<NeededBlobsEvent, fidl::Error> {
2098 let (bytes, _handles) = buf.split_mut();
2099 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2100 debug_assert_eq!(tx_header.tx_id, 0);
2101 match tx_header.ordinal {
2102 _ => Err(fidl::Error::UnknownOrdinal {
2103 ordinal: tx_header.ordinal,
2104 protocol_name:
2105 <NeededBlobsMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
2106 }),
2107 }
2108 }
2109}
2110
2111pub struct NeededBlobsRequestStream {
2113 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
2114 is_terminated: bool,
2115}
2116
2117impl std::marker::Unpin for NeededBlobsRequestStream {}
2118
2119impl futures::stream::FusedStream for NeededBlobsRequestStream {
2120 fn is_terminated(&self) -> bool {
2121 self.is_terminated
2122 }
2123}
2124
2125impl fdomain_client::fidl::RequestStream for NeededBlobsRequestStream {
2126 type Protocol = NeededBlobsMarker;
2127 type ControlHandle = NeededBlobsControlHandle;
2128
2129 fn from_channel(channel: fdomain_client::Channel) -> Self {
2130 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2131 }
2132
2133 fn control_handle(&self) -> Self::ControlHandle {
2134 NeededBlobsControlHandle { inner: self.inner.clone() }
2135 }
2136
2137 fn into_inner(
2138 self,
2139 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
2140 {
2141 (self.inner, self.is_terminated)
2142 }
2143
2144 fn from_inner(
2145 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
2146 is_terminated: bool,
2147 ) -> Self {
2148 Self { inner, is_terminated }
2149 }
2150}
2151
2152impl futures::Stream for NeededBlobsRequestStream {
2153 type Item = Result<NeededBlobsRequest, fidl::Error>;
2154
2155 fn poll_next(
2156 mut self: std::pin::Pin<&mut Self>,
2157 cx: &mut std::task::Context<'_>,
2158 ) -> std::task::Poll<Option<Self::Item>> {
2159 let this = &mut *self;
2160 if this.inner.check_shutdown(cx) {
2161 this.is_terminated = true;
2162 return std::task::Poll::Ready(None);
2163 }
2164 if this.is_terminated {
2165 panic!("polled NeededBlobsRequestStream after completion");
2166 }
2167 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
2168 |bytes, handles| {
2169 match this.inner.channel().read_etc(cx, bytes, handles) {
2170 std::task::Poll::Ready(Ok(())) => {}
2171 std::task::Poll::Pending => return std::task::Poll::Pending,
2172 std::task::Poll::Ready(Err(None)) => {
2173 this.is_terminated = true;
2174 return std::task::Poll::Ready(None);
2175 }
2176 std::task::Poll::Ready(Err(Some(e))) => {
2177 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2178 e.into(),
2179 ))));
2180 }
2181 }
2182
2183 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2185
2186 std::task::Poll::Ready(Some(match header.ordinal {
2187 0x42f385a58180f5fb => {
2188 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2189 let mut req = fidl::new_empty!(
2190 fidl::encoding::EmptyPayload,
2191 fdomain_client::fidl::FDomainResourceDialect
2192 );
2193 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2194 let control_handle = NeededBlobsControlHandle { inner: this.inner.clone() };
2195 Ok(NeededBlobsRequest::OpenMetaBlob {
2196 responder: NeededBlobsOpenMetaBlobResponder {
2197 control_handle: std::mem::ManuallyDrop::new(control_handle),
2198 tx_id: header.tx_id,
2199 },
2200 })
2201 }
2202 0x44eaf14fd56e7ae1 => {
2203 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2204 let mut req = fidl::new_empty!(
2205 NeededBlobsGetMissingBlobsRequest,
2206 fdomain_client::fidl::FDomainResourceDialect
2207 );
2208 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<NeededBlobsGetMissingBlobsRequest>(&header, _body_bytes, handles, &mut req)?;
2209 let control_handle = NeededBlobsControlHandle { inner: this.inner.clone() };
2210 Ok(NeededBlobsRequest::GetMissingBlobs {
2211 iterator: req.iterator,
2212
2213 control_handle,
2214 })
2215 }
2216 0x67cd4c4cd10ea9e0 => {
2217 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2218 let mut req = fidl::new_empty!(
2219 NeededBlobsOpenBlobRequest,
2220 fdomain_client::fidl::FDomainResourceDialect
2221 );
2222 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<NeededBlobsOpenBlobRequest>(&header, _body_bytes, handles, &mut req)?;
2223 let control_handle = NeededBlobsControlHandle { inner: this.inner.clone() };
2224 Ok(NeededBlobsRequest::OpenBlob {
2225 blob_id: req.blob_id,
2226 allow_existing: req.allow_existing,
2227
2228 responder: NeededBlobsOpenBlobResponder {
2229 control_handle: std::mem::ManuallyDrop::new(control_handle),
2230 tx_id: header.tx_id,
2231 },
2232 })
2233 }
2234 0x222f80ec77433f44 => {
2235 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2236 let mut req = fidl::new_empty!(
2237 NeededBlobsBlobWrittenRequest,
2238 fdomain_client::fidl::FDomainResourceDialect
2239 );
2240 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<NeededBlobsBlobWrittenRequest>(&header, _body_bytes, handles, &mut req)?;
2241 let control_handle = NeededBlobsControlHandle { inner: this.inner.clone() };
2242 Ok(NeededBlobsRequest::BlobWritten {
2243 blob_id: req.blob_id,
2244
2245 responder: NeededBlobsBlobWrittenResponder {
2246 control_handle: std::mem::ManuallyDrop::new(control_handle),
2247 tx_id: header.tx_id,
2248 },
2249 })
2250 }
2251 0x6fda8d5ebea74cbb => {
2252 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2253 let mut req = fidl::new_empty!(
2254 fidl::encoding::EmptyPayload,
2255 fdomain_client::fidl::FDomainResourceDialect
2256 );
2257 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2258 let control_handle = NeededBlobsControlHandle { inner: this.inner.clone() };
2259 Ok(NeededBlobsRequest::Abort {
2260 responder: NeededBlobsAbortResponder {
2261 control_handle: std::mem::ManuallyDrop::new(control_handle),
2262 tx_id: header.tx_id,
2263 },
2264 })
2265 }
2266 _ => Err(fidl::Error::UnknownOrdinal {
2267 ordinal: header.ordinal,
2268 protocol_name:
2269 <NeededBlobsMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
2270 }),
2271 }))
2272 },
2273 )
2274 }
2275}
2276
2277#[derive(Debug)]
2306pub enum NeededBlobsRequest {
2307 OpenMetaBlob { responder: NeededBlobsOpenMetaBlobResponder },
2320 GetMissingBlobs {
2338 iterator: fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>,
2339 control_handle: NeededBlobsControlHandle,
2340 },
2341 OpenBlob { blob_id: BlobId, allow_existing: bool, responder: NeededBlobsOpenBlobResponder },
2351 BlobWritten { blob_id: BlobId, responder: NeededBlobsBlobWrittenResponder },
2362 Abort { responder: NeededBlobsAbortResponder },
2372}
2373
2374impl NeededBlobsRequest {
2375 #[allow(irrefutable_let_patterns)]
2376 pub fn into_open_meta_blob(self) -> Option<(NeededBlobsOpenMetaBlobResponder)> {
2377 if let NeededBlobsRequest::OpenMetaBlob { responder } = self {
2378 Some((responder))
2379 } else {
2380 None
2381 }
2382 }
2383
2384 #[allow(irrefutable_let_patterns)]
2385 pub fn into_get_missing_blobs(
2386 self,
2387 ) -> Option<(fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>, NeededBlobsControlHandle)>
2388 {
2389 if let NeededBlobsRequest::GetMissingBlobs { iterator, control_handle } = self {
2390 Some((iterator, control_handle))
2391 } else {
2392 None
2393 }
2394 }
2395
2396 #[allow(irrefutable_let_patterns)]
2397 pub fn into_open_blob(self) -> Option<(BlobId, bool, NeededBlobsOpenBlobResponder)> {
2398 if let NeededBlobsRequest::OpenBlob { blob_id, allow_existing, responder } = self {
2399 Some((blob_id, allow_existing, responder))
2400 } else {
2401 None
2402 }
2403 }
2404
2405 #[allow(irrefutable_let_patterns)]
2406 pub fn into_blob_written(self) -> Option<(BlobId, NeededBlobsBlobWrittenResponder)> {
2407 if let NeededBlobsRequest::BlobWritten { blob_id, responder } = self {
2408 Some((blob_id, responder))
2409 } else {
2410 None
2411 }
2412 }
2413
2414 #[allow(irrefutable_let_patterns)]
2415 pub fn into_abort(self) -> Option<(NeededBlobsAbortResponder)> {
2416 if let NeededBlobsRequest::Abort { responder } = self { Some((responder)) } else { None }
2417 }
2418
2419 pub fn method_name(&self) -> &'static str {
2421 match *self {
2422 NeededBlobsRequest::OpenMetaBlob { .. } => "open_meta_blob",
2423 NeededBlobsRequest::GetMissingBlobs { .. } => "get_missing_blobs",
2424 NeededBlobsRequest::OpenBlob { .. } => "open_blob",
2425 NeededBlobsRequest::BlobWritten { .. } => "blob_written",
2426 NeededBlobsRequest::Abort { .. } => "abort",
2427 }
2428 }
2429}
2430
2431#[derive(Debug, Clone)]
2432pub struct NeededBlobsControlHandle {
2433 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
2434}
2435
2436impl fdomain_client::fidl::ControlHandle for NeededBlobsControlHandle {
2437 fn shutdown(&self) {
2438 self.inner.shutdown()
2439 }
2440
2441 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2442 self.inner.shutdown_with_epitaph(status)
2443 }
2444
2445 fn is_closed(&self) -> bool {
2446 self.inner.channel().is_closed()
2447 }
2448 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
2449 self.inner.channel().on_closed()
2450 }
2451}
2452
2453impl NeededBlobsControlHandle {}
2454
2455#[must_use = "FIDL methods require a response to be sent"]
2456#[derive(Debug)]
2457pub struct NeededBlobsOpenMetaBlobResponder {
2458 control_handle: std::mem::ManuallyDrop<NeededBlobsControlHandle>,
2459 tx_id: u32,
2460}
2461
2462impl std::ops::Drop for NeededBlobsOpenMetaBlobResponder {
2466 fn drop(&mut self) {
2467 self.control_handle.shutdown();
2468 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2470 }
2471}
2472
2473impl fdomain_client::fidl::Responder for NeededBlobsOpenMetaBlobResponder {
2474 type ControlHandle = NeededBlobsControlHandle;
2475
2476 fn control_handle(&self) -> &NeededBlobsControlHandle {
2477 &self.control_handle
2478 }
2479
2480 fn drop_without_shutdown(mut self) {
2481 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2483 std::mem::forget(self);
2485 }
2486}
2487
2488impl NeededBlobsOpenMetaBlobResponder {
2489 pub fn send(
2493 self,
2494 mut result: Result<
2495 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
2496 OpenBlobError,
2497 >,
2498 ) -> Result<(), fidl::Error> {
2499 let _result = self.send_raw(result);
2500 if _result.is_err() {
2501 self.control_handle.shutdown();
2502 }
2503 self.drop_without_shutdown();
2504 _result
2505 }
2506
2507 pub fn send_no_shutdown_on_err(
2509 self,
2510 mut result: Result<
2511 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
2512 OpenBlobError,
2513 >,
2514 ) -> Result<(), fidl::Error> {
2515 let _result = self.send_raw(result);
2516 self.drop_without_shutdown();
2517 _result
2518 }
2519
2520 fn send_raw(
2521 &self,
2522 mut result: Result<
2523 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
2524 OpenBlobError,
2525 >,
2526 ) -> Result<(), fidl::Error> {
2527 self.control_handle.inner.send::<fidl::encoding::ResultType<
2528 NeededBlobsOpenMetaBlobResponse,
2529 OpenBlobError,
2530 >>(
2531 result.map(|writer| (writer,)),
2532 self.tx_id,
2533 0x42f385a58180f5fb,
2534 fidl::encoding::DynamicFlags::empty(),
2535 )
2536 }
2537}
2538
2539#[must_use = "FIDL methods require a response to be sent"]
2540#[derive(Debug)]
2541pub struct NeededBlobsOpenBlobResponder {
2542 control_handle: std::mem::ManuallyDrop<NeededBlobsControlHandle>,
2543 tx_id: u32,
2544}
2545
2546impl std::ops::Drop for NeededBlobsOpenBlobResponder {
2550 fn drop(&mut self) {
2551 self.control_handle.shutdown();
2552 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2554 }
2555}
2556
2557impl fdomain_client::fidl::Responder for NeededBlobsOpenBlobResponder {
2558 type ControlHandle = NeededBlobsControlHandle;
2559
2560 fn control_handle(&self) -> &NeededBlobsControlHandle {
2561 &self.control_handle
2562 }
2563
2564 fn drop_without_shutdown(mut self) {
2565 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2567 std::mem::forget(self);
2569 }
2570}
2571
2572impl NeededBlobsOpenBlobResponder {
2573 pub fn send(
2577 self,
2578 mut result: Result<
2579 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
2580 OpenBlobError,
2581 >,
2582 ) -> Result<(), fidl::Error> {
2583 let _result = self.send_raw(result);
2584 if _result.is_err() {
2585 self.control_handle.shutdown();
2586 }
2587 self.drop_without_shutdown();
2588 _result
2589 }
2590
2591 pub fn send_no_shutdown_on_err(
2593 self,
2594 mut result: Result<
2595 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
2596 OpenBlobError,
2597 >,
2598 ) -> Result<(), fidl::Error> {
2599 let _result = self.send_raw(result);
2600 self.drop_without_shutdown();
2601 _result
2602 }
2603
2604 fn send_raw(
2605 &self,
2606 mut result: Result<
2607 Option<fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>>,
2608 OpenBlobError,
2609 >,
2610 ) -> Result<(), fidl::Error> {
2611 self.control_handle.inner.send::<fidl::encoding::ResultType<
2612 NeededBlobsOpenBlobResponse,
2613 OpenBlobError,
2614 >>(
2615 result.map(|writer| (writer,)),
2616 self.tx_id,
2617 0x67cd4c4cd10ea9e0,
2618 fidl::encoding::DynamicFlags::empty(),
2619 )
2620 }
2621}
2622
2623#[must_use = "FIDL methods require a response to be sent"]
2624#[derive(Debug)]
2625pub struct NeededBlobsBlobWrittenResponder {
2626 control_handle: std::mem::ManuallyDrop<NeededBlobsControlHandle>,
2627 tx_id: u32,
2628}
2629
2630impl std::ops::Drop for NeededBlobsBlobWrittenResponder {
2634 fn drop(&mut self) {
2635 self.control_handle.shutdown();
2636 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2638 }
2639}
2640
2641impl fdomain_client::fidl::Responder for NeededBlobsBlobWrittenResponder {
2642 type ControlHandle = NeededBlobsControlHandle;
2643
2644 fn control_handle(&self) -> &NeededBlobsControlHandle {
2645 &self.control_handle
2646 }
2647
2648 fn drop_without_shutdown(mut self) {
2649 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2651 std::mem::forget(self);
2653 }
2654}
2655
2656impl NeededBlobsBlobWrittenResponder {
2657 pub fn send(self, mut result: Result<(), BlobWrittenError>) -> Result<(), fidl::Error> {
2661 let _result = self.send_raw(result);
2662 if _result.is_err() {
2663 self.control_handle.shutdown();
2664 }
2665 self.drop_without_shutdown();
2666 _result
2667 }
2668
2669 pub fn send_no_shutdown_on_err(
2671 self,
2672 mut result: Result<(), BlobWrittenError>,
2673 ) -> Result<(), fidl::Error> {
2674 let _result = self.send_raw(result);
2675 self.drop_without_shutdown();
2676 _result
2677 }
2678
2679 fn send_raw(&self, mut result: Result<(), BlobWrittenError>) -> Result<(), fidl::Error> {
2680 self.control_handle.inner.send::<fidl::encoding::ResultType<
2681 fidl::encoding::EmptyStruct,
2682 BlobWrittenError,
2683 >>(
2684 result,
2685 self.tx_id,
2686 0x222f80ec77433f44,
2687 fidl::encoding::DynamicFlags::empty(),
2688 )
2689 }
2690}
2691
2692#[must_use = "FIDL methods require a response to be sent"]
2693#[derive(Debug)]
2694pub struct NeededBlobsAbortResponder {
2695 control_handle: std::mem::ManuallyDrop<NeededBlobsControlHandle>,
2696 tx_id: u32,
2697}
2698
2699impl std::ops::Drop for NeededBlobsAbortResponder {
2703 fn drop(&mut self) {
2704 self.control_handle.shutdown();
2705 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2707 }
2708}
2709
2710impl fdomain_client::fidl::Responder for NeededBlobsAbortResponder {
2711 type ControlHandle = NeededBlobsControlHandle;
2712
2713 fn control_handle(&self) -> &NeededBlobsControlHandle {
2714 &self.control_handle
2715 }
2716
2717 fn drop_without_shutdown(mut self) {
2718 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2720 std::mem::forget(self);
2722 }
2723}
2724
2725impl NeededBlobsAbortResponder {
2726 pub fn send(self) -> Result<(), fidl::Error> {
2730 let _result = self.send_raw();
2731 if _result.is_err() {
2732 self.control_handle.shutdown();
2733 }
2734 self.drop_without_shutdown();
2735 _result
2736 }
2737
2738 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2740 let _result = self.send_raw();
2741 self.drop_without_shutdown();
2742 _result
2743 }
2744
2745 fn send_raw(&self) -> Result<(), fidl::Error> {
2746 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2747 (),
2748 self.tx_id,
2749 0x6fda8d5ebea74cbb,
2750 fidl::encoding::DynamicFlags::empty(),
2751 )
2752 }
2753}
2754
2755#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2756pub struct PackageCacheMarker;
2757
2758impl fdomain_client::fidl::ProtocolMarker for PackageCacheMarker {
2759 type Proxy = PackageCacheProxy;
2760 type RequestStream = PackageCacheRequestStream;
2761
2762 const DEBUG_NAME: &'static str = "fuchsia.pkg.PackageCache";
2763}
2764impl fdomain_client::fidl::DiscoverableProtocolMarker for PackageCacheMarker {}
2765pub type PackageCacheGetResult = Result<(), i32>;
2766pub type PackageCacheGetSubpackageResult = Result<(), GetSubpackageError>;
2767pub type PackageCacheSyncResult = Result<(), i32>;
2768pub type PackageCacheSetUpgradableUrlsResult = Result<(), SetUpgradableUrlsError>;
2769
2770pub trait PackageCacheProxyInterface: Send + Sync {
2771 type GetResponseFut: std::future::Future<Output = Result<PackageCacheGetResult, fidl::Error>>
2772 + Send;
2773 fn r#get(
2774 &self,
2775 meta_far_blob: &BlobInfo,
2776 gc_protection: GcProtection,
2777 needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
2778 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
2779 ) -> Self::GetResponseFut;
2780 fn r#write_blobs(
2781 &self,
2782 needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
2783 ) -> Result<(), fidl::Error>;
2784 type GetSubpackageResponseFut: std::future::Future<Output = Result<PackageCacheGetSubpackageResult, fidl::Error>>
2785 + Send;
2786 fn r#get_subpackage(
2787 &self,
2788 superpackage: &BlobId,
2789 subpackage: &PackageUrl,
2790 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
2791 ) -> Self::GetSubpackageResponseFut;
2792 fn r#base_package_index(
2793 &self,
2794 iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
2795 ) -> Result<(), fidl::Error>;
2796 fn r#cache_package_index(
2797 &self,
2798 iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
2799 ) -> Result<(), fidl::Error>;
2800 type SyncResponseFut: std::future::Future<Output = Result<PackageCacheSyncResult, fidl::Error>>
2801 + Send;
2802 fn r#sync(&self) -> Self::SyncResponseFut;
2803 type SetUpgradableUrlsResponseFut: std::future::Future<Output = Result<PackageCacheSetUpgradableUrlsResult, fidl::Error>>
2804 + Send;
2805 fn r#set_upgradable_urls(
2806 &self,
2807 pinned_urls: &[PackageUrl],
2808 ) -> Self::SetUpgradableUrlsResponseFut;
2809}
2810
2811#[derive(Debug, Clone)]
2812pub struct PackageCacheProxy {
2813 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
2814}
2815
2816impl fdomain_client::fidl::Proxy for PackageCacheProxy {
2817 type Protocol = PackageCacheMarker;
2818
2819 fn from_channel(inner: fdomain_client::Channel) -> Self {
2820 Self::new(inner)
2821 }
2822
2823 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
2824 self.client.into_channel().map_err(|client| Self { client })
2825 }
2826
2827 fn as_channel(&self) -> &fdomain_client::Channel {
2828 self.client.as_channel()
2829 }
2830}
2831
2832impl PackageCacheProxy {
2833 pub fn new(channel: fdomain_client::Channel) -> Self {
2835 let protocol_name =
2836 <PackageCacheMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
2837 Self { client: fidl::client::Client::new(channel, protocol_name) }
2838 }
2839
2840 pub fn take_event_stream(&self) -> PackageCacheEventStream {
2846 PackageCacheEventStream { event_receiver: self.client.take_event_receiver() }
2847 }
2848
2849 pub fn r#get(
2871 &self,
2872 mut meta_far_blob: &BlobInfo,
2873 mut gc_protection: GcProtection,
2874 mut needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
2875 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
2876 ) -> fidl::client::QueryResponseFut<
2877 PackageCacheGetResult,
2878 fdomain_client::fidl::FDomainResourceDialect,
2879 > {
2880 PackageCacheProxyInterface::r#get(self, meta_far_blob, gc_protection, needed_blobs, dir)
2881 }
2882
2883 pub fn r#write_blobs(
2894 &self,
2895 mut needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
2896 ) -> Result<(), fidl::Error> {
2897 PackageCacheProxyInterface::r#write_blobs(self, needed_blobs)
2898 }
2899
2900 pub fn r#get_subpackage(
2910 &self,
2911 mut superpackage: &BlobId,
2912 mut subpackage: &PackageUrl,
2913 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
2914 ) -> fidl::client::QueryResponseFut<
2915 PackageCacheGetSubpackageResult,
2916 fdomain_client::fidl::FDomainResourceDialect,
2917 > {
2918 PackageCacheProxyInterface::r#get_subpackage(self, superpackage, subpackage, dir)
2919 }
2920
2921 pub fn r#base_package_index(
2926 &self,
2927 mut iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
2928 ) -> Result<(), fidl::Error> {
2929 PackageCacheProxyInterface::r#base_package_index(self, iterator)
2930 }
2931
2932 pub fn r#cache_package_index(
2937 &self,
2938 mut iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
2939 ) -> Result<(), fidl::Error> {
2940 PackageCacheProxyInterface::r#cache_package_index(self, iterator)
2941 }
2942
2943 pub fn r#sync(
2948 &self,
2949 ) -> fidl::client::QueryResponseFut<
2950 PackageCacheSyncResult,
2951 fdomain_client::fidl::FDomainResourceDialect,
2952 > {
2953 PackageCacheProxyInterface::r#sync(self)
2954 }
2955
2956 pub fn r#set_upgradable_urls(
2972 &self,
2973 mut pinned_urls: &[PackageUrl],
2974 ) -> fidl::client::QueryResponseFut<
2975 PackageCacheSetUpgradableUrlsResult,
2976 fdomain_client::fidl::FDomainResourceDialect,
2977 > {
2978 PackageCacheProxyInterface::r#set_upgradable_urls(self, pinned_urls)
2979 }
2980}
2981
2982impl PackageCacheProxyInterface for PackageCacheProxy {
2983 type GetResponseFut = fidl::client::QueryResponseFut<
2984 PackageCacheGetResult,
2985 fdomain_client::fidl::FDomainResourceDialect,
2986 >;
2987 fn r#get(
2988 &self,
2989 mut meta_far_blob: &BlobInfo,
2990 mut gc_protection: GcProtection,
2991 mut needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
2992 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
2993 ) -> Self::GetResponseFut {
2994 fn _decode(
2995 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2996 ) -> Result<PackageCacheGetResult, fidl::Error> {
2997 let _response = fidl::client::decode_transaction_body::<
2998 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
2999 fdomain_client::fidl::FDomainResourceDialect,
3000 0x15e1963f4bf123b5,
3001 >(_buf?)?;
3002 Ok(_response.map(|x| x))
3003 }
3004 self.client.send_query_and_decode::<PackageCacheGetRequest, PackageCacheGetResult>(
3005 (meta_far_blob, gc_protection, needed_blobs, dir),
3006 0x15e1963f4bf123b5,
3007 fidl::encoding::DynamicFlags::empty(),
3008 _decode,
3009 )
3010 }
3011
3012 fn r#write_blobs(
3013 &self,
3014 mut needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
3015 ) -> Result<(), fidl::Error> {
3016 self.client.send::<PackageCacheWriteBlobsRequest>(
3017 (needed_blobs,),
3018 0x5d0ed48035931dbe,
3019 fidl::encoding::DynamicFlags::empty(),
3020 )
3021 }
3022
3023 type GetSubpackageResponseFut = fidl::client::QueryResponseFut<
3024 PackageCacheGetSubpackageResult,
3025 fdomain_client::fidl::FDomainResourceDialect,
3026 >;
3027 fn r#get_subpackage(
3028 &self,
3029 mut superpackage: &BlobId,
3030 mut subpackage: &PackageUrl,
3031 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
3032 ) -> Self::GetSubpackageResponseFut {
3033 fn _decode(
3034 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3035 ) -> Result<PackageCacheGetSubpackageResult, fidl::Error> {
3036 let _response = fidl::client::decode_transaction_body::<
3037 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, GetSubpackageError>,
3038 fdomain_client::fidl::FDomainResourceDialect,
3039 0x29478df87c29ffa3,
3040 >(_buf?)?;
3041 Ok(_response.map(|x| x))
3042 }
3043 self.client.send_query_and_decode::<
3044 PackageCacheGetSubpackageRequest,
3045 PackageCacheGetSubpackageResult,
3046 >(
3047 (superpackage, subpackage, dir,),
3048 0x29478df87c29ffa3,
3049 fidl::encoding::DynamicFlags::empty(),
3050 _decode,
3051 )
3052 }
3053
3054 fn r#base_package_index(
3055 &self,
3056 mut iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
3057 ) -> Result<(), fidl::Error> {
3058 self.client.send::<PackageCacheBasePackageIndexRequest>(
3059 (iterator,),
3060 0x46af9e595f8eced4,
3061 fidl::encoding::DynamicFlags::empty(),
3062 )
3063 }
3064
3065 fn r#cache_package_index(
3066 &self,
3067 mut iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
3068 ) -> Result<(), fidl::Error> {
3069 self.client.send::<PackageCacheCachePackageIndexRequest>(
3070 (iterator,),
3071 0x14a48fdb8f26ed26,
3072 fidl::encoding::DynamicFlags::empty(),
3073 )
3074 }
3075
3076 type SyncResponseFut = fidl::client::QueryResponseFut<
3077 PackageCacheSyncResult,
3078 fdomain_client::fidl::FDomainResourceDialect,
3079 >;
3080 fn r#sync(&self) -> Self::SyncResponseFut {
3081 fn _decode(
3082 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3083 ) -> Result<PackageCacheSyncResult, fidl::Error> {
3084 let _response = fidl::client::decode_transaction_body::<
3085 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3086 fdomain_client::fidl::FDomainResourceDialect,
3087 0x5c10a84094535a74,
3088 >(_buf?)?;
3089 Ok(_response.map(|x| x))
3090 }
3091 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, PackageCacheSyncResult>(
3092 (),
3093 0x5c10a84094535a74,
3094 fidl::encoding::DynamicFlags::empty(),
3095 _decode,
3096 )
3097 }
3098
3099 type SetUpgradableUrlsResponseFut = fidl::client::QueryResponseFut<
3100 PackageCacheSetUpgradableUrlsResult,
3101 fdomain_client::fidl::FDomainResourceDialect,
3102 >;
3103 fn r#set_upgradable_urls(
3104 &self,
3105 mut pinned_urls: &[PackageUrl],
3106 ) -> Self::SetUpgradableUrlsResponseFut {
3107 fn _decode(
3108 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3109 ) -> Result<PackageCacheSetUpgradableUrlsResult, fidl::Error> {
3110 let _response = fidl::client::decode_transaction_body::<
3111 fidl::encoding::FlexibleResultType<
3112 fidl::encoding::EmptyStruct,
3113 SetUpgradableUrlsError,
3114 >,
3115 fdomain_client::fidl::FDomainResourceDialect,
3116 0x2c235f7efdb5e2d1,
3117 >(_buf?)?
3118 .into_result_fdomain::<PackageCacheMarker>("set_upgradable_urls")?;
3119 Ok(_response.map(|x| x))
3120 }
3121 self.client.send_query_and_decode::<
3122 PackageCacheSetUpgradableUrlsRequest,
3123 PackageCacheSetUpgradableUrlsResult,
3124 >(
3125 (pinned_urls,),
3126 0x2c235f7efdb5e2d1,
3127 fidl::encoding::DynamicFlags::FLEXIBLE,
3128 _decode,
3129 )
3130 }
3131}
3132
3133pub struct PackageCacheEventStream {
3134 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
3135}
3136
3137impl std::marker::Unpin for PackageCacheEventStream {}
3138
3139impl futures::stream::FusedStream for PackageCacheEventStream {
3140 fn is_terminated(&self) -> bool {
3141 self.event_receiver.is_terminated()
3142 }
3143}
3144
3145impl futures::Stream for PackageCacheEventStream {
3146 type Item = Result<PackageCacheEvent, fidl::Error>;
3147
3148 fn poll_next(
3149 mut self: std::pin::Pin<&mut Self>,
3150 cx: &mut std::task::Context<'_>,
3151 ) -> std::task::Poll<Option<Self::Item>> {
3152 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3153 &mut self.event_receiver,
3154 cx
3155 )?) {
3156 Some(buf) => std::task::Poll::Ready(Some(PackageCacheEvent::decode(buf))),
3157 None => std::task::Poll::Ready(None),
3158 }
3159 }
3160}
3161
3162#[derive(Debug)]
3163pub enum PackageCacheEvent {
3164 #[non_exhaustive]
3165 _UnknownEvent {
3166 ordinal: u64,
3168 },
3169}
3170
3171impl PackageCacheEvent {
3172 fn decode(
3174 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3175 ) -> Result<PackageCacheEvent, fidl::Error> {
3176 let (bytes, _handles) = buf.split_mut();
3177 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3178 debug_assert_eq!(tx_header.tx_id, 0);
3179 match tx_header.ordinal {
3180 _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
3181 Ok(PackageCacheEvent::_UnknownEvent { ordinal: tx_header.ordinal })
3182 }
3183 _ => Err(fidl::Error::UnknownOrdinal {
3184 ordinal: tx_header.ordinal,
3185 protocol_name:
3186 <PackageCacheMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
3187 }),
3188 }
3189 }
3190}
3191
3192pub struct PackageCacheRequestStream {
3194 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
3195 is_terminated: bool,
3196}
3197
3198impl std::marker::Unpin for PackageCacheRequestStream {}
3199
3200impl futures::stream::FusedStream for PackageCacheRequestStream {
3201 fn is_terminated(&self) -> bool {
3202 self.is_terminated
3203 }
3204}
3205
3206impl fdomain_client::fidl::RequestStream for PackageCacheRequestStream {
3207 type Protocol = PackageCacheMarker;
3208 type ControlHandle = PackageCacheControlHandle;
3209
3210 fn from_channel(channel: fdomain_client::Channel) -> Self {
3211 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3212 }
3213
3214 fn control_handle(&self) -> Self::ControlHandle {
3215 PackageCacheControlHandle { inner: self.inner.clone() }
3216 }
3217
3218 fn into_inner(
3219 self,
3220 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
3221 {
3222 (self.inner, self.is_terminated)
3223 }
3224
3225 fn from_inner(
3226 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
3227 is_terminated: bool,
3228 ) -> Self {
3229 Self { inner, is_terminated }
3230 }
3231}
3232
3233impl futures::Stream for PackageCacheRequestStream {
3234 type Item = Result<PackageCacheRequest, fidl::Error>;
3235
3236 fn poll_next(
3237 mut self: std::pin::Pin<&mut Self>,
3238 cx: &mut std::task::Context<'_>,
3239 ) -> std::task::Poll<Option<Self::Item>> {
3240 let this = &mut *self;
3241 if this.inner.check_shutdown(cx) {
3242 this.is_terminated = true;
3243 return std::task::Poll::Ready(None);
3244 }
3245 if this.is_terminated {
3246 panic!("polled PackageCacheRequestStream after completion");
3247 }
3248 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
3249 |bytes, handles| {
3250 match this.inner.channel().read_etc(cx, bytes, handles) {
3251 std::task::Poll::Ready(Ok(())) => {}
3252 std::task::Poll::Pending => return std::task::Poll::Pending,
3253 std::task::Poll::Ready(Err(None)) => {
3254 this.is_terminated = true;
3255 return std::task::Poll::Ready(None);
3256 }
3257 std::task::Poll::Ready(Err(Some(e))) => {
3258 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3259 e.into(),
3260 ))));
3261 }
3262 }
3263
3264 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3266
3267 std::task::Poll::Ready(Some(match header.ordinal {
3268 0x15e1963f4bf123b5 => {
3269 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3270 let mut req = fidl::new_empty!(
3271 PackageCacheGetRequest,
3272 fdomain_client::fidl::FDomainResourceDialect
3273 );
3274 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageCacheGetRequest>(&header, _body_bytes, handles, &mut req)?;
3275 let control_handle =
3276 PackageCacheControlHandle { inner: this.inner.clone() };
3277 Ok(PackageCacheRequest::Get {
3278 meta_far_blob: req.meta_far_blob,
3279 gc_protection: req.gc_protection,
3280 needed_blobs: req.needed_blobs,
3281 dir: req.dir,
3282
3283 responder: PackageCacheGetResponder {
3284 control_handle: std::mem::ManuallyDrop::new(control_handle),
3285 tx_id: header.tx_id,
3286 },
3287 })
3288 }
3289 0x5d0ed48035931dbe => {
3290 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3291 let mut req = fidl::new_empty!(
3292 PackageCacheWriteBlobsRequest,
3293 fdomain_client::fidl::FDomainResourceDialect
3294 );
3295 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageCacheWriteBlobsRequest>(&header, _body_bytes, handles, &mut req)?;
3296 let control_handle =
3297 PackageCacheControlHandle { inner: this.inner.clone() };
3298 Ok(PackageCacheRequest::WriteBlobs {
3299 needed_blobs: req.needed_blobs,
3300
3301 control_handle,
3302 })
3303 }
3304 0x29478df87c29ffa3 => {
3305 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3306 let mut req = fidl::new_empty!(
3307 PackageCacheGetSubpackageRequest,
3308 fdomain_client::fidl::FDomainResourceDialect
3309 );
3310 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageCacheGetSubpackageRequest>(&header, _body_bytes, handles, &mut req)?;
3311 let control_handle =
3312 PackageCacheControlHandle { inner: this.inner.clone() };
3313 Ok(PackageCacheRequest::GetSubpackage {
3314 superpackage: req.superpackage,
3315 subpackage: req.subpackage,
3316 dir: req.dir,
3317
3318 responder: PackageCacheGetSubpackageResponder {
3319 control_handle: std::mem::ManuallyDrop::new(control_handle),
3320 tx_id: header.tx_id,
3321 },
3322 })
3323 }
3324 0x46af9e595f8eced4 => {
3325 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3326 let mut req = fidl::new_empty!(
3327 PackageCacheBasePackageIndexRequest,
3328 fdomain_client::fidl::FDomainResourceDialect
3329 );
3330 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageCacheBasePackageIndexRequest>(&header, _body_bytes, handles, &mut req)?;
3331 let control_handle =
3332 PackageCacheControlHandle { inner: this.inner.clone() };
3333 Ok(PackageCacheRequest::BasePackageIndex {
3334 iterator: req.iterator,
3335
3336 control_handle,
3337 })
3338 }
3339 0x14a48fdb8f26ed26 => {
3340 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3341 let mut req = fidl::new_empty!(
3342 PackageCacheCachePackageIndexRequest,
3343 fdomain_client::fidl::FDomainResourceDialect
3344 );
3345 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageCacheCachePackageIndexRequest>(&header, _body_bytes, handles, &mut req)?;
3346 let control_handle =
3347 PackageCacheControlHandle { inner: this.inner.clone() };
3348 Ok(PackageCacheRequest::CachePackageIndex {
3349 iterator: req.iterator,
3350
3351 control_handle,
3352 })
3353 }
3354 0x5c10a84094535a74 => {
3355 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3356 let mut req = fidl::new_empty!(
3357 fidl::encoding::EmptyPayload,
3358 fdomain_client::fidl::FDomainResourceDialect
3359 );
3360 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3361 let control_handle =
3362 PackageCacheControlHandle { inner: this.inner.clone() };
3363 Ok(PackageCacheRequest::Sync {
3364 responder: PackageCacheSyncResponder {
3365 control_handle: std::mem::ManuallyDrop::new(control_handle),
3366 tx_id: header.tx_id,
3367 },
3368 })
3369 }
3370 0x2c235f7efdb5e2d1 => {
3371 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3372 let mut req = fidl::new_empty!(
3373 PackageCacheSetUpgradableUrlsRequest,
3374 fdomain_client::fidl::FDomainResourceDialect
3375 );
3376 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageCacheSetUpgradableUrlsRequest>(&header, _body_bytes, handles, &mut req)?;
3377 let control_handle =
3378 PackageCacheControlHandle { inner: this.inner.clone() };
3379 Ok(PackageCacheRequest::SetUpgradableUrls {
3380 pinned_urls: req.pinned_urls,
3381
3382 responder: PackageCacheSetUpgradableUrlsResponder {
3383 control_handle: std::mem::ManuallyDrop::new(control_handle),
3384 tx_id: header.tx_id,
3385 },
3386 })
3387 }
3388 _ if header.tx_id == 0
3389 && header
3390 .dynamic_flags()
3391 .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3392 {
3393 Ok(PackageCacheRequest::_UnknownMethod {
3394 ordinal: header.ordinal,
3395 control_handle: PackageCacheControlHandle { inner: this.inner.clone() },
3396 method_type: fidl::MethodType::OneWay,
3397 })
3398 }
3399 _ if header
3400 .dynamic_flags()
3401 .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3402 {
3403 this.inner.send_framework_err(
3404 fidl::encoding::FrameworkErr::UnknownMethod,
3405 header.tx_id,
3406 header.ordinal,
3407 header.dynamic_flags(),
3408 (bytes, handles),
3409 )?;
3410 Ok(PackageCacheRequest::_UnknownMethod {
3411 ordinal: header.ordinal,
3412 control_handle: PackageCacheControlHandle { inner: this.inner.clone() },
3413 method_type: fidl::MethodType::TwoWay,
3414 })
3415 }
3416 _ => Err(fidl::Error::UnknownOrdinal {
3417 ordinal: header.ordinal,
3418 protocol_name:
3419 <PackageCacheMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
3420 }),
3421 }))
3422 },
3423 )
3424 }
3425}
3426
3427#[derive(Debug)]
3432pub enum PackageCacheRequest {
3433 Get {
3455 meta_far_blob: BlobInfo,
3456 gc_protection: GcProtection,
3457 needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
3458 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
3459 responder: PackageCacheGetResponder,
3460 },
3461 WriteBlobs {
3472 needed_blobs: fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
3473 control_handle: PackageCacheControlHandle,
3474 },
3475 GetSubpackage {
3485 superpackage: BlobId,
3486 subpackage: PackageUrl,
3487 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
3488 responder: PackageCacheGetSubpackageResponder,
3489 },
3490 BasePackageIndex {
3495 iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
3496 control_handle: PackageCacheControlHandle,
3497 },
3498 CachePackageIndex {
3503 iterator: fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
3504 control_handle: PackageCacheControlHandle,
3505 },
3506 Sync { responder: PackageCacheSyncResponder },
3511 SetUpgradableUrls {
3527 pinned_urls: Vec<PackageUrl>,
3528 responder: PackageCacheSetUpgradableUrlsResponder,
3529 },
3530 #[non_exhaustive]
3532 _UnknownMethod {
3533 ordinal: u64,
3535 control_handle: PackageCacheControlHandle,
3536 method_type: fidl::MethodType,
3537 },
3538}
3539
3540impl PackageCacheRequest {
3541 #[allow(irrefutable_let_patterns)]
3542 pub fn into_get(
3543 self,
3544 ) -> Option<(
3545 BlobInfo,
3546 GcProtection,
3547 fdomain_client::fidl::ServerEnd<NeededBlobsMarker>,
3548 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
3549 PackageCacheGetResponder,
3550 )> {
3551 if let PackageCacheRequest::Get {
3552 meta_far_blob,
3553 gc_protection,
3554 needed_blobs,
3555 dir,
3556 responder,
3557 } = self
3558 {
3559 Some((meta_far_blob, gc_protection, needed_blobs, dir, responder))
3560 } else {
3561 None
3562 }
3563 }
3564
3565 #[allow(irrefutable_let_patterns)]
3566 pub fn into_write_blobs(
3567 self,
3568 ) -> Option<(fdomain_client::fidl::ServerEnd<NeededBlobsMarker>, PackageCacheControlHandle)>
3569 {
3570 if let PackageCacheRequest::WriteBlobs { needed_blobs, control_handle } = self {
3571 Some((needed_blobs, control_handle))
3572 } else {
3573 None
3574 }
3575 }
3576
3577 #[allow(irrefutable_let_patterns)]
3578 pub fn into_get_subpackage(
3579 self,
3580 ) -> Option<(
3581 BlobId,
3582 PackageUrl,
3583 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
3584 PackageCacheGetSubpackageResponder,
3585 )> {
3586 if let PackageCacheRequest::GetSubpackage { superpackage, subpackage, dir, responder } =
3587 self
3588 {
3589 Some((superpackage, subpackage, dir, responder))
3590 } else {
3591 None
3592 }
3593 }
3594
3595 #[allow(irrefutable_let_patterns)]
3596 pub fn into_base_package_index(
3597 self,
3598 ) -> Option<(
3599 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
3600 PackageCacheControlHandle,
3601 )> {
3602 if let PackageCacheRequest::BasePackageIndex { iterator, control_handle } = self {
3603 Some((iterator, control_handle))
3604 } else {
3605 None
3606 }
3607 }
3608
3609 #[allow(irrefutable_let_patterns)]
3610 pub fn into_cache_package_index(
3611 self,
3612 ) -> Option<(
3613 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
3614 PackageCacheControlHandle,
3615 )> {
3616 if let PackageCacheRequest::CachePackageIndex { iterator, control_handle } = self {
3617 Some((iterator, control_handle))
3618 } else {
3619 None
3620 }
3621 }
3622
3623 #[allow(irrefutable_let_patterns)]
3624 pub fn into_sync(self) -> Option<(PackageCacheSyncResponder)> {
3625 if let PackageCacheRequest::Sync { responder } = self { Some((responder)) } else { None }
3626 }
3627
3628 #[allow(irrefutable_let_patterns)]
3629 pub fn into_set_upgradable_urls(
3630 self,
3631 ) -> Option<(Vec<PackageUrl>, PackageCacheSetUpgradableUrlsResponder)> {
3632 if let PackageCacheRequest::SetUpgradableUrls { pinned_urls, responder } = self {
3633 Some((pinned_urls, responder))
3634 } else {
3635 None
3636 }
3637 }
3638
3639 pub fn method_name(&self) -> &'static str {
3641 match *self {
3642 PackageCacheRequest::Get { .. } => "get",
3643 PackageCacheRequest::WriteBlobs { .. } => "write_blobs",
3644 PackageCacheRequest::GetSubpackage { .. } => "get_subpackage",
3645 PackageCacheRequest::BasePackageIndex { .. } => "base_package_index",
3646 PackageCacheRequest::CachePackageIndex { .. } => "cache_package_index",
3647 PackageCacheRequest::Sync { .. } => "sync",
3648 PackageCacheRequest::SetUpgradableUrls { .. } => "set_upgradable_urls",
3649 PackageCacheRequest::_UnknownMethod {
3650 method_type: fidl::MethodType::OneWay, ..
3651 } => "unknown one-way method",
3652 PackageCacheRequest::_UnknownMethod {
3653 method_type: fidl::MethodType::TwoWay, ..
3654 } => "unknown two-way method",
3655 }
3656 }
3657}
3658
3659#[derive(Debug, Clone)]
3660pub struct PackageCacheControlHandle {
3661 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
3662}
3663
3664impl fdomain_client::fidl::ControlHandle for PackageCacheControlHandle {
3665 fn shutdown(&self) {
3666 self.inner.shutdown()
3667 }
3668
3669 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
3670 self.inner.shutdown_with_epitaph(status)
3671 }
3672
3673 fn is_closed(&self) -> bool {
3674 self.inner.channel().is_closed()
3675 }
3676 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
3677 self.inner.channel().on_closed()
3678 }
3679}
3680
3681impl PackageCacheControlHandle {}
3682
3683#[must_use = "FIDL methods require a response to be sent"]
3684#[derive(Debug)]
3685pub struct PackageCacheGetResponder {
3686 control_handle: std::mem::ManuallyDrop<PackageCacheControlHandle>,
3687 tx_id: u32,
3688}
3689
3690impl std::ops::Drop for PackageCacheGetResponder {
3694 fn drop(&mut self) {
3695 self.control_handle.shutdown();
3696 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3698 }
3699}
3700
3701impl fdomain_client::fidl::Responder for PackageCacheGetResponder {
3702 type ControlHandle = PackageCacheControlHandle;
3703
3704 fn control_handle(&self) -> &PackageCacheControlHandle {
3705 &self.control_handle
3706 }
3707
3708 fn drop_without_shutdown(mut self) {
3709 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3711 std::mem::forget(self);
3713 }
3714}
3715
3716impl PackageCacheGetResponder {
3717 pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3721 let _result = self.send_raw(result);
3722 if _result.is_err() {
3723 self.control_handle.shutdown();
3724 }
3725 self.drop_without_shutdown();
3726 _result
3727 }
3728
3729 pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3731 let _result = self.send_raw(result);
3732 self.drop_without_shutdown();
3733 _result
3734 }
3735
3736 fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3737 self.control_handle
3738 .inner
3739 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
3740 result,
3741 self.tx_id,
3742 0x15e1963f4bf123b5,
3743 fidl::encoding::DynamicFlags::empty(),
3744 )
3745 }
3746}
3747
3748#[must_use = "FIDL methods require a response to be sent"]
3749#[derive(Debug)]
3750pub struct PackageCacheGetSubpackageResponder {
3751 control_handle: std::mem::ManuallyDrop<PackageCacheControlHandle>,
3752 tx_id: u32,
3753}
3754
3755impl std::ops::Drop for PackageCacheGetSubpackageResponder {
3759 fn drop(&mut self) {
3760 self.control_handle.shutdown();
3761 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3763 }
3764}
3765
3766impl fdomain_client::fidl::Responder for PackageCacheGetSubpackageResponder {
3767 type ControlHandle = PackageCacheControlHandle;
3768
3769 fn control_handle(&self) -> &PackageCacheControlHandle {
3770 &self.control_handle
3771 }
3772
3773 fn drop_without_shutdown(mut self) {
3774 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3776 std::mem::forget(self);
3778 }
3779}
3780
3781impl PackageCacheGetSubpackageResponder {
3782 pub fn send(self, mut result: Result<(), GetSubpackageError>) -> Result<(), fidl::Error> {
3786 let _result = self.send_raw(result);
3787 if _result.is_err() {
3788 self.control_handle.shutdown();
3789 }
3790 self.drop_without_shutdown();
3791 _result
3792 }
3793
3794 pub fn send_no_shutdown_on_err(
3796 self,
3797 mut result: Result<(), GetSubpackageError>,
3798 ) -> Result<(), fidl::Error> {
3799 let _result = self.send_raw(result);
3800 self.drop_without_shutdown();
3801 _result
3802 }
3803
3804 fn send_raw(&self, mut result: Result<(), GetSubpackageError>) -> Result<(), fidl::Error> {
3805 self.control_handle.inner.send::<fidl::encoding::ResultType<
3806 fidl::encoding::EmptyStruct,
3807 GetSubpackageError,
3808 >>(
3809 result,
3810 self.tx_id,
3811 0x29478df87c29ffa3,
3812 fidl::encoding::DynamicFlags::empty(),
3813 )
3814 }
3815}
3816
3817#[must_use = "FIDL methods require a response to be sent"]
3818#[derive(Debug)]
3819pub struct PackageCacheSyncResponder {
3820 control_handle: std::mem::ManuallyDrop<PackageCacheControlHandle>,
3821 tx_id: u32,
3822}
3823
3824impl std::ops::Drop for PackageCacheSyncResponder {
3828 fn drop(&mut self) {
3829 self.control_handle.shutdown();
3830 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3832 }
3833}
3834
3835impl fdomain_client::fidl::Responder for PackageCacheSyncResponder {
3836 type ControlHandle = PackageCacheControlHandle;
3837
3838 fn control_handle(&self) -> &PackageCacheControlHandle {
3839 &self.control_handle
3840 }
3841
3842 fn drop_without_shutdown(mut self) {
3843 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3845 std::mem::forget(self);
3847 }
3848}
3849
3850impl PackageCacheSyncResponder {
3851 pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3855 let _result = self.send_raw(result);
3856 if _result.is_err() {
3857 self.control_handle.shutdown();
3858 }
3859 self.drop_without_shutdown();
3860 _result
3861 }
3862
3863 pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3865 let _result = self.send_raw(result);
3866 self.drop_without_shutdown();
3867 _result
3868 }
3869
3870 fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3871 self.control_handle
3872 .inner
3873 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
3874 result,
3875 self.tx_id,
3876 0x5c10a84094535a74,
3877 fidl::encoding::DynamicFlags::empty(),
3878 )
3879 }
3880}
3881
3882#[must_use = "FIDL methods require a response to be sent"]
3883#[derive(Debug)]
3884pub struct PackageCacheSetUpgradableUrlsResponder {
3885 control_handle: std::mem::ManuallyDrop<PackageCacheControlHandle>,
3886 tx_id: u32,
3887}
3888
3889impl std::ops::Drop for PackageCacheSetUpgradableUrlsResponder {
3893 fn drop(&mut self) {
3894 self.control_handle.shutdown();
3895 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3897 }
3898}
3899
3900impl fdomain_client::fidl::Responder for PackageCacheSetUpgradableUrlsResponder {
3901 type ControlHandle = PackageCacheControlHandle;
3902
3903 fn control_handle(&self) -> &PackageCacheControlHandle {
3904 &self.control_handle
3905 }
3906
3907 fn drop_without_shutdown(mut self) {
3908 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3910 std::mem::forget(self);
3912 }
3913}
3914
3915impl PackageCacheSetUpgradableUrlsResponder {
3916 pub fn send(self, mut result: Result<(), SetUpgradableUrlsError>) -> Result<(), fidl::Error> {
3920 let _result = self.send_raw(result);
3921 if _result.is_err() {
3922 self.control_handle.shutdown();
3923 }
3924 self.drop_without_shutdown();
3925 _result
3926 }
3927
3928 pub fn send_no_shutdown_on_err(
3930 self,
3931 mut result: Result<(), SetUpgradableUrlsError>,
3932 ) -> Result<(), fidl::Error> {
3933 let _result = self.send_raw(result);
3934 self.drop_without_shutdown();
3935 _result
3936 }
3937
3938 fn send_raw(&self, mut result: Result<(), SetUpgradableUrlsError>) -> Result<(), fidl::Error> {
3939 self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
3940 fidl::encoding::EmptyStruct,
3941 SetUpgradableUrlsError,
3942 >>(
3943 fidl::encoding::FlexibleResult::new(result),
3944 self.tx_id,
3945 0x2c235f7efdb5e2d1,
3946 fidl::encoding::DynamicFlags::FLEXIBLE,
3947 )
3948 }
3949}
3950
3951#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
3952pub struct PackageIndexIteratorMarker;
3953
3954impl fdomain_client::fidl::ProtocolMarker for PackageIndexIteratorMarker {
3955 type Proxy = PackageIndexIteratorProxy;
3956 type RequestStream = PackageIndexIteratorRequestStream;
3957
3958 const DEBUG_NAME: &'static str = "(anonymous) PackageIndexIterator";
3959}
3960
3961pub trait PackageIndexIteratorProxyInterface: Send + Sync {
3962 type NextResponseFut: std::future::Future<Output = Result<Vec<PackageIndexEntry>, fidl::Error>>
3963 + Send;
3964 fn r#next(&self) -> Self::NextResponseFut;
3965}
3966
3967#[derive(Debug, Clone)]
3968pub struct PackageIndexIteratorProxy {
3969 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
3970}
3971
3972impl fdomain_client::fidl::Proxy for PackageIndexIteratorProxy {
3973 type Protocol = PackageIndexIteratorMarker;
3974
3975 fn from_channel(inner: fdomain_client::Channel) -> Self {
3976 Self::new(inner)
3977 }
3978
3979 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
3980 self.client.into_channel().map_err(|client| Self { client })
3981 }
3982
3983 fn as_channel(&self) -> &fdomain_client::Channel {
3984 self.client.as_channel()
3985 }
3986}
3987
3988impl PackageIndexIteratorProxy {
3989 pub fn new(channel: fdomain_client::Channel) -> Self {
3991 let protocol_name =
3992 <PackageIndexIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
3993 Self { client: fidl::client::Client::new(channel, protocol_name) }
3994 }
3995
3996 pub fn take_event_stream(&self) -> PackageIndexIteratorEventStream {
4002 PackageIndexIteratorEventStream { event_receiver: self.client.take_event_receiver() }
4003 }
4004
4005 pub fn r#next(
4010 &self,
4011 ) -> fidl::client::QueryResponseFut<
4012 Vec<PackageIndexEntry>,
4013 fdomain_client::fidl::FDomainResourceDialect,
4014 > {
4015 PackageIndexIteratorProxyInterface::r#next(self)
4016 }
4017}
4018
4019impl PackageIndexIteratorProxyInterface for PackageIndexIteratorProxy {
4020 type NextResponseFut = fidl::client::QueryResponseFut<
4021 Vec<PackageIndexEntry>,
4022 fdomain_client::fidl::FDomainResourceDialect,
4023 >;
4024 fn r#next(&self) -> Self::NextResponseFut {
4025 fn _decode(
4026 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4027 ) -> Result<Vec<PackageIndexEntry>, fidl::Error> {
4028 let _response = fidl::client::decode_transaction_body::<
4029 PackageIndexIteratorNextResponse,
4030 fdomain_client::fidl::FDomainResourceDialect,
4031 0x9de6bbc87c314d9,
4032 >(_buf?)?;
4033 Ok(_response.entries)
4034 }
4035 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<PackageIndexEntry>>(
4036 (),
4037 0x9de6bbc87c314d9,
4038 fidl::encoding::DynamicFlags::empty(),
4039 _decode,
4040 )
4041 }
4042}
4043
4044pub struct PackageIndexIteratorEventStream {
4045 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
4046}
4047
4048impl std::marker::Unpin for PackageIndexIteratorEventStream {}
4049
4050impl futures::stream::FusedStream for PackageIndexIteratorEventStream {
4051 fn is_terminated(&self) -> bool {
4052 self.event_receiver.is_terminated()
4053 }
4054}
4055
4056impl futures::Stream for PackageIndexIteratorEventStream {
4057 type Item = Result<PackageIndexIteratorEvent, fidl::Error>;
4058
4059 fn poll_next(
4060 mut self: std::pin::Pin<&mut Self>,
4061 cx: &mut std::task::Context<'_>,
4062 ) -> std::task::Poll<Option<Self::Item>> {
4063 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4064 &mut self.event_receiver,
4065 cx
4066 )?) {
4067 Some(buf) => std::task::Poll::Ready(Some(PackageIndexIteratorEvent::decode(buf))),
4068 None => std::task::Poll::Ready(None),
4069 }
4070 }
4071}
4072
4073#[derive(Debug)]
4074pub enum PackageIndexIteratorEvent {}
4075
4076impl PackageIndexIteratorEvent {
4077 fn decode(
4079 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4080 ) -> Result<PackageIndexIteratorEvent, fidl::Error> {
4081 let (bytes, _handles) = buf.split_mut();
4082 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4083 debug_assert_eq!(tx_header.tx_id, 0);
4084 match tx_header.ordinal {
4085 _ => Err(fidl::Error::UnknownOrdinal {
4086 ordinal: tx_header.ordinal,
4087 protocol_name:
4088 <PackageIndexIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
4089 }),
4090 }
4091 }
4092}
4093
4094pub struct PackageIndexIteratorRequestStream {
4096 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
4097 is_terminated: bool,
4098}
4099
4100impl std::marker::Unpin for PackageIndexIteratorRequestStream {}
4101
4102impl futures::stream::FusedStream for PackageIndexIteratorRequestStream {
4103 fn is_terminated(&self) -> bool {
4104 self.is_terminated
4105 }
4106}
4107
4108impl fdomain_client::fidl::RequestStream for PackageIndexIteratorRequestStream {
4109 type Protocol = PackageIndexIteratorMarker;
4110 type ControlHandle = PackageIndexIteratorControlHandle;
4111
4112 fn from_channel(channel: fdomain_client::Channel) -> Self {
4113 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4114 }
4115
4116 fn control_handle(&self) -> Self::ControlHandle {
4117 PackageIndexIteratorControlHandle { inner: self.inner.clone() }
4118 }
4119
4120 fn into_inner(
4121 self,
4122 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
4123 {
4124 (self.inner, self.is_terminated)
4125 }
4126
4127 fn from_inner(
4128 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
4129 is_terminated: bool,
4130 ) -> Self {
4131 Self { inner, is_terminated }
4132 }
4133}
4134
4135impl futures::Stream for PackageIndexIteratorRequestStream {
4136 type Item = Result<PackageIndexIteratorRequest, fidl::Error>;
4137
4138 fn poll_next(
4139 mut self: std::pin::Pin<&mut Self>,
4140 cx: &mut std::task::Context<'_>,
4141 ) -> std::task::Poll<Option<Self::Item>> {
4142 let this = &mut *self;
4143 if this.inner.check_shutdown(cx) {
4144 this.is_terminated = true;
4145 return std::task::Poll::Ready(None);
4146 }
4147 if this.is_terminated {
4148 panic!("polled PackageIndexIteratorRequestStream after completion");
4149 }
4150 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
4151 |bytes, handles| {
4152 match this.inner.channel().read_etc(cx, bytes, handles) {
4153 std::task::Poll::Ready(Ok(())) => {}
4154 std::task::Poll::Pending => return std::task::Poll::Pending,
4155 std::task::Poll::Ready(Err(None)) => {
4156 this.is_terminated = true;
4157 return std::task::Poll::Ready(None);
4158 }
4159 std::task::Poll::Ready(Err(Some(e))) => {
4160 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4161 e.into(),
4162 ))));
4163 }
4164 }
4165
4166 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4168
4169 std::task::Poll::Ready(Some(match header.ordinal {
4170 0x9de6bbc87c314d9 => {
4171 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
4172 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fdomain_client::fidl::FDomainResourceDialect);
4173 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
4174 let control_handle = PackageIndexIteratorControlHandle {
4175 inner: this.inner.clone(),
4176 };
4177 Ok(PackageIndexIteratorRequest::Next {
4178 responder: PackageIndexIteratorNextResponder {
4179 control_handle: std::mem::ManuallyDrop::new(control_handle),
4180 tx_id: header.tx_id,
4181 },
4182 })
4183 }
4184 _ => Err(fidl::Error::UnknownOrdinal {
4185 ordinal: header.ordinal,
4186 protocol_name: <PackageIndexIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
4187 }),
4188 }))
4189 },
4190 )
4191 }
4192}
4193
4194#[derive(Debug)]
4197pub enum PackageIndexIteratorRequest {
4198 Next { responder: PackageIndexIteratorNextResponder },
4203}
4204
4205impl PackageIndexIteratorRequest {
4206 #[allow(irrefutable_let_patterns)]
4207 pub fn into_next(self) -> Option<(PackageIndexIteratorNextResponder)> {
4208 if let PackageIndexIteratorRequest::Next { responder } = self {
4209 Some((responder))
4210 } else {
4211 None
4212 }
4213 }
4214
4215 pub fn method_name(&self) -> &'static str {
4217 match *self {
4218 PackageIndexIteratorRequest::Next { .. } => "next",
4219 }
4220 }
4221}
4222
4223#[derive(Debug, Clone)]
4224pub struct PackageIndexIteratorControlHandle {
4225 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
4226}
4227
4228impl fdomain_client::fidl::ControlHandle for PackageIndexIteratorControlHandle {
4229 fn shutdown(&self) {
4230 self.inner.shutdown()
4231 }
4232
4233 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4234 self.inner.shutdown_with_epitaph(status)
4235 }
4236
4237 fn is_closed(&self) -> bool {
4238 self.inner.channel().is_closed()
4239 }
4240 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
4241 self.inner.channel().on_closed()
4242 }
4243}
4244
4245impl PackageIndexIteratorControlHandle {}
4246
4247#[must_use = "FIDL methods require a response to be sent"]
4248#[derive(Debug)]
4249pub struct PackageIndexIteratorNextResponder {
4250 control_handle: std::mem::ManuallyDrop<PackageIndexIteratorControlHandle>,
4251 tx_id: u32,
4252}
4253
4254impl std::ops::Drop for PackageIndexIteratorNextResponder {
4258 fn drop(&mut self) {
4259 self.control_handle.shutdown();
4260 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4262 }
4263}
4264
4265impl fdomain_client::fidl::Responder for PackageIndexIteratorNextResponder {
4266 type ControlHandle = PackageIndexIteratorControlHandle;
4267
4268 fn control_handle(&self) -> &PackageIndexIteratorControlHandle {
4269 &self.control_handle
4270 }
4271
4272 fn drop_without_shutdown(mut self) {
4273 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4275 std::mem::forget(self);
4277 }
4278}
4279
4280impl PackageIndexIteratorNextResponder {
4281 pub fn send(self, mut entries: &[PackageIndexEntry]) -> Result<(), fidl::Error> {
4285 let _result = self.send_raw(entries);
4286 if _result.is_err() {
4287 self.control_handle.shutdown();
4288 }
4289 self.drop_without_shutdown();
4290 _result
4291 }
4292
4293 pub fn send_no_shutdown_on_err(
4295 self,
4296 mut entries: &[PackageIndexEntry],
4297 ) -> Result<(), fidl::Error> {
4298 let _result = self.send_raw(entries);
4299 self.drop_without_shutdown();
4300 _result
4301 }
4302
4303 fn send_raw(&self, mut entries: &[PackageIndexEntry]) -> Result<(), fidl::Error> {
4304 self.control_handle.inner.send::<PackageIndexIteratorNextResponse>(
4305 (entries,),
4306 self.tx_id,
4307 0x9de6bbc87c314d9,
4308 fidl::encoding::DynamicFlags::empty(),
4309 )
4310 }
4311}
4312
4313#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4314pub struct PackageResolverMarker;
4315
4316impl fdomain_client::fidl::ProtocolMarker for PackageResolverMarker {
4317 type Proxy = PackageResolverProxy;
4318 type RequestStream = PackageResolverRequestStream;
4319
4320 const DEBUG_NAME: &'static str = "fuchsia.pkg.PackageResolver";
4321}
4322impl fdomain_client::fidl::DiscoverableProtocolMarker for PackageResolverMarker {}
4323pub type PackageResolverResolveResult = Result<ResolutionContext, ResolveError>;
4324pub type PackageResolverResolveWithContextResult = Result<ResolutionContext, ResolveError>;
4325pub type PackageResolverGetHashResult = Result<BlobId, i32>;
4326
4327pub trait PackageResolverProxyInterface: Send + Sync {
4328 type ResolveResponseFut: std::future::Future<Output = Result<PackageResolverResolveResult, fidl::Error>>
4329 + Send;
4330 fn r#resolve(
4331 &self,
4332 package_url: &str,
4333 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4334 ) -> Self::ResolveResponseFut;
4335 type ResolveWithContextResponseFut: std::future::Future<Output = Result<PackageResolverResolveWithContextResult, fidl::Error>>
4336 + Send;
4337 fn r#resolve_with_context(
4338 &self,
4339 package_url: &str,
4340 context: &ResolutionContext,
4341 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4342 ) -> Self::ResolveWithContextResponseFut;
4343 type GetHashResponseFut: std::future::Future<Output = Result<PackageResolverGetHashResult, fidl::Error>>
4344 + Send;
4345 fn r#get_hash(&self, package_url: &PackageUrl) -> Self::GetHashResponseFut;
4346}
4347
4348#[derive(Debug, Clone)]
4349pub struct PackageResolverProxy {
4350 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
4351}
4352
4353impl fdomain_client::fidl::Proxy for PackageResolverProxy {
4354 type Protocol = PackageResolverMarker;
4355
4356 fn from_channel(inner: fdomain_client::Channel) -> Self {
4357 Self::new(inner)
4358 }
4359
4360 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
4361 self.client.into_channel().map_err(|client| Self { client })
4362 }
4363
4364 fn as_channel(&self) -> &fdomain_client::Channel {
4365 self.client.as_channel()
4366 }
4367}
4368
4369impl PackageResolverProxy {
4370 pub fn new(channel: fdomain_client::Channel) -> Self {
4372 let protocol_name =
4373 <PackageResolverMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
4374 Self { client: fidl::client::Client::new(channel, protocol_name) }
4375 }
4376
4377 pub fn take_event_stream(&self) -> PackageResolverEventStream {
4383 PackageResolverEventStream { event_receiver: self.client.take_event_receiver() }
4384 }
4385
4386 pub fn r#resolve(
4404 &self,
4405 mut package_url: &str,
4406 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4407 ) -> fidl::client::QueryResponseFut<
4408 PackageResolverResolveResult,
4409 fdomain_client::fidl::FDomainResourceDialect,
4410 > {
4411 PackageResolverProxyInterface::r#resolve(self, package_url, dir)
4412 }
4413
4414 pub fn r#resolve_with_context(
4434 &self,
4435 mut package_url: &str,
4436 mut context: &ResolutionContext,
4437 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4438 ) -> fidl::client::QueryResponseFut<
4439 PackageResolverResolveWithContextResult,
4440 fdomain_client::fidl::FDomainResourceDialect,
4441 > {
4442 PackageResolverProxyInterface::r#resolve_with_context(self, package_url, context, dir)
4443 }
4444
4445 pub fn r#get_hash(
4457 &self,
4458 mut package_url: &PackageUrl,
4459 ) -> fidl::client::QueryResponseFut<
4460 PackageResolverGetHashResult,
4461 fdomain_client::fidl::FDomainResourceDialect,
4462 > {
4463 PackageResolverProxyInterface::r#get_hash(self, package_url)
4464 }
4465}
4466
4467impl PackageResolverProxyInterface for PackageResolverProxy {
4468 type ResolveResponseFut = fidl::client::QueryResponseFut<
4469 PackageResolverResolveResult,
4470 fdomain_client::fidl::FDomainResourceDialect,
4471 >;
4472 fn r#resolve(
4473 &self,
4474 mut package_url: &str,
4475 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4476 ) -> Self::ResolveResponseFut {
4477 fn _decode(
4478 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4479 ) -> Result<PackageResolverResolveResult, fidl::Error> {
4480 let _response = fidl::client::decode_transaction_body::<
4481 fidl::encoding::ResultType<PackageResolverResolveResponse, ResolveError>,
4482 fdomain_client::fidl::FDomainResourceDialect,
4483 0x6611263be4052d4f,
4484 >(_buf?)?;
4485 Ok(_response.map(|x| x.resolved_context))
4486 }
4487 self.client
4488 .send_query_and_decode::<PackageResolverResolveRequest, PackageResolverResolveResult>(
4489 (package_url, dir),
4490 0x6611263be4052d4f,
4491 fidl::encoding::DynamicFlags::empty(),
4492 _decode,
4493 )
4494 }
4495
4496 type ResolveWithContextResponseFut = fidl::client::QueryResponseFut<
4497 PackageResolverResolveWithContextResult,
4498 fdomain_client::fidl::FDomainResourceDialect,
4499 >;
4500 fn r#resolve_with_context(
4501 &self,
4502 mut package_url: &str,
4503 mut context: &ResolutionContext,
4504 mut dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4505 ) -> Self::ResolveWithContextResponseFut {
4506 fn _decode(
4507 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4508 ) -> Result<PackageResolverResolveWithContextResult, fidl::Error> {
4509 let _response = fidl::client::decode_transaction_body::<
4510 fidl::encoding::ResultType<PackageResolverResolveWithContextResponse, ResolveError>,
4511 fdomain_client::fidl::FDomainResourceDialect,
4512 0x4c255ae7260298d4,
4513 >(_buf?)?;
4514 Ok(_response.map(|x| x.resolved_context))
4515 }
4516 self.client.send_query_and_decode::<
4517 PackageResolverResolveWithContextRequest,
4518 PackageResolverResolveWithContextResult,
4519 >(
4520 (package_url, context, dir,),
4521 0x4c255ae7260298d4,
4522 fidl::encoding::DynamicFlags::empty(),
4523 _decode,
4524 )
4525 }
4526
4527 type GetHashResponseFut = fidl::client::QueryResponseFut<
4528 PackageResolverGetHashResult,
4529 fdomain_client::fidl::FDomainResourceDialect,
4530 >;
4531 fn r#get_hash(&self, mut package_url: &PackageUrl) -> Self::GetHashResponseFut {
4532 fn _decode(
4533 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4534 ) -> Result<PackageResolverGetHashResult, fidl::Error> {
4535 let _response = fidl::client::decode_transaction_body::<
4536 fidl::encoding::ResultType<PackageResolverGetHashResponse, i32>,
4537 fdomain_client::fidl::FDomainResourceDialect,
4538 0x594e8b4db51efd87,
4539 >(_buf?)?;
4540 Ok(_response.map(|x| x.meta_far_blob_id))
4541 }
4542 self.client
4543 .send_query_and_decode::<PackageResolverGetHashRequest, PackageResolverGetHashResult>(
4544 (package_url,),
4545 0x594e8b4db51efd87,
4546 fidl::encoding::DynamicFlags::empty(),
4547 _decode,
4548 )
4549 }
4550}
4551
4552pub struct PackageResolverEventStream {
4553 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
4554}
4555
4556impl std::marker::Unpin for PackageResolverEventStream {}
4557
4558impl futures::stream::FusedStream for PackageResolverEventStream {
4559 fn is_terminated(&self) -> bool {
4560 self.event_receiver.is_terminated()
4561 }
4562}
4563
4564impl futures::Stream for PackageResolverEventStream {
4565 type Item = Result<PackageResolverEvent, fidl::Error>;
4566
4567 fn poll_next(
4568 mut self: std::pin::Pin<&mut Self>,
4569 cx: &mut std::task::Context<'_>,
4570 ) -> std::task::Poll<Option<Self::Item>> {
4571 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4572 &mut self.event_receiver,
4573 cx
4574 )?) {
4575 Some(buf) => std::task::Poll::Ready(Some(PackageResolverEvent::decode(buf))),
4576 None => std::task::Poll::Ready(None),
4577 }
4578 }
4579}
4580
4581#[derive(Debug)]
4582pub enum PackageResolverEvent {}
4583
4584impl PackageResolverEvent {
4585 fn decode(
4587 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4588 ) -> Result<PackageResolverEvent, fidl::Error> {
4589 let (bytes, _handles) = buf.split_mut();
4590 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4591 debug_assert_eq!(tx_header.tx_id, 0);
4592 match tx_header.ordinal {
4593 _ => Err(fidl::Error::UnknownOrdinal {
4594 ordinal: tx_header.ordinal,
4595 protocol_name:
4596 <PackageResolverMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
4597 }),
4598 }
4599 }
4600}
4601
4602pub struct PackageResolverRequestStream {
4604 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
4605 is_terminated: bool,
4606}
4607
4608impl std::marker::Unpin for PackageResolverRequestStream {}
4609
4610impl futures::stream::FusedStream for PackageResolverRequestStream {
4611 fn is_terminated(&self) -> bool {
4612 self.is_terminated
4613 }
4614}
4615
4616impl fdomain_client::fidl::RequestStream for PackageResolverRequestStream {
4617 type Protocol = PackageResolverMarker;
4618 type ControlHandle = PackageResolverControlHandle;
4619
4620 fn from_channel(channel: fdomain_client::Channel) -> Self {
4621 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4622 }
4623
4624 fn control_handle(&self) -> Self::ControlHandle {
4625 PackageResolverControlHandle { inner: self.inner.clone() }
4626 }
4627
4628 fn into_inner(
4629 self,
4630 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
4631 {
4632 (self.inner, self.is_terminated)
4633 }
4634
4635 fn from_inner(
4636 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
4637 is_terminated: bool,
4638 ) -> Self {
4639 Self { inner, is_terminated }
4640 }
4641}
4642
4643impl futures::Stream for PackageResolverRequestStream {
4644 type Item = Result<PackageResolverRequest, fidl::Error>;
4645
4646 fn poll_next(
4647 mut self: std::pin::Pin<&mut Self>,
4648 cx: &mut std::task::Context<'_>,
4649 ) -> std::task::Poll<Option<Self::Item>> {
4650 let this = &mut *self;
4651 if this.inner.check_shutdown(cx) {
4652 this.is_terminated = true;
4653 return std::task::Poll::Ready(None);
4654 }
4655 if this.is_terminated {
4656 panic!("polled PackageResolverRequestStream after completion");
4657 }
4658 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
4659 |bytes, handles| {
4660 match this.inner.channel().read_etc(cx, bytes, handles) {
4661 std::task::Poll::Ready(Ok(())) => {}
4662 std::task::Poll::Pending => return std::task::Poll::Pending,
4663 std::task::Poll::Ready(Err(None)) => {
4664 this.is_terminated = true;
4665 return std::task::Poll::Ready(None);
4666 }
4667 std::task::Poll::Ready(Err(Some(e))) => {
4668 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4669 e.into(),
4670 ))));
4671 }
4672 }
4673
4674 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4676
4677 std::task::Poll::Ready(Some(match header.ordinal {
4678 0x6611263be4052d4f => {
4679 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
4680 let mut req = fidl::new_empty!(PackageResolverResolveRequest, fdomain_client::fidl::FDomainResourceDialect);
4681 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageResolverResolveRequest>(&header, _body_bytes, handles, &mut req)?;
4682 let control_handle = PackageResolverControlHandle {
4683 inner: this.inner.clone(),
4684 };
4685 Ok(PackageResolverRequest::Resolve {package_url: req.package_url,
4686dir: req.dir,
4687
4688 responder: PackageResolverResolveResponder {
4689 control_handle: std::mem::ManuallyDrop::new(control_handle),
4690 tx_id: header.tx_id,
4691 },
4692 })
4693 }
4694 0x4c255ae7260298d4 => {
4695 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
4696 let mut req = fidl::new_empty!(PackageResolverResolveWithContextRequest, fdomain_client::fidl::FDomainResourceDialect);
4697 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageResolverResolveWithContextRequest>(&header, _body_bytes, handles, &mut req)?;
4698 let control_handle = PackageResolverControlHandle {
4699 inner: this.inner.clone(),
4700 };
4701 Ok(PackageResolverRequest::ResolveWithContext {package_url: req.package_url,
4702context: req.context,
4703dir: req.dir,
4704
4705 responder: PackageResolverResolveWithContextResponder {
4706 control_handle: std::mem::ManuallyDrop::new(control_handle),
4707 tx_id: header.tx_id,
4708 },
4709 })
4710 }
4711 0x594e8b4db51efd87 => {
4712 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
4713 let mut req = fidl::new_empty!(PackageResolverGetHashRequest, fdomain_client::fidl::FDomainResourceDialect);
4714 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<PackageResolverGetHashRequest>(&header, _body_bytes, handles, &mut req)?;
4715 let control_handle = PackageResolverControlHandle {
4716 inner: this.inner.clone(),
4717 };
4718 Ok(PackageResolverRequest::GetHash {package_url: req.package_url,
4719
4720 responder: PackageResolverGetHashResponder {
4721 control_handle: std::mem::ManuallyDrop::new(control_handle),
4722 tx_id: header.tx_id,
4723 },
4724 })
4725 }
4726 _ => Err(fidl::Error::UnknownOrdinal {
4727 ordinal: header.ordinal,
4728 protocol_name: <PackageResolverMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
4729 }),
4730 }))
4731 },
4732 )
4733 }
4734}
4735
4736#[derive(Debug)]
4741pub enum PackageResolverRequest {
4742 Resolve {
4760 package_url: String,
4761 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4762 responder: PackageResolverResolveResponder,
4763 },
4764 ResolveWithContext {
4784 package_url: String,
4785 context: ResolutionContext,
4786 dir: fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4787 responder: PackageResolverResolveWithContextResponder,
4788 },
4789 GetHash { package_url: PackageUrl, responder: PackageResolverGetHashResponder },
4801}
4802
4803impl PackageResolverRequest {
4804 #[allow(irrefutable_let_patterns)]
4805 pub fn into_resolve(
4806 self,
4807 ) -> Option<(
4808 String,
4809 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4810 PackageResolverResolveResponder,
4811 )> {
4812 if let PackageResolverRequest::Resolve { package_url, dir, responder } = self {
4813 Some((package_url, dir, responder))
4814 } else {
4815 None
4816 }
4817 }
4818
4819 #[allow(irrefutable_let_patterns)]
4820 pub fn into_resolve_with_context(
4821 self,
4822 ) -> Option<(
4823 String,
4824 ResolutionContext,
4825 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
4826 PackageResolverResolveWithContextResponder,
4827 )> {
4828 if let PackageResolverRequest::ResolveWithContext { package_url, context, dir, responder } =
4829 self
4830 {
4831 Some((package_url, context, dir, responder))
4832 } else {
4833 None
4834 }
4835 }
4836
4837 #[allow(irrefutable_let_patterns)]
4838 pub fn into_get_hash(self) -> Option<(PackageUrl, PackageResolverGetHashResponder)> {
4839 if let PackageResolverRequest::GetHash { package_url, responder } = self {
4840 Some((package_url, responder))
4841 } else {
4842 None
4843 }
4844 }
4845
4846 pub fn method_name(&self) -> &'static str {
4848 match *self {
4849 PackageResolverRequest::Resolve { .. } => "resolve",
4850 PackageResolverRequest::ResolveWithContext { .. } => "resolve_with_context",
4851 PackageResolverRequest::GetHash { .. } => "get_hash",
4852 }
4853 }
4854}
4855
4856#[derive(Debug, Clone)]
4857pub struct PackageResolverControlHandle {
4858 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
4859}
4860
4861impl fdomain_client::fidl::ControlHandle for PackageResolverControlHandle {
4862 fn shutdown(&self) {
4863 self.inner.shutdown()
4864 }
4865
4866 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4867 self.inner.shutdown_with_epitaph(status)
4868 }
4869
4870 fn is_closed(&self) -> bool {
4871 self.inner.channel().is_closed()
4872 }
4873 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
4874 self.inner.channel().on_closed()
4875 }
4876}
4877
4878impl PackageResolverControlHandle {}
4879
4880#[must_use = "FIDL methods require a response to be sent"]
4881#[derive(Debug)]
4882pub struct PackageResolverResolveResponder {
4883 control_handle: std::mem::ManuallyDrop<PackageResolverControlHandle>,
4884 tx_id: u32,
4885}
4886
4887impl std::ops::Drop for PackageResolverResolveResponder {
4891 fn drop(&mut self) {
4892 self.control_handle.shutdown();
4893 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4895 }
4896}
4897
4898impl fdomain_client::fidl::Responder for PackageResolverResolveResponder {
4899 type ControlHandle = PackageResolverControlHandle;
4900
4901 fn control_handle(&self) -> &PackageResolverControlHandle {
4902 &self.control_handle
4903 }
4904
4905 fn drop_without_shutdown(mut self) {
4906 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4908 std::mem::forget(self);
4910 }
4911}
4912
4913impl PackageResolverResolveResponder {
4914 pub fn send(
4918 self,
4919 mut result: Result<&ResolutionContext, ResolveError>,
4920 ) -> Result<(), fidl::Error> {
4921 let _result = self.send_raw(result);
4922 if _result.is_err() {
4923 self.control_handle.shutdown();
4924 }
4925 self.drop_without_shutdown();
4926 _result
4927 }
4928
4929 pub fn send_no_shutdown_on_err(
4931 self,
4932 mut result: Result<&ResolutionContext, ResolveError>,
4933 ) -> Result<(), fidl::Error> {
4934 let _result = self.send_raw(result);
4935 self.drop_without_shutdown();
4936 _result
4937 }
4938
4939 fn send_raw(
4940 &self,
4941 mut result: Result<&ResolutionContext, ResolveError>,
4942 ) -> Result<(), fidl::Error> {
4943 self.control_handle.inner.send::<fidl::encoding::ResultType<
4944 PackageResolverResolveResponse,
4945 ResolveError,
4946 >>(
4947 result.map(|resolved_context| (resolved_context,)),
4948 self.tx_id,
4949 0x6611263be4052d4f,
4950 fidl::encoding::DynamicFlags::empty(),
4951 )
4952 }
4953}
4954
4955#[must_use = "FIDL methods require a response to be sent"]
4956#[derive(Debug)]
4957pub struct PackageResolverResolveWithContextResponder {
4958 control_handle: std::mem::ManuallyDrop<PackageResolverControlHandle>,
4959 tx_id: u32,
4960}
4961
4962impl std::ops::Drop for PackageResolverResolveWithContextResponder {
4966 fn drop(&mut self) {
4967 self.control_handle.shutdown();
4968 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4970 }
4971}
4972
4973impl fdomain_client::fidl::Responder for PackageResolverResolveWithContextResponder {
4974 type ControlHandle = PackageResolverControlHandle;
4975
4976 fn control_handle(&self) -> &PackageResolverControlHandle {
4977 &self.control_handle
4978 }
4979
4980 fn drop_without_shutdown(mut self) {
4981 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4983 std::mem::forget(self);
4985 }
4986}
4987
4988impl PackageResolverResolveWithContextResponder {
4989 pub fn send(
4993 self,
4994 mut result: Result<&ResolutionContext, ResolveError>,
4995 ) -> Result<(), fidl::Error> {
4996 let _result = self.send_raw(result);
4997 if _result.is_err() {
4998 self.control_handle.shutdown();
4999 }
5000 self.drop_without_shutdown();
5001 _result
5002 }
5003
5004 pub fn send_no_shutdown_on_err(
5006 self,
5007 mut result: Result<&ResolutionContext, ResolveError>,
5008 ) -> Result<(), fidl::Error> {
5009 let _result = self.send_raw(result);
5010 self.drop_without_shutdown();
5011 _result
5012 }
5013
5014 fn send_raw(
5015 &self,
5016 mut result: Result<&ResolutionContext, ResolveError>,
5017 ) -> Result<(), fidl::Error> {
5018 self.control_handle.inner.send::<fidl::encoding::ResultType<
5019 PackageResolverResolveWithContextResponse,
5020 ResolveError,
5021 >>(
5022 result.map(|resolved_context| (resolved_context,)),
5023 self.tx_id,
5024 0x4c255ae7260298d4,
5025 fidl::encoding::DynamicFlags::empty(),
5026 )
5027 }
5028}
5029
5030#[must_use = "FIDL methods require a response to be sent"]
5031#[derive(Debug)]
5032pub struct PackageResolverGetHashResponder {
5033 control_handle: std::mem::ManuallyDrop<PackageResolverControlHandle>,
5034 tx_id: u32,
5035}
5036
5037impl std::ops::Drop for PackageResolverGetHashResponder {
5041 fn drop(&mut self) {
5042 self.control_handle.shutdown();
5043 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5045 }
5046}
5047
5048impl fdomain_client::fidl::Responder for PackageResolverGetHashResponder {
5049 type ControlHandle = PackageResolverControlHandle;
5050
5051 fn control_handle(&self) -> &PackageResolverControlHandle {
5052 &self.control_handle
5053 }
5054
5055 fn drop_without_shutdown(mut self) {
5056 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5058 std::mem::forget(self);
5060 }
5061}
5062
5063impl PackageResolverGetHashResponder {
5064 pub fn send(self, mut result: Result<&BlobId, i32>) -> Result<(), fidl::Error> {
5068 let _result = self.send_raw(result);
5069 if _result.is_err() {
5070 self.control_handle.shutdown();
5071 }
5072 self.drop_without_shutdown();
5073 _result
5074 }
5075
5076 pub fn send_no_shutdown_on_err(
5078 self,
5079 mut result: Result<&BlobId, i32>,
5080 ) -> Result<(), fidl::Error> {
5081 let _result = self.send_raw(result);
5082 self.drop_without_shutdown();
5083 _result
5084 }
5085
5086 fn send_raw(&self, mut result: Result<&BlobId, i32>) -> Result<(), fidl::Error> {
5087 self.control_handle
5088 .inner
5089 .send::<fidl::encoding::ResultType<PackageResolverGetHashResponse, i32>>(
5090 result.map(|meta_far_blob_id| (meta_far_blob_id,)),
5091 self.tx_id,
5092 0x594e8b4db51efd87,
5093 fidl::encoding::DynamicFlags::empty(),
5094 )
5095 }
5096}
5097
5098#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
5099pub struct RepositoryIteratorMarker;
5100
5101impl fdomain_client::fidl::ProtocolMarker for RepositoryIteratorMarker {
5102 type Proxy = RepositoryIteratorProxy;
5103 type RequestStream = RepositoryIteratorRequestStream;
5104
5105 const DEBUG_NAME: &'static str = "(anonymous) RepositoryIterator";
5106}
5107
5108pub trait RepositoryIteratorProxyInterface: Send + Sync {
5109 type NextResponseFut: std::future::Future<Output = Result<Vec<RepositoryConfig>, fidl::Error>>
5110 + Send;
5111 fn r#next(&self) -> Self::NextResponseFut;
5112}
5113
5114#[derive(Debug, Clone)]
5115pub struct RepositoryIteratorProxy {
5116 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
5117}
5118
5119impl fdomain_client::fidl::Proxy for RepositoryIteratorProxy {
5120 type Protocol = RepositoryIteratorMarker;
5121
5122 fn from_channel(inner: fdomain_client::Channel) -> Self {
5123 Self::new(inner)
5124 }
5125
5126 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
5127 self.client.into_channel().map_err(|client| Self { client })
5128 }
5129
5130 fn as_channel(&self) -> &fdomain_client::Channel {
5131 self.client.as_channel()
5132 }
5133}
5134
5135impl RepositoryIteratorProxy {
5136 pub fn new(channel: fdomain_client::Channel) -> Self {
5138 let protocol_name =
5139 <RepositoryIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
5140 Self { client: fidl::client::Client::new(channel, protocol_name) }
5141 }
5142
5143 pub fn take_event_stream(&self) -> RepositoryIteratorEventStream {
5149 RepositoryIteratorEventStream { event_receiver: self.client.take_event_receiver() }
5150 }
5151
5152 pub fn r#next(
5157 &self,
5158 ) -> fidl::client::QueryResponseFut<
5159 Vec<RepositoryConfig>,
5160 fdomain_client::fidl::FDomainResourceDialect,
5161 > {
5162 RepositoryIteratorProxyInterface::r#next(self)
5163 }
5164}
5165
5166impl RepositoryIteratorProxyInterface for RepositoryIteratorProxy {
5167 type NextResponseFut = fidl::client::QueryResponseFut<
5168 Vec<RepositoryConfig>,
5169 fdomain_client::fidl::FDomainResourceDialect,
5170 >;
5171 fn r#next(&self) -> Self::NextResponseFut {
5172 fn _decode(
5173 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5174 ) -> Result<Vec<RepositoryConfig>, fidl::Error> {
5175 let _response = fidl::client::decode_transaction_body::<
5176 RepositoryIteratorNextResponse,
5177 fdomain_client::fidl::FDomainResourceDialect,
5178 0x5502086bc0cdd25e,
5179 >(_buf?)?;
5180 Ok(_response.repos)
5181 }
5182 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<RepositoryConfig>>(
5183 (),
5184 0x5502086bc0cdd25e,
5185 fidl::encoding::DynamicFlags::empty(),
5186 _decode,
5187 )
5188 }
5189}
5190
5191pub struct RepositoryIteratorEventStream {
5192 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
5193}
5194
5195impl std::marker::Unpin for RepositoryIteratorEventStream {}
5196
5197impl futures::stream::FusedStream for RepositoryIteratorEventStream {
5198 fn is_terminated(&self) -> bool {
5199 self.event_receiver.is_terminated()
5200 }
5201}
5202
5203impl futures::Stream for RepositoryIteratorEventStream {
5204 type Item = Result<RepositoryIteratorEvent, fidl::Error>;
5205
5206 fn poll_next(
5207 mut self: std::pin::Pin<&mut Self>,
5208 cx: &mut std::task::Context<'_>,
5209 ) -> std::task::Poll<Option<Self::Item>> {
5210 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5211 &mut self.event_receiver,
5212 cx
5213 )?) {
5214 Some(buf) => std::task::Poll::Ready(Some(RepositoryIteratorEvent::decode(buf))),
5215 None => std::task::Poll::Ready(None),
5216 }
5217 }
5218}
5219
5220#[derive(Debug)]
5221pub enum RepositoryIteratorEvent {}
5222
5223impl RepositoryIteratorEvent {
5224 fn decode(
5226 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5227 ) -> Result<RepositoryIteratorEvent, fidl::Error> {
5228 let (bytes, _handles) = buf.split_mut();
5229 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5230 debug_assert_eq!(tx_header.tx_id, 0);
5231 match tx_header.ordinal {
5232 _ => Err(fidl::Error::UnknownOrdinal {
5233 ordinal: tx_header.ordinal,
5234 protocol_name:
5235 <RepositoryIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
5236 }),
5237 }
5238 }
5239}
5240
5241pub struct RepositoryIteratorRequestStream {
5243 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
5244 is_terminated: bool,
5245}
5246
5247impl std::marker::Unpin for RepositoryIteratorRequestStream {}
5248
5249impl futures::stream::FusedStream for RepositoryIteratorRequestStream {
5250 fn is_terminated(&self) -> bool {
5251 self.is_terminated
5252 }
5253}
5254
5255impl fdomain_client::fidl::RequestStream for RepositoryIteratorRequestStream {
5256 type Protocol = RepositoryIteratorMarker;
5257 type ControlHandle = RepositoryIteratorControlHandle;
5258
5259 fn from_channel(channel: fdomain_client::Channel) -> Self {
5260 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5261 }
5262
5263 fn control_handle(&self) -> Self::ControlHandle {
5264 RepositoryIteratorControlHandle { inner: self.inner.clone() }
5265 }
5266
5267 fn into_inner(
5268 self,
5269 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
5270 {
5271 (self.inner, self.is_terminated)
5272 }
5273
5274 fn from_inner(
5275 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
5276 is_terminated: bool,
5277 ) -> Self {
5278 Self { inner, is_terminated }
5279 }
5280}
5281
5282impl futures::Stream for RepositoryIteratorRequestStream {
5283 type Item = Result<RepositoryIteratorRequest, fidl::Error>;
5284
5285 fn poll_next(
5286 mut self: std::pin::Pin<&mut Self>,
5287 cx: &mut std::task::Context<'_>,
5288 ) -> std::task::Poll<Option<Self::Item>> {
5289 let this = &mut *self;
5290 if this.inner.check_shutdown(cx) {
5291 this.is_terminated = true;
5292 return std::task::Poll::Ready(None);
5293 }
5294 if this.is_terminated {
5295 panic!("polled RepositoryIteratorRequestStream after completion");
5296 }
5297 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
5298 |bytes, handles| {
5299 match this.inner.channel().read_etc(cx, bytes, handles) {
5300 std::task::Poll::Ready(Ok(())) => {}
5301 std::task::Poll::Pending => return std::task::Poll::Pending,
5302 std::task::Poll::Ready(Err(None)) => {
5303 this.is_terminated = true;
5304 return std::task::Poll::Ready(None);
5305 }
5306 std::task::Poll::Ready(Err(Some(e))) => {
5307 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5308 e.into(),
5309 ))));
5310 }
5311 }
5312
5313 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5315
5316 std::task::Poll::Ready(Some(match header.ordinal {
5317 0x5502086bc0cdd25e => {
5318 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5319 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fdomain_client::fidl::FDomainResourceDialect);
5320 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5321 let control_handle = RepositoryIteratorControlHandle {
5322 inner: this.inner.clone(),
5323 };
5324 Ok(RepositoryIteratorRequest::Next {
5325 responder: RepositoryIteratorNextResponder {
5326 control_handle: std::mem::ManuallyDrop::new(control_handle),
5327 tx_id: header.tx_id,
5328 },
5329 })
5330 }
5331 _ => Err(fidl::Error::UnknownOrdinal {
5332 ordinal: header.ordinal,
5333 protocol_name: <RepositoryIteratorMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
5334 }),
5335 }))
5336 },
5337 )
5338 }
5339}
5340
5341#[derive(Debug)]
5343pub enum RepositoryIteratorRequest {
5344 Next { responder: RepositoryIteratorNextResponder },
5349}
5350
5351impl RepositoryIteratorRequest {
5352 #[allow(irrefutable_let_patterns)]
5353 pub fn into_next(self) -> Option<(RepositoryIteratorNextResponder)> {
5354 if let RepositoryIteratorRequest::Next { responder } = self {
5355 Some((responder))
5356 } else {
5357 None
5358 }
5359 }
5360
5361 pub fn method_name(&self) -> &'static str {
5363 match *self {
5364 RepositoryIteratorRequest::Next { .. } => "next",
5365 }
5366 }
5367}
5368
5369#[derive(Debug, Clone)]
5370pub struct RepositoryIteratorControlHandle {
5371 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
5372}
5373
5374impl fdomain_client::fidl::ControlHandle for RepositoryIteratorControlHandle {
5375 fn shutdown(&self) {
5376 self.inner.shutdown()
5377 }
5378
5379 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
5380 self.inner.shutdown_with_epitaph(status)
5381 }
5382
5383 fn is_closed(&self) -> bool {
5384 self.inner.channel().is_closed()
5385 }
5386 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
5387 self.inner.channel().on_closed()
5388 }
5389}
5390
5391impl RepositoryIteratorControlHandle {}
5392
5393#[must_use = "FIDL methods require a response to be sent"]
5394#[derive(Debug)]
5395pub struct RepositoryIteratorNextResponder {
5396 control_handle: std::mem::ManuallyDrop<RepositoryIteratorControlHandle>,
5397 tx_id: u32,
5398}
5399
5400impl std::ops::Drop for RepositoryIteratorNextResponder {
5404 fn drop(&mut self) {
5405 self.control_handle.shutdown();
5406 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5408 }
5409}
5410
5411impl fdomain_client::fidl::Responder for RepositoryIteratorNextResponder {
5412 type ControlHandle = RepositoryIteratorControlHandle;
5413
5414 fn control_handle(&self) -> &RepositoryIteratorControlHandle {
5415 &self.control_handle
5416 }
5417
5418 fn drop_without_shutdown(mut self) {
5419 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5421 std::mem::forget(self);
5423 }
5424}
5425
5426impl RepositoryIteratorNextResponder {
5427 pub fn send(self, mut repos: &[RepositoryConfig]) -> Result<(), fidl::Error> {
5431 let _result = self.send_raw(repos);
5432 if _result.is_err() {
5433 self.control_handle.shutdown();
5434 }
5435 self.drop_without_shutdown();
5436 _result
5437 }
5438
5439 pub fn send_no_shutdown_on_err(
5441 self,
5442 mut repos: &[RepositoryConfig],
5443 ) -> Result<(), fidl::Error> {
5444 let _result = self.send_raw(repos);
5445 self.drop_without_shutdown();
5446 _result
5447 }
5448
5449 fn send_raw(&self, mut repos: &[RepositoryConfig]) -> Result<(), fidl::Error> {
5450 self.control_handle.inner.send::<RepositoryIteratorNextResponse>(
5451 (repos,),
5452 self.tx_id,
5453 0x5502086bc0cdd25e,
5454 fidl::encoding::DynamicFlags::empty(),
5455 )
5456 }
5457}
5458
5459#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
5460pub struct RepositoryManagerMarker;
5461
5462impl fdomain_client::fidl::ProtocolMarker for RepositoryManagerMarker {
5463 type Proxy = RepositoryManagerProxy;
5464 type RequestStream = RepositoryManagerRequestStream;
5465
5466 const DEBUG_NAME: &'static str = "fuchsia.pkg.RepositoryManager";
5467}
5468impl fdomain_client::fidl::DiscoverableProtocolMarker for RepositoryManagerMarker {}
5469pub type RepositoryManagerAddResult = Result<(), i32>;
5470pub type RepositoryManagerRemoveResult = Result<(), i32>;
5471pub type RepositoryManagerAddMirrorResult = Result<(), i32>;
5472pub type RepositoryManagerRemoveMirrorResult = Result<(), i32>;
5473
5474pub trait RepositoryManagerProxyInterface: Send + Sync {
5475 type AddResponseFut: std::future::Future<Output = Result<RepositoryManagerAddResult, fidl::Error>>
5476 + Send;
5477 fn r#add(&self, repo: &RepositoryConfig) -> Self::AddResponseFut;
5478 type RemoveResponseFut: std::future::Future<Output = Result<RepositoryManagerRemoveResult, fidl::Error>>
5479 + Send;
5480 fn r#remove(&self, repo_url: &str) -> Self::RemoveResponseFut;
5481 type AddMirrorResponseFut: std::future::Future<Output = Result<RepositoryManagerAddMirrorResult, fidl::Error>>
5482 + Send;
5483 fn r#add_mirror(&self, repo_url: &str, mirror: &MirrorConfig) -> Self::AddMirrorResponseFut;
5484 type RemoveMirrorResponseFut: std::future::Future<Output = Result<RepositoryManagerRemoveMirrorResult, fidl::Error>>
5485 + Send;
5486 fn r#remove_mirror(&self, repo_url: &str, mirror_url: &str) -> Self::RemoveMirrorResponseFut;
5487 fn r#list(
5488 &self,
5489 iterator: fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
5490 ) -> Result<(), fidl::Error>;
5491}
5492
5493#[derive(Debug, Clone)]
5494pub struct RepositoryManagerProxy {
5495 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
5496}
5497
5498impl fdomain_client::fidl::Proxy for RepositoryManagerProxy {
5499 type Protocol = RepositoryManagerMarker;
5500
5501 fn from_channel(inner: fdomain_client::Channel) -> Self {
5502 Self::new(inner)
5503 }
5504
5505 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
5506 self.client.into_channel().map_err(|client| Self { client })
5507 }
5508
5509 fn as_channel(&self) -> &fdomain_client::Channel {
5510 self.client.as_channel()
5511 }
5512}
5513
5514impl RepositoryManagerProxy {
5515 pub fn new(channel: fdomain_client::Channel) -> Self {
5517 let protocol_name =
5518 <RepositoryManagerMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
5519 Self { client: fidl::client::Client::new(channel, protocol_name) }
5520 }
5521
5522 pub fn take_event_stream(&self) -> RepositoryManagerEventStream {
5528 RepositoryManagerEventStream { event_receiver: self.client.take_event_receiver() }
5529 }
5530
5531 pub fn r#add(
5539 &self,
5540 mut repo: &RepositoryConfig,
5541 ) -> fidl::client::QueryResponseFut<
5542 RepositoryManagerAddResult,
5543 fdomain_client::fidl::FDomainResourceDialect,
5544 > {
5545 RepositoryManagerProxyInterface::r#add(self, repo)
5546 }
5547
5548 pub fn r#remove(
5560 &self,
5561 mut repo_url: &str,
5562 ) -> fidl::client::QueryResponseFut<
5563 RepositoryManagerRemoveResult,
5564 fdomain_client::fidl::FDomainResourceDialect,
5565 > {
5566 RepositoryManagerProxyInterface::r#remove(self, repo_url)
5567 }
5568
5569 pub fn r#add_mirror(
5578 &self,
5579 mut repo_url: &str,
5580 mut mirror: &MirrorConfig,
5581 ) -> fidl::client::QueryResponseFut<
5582 RepositoryManagerAddMirrorResult,
5583 fdomain_client::fidl::FDomainResourceDialect,
5584 > {
5585 RepositoryManagerProxyInterface::r#add_mirror(self, repo_url, mirror)
5586 }
5587
5588 pub fn r#remove_mirror(
5599 &self,
5600 mut repo_url: &str,
5601 mut mirror_url: &str,
5602 ) -> fidl::client::QueryResponseFut<
5603 RepositoryManagerRemoveMirrorResult,
5604 fdomain_client::fidl::FDomainResourceDialect,
5605 > {
5606 RepositoryManagerProxyInterface::r#remove_mirror(self, repo_url, mirror_url)
5607 }
5608
5609 pub fn r#list(
5613 &self,
5614 mut iterator: fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
5615 ) -> Result<(), fidl::Error> {
5616 RepositoryManagerProxyInterface::r#list(self, iterator)
5617 }
5618}
5619
5620impl RepositoryManagerProxyInterface for RepositoryManagerProxy {
5621 type AddResponseFut = fidl::client::QueryResponseFut<
5622 RepositoryManagerAddResult,
5623 fdomain_client::fidl::FDomainResourceDialect,
5624 >;
5625 fn r#add(&self, mut repo: &RepositoryConfig) -> Self::AddResponseFut {
5626 fn _decode(
5627 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5628 ) -> Result<RepositoryManagerAddResult, fidl::Error> {
5629 let _response = fidl::client::decode_transaction_body::<
5630 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
5631 fdomain_client::fidl::FDomainResourceDialect,
5632 0x7fff4b8c733c7151,
5633 >(_buf?)?;
5634 Ok(_response.map(|x| x))
5635 }
5636 self.client
5637 .send_query_and_decode::<RepositoryManagerAddRequest, RepositoryManagerAddResult>(
5638 (repo,),
5639 0x7fff4b8c733c7151,
5640 fidl::encoding::DynamicFlags::empty(),
5641 _decode,
5642 )
5643 }
5644
5645 type RemoveResponseFut = fidl::client::QueryResponseFut<
5646 RepositoryManagerRemoveResult,
5647 fdomain_client::fidl::FDomainResourceDialect,
5648 >;
5649 fn r#remove(&self, mut repo_url: &str) -> Self::RemoveResponseFut {
5650 fn _decode(
5651 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5652 ) -> Result<RepositoryManagerRemoveResult, fidl::Error> {
5653 let _response = fidl::client::decode_transaction_body::<
5654 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
5655 fdomain_client::fidl::FDomainResourceDialect,
5656 0x5de23dc0e0dea4ba,
5657 >(_buf?)?;
5658 Ok(_response.map(|x| x))
5659 }
5660 self.client
5661 .send_query_and_decode::<RepositoryManagerRemoveRequest, RepositoryManagerRemoveResult>(
5662 (repo_url,),
5663 0x5de23dc0e0dea4ba,
5664 fidl::encoding::DynamicFlags::empty(),
5665 _decode,
5666 )
5667 }
5668
5669 type AddMirrorResponseFut = fidl::client::QueryResponseFut<
5670 RepositoryManagerAddMirrorResult,
5671 fdomain_client::fidl::FDomainResourceDialect,
5672 >;
5673 fn r#add_mirror(
5674 &self,
5675 mut repo_url: &str,
5676 mut mirror: &MirrorConfig,
5677 ) -> Self::AddMirrorResponseFut {
5678 fn _decode(
5679 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5680 ) -> Result<RepositoryManagerAddMirrorResult, fidl::Error> {
5681 let _response = fidl::client::decode_transaction_body::<
5682 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
5683 fdomain_client::fidl::FDomainResourceDialect,
5684 0x3b7ef213730dd24c,
5685 >(_buf?)?;
5686 Ok(_response.map(|x| x))
5687 }
5688 self.client.send_query_and_decode::<
5689 RepositoryManagerAddMirrorRequest,
5690 RepositoryManagerAddMirrorResult,
5691 >(
5692 (repo_url, mirror,),
5693 0x3b7ef213730dd24c,
5694 fidl::encoding::DynamicFlags::empty(),
5695 _decode,
5696 )
5697 }
5698
5699 type RemoveMirrorResponseFut = fidl::client::QueryResponseFut<
5700 RepositoryManagerRemoveMirrorResult,
5701 fdomain_client::fidl::FDomainResourceDialect,
5702 >;
5703 fn r#remove_mirror(
5704 &self,
5705 mut repo_url: &str,
5706 mut mirror_url: &str,
5707 ) -> Self::RemoveMirrorResponseFut {
5708 fn _decode(
5709 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5710 ) -> Result<RepositoryManagerRemoveMirrorResult, fidl::Error> {
5711 let _response = fidl::client::decode_transaction_body::<
5712 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
5713 fdomain_client::fidl::FDomainResourceDialect,
5714 0x4682584cc47c23a2,
5715 >(_buf?)?;
5716 Ok(_response.map(|x| x))
5717 }
5718 self.client.send_query_and_decode::<
5719 RepositoryManagerRemoveMirrorRequest,
5720 RepositoryManagerRemoveMirrorResult,
5721 >(
5722 (repo_url, mirror_url,),
5723 0x4682584cc47c23a2,
5724 fidl::encoding::DynamicFlags::empty(),
5725 _decode,
5726 )
5727 }
5728
5729 fn r#list(
5730 &self,
5731 mut iterator: fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
5732 ) -> Result<(), fidl::Error> {
5733 self.client.send::<RepositoryManagerListRequest>(
5734 (iterator,),
5735 0x61837314ba6f4afb,
5736 fidl::encoding::DynamicFlags::empty(),
5737 )
5738 }
5739}
5740
5741pub struct RepositoryManagerEventStream {
5742 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
5743}
5744
5745impl std::marker::Unpin for RepositoryManagerEventStream {}
5746
5747impl futures::stream::FusedStream for RepositoryManagerEventStream {
5748 fn is_terminated(&self) -> bool {
5749 self.event_receiver.is_terminated()
5750 }
5751}
5752
5753impl futures::Stream for RepositoryManagerEventStream {
5754 type Item = Result<RepositoryManagerEvent, fidl::Error>;
5755
5756 fn poll_next(
5757 mut self: std::pin::Pin<&mut Self>,
5758 cx: &mut std::task::Context<'_>,
5759 ) -> std::task::Poll<Option<Self::Item>> {
5760 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5761 &mut self.event_receiver,
5762 cx
5763 )?) {
5764 Some(buf) => std::task::Poll::Ready(Some(RepositoryManagerEvent::decode(buf))),
5765 None => std::task::Poll::Ready(None),
5766 }
5767 }
5768}
5769
5770#[derive(Debug)]
5771pub enum RepositoryManagerEvent {}
5772
5773impl RepositoryManagerEvent {
5774 fn decode(
5776 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5777 ) -> Result<RepositoryManagerEvent, fidl::Error> {
5778 let (bytes, _handles) = buf.split_mut();
5779 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5780 debug_assert_eq!(tx_header.tx_id, 0);
5781 match tx_header.ordinal {
5782 _ => Err(fidl::Error::UnknownOrdinal {
5783 ordinal: tx_header.ordinal,
5784 protocol_name:
5785 <RepositoryManagerMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
5786 }),
5787 }
5788 }
5789}
5790
5791pub struct RepositoryManagerRequestStream {
5793 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
5794 is_terminated: bool,
5795}
5796
5797impl std::marker::Unpin for RepositoryManagerRequestStream {}
5798
5799impl futures::stream::FusedStream for RepositoryManagerRequestStream {
5800 fn is_terminated(&self) -> bool {
5801 self.is_terminated
5802 }
5803}
5804
5805impl fdomain_client::fidl::RequestStream for RepositoryManagerRequestStream {
5806 type Protocol = RepositoryManagerMarker;
5807 type ControlHandle = RepositoryManagerControlHandle;
5808
5809 fn from_channel(channel: fdomain_client::Channel) -> Self {
5810 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5811 }
5812
5813 fn control_handle(&self) -> Self::ControlHandle {
5814 RepositoryManagerControlHandle { inner: self.inner.clone() }
5815 }
5816
5817 fn into_inner(
5818 self,
5819 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
5820 {
5821 (self.inner, self.is_terminated)
5822 }
5823
5824 fn from_inner(
5825 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
5826 is_terminated: bool,
5827 ) -> Self {
5828 Self { inner, is_terminated }
5829 }
5830}
5831
5832impl futures::Stream for RepositoryManagerRequestStream {
5833 type Item = Result<RepositoryManagerRequest, fidl::Error>;
5834
5835 fn poll_next(
5836 mut self: std::pin::Pin<&mut Self>,
5837 cx: &mut std::task::Context<'_>,
5838 ) -> std::task::Poll<Option<Self::Item>> {
5839 let this = &mut *self;
5840 if this.inner.check_shutdown(cx) {
5841 this.is_terminated = true;
5842 return std::task::Poll::Ready(None);
5843 }
5844 if this.is_terminated {
5845 panic!("polled RepositoryManagerRequestStream after completion");
5846 }
5847 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
5848 |bytes, handles| {
5849 match this.inner.channel().read_etc(cx, bytes, handles) {
5850 std::task::Poll::Ready(Ok(())) => {}
5851 std::task::Poll::Pending => return std::task::Poll::Pending,
5852 std::task::Poll::Ready(Err(None)) => {
5853 this.is_terminated = true;
5854 return std::task::Poll::Ready(None);
5855 }
5856 std::task::Poll::Ready(Err(Some(e))) => {
5857 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5858 e.into(),
5859 ))));
5860 }
5861 }
5862
5863 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5865
5866 std::task::Poll::Ready(Some(match header.ordinal {
5867 0x7fff4b8c733c7151 => {
5868 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5869 let mut req = fidl::new_empty!(RepositoryManagerAddRequest, fdomain_client::fidl::FDomainResourceDialect);
5870 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<RepositoryManagerAddRequest>(&header, _body_bytes, handles, &mut req)?;
5871 let control_handle = RepositoryManagerControlHandle {
5872 inner: this.inner.clone(),
5873 };
5874 Ok(RepositoryManagerRequest::Add {repo: req.repo,
5875
5876 responder: RepositoryManagerAddResponder {
5877 control_handle: std::mem::ManuallyDrop::new(control_handle),
5878 tx_id: header.tx_id,
5879 },
5880 })
5881 }
5882 0x5de23dc0e0dea4ba => {
5883 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5884 let mut req = fidl::new_empty!(RepositoryManagerRemoveRequest, fdomain_client::fidl::FDomainResourceDialect);
5885 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<RepositoryManagerRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
5886 let control_handle = RepositoryManagerControlHandle {
5887 inner: this.inner.clone(),
5888 };
5889 Ok(RepositoryManagerRequest::Remove {repo_url: req.repo_url,
5890
5891 responder: RepositoryManagerRemoveResponder {
5892 control_handle: std::mem::ManuallyDrop::new(control_handle),
5893 tx_id: header.tx_id,
5894 },
5895 })
5896 }
5897 0x3b7ef213730dd24c => {
5898 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5899 let mut req = fidl::new_empty!(RepositoryManagerAddMirrorRequest, fdomain_client::fidl::FDomainResourceDialect);
5900 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<RepositoryManagerAddMirrorRequest>(&header, _body_bytes, handles, &mut req)?;
5901 let control_handle = RepositoryManagerControlHandle {
5902 inner: this.inner.clone(),
5903 };
5904 Ok(RepositoryManagerRequest::AddMirror {repo_url: req.repo_url,
5905mirror: req.mirror,
5906
5907 responder: RepositoryManagerAddMirrorResponder {
5908 control_handle: std::mem::ManuallyDrop::new(control_handle),
5909 tx_id: header.tx_id,
5910 },
5911 })
5912 }
5913 0x4682584cc47c23a2 => {
5914 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5915 let mut req = fidl::new_empty!(RepositoryManagerRemoveMirrorRequest, fdomain_client::fidl::FDomainResourceDialect);
5916 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<RepositoryManagerRemoveMirrorRequest>(&header, _body_bytes, handles, &mut req)?;
5917 let control_handle = RepositoryManagerControlHandle {
5918 inner: this.inner.clone(),
5919 };
5920 Ok(RepositoryManagerRequest::RemoveMirror {repo_url: req.repo_url,
5921mirror_url: req.mirror_url,
5922
5923 responder: RepositoryManagerRemoveMirrorResponder {
5924 control_handle: std::mem::ManuallyDrop::new(control_handle),
5925 tx_id: header.tx_id,
5926 },
5927 })
5928 }
5929 0x61837314ba6f4afb => {
5930 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
5931 let mut req = fidl::new_empty!(RepositoryManagerListRequest, fdomain_client::fidl::FDomainResourceDialect);
5932 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<RepositoryManagerListRequest>(&header, _body_bytes, handles, &mut req)?;
5933 let control_handle = RepositoryManagerControlHandle {
5934 inner: this.inner.clone(),
5935 };
5936 Ok(RepositoryManagerRequest::List {iterator: req.iterator,
5937
5938 control_handle,
5939 })
5940 }
5941 _ => Err(fidl::Error::UnknownOrdinal {
5942 ordinal: header.ordinal,
5943 protocol_name: <RepositoryManagerMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
5944 }),
5945 }))
5946 },
5947 )
5948 }
5949}
5950
5951#[derive(Debug)]
5956pub enum RepositoryManagerRequest {
5957 Add { repo: RepositoryConfig, responder: RepositoryManagerAddResponder },
5965 Remove { repo_url: String, responder: RepositoryManagerRemoveResponder },
5977 AddMirror {
5986 repo_url: String,
5987 mirror: MirrorConfig,
5988 responder: RepositoryManagerAddMirrorResponder,
5989 },
5990 RemoveMirror {
6001 repo_url: String,
6002 mirror_url: String,
6003 responder: RepositoryManagerRemoveMirrorResponder,
6004 },
6005 List {
6009 iterator: fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
6010 control_handle: RepositoryManagerControlHandle,
6011 },
6012}
6013
6014impl RepositoryManagerRequest {
6015 #[allow(irrefutable_let_patterns)]
6016 pub fn into_add(self) -> Option<(RepositoryConfig, RepositoryManagerAddResponder)> {
6017 if let RepositoryManagerRequest::Add { repo, responder } = self {
6018 Some((repo, responder))
6019 } else {
6020 None
6021 }
6022 }
6023
6024 #[allow(irrefutable_let_patterns)]
6025 pub fn into_remove(self) -> Option<(String, RepositoryManagerRemoveResponder)> {
6026 if let RepositoryManagerRequest::Remove { repo_url, responder } = self {
6027 Some((repo_url, responder))
6028 } else {
6029 None
6030 }
6031 }
6032
6033 #[allow(irrefutable_let_patterns)]
6034 pub fn into_add_mirror(
6035 self,
6036 ) -> Option<(String, MirrorConfig, RepositoryManagerAddMirrorResponder)> {
6037 if let RepositoryManagerRequest::AddMirror { repo_url, mirror, responder } = self {
6038 Some((repo_url, mirror, responder))
6039 } else {
6040 None
6041 }
6042 }
6043
6044 #[allow(irrefutable_let_patterns)]
6045 pub fn into_remove_mirror(
6046 self,
6047 ) -> Option<(String, String, RepositoryManagerRemoveMirrorResponder)> {
6048 if let RepositoryManagerRequest::RemoveMirror { repo_url, mirror_url, responder } = self {
6049 Some((repo_url, mirror_url, responder))
6050 } else {
6051 None
6052 }
6053 }
6054
6055 #[allow(irrefutable_let_patterns)]
6056 pub fn into_list(
6057 self,
6058 ) -> Option<(
6059 fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
6060 RepositoryManagerControlHandle,
6061 )> {
6062 if let RepositoryManagerRequest::List { iterator, control_handle } = self {
6063 Some((iterator, control_handle))
6064 } else {
6065 None
6066 }
6067 }
6068
6069 pub fn method_name(&self) -> &'static str {
6071 match *self {
6072 RepositoryManagerRequest::Add { .. } => "add",
6073 RepositoryManagerRequest::Remove { .. } => "remove",
6074 RepositoryManagerRequest::AddMirror { .. } => "add_mirror",
6075 RepositoryManagerRequest::RemoveMirror { .. } => "remove_mirror",
6076 RepositoryManagerRequest::List { .. } => "list",
6077 }
6078 }
6079}
6080
6081#[derive(Debug, Clone)]
6082pub struct RepositoryManagerControlHandle {
6083 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
6084}
6085
6086impl fdomain_client::fidl::ControlHandle for RepositoryManagerControlHandle {
6087 fn shutdown(&self) {
6088 self.inner.shutdown()
6089 }
6090
6091 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
6092 self.inner.shutdown_with_epitaph(status)
6093 }
6094
6095 fn is_closed(&self) -> bool {
6096 self.inner.channel().is_closed()
6097 }
6098 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
6099 self.inner.channel().on_closed()
6100 }
6101}
6102
6103impl RepositoryManagerControlHandle {}
6104
6105#[must_use = "FIDL methods require a response to be sent"]
6106#[derive(Debug)]
6107pub struct RepositoryManagerAddResponder {
6108 control_handle: std::mem::ManuallyDrop<RepositoryManagerControlHandle>,
6109 tx_id: u32,
6110}
6111
6112impl std::ops::Drop for RepositoryManagerAddResponder {
6116 fn drop(&mut self) {
6117 self.control_handle.shutdown();
6118 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6120 }
6121}
6122
6123impl fdomain_client::fidl::Responder for RepositoryManagerAddResponder {
6124 type ControlHandle = RepositoryManagerControlHandle;
6125
6126 fn control_handle(&self) -> &RepositoryManagerControlHandle {
6127 &self.control_handle
6128 }
6129
6130 fn drop_without_shutdown(mut self) {
6131 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6133 std::mem::forget(self);
6135 }
6136}
6137
6138impl RepositoryManagerAddResponder {
6139 pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6143 let _result = self.send_raw(result);
6144 if _result.is_err() {
6145 self.control_handle.shutdown();
6146 }
6147 self.drop_without_shutdown();
6148 _result
6149 }
6150
6151 pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6153 let _result = self.send_raw(result);
6154 self.drop_without_shutdown();
6155 _result
6156 }
6157
6158 fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6159 self.control_handle
6160 .inner
6161 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
6162 result,
6163 self.tx_id,
6164 0x7fff4b8c733c7151,
6165 fidl::encoding::DynamicFlags::empty(),
6166 )
6167 }
6168}
6169
6170#[must_use = "FIDL methods require a response to be sent"]
6171#[derive(Debug)]
6172pub struct RepositoryManagerRemoveResponder {
6173 control_handle: std::mem::ManuallyDrop<RepositoryManagerControlHandle>,
6174 tx_id: u32,
6175}
6176
6177impl std::ops::Drop for RepositoryManagerRemoveResponder {
6181 fn drop(&mut self) {
6182 self.control_handle.shutdown();
6183 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6185 }
6186}
6187
6188impl fdomain_client::fidl::Responder for RepositoryManagerRemoveResponder {
6189 type ControlHandle = RepositoryManagerControlHandle;
6190
6191 fn control_handle(&self) -> &RepositoryManagerControlHandle {
6192 &self.control_handle
6193 }
6194
6195 fn drop_without_shutdown(mut self) {
6196 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6198 std::mem::forget(self);
6200 }
6201}
6202
6203impl RepositoryManagerRemoveResponder {
6204 pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6208 let _result = self.send_raw(result);
6209 if _result.is_err() {
6210 self.control_handle.shutdown();
6211 }
6212 self.drop_without_shutdown();
6213 _result
6214 }
6215
6216 pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6218 let _result = self.send_raw(result);
6219 self.drop_without_shutdown();
6220 _result
6221 }
6222
6223 fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6224 self.control_handle
6225 .inner
6226 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
6227 result,
6228 self.tx_id,
6229 0x5de23dc0e0dea4ba,
6230 fidl::encoding::DynamicFlags::empty(),
6231 )
6232 }
6233}
6234
6235#[must_use = "FIDL methods require a response to be sent"]
6236#[derive(Debug)]
6237pub struct RepositoryManagerAddMirrorResponder {
6238 control_handle: std::mem::ManuallyDrop<RepositoryManagerControlHandle>,
6239 tx_id: u32,
6240}
6241
6242impl std::ops::Drop for RepositoryManagerAddMirrorResponder {
6246 fn drop(&mut self) {
6247 self.control_handle.shutdown();
6248 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6250 }
6251}
6252
6253impl fdomain_client::fidl::Responder for RepositoryManagerAddMirrorResponder {
6254 type ControlHandle = RepositoryManagerControlHandle;
6255
6256 fn control_handle(&self) -> &RepositoryManagerControlHandle {
6257 &self.control_handle
6258 }
6259
6260 fn drop_without_shutdown(mut self) {
6261 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6263 std::mem::forget(self);
6265 }
6266}
6267
6268impl RepositoryManagerAddMirrorResponder {
6269 pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6273 let _result = self.send_raw(result);
6274 if _result.is_err() {
6275 self.control_handle.shutdown();
6276 }
6277 self.drop_without_shutdown();
6278 _result
6279 }
6280
6281 pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6283 let _result = self.send_raw(result);
6284 self.drop_without_shutdown();
6285 _result
6286 }
6287
6288 fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6289 self.control_handle
6290 .inner
6291 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
6292 result,
6293 self.tx_id,
6294 0x3b7ef213730dd24c,
6295 fidl::encoding::DynamicFlags::empty(),
6296 )
6297 }
6298}
6299
6300#[must_use = "FIDL methods require a response to be sent"]
6301#[derive(Debug)]
6302pub struct RepositoryManagerRemoveMirrorResponder {
6303 control_handle: std::mem::ManuallyDrop<RepositoryManagerControlHandle>,
6304 tx_id: u32,
6305}
6306
6307impl std::ops::Drop for RepositoryManagerRemoveMirrorResponder {
6311 fn drop(&mut self) {
6312 self.control_handle.shutdown();
6313 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6315 }
6316}
6317
6318impl fdomain_client::fidl::Responder for RepositoryManagerRemoveMirrorResponder {
6319 type ControlHandle = RepositoryManagerControlHandle;
6320
6321 fn control_handle(&self) -> &RepositoryManagerControlHandle {
6322 &self.control_handle
6323 }
6324
6325 fn drop_without_shutdown(mut self) {
6326 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6328 std::mem::forget(self);
6330 }
6331}
6332
6333impl RepositoryManagerRemoveMirrorResponder {
6334 pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6338 let _result = self.send_raw(result);
6339 if _result.is_err() {
6340 self.control_handle.shutdown();
6341 }
6342 self.drop_without_shutdown();
6343 _result
6344 }
6345
6346 pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6348 let _result = self.send_raw(result);
6349 self.drop_without_shutdown();
6350 _result
6351 }
6352
6353 fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6354 self.control_handle
6355 .inner
6356 .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
6357 result,
6358 self.tx_id,
6359 0x4682584cc47c23a2,
6360 fidl::encoding::DynamicFlags::empty(),
6361 )
6362 }
6363}
6364
6365#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
6366pub struct RetainedBlobsMarker;
6367
6368impl fdomain_client::fidl::ProtocolMarker for RetainedBlobsMarker {
6369 type Proxy = RetainedBlobsProxy;
6370 type RequestStream = RetainedBlobsRequestStream;
6371
6372 const DEBUG_NAME: &'static str = "fuchsia.pkg.RetainedBlobs";
6373}
6374impl fdomain_client::fidl::DiscoverableProtocolMarker for RetainedBlobsMarker {}
6375
6376pub trait RetainedBlobsProxyInterface: Send + Sync {
6377 type ClearResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6378 fn r#clear(&self) -> Self::ClearResponseFut;
6379 type ReplaceResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6380 fn r#replace(
6381 &self,
6382 iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6383 ) -> Self::ReplaceResponseFut;
6384}
6385
6386#[derive(Debug, Clone)]
6387pub struct RetainedBlobsProxy {
6388 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
6389}
6390
6391impl fdomain_client::fidl::Proxy for RetainedBlobsProxy {
6392 type Protocol = RetainedBlobsMarker;
6393
6394 fn from_channel(inner: fdomain_client::Channel) -> Self {
6395 Self::new(inner)
6396 }
6397
6398 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
6399 self.client.into_channel().map_err(|client| Self { client })
6400 }
6401
6402 fn as_channel(&self) -> &fdomain_client::Channel {
6403 self.client.as_channel()
6404 }
6405}
6406
6407impl RetainedBlobsProxy {
6408 pub fn new(channel: fdomain_client::Channel) -> Self {
6410 let protocol_name =
6411 <RetainedBlobsMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
6412 Self { client: fidl::client::Client::new(channel, protocol_name) }
6413 }
6414
6415 pub fn take_event_stream(&self) -> RetainedBlobsEventStream {
6421 RetainedBlobsEventStream { event_receiver: self.client.take_event_receiver() }
6422 }
6423
6424 pub fn r#clear(
6427 &self,
6428 ) -> fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect> {
6429 RetainedBlobsProxyInterface::r#clear(self)
6430 }
6431
6432 pub fn r#replace(
6439 &self,
6440 mut iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6441 ) -> fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect> {
6442 RetainedBlobsProxyInterface::r#replace(self, iterator)
6443 }
6444}
6445
6446impl RetainedBlobsProxyInterface for RetainedBlobsProxy {
6447 type ClearResponseFut =
6448 fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect>;
6449 fn r#clear(&self) -> Self::ClearResponseFut {
6450 fn _decode(
6451 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6452 ) -> Result<(), fidl::Error> {
6453 let _response = fidl::client::decode_transaction_body::<
6454 fidl::encoding::EmptyPayload,
6455 fdomain_client::fidl::FDomainResourceDialect,
6456 0x3005cab30c671164,
6457 >(_buf?)?;
6458 Ok(_response)
6459 }
6460 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
6461 (),
6462 0x3005cab30c671164,
6463 fidl::encoding::DynamicFlags::empty(),
6464 _decode,
6465 )
6466 }
6467
6468 type ReplaceResponseFut =
6469 fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect>;
6470 fn r#replace(
6471 &self,
6472 mut iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6473 ) -> Self::ReplaceResponseFut {
6474 fn _decode(
6475 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6476 ) -> Result<(), fidl::Error> {
6477 let _response = fidl::client::decode_transaction_body::<
6478 fidl::encoding::EmptyPayload,
6479 fdomain_client::fidl::FDomainResourceDialect,
6480 0x2c049d51026cd0b3,
6481 >(_buf?)?;
6482 Ok(_response)
6483 }
6484 self.client.send_query_and_decode::<RetainedBlobsReplaceRequest, ()>(
6485 (iterator,),
6486 0x2c049d51026cd0b3,
6487 fidl::encoding::DynamicFlags::empty(),
6488 _decode,
6489 )
6490 }
6491}
6492
6493pub struct RetainedBlobsEventStream {
6494 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
6495}
6496
6497impl std::marker::Unpin for RetainedBlobsEventStream {}
6498
6499impl futures::stream::FusedStream for RetainedBlobsEventStream {
6500 fn is_terminated(&self) -> bool {
6501 self.event_receiver.is_terminated()
6502 }
6503}
6504
6505impl futures::Stream for RetainedBlobsEventStream {
6506 type Item = Result<RetainedBlobsEvent, fidl::Error>;
6507
6508 fn poll_next(
6509 mut self: std::pin::Pin<&mut Self>,
6510 cx: &mut std::task::Context<'_>,
6511 ) -> std::task::Poll<Option<Self::Item>> {
6512 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
6513 &mut self.event_receiver,
6514 cx
6515 )?) {
6516 Some(buf) => std::task::Poll::Ready(Some(RetainedBlobsEvent::decode(buf))),
6517 None => std::task::Poll::Ready(None),
6518 }
6519 }
6520}
6521
6522#[derive(Debug)]
6523pub enum RetainedBlobsEvent {}
6524
6525impl RetainedBlobsEvent {
6526 fn decode(
6528 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
6529 ) -> Result<RetainedBlobsEvent, fidl::Error> {
6530 let (bytes, _handles) = buf.split_mut();
6531 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6532 debug_assert_eq!(tx_header.tx_id, 0);
6533 match tx_header.ordinal {
6534 _ => Err(fidl::Error::UnknownOrdinal {
6535 ordinal: tx_header.ordinal,
6536 protocol_name:
6537 <RetainedBlobsMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
6538 }),
6539 }
6540 }
6541}
6542
6543pub struct RetainedBlobsRequestStream {
6545 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
6546 is_terminated: bool,
6547}
6548
6549impl std::marker::Unpin for RetainedBlobsRequestStream {}
6550
6551impl futures::stream::FusedStream for RetainedBlobsRequestStream {
6552 fn is_terminated(&self) -> bool {
6553 self.is_terminated
6554 }
6555}
6556
6557impl fdomain_client::fidl::RequestStream for RetainedBlobsRequestStream {
6558 type Protocol = RetainedBlobsMarker;
6559 type ControlHandle = RetainedBlobsControlHandle;
6560
6561 fn from_channel(channel: fdomain_client::Channel) -> Self {
6562 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
6563 }
6564
6565 fn control_handle(&self) -> Self::ControlHandle {
6566 RetainedBlobsControlHandle { inner: self.inner.clone() }
6567 }
6568
6569 fn into_inner(
6570 self,
6571 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
6572 {
6573 (self.inner, self.is_terminated)
6574 }
6575
6576 fn from_inner(
6577 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
6578 is_terminated: bool,
6579 ) -> Self {
6580 Self { inner, is_terminated }
6581 }
6582}
6583
6584impl futures::Stream for RetainedBlobsRequestStream {
6585 type Item = Result<RetainedBlobsRequest, fidl::Error>;
6586
6587 fn poll_next(
6588 mut self: std::pin::Pin<&mut Self>,
6589 cx: &mut std::task::Context<'_>,
6590 ) -> std::task::Poll<Option<Self::Item>> {
6591 let this = &mut *self;
6592 if this.inner.check_shutdown(cx) {
6593 this.is_terminated = true;
6594 return std::task::Poll::Ready(None);
6595 }
6596 if this.is_terminated {
6597 panic!("polled RetainedBlobsRequestStream after completion");
6598 }
6599 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
6600 |bytes, handles| {
6601 match this.inner.channel().read_etc(cx, bytes, handles) {
6602 std::task::Poll::Ready(Ok(())) => {}
6603 std::task::Poll::Pending => return std::task::Poll::Pending,
6604 std::task::Poll::Ready(Err(None)) => {
6605 this.is_terminated = true;
6606 return std::task::Poll::Ready(None);
6607 }
6608 std::task::Poll::Ready(Err(Some(e))) => {
6609 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
6610 e.into(),
6611 ))));
6612 }
6613 }
6614
6615 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6617
6618 std::task::Poll::Ready(Some(match header.ordinal {
6619 0x3005cab30c671164 => {
6620 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6621 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fdomain_client::fidl::FDomainResourceDialect);
6622 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6623 let control_handle = RetainedBlobsControlHandle {
6624 inner: this.inner.clone(),
6625 };
6626 Ok(RetainedBlobsRequest::Clear {
6627 responder: RetainedBlobsClearResponder {
6628 control_handle: std::mem::ManuallyDrop::new(control_handle),
6629 tx_id: header.tx_id,
6630 },
6631 })
6632 }
6633 0x2c049d51026cd0b3 => {
6634 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6635 let mut req = fidl::new_empty!(RetainedBlobsReplaceRequest, fdomain_client::fidl::FDomainResourceDialect);
6636 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<RetainedBlobsReplaceRequest>(&header, _body_bytes, handles, &mut req)?;
6637 let control_handle = RetainedBlobsControlHandle {
6638 inner: this.inner.clone(),
6639 };
6640 Ok(RetainedBlobsRequest::Replace {iterator: req.iterator,
6641
6642 responder: RetainedBlobsReplaceResponder {
6643 control_handle: std::mem::ManuallyDrop::new(control_handle),
6644 tx_id: header.tx_id,
6645 },
6646 })
6647 }
6648 _ => Err(fidl::Error::UnknownOrdinal {
6649 ordinal: header.ordinal,
6650 protocol_name: <RetainedBlobsMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
6651 }),
6652 }))
6653 },
6654 )
6655 }
6656}
6657
6658#[derive(Debug)]
6670pub enum RetainedBlobsRequest {
6671 Clear { responder: RetainedBlobsClearResponder },
6674 Replace {
6681 iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6682 responder: RetainedBlobsReplaceResponder,
6683 },
6684}
6685
6686impl RetainedBlobsRequest {
6687 #[allow(irrefutable_let_patterns)]
6688 pub fn into_clear(self) -> Option<(RetainedBlobsClearResponder)> {
6689 if let RetainedBlobsRequest::Clear { responder } = self { Some((responder)) } else { None }
6690 }
6691
6692 #[allow(irrefutable_let_patterns)]
6693 pub fn into_replace(
6694 self,
6695 ) -> Option<(
6696 fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6697 RetainedBlobsReplaceResponder,
6698 )> {
6699 if let RetainedBlobsRequest::Replace { iterator, responder } = self {
6700 Some((iterator, responder))
6701 } else {
6702 None
6703 }
6704 }
6705
6706 pub fn method_name(&self) -> &'static str {
6708 match *self {
6709 RetainedBlobsRequest::Clear { .. } => "clear",
6710 RetainedBlobsRequest::Replace { .. } => "replace",
6711 }
6712 }
6713}
6714
6715#[derive(Debug, Clone)]
6716pub struct RetainedBlobsControlHandle {
6717 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
6718}
6719
6720impl fdomain_client::fidl::ControlHandle for RetainedBlobsControlHandle {
6721 fn shutdown(&self) {
6722 self.inner.shutdown()
6723 }
6724
6725 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
6726 self.inner.shutdown_with_epitaph(status)
6727 }
6728
6729 fn is_closed(&self) -> bool {
6730 self.inner.channel().is_closed()
6731 }
6732 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
6733 self.inner.channel().on_closed()
6734 }
6735}
6736
6737impl RetainedBlobsControlHandle {}
6738
6739#[must_use = "FIDL methods require a response to be sent"]
6740#[derive(Debug)]
6741pub struct RetainedBlobsClearResponder {
6742 control_handle: std::mem::ManuallyDrop<RetainedBlobsControlHandle>,
6743 tx_id: u32,
6744}
6745
6746impl std::ops::Drop for RetainedBlobsClearResponder {
6750 fn drop(&mut self) {
6751 self.control_handle.shutdown();
6752 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6754 }
6755}
6756
6757impl fdomain_client::fidl::Responder for RetainedBlobsClearResponder {
6758 type ControlHandle = RetainedBlobsControlHandle;
6759
6760 fn control_handle(&self) -> &RetainedBlobsControlHandle {
6761 &self.control_handle
6762 }
6763
6764 fn drop_without_shutdown(mut self) {
6765 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6767 std::mem::forget(self);
6769 }
6770}
6771
6772impl RetainedBlobsClearResponder {
6773 pub fn send(self) -> Result<(), fidl::Error> {
6777 let _result = self.send_raw();
6778 if _result.is_err() {
6779 self.control_handle.shutdown();
6780 }
6781 self.drop_without_shutdown();
6782 _result
6783 }
6784
6785 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
6787 let _result = self.send_raw();
6788 self.drop_without_shutdown();
6789 _result
6790 }
6791
6792 fn send_raw(&self) -> Result<(), fidl::Error> {
6793 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
6794 (),
6795 self.tx_id,
6796 0x3005cab30c671164,
6797 fidl::encoding::DynamicFlags::empty(),
6798 )
6799 }
6800}
6801
6802#[must_use = "FIDL methods require a response to be sent"]
6803#[derive(Debug)]
6804pub struct RetainedBlobsReplaceResponder {
6805 control_handle: std::mem::ManuallyDrop<RetainedBlobsControlHandle>,
6806 tx_id: u32,
6807}
6808
6809impl std::ops::Drop for RetainedBlobsReplaceResponder {
6813 fn drop(&mut self) {
6814 self.control_handle.shutdown();
6815 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6817 }
6818}
6819
6820impl fdomain_client::fidl::Responder for RetainedBlobsReplaceResponder {
6821 type ControlHandle = RetainedBlobsControlHandle;
6822
6823 fn control_handle(&self) -> &RetainedBlobsControlHandle {
6824 &self.control_handle
6825 }
6826
6827 fn drop_without_shutdown(mut self) {
6828 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6830 std::mem::forget(self);
6832 }
6833}
6834
6835impl RetainedBlobsReplaceResponder {
6836 pub fn send(self) -> Result<(), fidl::Error> {
6840 let _result = self.send_raw();
6841 if _result.is_err() {
6842 self.control_handle.shutdown();
6843 }
6844 self.drop_without_shutdown();
6845 _result
6846 }
6847
6848 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
6850 let _result = self.send_raw();
6851 self.drop_without_shutdown();
6852 _result
6853 }
6854
6855 fn send_raw(&self) -> Result<(), fidl::Error> {
6856 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
6857 (),
6858 self.tx_id,
6859 0x2c049d51026cd0b3,
6860 fidl::encoding::DynamicFlags::empty(),
6861 )
6862 }
6863}
6864
6865#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
6866pub struct RetainedPackagesMarker;
6867
6868impl fdomain_client::fidl::ProtocolMarker for RetainedPackagesMarker {
6869 type Proxy = RetainedPackagesProxy;
6870 type RequestStream = RetainedPackagesRequestStream;
6871
6872 const DEBUG_NAME: &'static str = "fuchsia.pkg.RetainedPackages";
6873}
6874impl fdomain_client::fidl::DiscoverableProtocolMarker for RetainedPackagesMarker {}
6875
6876pub trait RetainedPackagesProxyInterface: Send + Sync {
6877 type ClearResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6878 fn r#clear(&self) -> Self::ClearResponseFut;
6879 type ReplaceResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6880 fn r#replace(
6881 &self,
6882 iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6883 ) -> Self::ReplaceResponseFut;
6884}
6885
6886#[derive(Debug, Clone)]
6887pub struct RetainedPackagesProxy {
6888 client: fidl::client::Client<fdomain_client::fidl::FDomainResourceDialect>,
6889}
6890
6891impl fdomain_client::fidl::Proxy for RetainedPackagesProxy {
6892 type Protocol = RetainedPackagesMarker;
6893
6894 fn from_channel(inner: fdomain_client::Channel) -> Self {
6895 Self::new(inner)
6896 }
6897
6898 fn into_channel(self) -> Result<fdomain_client::Channel, Self> {
6899 self.client.into_channel().map_err(|client| Self { client })
6900 }
6901
6902 fn as_channel(&self) -> &fdomain_client::Channel {
6903 self.client.as_channel()
6904 }
6905}
6906
6907impl RetainedPackagesProxy {
6908 pub fn new(channel: fdomain_client::Channel) -> Self {
6910 let protocol_name =
6911 <RetainedPackagesMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME;
6912 Self { client: fidl::client::Client::new(channel, protocol_name) }
6913 }
6914
6915 pub fn take_event_stream(&self) -> RetainedPackagesEventStream {
6921 RetainedPackagesEventStream { event_receiver: self.client.take_event_receiver() }
6922 }
6923
6924 pub fn r#clear(
6927 &self,
6928 ) -> fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect> {
6929 RetainedPackagesProxyInterface::r#clear(self)
6930 }
6931
6932 pub fn r#replace(
6940 &self,
6941 mut iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6942 ) -> fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect> {
6943 RetainedPackagesProxyInterface::r#replace(self, iterator)
6944 }
6945}
6946
6947impl RetainedPackagesProxyInterface for RetainedPackagesProxy {
6948 type ClearResponseFut =
6949 fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect>;
6950 fn r#clear(&self) -> Self::ClearResponseFut {
6951 fn _decode(
6952 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6953 ) -> Result<(), fidl::Error> {
6954 let _response = fidl::client::decode_transaction_body::<
6955 fidl::encoding::EmptyPayload,
6956 fdomain_client::fidl::FDomainResourceDialect,
6957 0x7f17476f097961ac,
6958 >(_buf?)?;
6959 Ok(_response)
6960 }
6961 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
6962 (),
6963 0x7f17476f097961ac,
6964 fidl::encoding::DynamicFlags::empty(),
6965 _decode,
6966 )
6967 }
6968
6969 type ReplaceResponseFut =
6970 fidl::client::QueryResponseFut<(), fdomain_client::fidl::FDomainResourceDialect>;
6971 fn r#replace(
6972 &self,
6973 mut iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
6974 ) -> Self::ReplaceResponseFut {
6975 fn _decode(
6976 mut _buf: Result<<fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6977 ) -> Result<(), fidl::Error> {
6978 let _response = fidl::client::decode_transaction_body::<
6979 fidl::encoding::EmptyPayload,
6980 fdomain_client::fidl::FDomainResourceDialect,
6981 0x5021e479570f3a9f,
6982 >(_buf?)?;
6983 Ok(_response)
6984 }
6985 self.client.send_query_and_decode::<RetainedPackagesReplaceRequest, ()>(
6986 (iterator,),
6987 0x5021e479570f3a9f,
6988 fidl::encoding::DynamicFlags::empty(),
6989 _decode,
6990 )
6991 }
6992}
6993
6994pub struct RetainedPackagesEventStream {
6995 event_receiver: fidl::client::EventReceiver<fdomain_client::fidl::FDomainResourceDialect>,
6996}
6997
6998impl std::marker::Unpin for RetainedPackagesEventStream {}
6999
7000impl futures::stream::FusedStream for RetainedPackagesEventStream {
7001 fn is_terminated(&self) -> bool {
7002 self.event_receiver.is_terminated()
7003 }
7004}
7005
7006impl futures::Stream for RetainedPackagesEventStream {
7007 type Item = Result<RetainedPackagesEvent, fidl::Error>;
7008
7009 fn poll_next(
7010 mut self: std::pin::Pin<&mut Self>,
7011 cx: &mut std::task::Context<'_>,
7012 ) -> std::task::Poll<Option<Self::Item>> {
7013 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
7014 &mut self.event_receiver,
7015 cx
7016 )?) {
7017 Some(buf) => std::task::Poll::Ready(Some(RetainedPackagesEvent::decode(buf))),
7018 None => std::task::Poll::Ready(None),
7019 }
7020 }
7021}
7022
7023#[derive(Debug)]
7024pub enum RetainedPackagesEvent {}
7025
7026impl RetainedPackagesEvent {
7027 fn decode(
7029 mut buf: <fdomain_client::fidl::FDomainResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
7030 ) -> Result<RetainedPackagesEvent, fidl::Error> {
7031 let (bytes, _handles) = buf.split_mut();
7032 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
7033 debug_assert_eq!(tx_header.tx_id, 0);
7034 match tx_header.ordinal {
7035 _ => Err(fidl::Error::UnknownOrdinal {
7036 ordinal: tx_header.ordinal,
7037 protocol_name:
7038 <RetainedPackagesMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
7039 }),
7040 }
7041 }
7042}
7043
7044pub struct RetainedPackagesRequestStream {
7046 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
7047 is_terminated: bool,
7048}
7049
7050impl std::marker::Unpin for RetainedPackagesRequestStream {}
7051
7052impl futures::stream::FusedStream for RetainedPackagesRequestStream {
7053 fn is_terminated(&self) -> bool {
7054 self.is_terminated
7055 }
7056}
7057
7058impl fdomain_client::fidl::RequestStream for RetainedPackagesRequestStream {
7059 type Protocol = RetainedPackagesMarker;
7060 type ControlHandle = RetainedPackagesControlHandle;
7061
7062 fn from_channel(channel: fdomain_client::Channel) -> Self {
7063 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
7064 }
7065
7066 fn control_handle(&self) -> Self::ControlHandle {
7067 RetainedPackagesControlHandle { inner: self.inner.clone() }
7068 }
7069
7070 fn into_inner(
7071 self,
7072 ) -> (::std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>, bool)
7073 {
7074 (self.inner, self.is_terminated)
7075 }
7076
7077 fn from_inner(
7078 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
7079 is_terminated: bool,
7080 ) -> Self {
7081 Self { inner, is_terminated }
7082 }
7083}
7084
7085impl futures::Stream for RetainedPackagesRequestStream {
7086 type Item = Result<RetainedPackagesRequest, fidl::Error>;
7087
7088 fn poll_next(
7089 mut self: std::pin::Pin<&mut Self>,
7090 cx: &mut std::task::Context<'_>,
7091 ) -> std::task::Poll<Option<Self::Item>> {
7092 let this = &mut *self;
7093 if this.inner.check_shutdown(cx) {
7094 this.is_terminated = true;
7095 return std::task::Poll::Ready(None);
7096 }
7097 if this.is_terminated {
7098 panic!("polled RetainedPackagesRequestStream after completion");
7099 }
7100 fidl::encoding::with_tls_decode_buf::<_, fdomain_client::fidl::FDomainResourceDialect>(
7101 |bytes, handles| {
7102 match this.inner.channel().read_etc(cx, bytes, handles) {
7103 std::task::Poll::Ready(Ok(())) => {}
7104 std::task::Poll::Pending => return std::task::Poll::Pending,
7105 std::task::Poll::Ready(Err(None)) => {
7106 this.is_terminated = true;
7107 return std::task::Poll::Ready(None);
7108 }
7109 std::task::Poll::Ready(Err(Some(e))) => {
7110 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
7111 e.into(),
7112 ))));
7113 }
7114 }
7115
7116 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
7118
7119 std::task::Poll::Ready(Some(match header.ordinal {
7120 0x7f17476f097961ac => {
7121 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7122 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fdomain_client::fidl::FDomainResourceDialect);
7123 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
7124 let control_handle = RetainedPackagesControlHandle {
7125 inner: this.inner.clone(),
7126 };
7127 Ok(RetainedPackagesRequest::Clear {
7128 responder: RetainedPackagesClearResponder {
7129 control_handle: std::mem::ManuallyDrop::new(control_handle),
7130 tx_id: header.tx_id,
7131 },
7132 })
7133 }
7134 0x5021e479570f3a9f => {
7135 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7136 let mut req = fidl::new_empty!(RetainedPackagesReplaceRequest, fdomain_client::fidl::FDomainResourceDialect);
7137 fidl::encoding::Decoder::<fdomain_client::fidl::FDomainResourceDialect>::decode_into::<RetainedPackagesReplaceRequest>(&header, _body_bytes, handles, &mut req)?;
7138 let control_handle = RetainedPackagesControlHandle {
7139 inner: this.inner.clone(),
7140 };
7141 Ok(RetainedPackagesRequest::Replace {iterator: req.iterator,
7142
7143 responder: RetainedPackagesReplaceResponder {
7144 control_handle: std::mem::ManuallyDrop::new(control_handle),
7145 tx_id: header.tx_id,
7146 },
7147 })
7148 }
7149 _ => Err(fidl::Error::UnknownOrdinal {
7150 ordinal: header.ordinal,
7151 protocol_name: <RetainedPackagesMarker as fdomain_client::fidl::ProtocolMarker>::DEBUG_NAME,
7152 }),
7153 }))
7154 },
7155 )
7156 }
7157}
7158
7159#[derive(Debug)]
7171pub enum RetainedPackagesRequest {
7172 Clear { responder: RetainedPackagesClearResponder },
7175 Replace {
7183 iterator: fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
7184 responder: RetainedPackagesReplaceResponder,
7185 },
7186}
7187
7188impl RetainedPackagesRequest {
7189 #[allow(irrefutable_let_patterns)]
7190 pub fn into_clear(self) -> Option<(RetainedPackagesClearResponder)> {
7191 if let RetainedPackagesRequest::Clear { responder } = self {
7192 Some((responder))
7193 } else {
7194 None
7195 }
7196 }
7197
7198 #[allow(irrefutable_let_patterns)]
7199 pub fn into_replace(
7200 self,
7201 ) -> Option<(
7202 fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>,
7203 RetainedPackagesReplaceResponder,
7204 )> {
7205 if let RetainedPackagesRequest::Replace { iterator, responder } = self {
7206 Some((iterator, responder))
7207 } else {
7208 None
7209 }
7210 }
7211
7212 pub fn method_name(&self) -> &'static str {
7214 match *self {
7215 RetainedPackagesRequest::Clear { .. } => "clear",
7216 RetainedPackagesRequest::Replace { .. } => "replace",
7217 }
7218 }
7219}
7220
7221#[derive(Debug, Clone)]
7222pub struct RetainedPackagesControlHandle {
7223 inner: std::sync::Arc<fidl::ServeInner<fdomain_client::fidl::FDomainResourceDialect>>,
7224}
7225
7226impl fdomain_client::fidl::ControlHandle for RetainedPackagesControlHandle {
7227 fn shutdown(&self) {
7228 self.inner.shutdown()
7229 }
7230
7231 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
7232 self.inner.shutdown_with_epitaph(status)
7233 }
7234
7235 fn is_closed(&self) -> bool {
7236 self.inner.channel().is_closed()
7237 }
7238 fn on_closed(&self) -> fdomain_client::OnFDomainSignals {
7239 self.inner.channel().on_closed()
7240 }
7241}
7242
7243impl RetainedPackagesControlHandle {}
7244
7245#[must_use = "FIDL methods require a response to be sent"]
7246#[derive(Debug)]
7247pub struct RetainedPackagesClearResponder {
7248 control_handle: std::mem::ManuallyDrop<RetainedPackagesControlHandle>,
7249 tx_id: u32,
7250}
7251
7252impl std::ops::Drop for RetainedPackagesClearResponder {
7256 fn drop(&mut self) {
7257 self.control_handle.shutdown();
7258 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7260 }
7261}
7262
7263impl fdomain_client::fidl::Responder for RetainedPackagesClearResponder {
7264 type ControlHandle = RetainedPackagesControlHandle;
7265
7266 fn control_handle(&self) -> &RetainedPackagesControlHandle {
7267 &self.control_handle
7268 }
7269
7270 fn drop_without_shutdown(mut self) {
7271 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7273 std::mem::forget(self);
7275 }
7276}
7277
7278impl RetainedPackagesClearResponder {
7279 pub fn send(self) -> Result<(), fidl::Error> {
7283 let _result = self.send_raw();
7284 if _result.is_err() {
7285 self.control_handle.shutdown();
7286 }
7287 self.drop_without_shutdown();
7288 _result
7289 }
7290
7291 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
7293 let _result = self.send_raw();
7294 self.drop_without_shutdown();
7295 _result
7296 }
7297
7298 fn send_raw(&self) -> Result<(), fidl::Error> {
7299 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
7300 (),
7301 self.tx_id,
7302 0x7f17476f097961ac,
7303 fidl::encoding::DynamicFlags::empty(),
7304 )
7305 }
7306}
7307
7308#[must_use = "FIDL methods require a response to be sent"]
7309#[derive(Debug)]
7310pub struct RetainedPackagesReplaceResponder {
7311 control_handle: std::mem::ManuallyDrop<RetainedPackagesControlHandle>,
7312 tx_id: u32,
7313}
7314
7315impl std::ops::Drop for RetainedPackagesReplaceResponder {
7319 fn drop(&mut self) {
7320 self.control_handle.shutdown();
7321 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7323 }
7324}
7325
7326impl fdomain_client::fidl::Responder for RetainedPackagesReplaceResponder {
7327 type ControlHandle = RetainedPackagesControlHandle;
7328
7329 fn control_handle(&self) -> &RetainedPackagesControlHandle {
7330 &self.control_handle
7331 }
7332
7333 fn drop_without_shutdown(mut self) {
7334 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7336 std::mem::forget(self);
7338 }
7339}
7340
7341impl RetainedPackagesReplaceResponder {
7342 pub fn send(self) -> Result<(), fidl::Error> {
7346 let _result = self.send_raw();
7347 if _result.is_err() {
7348 self.control_handle.shutdown();
7349 }
7350 self.drop_without_shutdown();
7351 _result
7352 }
7353
7354 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
7356 let _result = self.send_raw();
7357 self.drop_without_shutdown();
7358 _result
7359 }
7360
7361 fn send_raw(&self) -> Result<(), fidl::Error> {
7362 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
7363 (),
7364 self.tx_id,
7365 0x5021e479570f3a9f,
7366 fidl::encoding::DynamicFlags::empty(),
7367 )
7368 }
7369}
7370
7371mod internal {
7372 use super::*;
7373
7374 impl fidl::encoding::ResourceTypeMarker for FontResolverResolveRequest {
7375 type Borrowed<'a> = &'a mut Self;
7376 fn take_or_borrow<'a>(
7377 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7378 ) -> Self::Borrowed<'a> {
7379 value
7380 }
7381 }
7382
7383 unsafe impl fidl::encoding::TypeMarker for FontResolverResolveRequest {
7384 type Owned = Self;
7385
7386 #[inline(always)]
7387 fn inline_align(_context: fidl::encoding::Context) -> usize {
7388 8
7389 }
7390
7391 #[inline(always)]
7392 fn inline_size(_context: fidl::encoding::Context) -> usize {
7393 24
7394 }
7395 }
7396
7397 unsafe impl
7398 fidl::encoding::Encode<
7399 FontResolverResolveRequest,
7400 fdomain_client::fidl::FDomainResourceDialect,
7401 > for &mut FontResolverResolveRequest
7402 {
7403 #[inline]
7404 unsafe fn encode(
7405 self,
7406 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7407 offset: usize,
7408 _depth: fidl::encoding::Depth,
7409 ) -> fidl::Result<()> {
7410 encoder.debug_check_bounds::<FontResolverResolveRequest>(offset);
7411 fidl::encoding::Encode::<
7413 FontResolverResolveRequest,
7414 fdomain_client::fidl::FDomainResourceDialect,
7415 >::encode(
7416 (
7417 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
7418 &self.package_url,
7419 ),
7420 <fidl::encoding::Endpoint<
7421 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
7422 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7423 &mut self.directory_request,
7424 ),
7425 ),
7426 encoder,
7427 offset,
7428 _depth,
7429 )
7430 }
7431 }
7432 unsafe impl<
7433 T0: fidl::encoding::Encode<
7434 fidl::encoding::UnboundedString,
7435 fdomain_client::fidl::FDomainResourceDialect,
7436 >,
7437 T1: fidl::encoding::Encode<
7438 fidl::encoding::Endpoint<
7439 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
7440 >,
7441 fdomain_client::fidl::FDomainResourceDialect,
7442 >,
7443 >
7444 fidl::encoding::Encode<
7445 FontResolverResolveRequest,
7446 fdomain_client::fidl::FDomainResourceDialect,
7447 > for (T0, T1)
7448 {
7449 #[inline]
7450 unsafe fn encode(
7451 self,
7452 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7453 offset: usize,
7454 depth: fidl::encoding::Depth,
7455 ) -> fidl::Result<()> {
7456 encoder.debug_check_bounds::<FontResolverResolveRequest>(offset);
7457 unsafe {
7460 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7461 (ptr as *mut u64).write_unaligned(0);
7462 }
7463 self.0.encode(encoder, offset + 0, depth)?;
7465 self.1.encode(encoder, offset + 16, depth)?;
7466 Ok(())
7467 }
7468 }
7469
7470 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
7471 for FontResolverResolveRequest
7472 {
7473 #[inline(always)]
7474 fn new_empty() -> Self {
7475 Self {
7476 package_url: fidl::new_empty!(
7477 fidl::encoding::UnboundedString,
7478 fdomain_client::fidl::FDomainResourceDialect
7479 ),
7480 directory_request: fidl::new_empty!(
7481 fidl::encoding::Endpoint<
7482 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
7483 >,
7484 fdomain_client::fidl::FDomainResourceDialect
7485 ),
7486 }
7487 }
7488
7489 #[inline]
7490 unsafe fn decode(
7491 &mut self,
7492 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7493 offset: usize,
7494 _depth: fidl::encoding::Depth,
7495 ) -> fidl::Result<()> {
7496 decoder.debug_check_bounds::<Self>(offset);
7497 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7499 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7500 let mask = 0xffffffff00000000u64;
7501 let maskedval = padval & mask;
7502 if maskedval != 0 {
7503 return Err(fidl::Error::NonZeroPadding {
7504 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7505 });
7506 }
7507 fidl::decode!(
7508 fidl::encoding::UnboundedString,
7509 fdomain_client::fidl::FDomainResourceDialect,
7510 &mut self.package_url,
7511 decoder,
7512 offset + 0,
7513 _depth
7514 )?;
7515 fidl::decode!(
7516 fidl::encoding::Endpoint<
7517 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
7518 >,
7519 fdomain_client::fidl::FDomainResourceDialect,
7520 &mut self.directory_request,
7521 decoder,
7522 offset + 16,
7523 _depth
7524 )?;
7525 Ok(())
7526 }
7527 }
7528
7529 impl fidl::encoding::ResourceTypeMarker for NeededBlobsGetMissingBlobsRequest {
7530 type Borrowed<'a> = &'a mut Self;
7531 fn take_or_borrow<'a>(
7532 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7533 ) -> Self::Borrowed<'a> {
7534 value
7535 }
7536 }
7537
7538 unsafe impl fidl::encoding::TypeMarker for NeededBlobsGetMissingBlobsRequest {
7539 type Owned = Self;
7540
7541 #[inline(always)]
7542 fn inline_align(_context: fidl::encoding::Context) -> usize {
7543 4
7544 }
7545
7546 #[inline(always)]
7547 fn inline_size(_context: fidl::encoding::Context) -> usize {
7548 4
7549 }
7550 }
7551
7552 unsafe impl
7553 fidl::encoding::Encode<
7554 NeededBlobsGetMissingBlobsRequest,
7555 fdomain_client::fidl::FDomainResourceDialect,
7556 > for &mut NeededBlobsGetMissingBlobsRequest
7557 {
7558 #[inline]
7559 unsafe fn encode(
7560 self,
7561 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7562 offset: usize,
7563 _depth: fidl::encoding::Depth,
7564 ) -> fidl::Result<()> {
7565 encoder.debug_check_bounds::<NeededBlobsGetMissingBlobsRequest>(offset);
7566 fidl::encoding::Encode::<
7568 NeededBlobsGetMissingBlobsRequest,
7569 fdomain_client::fidl::FDomainResourceDialect,
7570 >::encode(
7571 (
7572 <fidl::encoding::Endpoint<
7573 fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>,
7574 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7575 &mut self.iterator
7576 ),
7577 ),
7578 encoder,
7579 offset,
7580 _depth,
7581 )
7582 }
7583 }
7584 unsafe impl<
7585 T0: fidl::encoding::Encode<
7586 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>>,
7587 fdomain_client::fidl::FDomainResourceDialect,
7588 >,
7589 >
7590 fidl::encoding::Encode<
7591 NeededBlobsGetMissingBlobsRequest,
7592 fdomain_client::fidl::FDomainResourceDialect,
7593 > for (T0,)
7594 {
7595 #[inline]
7596 unsafe fn encode(
7597 self,
7598 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7599 offset: usize,
7600 depth: fidl::encoding::Depth,
7601 ) -> fidl::Result<()> {
7602 encoder.debug_check_bounds::<NeededBlobsGetMissingBlobsRequest>(offset);
7603 self.0.encode(encoder, offset + 0, depth)?;
7607 Ok(())
7608 }
7609 }
7610
7611 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
7612 for NeededBlobsGetMissingBlobsRequest
7613 {
7614 #[inline(always)]
7615 fn new_empty() -> Self {
7616 Self {
7617 iterator: fidl::new_empty!(
7618 fidl::encoding::Endpoint<
7619 fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>,
7620 >,
7621 fdomain_client::fidl::FDomainResourceDialect
7622 ),
7623 }
7624 }
7625
7626 #[inline]
7627 unsafe fn decode(
7628 &mut self,
7629 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7630 offset: usize,
7631 _depth: fidl::encoding::Depth,
7632 ) -> fidl::Result<()> {
7633 decoder.debug_check_bounds::<Self>(offset);
7634 fidl::decode!(
7636 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<BlobInfoIteratorMarker>>,
7637 fdomain_client::fidl::FDomainResourceDialect,
7638 &mut self.iterator,
7639 decoder,
7640 offset + 0,
7641 _depth
7642 )?;
7643 Ok(())
7644 }
7645 }
7646
7647 impl fidl::encoding::ResourceTypeMarker for NeededBlobsOpenBlobResponse {
7648 type Borrowed<'a> = &'a mut Self;
7649 fn take_or_borrow<'a>(
7650 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7651 ) -> Self::Borrowed<'a> {
7652 value
7653 }
7654 }
7655
7656 unsafe impl fidl::encoding::TypeMarker for NeededBlobsOpenBlobResponse {
7657 type Owned = Self;
7658
7659 #[inline(always)]
7660 fn inline_align(_context: fidl::encoding::Context) -> usize {
7661 4
7662 }
7663
7664 #[inline(always)]
7665 fn inline_size(_context: fidl::encoding::Context) -> usize {
7666 4
7667 }
7668 }
7669
7670 unsafe impl
7671 fidl::encoding::Encode<
7672 NeededBlobsOpenBlobResponse,
7673 fdomain_client::fidl::FDomainResourceDialect,
7674 > for &mut NeededBlobsOpenBlobResponse
7675 {
7676 #[inline]
7677 unsafe fn encode(
7678 self,
7679 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7680 offset: usize,
7681 _depth: fidl::encoding::Depth,
7682 ) -> fidl::Result<()> {
7683 encoder.debug_check_bounds::<NeededBlobsOpenBlobResponse>(offset);
7684 fidl::encoding::Encode::<
7686 NeededBlobsOpenBlobResponse,
7687 fdomain_client::fidl::FDomainResourceDialect,
7688 >::encode(
7689 (<fidl::encoding::Optional<
7690 fidl::encoding::Endpoint<
7691 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7692 >,
7693 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7694 &mut self.writer
7695 ),),
7696 encoder,
7697 offset,
7698 _depth,
7699 )
7700 }
7701 }
7702 unsafe impl<
7703 T0: fidl::encoding::Encode<
7704 fidl::encoding::Optional<
7705 fidl::encoding::Endpoint<
7706 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7707 >,
7708 >,
7709 fdomain_client::fidl::FDomainResourceDialect,
7710 >,
7711 >
7712 fidl::encoding::Encode<
7713 NeededBlobsOpenBlobResponse,
7714 fdomain_client::fidl::FDomainResourceDialect,
7715 > for (T0,)
7716 {
7717 #[inline]
7718 unsafe fn encode(
7719 self,
7720 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7721 offset: usize,
7722 depth: fidl::encoding::Depth,
7723 ) -> fidl::Result<()> {
7724 encoder.debug_check_bounds::<NeededBlobsOpenBlobResponse>(offset);
7725 self.0.encode(encoder, offset + 0, depth)?;
7729 Ok(())
7730 }
7731 }
7732
7733 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
7734 for NeededBlobsOpenBlobResponse
7735 {
7736 #[inline(always)]
7737 fn new_empty() -> Self {
7738 Self {
7739 writer: fidl::new_empty!(
7740 fidl::encoding::Optional<
7741 fidl::encoding::Endpoint<
7742 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7743 >,
7744 >,
7745 fdomain_client::fidl::FDomainResourceDialect
7746 ),
7747 }
7748 }
7749
7750 #[inline]
7751 unsafe fn decode(
7752 &mut self,
7753 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7754 offset: usize,
7755 _depth: fidl::encoding::Depth,
7756 ) -> fidl::Result<()> {
7757 decoder.debug_check_bounds::<Self>(offset);
7758 fidl::decode!(
7760 fidl::encoding::Optional<
7761 fidl::encoding::Endpoint<
7762 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7763 >,
7764 >,
7765 fdomain_client::fidl::FDomainResourceDialect,
7766 &mut self.writer,
7767 decoder,
7768 offset + 0,
7769 _depth
7770 )?;
7771 Ok(())
7772 }
7773 }
7774
7775 impl fidl::encoding::ResourceTypeMarker for NeededBlobsOpenMetaBlobResponse {
7776 type Borrowed<'a> = &'a mut Self;
7777 fn take_or_borrow<'a>(
7778 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7779 ) -> Self::Borrowed<'a> {
7780 value
7781 }
7782 }
7783
7784 unsafe impl fidl::encoding::TypeMarker for NeededBlobsOpenMetaBlobResponse {
7785 type Owned = Self;
7786
7787 #[inline(always)]
7788 fn inline_align(_context: fidl::encoding::Context) -> usize {
7789 4
7790 }
7791
7792 #[inline(always)]
7793 fn inline_size(_context: fidl::encoding::Context) -> usize {
7794 4
7795 }
7796 }
7797
7798 unsafe impl
7799 fidl::encoding::Encode<
7800 NeededBlobsOpenMetaBlobResponse,
7801 fdomain_client::fidl::FDomainResourceDialect,
7802 > for &mut NeededBlobsOpenMetaBlobResponse
7803 {
7804 #[inline]
7805 unsafe fn encode(
7806 self,
7807 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7808 offset: usize,
7809 _depth: fidl::encoding::Depth,
7810 ) -> fidl::Result<()> {
7811 encoder.debug_check_bounds::<NeededBlobsOpenMetaBlobResponse>(offset);
7812 fidl::encoding::Encode::<
7814 NeededBlobsOpenMetaBlobResponse,
7815 fdomain_client::fidl::FDomainResourceDialect,
7816 >::encode(
7817 (<fidl::encoding::Optional<
7818 fidl::encoding::Endpoint<
7819 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7820 >,
7821 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7822 &mut self.writer
7823 ),),
7824 encoder,
7825 offset,
7826 _depth,
7827 )
7828 }
7829 }
7830 unsafe impl<
7831 T0: fidl::encoding::Encode<
7832 fidl::encoding::Optional<
7833 fidl::encoding::Endpoint<
7834 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7835 >,
7836 >,
7837 fdomain_client::fidl::FDomainResourceDialect,
7838 >,
7839 >
7840 fidl::encoding::Encode<
7841 NeededBlobsOpenMetaBlobResponse,
7842 fdomain_client::fidl::FDomainResourceDialect,
7843 > for (T0,)
7844 {
7845 #[inline]
7846 unsafe fn encode(
7847 self,
7848 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7849 offset: usize,
7850 depth: fidl::encoding::Depth,
7851 ) -> fidl::Result<()> {
7852 encoder.debug_check_bounds::<NeededBlobsOpenMetaBlobResponse>(offset);
7853 self.0.encode(encoder, offset + 0, depth)?;
7857 Ok(())
7858 }
7859 }
7860
7861 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
7862 for NeededBlobsOpenMetaBlobResponse
7863 {
7864 #[inline(always)]
7865 fn new_empty() -> Self {
7866 Self {
7867 writer: fidl::new_empty!(
7868 fidl::encoding::Optional<
7869 fidl::encoding::Endpoint<
7870 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7871 >,
7872 >,
7873 fdomain_client::fidl::FDomainResourceDialect
7874 ),
7875 }
7876 }
7877
7878 #[inline]
7879 unsafe fn decode(
7880 &mut self,
7881 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7882 offset: usize,
7883 _depth: fidl::encoding::Depth,
7884 ) -> fidl::Result<()> {
7885 decoder.debug_check_bounds::<Self>(offset);
7886 fidl::decode!(
7888 fidl::encoding::Optional<
7889 fidl::encoding::Endpoint<
7890 fdomain_client::fidl::ClientEnd<fdomain_fuchsia_fxfs::BlobWriterMarker>,
7891 >,
7892 >,
7893 fdomain_client::fidl::FDomainResourceDialect,
7894 &mut self.writer,
7895 decoder,
7896 offset + 0,
7897 _depth
7898 )?;
7899 Ok(())
7900 }
7901 }
7902
7903 impl fidl::encoding::ResourceTypeMarker for PackageCacheBasePackageIndexRequest {
7904 type Borrowed<'a> = &'a mut Self;
7905 fn take_or_borrow<'a>(
7906 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7907 ) -> Self::Borrowed<'a> {
7908 value
7909 }
7910 }
7911
7912 unsafe impl fidl::encoding::TypeMarker for PackageCacheBasePackageIndexRequest {
7913 type Owned = Self;
7914
7915 #[inline(always)]
7916 fn inline_align(_context: fidl::encoding::Context) -> usize {
7917 4
7918 }
7919
7920 #[inline(always)]
7921 fn inline_size(_context: fidl::encoding::Context) -> usize {
7922 4
7923 }
7924 }
7925
7926 unsafe impl
7927 fidl::encoding::Encode<
7928 PackageCacheBasePackageIndexRequest,
7929 fdomain_client::fidl::FDomainResourceDialect,
7930 > for &mut PackageCacheBasePackageIndexRequest
7931 {
7932 #[inline]
7933 unsafe fn encode(
7934 self,
7935 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7936 offset: usize,
7937 _depth: fidl::encoding::Depth,
7938 ) -> fidl::Result<()> {
7939 encoder.debug_check_bounds::<PackageCacheBasePackageIndexRequest>(offset);
7940 fidl::encoding::Encode::<
7942 PackageCacheBasePackageIndexRequest,
7943 fdomain_client::fidl::FDomainResourceDialect,
7944 >::encode(
7945 (<fidl::encoding::Endpoint<
7946 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
7947 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7948 &mut self.iterator
7949 ),),
7950 encoder,
7951 offset,
7952 _depth,
7953 )
7954 }
7955 }
7956 unsafe impl<
7957 T0: fidl::encoding::Encode<
7958 fidl::encoding::Endpoint<
7959 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
7960 >,
7961 fdomain_client::fidl::FDomainResourceDialect,
7962 >,
7963 >
7964 fidl::encoding::Encode<
7965 PackageCacheBasePackageIndexRequest,
7966 fdomain_client::fidl::FDomainResourceDialect,
7967 > for (T0,)
7968 {
7969 #[inline]
7970 unsafe fn encode(
7971 self,
7972 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
7973 offset: usize,
7974 depth: fidl::encoding::Depth,
7975 ) -> fidl::Result<()> {
7976 encoder.debug_check_bounds::<PackageCacheBasePackageIndexRequest>(offset);
7977 self.0.encode(encoder, offset + 0, depth)?;
7981 Ok(())
7982 }
7983 }
7984
7985 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
7986 for PackageCacheBasePackageIndexRequest
7987 {
7988 #[inline(always)]
7989 fn new_empty() -> Self {
7990 Self {
7991 iterator: fidl::new_empty!(
7992 fidl::encoding::Endpoint<
7993 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
7994 >,
7995 fdomain_client::fidl::FDomainResourceDialect
7996 ),
7997 }
7998 }
7999
8000 #[inline]
8001 unsafe fn decode(
8002 &mut self,
8003 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8004 offset: usize,
8005 _depth: fidl::encoding::Depth,
8006 ) -> fidl::Result<()> {
8007 decoder.debug_check_bounds::<Self>(offset);
8008 fidl::decode!(
8010 fidl::encoding::Endpoint<
8011 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
8012 >,
8013 fdomain_client::fidl::FDomainResourceDialect,
8014 &mut self.iterator,
8015 decoder,
8016 offset + 0,
8017 _depth
8018 )?;
8019 Ok(())
8020 }
8021 }
8022
8023 impl fidl::encoding::ResourceTypeMarker for PackageCacheCachePackageIndexRequest {
8024 type Borrowed<'a> = &'a mut Self;
8025 fn take_or_borrow<'a>(
8026 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
8027 ) -> Self::Borrowed<'a> {
8028 value
8029 }
8030 }
8031
8032 unsafe impl fidl::encoding::TypeMarker for PackageCacheCachePackageIndexRequest {
8033 type Owned = Self;
8034
8035 #[inline(always)]
8036 fn inline_align(_context: fidl::encoding::Context) -> usize {
8037 4
8038 }
8039
8040 #[inline(always)]
8041 fn inline_size(_context: fidl::encoding::Context) -> usize {
8042 4
8043 }
8044 }
8045
8046 unsafe impl
8047 fidl::encoding::Encode<
8048 PackageCacheCachePackageIndexRequest,
8049 fdomain_client::fidl::FDomainResourceDialect,
8050 > for &mut PackageCacheCachePackageIndexRequest
8051 {
8052 #[inline]
8053 unsafe fn encode(
8054 self,
8055 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8056 offset: usize,
8057 _depth: fidl::encoding::Depth,
8058 ) -> fidl::Result<()> {
8059 encoder.debug_check_bounds::<PackageCacheCachePackageIndexRequest>(offset);
8060 fidl::encoding::Encode::<
8062 PackageCacheCachePackageIndexRequest,
8063 fdomain_client::fidl::FDomainResourceDialect,
8064 >::encode(
8065 (<fidl::encoding::Endpoint<
8066 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
8067 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
8068 &mut self.iterator
8069 ),),
8070 encoder,
8071 offset,
8072 _depth,
8073 )
8074 }
8075 }
8076 unsafe impl<
8077 T0: fidl::encoding::Encode<
8078 fidl::encoding::Endpoint<
8079 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
8080 >,
8081 fdomain_client::fidl::FDomainResourceDialect,
8082 >,
8083 >
8084 fidl::encoding::Encode<
8085 PackageCacheCachePackageIndexRequest,
8086 fdomain_client::fidl::FDomainResourceDialect,
8087 > for (T0,)
8088 {
8089 #[inline]
8090 unsafe fn encode(
8091 self,
8092 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8093 offset: usize,
8094 depth: fidl::encoding::Depth,
8095 ) -> fidl::Result<()> {
8096 encoder.debug_check_bounds::<PackageCacheCachePackageIndexRequest>(offset);
8097 self.0.encode(encoder, offset + 0, depth)?;
8101 Ok(())
8102 }
8103 }
8104
8105 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
8106 for PackageCacheCachePackageIndexRequest
8107 {
8108 #[inline(always)]
8109 fn new_empty() -> Self {
8110 Self {
8111 iterator: fidl::new_empty!(
8112 fidl::encoding::Endpoint<
8113 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
8114 >,
8115 fdomain_client::fidl::FDomainResourceDialect
8116 ),
8117 }
8118 }
8119
8120 #[inline]
8121 unsafe fn decode(
8122 &mut self,
8123 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8124 offset: usize,
8125 _depth: fidl::encoding::Depth,
8126 ) -> fidl::Result<()> {
8127 decoder.debug_check_bounds::<Self>(offset);
8128 fidl::decode!(
8130 fidl::encoding::Endpoint<
8131 fdomain_client::fidl::ServerEnd<PackageIndexIteratorMarker>,
8132 >,
8133 fdomain_client::fidl::FDomainResourceDialect,
8134 &mut self.iterator,
8135 decoder,
8136 offset + 0,
8137 _depth
8138 )?;
8139 Ok(())
8140 }
8141 }
8142
8143 impl fidl::encoding::ResourceTypeMarker for PackageCacheGetRequest {
8144 type Borrowed<'a> = &'a mut Self;
8145 fn take_or_borrow<'a>(
8146 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
8147 ) -> Self::Borrowed<'a> {
8148 value
8149 }
8150 }
8151
8152 unsafe impl fidl::encoding::TypeMarker for PackageCacheGetRequest {
8153 type Owned = Self;
8154
8155 #[inline(always)]
8156 fn inline_align(_context: fidl::encoding::Context) -> usize {
8157 8
8158 }
8159
8160 #[inline(always)]
8161 fn inline_size(_context: fidl::encoding::Context) -> usize {
8162 56
8163 }
8164 }
8165
8166 unsafe impl
8167 fidl::encoding::Encode<PackageCacheGetRequest, fdomain_client::fidl::FDomainResourceDialect>
8168 for &mut PackageCacheGetRequest
8169 {
8170 #[inline]
8171 unsafe fn encode(
8172 self,
8173 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8174 offset: usize,
8175 _depth: fidl::encoding::Depth,
8176 ) -> fidl::Result<()> {
8177 encoder.debug_check_bounds::<PackageCacheGetRequest>(offset);
8178 fidl::encoding::Encode::<PackageCacheGetRequest, fdomain_client::fidl::FDomainResourceDialect>::encode(
8180 (
8181 <BlobInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.meta_far_blob),
8182 <GcProtection as fidl::encoding::ValueTypeMarker>::borrow(&self.gc_protection),
8183 <fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.needed_blobs),
8184 <fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.dir),
8185 ),
8186 encoder, offset, _depth
8187 )
8188 }
8189 }
8190 unsafe impl<
8191 T0: fidl::encoding::Encode<BlobInfo, fdomain_client::fidl::FDomainResourceDialect>,
8192 T1: fidl::encoding::Encode<GcProtection, fdomain_client::fidl::FDomainResourceDialect>,
8193 T2: fidl::encoding::Encode<
8194 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>>,
8195 fdomain_client::fidl::FDomainResourceDialect,
8196 >,
8197 T3: fidl::encoding::Encode<
8198 fidl::encoding::Endpoint<
8199 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8200 >,
8201 fdomain_client::fidl::FDomainResourceDialect,
8202 >,
8203 >
8204 fidl::encoding::Encode<PackageCacheGetRequest, fdomain_client::fidl::FDomainResourceDialect>
8205 for (T0, T1, T2, T3)
8206 {
8207 #[inline]
8208 unsafe fn encode(
8209 self,
8210 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8211 offset: usize,
8212 depth: fidl::encoding::Depth,
8213 ) -> fidl::Result<()> {
8214 encoder.debug_check_bounds::<PackageCacheGetRequest>(offset);
8215 unsafe {
8218 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(48);
8219 (ptr as *mut u64).write_unaligned(0);
8220 }
8221 self.0.encode(encoder, offset + 0, depth)?;
8223 self.1.encode(encoder, offset + 40, depth)?;
8224 self.2.encode(encoder, offset + 44, depth)?;
8225 self.3.encode(encoder, offset + 48, depth)?;
8226 Ok(())
8227 }
8228 }
8229
8230 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
8231 for PackageCacheGetRequest
8232 {
8233 #[inline(always)]
8234 fn new_empty() -> Self {
8235 Self {
8236 meta_far_blob: fidl::new_empty!(
8237 BlobInfo,
8238 fdomain_client::fidl::FDomainResourceDialect
8239 ),
8240 gc_protection: fidl::new_empty!(
8241 GcProtection,
8242 fdomain_client::fidl::FDomainResourceDialect
8243 ),
8244 needed_blobs: fidl::new_empty!(
8245 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>>,
8246 fdomain_client::fidl::FDomainResourceDialect
8247 ),
8248 dir: fidl::new_empty!(
8249 fidl::encoding::Endpoint<
8250 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8251 >,
8252 fdomain_client::fidl::FDomainResourceDialect
8253 ),
8254 }
8255 }
8256
8257 #[inline]
8258 unsafe fn decode(
8259 &mut self,
8260 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8261 offset: usize,
8262 _depth: fidl::encoding::Depth,
8263 ) -> fidl::Result<()> {
8264 decoder.debug_check_bounds::<Self>(offset);
8265 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(48) };
8267 let padval = unsafe { (ptr as *const u64).read_unaligned() };
8268 let mask = 0xffffffff00000000u64;
8269 let maskedval = padval & mask;
8270 if maskedval != 0 {
8271 return Err(fidl::Error::NonZeroPadding {
8272 padding_start: offset + 48 + ((mask as u64).trailing_zeros() / 8) as usize,
8273 });
8274 }
8275 fidl::decode!(
8276 BlobInfo,
8277 fdomain_client::fidl::FDomainResourceDialect,
8278 &mut self.meta_far_blob,
8279 decoder,
8280 offset + 0,
8281 _depth
8282 )?;
8283 fidl::decode!(
8284 GcProtection,
8285 fdomain_client::fidl::FDomainResourceDialect,
8286 &mut self.gc_protection,
8287 decoder,
8288 offset + 40,
8289 _depth
8290 )?;
8291 fidl::decode!(
8292 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>>,
8293 fdomain_client::fidl::FDomainResourceDialect,
8294 &mut self.needed_blobs,
8295 decoder,
8296 offset + 44,
8297 _depth
8298 )?;
8299 fidl::decode!(
8300 fidl::encoding::Endpoint<
8301 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8302 >,
8303 fdomain_client::fidl::FDomainResourceDialect,
8304 &mut self.dir,
8305 decoder,
8306 offset + 48,
8307 _depth
8308 )?;
8309 Ok(())
8310 }
8311 }
8312
8313 impl fidl::encoding::ResourceTypeMarker for PackageCacheGetSubpackageRequest {
8314 type Borrowed<'a> = &'a mut Self;
8315 fn take_or_borrow<'a>(
8316 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
8317 ) -> Self::Borrowed<'a> {
8318 value
8319 }
8320 }
8321
8322 unsafe impl fidl::encoding::TypeMarker for PackageCacheGetSubpackageRequest {
8323 type Owned = Self;
8324
8325 #[inline(always)]
8326 fn inline_align(_context: fidl::encoding::Context) -> usize {
8327 8
8328 }
8329
8330 #[inline(always)]
8331 fn inline_size(_context: fidl::encoding::Context) -> usize {
8332 56
8333 }
8334 }
8335
8336 unsafe impl
8337 fidl::encoding::Encode<
8338 PackageCacheGetSubpackageRequest,
8339 fdomain_client::fidl::FDomainResourceDialect,
8340 > for &mut PackageCacheGetSubpackageRequest
8341 {
8342 #[inline]
8343 unsafe fn encode(
8344 self,
8345 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8346 offset: usize,
8347 _depth: fidl::encoding::Depth,
8348 ) -> fidl::Result<()> {
8349 encoder.debug_check_bounds::<PackageCacheGetSubpackageRequest>(offset);
8350 fidl::encoding::Encode::<
8352 PackageCacheGetSubpackageRequest,
8353 fdomain_client::fidl::FDomainResourceDialect,
8354 >::encode(
8355 (
8356 <BlobId as fidl::encoding::ValueTypeMarker>::borrow(&self.superpackage),
8357 <PackageUrl as fidl::encoding::ValueTypeMarker>::borrow(&self.subpackage),
8358 <fidl::encoding::Endpoint<
8359 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8360 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
8361 &mut self.dir
8362 ),
8363 ),
8364 encoder,
8365 offset,
8366 _depth,
8367 )
8368 }
8369 }
8370 unsafe impl<
8371 T0: fidl::encoding::Encode<BlobId, fdomain_client::fidl::FDomainResourceDialect>,
8372 T1: fidl::encoding::Encode<PackageUrl, fdomain_client::fidl::FDomainResourceDialect>,
8373 T2: fidl::encoding::Encode<
8374 fidl::encoding::Endpoint<
8375 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8376 >,
8377 fdomain_client::fidl::FDomainResourceDialect,
8378 >,
8379 >
8380 fidl::encoding::Encode<
8381 PackageCacheGetSubpackageRequest,
8382 fdomain_client::fidl::FDomainResourceDialect,
8383 > for (T0, T1, T2)
8384 {
8385 #[inline]
8386 unsafe fn encode(
8387 self,
8388 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8389 offset: usize,
8390 depth: fidl::encoding::Depth,
8391 ) -> fidl::Result<()> {
8392 encoder.debug_check_bounds::<PackageCacheGetSubpackageRequest>(offset);
8393 unsafe {
8396 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(48);
8397 (ptr as *mut u64).write_unaligned(0);
8398 }
8399 self.0.encode(encoder, offset + 0, depth)?;
8401 self.1.encode(encoder, offset + 32, depth)?;
8402 self.2.encode(encoder, offset + 48, depth)?;
8403 Ok(())
8404 }
8405 }
8406
8407 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
8408 for PackageCacheGetSubpackageRequest
8409 {
8410 #[inline(always)]
8411 fn new_empty() -> Self {
8412 Self {
8413 superpackage: fidl::new_empty!(
8414 BlobId,
8415 fdomain_client::fidl::FDomainResourceDialect
8416 ),
8417 subpackage: fidl::new_empty!(
8418 PackageUrl,
8419 fdomain_client::fidl::FDomainResourceDialect
8420 ),
8421 dir: fidl::new_empty!(
8422 fidl::encoding::Endpoint<
8423 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8424 >,
8425 fdomain_client::fidl::FDomainResourceDialect
8426 ),
8427 }
8428 }
8429
8430 #[inline]
8431 unsafe fn decode(
8432 &mut self,
8433 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8434 offset: usize,
8435 _depth: fidl::encoding::Depth,
8436 ) -> fidl::Result<()> {
8437 decoder.debug_check_bounds::<Self>(offset);
8438 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(48) };
8440 let padval = unsafe { (ptr as *const u64).read_unaligned() };
8441 let mask = 0xffffffff00000000u64;
8442 let maskedval = padval & mask;
8443 if maskedval != 0 {
8444 return Err(fidl::Error::NonZeroPadding {
8445 padding_start: offset + 48 + ((mask as u64).trailing_zeros() / 8) as usize,
8446 });
8447 }
8448 fidl::decode!(
8449 BlobId,
8450 fdomain_client::fidl::FDomainResourceDialect,
8451 &mut self.superpackage,
8452 decoder,
8453 offset + 0,
8454 _depth
8455 )?;
8456 fidl::decode!(
8457 PackageUrl,
8458 fdomain_client::fidl::FDomainResourceDialect,
8459 &mut self.subpackage,
8460 decoder,
8461 offset + 32,
8462 _depth
8463 )?;
8464 fidl::decode!(
8465 fidl::encoding::Endpoint<
8466 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8467 >,
8468 fdomain_client::fidl::FDomainResourceDialect,
8469 &mut self.dir,
8470 decoder,
8471 offset + 48,
8472 _depth
8473 )?;
8474 Ok(())
8475 }
8476 }
8477
8478 impl fidl::encoding::ResourceTypeMarker for PackageCacheWriteBlobsRequest {
8479 type Borrowed<'a> = &'a mut Self;
8480 fn take_or_borrow<'a>(
8481 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
8482 ) -> Self::Borrowed<'a> {
8483 value
8484 }
8485 }
8486
8487 unsafe impl fidl::encoding::TypeMarker for PackageCacheWriteBlobsRequest {
8488 type Owned = Self;
8489
8490 #[inline(always)]
8491 fn inline_align(_context: fidl::encoding::Context) -> usize {
8492 4
8493 }
8494
8495 #[inline(always)]
8496 fn inline_size(_context: fidl::encoding::Context) -> usize {
8497 4
8498 }
8499 }
8500
8501 unsafe impl
8502 fidl::encoding::Encode<
8503 PackageCacheWriteBlobsRequest,
8504 fdomain_client::fidl::FDomainResourceDialect,
8505 > for &mut PackageCacheWriteBlobsRequest
8506 {
8507 #[inline]
8508 unsafe fn encode(
8509 self,
8510 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8511 offset: usize,
8512 _depth: fidl::encoding::Depth,
8513 ) -> fidl::Result<()> {
8514 encoder.debug_check_bounds::<PackageCacheWriteBlobsRequest>(offset);
8515 fidl::encoding::Encode::<PackageCacheWriteBlobsRequest, fdomain_client::fidl::FDomainResourceDialect>::encode(
8517 (
8518 <fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.needed_blobs),
8519 ),
8520 encoder, offset, _depth
8521 )
8522 }
8523 }
8524 unsafe impl<
8525 T0: fidl::encoding::Encode<
8526 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>>,
8527 fdomain_client::fidl::FDomainResourceDialect,
8528 >,
8529 >
8530 fidl::encoding::Encode<
8531 PackageCacheWriteBlobsRequest,
8532 fdomain_client::fidl::FDomainResourceDialect,
8533 > for (T0,)
8534 {
8535 #[inline]
8536 unsafe fn encode(
8537 self,
8538 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8539 offset: usize,
8540 depth: fidl::encoding::Depth,
8541 ) -> fidl::Result<()> {
8542 encoder.debug_check_bounds::<PackageCacheWriteBlobsRequest>(offset);
8543 self.0.encode(encoder, offset + 0, depth)?;
8547 Ok(())
8548 }
8549 }
8550
8551 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
8552 for PackageCacheWriteBlobsRequest
8553 {
8554 #[inline(always)]
8555 fn new_empty() -> Self {
8556 Self {
8557 needed_blobs: fidl::new_empty!(
8558 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>>,
8559 fdomain_client::fidl::FDomainResourceDialect
8560 ),
8561 }
8562 }
8563
8564 #[inline]
8565 unsafe fn decode(
8566 &mut self,
8567 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8568 offset: usize,
8569 _depth: fidl::encoding::Depth,
8570 ) -> fidl::Result<()> {
8571 decoder.debug_check_bounds::<Self>(offset);
8572 fidl::decode!(
8574 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<NeededBlobsMarker>>,
8575 fdomain_client::fidl::FDomainResourceDialect,
8576 &mut self.needed_blobs,
8577 decoder,
8578 offset + 0,
8579 _depth
8580 )?;
8581 Ok(())
8582 }
8583 }
8584
8585 impl fidl::encoding::ResourceTypeMarker for PackageResolverResolveRequest {
8586 type Borrowed<'a> = &'a mut Self;
8587 fn take_or_borrow<'a>(
8588 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
8589 ) -> Self::Borrowed<'a> {
8590 value
8591 }
8592 }
8593
8594 unsafe impl fidl::encoding::TypeMarker for PackageResolverResolveRequest {
8595 type Owned = Self;
8596
8597 #[inline(always)]
8598 fn inline_align(_context: fidl::encoding::Context) -> usize {
8599 8
8600 }
8601
8602 #[inline(always)]
8603 fn inline_size(_context: fidl::encoding::Context) -> usize {
8604 24
8605 }
8606 }
8607
8608 unsafe impl
8609 fidl::encoding::Encode<
8610 PackageResolverResolveRequest,
8611 fdomain_client::fidl::FDomainResourceDialect,
8612 > for &mut PackageResolverResolveRequest
8613 {
8614 #[inline]
8615 unsafe fn encode(
8616 self,
8617 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8618 offset: usize,
8619 _depth: fidl::encoding::Depth,
8620 ) -> fidl::Result<()> {
8621 encoder.debug_check_bounds::<PackageResolverResolveRequest>(offset);
8622 fidl::encoding::Encode::<
8624 PackageResolverResolveRequest,
8625 fdomain_client::fidl::FDomainResourceDialect,
8626 >::encode(
8627 (
8628 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
8629 &self.package_url,
8630 ),
8631 <fidl::encoding::Endpoint<
8632 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8633 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
8634 &mut self.dir
8635 ),
8636 ),
8637 encoder,
8638 offset,
8639 _depth,
8640 )
8641 }
8642 }
8643 unsafe impl<
8644 T0: fidl::encoding::Encode<
8645 fidl::encoding::UnboundedString,
8646 fdomain_client::fidl::FDomainResourceDialect,
8647 >,
8648 T1: fidl::encoding::Encode<
8649 fidl::encoding::Endpoint<
8650 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8651 >,
8652 fdomain_client::fidl::FDomainResourceDialect,
8653 >,
8654 >
8655 fidl::encoding::Encode<
8656 PackageResolverResolveRequest,
8657 fdomain_client::fidl::FDomainResourceDialect,
8658 > for (T0, T1)
8659 {
8660 #[inline]
8661 unsafe fn encode(
8662 self,
8663 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8664 offset: usize,
8665 depth: fidl::encoding::Depth,
8666 ) -> fidl::Result<()> {
8667 encoder.debug_check_bounds::<PackageResolverResolveRequest>(offset);
8668 unsafe {
8671 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
8672 (ptr as *mut u64).write_unaligned(0);
8673 }
8674 self.0.encode(encoder, offset + 0, depth)?;
8676 self.1.encode(encoder, offset + 16, depth)?;
8677 Ok(())
8678 }
8679 }
8680
8681 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
8682 for PackageResolverResolveRequest
8683 {
8684 #[inline(always)]
8685 fn new_empty() -> Self {
8686 Self {
8687 package_url: fidl::new_empty!(
8688 fidl::encoding::UnboundedString,
8689 fdomain_client::fidl::FDomainResourceDialect
8690 ),
8691 dir: fidl::new_empty!(
8692 fidl::encoding::Endpoint<
8693 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8694 >,
8695 fdomain_client::fidl::FDomainResourceDialect
8696 ),
8697 }
8698 }
8699
8700 #[inline]
8701 unsafe fn decode(
8702 &mut self,
8703 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8704 offset: usize,
8705 _depth: fidl::encoding::Depth,
8706 ) -> fidl::Result<()> {
8707 decoder.debug_check_bounds::<Self>(offset);
8708 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
8710 let padval = unsafe { (ptr as *const u64).read_unaligned() };
8711 let mask = 0xffffffff00000000u64;
8712 let maskedval = padval & mask;
8713 if maskedval != 0 {
8714 return Err(fidl::Error::NonZeroPadding {
8715 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
8716 });
8717 }
8718 fidl::decode!(
8719 fidl::encoding::UnboundedString,
8720 fdomain_client::fidl::FDomainResourceDialect,
8721 &mut self.package_url,
8722 decoder,
8723 offset + 0,
8724 _depth
8725 )?;
8726 fidl::decode!(
8727 fidl::encoding::Endpoint<
8728 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8729 >,
8730 fdomain_client::fidl::FDomainResourceDialect,
8731 &mut self.dir,
8732 decoder,
8733 offset + 16,
8734 _depth
8735 )?;
8736 Ok(())
8737 }
8738 }
8739
8740 impl fidl::encoding::ResourceTypeMarker for PackageResolverResolveWithContextRequest {
8741 type Borrowed<'a> = &'a mut Self;
8742 fn take_or_borrow<'a>(
8743 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
8744 ) -> Self::Borrowed<'a> {
8745 value
8746 }
8747 }
8748
8749 unsafe impl fidl::encoding::TypeMarker for PackageResolverResolveWithContextRequest {
8750 type Owned = Self;
8751
8752 #[inline(always)]
8753 fn inline_align(_context: fidl::encoding::Context) -> usize {
8754 8
8755 }
8756
8757 #[inline(always)]
8758 fn inline_size(_context: fidl::encoding::Context) -> usize {
8759 40
8760 }
8761 }
8762
8763 unsafe impl
8764 fidl::encoding::Encode<
8765 PackageResolverResolveWithContextRequest,
8766 fdomain_client::fidl::FDomainResourceDialect,
8767 > for &mut PackageResolverResolveWithContextRequest
8768 {
8769 #[inline]
8770 unsafe fn encode(
8771 self,
8772 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8773 offset: usize,
8774 _depth: fidl::encoding::Depth,
8775 ) -> fidl::Result<()> {
8776 encoder.debug_check_bounds::<PackageResolverResolveWithContextRequest>(offset);
8777 fidl::encoding::Encode::<
8779 PackageResolverResolveWithContextRequest,
8780 fdomain_client::fidl::FDomainResourceDialect,
8781 >::encode(
8782 (
8783 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
8784 &self.package_url,
8785 ),
8786 <ResolutionContext as fidl::encoding::ValueTypeMarker>::borrow(&self.context),
8787 <fidl::encoding::Endpoint<
8788 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8789 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
8790 &mut self.dir
8791 ),
8792 ),
8793 encoder,
8794 offset,
8795 _depth,
8796 )
8797 }
8798 }
8799 unsafe impl<
8800 T0: fidl::encoding::Encode<
8801 fidl::encoding::UnboundedString,
8802 fdomain_client::fidl::FDomainResourceDialect,
8803 >,
8804 T1: fidl::encoding::Encode<ResolutionContext, fdomain_client::fidl::FDomainResourceDialect>,
8805 T2: fidl::encoding::Encode<
8806 fidl::encoding::Endpoint<
8807 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8808 >,
8809 fdomain_client::fidl::FDomainResourceDialect,
8810 >,
8811 >
8812 fidl::encoding::Encode<
8813 PackageResolverResolveWithContextRequest,
8814 fdomain_client::fidl::FDomainResourceDialect,
8815 > for (T0, T1, T2)
8816 {
8817 #[inline]
8818 unsafe fn encode(
8819 self,
8820 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8821 offset: usize,
8822 depth: fidl::encoding::Depth,
8823 ) -> fidl::Result<()> {
8824 encoder.debug_check_bounds::<PackageResolverResolveWithContextRequest>(offset);
8825 unsafe {
8828 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
8829 (ptr as *mut u64).write_unaligned(0);
8830 }
8831 self.0.encode(encoder, offset + 0, depth)?;
8833 self.1.encode(encoder, offset + 16, depth)?;
8834 self.2.encode(encoder, offset + 32, depth)?;
8835 Ok(())
8836 }
8837 }
8838
8839 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
8840 for PackageResolverResolveWithContextRequest
8841 {
8842 #[inline(always)]
8843 fn new_empty() -> Self {
8844 Self {
8845 package_url: fidl::new_empty!(
8846 fidl::encoding::UnboundedString,
8847 fdomain_client::fidl::FDomainResourceDialect
8848 ),
8849 context: fidl::new_empty!(
8850 ResolutionContext,
8851 fdomain_client::fidl::FDomainResourceDialect
8852 ),
8853 dir: fidl::new_empty!(
8854 fidl::encoding::Endpoint<
8855 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8856 >,
8857 fdomain_client::fidl::FDomainResourceDialect
8858 ),
8859 }
8860 }
8861
8862 #[inline]
8863 unsafe fn decode(
8864 &mut self,
8865 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8866 offset: usize,
8867 _depth: fidl::encoding::Depth,
8868 ) -> fidl::Result<()> {
8869 decoder.debug_check_bounds::<Self>(offset);
8870 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
8872 let padval = unsafe { (ptr as *const u64).read_unaligned() };
8873 let mask = 0xffffffff00000000u64;
8874 let maskedval = padval & mask;
8875 if maskedval != 0 {
8876 return Err(fidl::Error::NonZeroPadding {
8877 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
8878 });
8879 }
8880 fidl::decode!(
8881 fidl::encoding::UnboundedString,
8882 fdomain_client::fidl::FDomainResourceDialect,
8883 &mut self.package_url,
8884 decoder,
8885 offset + 0,
8886 _depth
8887 )?;
8888 fidl::decode!(
8889 ResolutionContext,
8890 fdomain_client::fidl::FDomainResourceDialect,
8891 &mut self.context,
8892 decoder,
8893 offset + 16,
8894 _depth
8895 )?;
8896 fidl::decode!(
8897 fidl::encoding::Endpoint<
8898 fdomain_client::fidl::ServerEnd<fdomain_fuchsia_io::DirectoryMarker>,
8899 >,
8900 fdomain_client::fidl::FDomainResourceDialect,
8901 &mut self.dir,
8902 decoder,
8903 offset + 32,
8904 _depth
8905 )?;
8906 Ok(())
8907 }
8908 }
8909
8910 impl fidl::encoding::ResourceTypeMarker for RepositoryManagerListRequest {
8911 type Borrowed<'a> = &'a mut Self;
8912 fn take_or_borrow<'a>(
8913 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
8914 ) -> Self::Borrowed<'a> {
8915 value
8916 }
8917 }
8918
8919 unsafe impl fidl::encoding::TypeMarker for RepositoryManagerListRequest {
8920 type Owned = Self;
8921
8922 #[inline(always)]
8923 fn inline_align(_context: fidl::encoding::Context) -> usize {
8924 4
8925 }
8926
8927 #[inline(always)]
8928 fn inline_size(_context: fidl::encoding::Context) -> usize {
8929 4
8930 }
8931 }
8932
8933 unsafe impl
8934 fidl::encoding::Encode<
8935 RepositoryManagerListRequest,
8936 fdomain_client::fidl::FDomainResourceDialect,
8937 > for &mut RepositoryManagerListRequest
8938 {
8939 #[inline]
8940 unsafe fn encode(
8941 self,
8942 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8943 offset: usize,
8944 _depth: fidl::encoding::Depth,
8945 ) -> fidl::Result<()> {
8946 encoder.debug_check_bounds::<RepositoryManagerListRequest>(offset);
8947 fidl::encoding::Encode::<
8949 RepositoryManagerListRequest,
8950 fdomain_client::fidl::FDomainResourceDialect,
8951 >::encode(
8952 (<fidl::encoding::Endpoint<
8953 fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
8954 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
8955 &mut self.iterator
8956 ),),
8957 encoder,
8958 offset,
8959 _depth,
8960 )
8961 }
8962 }
8963 unsafe impl<
8964 T0: fidl::encoding::Encode<
8965 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>>,
8966 fdomain_client::fidl::FDomainResourceDialect,
8967 >,
8968 >
8969 fidl::encoding::Encode<
8970 RepositoryManagerListRequest,
8971 fdomain_client::fidl::FDomainResourceDialect,
8972 > for (T0,)
8973 {
8974 #[inline]
8975 unsafe fn encode(
8976 self,
8977 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
8978 offset: usize,
8979 depth: fidl::encoding::Depth,
8980 ) -> fidl::Result<()> {
8981 encoder.debug_check_bounds::<RepositoryManagerListRequest>(offset);
8982 self.0.encode(encoder, offset + 0, depth)?;
8986 Ok(())
8987 }
8988 }
8989
8990 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
8991 for RepositoryManagerListRequest
8992 {
8993 #[inline(always)]
8994 fn new_empty() -> Self {
8995 Self {
8996 iterator: fidl::new_empty!(
8997 fidl::encoding::Endpoint<
8998 fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>,
8999 >,
9000 fdomain_client::fidl::FDomainResourceDialect
9001 ),
9002 }
9003 }
9004
9005 #[inline]
9006 unsafe fn decode(
9007 &mut self,
9008 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
9009 offset: usize,
9010 _depth: fidl::encoding::Depth,
9011 ) -> fidl::Result<()> {
9012 decoder.debug_check_bounds::<Self>(offset);
9013 fidl::decode!(
9015 fidl::encoding::Endpoint<fdomain_client::fidl::ServerEnd<RepositoryIteratorMarker>>,
9016 fdomain_client::fidl::FDomainResourceDialect,
9017 &mut self.iterator,
9018 decoder,
9019 offset + 0,
9020 _depth
9021 )?;
9022 Ok(())
9023 }
9024 }
9025
9026 impl fidl::encoding::ResourceTypeMarker for RetainedBlobsReplaceRequest {
9027 type Borrowed<'a> = &'a mut Self;
9028 fn take_or_borrow<'a>(
9029 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
9030 ) -> Self::Borrowed<'a> {
9031 value
9032 }
9033 }
9034
9035 unsafe impl fidl::encoding::TypeMarker for RetainedBlobsReplaceRequest {
9036 type Owned = Self;
9037
9038 #[inline(always)]
9039 fn inline_align(_context: fidl::encoding::Context) -> usize {
9040 4
9041 }
9042
9043 #[inline(always)]
9044 fn inline_size(_context: fidl::encoding::Context) -> usize {
9045 4
9046 }
9047 }
9048
9049 unsafe impl
9050 fidl::encoding::Encode<
9051 RetainedBlobsReplaceRequest,
9052 fdomain_client::fidl::FDomainResourceDialect,
9053 > for &mut RetainedBlobsReplaceRequest
9054 {
9055 #[inline]
9056 unsafe fn encode(
9057 self,
9058 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
9059 offset: usize,
9060 _depth: fidl::encoding::Depth,
9061 ) -> fidl::Result<()> {
9062 encoder.debug_check_bounds::<RetainedBlobsReplaceRequest>(offset);
9063 fidl::encoding::Encode::<RetainedBlobsReplaceRequest, fdomain_client::fidl::FDomainResourceDialect>::encode(
9065 (
9066 <fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.iterator),
9067 ),
9068 encoder, offset, _depth
9069 )
9070 }
9071 }
9072 unsafe impl<
9073 T0: fidl::encoding::Encode<
9074 fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>>,
9075 fdomain_client::fidl::FDomainResourceDialect,
9076 >,
9077 >
9078 fidl::encoding::Encode<
9079 RetainedBlobsReplaceRequest,
9080 fdomain_client::fidl::FDomainResourceDialect,
9081 > for (T0,)
9082 {
9083 #[inline]
9084 unsafe fn encode(
9085 self,
9086 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
9087 offset: usize,
9088 depth: fidl::encoding::Depth,
9089 ) -> fidl::Result<()> {
9090 encoder.debug_check_bounds::<RetainedBlobsReplaceRequest>(offset);
9091 self.0.encode(encoder, offset + 0, depth)?;
9095 Ok(())
9096 }
9097 }
9098
9099 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
9100 for RetainedBlobsReplaceRequest
9101 {
9102 #[inline(always)]
9103 fn new_empty() -> Self {
9104 Self {
9105 iterator: fidl::new_empty!(
9106 fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>>,
9107 fdomain_client::fidl::FDomainResourceDialect
9108 ),
9109 }
9110 }
9111
9112 #[inline]
9113 unsafe fn decode(
9114 &mut self,
9115 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
9116 offset: usize,
9117 _depth: fidl::encoding::Depth,
9118 ) -> fidl::Result<()> {
9119 decoder.debug_check_bounds::<Self>(offset);
9120 fidl::decode!(
9122 fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>>,
9123 fdomain_client::fidl::FDomainResourceDialect,
9124 &mut self.iterator,
9125 decoder,
9126 offset + 0,
9127 _depth
9128 )?;
9129 Ok(())
9130 }
9131 }
9132
9133 impl fidl::encoding::ResourceTypeMarker for RetainedPackagesReplaceRequest {
9134 type Borrowed<'a> = &'a mut Self;
9135 fn take_or_borrow<'a>(
9136 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
9137 ) -> Self::Borrowed<'a> {
9138 value
9139 }
9140 }
9141
9142 unsafe impl fidl::encoding::TypeMarker for RetainedPackagesReplaceRequest {
9143 type Owned = Self;
9144
9145 #[inline(always)]
9146 fn inline_align(_context: fidl::encoding::Context) -> usize {
9147 4
9148 }
9149
9150 #[inline(always)]
9151 fn inline_size(_context: fidl::encoding::Context) -> usize {
9152 4
9153 }
9154 }
9155
9156 unsafe impl
9157 fidl::encoding::Encode<
9158 RetainedPackagesReplaceRequest,
9159 fdomain_client::fidl::FDomainResourceDialect,
9160 > for &mut RetainedPackagesReplaceRequest
9161 {
9162 #[inline]
9163 unsafe fn encode(
9164 self,
9165 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
9166 offset: usize,
9167 _depth: fidl::encoding::Depth,
9168 ) -> fidl::Result<()> {
9169 encoder.debug_check_bounds::<RetainedPackagesReplaceRequest>(offset);
9170 fidl::encoding::Encode::<RetainedPackagesReplaceRequest, fdomain_client::fidl::FDomainResourceDialect>::encode(
9172 (
9173 <fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.iterator),
9174 ),
9175 encoder, offset, _depth
9176 )
9177 }
9178 }
9179 unsafe impl<
9180 T0: fidl::encoding::Encode<
9181 fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>>,
9182 fdomain_client::fidl::FDomainResourceDialect,
9183 >,
9184 >
9185 fidl::encoding::Encode<
9186 RetainedPackagesReplaceRequest,
9187 fdomain_client::fidl::FDomainResourceDialect,
9188 > for (T0,)
9189 {
9190 #[inline]
9191 unsafe fn encode(
9192 self,
9193 encoder: &mut fidl::encoding::Encoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
9194 offset: usize,
9195 depth: fidl::encoding::Depth,
9196 ) -> fidl::Result<()> {
9197 encoder.debug_check_bounds::<RetainedPackagesReplaceRequest>(offset);
9198 self.0.encode(encoder, offset + 0, depth)?;
9202 Ok(())
9203 }
9204 }
9205
9206 impl fidl::encoding::Decode<Self, fdomain_client::fidl::FDomainResourceDialect>
9207 for RetainedPackagesReplaceRequest
9208 {
9209 #[inline(always)]
9210 fn new_empty() -> Self {
9211 Self {
9212 iterator: fidl::new_empty!(
9213 fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>>,
9214 fdomain_client::fidl::FDomainResourceDialect
9215 ),
9216 }
9217 }
9218
9219 #[inline]
9220 unsafe fn decode(
9221 &mut self,
9222 decoder: &mut fidl::encoding::Decoder<'_, fdomain_client::fidl::FDomainResourceDialect>,
9223 offset: usize,
9224 _depth: fidl::encoding::Depth,
9225 ) -> fidl::Result<()> {
9226 decoder.debug_check_bounds::<Self>(offset);
9227 fidl::decode!(
9229 fidl::encoding::Endpoint<fdomain_client::fidl::ClientEnd<BlobIdIteratorMarker>>,
9230 fdomain_client::fidl::FDomainResourceDialect,
9231 &mut self.iterator,
9232 decoder,
9233 offset + 0,
9234 _depth
9235 )?;
9236 Ok(())
9237 }
9238 }
9239}