fidl_fidl_clientsuite/
fidl_fidl_clientsuite.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fidl_clientsuite__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct RunnerCallFlexibleOneWayRequest {
16    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
20    for RunnerCallFlexibleOneWayRequest
21{
22}
23
24#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
25pub struct RunnerCallFlexibleTwoWayErrRequest {
26    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
27}
28
29impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
30    for RunnerCallFlexibleTwoWayErrRequest
31{
32}
33
34#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
35pub struct RunnerCallFlexibleTwoWayFieldsErrRequest {
36    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
37}
38
39impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
40    for RunnerCallFlexibleTwoWayFieldsErrRequest
41{
42}
43
44#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
45pub struct RunnerCallFlexibleTwoWayFieldsRequest {
46    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
47}
48
49impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
50    for RunnerCallFlexibleTwoWayFieldsRequest
51{
52}
53
54#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
55pub struct RunnerCallFlexibleTwoWayRequest {
56    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
57}
58
59impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
60    for RunnerCallFlexibleTwoWayRequest
61{
62}
63
64#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
65pub struct RunnerCallOneWayNoRequestRequest {
66    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
67}
68
69impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
70    for RunnerCallOneWayNoRequestRequest
71{
72}
73
74#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
75pub struct RunnerCallOneWayStructRequestRequest {
76    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
77    pub request: NonEmptyPayload,
78}
79
80impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
81    for RunnerCallOneWayStructRequestRequest
82{
83}
84
85#[derive(Debug, PartialEq)]
86pub struct RunnerCallOneWayTableRequestRequest {
87    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
88    pub request: TablePayload,
89}
90
91impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
92    for RunnerCallOneWayTableRequestRequest
93{
94}
95
96#[derive(Debug, PartialEq)]
97pub struct RunnerCallOneWayUnionRequestRequest {
98    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
99    pub request: UnionPayload,
100}
101
102impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
103    for RunnerCallOneWayUnionRequestRequest
104{
105}
106
107#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
108pub struct RunnerCallStrictOneWayRequest {
109    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
110}
111
112impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
113    for RunnerCallStrictOneWayRequest
114{
115}
116
117#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
118pub struct RunnerCallStrictTwoWayErrRequest {
119    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
120}
121
122impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
123    for RunnerCallStrictTwoWayErrRequest
124{
125}
126
127#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
128pub struct RunnerCallStrictTwoWayFieldsErrRequest {
129    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
130}
131
132impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
133    for RunnerCallStrictTwoWayFieldsErrRequest
134{
135}
136
137#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
138pub struct RunnerCallStrictTwoWayFieldsRequest {
139    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
140}
141
142impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
143    for RunnerCallStrictTwoWayFieldsRequest
144{
145}
146
147#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
148pub struct RunnerCallStrictTwoWayRequest {
149    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
150}
151
152impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
153    for RunnerCallStrictTwoWayRequest
154{
155}
156
157#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
158pub struct RunnerCallTwoWayNoPayloadRequest {
159    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
160}
161
162impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
163    for RunnerCallTwoWayNoPayloadRequest
164{
165}
166
167#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
168pub struct RunnerCallTwoWayStructPayloadErrRequest {
169    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
170}
171
172impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
173    for RunnerCallTwoWayStructPayloadErrRequest
174{
175}
176
177#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
178pub struct RunnerCallTwoWayStructPayloadRequest {
179    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
180}
181
182impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
183    for RunnerCallTwoWayStructPayloadRequest
184{
185}
186
187#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
188pub struct RunnerCallTwoWayStructRequestRequest {
189    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
190    pub request: NonEmptyPayload,
191}
192
193impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
194    for RunnerCallTwoWayStructRequestRequest
195{
196}
197
198#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
199pub struct RunnerCallTwoWayTablePayloadRequest {
200    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
201}
202
203impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
204    for RunnerCallTwoWayTablePayloadRequest
205{
206}
207
208#[derive(Debug, PartialEq)]
209pub struct RunnerCallTwoWayTableRequestRequest {
210    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
211    pub request: TablePayload,
212}
213
214impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
215    for RunnerCallTwoWayTableRequestRequest
216{
217}
218
219#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
220pub struct RunnerCallTwoWayUnionPayloadRequest {
221    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
222}
223
224impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
225    for RunnerCallTwoWayUnionPayloadRequest
226{
227}
228
229#[derive(Debug, PartialEq)]
230pub struct RunnerCallTwoWayUnionRequestRequest {
231    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
232    pub request: UnionPayload,
233}
234
235impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
236    for RunnerCallTwoWayUnionRequestRequest
237{
238}
239
240#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
241pub struct RunnerReceiveAjarEventsRequest {
242    pub target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
243    pub reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
244}
245
246impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
247    for RunnerReceiveAjarEventsRequest
248{
249}
250
251#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
252pub struct RunnerReceiveClosedEventsRequest {
253    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
254    pub reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
255}
256
257impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
258    for RunnerReceiveClosedEventsRequest
259{
260}
261
262#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
263pub struct RunnerReceiveOpenEventsRequest {
264    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
265    pub reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
266}
267
268impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
269    for RunnerReceiveOpenEventsRequest
270{
271}
272
273#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
274pub struct AjarTargetMarker;
275
276impl fidl::endpoints::ProtocolMarker for AjarTargetMarker {
277    type Proxy = AjarTargetProxy;
278    type RequestStream = AjarTargetRequestStream;
279    #[cfg(target_os = "fuchsia")]
280    type SynchronousProxy = AjarTargetSynchronousProxy;
281
282    const DEBUG_NAME: &'static str = "(anonymous) AjarTarget";
283}
284
285pub trait AjarTargetProxyInterface: Send + Sync {}
286#[derive(Debug)]
287#[cfg(target_os = "fuchsia")]
288pub struct AjarTargetSynchronousProxy {
289    client: fidl::client::sync::Client,
290}
291
292#[cfg(target_os = "fuchsia")]
293impl fidl::endpoints::SynchronousProxy for AjarTargetSynchronousProxy {
294    type Proxy = AjarTargetProxy;
295    type Protocol = AjarTargetMarker;
296
297    fn from_channel(inner: fidl::Channel) -> Self {
298        Self::new(inner)
299    }
300
301    fn into_channel(self) -> fidl::Channel {
302        self.client.into_channel()
303    }
304
305    fn as_channel(&self) -> &fidl::Channel {
306        self.client.as_channel()
307    }
308}
309
310#[cfg(target_os = "fuchsia")]
311impl AjarTargetSynchronousProxy {
312    pub fn new(channel: fidl::Channel) -> Self {
313        let protocol_name = <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
314        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
315    }
316
317    pub fn into_channel(self) -> fidl::Channel {
318        self.client.into_channel()
319    }
320
321    /// Waits until an event arrives and returns it. It is safe for other
322    /// threads to make concurrent requests while waiting for an event.
323    pub fn wait_for_event(
324        &self,
325        deadline: zx::MonotonicInstant,
326    ) -> Result<AjarTargetEvent, fidl::Error> {
327        AjarTargetEvent::decode(self.client.wait_for_event(deadline)?)
328    }
329}
330
331#[cfg(target_os = "fuchsia")]
332impl From<AjarTargetSynchronousProxy> for zx::NullableHandle {
333    fn from(value: AjarTargetSynchronousProxy) -> Self {
334        value.into_channel().into()
335    }
336}
337
338#[cfg(target_os = "fuchsia")]
339impl From<fidl::Channel> for AjarTargetSynchronousProxy {
340    fn from(value: fidl::Channel) -> Self {
341        Self::new(value)
342    }
343}
344
345#[cfg(target_os = "fuchsia")]
346impl fidl::endpoints::FromClient for AjarTargetSynchronousProxy {
347    type Protocol = AjarTargetMarker;
348
349    fn from_client(value: fidl::endpoints::ClientEnd<AjarTargetMarker>) -> Self {
350        Self::new(value.into_channel())
351    }
352}
353
354#[derive(Debug, Clone)]
355pub struct AjarTargetProxy {
356    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
357}
358
359impl fidl::endpoints::Proxy for AjarTargetProxy {
360    type Protocol = AjarTargetMarker;
361
362    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
363        Self::new(inner)
364    }
365
366    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
367        self.client.into_channel().map_err(|client| Self { client })
368    }
369
370    fn as_channel(&self) -> &::fidl::AsyncChannel {
371        self.client.as_channel()
372    }
373}
374
375impl AjarTargetProxy {
376    /// Create a new Proxy for fidl.clientsuite/AjarTarget.
377    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
378        let protocol_name = <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
379        Self { client: fidl::client::Client::new(channel, protocol_name) }
380    }
381
382    /// Get a Stream of events from the remote end of the protocol.
383    ///
384    /// # Panics
385    ///
386    /// Panics if the event stream was already taken.
387    pub fn take_event_stream(&self) -> AjarTargetEventStream {
388        AjarTargetEventStream { event_receiver: self.client.take_event_receiver() }
389    }
390}
391
392impl AjarTargetProxyInterface for AjarTargetProxy {}
393
394pub struct AjarTargetEventStream {
395    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
396}
397
398impl std::marker::Unpin for AjarTargetEventStream {}
399
400impl futures::stream::FusedStream for AjarTargetEventStream {
401    fn is_terminated(&self) -> bool {
402        self.event_receiver.is_terminated()
403    }
404}
405
406impl futures::Stream for AjarTargetEventStream {
407    type Item = Result<AjarTargetEvent, fidl::Error>;
408
409    fn poll_next(
410        mut self: std::pin::Pin<&mut Self>,
411        cx: &mut std::task::Context<'_>,
412    ) -> std::task::Poll<Option<Self::Item>> {
413        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
414            &mut self.event_receiver,
415            cx
416        )?) {
417            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEvent::decode(buf))),
418            None => std::task::Poll::Ready(None),
419        }
420    }
421}
422
423#[derive(Debug)]
424pub enum AjarTargetEvent {
425    #[non_exhaustive]
426    _UnknownEvent {
427        /// Ordinal of the event that was sent.
428        ordinal: u64,
429    },
430}
431
432impl AjarTargetEvent {
433    /// Decodes a message buffer as a [`AjarTargetEvent`].
434    fn decode(
435        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
436    ) -> Result<AjarTargetEvent, fidl::Error> {
437        let (bytes, _handles) = buf.split_mut();
438        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
439        debug_assert_eq!(tx_header.tx_id, 0);
440        match tx_header.ordinal {
441            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
442                Ok(AjarTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
443            }
444            _ => Err(fidl::Error::UnknownOrdinal {
445                ordinal: tx_header.ordinal,
446                protocol_name: <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
447            }),
448        }
449    }
450}
451
452/// A Stream of incoming requests for fidl.clientsuite/AjarTarget.
453pub struct AjarTargetRequestStream {
454    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
455    is_terminated: bool,
456}
457
458impl std::marker::Unpin for AjarTargetRequestStream {}
459
460impl futures::stream::FusedStream for AjarTargetRequestStream {
461    fn is_terminated(&self) -> bool {
462        self.is_terminated
463    }
464}
465
466impl fidl::endpoints::RequestStream for AjarTargetRequestStream {
467    type Protocol = AjarTargetMarker;
468    type ControlHandle = AjarTargetControlHandle;
469
470    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
471        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
472    }
473
474    fn control_handle(&self) -> Self::ControlHandle {
475        AjarTargetControlHandle { inner: self.inner.clone() }
476    }
477
478    fn into_inner(
479        self,
480    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
481    {
482        (self.inner, self.is_terminated)
483    }
484
485    fn from_inner(
486        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
487        is_terminated: bool,
488    ) -> Self {
489        Self { inner, is_terminated }
490    }
491}
492
493impl futures::Stream for AjarTargetRequestStream {
494    type Item = Result<AjarTargetRequest, fidl::Error>;
495
496    fn poll_next(
497        mut self: std::pin::Pin<&mut Self>,
498        cx: &mut std::task::Context<'_>,
499    ) -> std::task::Poll<Option<Self::Item>> {
500        let this = &mut *self;
501        if this.inner.check_shutdown(cx) {
502            this.is_terminated = true;
503            return std::task::Poll::Ready(None);
504        }
505        if this.is_terminated {
506            panic!("polled AjarTargetRequestStream after completion");
507        }
508        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
509            |bytes, handles| {
510                match this.inner.channel().read_etc(cx, bytes, handles) {
511                    std::task::Poll::Ready(Ok(())) => {}
512                    std::task::Poll::Pending => return std::task::Poll::Pending,
513                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
514                        this.is_terminated = true;
515                        return std::task::Poll::Ready(None);
516                    }
517                    std::task::Poll::Ready(Err(e)) => {
518                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
519                            e.into(),
520                        ))));
521                    }
522                }
523
524                // A message has been received from the channel
525                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
526
527                std::task::Poll::Ready(Some(match header.ordinal {
528                    _ if header.tx_id == 0
529                        && header
530                            .dynamic_flags()
531                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
532                    {
533                        Ok(AjarTargetRequest::_UnknownMethod {
534                            ordinal: header.ordinal,
535                            control_handle: AjarTargetControlHandle { inner: this.inner.clone() },
536                        })
537                    }
538                    _ => Err(fidl::Error::UnknownOrdinal {
539                        ordinal: header.ordinal,
540                        protocol_name:
541                            <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
542                    }),
543                }))
544            },
545        )
546    }
547}
548
549#[derive(Debug)]
550pub enum AjarTargetRequest {
551    /// An interaction was received which does not match any known method.
552    #[non_exhaustive]
553    _UnknownMethod {
554        /// Ordinal of the method that was called.
555        ordinal: u64,
556        control_handle: AjarTargetControlHandle,
557    },
558}
559
560impl AjarTargetRequest {
561    /// Name of the method defined in FIDL
562    pub fn method_name(&self) -> &'static str {
563        match *self {
564            AjarTargetRequest::_UnknownMethod { .. } => "unknown one-way method",
565        }
566    }
567}
568
569#[derive(Debug, Clone)]
570pub struct AjarTargetControlHandle {
571    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
572}
573
574impl fidl::endpoints::ControlHandle for AjarTargetControlHandle {
575    fn shutdown(&self) {
576        self.inner.shutdown()
577    }
578
579    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
580        self.inner.shutdown_with_epitaph(status)
581    }
582
583    fn is_closed(&self) -> bool {
584        self.inner.channel().is_closed()
585    }
586    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
587        self.inner.channel().on_closed()
588    }
589
590    #[cfg(target_os = "fuchsia")]
591    fn signal_peer(
592        &self,
593        clear_mask: zx::Signals,
594        set_mask: zx::Signals,
595    ) -> Result<(), zx_status::Status> {
596        use fidl::Peered;
597        self.inner.channel().signal_peer(clear_mask, set_mask)
598    }
599}
600
601impl AjarTargetControlHandle {}
602
603#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
604pub struct AjarTargetEventReporterMarker;
605
606impl fidl::endpoints::ProtocolMarker for AjarTargetEventReporterMarker {
607    type Proxy = AjarTargetEventReporterProxy;
608    type RequestStream = AjarTargetEventReporterRequestStream;
609    #[cfg(target_os = "fuchsia")]
610    type SynchronousProxy = AjarTargetEventReporterSynchronousProxy;
611
612    const DEBUG_NAME: &'static str = "(anonymous) AjarTargetEventReporter";
613}
614
615pub trait AjarTargetEventReporterProxyInterface: Send + Sync {
616    fn r#report_event(&self, payload: &AjarTargetEventReport) -> Result<(), fidl::Error>;
617}
618#[derive(Debug)]
619#[cfg(target_os = "fuchsia")]
620pub struct AjarTargetEventReporterSynchronousProxy {
621    client: fidl::client::sync::Client,
622}
623
624#[cfg(target_os = "fuchsia")]
625impl fidl::endpoints::SynchronousProxy for AjarTargetEventReporterSynchronousProxy {
626    type Proxy = AjarTargetEventReporterProxy;
627    type Protocol = AjarTargetEventReporterMarker;
628
629    fn from_channel(inner: fidl::Channel) -> Self {
630        Self::new(inner)
631    }
632
633    fn into_channel(self) -> fidl::Channel {
634        self.client.into_channel()
635    }
636
637    fn as_channel(&self) -> &fidl::Channel {
638        self.client.as_channel()
639    }
640}
641
642#[cfg(target_os = "fuchsia")]
643impl AjarTargetEventReporterSynchronousProxy {
644    pub fn new(channel: fidl::Channel) -> Self {
645        let protocol_name =
646            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
647        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
648    }
649
650    pub fn into_channel(self) -> fidl::Channel {
651        self.client.into_channel()
652    }
653
654    /// Waits until an event arrives and returns it. It is safe for other
655    /// threads to make concurrent requests while waiting for an event.
656    pub fn wait_for_event(
657        &self,
658        deadline: zx::MonotonicInstant,
659    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
660        AjarTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
661    }
662
663    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
664        self.client.send::<AjarTargetEventReport>(
665            payload,
666            0x477b93390be99238,
667            fidl::encoding::DynamicFlags::empty(),
668        )
669    }
670}
671
672#[cfg(target_os = "fuchsia")]
673impl From<AjarTargetEventReporterSynchronousProxy> for zx::NullableHandle {
674    fn from(value: AjarTargetEventReporterSynchronousProxy) -> Self {
675        value.into_channel().into()
676    }
677}
678
679#[cfg(target_os = "fuchsia")]
680impl From<fidl::Channel> for AjarTargetEventReporterSynchronousProxy {
681    fn from(value: fidl::Channel) -> Self {
682        Self::new(value)
683    }
684}
685
686#[cfg(target_os = "fuchsia")]
687impl fidl::endpoints::FromClient for AjarTargetEventReporterSynchronousProxy {
688    type Protocol = AjarTargetEventReporterMarker;
689
690    fn from_client(value: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>) -> Self {
691        Self::new(value.into_channel())
692    }
693}
694
695#[derive(Debug, Clone)]
696pub struct AjarTargetEventReporterProxy {
697    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
698}
699
700impl fidl::endpoints::Proxy for AjarTargetEventReporterProxy {
701    type Protocol = AjarTargetEventReporterMarker;
702
703    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
704        Self::new(inner)
705    }
706
707    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
708        self.client.into_channel().map_err(|client| Self { client })
709    }
710
711    fn as_channel(&self) -> &::fidl::AsyncChannel {
712        self.client.as_channel()
713    }
714}
715
716impl AjarTargetEventReporterProxy {
717    /// Create a new Proxy for fidl.clientsuite/AjarTargetEventReporter.
718    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
719        let protocol_name =
720            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
721        Self { client: fidl::client::Client::new(channel, protocol_name) }
722    }
723
724    /// Get a Stream of events from the remote end of the protocol.
725    ///
726    /// # Panics
727    ///
728    /// Panics if the event stream was already taken.
729    pub fn take_event_stream(&self) -> AjarTargetEventReporterEventStream {
730        AjarTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
731    }
732
733    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
734        AjarTargetEventReporterProxyInterface::r#report_event(self, payload)
735    }
736}
737
738impl AjarTargetEventReporterProxyInterface for AjarTargetEventReporterProxy {
739    fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
740        self.client.send::<AjarTargetEventReport>(
741            payload,
742            0x477b93390be99238,
743            fidl::encoding::DynamicFlags::empty(),
744        )
745    }
746}
747
748pub struct AjarTargetEventReporterEventStream {
749    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
750}
751
752impl std::marker::Unpin for AjarTargetEventReporterEventStream {}
753
754impl futures::stream::FusedStream for AjarTargetEventReporterEventStream {
755    fn is_terminated(&self) -> bool {
756        self.event_receiver.is_terminated()
757    }
758}
759
760impl futures::Stream for AjarTargetEventReporterEventStream {
761    type Item = Result<AjarTargetEventReporterEvent, fidl::Error>;
762
763    fn poll_next(
764        mut self: std::pin::Pin<&mut Self>,
765        cx: &mut std::task::Context<'_>,
766    ) -> std::task::Poll<Option<Self::Item>> {
767        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
768            &mut self.event_receiver,
769            cx
770        )?) {
771            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEventReporterEvent::decode(buf))),
772            None => std::task::Poll::Ready(None),
773        }
774    }
775}
776
777#[derive(Debug)]
778pub enum AjarTargetEventReporterEvent {}
779
780impl AjarTargetEventReporterEvent {
781    /// Decodes a message buffer as a [`AjarTargetEventReporterEvent`].
782    fn decode(
783        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
784    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
785        let (bytes, _handles) = buf.split_mut();
786        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
787        debug_assert_eq!(tx_header.tx_id, 0);
788        match tx_header.ordinal {
789            _ => Err(fidl::Error::UnknownOrdinal {
790                ordinal: tx_header.ordinal,
791                protocol_name:
792                    <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
793            }),
794        }
795    }
796}
797
798/// A Stream of incoming requests for fidl.clientsuite/AjarTargetEventReporter.
799pub struct AjarTargetEventReporterRequestStream {
800    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
801    is_terminated: bool,
802}
803
804impl std::marker::Unpin for AjarTargetEventReporterRequestStream {}
805
806impl futures::stream::FusedStream for AjarTargetEventReporterRequestStream {
807    fn is_terminated(&self) -> bool {
808        self.is_terminated
809    }
810}
811
812impl fidl::endpoints::RequestStream for AjarTargetEventReporterRequestStream {
813    type Protocol = AjarTargetEventReporterMarker;
814    type ControlHandle = AjarTargetEventReporterControlHandle;
815
816    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
817        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
818    }
819
820    fn control_handle(&self) -> Self::ControlHandle {
821        AjarTargetEventReporterControlHandle { inner: self.inner.clone() }
822    }
823
824    fn into_inner(
825        self,
826    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
827    {
828        (self.inner, self.is_terminated)
829    }
830
831    fn from_inner(
832        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
833        is_terminated: bool,
834    ) -> Self {
835        Self { inner, is_terminated }
836    }
837}
838
839impl futures::Stream for AjarTargetEventReporterRequestStream {
840    type Item = Result<AjarTargetEventReporterRequest, fidl::Error>;
841
842    fn poll_next(
843        mut self: std::pin::Pin<&mut Self>,
844        cx: &mut std::task::Context<'_>,
845    ) -> std::task::Poll<Option<Self::Item>> {
846        let this = &mut *self;
847        if this.inner.check_shutdown(cx) {
848            this.is_terminated = true;
849            return std::task::Poll::Ready(None);
850        }
851        if this.is_terminated {
852            panic!("polled AjarTargetEventReporterRequestStream after completion");
853        }
854        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
855            |bytes, handles| {
856                match this.inner.channel().read_etc(cx, bytes, handles) {
857                    std::task::Poll::Ready(Ok(())) => {}
858                    std::task::Poll::Pending => return std::task::Poll::Pending,
859                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
860                        this.is_terminated = true;
861                        return std::task::Poll::Ready(None);
862                    }
863                    std::task::Poll::Ready(Err(e)) => {
864                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
865                            e.into(),
866                        ))));
867                    }
868                }
869
870                // A message has been received from the channel
871                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
872
873                std::task::Poll::Ready(Some(match header.ordinal {
874                0x477b93390be99238 => {
875                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
876                    let mut req = fidl::new_empty!(AjarTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
877                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<AjarTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
878                    let control_handle = AjarTargetEventReporterControlHandle {
879                        inner: this.inner.clone(),
880                    };
881                    Ok(AjarTargetEventReporterRequest::ReportEvent {payload: req,
882                        control_handle,
883                    })
884                }
885                _ => Err(fidl::Error::UnknownOrdinal {
886                    ordinal: header.ordinal,
887                    protocol_name: <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
888                }),
889            }))
890            },
891        )
892    }
893}
894
895#[derive(Debug)]
896pub enum AjarTargetEventReporterRequest {
897    ReportEvent {
898        payload: AjarTargetEventReport,
899        control_handle: AjarTargetEventReporterControlHandle,
900    },
901}
902
903impl AjarTargetEventReporterRequest {
904    #[allow(irrefutable_let_patterns)]
905    pub fn into_report_event(
906        self,
907    ) -> Option<(AjarTargetEventReport, AjarTargetEventReporterControlHandle)> {
908        if let AjarTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
909            Some((payload, control_handle))
910        } else {
911            None
912        }
913    }
914
915    /// Name of the method defined in FIDL
916    pub fn method_name(&self) -> &'static str {
917        match *self {
918            AjarTargetEventReporterRequest::ReportEvent { .. } => "report_event",
919        }
920    }
921}
922
923#[derive(Debug, Clone)]
924pub struct AjarTargetEventReporterControlHandle {
925    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
926}
927
928impl fidl::endpoints::ControlHandle for AjarTargetEventReporterControlHandle {
929    fn shutdown(&self) {
930        self.inner.shutdown()
931    }
932
933    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
934        self.inner.shutdown_with_epitaph(status)
935    }
936
937    fn is_closed(&self) -> bool {
938        self.inner.channel().is_closed()
939    }
940    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
941        self.inner.channel().on_closed()
942    }
943
944    #[cfg(target_os = "fuchsia")]
945    fn signal_peer(
946        &self,
947        clear_mask: zx::Signals,
948        set_mask: zx::Signals,
949    ) -> Result<(), zx_status::Status> {
950        use fidl::Peered;
951        self.inner.channel().signal_peer(clear_mask, set_mask)
952    }
953}
954
955impl AjarTargetEventReporterControlHandle {}
956
957#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
958pub struct ClosedTargetMarker;
959
960impl fidl::endpoints::ProtocolMarker for ClosedTargetMarker {
961    type Proxy = ClosedTargetProxy;
962    type RequestStream = ClosedTargetRequestStream;
963    #[cfg(target_os = "fuchsia")]
964    type SynchronousProxy = ClosedTargetSynchronousProxy;
965
966    const DEBUG_NAME: &'static str = "(anonymous) ClosedTarget";
967}
968pub type ClosedTargetTwoWayStructPayloadErrResult = Result<i32, i32>;
969
970pub trait ClosedTargetProxyInterface: Send + Sync {
971    type TwoWayNoPayloadResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
972    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut;
973    type TwoWayStructPayloadResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
974        + Send;
975    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut;
976    type TwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TablePayload, fidl::Error>>
977        + Send;
978    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut;
979    type TwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionPayload, fidl::Error>>
980        + Send;
981    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut;
982    type TwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error>>
983        + Send;
984    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut;
985    type TwoWayStructRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
986        + Send;
987    fn r#two_way_struct_request(&self, some_field: i32) -> Self::TwoWayStructRequestResponseFut;
988    type TwoWayTableRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
989    fn r#two_way_table_request(
990        &self,
991        payload: &TablePayload,
992    ) -> Self::TwoWayTableRequestResponseFut;
993    type TwoWayUnionRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
994    fn r#two_way_union_request(
995        &self,
996        payload: &UnionPayload,
997    ) -> Self::TwoWayUnionRequestResponseFut;
998    fn r#one_way_no_request(&self) -> Result<(), fidl::Error>;
999    fn r#one_way_struct_request(&self, some_field: i32) -> Result<(), fidl::Error>;
1000    fn r#one_way_table_request(&self, payload: &TablePayload) -> Result<(), fidl::Error>;
1001    fn r#one_way_union_request(&self, payload: &UnionPayload) -> Result<(), fidl::Error>;
1002}
1003#[derive(Debug)]
1004#[cfg(target_os = "fuchsia")]
1005pub struct ClosedTargetSynchronousProxy {
1006    client: fidl::client::sync::Client,
1007}
1008
1009#[cfg(target_os = "fuchsia")]
1010impl fidl::endpoints::SynchronousProxy for ClosedTargetSynchronousProxy {
1011    type Proxy = ClosedTargetProxy;
1012    type Protocol = ClosedTargetMarker;
1013
1014    fn from_channel(inner: fidl::Channel) -> Self {
1015        Self::new(inner)
1016    }
1017
1018    fn into_channel(self) -> fidl::Channel {
1019        self.client.into_channel()
1020    }
1021
1022    fn as_channel(&self) -> &fidl::Channel {
1023        self.client.as_channel()
1024    }
1025}
1026
1027#[cfg(target_os = "fuchsia")]
1028impl ClosedTargetSynchronousProxy {
1029    pub fn new(channel: fidl::Channel) -> Self {
1030        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1031        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1032    }
1033
1034    pub fn into_channel(self) -> fidl::Channel {
1035        self.client.into_channel()
1036    }
1037
1038    /// Waits until an event arrives and returns it. It is safe for other
1039    /// threads to make concurrent requests while waiting for an event.
1040    pub fn wait_for_event(
1041        &self,
1042        deadline: zx::MonotonicInstant,
1043    ) -> Result<ClosedTargetEvent, fidl::Error> {
1044        ClosedTargetEvent::decode(self.client.wait_for_event(deadline)?)
1045    }
1046
1047    pub fn r#two_way_no_payload(
1048        &self,
1049        ___deadline: zx::MonotonicInstant,
1050    ) -> Result<(), fidl::Error> {
1051        let _response =
1052            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
1053                (),
1054                0x7a722961424c1720,
1055                fidl::encoding::DynamicFlags::empty(),
1056                ___deadline,
1057            )?;
1058        Ok(_response)
1059    }
1060
1061    pub fn r#two_way_struct_payload(
1062        &self,
1063        ___deadline: zx::MonotonicInstant,
1064    ) -> Result<i32, fidl::Error> {
1065        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload>(
1066            (),
1067            0x3a402118bad781bd,
1068            fidl::encoding::DynamicFlags::empty(),
1069            ___deadline,
1070        )?;
1071        Ok(_response.some_field)
1072    }
1073
1074    pub fn r#two_way_table_payload(
1075        &self,
1076        ___deadline: zx::MonotonicInstant,
1077    ) -> Result<TablePayload, fidl::Error> {
1078        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, TablePayload>(
1079            (),
1080            0x53be101c241c66bc,
1081            fidl::encoding::DynamicFlags::empty(),
1082            ___deadline,
1083        )?;
1084        Ok(_response)
1085    }
1086
1087    pub fn r#two_way_union_payload(
1088        &self,
1089        ___deadline: zx::MonotonicInstant,
1090    ) -> Result<UnionPayload, fidl::Error> {
1091        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, UnionPayload>(
1092            (),
1093            0x1ff7f745ab608f8c,
1094            fidl::encoding::DynamicFlags::empty(),
1095            ___deadline,
1096        )?;
1097        Ok(_response)
1098    }
1099
1100    pub fn r#two_way_struct_payload_err(
1101        &self,
1102        ___deadline: zx::MonotonicInstant,
1103    ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1104        let _response = self.client.send_query::<
1105            fidl::encoding::EmptyPayload,
1106            fidl::encoding::ResultType<NonEmptyPayload, i32>,
1107        >(
1108            (),
1109            0x62b4861c443bbc0b,
1110            fidl::encoding::DynamicFlags::empty(),
1111            ___deadline,
1112        )?;
1113        Ok(_response.map(|x| x.some_field))
1114    }
1115
1116    pub fn r#two_way_struct_request(
1117        &self,
1118        mut some_field: i32,
1119        ___deadline: zx::MonotonicInstant,
1120    ) -> Result<(), fidl::Error> {
1121        let _response = self.client.send_query::<NonEmptyPayload, fidl::encoding::EmptyPayload>(
1122            (some_field,),
1123            0x4ff77b4a913be5b6,
1124            fidl::encoding::DynamicFlags::empty(),
1125            ___deadline,
1126        )?;
1127        Ok(_response)
1128    }
1129
1130    pub fn r#two_way_table_request(
1131        &self,
1132        mut payload: &TablePayload,
1133        ___deadline: zx::MonotonicInstant,
1134    ) -> Result<(), fidl::Error> {
1135        let _response = self.client.send_query::<TablePayload, fidl::encoding::EmptyPayload>(
1136            payload,
1137            0x3d38ad5b0f4f49cf,
1138            fidl::encoding::DynamicFlags::empty(),
1139            ___deadline,
1140        )?;
1141        Ok(_response)
1142    }
1143
1144    pub fn r#two_way_union_request(
1145        &self,
1146        mut payload: &UnionPayload,
1147        ___deadline: zx::MonotonicInstant,
1148    ) -> Result<(), fidl::Error> {
1149        let _response = self.client.send_query::<UnionPayload, fidl::encoding::EmptyPayload>(
1150            payload,
1151            0x7adb1c265a378e77,
1152            fidl::encoding::DynamicFlags::empty(),
1153            ___deadline,
1154        )?;
1155        Ok(_response)
1156    }
1157
1158    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1159        self.client.send::<fidl::encoding::EmptyPayload>(
1160            (),
1161            0xc376730a2cd8a05,
1162            fidl::encoding::DynamicFlags::empty(),
1163        )
1164    }
1165
1166    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1167        self.client.send::<NonEmptyPayload>(
1168            (some_field,),
1169            0x2618da6f51e0dcd2,
1170            fidl::encoding::DynamicFlags::empty(),
1171        )
1172    }
1173
1174    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1175        self.client.send::<TablePayload>(
1176            payload,
1177            0x1a4b7d32eaed401f,
1178            fidl::encoding::DynamicFlags::empty(),
1179        )
1180    }
1181
1182    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1183        self.client.send::<UnionPayload>(
1184            payload,
1185            0x142b3cd9ea530de5,
1186            fidl::encoding::DynamicFlags::empty(),
1187        )
1188    }
1189}
1190
1191#[cfg(target_os = "fuchsia")]
1192impl From<ClosedTargetSynchronousProxy> for zx::NullableHandle {
1193    fn from(value: ClosedTargetSynchronousProxy) -> Self {
1194        value.into_channel().into()
1195    }
1196}
1197
1198#[cfg(target_os = "fuchsia")]
1199impl From<fidl::Channel> for ClosedTargetSynchronousProxy {
1200    fn from(value: fidl::Channel) -> Self {
1201        Self::new(value)
1202    }
1203}
1204
1205#[cfg(target_os = "fuchsia")]
1206impl fidl::endpoints::FromClient for ClosedTargetSynchronousProxy {
1207    type Protocol = ClosedTargetMarker;
1208
1209    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetMarker>) -> Self {
1210        Self::new(value.into_channel())
1211    }
1212}
1213
1214#[derive(Debug, Clone)]
1215pub struct ClosedTargetProxy {
1216    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1217}
1218
1219impl fidl::endpoints::Proxy for ClosedTargetProxy {
1220    type Protocol = ClosedTargetMarker;
1221
1222    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1223        Self::new(inner)
1224    }
1225
1226    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1227        self.client.into_channel().map_err(|client| Self { client })
1228    }
1229
1230    fn as_channel(&self) -> &::fidl::AsyncChannel {
1231        self.client.as_channel()
1232    }
1233}
1234
1235impl ClosedTargetProxy {
1236    /// Create a new Proxy for fidl.clientsuite/ClosedTarget.
1237    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1238        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1239        Self { client: fidl::client::Client::new(channel, protocol_name) }
1240    }
1241
1242    /// Get a Stream of events from the remote end of the protocol.
1243    ///
1244    /// # Panics
1245    ///
1246    /// Panics if the event stream was already taken.
1247    pub fn take_event_stream(&self) -> ClosedTargetEventStream {
1248        ClosedTargetEventStream { event_receiver: self.client.take_event_receiver() }
1249    }
1250
1251    pub fn r#two_way_no_payload(
1252        &self,
1253    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1254        ClosedTargetProxyInterface::r#two_way_no_payload(self)
1255    }
1256
1257    pub fn r#two_way_struct_payload(
1258        &self,
1259    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
1260        ClosedTargetProxyInterface::r#two_way_struct_payload(self)
1261    }
1262
1263    pub fn r#two_way_table_payload(
1264        &self,
1265    ) -> fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1266    {
1267        ClosedTargetProxyInterface::r#two_way_table_payload(self)
1268    }
1269
1270    pub fn r#two_way_union_payload(
1271        &self,
1272    ) -> fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1273    {
1274        ClosedTargetProxyInterface::r#two_way_union_payload(self)
1275    }
1276
1277    pub fn r#two_way_struct_payload_err(
1278        &self,
1279    ) -> fidl::client::QueryResponseFut<
1280        ClosedTargetTwoWayStructPayloadErrResult,
1281        fidl::encoding::DefaultFuchsiaResourceDialect,
1282    > {
1283        ClosedTargetProxyInterface::r#two_way_struct_payload_err(self)
1284    }
1285
1286    pub fn r#two_way_struct_request(
1287        &self,
1288        mut some_field: i32,
1289    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1290        ClosedTargetProxyInterface::r#two_way_struct_request(self, some_field)
1291    }
1292
1293    pub fn r#two_way_table_request(
1294        &self,
1295        mut payload: &TablePayload,
1296    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1297        ClosedTargetProxyInterface::r#two_way_table_request(self, payload)
1298    }
1299
1300    pub fn r#two_way_union_request(
1301        &self,
1302        mut payload: &UnionPayload,
1303    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1304        ClosedTargetProxyInterface::r#two_way_union_request(self, payload)
1305    }
1306
1307    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1308        ClosedTargetProxyInterface::r#one_way_no_request(self)
1309    }
1310
1311    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1312        ClosedTargetProxyInterface::r#one_way_struct_request(self, some_field)
1313    }
1314
1315    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1316        ClosedTargetProxyInterface::r#one_way_table_request(self, payload)
1317    }
1318
1319    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1320        ClosedTargetProxyInterface::r#one_way_union_request(self, payload)
1321    }
1322}
1323
1324impl ClosedTargetProxyInterface for ClosedTargetProxy {
1325    type TwoWayNoPayloadResponseFut =
1326        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1327    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut {
1328        fn _decode(
1329            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1330        ) -> Result<(), fidl::Error> {
1331            let _response = fidl::client::decode_transaction_body::<
1332                fidl::encoding::EmptyPayload,
1333                fidl::encoding::DefaultFuchsiaResourceDialect,
1334                0x7a722961424c1720,
1335            >(_buf?)?;
1336            Ok(_response)
1337        }
1338        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
1339            (),
1340            0x7a722961424c1720,
1341            fidl::encoding::DynamicFlags::empty(),
1342            _decode,
1343        )
1344    }
1345
1346    type TwoWayStructPayloadResponseFut =
1347        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
1348    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut {
1349        fn _decode(
1350            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1351        ) -> Result<i32, fidl::Error> {
1352            let _response = fidl::client::decode_transaction_body::<
1353                NonEmptyPayload,
1354                fidl::encoding::DefaultFuchsiaResourceDialect,
1355                0x3a402118bad781bd,
1356            >(_buf?)?;
1357            Ok(_response.some_field)
1358        }
1359        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
1360            (),
1361            0x3a402118bad781bd,
1362            fidl::encoding::DynamicFlags::empty(),
1363            _decode,
1364        )
1365    }
1366
1367    type TwoWayTablePayloadResponseFut =
1368        fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1369    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut {
1370        fn _decode(
1371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1372        ) -> Result<TablePayload, fidl::Error> {
1373            let _response = fidl::client::decode_transaction_body::<
1374                TablePayload,
1375                fidl::encoding::DefaultFuchsiaResourceDialect,
1376                0x53be101c241c66bc,
1377            >(_buf?)?;
1378            Ok(_response)
1379        }
1380        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, TablePayload>(
1381            (),
1382            0x53be101c241c66bc,
1383            fidl::encoding::DynamicFlags::empty(),
1384            _decode,
1385        )
1386    }
1387
1388    type TwoWayUnionPayloadResponseFut =
1389        fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1390    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut {
1391        fn _decode(
1392            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1393        ) -> Result<UnionPayload, fidl::Error> {
1394            let _response = fidl::client::decode_transaction_body::<
1395                UnionPayload,
1396                fidl::encoding::DefaultFuchsiaResourceDialect,
1397                0x1ff7f745ab608f8c,
1398            >(_buf?)?;
1399            Ok(_response)
1400        }
1401        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, UnionPayload>(
1402            (),
1403            0x1ff7f745ab608f8c,
1404            fidl::encoding::DynamicFlags::empty(),
1405            _decode,
1406        )
1407    }
1408
1409    type TwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
1410        ClosedTargetTwoWayStructPayloadErrResult,
1411        fidl::encoding::DefaultFuchsiaResourceDialect,
1412    >;
1413    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut {
1414        fn _decode(
1415            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1416        ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1417            let _response = fidl::client::decode_transaction_body::<
1418                fidl::encoding::ResultType<NonEmptyPayload, i32>,
1419                fidl::encoding::DefaultFuchsiaResourceDialect,
1420                0x62b4861c443bbc0b,
1421            >(_buf?)?;
1422            Ok(_response.map(|x| x.some_field))
1423        }
1424        self.client.send_query_and_decode::<
1425            fidl::encoding::EmptyPayload,
1426            ClosedTargetTwoWayStructPayloadErrResult,
1427        >(
1428            (),
1429            0x62b4861c443bbc0b,
1430            fidl::encoding::DynamicFlags::empty(),
1431            _decode,
1432        )
1433    }
1434
1435    type TwoWayStructRequestResponseFut =
1436        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1437    fn r#two_way_struct_request(
1438        &self,
1439        mut some_field: i32,
1440    ) -> Self::TwoWayStructRequestResponseFut {
1441        fn _decode(
1442            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1443        ) -> Result<(), fidl::Error> {
1444            let _response = fidl::client::decode_transaction_body::<
1445                fidl::encoding::EmptyPayload,
1446                fidl::encoding::DefaultFuchsiaResourceDialect,
1447                0x4ff77b4a913be5b6,
1448            >(_buf?)?;
1449            Ok(_response)
1450        }
1451        self.client.send_query_and_decode::<NonEmptyPayload, ()>(
1452            (some_field,),
1453            0x4ff77b4a913be5b6,
1454            fidl::encoding::DynamicFlags::empty(),
1455            _decode,
1456        )
1457    }
1458
1459    type TwoWayTableRequestResponseFut =
1460        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1461    fn r#two_way_table_request(
1462        &self,
1463        mut payload: &TablePayload,
1464    ) -> Self::TwoWayTableRequestResponseFut {
1465        fn _decode(
1466            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1467        ) -> Result<(), fidl::Error> {
1468            let _response = fidl::client::decode_transaction_body::<
1469                fidl::encoding::EmptyPayload,
1470                fidl::encoding::DefaultFuchsiaResourceDialect,
1471                0x3d38ad5b0f4f49cf,
1472            >(_buf?)?;
1473            Ok(_response)
1474        }
1475        self.client.send_query_and_decode::<TablePayload, ()>(
1476            payload,
1477            0x3d38ad5b0f4f49cf,
1478            fidl::encoding::DynamicFlags::empty(),
1479            _decode,
1480        )
1481    }
1482
1483    type TwoWayUnionRequestResponseFut =
1484        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1485    fn r#two_way_union_request(
1486        &self,
1487        mut payload: &UnionPayload,
1488    ) -> Self::TwoWayUnionRequestResponseFut {
1489        fn _decode(
1490            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1491        ) -> Result<(), fidl::Error> {
1492            let _response = fidl::client::decode_transaction_body::<
1493                fidl::encoding::EmptyPayload,
1494                fidl::encoding::DefaultFuchsiaResourceDialect,
1495                0x7adb1c265a378e77,
1496            >(_buf?)?;
1497            Ok(_response)
1498        }
1499        self.client.send_query_and_decode::<UnionPayload, ()>(
1500            payload,
1501            0x7adb1c265a378e77,
1502            fidl::encoding::DynamicFlags::empty(),
1503            _decode,
1504        )
1505    }
1506
1507    fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1508        self.client.send::<fidl::encoding::EmptyPayload>(
1509            (),
1510            0xc376730a2cd8a05,
1511            fidl::encoding::DynamicFlags::empty(),
1512        )
1513    }
1514
1515    fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1516        self.client.send::<NonEmptyPayload>(
1517            (some_field,),
1518            0x2618da6f51e0dcd2,
1519            fidl::encoding::DynamicFlags::empty(),
1520        )
1521    }
1522
1523    fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1524        self.client.send::<TablePayload>(
1525            payload,
1526            0x1a4b7d32eaed401f,
1527            fidl::encoding::DynamicFlags::empty(),
1528        )
1529    }
1530
1531    fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1532        self.client.send::<UnionPayload>(
1533            payload,
1534            0x142b3cd9ea530de5,
1535            fidl::encoding::DynamicFlags::empty(),
1536        )
1537    }
1538}
1539
1540pub struct ClosedTargetEventStream {
1541    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1542}
1543
1544impl std::marker::Unpin for ClosedTargetEventStream {}
1545
1546impl futures::stream::FusedStream for ClosedTargetEventStream {
1547    fn is_terminated(&self) -> bool {
1548        self.event_receiver.is_terminated()
1549    }
1550}
1551
1552impl futures::Stream for ClosedTargetEventStream {
1553    type Item = Result<ClosedTargetEvent, fidl::Error>;
1554
1555    fn poll_next(
1556        mut self: std::pin::Pin<&mut Self>,
1557        cx: &mut std::task::Context<'_>,
1558    ) -> std::task::Poll<Option<Self::Item>> {
1559        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1560            &mut self.event_receiver,
1561            cx
1562        )?) {
1563            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEvent::decode(buf))),
1564            None => std::task::Poll::Ready(None),
1565        }
1566    }
1567}
1568
1569#[derive(Debug)]
1570pub enum ClosedTargetEvent {
1571    OnEventNoPayload {},
1572    OnEventStructPayload { some_field: i32 },
1573    OnEventTablePayload { payload: TablePayload },
1574    OnEventUnionPayload { payload: UnionPayload },
1575}
1576
1577impl ClosedTargetEvent {
1578    #[allow(irrefutable_let_patterns)]
1579    pub fn into_on_event_no_payload(self) -> Option<()> {
1580        if let ClosedTargetEvent::OnEventNoPayload {} = self { Some(()) } else { None }
1581    }
1582    #[allow(irrefutable_let_patterns)]
1583    pub fn into_on_event_struct_payload(self) -> Option<i32> {
1584        if let ClosedTargetEvent::OnEventStructPayload { some_field } = self {
1585            Some((some_field))
1586        } else {
1587            None
1588        }
1589    }
1590    #[allow(irrefutable_let_patterns)]
1591    pub fn into_on_event_table_payload(self) -> Option<TablePayload> {
1592        if let ClosedTargetEvent::OnEventTablePayload { payload } = self {
1593            Some((payload))
1594        } else {
1595            None
1596        }
1597    }
1598    #[allow(irrefutable_let_patterns)]
1599    pub fn into_on_event_union_payload(self) -> Option<UnionPayload> {
1600        if let ClosedTargetEvent::OnEventUnionPayload { payload } = self {
1601            Some((payload))
1602        } else {
1603            None
1604        }
1605    }
1606
1607    /// Decodes a message buffer as a [`ClosedTargetEvent`].
1608    fn decode(
1609        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1610    ) -> Result<ClosedTargetEvent, fidl::Error> {
1611        let (bytes, _handles) = buf.split_mut();
1612        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1613        debug_assert_eq!(tx_header.tx_id, 0);
1614        match tx_header.ordinal {
1615            0x4ee7b8d3e6bb36a6 => {
1616                let mut out = fidl::new_empty!(
1617                    fidl::encoding::EmptyPayload,
1618                    fidl::encoding::DefaultFuchsiaResourceDialect
1619                );
1620                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1621                Ok((ClosedTargetEvent::OnEventNoPayload {}))
1622            }
1623            0x48e8c897893ae266 => {
1624                let mut out = fidl::new_empty!(
1625                    NonEmptyPayload,
1626                    fidl::encoding::DefaultFuchsiaResourceDialect
1627                );
1628                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1629                Ok((ClosedTargetEvent::OnEventStructPayload { some_field: out.some_field }))
1630            }
1631            0x72837525f4f3e746 => {
1632                let mut out =
1633                    fidl::new_empty!(TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1634                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1635                Ok((ClosedTargetEvent::OnEventTablePayload { payload: out }))
1636            }
1637            0x69c6390e1ac48ea0 => {
1638                let mut out =
1639                    fidl::new_empty!(UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1640                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1641                Ok((ClosedTargetEvent::OnEventUnionPayload { payload: out }))
1642            }
1643            _ => Err(fidl::Error::UnknownOrdinal {
1644                ordinal: tx_header.ordinal,
1645                protocol_name: <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1646            }),
1647        }
1648    }
1649}
1650
1651/// A Stream of incoming requests for fidl.clientsuite/ClosedTarget.
1652pub struct ClosedTargetRequestStream {
1653    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1654    is_terminated: bool,
1655}
1656
1657impl std::marker::Unpin for ClosedTargetRequestStream {}
1658
1659impl futures::stream::FusedStream for ClosedTargetRequestStream {
1660    fn is_terminated(&self) -> bool {
1661        self.is_terminated
1662    }
1663}
1664
1665impl fidl::endpoints::RequestStream for ClosedTargetRequestStream {
1666    type Protocol = ClosedTargetMarker;
1667    type ControlHandle = ClosedTargetControlHandle;
1668
1669    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1670        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1671    }
1672
1673    fn control_handle(&self) -> Self::ControlHandle {
1674        ClosedTargetControlHandle { inner: self.inner.clone() }
1675    }
1676
1677    fn into_inner(
1678        self,
1679    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1680    {
1681        (self.inner, self.is_terminated)
1682    }
1683
1684    fn from_inner(
1685        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1686        is_terminated: bool,
1687    ) -> Self {
1688        Self { inner, is_terminated }
1689    }
1690}
1691
1692impl futures::Stream for ClosedTargetRequestStream {
1693    type Item = Result<ClosedTargetRequest, fidl::Error>;
1694
1695    fn poll_next(
1696        mut self: std::pin::Pin<&mut Self>,
1697        cx: &mut std::task::Context<'_>,
1698    ) -> std::task::Poll<Option<Self::Item>> {
1699        let this = &mut *self;
1700        if this.inner.check_shutdown(cx) {
1701            this.is_terminated = true;
1702            return std::task::Poll::Ready(None);
1703        }
1704        if this.is_terminated {
1705            panic!("polled ClosedTargetRequestStream after completion");
1706        }
1707        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1708            |bytes, handles| {
1709                match this.inner.channel().read_etc(cx, bytes, handles) {
1710                    std::task::Poll::Ready(Ok(())) => {}
1711                    std::task::Poll::Pending => return std::task::Poll::Pending,
1712                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1713                        this.is_terminated = true;
1714                        return std::task::Poll::Ready(None);
1715                    }
1716                    std::task::Poll::Ready(Err(e)) => {
1717                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1718                            e.into(),
1719                        ))));
1720                    }
1721                }
1722
1723                // A message has been received from the channel
1724                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1725
1726                std::task::Poll::Ready(Some(match header.ordinal {
1727                    0x7a722961424c1720 => {
1728                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1729                        let mut req = fidl::new_empty!(
1730                            fidl::encoding::EmptyPayload,
1731                            fidl::encoding::DefaultFuchsiaResourceDialect
1732                        );
1733                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1734                        let control_handle =
1735                            ClosedTargetControlHandle { inner: this.inner.clone() };
1736                        Ok(ClosedTargetRequest::TwoWayNoPayload {
1737                            responder: ClosedTargetTwoWayNoPayloadResponder {
1738                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1739                                tx_id: header.tx_id,
1740                            },
1741                        })
1742                    }
1743                    0x3a402118bad781bd => {
1744                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1745                        let mut req = fidl::new_empty!(
1746                            fidl::encoding::EmptyPayload,
1747                            fidl::encoding::DefaultFuchsiaResourceDialect
1748                        );
1749                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1750                        let control_handle =
1751                            ClosedTargetControlHandle { inner: this.inner.clone() };
1752                        Ok(ClosedTargetRequest::TwoWayStructPayload {
1753                            responder: ClosedTargetTwoWayStructPayloadResponder {
1754                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1755                                tx_id: header.tx_id,
1756                            },
1757                        })
1758                    }
1759                    0x53be101c241c66bc => {
1760                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1761                        let mut req = fidl::new_empty!(
1762                            fidl::encoding::EmptyPayload,
1763                            fidl::encoding::DefaultFuchsiaResourceDialect
1764                        );
1765                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1766                        let control_handle =
1767                            ClosedTargetControlHandle { inner: this.inner.clone() };
1768                        Ok(ClosedTargetRequest::TwoWayTablePayload {
1769                            responder: ClosedTargetTwoWayTablePayloadResponder {
1770                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1771                                tx_id: header.tx_id,
1772                            },
1773                        })
1774                    }
1775                    0x1ff7f745ab608f8c => {
1776                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1777                        let mut req = fidl::new_empty!(
1778                            fidl::encoding::EmptyPayload,
1779                            fidl::encoding::DefaultFuchsiaResourceDialect
1780                        );
1781                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1782                        let control_handle =
1783                            ClosedTargetControlHandle { inner: this.inner.clone() };
1784                        Ok(ClosedTargetRequest::TwoWayUnionPayload {
1785                            responder: ClosedTargetTwoWayUnionPayloadResponder {
1786                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1787                                tx_id: header.tx_id,
1788                            },
1789                        })
1790                    }
1791                    0x62b4861c443bbc0b => {
1792                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1793                        let mut req = fidl::new_empty!(
1794                            fidl::encoding::EmptyPayload,
1795                            fidl::encoding::DefaultFuchsiaResourceDialect
1796                        );
1797                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1798                        let control_handle =
1799                            ClosedTargetControlHandle { inner: this.inner.clone() };
1800                        Ok(ClosedTargetRequest::TwoWayStructPayloadErr {
1801                            responder: ClosedTargetTwoWayStructPayloadErrResponder {
1802                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1803                                tx_id: header.tx_id,
1804                            },
1805                        })
1806                    }
1807                    0x4ff77b4a913be5b6 => {
1808                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1809                        let mut req = fidl::new_empty!(
1810                            NonEmptyPayload,
1811                            fidl::encoding::DefaultFuchsiaResourceDialect
1812                        );
1813                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1814                        let control_handle =
1815                            ClosedTargetControlHandle { inner: this.inner.clone() };
1816                        Ok(ClosedTargetRequest::TwoWayStructRequest {
1817                            some_field: req.some_field,
1818
1819                            responder: ClosedTargetTwoWayStructRequestResponder {
1820                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1821                                tx_id: header.tx_id,
1822                            },
1823                        })
1824                    }
1825                    0x3d38ad5b0f4f49cf => {
1826                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1827                        let mut req = fidl::new_empty!(
1828                            TablePayload,
1829                            fidl::encoding::DefaultFuchsiaResourceDialect
1830                        );
1831                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1832                        let control_handle =
1833                            ClosedTargetControlHandle { inner: this.inner.clone() };
1834                        Ok(ClosedTargetRequest::TwoWayTableRequest {
1835                            payload: req,
1836                            responder: ClosedTargetTwoWayTableRequestResponder {
1837                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1838                                tx_id: header.tx_id,
1839                            },
1840                        })
1841                    }
1842                    0x7adb1c265a378e77 => {
1843                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1844                        let mut req = fidl::new_empty!(
1845                            UnionPayload,
1846                            fidl::encoding::DefaultFuchsiaResourceDialect
1847                        );
1848                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1849                        let control_handle =
1850                            ClosedTargetControlHandle { inner: this.inner.clone() };
1851                        Ok(ClosedTargetRequest::TwoWayUnionRequest {
1852                            payload: req,
1853                            responder: ClosedTargetTwoWayUnionRequestResponder {
1854                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1855                                tx_id: header.tx_id,
1856                            },
1857                        })
1858                    }
1859                    0xc376730a2cd8a05 => {
1860                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1861                        let mut req = fidl::new_empty!(
1862                            fidl::encoding::EmptyPayload,
1863                            fidl::encoding::DefaultFuchsiaResourceDialect
1864                        );
1865                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1866                        let control_handle =
1867                            ClosedTargetControlHandle { inner: this.inner.clone() };
1868                        Ok(ClosedTargetRequest::OneWayNoRequest { control_handle })
1869                    }
1870                    0x2618da6f51e0dcd2 => {
1871                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1872                        let mut req = fidl::new_empty!(
1873                            NonEmptyPayload,
1874                            fidl::encoding::DefaultFuchsiaResourceDialect
1875                        );
1876                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1877                        let control_handle =
1878                            ClosedTargetControlHandle { inner: this.inner.clone() };
1879                        Ok(ClosedTargetRequest::OneWayStructRequest {
1880                            some_field: req.some_field,
1881
1882                            control_handle,
1883                        })
1884                    }
1885                    0x1a4b7d32eaed401f => {
1886                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1887                        let mut req = fidl::new_empty!(
1888                            TablePayload,
1889                            fidl::encoding::DefaultFuchsiaResourceDialect
1890                        );
1891                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1892                        let control_handle =
1893                            ClosedTargetControlHandle { inner: this.inner.clone() };
1894                        Ok(ClosedTargetRequest::OneWayTableRequest { payload: req, control_handle })
1895                    }
1896                    0x142b3cd9ea530de5 => {
1897                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1898                        let mut req = fidl::new_empty!(
1899                            UnionPayload,
1900                            fidl::encoding::DefaultFuchsiaResourceDialect
1901                        );
1902                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1903                        let control_handle =
1904                            ClosedTargetControlHandle { inner: this.inner.clone() };
1905                        Ok(ClosedTargetRequest::OneWayUnionRequest { payload: req, control_handle })
1906                    }
1907                    _ => Err(fidl::Error::UnknownOrdinal {
1908                        ordinal: header.ordinal,
1909                        protocol_name:
1910                            <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1911                    }),
1912                }))
1913            },
1914        )
1915    }
1916}
1917
1918#[derive(Debug)]
1919pub enum ClosedTargetRequest {
1920    TwoWayNoPayload { responder: ClosedTargetTwoWayNoPayloadResponder },
1921    TwoWayStructPayload { responder: ClosedTargetTwoWayStructPayloadResponder },
1922    TwoWayTablePayload { responder: ClosedTargetTwoWayTablePayloadResponder },
1923    TwoWayUnionPayload { responder: ClosedTargetTwoWayUnionPayloadResponder },
1924    TwoWayStructPayloadErr { responder: ClosedTargetTwoWayStructPayloadErrResponder },
1925    TwoWayStructRequest { some_field: i32, responder: ClosedTargetTwoWayStructRequestResponder },
1926    TwoWayTableRequest { payload: TablePayload, responder: ClosedTargetTwoWayTableRequestResponder },
1927    TwoWayUnionRequest { payload: UnionPayload, responder: ClosedTargetTwoWayUnionRequestResponder },
1928    OneWayNoRequest { control_handle: ClosedTargetControlHandle },
1929    OneWayStructRequest { some_field: i32, control_handle: ClosedTargetControlHandle },
1930    OneWayTableRequest { payload: TablePayload, control_handle: ClosedTargetControlHandle },
1931    OneWayUnionRequest { payload: UnionPayload, control_handle: ClosedTargetControlHandle },
1932}
1933
1934impl ClosedTargetRequest {
1935    #[allow(irrefutable_let_patterns)]
1936    pub fn into_two_way_no_payload(self) -> Option<(ClosedTargetTwoWayNoPayloadResponder)> {
1937        if let ClosedTargetRequest::TwoWayNoPayload { responder } = self {
1938            Some((responder))
1939        } else {
1940            None
1941        }
1942    }
1943
1944    #[allow(irrefutable_let_patterns)]
1945    pub fn into_two_way_struct_payload(self) -> Option<(ClosedTargetTwoWayStructPayloadResponder)> {
1946        if let ClosedTargetRequest::TwoWayStructPayload { responder } = self {
1947            Some((responder))
1948        } else {
1949            None
1950        }
1951    }
1952
1953    #[allow(irrefutable_let_patterns)]
1954    pub fn into_two_way_table_payload(self) -> Option<(ClosedTargetTwoWayTablePayloadResponder)> {
1955        if let ClosedTargetRequest::TwoWayTablePayload { responder } = self {
1956            Some((responder))
1957        } else {
1958            None
1959        }
1960    }
1961
1962    #[allow(irrefutable_let_patterns)]
1963    pub fn into_two_way_union_payload(self) -> Option<(ClosedTargetTwoWayUnionPayloadResponder)> {
1964        if let ClosedTargetRequest::TwoWayUnionPayload { responder } = self {
1965            Some((responder))
1966        } else {
1967            None
1968        }
1969    }
1970
1971    #[allow(irrefutable_let_patterns)]
1972    pub fn into_two_way_struct_payload_err(
1973        self,
1974    ) -> Option<(ClosedTargetTwoWayStructPayloadErrResponder)> {
1975        if let ClosedTargetRequest::TwoWayStructPayloadErr { responder } = self {
1976            Some((responder))
1977        } else {
1978            None
1979        }
1980    }
1981
1982    #[allow(irrefutable_let_patterns)]
1983    pub fn into_two_way_struct_request(
1984        self,
1985    ) -> Option<(i32, ClosedTargetTwoWayStructRequestResponder)> {
1986        if let ClosedTargetRequest::TwoWayStructRequest { some_field, responder } = self {
1987            Some((some_field, responder))
1988        } else {
1989            None
1990        }
1991    }
1992
1993    #[allow(irrefutable_let_patterns)]
1994    pub fn into_two_way_table_request(
1995        self,
1996    ) -> Option<(TablePayload, ClosedTargetTwoWayTableRequestResponder)> {
1997        if let ClosedTargetRequest::TwoWayTableRequest { payload, responder } = self {
1998            Some((payload, responder))
1999        } else {
2000            None
2001        }
2002    }
2003
2004    #[allow(irrefutable_let_patterns)]
2005    pub fn into_two_way_union_request(
2006        self,
2007    ) -> Option<(UnionPayload, ClosedTargetTwoWayUnionRequestResponder)> {
2008        if let ClosedTargetRequest::TwoWayUnionRequest { payload, responder } = self {
2009            Some((payload, responder))
2010        } else {
2011            None
2012        }
2013    }
2014
2015    #[allow(irrefutable_let_patterns)]
2016    pub fn into_one_way_no_request(self) -> Option<(ClosedTargetControlHandle)> {
2017        if let ClosedTargetRequest::OneWayNoRequest { control_handle } = self {
2018            Some((control_handle))
2019        } else {
2020            None
2021        }
2022    }
2023
2024    #[allow(irrefutable_let_patterns)]
2025    pub fn into_one_way_struct_request(self) -> Option<(i32, ClosedTargetControlHandle)> {
2026        if let ClosedTargetRequest::OneWayStructRequest { some_field, control_handle } = self {
2027            Some((some_field, control_handle))
2028        } else {
2029            None
2030        }
2031    }
2032
2033    #[allow(irrefutable_let_patterns)]
2034    pub fn into_one_way_table_request(self) -> Option<(TablePayload, ClosedTargetControlHandle)> {
2035        if let ClosedTargetRequest::OneWayTableRequest { payload, control_handle } = self {
2036            Some((payload, control_handle))
2037        } else {
2038            None
2039        }
2040    }
2041
2042    #[allow(irrefutable_let_patterns)]
2043    pub fn into_one_way_union_request(self) -> Option<(UnionPayload, ClosedTargetControlHandle)> {
2044        if let ClosedTargetRequest::OneWayUnionRequest { payload, control_handle } = self {
2045            Some((payload, control_handle))
2046        } else {
2047            None
2048        }
2049    }
2050
2051    /// Name of the method defined in FIDL
2052    pub fn method_name(&self) -> &'static str {
2053        match *self {
2054            ClosedTargetRequest::TwoWayNoPayload { .. } => "two_way_no_payload",
2055            ClosedTargetRequest::TwoWayStructPayload { .. } => "two_way_struct_payload",
2056            ClosedTargetRequest::TwoWayTablePayload { .. } => "two_way_table_payload",
2057            ClosedTargetRequest::TwoWayUnionPayload { .. } => "two_way_union_payload",
2058            ClosedTargetRequest::TwoWayStructPayloadErr { .. } => "two_way_struct_payload_err",
2059            ClosedTargetRequest::TwoWayStructRequest { .. } => "two_way_struct_request",
2060            ClosedTargetRequest::TwoWayTableRequest { .. } => "two_way_table_request",
2061            ClosedTargetRequest::TwoWayUnionRequest { .. } => "two_way_union_request",
2062            ClosedTargetRequest::OneWayNoRequest { .. } => "one_way_no_request",
2063            ClosedTargetRequest::OneWayStructRequest { .. } => "one_way_struct_request",
2064            ClosedTargetRequest::OneWayTableRequest { .. } => "one_way_table_request",
2065            ClosedTargetRequest::OneWayUnionRequest { .. } => "one_way_union_request",
2066        }
2067    }
2068}
2069
2070#[derive(Debug, Clone)]
2071pub struct ClosedTargetControlHandle {
2072    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2073}
2074
2075impl fidl::endpoints::ControlHandle for ClosedTargetControlHandle {
2076    fn shutdown(&self) {
2077        self.inner.shutdown()
2078    }
2079
2080    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2081        self.inner.shutdown_with_epitaph(status)
2082    }
2083
2084    fn is_closed(&self) -> bool {
2085        self.inner.channel().is_closed()
2086    }
2087    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2088        self.inner.channel().on_closed()
2089    }
2090
2091    #[cfg(target_os = "fuchsia")]
2092    fn signal_peer(
2093        &self,
2094        clear_mask: zx::Signals,
2095        set_mask: zx::Signals,
2096    ) -> Result<(), zx_status::Status> {
2097        use fidl::Peered;
2098        self.inner.channel().signal_peer(clear_mask, set_mask)
2099    }
2100}
2101
2102impl ClosedTargetControlHandle {
2103    pub fn send_on_event_no_payload(&self) -> Result<(), fidl::Error> {
2104        self.inner.send::<fidl::encoding::EmptyPayload>(
2105            (),
2106            0,
2107            0x4ee7b8d3e6bb36a6,
2108            fidl::encoding::DynamicFlags::empty(),
2109        )
2110    }
2111
2112    pub fn send_on_event_struct_payload(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2113        self.inner.send::<NonEmptyPayload>(
2114            (some_field,),
2115            0,
2116            0x48e8c897893ae266,
2117            fidl::encoding::DynamicFlags::empty(),
2118        )
2119    }
2120
2121    pub fn send_on_event_table_payload(
2122        &self,
2123        mut payload: &TablePayload,
2124    ) -> Result<(), fidl::Error> {
2125        self.inner.send::<TablePayload>(
2126            payload,
2127            0,
2128            0x72837525f4f3e746,
2129            fidl::encoding::DynamicFlags::empty(),
2130        )
2131    }
2132
2133    pub fn send_on_event_union_payload(
2134        &self,
2135        mut payload: &UnionPayload,
2136    ) -> Result<(), fidl::Error> {
2137        self.inner.send::<UnionPayload>(
2138            payload,
2139            0,
2140            0x69c6390e1ac48ea0,
2141            fidl::encoding::DynamicFlags::empty(),
2142        )
2143    }
2144}
2145
2146#[must_use = "FIDL methods require a response to be sent"]
2147#[derive(Debug)]
2148pub struct ClosedTargetTwoWayNoPayloadResponder {
2149    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2150    tx_id: u32,
2151}
2152
2153/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2154/// if the responder is dropped without sending a response, so that the client
2155/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2156impl std::ops::Drop for ClosedTargetTwoWayNoPayloadResponder {
2157    fn drop(&mut self) {
2158        self.control_handle.shutdown();
2159        // Safety: drops once, never accessed again
2160        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2161    }
2162}
2163
2164impl fidl::endpoints::Responder for ClosedTargetTwoWayNoPayloadResponder {
2165    type ControlHandle = ClosedTargetControlHandle;
2166
2167    fn control_handle(&self) -> &ClosedTargetControlHandle {
2168        &self.control_handle
2169    }
2170
2171    fn drop_without_shutdown(mut self) {
2172        // Safety: drops once, never accessed again due to mem::forget
2173        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2174        // Prevent Drop from running (which would shut down the channel)
2175        std::mem::forget(self);
2176    }
2177}
2178
2179impl ClosedTargetTwoWayNoPayloadResponder {
2180    /// Sends a response to the FIDL transaction.
2181    ///
2182    /// Sets the channel to shutdown if an error occurs.
2183    pub fn send(self) -> Result<(), fidl::Error> {
2184        let _result = self.send_raw();
2185        if _result.is_err() {
2186            self.control_handle.shutdown();
2187        }
2188        self.drop_without_shutdown();
2189        _result
2190    }
2191
2192    /// Similar to "send" but does not shutdown the channel if an error occurs.
2193    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2194        let _result = self.send_raw();
2195        self.drop_without_shutdown();
2196        _result
2197    }
2198
2199    fn send_raw(&self) -> Result<(), fidl::Error> {
2200        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2201            (),
2202            self.tx_id,
2203            0x7a722961424c1720,
2204            fidl::encoding::DynamicFlags::empty(),
2205        )
2206    }
2207}
2208
2209#[must_use = "FIDL methods require a response to be sent"]
2210#[derive(Debug)]
2211pub struct ClosedTargetTwoWayStructPayloadResponder {
2212    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2213    tx_id: u32,
2214}
2215
2216/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2217/// if the responder is dropped without sending a response, so that the client
2218/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2219impl std::ops::Drop for ClosedTargetTwoWayStructPayloadResponder {
2220    fn drop(&mut self) {
2221        self.control_handle.shutdown();
2222        // Safety: drops once, never accessed again
2223        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2224    }
2225}
2226
2227impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadResponder {
2228    type ControlHandle = ClosedTargetControlHandle;
2229
2230    fn control_handle(&self) -> &ClosedTargetControlHandle {
2231        &self.control_handle
2232    }
2233
2234    fn drop_without_shutdown(mut self) {
2235        // Safety: drops once, never accessed again due to mem::forget
2236        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2237        // Prevent Drop from running (which would shut down the channel)
2238        std::mem::forget(self);
2239    }
2240}
2241
2242impl ClosedTargetTwoWayStructPayloadResponder {
2243    /// Sends a response to the FIDL transaction.
2244    ///
2245    /// Sets the channel to shutdown if an error occurs.
2246    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
2247        let _result = self.send_raw(some_field);
2248        if _result.is_err() {
2249            self.control_handle.shutdown();
2250        }
2251        self.drop_without_shutdown();
2252        _result
2253    }
2254
2255    /// Similar to "send" but does not shutdown the channel if an error occurs.
2256    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
2257        let _result = self.send_raw(some_field);
2258        self.drop_without_shutdown();
2259        _result
2260    }
2261
2262    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2263        self.control_handle.inner.send::<NonEmptyPayload>(
2264            (some_field,),
2265            self.tx_id,
2266            0x3a402118bad781bd,
2267            fidl::encoding::DynamicFlags::empty(),
2268        )
2269    }
2270}
2271
2272#[must_use = "FIDL methods require a response to be sent"]
2273#[derive(Debug)]
2274pub struct ClosedTargetTwoWayTablePayloadResponder {
2275    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2276    tx_id: u32,
2277}
2278
2279/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2280/// if the responder is dropped without sending a response, so that the client
2281/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2282impl std::ops::Drop for ClosedTargetTwoWayTablePayloadResponder {
2283    fn drop(&mut self) {
2284        self.control_handle.shutdown();
2285        // Safety: drops once, never accessed again
2286        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2287    }
2288}
2289
2290impl fidl::endpoints::Responder for ClosedTargetTwoWayTablePayloadResponder {
2291    type ControlHandle = ClosedTargetControlHandle;
2292
2293    fn control_handle(&self) -> &ClosedTargetControlHandle {
2294        &self.control_handle
2295    }
2296
2297    fn drop_without_shutdown(mut self) {
2298        // Safety: drops once, never accessed again due to mem::forget
2299        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2300        // Prevent Drop from running (which would shut down the channel)
2301        std::mem::forget(self);
2302    }
2303}
2304
2305impl ClosedTargetTwoWayTablePayloadResponder {
2306    /// Sends a response to the FIDL transaction.
2307    ///
2308    /// Sets the channel to shutdown if an error occurs.
2309    pub fn send(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2310        let _result = self.send_raw(payload);
2311        if _result.is_err() {
2312            self.control_handle.shutdown();
2313        }
2314        self.drop_without_shutdown();
2315        _result
2316    }
2317
2318    /// Similar to "send" but does not shutdown the channel if an error occurs.
2319    pub fn send_no_shutdown_on_err(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2320        let _result = self.send_raw(payload);
2321        self.drop_without_shutdown();
2322        _result
2323    }
2324
2325    fn send_raw(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2326        self.control_handle.inner.send::<TablePayload>(
2327            payload,
2328            self.tx_id,
2329            0x53be101c241c66bc,
2330            fidl::encoding::DynamicFlags::empty(),
2331        )
2332    }
2333}
2334
2335#[must_use = "FIDL methods require a response to be sent"]
2336#[derive(Debug)]
2337pub struct ClosedTargetTwoWayUnionPayloadResponder {
2338    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2339    tx_id: u32,
2340}
2341
2342/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2343/// if the responder is dropped without sending a response, so that the client
2344/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2345impl std::ops::Drop for ClosedTargetTwoWayUnionPayloadResponder {
2346    fn drop(&mut self) {
2347        self.control_handle.shutdown();
2348        // Safety: drops once, never accessed again
2349        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2350    }
2351}
2352
2353impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionPayloadResponder {
2354    type ControlHandle = ClosedTargetControlHandle;
2355
2356    fn control_handle(&self) -> &ClosedTargetControlHandle {
2357        &self.control_handle
2358    }
2359
2360    fn drop_without_shutdown(mut self) {
2361        // Safety: drops once, never accessed again due to mem::forget
2362        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2363        // Prevent Drop from running (which would shut down the channel)
2364        std::mem::forget(self);
2365    }
2366}
2367
2368impl ClosedTargetTwoWayUnionPayloadResponder {
2369    /// Sends a response to the FIDL transaction.
2370    ///
2371    /// Sets the channel to shutdown if an error occurs.
2372    pub fn send(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2373        let _result = self.send_raw(payload);
2374        if _result.is_err() {
2375            self.control_handle.shutdown();
2376        }
2377        self.drop_without_shutdown();
2378        _result
2379    }
2380
2381    /// Similar to "send" but does not shutdown the channel if an error occurs.
2382    pub fn send_no_shutdown_on_err(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2383        let _result = self.send_raw(payload);
2384        self.drop_without_shutdown();
2385        _result
2386    }
2387
2388    fn send_raw(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2389        self.control_handle.inner.send::<UnionPayload>(
2390            payload,
2391            self.tx_id,
2392            0x1ff7f745ab608f8c,
2393            fidl::encoding::DynamicFlags::empty(),
2394        )
2395    }
2396}
2397
2398#[must_use = "FIDL methods require a response to be sent"]
2399#[derive(Debug)]
2400pub struct ClosedTargetTwoWayStructPayloadErrResponder {
2401    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2402    tx_id: u32,
2403}
2404
2405/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2406/// if the responder is dropped without sending a response, so that the client
2407/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2408impl std::ops::Drop for ClosedTargetTwoWayStructPayloadErrResponder {
2409    fn drop(&mut self) {
2410        self.control_handle.shutdown();
2411        // Safety: drops once, never accessed again
2412        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2413    }
2414}
2415
2416impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadErrResponder {
2417    type ControlHandle = ClosedTargetControlHandle;
2418
2419    fn control_handle(&self) -> &ClosedTargetControlHandle {
2420        &self.control_handle
2421    }
2422
2423    fn drop_without_shutdown(mut self) {
2424        // Safety: drops once, never accessed again due to mem::forget
2425        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2426        // Prevent Drop from running (which would shut down the channel)
2427        std::mem::forget(self);
2428    }
2429}
2430
2431impl ClosedTargetTwoWayStructPayloadErrResponder {
2432    /// Sends a response to the FIDL transaction.
2433    ///
2434    /// Sets the channel to shutdown if an error occurs.
2435    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2436        let _result = self.send_raw(result);
2437        if _result.is_err() {
2438            self.control_handle.shutdown();
2439        }
2440        self.drop_without_shutdown();
2441        _result
2442    }
2443
2444    /// Similar to "send" but does not shutdown the channel if an error occurs.
2445    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2446        let _result = self.send_raw(result);
2447        self.drop_without_shutdown();
2448        _result
2449    }
2450
2451    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2452        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
2453            result.map(|some_field| (some_field,)),
2454            self.tx_id,
2455            0x62b4861c443bbc0b,
2456            fidl::encoding::DynamicFlags::empty(),
2457        )
2458    }
2459}
2460
2461#[must_use = "FIDL methods require a response to be sent"]
2462#[derive(Debug)]
2463pub struct ClosedTargetTwoWayStructRequestResponder {
2464    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2465    tx_id: u32,
2466}
2467
2468/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2469/// if the responder is dropped without sending a response, so that the client
2470/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2471impl std::ops::Drop for ClosedTargetTwoWayStructRequestResponder {
2472    fn drop(&mut self) {
2473        self.control_handle.shutdown();
2474        // Safety: drops once, never accessed again
2475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2476    }
2477}
2478
2479impl fidl::endpoints::Responder for ClosedTargetTwoWayStructRequestResponder {
2480    type ControlHandle = ClosedTargetControlHandle;
2481
2482    fn control_handle(&self) -> &ClosedTargetControlHandle {
2483        &self.control_handle
2484    }
2485
2486    fn drop_without_shutdown(mut self) {
2487        // Safety: drops once, never accessed again due to mem::forget
2488        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2489        // Prevent Drop from running (which would shut down the channel)
2490        std::mem::forget(self);
2491    }
2492}
2493
2494impl ClosedTargetTwoWayStructRequestResponder {
2495    /// Sends a response to the FIDL transaction.
2496    ///
2497    /// Sets the channel to shutdown if an error occurs.
2498    pub fn send(self) -> Result<(), fidl::Error> {
2499        let _result = self.send_raw();
2500        if _result.is_err() {
2501            self.control_handle.shutdown();
2502        }
2503        self.drop_without_shutdown();
2504        _result
2505    }
2506
2507    /// Similar to "send" but does not shutdown the channel if an error occurs.
2508    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2509        let _result = self.send_raw();
2510        self.drop_without_shutdown();
2511        _result
2512    }
2513
2514    fn send_raw(&self) -> Result<(), fidl::Error> {
2515        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2516            (),
2517            self.tx_id,
2518            0x4ff77b4a913be5b6,
2519            fidl::encoding::DynamicFlags::empty(),
2520        )
2521    }
2522}
2523
2524#[must_use = "FIDL methods require a response to be sent"]
2525#[derive(Debug)]
2526pub struct ClosedTargetTwoWayTableRequestResponder {
2527    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2528    tx_id: u32,
2529}
2530
2531/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2532/// if the responder is dropped without sending a response, so that the client
2533/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2534impl std::ops::Drop for ClosedTargetTwoWayTableRequestResponder {
2535    fn drop(&mut self) {
2536        self.control_handle.shutdown();
2537        // Safety: drops once, never accessed again
2538        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2539    }
2540}
2541
2542impl fidl::endpoints::Responder for ClosedTargetTwoWayTableRequestResponder {
2543    type ControlHandle = ClosedTargetControlHandle;
2544
2545    fn control_handle(&self) -> &ClosedTargetControlHandle {
2546        &self.control_handle
2547    }
2548
2549    fn drop_without_shutdown(mut self) {
2550        // Safety: drops once, never accessed again due to mem::forget
2551        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2552        // Prevent Drop from running (which would shut down the channel)
2553        std::mem::forget(self);
2554    }
2555}
2556
2557impl ClosedTargetTwoWayTableRequestResponder {
2558    /// Sends a response to the FIDL transaction.
2559    ///
2560    /// Sets the channel to shutdown if an error occurs.
2561    pub fn send(self) -> Result<(), fidl::Error> {
2562        let _result = self.send_raw();
2563        if _result.is_err() {
2564            self.control_handle.shutdown();
2565        }
2566        self.drop_without_shutdown();
2567        _result
2568    }
2569
2570    /// Similar to "send" but does not shutdown the channel if an error occurs.
2571    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2572        let _result = self.send_raw();
2573        self.drop_without_shutdown();
2574        _result
2575    }
2576
2577    fn send_raw(&self) -> Result<(), fidl::Error> {
2578        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2579            (),
2580            self.tx_id,
2581            0x3d38ad5b0f4f49cf,
2582            fidl::encoding::DynamicFlags::empty(),
2583        )
2584    }
2585}
2586
2587#[must_use = "FIDL methods require a response to be sent"]
2588#[derive(Debug)]
2589pub struct ClosedTargetTwoWayUnionRequestResponder {
2590    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2591    tx_id: u32,
2592}
2593
2594/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2595/// if the responder is dropped without sending a response, so that the client
2596/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2597impl std::ops::Drop for ClosedTargetTwoWayUnionRequestResponder {
2598    fn drop(&mut self) {
2599        self.control_handle.shutdown();
2600        // Safety: drops once, never accessed again
2601        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2602    }
2603}
2604
2605impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionRequestResponder {
2606    type ControlHandle = ClosedTargetControlHandle;
2607
2608    fn control_handle(&self) -> &ClosedTargetControlHandle {
2609        &self.control_handle
2610    }
2611
2612    fn drop_without_shutdown(mut self) {
2613        // Safety: drops once, never accessed again due to mem::forget
2614        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2615        // Prevent Drop from running (which would shut down the channel)
2616        std::mem::forget(self);
2617    }
2618}
2619
2620impl ClosedTargetTwoWayUnionRequestResponder {
2621    /// Sends a response to the FIDL transaction.
2622    ///
2623    /// Sets the channel to shutdown if an error occurs.
2624    pub fn send(self) -> Result<(), fidl::Error> {
2625        let _result = self.send_raw();
2626        if _result.is_err() {
2627            self.control_handle.shutdown();
2628        }
2629        self.drop_without_shutdown();
2630        _result
2631    }
2632
2633    /// Similar to "send" but does not shutdown the channel if an error occurs.
2634    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2635        let _result = self.send_raw();
2636        self.drop_without_shutdown();
2637        _result
2638    }
2639
2640    fn send_raw(&self) -> Result<(), fidl::Error> {
2641        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2642            (),
2643            self.tx_id,
2644            0x7adb1c265a378e77,
2645            fidl::encoding::DynamicFlags::empty(),
2646        )
2647    }
2648}
2649
2650#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2651pub struct ClosedTargetEventReporterMarker;
2652
2653impl fidl::endpoints::ProtocolMarker for ClosedTargetEventReporterMarker {
2654    type Proxy = ClosedTargetEventReporterProxy;
2655    type RequestStream = ClosedTargetEventReporterRequestStream;
2656    #[cfg(target_os = "fuchsia")]
2657    type SynchronousProxy = ClosedTargetEventReporterSynchronousProxy;
2658
2659    const DEBUG_NAME: &'static str = "(anonymous) ClosedTargetEventReporter";
2660}
2661
2662pub trait ClosedTargetEventReporterProxyInterface: Send + Sync {
2663    fn r#report_event(&self, payload: &ClosedTargetEventReport) -> Result<(), fidl::Error>;
2664}
2665#[derive(Debug)]
2666#[cfg(target_os = "fuchsia")]
2667pub struct ClosedTargetEventReporterSynchronousProxy {
2668    client: fidl::client::sync::Client,
2669}
2670
2671#[cfg(target_os = "fuchsia")]
2672impl fidl::endpoints::SynchronousProxy for ClosedTargetEventReporterSynchronousProxy {
2673    type Proxy = ClosedTargetEventReporterProxy;
2674    type Protocol = ClosedTargetEventReporterMarker;
2675
2676    fn from_channel(inner: fidl::Channel) -> Self {
2677        Self::new(inner)
2678    }
2679
2680    fn into_channel(self) -> fidl::Channel {
2681        self.client.into_channel()
2682    }
2683
2684    fn as_channel(&self) -> &fidl::Channel {
2685        self.client.as_channel()
2686    }
2687}
2688
2689#[cfg(target_os = "fuchsia")]
2690impl ClosedTargetEventReporterSynchronousProxy {
2691    pub fn new(channel: fidl::Channel) -> Self {
2692        let protocol_name =
2693            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2694        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2695    }
2696
2697    pub fn into_channel(self) -> fidl::Channel {
2698        self.client.into_channel()
2699    }
2700
2701    /// Waits until an event arrives and returns it. It is safe for other
2702    /// threads to make concurrent requests while waiting for an event.
2703    pub fn wait_for_event(
2704        &self,
2705        deadline: zx::MonotonicInstant,
2706    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2707        ClosedTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
2708    }
2709
2710    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2711        self.client.send::<ClosedTargetEventReport>(
2712            payload,
2713            0x63890e67649a846e,
2714            fidl::encoding::DynamicFlags::empty(),
2715        )
2716    }
2717}
2718
2719#[cfg(target_os = "fuchsia")]
2720impl From<ClosedTargetEventReporterSynchronousProxy> for zx::NullableHandle {
2721    fn from(value: ClosedTargetEventReporterSynchronousProxy) -> Self {
2722        value.into_channel().into()
2723    }
2724}
2725
2726#[cfg(target_os = "fuchsia")]
2727impl From<fidl::Channel> for ClosedTargetEventReporterSynchronousProxy {
2728    fn from(value: fidl::Channel) -> Self {
2729        Self::new(value)
2730    }
2731}
2732
2733#[cfg(target_os = "fuchsia")]
2734impl fidl::endpoints::FromClient for ClosedTargetEventReporterSynchronousProxy {
2735    type Protocol = ClosedTargetEventReporterMarker;
2736
2737    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>) -> Self {
2738        Self::new(value.into_channel())
2739    }
2740}
2741
2742#[derive(Debug, Clone)]
2743pub struct ClosedTargetEventReporterProxy {
2744    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2745}
2746
2747impl fidl::endpoints::Proxy for ClosedTargetEventReporterProxy {
2748    type Protocol = ClosedTargetEventReporterMarker;
2749
2750    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2751        Self::new(inner)
2752    }
2753
2754    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2755        self.client.into_channel().map_err(|client| Self { client })
2756    }
2757
2758    fn as_channel(&self) -> &::fidl::AsyncChannel {
2759        self.client.as_channel()
2760    }
2761}
2762
2763impl ClosedTargetEventReporterProxy {
2764    /// Create a new Proxy for fidl.clientsuite/ClosedTargetEventReporter.
2765    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2766        let protocol_name =
2767            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2768        Self { client: fidl::client::Client::new(channel, protocol_name) }
2769    }
2770
2771    /// Get a Stream of events from the remote end of the protocol.
2772    ///
2773    /// # Panics
2774    ///
2775    /// Panics if the event stream was already taken.
2776    pub fn take_event_stream(&self) -> ClosedTargetEventReporterEventStream {
2777        ClosedTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
2778    }
2779
2780    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2781        ClosedTargetEventReporterProxyInterface::r#report_event(self, payload)
2782    }
2783}
2784
2785impl ClosedTargetEventReporterProxyInterface for ClosedTargetEventReporterProxy {
2786    fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2787        self.client.send::<ClosedTargetEventReport>(
2788            payload,
2789            0x63890e67649a846e,
2790            fidl::encoding::DynamicFlags::empty(),
2791        )
2792    }
2793}
2794
2795pub struct ClosedTargetEventReporterEventStream {
2796    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2797}
2798
2799impl std::marker::Unpin for ClosedTargetEventReporterEventStream {}
2800
2801impl futures::stream::FusedStream for ClosedTargetEventReporterEventStream {
2802    fn is_terminated(&self) -> bool {
2803        self.event_receiver.is_terminated()
2804    }
2805}
2806
2807impl futures::Stream for ClosedTargetEventReporterEventStream {
2808    type Item = Result<ClosedTargetEventReporterEvent, fidl::Error>;
2809
2810    fn poll_next(
2811        mut self: std::pin::Pin<&mut Self>,
2812        cx: &mut std::task::Context<'_>,
2813    ) -> std::task::Poll<Option<Self::Item>> {
2814        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2815            &mut self.event_receiver,
2816            cx
2817        )?) {
2818            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEventReporterEvent::decode(buf))),
2819            None => std::task::Poll::Ready(None),
2820        }
2821    }
2822}
2823
2824#[derive(Debug)]
2825pub enum ClosedTargetEventReporterEvent {}
2826
2827impl ClosedTargetEventReporterEvent {
2828    /// Decodes a message buffer as a [`ClosedTargetEventReporterEvent`].
2829    fn decode(
2830        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2831    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2832        let (bytes, _handles) = buf.split_mut();
2833        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2834        debug_assert_eq!(tx_header.tx_id, 0);
2835        match tx_header.ordinal {
2836            _ => Err(fidl::Error::UnknownOrdinal {
2837                ordinal: tx_header.ordinal,
2838                protocol_name:
2839                    <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2840            }),
2841        }
2842    }
2843}
2844
2845/// A Stream of incoming requests for fidl.clientsuite/ClosedTargetEventReporter.
2846pub struct ClosedTargetEventReporterRequestStream {
2847    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2848    is_terminated: bool,
2849}
2850
2851impl std::marker::Unpin for ClosedTargetEventReporterRequestStream {}
2852
2853impl futures::stream::FusedStream for ClosedTargetEventReporterRequestStream {
2854    fn is_terminated(&self) -> bool {
2855        self.is_terminated
2856    }
2857}
2858
2859impl fidl::endpoints::RequestStream for ClosedTargetEventReporterRequestStream {
2860    type Protocol = ClosedTargetEventReporterMarker;
2861    type ControlHandle = ClosedTargetEventReporterControlHandle;
2862
2863    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2864        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2865    }
2866
2867    fn control_handle(&self) -> Self::ControlHandle {
2868        ClosedTargetEventReporterControlHandle { inner: self.inner.clone() }
2869    }
2870
2871    fn into_inner(
2872        self,
2873    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2874    {
2875        (self.inner, self.is_terminated)
2876    }
2877
2878    fn from_inner(
2879        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2880        is_terminated: bool,
2881    ) -> Self {
2882        Self { inner, is_terminated }
2883    }
2884}
2885
2886impl futures::Stream for ClosedTargetEventReporterRequestStream {
2887    type Item = Result<ClosedTargetEventReporterRequest, fidl::Error>;
2888
2889    fn poll_next(
2890        mut self: std::pin::Pin<&mut Self>,
2891        cx: &mut std::task::Context<'_>,
2892    ) -> std::task::Poll<Option<Self::Item>> {
2893        let this = &mut *self;
2894        if this.inner.check_shutdown(cx) {
2895            this.is_terminated = true;
2896            return std::task::Poll::Ready(None);
2897        }
2898        if this.is_terminated {
2899            panic!("polled ClosedTargetEventReporterRequestStream after completion");
2900        }
2901        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2902            |bytes, handles| {
2903                match this.inner.channel().read_etc(cx, bytes, handles) {
2904                    std::task::Poll::Ready(Ok(())) => {}
2905                    std::task::Poll::Pending => return std::task::Poll::Pending,
2906                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2907                        this.is_terminated = true;
2908                        return std::task::Poll::Ready(None);
2909                    }
2910                    std::task::Poll::Ready(Err(e)) => {
2911                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2912                            e.into(),
2913                        ))));
2914                    }
2915                }
2916
2917                // A message has been received from the channel
2918                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2919
2920                std::task::Poll::Ready(Some(match header.ordinal {
2921                0x63890e67649a846e => {
2922                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2923                    let mut req = fidl::new_empty!(ClosedTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
2924                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ClosedTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
2925                    let control_handle = ClosedTargetEventReporterControlHandle {
2926                        inner: this.inner.clone(),
2927                    };
2928                    Ok(ClosedTargetEventReporterRequest::ReportEvent {payload: req,
2929                        control_handle,
2930                    })
2931                }
2932                _ => Err(fidl::Error::UnknownOrdinal {
2933                    ordinal: header.ordinal,
2934                    protocol_name: <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2935                }),
2936            }))
2937            },
2938        )
2939    }
2940}
2941
2942#[derive(Debug)]
2943pub enum ClosedTargetEventReporterRequest {
2944    ReportEvent {
2945        payload: ClosedTargetEventReport,
2946        control_handle: ClosedTargetEventReporterControlHandle,
2947    },
2948}
2949
2950impl ClosedTargetEventReporterRequest {
2951    #[allow(irrefutable_let_patterns)]
2952    pub fn into_report_event(
2953        self,
2954    ) -> Option<(ClosedTargetEventReport, ClosedTargetEventReporterControlHandle)> {
2955        if let ClosedTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
2956            Some((payload, control_handle))
2957        } else {
2958            None
2959        }
2960    }
2961
2962    /// Name of the method defined in FIDL
2963    pub fn method_name(&self) -> &'static str {
2964        match *self {
2965            ClosedTargetEventReporterRequest::ReportEvent { .. } => "report_event",
2966        }
2967    }
2968}
2969
2970#[derive(Debug, Clone)]
2971pub struct ClosedTargetEventReporterControlHandle {
2972    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2973}
2974
2975impl fidl::endpoints::ControlHandle for ClosedTargetEventReporterControlHandle {
2976    fn shutdown(&self) {
2977        self.inner.shutdown()
2978    }
2979
2980    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2981        self.inner.shutdown_with_epitaph(status)
2982    }
2983
2984    fn is_closed(&self) -> bool {
2985        self.inner.channel().is_closed()
2986    }
2987    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2988        self.inner.channel().on_closed()
2989    }
2990
2991    #[cfg(target_os = "fuchsia")]
2992    fn signal_peer(
2993        &self,
2994        clear_mask: zx::Signals,
2995        set_mask: zx::Signals,
2996    ) -> Result<(), zx_status::Status> {
2997        use fidl::Peered;
2998        self.inner.channel().signal_peer(clear_mask, set_mask)
2999    }
3000}
3001
3002impl ClosedTargetEventReporterControlHandle {}
3003
3004#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
3005pub struct OpenTargetMarker;
3006
3007impl fidl::endpoints::ProtocolMarker for OpenTargetMarker {
3008    type Proxy = OpenTargetProxy;
3009    type RequestStream = OpenTargetRequestStream;
3010    #[cfg(target_os = "fuchsia")]
3011    type SynchronousProxy = OpenTargetSynchronousProxy;
3012
3013    const DEBUG_NAME: &'static str = "(anonymous) OpenTarget";
3014}
3015pub type OpenTargetStrictTwoWayErrResult = Result<(), i32>;
3016pub type OpenTargetStrictTwoWayFieldsErrResult = Result<i32, i32>;
3017pub type OpenTargetFlexibleTwoWayErrResult = Result<(), i32>;
3018pub type OpenTargetFlexibleTwoWayFieldsErrResult = Result<i32, i32>;
3019
3020pub trait OpenTargetProxyInterface: Send + Sync {
3021    fn r#strict_one_way(&self) -> Result<(), fidl::Error>;
3022    fn r#flexible_one_way(&self) -> Result<(), fidl::Error>;
3023    type StrictTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3024    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut;
3025    type StrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3026        + Send;
3027    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut;
3028    type StrictTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayErrResult, fidl::Error>>
3029        + Send;
3030    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut;
3031    type StrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error>>
3032        + Send;
3033    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut;
3034    type FlexibleTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3035    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut;
3036    type FlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3037        + Send;
3038    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut;
3039    type FlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error>>
3040        + Send;
3041    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut;
3042    type FlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error>>
3043        + Send;
3044    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut;
3045}
3046#[derive(Debug)]
3047#[cfg(target_os = "fuchsia")]
3048pub struct OpenTargetSynchronousProxy {
3049    client: fidl::client::sync::Client,
3050}
3051
3052#[cfg(target_os = "fuchsia")]
3053impl fidl::endpoints::SynchronousProxy for OpenTargetSynchronousProxy {
3054    type Proxy = OpenTargetProxy;
3055    type Protocol = OpenTargetMarker;
3056
3057    fn from_channel(inner: fidl::Channel) -> Self {
3058        Self::new(inner)
3059    }
3060
3061    fn into_channel(self) -> fidl::Channel {
3062        self.client.into_channel()
3063    }
3064
3065    fn as_channel(&self) -> &fidl::Channel {
3066        self.client.as_channel()
3067    }
3068}
3069
3070#[cfg(target_os = "fuchsia")]
3071impl OpenTargetSynchronousProxy {
3072    pub fn new(channel: fidl::Channel) -> Self {
3073        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3074        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
3075    }
3076
3077    pub fn into_channel(self) -> fidl::Channel {
3078        self.client.into_channel()
3079    }
3080
3081    /// Waits until an event arrives and returns it. It is safe for other
3082    /// threads to make concurrent requests while waiting for an event.
3083    pub fn wait_for_event(
3084        &self,
3085        deadline: zx::MonotonicInstant,
3086    ) -> Result<OpenTargetEvent, fidl::Error> {
3087        OpenTargetEvent::decode(self.client.wait_for_event(deadline)?)
3088    }
3089
3090    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3091        self.client.send::<fidl::encoding::EmptyPayload>(
3092            (),
3093            0x6db0bc21c4aae764,
3094            fidl::encoding::DynamicFlags::empty(),
3095        )
3096    }
3097
3098    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3099        self.client.send::<fidl::encoding::EmptyPayload>(
3100            (),
3101            0xf894a7eb9cc29fc,
3102            fidl::encoding::DynamicFlags::FLEXIBLE,
3103        )
3104    }
3105
3106    pub fn r#strict_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3107        let _response =
3108            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
3109                (),
3110                0xdcf4cef19a1c542,
3111                fidl::encoding::DynamicFlags::empty(),
3112                ___deadline,
3113            )?;
3114        Ok(_response)
3115    }
3116
3117    pub fn r#strict_two_way_fields(
3118        &self,
3119        ___deadline: zx::MonotonicInstant,
3120    ) -> Result<i32, fidl::Error> {
3121        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload>(
3122            (),
3123            0x79c7a7803c45e2e3,
3124            fidl::encoding::DynamicFlags::empty(),
3125            ___deadline,
3126        )?;
3127        Ok(_response.some_field)
3128    }
3129
3130    pub fn r#strict_two_way_err(
3131        &self,
3132        ___deadline: zx::MonotonicInstant,
3133    ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3134        let _response = self.client.send_query::<
3135            fidl::encoding::EmptyPayload,
3136            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3137        >(
3138            (),
3139            0x54259ed6c262fe88,
3140            fidl::encoding::DynamicFlags::empty(),
3141            ___deadline,
3142        )?;
3143        Ok(_response.map(|x| x))
3144    }
3145
3146    pub fn r#strict_two_way_fields_err(
3147        &self,
3148        ___deadline: zx::MonotonicInstant,
3149    ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3150        let _response = self.client.send_query::<
3151            fidl::encoding::EmptyPayload,
3152            fidl::encoding::ResultType<NonEmptyPayload, i32>,
3153        >(
3154            (),
3155            0x7dbaa8538b552711,
3156            fidl::encoding::DynamicFlags::empty(),
3157            ___deadline,
3158        )?;
3159        Ok(_response.map(|x| x.some_field))
3160    }
3161
3162    pub fn r#flexible_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3163        let _response = self.client.send_query::<
3164            fidl::encoding::EmptyPayload,
3165            fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3166        >(
3167            (),
3168            0x66552e68b99a0587,
3169            fidl::encoding::DynamicFlags::FLEXIBLE,
3170            ___deadline,
3171        )?
3172        .into_result::<OpenTargetMarker>("flexible_two_way")?;
3173        Ok(_response)
3174    }
3175
3176    pub fn r#flexible_two_way_fields(
3177        &self,
3178        ___deadline: zx::MonotonicInstant,
3179    ) -> Result<i32, fidl::Error> {
3180        let _response = self.client.send_query::<
3181            fidl::encoding::EmptyPayload,
3182            fidl::encoding::FlexibleType<NonEmptyPayload>,
3183        >(
3184            (),
3185            0x38b95648ac4e2ae4,
3186            fidl::encoding::DynamicFlags::FLEXIBLE,
3187            ___deadline,
3188        )?
3189        .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3190        Ok(_response.some_field)
3191    }
3192
3193    pub fn r#flexible_two_way_err(
3194        &self,
3195        ___deadline: zx::MonotonicInstant,
3196    ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3197        let _response = self.client.send_query::<
3198            fidl::encoding::EmptyPayload,
3199            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3200        >(
3201            (),
3202            0x6e144c6e0cf2147a,
3203            fidl::encoding::DynamicFlags::FLEXIBLE,
3204            ___deadline,
3205        )?
3206        .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3207        Ok(_response.map(|x| x))
3208    }
3209
3210    pub fn r#flexible_two_way_fields_err(
3211        &self,
3212        ___deadline: zx::MonotonicInstant,
3213    ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3214        let _response = self.client.send_query::<
3215            fidl::encoding::EmptyPayload,
3216            fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3217        >(
3218            (),
3219            0xe494147cda8024a,
3220            fidl::encoding::DynamicFlags::FLEXIBLE,
3221            ___deadline,
3222        )?
3223        .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3224        Ok(_response.map(|x| x.some_field))
3225    }
3226}
3227
3228#[cfg(target_os = "fuchsia")]
3229impl From<OpenTargetSynchronousProxy> for zx::NullableHandle {
3230    fn from(value: OpenTargetSynchronousProxy) -> Self {
3231        value.into_channel().into()
3232    }
3233}
3234
3235#[cfg(target_os = "fuchsia")]
3236impl From<fidl::Channel> for OpenTargetSynchronousProxy {
3237    fn from(value: fidl::Channel) -> Self {
3238        Self::new(value)
3239    }
3240}
3241
3242#[cfg(target_os = "fuchsia")]
3243impl fidl::endpoints::FromClient for OpenTargetSynchronousProxy {
3244    type Protocol = OpenTargetMarker;
3245
3246    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetMarker>) -> Self {
3247        Self::new(value.into_channel())
3248    }
3249}
3250
3251#[derive(Debug, Clone)]
3252pub struct OpenTargetProxy {
3253    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3254}
3255
3256impl fidl::endpoints::Proxy for OpenTargetProxy {
3257    type Protocol = OpenTargetMarker;
3258
3259    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3260        Self::new(inner)
3261    }
3262
3263    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3264        self.client.into_channel().map_err(|client| Self { client })
3265    }
3266
3267    fn as_channel(&self) -> &::fidl::AsyncChannel {
3268        self.client.as_channel()
3269    }
3270}
3271
3272impl OpenTargetProxy {
3273    /// Create a new Proxy for fidl.clientsuite/OpenTarget.
3274    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3275        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3276        Self { client: fidl::client::Client::new(channel, protocol_name) }
3277    }
3278
3279    /// Get a Stream of events from the remote end of the protocol.
3280    ///
3281    /// # Panics
3282    ///
3283    /// Panics if the event stream was already taken.
3284    pub fn take_event_stream(&self) -> OpenTargetEventStream {
3285        OpenTargetEventStream { event_receiver: self.client.take_event_receiver() }
3286    }
3287
3288    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3289        OpenTargetProxyInterface::r#strict_one_way(self)
3290    }
3291
3292    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3293        OpenTargetProxyInterface::r#flexible_one_way(self)
3294    }
3295
3296    pub fn r#strict_two_way(
3297        &self,
3298    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3299        OpenTargetProxyInterface::r#strict_two_way(self)
3300    }
3301
3302    pub fn r#strict_two_way_fields(
3303        &self,
3304    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3305        OpenTargetProxyInterface::r#strict_two_way_fields(self)
3306    }
3307
3308    pub fn r#strict_two_way_err(
3309        &self,
3310    ) -> fidl::client::QueryResponseFut<
3311        OpenTargetStrictTwoWayErrResult,
3312        fidl::encoding::DefaultFuchsiaResourceDialect,
3313    > {
3314        OpenTargetProxyInterface::r#strict_two_way_err(self)
3315    }
3316
3317    pub fn r#strict_two_way_fields_err(
3318        &self,
3319    ) -> fidl::client::QueryResponseFut<
3320        OpenTargetStrictTwoWayFieldsErrResult,
3321        fidl::encoding::DefaultFuchsiaResourceDialect,
3322    > {
3323        OpenTargetProxyInterface::r#strict_two_way_fields_err(self)
3324    }
3325
3326    pub fn r#flexible_two_way(
3327        &self,
3328    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3329        OpenTargetProxyInterface::r#flexible_two_way(self)
3330    }
3331
3332    pub fn r#flexible_two_way_fields(
3333        &self,
3334    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3335        OpenTargetProxyInterface::r#flexible_two_way_fields(self)
3336    }
3337
3338    pub fn r#flexible_two_way_err(
3339        &self,
3340    ) -> fidl::client::QueryResponseFut<
3341        OpenTargetFlexibleTwoWayErrResult,
3342        fidl::encoding::DefaultFuchsiaResourceDialect,
3343    > {
3344        OpenTargetProxyInterface::r#flexible_two_way_err(self)
3345    }
3346
3347    pub fn r#flexible_two_way_fields_err(
3348        &self,
3349    ) -> fidl::client::QueryResponseFut<
3350        OpenTargetFlexibleTwoWayFieldsErrResult,
3351        fidl::encoding::DefaultFuchsiaResourceDialect,
3352    > {
3353        OpenTargetProxyInterface::r#flexible_two_way_fields_err(self)
3354    }
3355}
3356
3357impl OpenTargetProxyInterface for OpenTargetProxy {
3358    fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3359        self.client.send::<fidl::encoding::EmptyPayload>(
3360            (),
3361            0x6db0bc21c4aae764,
3362            fidl::encoding::DynamicFlags::empty(),
3363        )
3364    }
3365
3366    fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3367        self.client.send::<fidl::encoding::EmptyPayload>(
3368            (),
3369            0xf894a7eb9cc29fc,
3370            fidl::encoding::DynamicFlags::FLEXIBLE,
3371        )
3372    }
3373
3374    type StrictTwoWayResponseFut =
3375        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3376    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut {
3377        fn _decode(
3378            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3379        ) -> Result<(), fidl::Error> {
3380            let _response = fidl::client::decode_transaction_body::<
3381                fidl::encoding::EmptyPayload,
3382                fidl::encoding::DefaultFuchsiaResourceDialect,
3383                0xdcf4cef19a1c542,
3384            >(_buf?)?;
3385            Ok(_response)
3386        }
3387        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3388            (),
3389            0xdcf4cef19a1c542,
3390            fidl::encoding::DynamicFlags::empty(),
3391            _decode,
3392        )
3393    }
3394
3395    type StrictTwoWayFieldsResponseFut =
3396        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3397    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut {
3398        fn _decode(
3399            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3400        ) -> Result<i32, fidl::Error> {
3401            let _response = fidl::client::decode_transaction_body::<
3402                NonEmptyPayload,
3403                fidl::encoding::DefaultFuchsiaResourceDialect,
3404                0x79c7a7803c45e2e3,
3405            >(_buf?)?;
3406            Ok(_response.some_field)
3407        }
3408        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3409            (),
3410            0x79c7a7803c45e2e3,
3411            fidl::encoding::DynamicFlags::empty(),
3412            _decode,
3413        )
3414    }
3415
3416    type StrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3417        OpenTargetStrictTwoWayErrResult,
3418        fidl::encoding::DefaultFuchsiaResourceDialect,
3419    >;
3420    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut {
3421        fn _decode(
3422            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3423        ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3424            let _response = fidl::client::decode_transaction_body::<
3425                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3426                fidl::encoding::DefaultFuchsiaResourceDialect,
3427                0x54259ed6c262fe88,
3428            >(_buf?)?;
3429            Ok(_response.map(|x| x))
3430        }
3431        self.client
3432            .send_query_and_decode::<fidl::encoding::EmptyPayload, OpenTargetStrictTwoWayErrResult>(
3433                (),
3434                0x54259ed6c262fe88,
3435                fidl::encoding::DynamicFlags::empty(),
3436                _decode,
3437            )
3438    }
3439
3440    type StrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3441        OpenTargetStrictTwoWayFieldsErrResult,
3442        fidl::encoding::DefaultFuchsiaResourceDialect,
3443    >;
3444    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut {
3445        fn _decode(
3446            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3447        ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3448            let _response = fidl::client::decode_transaction_body::<
3449                fidl::encoding::ResultType<NonEmptyPayload, i32>,
3450                fidl::encoding::DefaultFuchsiaResourceDialect,
3451                0x7dbaa8538b552711,
3452            >(_buf?)?;
3453            Ok(_response.map(|x| x.some_field))
3454        }
3455        self.client.send_query_and_decode::<
3456            fidl::encoding::EmptyPayload,
3457            OpenTargetStrictTwoWayFieldsErrResult,
3458        >(
3459            (),
3460            0x7dbaa8538b552711,
3461            fidl::encoding::DynamicFlags::empty(),
3462            _decode,
3463        )
3464    }
3465
3466    type FlexibleTwoWayResponseFut =
3467        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3468    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut {
3469        fn _decode(
3470            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3471        ) -> Result<(), fidl::Error> {
3472            let _response = fidl::client::decode_transaction_body::<
3473                fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3474                fidl::encoding::DefaultFuchsiaResourceDialect,
3475                0x66552e68b99a0587,
3476            >(_buf?)?
3477            .into_result::<OpenTargetMarker>("flexible_two_way")?;
3478            Ok(_response)
3479        }
3480        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3481            (),
3482            0x66552e68b99a0587,
3483            fidl::encoding::DynamicFlags::FLEXIBLE,
3484            _decode,
3485        )
3486    }
3487
3488    type FlexibleTwoWayFieldsResponseFut =
3489        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3490    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut {
3491        fn _decode(
3492            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3493        ) -> Result<i32, fidl::Error> {
3494            let _response = fidl::client::decode_transaction_body::<
3495                fidl::encoding::FlexibleType<NonEmptyPayload>,
3496                fidl::encoding::DefaultFuchsiaResourceDialect,
3497                0x38b95648ac4e2ae4,
3498            >(_buf?)?
3499            .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3500            Ok(_response.some_field)
3501        }
3502        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3503            (),
3504            0x38b95648ac4e2ae4,
3505            fidl::encoding::DynamicFlags::FLEXIBLE,
3506            _decode,
3507        )
3508    }
3509
3510    type FlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3511        OpenTargetFlexibleTwoWayErrResult,
3512        fidl::encoding::DefaultFuchsiaResourceDialect,
3513    >;
3514    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut {
3515        fn _decode(
3516            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3517        ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3518            let _response = fidl::client::decode_transaction_body::<
3519                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3520                fidl::encoding::DefaultFuchsiaResourceDialect,
3521                0x6e144c6e0cf2147a,
3522            >(_buf?)?
3523            .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3524            Ok(_response.map(|x| x))
3525        }
3526        self.client.send_query_and_decode::<
3527            fidl::encoding::EmptyPayload,
3528            OpenTargetFlexibleTwoWayErrResult,
3529        >(
3530            (),
3531            0x6e144c6e0cf2147a,
3532            fidl::encoding::DynamicFlags::FLEXIBLE,
3533            _decode,
3534        )
3535    }
3536
3537    type FlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3538        OpenTargetFlexibleTwoWayFieldsErrResult,
3539        fidl::encoding::DefaultFuchsiaResourceDialect,
3540    >;
3541    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut {
3542        fn _decode(
3543            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3544        ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3545            let _response = fidl::client::decode_transaction_body::<
3546                fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3547                fidl::encoding::DefaultFuchsiaResourceDialect,
3548                0xe494147cda8024a,
3549            >(_buf?)?
3550            .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3551            Ok(_response.map(|x| x.some_field))
3552        }
3553        self.client.send_query_and_decode::<
3554            fidl::encoding::EmptyPayload,
3555            OpenTargetFlexibleTwoWayFieldsErrResult,
3556        >(
3557            (),
3558            0xe494147cda8024a,
3559            fidl::encoding::DynamicFlags::FLEXIBLE,
3560            _decode,
3561        )
3562    }
3563}
3564
3565pub struct OpenTargetEventStream {
3566    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3567}
3568
3569impl std::marker::Unpin for OpenTargetEventStream {}
3570
3571impl futures::stream::FusedStream for OpenTargetEventStream {
3572    fn is_terminated(&self) -> bool {
3573        self.event_receiver.is_terminated()
3574    }
3575}
3576
3577impl futures::Stream for OpenTargetEventStream {
3578    type Item = Result<OpenTargetEvent, fidl::Error>;
3579
3580    fn poll_next(
3581        mut self: std::pin::Pin<&mut Self>,
3582        cx: &mut std::task::Context<'_>,
3583    ) -> std::task::Poll<Option<Self::Item>> {
3584        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3585            &mut self.event_receiver,
3586            cx
3587        )?) {
3588            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEvent::decode(buf))),
3589            None => std::task::Poll::Ready(None),
3590        }
3591    }
3592}
3593
3594#[derive(Debug)]
3595pub enum OpenTargetEvent {
3596    StrictEvent {},
3597    FlexibleEvent {},
3598    #[non_exhaustive]
3599    _UnknownEvent {
3600        /// Ordinal of the event that was sent.
3601        ordinal: u64,
3602    },
3603}
3604
3605impl OpenTargetEvent {
3606    #[allow(irrefutable_let_patterns)]
3607    pub fn into_strict_event(self) -> Option<()> {
3608        if let OpenTargetEvent::StrictEvent {} = self { Some(()) } else { None }
3609    }
3610    #[allow(irrefutable_let_patterns)]
3611    pub fn into_flexible_event(self) -> Option<()> {
3612        if let OpenTargetEvent::FlexibleEvent {} = self { Some(()) } else { None }
3613    }
3614
3615    /// Decodes a message buffer as a [`OpenTargetEvent`].
3616    fn decode(
3617        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3618    ) -> Result<OpenTargetEvent, fidl::Error> {
3619        let (bytes, _handles) = buf.split_mut();
3620        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3621        debug_assert_eq!(tx_header.tx_id, 0);
3622        match tx_header.ordinal {
3623            0x2b291d74321e77a0 => {
3624                let mut out = fidl::new_empty!(
3625                    fidl::encoding::EmptyPayload,
3626                    fidl::encoding::DefaultFuchsiaResourceDialect
3627                );
3628                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3629                Ok((OpenTargetEvent::StrictEvent {}))
3630            }
3631            0x50d4688058898898 => {
3632                let mut out = fidl::new_empty!(
3633                    fidl::encoding::EmptyPayload,
3634                    fidl::encoding::DefaultFuchsiaResourceDialect
3635                );
3636                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3637                Ok((OpenTargetEvent::FlexibleEvent {}))
3638            }
3639            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
3640                Ok(OpenTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
3641            }
3642            _ => Err(fidl::Error::UnknownOrdinal {
3643                ordinal: tx_header.ordinal,
3644                protocol_name: <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3645            }),
3646        }
3647    }
3648}
3649
3650/// A Stream of incoming requests for fidl.clientsuite/OpenTarget.
3651pub struct OpenTargetRequestStream {
3652    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3653    is_terminated: bool,
3654}
3655
3656impl std::marker::Unpin for OpenTargetRequestStream {}
3657
3658impl futures::stream::FusedStream for OpenTargetRequestStream {
3659    fn is_terminated(&self) -> bool {
3660        self.is_terminated
3661    }
3662}
3663
3664impl fidl::endpoints::RequestStream for OpenTargetRequestStream {
3665    type Protocol = OpenTargetMarker;
3666    type ControlHandle = OpenTargetControlHandle;
3667
3668    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3669        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3670    }
3671
3672    fn control_handle(&self) -> Self::ControlHandle {
3673        OpenTargetControlHandle { inner: self.inner.clone() }
3674    }
3675
3676    fn into_inner(
3677        self,
3678    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3679    {
3680        (self.inner, self.is_terminated)
3681    }
3682
3683    fn from_inner(
3684        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3685        is_terminated: bool,
3686    ) -> Self {
3687        Self { inner, is_terminated }
3688    }
3689}
3690
3691impl futures::Stream for OpenTargetRequestStream {
3692    type Item = Result<OpenTargetRequest, fidl::Error>;
3693
3694    fn poll_next(
3695        mut self: std::pin::Pin<&mut Self>,
3696        cx: &mut std::task::Context<'_>,
3697    ) -> std::task::Poll<Option<Self::Item>> {
3698        let this = &mut *self;
3699        if this.inner.check_shutdown(cx) {
3700            this.is_terminated = true;
3701            return std::task::Poll::Ready(None);
3702        }
3703        if this.is_terminated {
3704            panic!("polled OpenTargetRequestStream after completion");
3705        }
3706        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3707            |bytes, handles| {
3708                match this.inner.channel().read_etc(cx, bytes, handles) {
3709                    std::task::Poll::Ready(Ok(())) => {}
3710                    std::task::Poll::Pending => return std::task::Poll::Pending,
3711                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3712                        this.is_terminated = true;
3713                        return std::task::Poll::Ready(None);
3714                    }
3715                    std::task::Poll::Ready(Err(e)) => {
3716                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3717                            e.into(),
3718                        ))));
3719                    }
3720                }
3721
3722                // A message has been received from the channel
3723                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3724
3725                std::task::Poll::Ready(Some(match header.ordinal {
3726                    0x6db0bc21c4aae764 => {
3727                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3728                        let mut req = fidl::new_empty!(
3729                            fidl::encoding::EmptyPayload,
3730                            fidl::encoding::DefaultFuchsiaResourceDialect
3731                        );
3732                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3733                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3734                        Ok(OpenTargetRequest::StrictOneWay { control_handle })
3735                    }
3736                    0xf894a7eb9cc29fc => {
3737                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3738                        let mut req = fidl::new_empty!(
3739                            fidl::encoding::EmptyPayload,
3740                            fidl::encoding::DefaultFuchsiaResourceDialect
3741                        );
3742                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3743                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3744                        Ok(OpenTargetRequest::FlexibleOneWay { control_handle })
3745                    }
3746                    0xdcf4cef19a1c542 => {
3747                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3748                        let mut req = fidl::new_empty!(
3749                            fidl::encoding::EmptyPayload,
3750                            fidl::encoding::DefaultFuchsiaResourceDialect
3751                        );
3752                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3753                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3754                        Ok(OpenTargetRequest::StrictTwoWay {
3755                            responder: OpenTargetStrictTwoWayResponder {
3756                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3757                                tx_id: header.tx_id,
3758                            },
3759                        })
3760                    }
3761                    0x79c7a7803c45e2e3 => {
3762                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3763                        let mut req = fidl::new_empty!(
3764                            fidl::encoding::EmptyPayload,
3765                            fidl::encoding::DefaultFuchsiaResourceDialect
3766                        );
3767                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3768                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3769                        Ok(OpenTargetRequest::StrictTwoWayFields {
3770                            responder: OpenTargetStrictTwoWayFieldsResponder {
3771                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3772                                tx_id: header.tx_id,
3773                            },
3774                        })
3775                    }
3776                    0x54259ed6c262fe88 => {
3777                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3778                        let mut req = fidl::new_empty!(
3779                            fidl::encoding::EmptyPayload,
3780                            fidl::encoding::DefaultFuchsiaResourceDialect
3781                        );
3782                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3783                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3784                        Ok(OpenTargetRequest::StrictTwoWayErr {
3785                            responder: OpenTargetStrictTwoWayErrResponder {
3786                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3787                                tx_id: header.tx_id,
3788                            },
3789                        })
3790                    }
3791                    0x7dbaa8538b552711 => {
3792                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3793                        let mut req = fidl::new_empty!(
3794                            fidl::encoding::EmptyPayload,
3795                            fidl::encoding::DefaultFuchsiaResourceDialect
3796                        );
3797                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3798                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3799                        Ok(OpenTargetRequest::StrictTwoWayFieldsErr {
3800                            responder: OpenTargetStrictTwoWayFieldsErrResponder {
3801                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3802                                tx_id: header.tx_id,
3803                            },
3804                        })
3805                    }
3806                    0x66552e68b99a0587 => {
3807                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3808                        let mut req = fidl::new_empty!(
3809                            fidl::encoding::EmptyPayload,
3810                            fidl::encoding::DefaultFuchsiaResourceDialect
3811                        );
3812                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3813                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3814                        Ok(OpenTargetRequest::FlexibleTwoWay {
3815                            responder: OpenTargetFlexibleTwoWayResponder {
3816                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3817                                tx_id: header.tx_id,
3818                            },
3819                        })
3820                    }
3821                    0x38b95648ac4e2ae4 => {
3822                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3823                        let mut req = fidl::new_empty!(
3824                            fidl::encoding::EmptyPayload,
3825                            fidl::encoding::DefaultFuchsiaResourceDialect
3826                        );
3827                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3828                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3829                        Ok(OpenTargetRequest::FlexibleTwoWayFields {
3830                            responder: OpenTargetFlexibleTwoWayFieldsResponder {
3831                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3832                                tx_id: header.tx_id,
3833                            },
3834                        })
3835                    }
3836                    0x6e144c6e0cf2147a => {
3837                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3838                        let mut req = fidl::new_empty!(
3839                            fidl::encoding::EmptyPayload,
3840                            fidl::encoding::DefaultFuchsiaResourceDialect
3841                        );
3842                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3843                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3844                        Ok(OpenTargetRequest::FlexibleTwoWayErr {
3845                            responder: OpenTargetFlexibleTwoWayErrResponder {
3846                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3847                                tx_id: header.tx_id,
3848                            },
3849                        })
3850                    }
3851                    0xe494147cda8024a => {
3852                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3853                        let mut req = fidl::new_empty!(
3854                            fidl::encoding::EmptyPayload,
3855                            fidl::encoding::DefaultFuchsiaResourceDialect
3856                        );
3857                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3858                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3859                        Ok(OpenTargetRequest::FlexibleTwoWayFieldsErr {
3860                            responder: OpenTargetFlexibleTwoWayFieldsErrResponder {
3861                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3862                                tx_id: header.tx_id,
3863                            },
3864                        })
3865                    }
3866                    _ if header.tx_id == 0
3867                        && header
3868                            .dynamic_flags()
3869                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3870                    {
3871                        Ok(OpenTargetRequest::_UnknownMethod {
3872                            ordinal: header.ordinal,
3873                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3874                            method_type: fidl::MethodType::OneWay,
3875                        })
3876                    }
3877                    _ if header
3878                        .dynamic_flags()
3879                        .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3880                    {
3881                        this.inner.send_framework_err(
3882                            fidl::encoding::FrameworkErr::UnknownMethod,
3883                            header.tx_id,
3884                            header.ordinal,
3885                            header.dynamic_flags(),
3886                            (bytes, handles),
3887                        )?;
3888                        Ok(OpenTargetRequest::_UnknownMethod {
3889                            ordinal: header.ordinal,
3890                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3891                            method_type: fidl::MethodType::TwoWay,
3892                        })
3893                    }
3894                    _ => Err(fidl::Error::UnknownOrdinal {
3895                        ordinal: header.ordinal,
3896                        protocol_name:
3897                            <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3898                    }),
3899                }))
3900            },
3901        )
3902    }
3903}
3904
3905#[derive(Debug)]
3906pub enum OpenTargetRequest {
3907    StrictOneWay {
3908        control_handle: OpenTargetControlHandle,
3909    },
3910    FlexibleOneWay {
3911        control_handle: OpenTargetControlHandle,
3912    },
3913    StrictTwoWay {
3914        responder: OpenTargetStrictTwoWayResponder,
3915    },
3916    StrictTwoWayFields {
3917        responder: OpenTargetStrictTwoWayFieldsResponder,
3918    },
3919    StrictTwoWayErr {
3920        responder: OpenTargetStrictTwoWayErrResponder,
3921    },
3922    StrictTwoWayFieldsErr {
3923        responder: OpenTargetStrictTwoWayFieldsErrResponder,
3924    },
3925    FlexibleTwoWay {
3926        responder: OpenTargetFlexibleTwoWayResponder,
3927    },
3928    FlexibleTwoWayFields {
3929        responder: OpenTargetFlexibleTwoWayFieldsResponder,
3930    },
3931    FlexibleTwoWayErr {
3932        responder: OpenTargetFlexibleTwoWayErrResponder,
3933    },
3934    FlexibleTwoWayFieldsErr {
3935        responder: OpenTargetFlexibleTwoWayFieldsErrResponder,
3936    },
3937    /// An interaction was received which does not match any known method.
3938    #[non_exhaustive]
3939    _UnknownMethod {
3940        /// Ordinal of the method that was called.
3941        ordinal: u64,
3942        control_handle: OpenTargetControlHandle,
3943        method_type: fidl::MethodType,
3944    },
3945}
3946
3947impl OpenTargetRequest {
3948    #[allow(irrefutable_let_patterns)]
3949    pub fn into_strict_one_way(self) -> Option<(OpenTargetControlHandle)> {
3950        if let OpenTargetRequest::StrictOneWay { control_handle } = self {
3951            Some((control_handle))
3952        } else {
3953            None
3954        }
3955    }
3956
3957    #[allow(irrefutable_let_patterns)]
3958    pub fn into_flexible_one_way(self) -> Option<(OpenTargetControlHandle)> {
3959        if let OpenTargetRequest::FlexibleOneWay { control_handle } = self {
3960            Some((control_handle))
3961        } else {
3962            None
3963        }
3964    }
3965
3966    #[allow(irrefutable_let_patterns)]
3967    pub fn into_strict_two_way(self) -> Option<(OpenTargetStrictTwoWayResponder)> {
3968        if let OpenTargetRequest::StrictTwoWay { responder } = self {
3969            Some((responder))
3970        } else {
3971            None
3972        }
3973    }
3974
3975    #[allow(irrefutable_let_patterns)]
3976    pub fn into_strict_two_way_fields(self) -> Option<(OpenTargetStrictTwoWayFieldsResponder)> {
3977        if let OpenTargetRequest::StrictTwoWayFields { responder } = self {
3978            Some((responder))
3979        } else {
3980            None
3981        }
3982    }
3983
3984    #[allow(irrefutable_let_patterns)]
3985    pub fn into_strict_two_way_err(self) -> Option<(OpenTargetStrictTwoWayErrResponder)> {
3986        if let OpenTargetRequest::StrictTwoWayErr { responder } = self {
3987            Some((responder))
3988        } else {
3989            None
3990        }
3991    }
3992
3993    #[allow(irrefutable_let_patterns)]
3994    pub fn into_strict_two_way_fields_err(
3995        self,
3996    ) -> Option<(OpenTargetStrictTwoWayFieldsErrResponder)> {
3997        if let OpenTargetRequest::StrictTwoWayFieldsErr { responder } = self {
3998            Some((responder))
3999        } else {
4000            None
4001        }
4002    }
4003
4004    #[allow(irrefutable_let_patterns)]
4005    pub fn into_flexible_two_way(self) -> Option<(OpenTargetFlexibleTwoWayResponder)> {
4006        if let OpenTargetRequest::FlexibleTwoWay { responder } = self {
4007            Some((responder))
4008        } else {
4009            None
4010        }
4011    }
4012
4013    #[allow(irrefutable_let_patterns)]
4014    pub fn into_flexible_two_way_fields(self) -> Option<(OpenTargetFlexibleTwoWayFieldsResponder)> {
4015        if let OpenTargetRequest::FlexibleTwoWayFields { responder } = self {
4016            Some((responder))
4017        } else {
4018            None
4019        }
4020    }
4021
4022    #[allow(irrefutable_let_patterns)]
4023    pub fn into_flexible_two_way_err(self) -> Option<(OpenTargetFlexibleTwoWayErrResponder)> {
4024        if let OpenTargetRequest::FlexibleTwoWayErr { responder } = self {
4025            Some((responder))
4026        } else {
4027            None
4028        }
4029    }
4030
4031    #[allow(irrefutable_let_patterns)]
4032    pub fn into_flexible_two_way_fields_err(
4033        self,
4034    ) -> Option<(OpenTargetFlexibleTwoWayFieldsErrResponder)> {
4035        if let OpenTargetRequest::FlexibleTwoWayFieldsErr { responder } = self {
4036            Some((responder))
4037        } else {
4038            None
4039        }
4040    }
4041
4042    /// Name of the method defined in FIDL
4043    pub fn method_name(&self) -> &'static str {
4044        match *self {
4045            OpenTargetRequest::StrictOneWay { .. } => "strict_one_way",
4046            OpenTargetRequest::FlexibleOneWay { .. } => "flexible_one_way",
4047            OpenTargetRequest::StrictTwoWay { .. } => "strict_two_way",
4048            OpenTargetRequest::StrictTwoWayFields { .. } => "strict_two_way_fields",
4049            OpenTargetRequest::StrictTwoWayErr { .. } => "strict_two_way_err",
4050            OpenTargetRequest::StrictTwoWayFieldsErr { .. } => "strict_two_way_fields_err",
4051            OpenTargetRequest::FlexibleTwoWay { .. } => "flexible_two_way",
4052            OpenTargetRequest::FlexibleTwoWayFields { .. } => "flexible_two_way_fields",
4053            OpenTargetRequest::FlexibleTwoWayErr { .. } => "flexible_two_way_err",
4054            OpenTargetRequest::FlexibleTwoWayFieldsErr { .. } => "flexible_two_way_fields_err",
4055            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::OneWay, .. } => {
4056                "unknown one-way method"
4057            }
4058            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::TwoWay, .. } => {
4059                "unknown two-way method"
4060            }
4061        }
4062    }
4063}
4064
4065#[derive(Debug, Clone)]
4066pub struct OpenTargetControlHandle {
4067    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4068}
4069
4070impl fidl::endpoints::ControlHandle for OpenTargetControlHandle {
4071    fn shutdown(&self) {
4072        self.inner.shutdown()
4073    }
4074
4075    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4076        self.inner.shutdown_with_epitaph(status)
4077    }
4078
4079    fn is_closed(&self) -> bool {
4080        self.inner.channel().is_closed()
4081    }
4082    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4083        self.inner.channel().on_closed()
4084    }
4085
4086    #[cfg(target_os = "fuchsia")]
4087    fn signal_peer(
4088        &self,
4089        clear_mask: zx::Signals,
4090        set_mask: zx::Signals,
4091    ) -> Result<(), zx_status::Status> {
4092        use fidl::Peered;
4093        self.inner.channel().signal_peer(clear_mask, set_mask)
4094    }
4095}
4096
4097impl OpenTargetControlHandle {
4098    pub fn send_strict_event(&self) -> Result<(), fidl::Error> {
4099        self.inner.send::<fidl::encoding::EmptyPayload>(
4100            (),
4101            0,
4102            0x2b291d74321e77a0,
4103            fidl::encoding::DynamicFlags::empty(),
4104        )
4105    }
4106
4107    pub fn send_flexible_event(&self) -> Result<(), fidl::Error> {
4108        self.inner.send::<fidl::encoding::EmptyPayload>(
4109            (),
4110            0,
4111            0x50d4688058898898,
4112            fidl::encoding::DynamicFlags::FLEXIBLE,
4113        )
4114    }
4115}
4116
4117#[must_use = "FIDL methods require a response to be sent"]
4118#[derive(Debug)]
4119pub struct OpenTargetStrictTwoWayResponder {
4120    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4121    tx_id: u32,
4122}
4123
4124/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4125/// if the responder is dropped without sending a response, so that the client
4126/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4127impl std::ops::Drop for OpenTargetStrictTwoWayResponder {
4128    fn drop(&mut self) {
4129        self.control_handle.shutdown();
4130        // Safety: drops once, never accessed again
4131        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4132    }
4133}
4134
4135impl fidl::endpoints::Responder for OpenTargetStrictTwoWayResponder {
4136    type ControlHandle = OpenTargetControlHandle;
4137
4138    fn control_handle(&self) -> &OpenTargetControlHandle {
4139        &self.control_handle
4140    }
4141
4142    fn drop_without_shutdown(mut self) {
4143        // Safety: drops once, never accessed again due to mem::forget
4144        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4145        // Prevent Drop from running (which would shut down the channel)
4146        std::mem::forget(self);
4147    }
4148}
4149
4150impl OpenTargetStrictTwoWayResponder {
4151    /// Sends a response to the FIDL transaction.
4152    ///
4153    /// Sets the channel to shutdown if an error occurs.
4154    pub fn send(self) -> Result<(), fidl::Error> {
4155        let _result = self.send_raw();
4156        if _result.is_err() {
4157            self.control_handle.shutdown();
4158        }
4159        self.drop_without_shutdown();
4160        _result
4161    }
4162
4163    /// Similar to "send" but does not shutdown the channel if an error occurs.
4164    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4165        let _result = self.send_raw();
4166        self.drop_without_shutdown();
4167        _result
4168    }
4169
4170    fn send_raw(&self) -> Result<(), fidl::Error> {
4171        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4172            (),
4173            self.tx_id,
4174            0xdcf4cef19a1c542,
4175            fidl::encoding::DynamicFlags::empty(),
4176        )
4177    }
4178}
4179
4180#[must_use = "FIDL methods require a response to be sent"]
4181#[derive(Debug)]
4182pub struct OpenTargetStrictTwoWayFieldsResponder {
4183    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4184    tx_id: u32,
4185}
4186
4187/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4188/// if the responder is dropped without sending a response, so that the client
4189/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4190impl std::ops::Drop for OpenTargetStrictTwoWayFieldsResponder {
4191    fn drop(&mut self) {
4192        self.control_handle.shutdown();
4193        // Safety: drops once, never accessed again
4194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4195    }
4196}
4197
4198impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsResponder {
4199    type ControlHandle = OpenTargetControlHandle;
4200
4201    fn control_handle(&self) -> &OpenTargetControlHandle {
4202        &self.control_handle
4203    }
4204
4205    fn drop_without_shutdown(mut self) {
4206        // Safety: drops once, never accessed again due to mem::forget
4207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4208        // Prevent Drop from running (which would shut down the channel)
4209        std::mem::forget(self);
4210    }
4211}
4212
4213impl OpenTargetStrictTwoWayFieldsResponder {
4214    /// Sends a response to the FIDL transaction.
4215    ///
4216    /// Sets the channel to shutdown if an error occurs.
4217    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4218        let _result = self.send_raw(some_field);
4219        if _result.is_err() {
4220            self.control_handle.shutdown();
4221        }
4222        self.drop_without_shutdown();
4223        _result
4224    }
4225
4226    /// Similar to "send" but does not shutdown the channel if an error occurs.
4227    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4228        let _result = self.send_raw(some_field);
4229        self.drop_without_shutdown();
4230        _result
4231    }
4232
4233    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4234        self.control_handle.inner.send::<NonEmptyPayload>(
4235            (some_field,),
4236            self.tx_id,
4237            0x79c7a7803c45e2e3,
4238            fidl::encoding::DynamicFlags::empty(),
4239        )
4240    }
4241}
4242
4243#[must_use = "FIDL methods require a response to be sent"]
4244#[derive(Debug)]
4245pub struct OpenTargetStrictTwoWayErrResponder {
4246    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4247    tx_id: u32,
4248}
4249
4250/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4251/// if the responder is dropped without sending a response, so that the client
4252/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4253impl std::ops::Drop for OpenTargetStrictTwoWayErrResponder {
4254    fn drop(&mut self) {
4255        self.control_handle.shutdown();
4256        // Safety: drops once, never accessed again
4257        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4258    }
4259}
4260
4261impl fidl::endpoints::Responder for OpenTargetStrictTwoWayErrResponder {
4262    type ControlHandle = OpenTargetControlHandle;
4263
4264    fn control_handle(&self) -> &OpenTargetControlHandle {
4265        &self.control_handle
4266    }
4267
4268    fn drop_without_shutdown(mut self) {
4269        // Safety: drops once, never accessed again due to mem::forget
4270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4271        // Prevent Drop from running (which would shut down the channel)
4272        std::mem::forget(self);
4273    }
4274}
4275
4276impl OpenTargetStrictTwoWayErrResponder {
4277    /// Sends a response to the FIDL transaction.
4278    ///
4279    /// Sets the channel to shutdown if an error occurs.
4280    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4281        let _result = self.send_raw(result);
4282        if _result.is_err() {
4283            self.control_handle.shutdown();
4284        }
4285        self.drop_without_shutdown();
4286        _result
4287    }
4288
4289    /// Similar to "send" but does not shutdown the channel if an error occurs.
4290    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4291        let _result = self.send_raw(result);
4292        self.drop_without_shutdown();
4293        _result
4294    }
4295
4296    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4297        self.control_handle
4298            .inner
4299            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4300                result,
4301                self.tx_id,
4302                0x54259ed6c262fe88,
4303                fidl::encoding::DynamicFlags::empty(),
4304            )
4305    }
4306}
4307
4308#[must_use = "FIDL methods require a response to be sent"]
4309#[derive(Debug)]
4310pub struct OpenTargetStrictTwoWayFieldsErrResponder {
4311    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4312    tx_id: u32,
4313}
4314
4315/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4316/// if the responder is dropped without sending a response, so that the client
4317/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4318impl std::ops::Drop for OpenTargetStrictTwoWayFieldsErrResponder {
4319    fn drop(&mut self) {
4320        self.control_handle.shutdown();
4321        // Safety: drops once, never accessed again
4322        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4323    }
4324}
4325
4326impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsErrResponder {
4327    type ControlHandle = OpenTargetControlHandle;
4328
4329    fn control_handle(&self) -> &OpenTargetControlHandle {
4330        &self.control_handle
4331    }
4332
4333    fn drop_without_shutdown(mut self) {
4334        // Safety: drops once, never accessed again due to mem::forget
4335        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4336        // Prevent Drop from running (which would shut down the channel)
4337        std::mem::forget(self);
4338    }
4339}
4340
4341impl OpenTargetStrictTwoWayFieldsErrResponder {
4342    /// Sends a response to the FIDL transaction.
4343    ///
4344    /// Sets the channel to shutdown if an error occurs.
4345    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4346        let _result = self.send_raw(result);
4347        if _result.is_err() {
4348            self.control_handle.shutdown();
4349        }
4350        self.drop_without_shutdown();
4351        _result
4352    }
4353
4354    /// Similar to "send" but does not shutdown the channel if an error occurs.
4355    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4356        let _result = self.send_raw(result);
4357        self.drop_without_shutdown();
4358        _result
4359    }
4360
4361    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4362        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
4363            result.map(|some_field| (some_field,)),
4364            self.tx_id,
4365            0x7dbaa8538b552711,
4366            fidl::encoding::DynamicFlags::empty(),
4367        )
4368    }
4369}
4370
4371#[must_use = "FIDL methods require a response to be sent"]
4372#[derive(Debug)]
4373pub struct OpenTargetFlexibleTwoWayResponder {
4374    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4375    tx_id: u32,
4376}
4377
4378/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4379/// if the responder is dropped without sending a response, so that the client
4380/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4381impl std::ops::Drop for OpenTargetFlexibleTwoWayResponder {
4382    fn drop(&mut self) {
4383        self.control_handle.shutdown();
4384        // Safety: drops once, never accessed again
4385        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4386    }
4387}
4388
4389impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayResponder {
4390    type ControlHandle = OpenTargetControlHandle;
4391
4392    fn control_handle(&self) -> &OpenTargetControlHandle {
4393        &self.control_handle
4394    }
4395
4396    fn drop_without_shutdown(mut self) {
4397        // Safety: drops once, never accessed again due to mem::forget
4398        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4399        // Prevent Drop from running (which would shut down the channel)
4400        std::mem::forget(self);
4401    }
4402}
4403
4404impl OpenTargetFlexibleTwoWayResponder {
4405    /// Sends a response to the FIDL transaction.
4406    ///
4407    /// Sets the channel to shutdown if an error occurs.
4408    pub fn send(self) -> Result<(), fidl::Error> {
4409        let _result = self.send_raw();
4410        if _result.is_err() {
4411            self.control_handle.shutdown();
4412        }
4413        self.drop_without_shutdown();
4414        _result
4415    }
4416
4417    /// Similar to "send" but does not shutdown the channel if an error occurs.
4418    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4419        let _result = self.send_raw();
4420        self.drop_without_shutdown();
4421        _result
4422    }
4423
4424    fn send_raw(&self) -> Result<(), fidl::Error> {
4425        self.control_handle.inner.send::<fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>>(
4426            fidl::encoding::Flexible::new(()),
4427            self.tx_id,
4428            0x66552e68b99a0587,
4429            fidl::encoding::DynamicFlags::FLEXIBLE,
4430        )
4431    }
4432}
4433
4434#[must_use = "FIDL methods require a response to be sent"]
4435#[derive(Debug)]
4436pub struct OpenTargetFlexibleTwoWayFieldsResponder {
4437    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4438    tx_id: u32,
4439}
4440
4441/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4442/// if the responder is dropped without sending a response, so that the client
4443/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4444impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsResponder {
4445    fn drop(&mut self) {
4446        self.control_handle.shutdown();
4447        // Safety: drops once, never accessed again
4448        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4449    }
4450}
4451
4452impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsResponder {
4453    type ControlHandle = OpenTargetControlHandle;
4454
4455    fn control_handle(&self) -> &OpenTargetControlHandle {
4456        &self.control_handle
4457    }
4458
4459    fn drop_without_shutdown(mut self) {
4460        // Safety: drops once, never accessed again due to mem::forget
4461        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4462        // Prevent Drop from running (which would shut down the channel)
4463        std::mem::forget(self);
4464    }
4465}
4466
4467impl OpenTargetFlexibleTwoWayFieldsResponder {
4468    /// Sends a response to the FIDL transaction.
4469    ///
4470    /// Sets the channel to shutdown if an error occurs.
4471    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4472        let _result = self.send_raw(some_field);
4473        if _result.is_err() {
4474            self.control_handle.shutdown();
4475        }
4476        self.drop_without_shutdown();
4477        _result
4478    }
4479
4480    /// Similar to "send" but does not shutdown the channel if an error occurs.
4481    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4482        let _result = self.send_raw(some_field);
4483        self.drop_without_shutdown();
4484        _result
4485    }
4486
4487    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4488        self.control_handle.inner.send::<fidl::encoding::FlexibleType<NonEmptyPayload>>(
4489            fidl::encoding::Flexible::new((some_field,)),
4490            self.tx_id,
4491            0x38b95648ac4e2ae4,
4492            fidl::encoding::DynamicFlags::FLEXIBLE,
4493        )
4494    }
4495}
4496
4497#[must_use = "FIDL methods require a response to be sent"]
4498#[derive(Debug)]
4499pub struct OpenTargetFlexibleTwoWayErrResponder {
4500    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4501    tx_id: u32,
4502}
4503
4504/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4505/// if the responder is dropped without sending a response, so that the client
4506/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4507impl std::ops::Drop for OpenTargetFlexibleTwoWayErrResponder {
4508    fn drop(&mut self) {
4509        self.control_handle.shutdown();
4510        // Safety: drops once, never accessed again
4511        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4512    }
4513}
4514
4515impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayErrResponder {
4516    type ControlHandle = OpenTargetControlHandle;
4517
4518    fn control_handle(&self) -> &OpenTargetControlHandle {
4519        &self.control_handle
4520    }
4521
4522    fn drop_without_shutdown(mut self) {
4523        // Safety: drops once, never accessed again due to mem::forget
4524        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4525        // Prevent Drop from running (which would shut down the channel)
4526        std::mem::forget(self);
4527    }
4528}
4529
4530impl OpenTargetFlexibleTwoWayErrResponder {
4531    /// Sends a response to the FIDL transaction.
4532    ///
4533    /// Sets the channel to shutdown if an error occurs.
4534    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4535        let _result = self.send_raw(result);
4536        if _result.is_err() {
4537            self.control_handle.shutdown();
4538        }
4539        self.drop_without_shutdown();
4540        _result
4541    }
4542
4543    /// Similar to "send" but does not shutdown the channel if an error occurs.
4544    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4545        let _result = self.send_raw(result);
4546        self.drop_without_shutdown();
4547        _result
4548    }
4549
4550    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4551        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4552            fidl::encoding::EmptyStruct,
4553            i32,
4554        >>(
4555            fidl::encoding::FlexibleResult::new(result),
4556            self.tx_id,
4557            0x6e144c6e0cf2147a,
4558            fidl::encoding::DynamicFlags::FLEXIBLE,
4559        )
4560    }
4561}
4562
4563#[must_use = "FIDL methods require a response to be sent"]
4564#[derive(Debug)]
4565pub struct OpenTargetFlexibleTwoWayFieldsErrResponder {
4566    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4567    tx_id: u32,
4568}
4569
4570/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4571/// if the responder is dropped without sending a response, so that the client
4572/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4573impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsErrResponder {
4574    fn drop(&mut self) {
4575        self.control_handle.shutdown();
4576        // Safety: drops once, never accessed again
4577        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4578    }
4579}
4580
4581impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsErrResponder {
4582    type ControlHandle = OpenTargetControlHandle;
4583
4584    fn control_handle(&self) -> &OpenTargetControlHandle {
4585        &self.control_handle
4586    }
4587
4588    fn drop_without_shutdown(mut self) {
4589        // Safety: drops once, never accessed again due to mem::forget
4590        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4591        // Prevent Drop from running (which would shut down the channel)
4592        std::mem::forget(self);
4593    }
4594}
4595
4596impl OpenTargetFlexibleTwoWayFieldsErrResponder {
4597    /// Sends a response to the FIDL transaction.
4598    ///
4599    /// Sets the channel to shutdown if an error occurs.
4600    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4601        let _result = self.send_raw(result);
4602        if _result.is_err() {
4603            self.control_handle.shutdown();
4604        }
4605        self.drop_without_shutdown();
4606        _result
4607    }
4608
4609    /// Similar to "send" but does not shutdown the channel if an error occurs.
4610    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4611        let _result = self.send_raw(result);
4612        self.drop_without_shutdown();
4613        _result
4614    }
4615
4616    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4617        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>>(
4618            fidl::encoding::FlexibleResult::new(result.map(|some_field| (some_field,))),
4619            self.tx_id,
4620            0xe494147cda8024a,
4621            fidl::encoding::DynamicFlags::FLEXIBLE,
4622        )
4623    }
4624}
4625
4626#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4627pub struct OpenTargetEventReporterMarker;
4628
4629impl fidl::endpoints::ProtocolMarker for OpenTargetEventReporterMarker {
4630    type Proxy = OpenTargetEventReporterProxy;
4631    type RequestStream = OpenTargetEventReporterRequestStream;
4632    #[cfg(target_os = "fuchsia")]
4633    type SynchronousProxy = OpenTargetEventReporterSynchronousProxy;
4634
4635    const DEBUG_NAME: &'static str = "(anonymous) OpenTargetEventReporter";
4636}
4637
4638pub trait OpenTargetEventReporterProxyInterface: Send + Sync {
4639    fn r#report_event(&self, payload: &OpenTargetEventReport) -> Result<(), fidl::Error>;
4640}
4641#[derive(Debug)]
4642#[cfg(target_os = "fuchsia")]
4643pub struct OpenTargetEventReporterSynchronousProxy {
4644    client: fidl::client::sync::Client,
4645}
4646
4647#[cfg(target_os = "fuchsia")]
4648impl fidl::endpoints::SynchronousProxy for OpenTargetEventReporterSynchronousProxy {
4649    type Proxy = OpenTargetEventReporterProxy;
4650    type Protocol = OpenTargetEventReporterMarker;
4651
4652    fn from_channel(inner: fidl::Channel) -> Self {
4653        Self::new(inner)
4654    }
4655
4656    fn into_channel(self) -> fidl::Channel {
4657        self.client.into_channel()
4658    }
4659
4660    fn as_channel(&self) -> &fidl::Channel {
4661        self.client.as_channel()
4662    }
4663}
4664
4665#[cfg(target_os = "fuchsia")]
4666impl OpenTargetEventReporterSynchronousProxy {
4667    pub fn new(channel: fidl::Channel) -> Self {
4668        let protocol_name =
4669            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4670        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
4671    }
4672
4673    pub fn into_channel(self) -> fidl::Channel {
4674        self.client.into_channel()
4675    }
4676
4677    /// Waits until an event arrives and returns it. It is safe for other
4678    /// threads to make concurrent requests while waiting for an event.
4679    pub fn wait_for_event(
4680        &self,
4681        deadline: zx::MonotonicInstant,
4682    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4683        OpenTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
4684    }
4685
4686    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4687        self.client.send::<OpenTargetEventReport>(
4688            payload,
4689            0x70ab38ec0248964a,
4690            fidl::encoding::DynamicFlags::empty(),
4691        )
4692    }
4693}
4694
4695#[cfg(target_os = "fuchsia")]
4696impl From<OpenTargetEventReporterSynchronousProxy> for zx::NullableHandle {
4697    fn from(value: OpenTargetEventReporterSynchronousProxy) -> Self {
4698        value.into_channel().into()
4699    }
4700}
4701
4702#[cfg(target_os = "fuchsia")]
4703impl From<fidl::Channel> for OpenTargetEventReporterSynchronousProxy {
4704    fn from(value: fidl::Channel) -> Self {
4705        Self::new(value)
4706    }
4707}
4708
4709#[cfg(target_os = "fuchsia")]
4710impl fidl::endpoints::FromClient for OpenTargetEventReporterSynchronousProxy {
4711    type Protocol = OpenTargetEventReporterMarker;
4712
4713    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>) -> Self {
4714        Self::new(value.into_channel())
4715    }
4716}
4717
4718#[derive(Debug, Clone)]
4719pub struct OpenTargetEventReporterProxy {
4720    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
4721}
4722
4723impl fidl::endpoints::Proxy for OpenTargetEventReporterProxy {
4724    type Protocol = OpenTargetEventReporterMarker;
4725
4726    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
4727        Self::new(inner)
4728    }
4729
4730    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
4731        self.client.into_channel().map_err(|client| Self { client })
4732    }
4733
4734    fn as_channel(&self) -> &::fidl::AsyncChannel {
4735        self.client.as_channel()
4736    }
4737}
4738
4739impl OpenTargetEventReporterProxy {
4740    /// Create a new Proxy for fidl.clientsuite/OpenTargetEventReporter.
4741    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
4742        let protocol_name =
4743            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4744        Self { client: fidl::client::Client::new(channel, protocol_name) }
4745    }
4746
4747    /// Get a Stream of events from the remote end of the protocol.
4748    ///
4749    /// # Panics
4750    ///
4751    /// Panics if the event stream was already taken.
4752    pub fn take_event_stream(&self) -> OpenTargetEventReporterEventStream {
4753        OpenTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
4754    }
4755
4756    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4757        OpenTargetEventReporterProxyInterface::r#report_event(self, payload)
4758    }
4759}
4760
4761impl OpenTargetEventReporterProxyInterface for OpenTargetEventReporterProxy {
4762    fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4763        self.client.send::<OpenTargetEventReport>(
4764            payload,
4765            0x70ab38ec0248964a,
4766            fidl::encoding::DynamicFlags::empty(),
4767        )
4768    }
4769}
4770
4771pub struct OpenTargetEventReporterEventStream {
4772    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
4773}
4774
4775impl std::marker::Unpin for OpenTargetEventReporterEventStream {}
4776
4777impl futures::stream::FusedStream for OpenTargetEventReporterEventStream {
4778    fn is_terminated(&self) -> bool {
4779        self.event_receiver.is_terminated()
4780    }
4781}
4782
4783impl futures::Stream for OpenTargetEventReporterEventStream {
4784    type Item = Result<OpenTargetEventReporterEvent, fidl::Error>;
4785
4786    fn poll_next(
4787        mut self: std::pin::Pin<&mut Self>,
4788        cx: &mut std::task::Context<'_>,
4789    ) -> std::task::Poll<Option<Self::Item>> {
4790        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4791            &mut self.event_receiver,
4792            cx
4793        )?) {
4794            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEventReporterEvent::decode(buf))),
4795            None => std::task::Poll::Ready(None),
4796        }
4797    }
4798}
4799
4800#[derive(Debug)]
4801pub enum OpenTargetEventReporterEvent {}
4802
4803impl OpenTargetEventReporterEvent {
4804    /// Decodes a message buffer as a [`OpenTargetEventReporterEvent`].
4805    fn decode(
4806        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4807    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4808        let (bytes, _handles) = buf.split_mut();
4809        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4810        debug_assert_eq!(tx_header.tx_id, 0);
4811        match tx_header.ordinal {
4812            _ => Err(fidl::Error::UnknownOrdinal {
4813                ordinal: tx_header.ordinal,
4814                protocol_name:
4815                    <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4816            }),
4817        }
4818    }
4819}
4820
4821/// A Stream of incoming requests for fidl.clientsuite/OpenTargetEventReporter.
4822pub struct OpenTargetEventReporterRequestStream {
4823    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4824    is_terminated: bool,
4825}
4826
4827impl std::marker::Unpin for OpenTargetEventReporterRequestStream {}
4828
4829impl futures::stream::FusedStream for OpenTargetEventReporterRequestStream {
4830    fn is_terminated(&self) -> bool {
4831        self.is_terminated
4832    }
4833}
4834
4835impl fidl::endpoints::RequestStream for OpenTargetEventReporterRequestStream {
4836    type Protocol = OpenTargetEventReporterMarker;
4837    type ControlHandle = OpenTargetEventReporterControlHandle;
4838
4839    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
4840        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4841    }
4842
4843    fn control_handle(&self) -> Self::ControlHandle {
4844        OpenTargetEventReporterControlHandle { inner: self.inner.clone() }
4845    }
4846
4847    fn into_inner(
4848        self,
4849    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
4850    {
4851        (self.inner, self.is_terminated)
4852    }
4853
4854    fn from_inner(
4855        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4856        is_terminated: bool,
4857    ) -> Self {
4858        Self { inner, is_terminated }
4859    }
4860}
4861
4862impl futures::Stream for OpenTargetEventReporterRequestStream {
4863    type Item = Result<OpenTargetEventReporterRequest, fidl::Error>;
4864
4865    fn poll_next(
4866        mut self: std::pin::Pin<&mut Self>,
4867        cx: &mut std::task::Context<'_>,
4868    ) -> std::task::Poll<Option<Self::Item>> {
4869        let this = &mut *self;
4870        if this.inner.check_shutdown(cx) {
4871            this.is_terminated = true;
4872            return std::task::Poll::Ready(None);
4873        }
4874        if this.is_terminated {
4875            panic!("polled OpenTargetEventReporterRequestStream after completion");
4876        }
4877        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
4878            |bytes, handles| {
4879                match this.inner.channel().read_etc(cx, bytes, handles) {
4880                    std::task::Poll::Ready(Ok(())) => {}
4881                    std::task::Poll::Pending => return std::task::Poll::Pending,
4882                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
4883                        this.is_terminated = true;
4884                        return std::task::Poll::Ready(None);
4885                    }
4886                    std::task::Poll::Ready(Err(e)) => {
4887                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4888                            e.into(),
4889                        ))));
4890                    }
4891                }
4892
4893                // A message has been received from the channel
4894                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4895
4896                std::task::Poll::Ready(Some(match header.ordinal {
4897                0x70ab38ec0248964a => {
4898                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4899                    let mut req = fidl::new_empty!(OpenTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
4900                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<OpenTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
4901                    let control_handle = OpenTargetEventReporterControlHandle {
4902                        inner: this.inner.clone(),
4903                    };
4904                    Ok(OpenTargetEventReporterRequest::ReportEvent {payload: req,
4905                        control_handle,
4906                    })
4907                }
4908                _ => Err(fidl::Error::UnknownOrdinal {
4909                    ordinal: header.ordinal,
4910                    protocol_name: <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4911                }),
4912            }))
4913            },
4914        )
4915    }
4916}
4917
4918#[derive(Debug)]
4919pub enum OpenTargetEventReporterRequest {
4920    ReportEvent {
4921        payload: OpenTargetEventReport,
4922        control_handle: OpenTargetEventReporterControlHandle,
4923    },
4924}
4925
4926impl OpenTargetEventReporterRequest {
4927    #[allow(irrefutable_let_patterns)]
4928    pub fn into_report_event(
4929        self,
4930    ) -> Option<(OpenTargetEventReport, OpenTargetEventReporterControlHandle)> {
4931        if let OpenTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
4932            Some((payload, control_handle))
4933        } else {
4934            None
4935        }
4936    }
4937
4938    /// Name of the method defined in FIDL
4939    pub fn method_name(&self) -> &'static str {
4940        match *self {
4941            OpenTargetEventReporterRequest::ReportEvent { .. } => "report_event",
4942        }
4943    }
4944}
4945
4946#[derive(Debug, Clone)]
4947pub struct OpenTargetEventReporterControlHandle {
4948    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4949}
4950
4951impl fidl::endpoints::ControlHandle for OpenTargetEventReporterControlHandle {
4952    fn shutdown(&self) {
4953        self.inner.shutdown()
4954    }
4955
4956    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4957        self.inner.shutdown_with_epitaph(status)
4958    }
4959
4960    fn is_closed(&self) -> bool {
4961        self.inner.channel().is_closed()
4962    }
4963    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4964        self.inner.channel().on_closed()
4965    }
4966
4967    #[cfg(target_os = "fuchsia")]
4968    fn signal_peer(
4969        &self,
4970        clear_mask: zx::Signals,
4971        set_mask: zx::Signals,
4972    ) -> Result<(), zx_status::Status> {
4973        use fidl::Peered;
4974        self.inner.channel().signal_peer(clear_mask, set_mask)
4975    }
4976}
4977
4978impl OpenTargetEventReporterControlHandle {}
4979
4980#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4981pub struct RunnerMarker;
4982
4983impl fidl::endpoints::ProtocolMarker for RunnerMarker {
4984    type Proxy = RunnerProxy;
4985    type RequestStream = RunnerRequestStream;
4986    #[cfg(target_os = "fuchsia")]
4987    type SynchronousProxy = RunnerSynchronousProxy;
4988
4989    const DEBUG_NAME: &'static str = "fidl.clientsuite.Runner";
4990}
4991impl fidl::endpoints::DiscoverableProtocolMarker for RunnerMarker {}
4992
4993pub trait RunnerProxyInterface: Send + Sync {
4994    type GetVersionResponseFut: std::future::Future<Output = Result<u64, fidl::Error>> + Send;
4995    fn r#get_version(&self) -> Self::GetVersionResponseFut;
4996    type IsTestEnabledResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
4997    fn r#is_test_enabled(&self, test: Test) -> Self::IsTestEnabledResponseFut;
4998    type CheckAliveResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
4999    fn r#check_alive(&self) -> Self::CheckAliveResponseFut;
5000    type GetBindingsPropertiesResponseFut: std::future::Future<Output = Result<BindingsProperties, fidl::Error>>
5001        + Send;
5002    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut;
5003    type CallTwoWayNoPayloadResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5004        + Send;
5005    fn r#call_two_way_no_payload(
5006        &self,
5007        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5008    ) -> Self::CallTwoWayNoPayloadResponseFut;
5009    type CallTwoWayStructPayloadResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5010        + Send;
5011    fn r#call_two_way_struct_payload(
5012        &self,
5013        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5014    ) -> Self::CallTwoWayStructPayloadResponseFut;
5015    type CallTwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TableResultClassification, fidl::Error>>
5016        + Send;
5017    fn r#call_two_way_table_payload(
5018        &self,
5019        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5020    ) -> Self::CallTwoWayTablePayloadResponseFut;
5021    type CallTwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionResultClassification, fidl::Error>>
5022        + Send;
5023    fn r#call_two_way_union_payload(
5024        &self,
5025        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5026    ) -> Self::CallTwoWayUnionPayloadResponseFut;
5027    type CallTwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5028        + Send;
5029    fn r#call_two_way_struct_payload_err(
5030        &self,
5031        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5032    ) -> Self::CallTwoWayStructPayloadErrResponseFut;
5033    type CallTwoWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5034        + Send;
5035    fn r#call_two_way_struct_request(
5036        &self,
5037        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5038        request: &NonEmptyPayload,
5039    ) -> Self::CallTwoWayStructRequestResponseFut;
5040    type CallTwoWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5041        + Send;
5042    fn r#call_two_way_table_request(
5043        &self,
5044        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5045        request: &TablePayload,
5046    ) -> Self::CallTwoWayTableRequestResponseFut;
5047    type CallTwoWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5048        + Send;
5049    fn r#call_two_way_union_request(
5050        &self,
5051        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5052        request: &UnionPayload,
5053    ) -> Self::CallTwoWayUnionRequestResponseFut;
5054    type CallOneWayNoRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5055        + Send;
5056    fn r#call_one_way_no_request(
5057        &self,
5058        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5059    ) -> Self::CallOneWayNoRequestResponseFut;
5060    type CallOneWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5061        + Send;
5062    fn r#call_one_way_struct_request(
5063        &self,
5064        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5065        request: &NonEmptyPayload,
5066    ) -> Self::CallOneWayStructRequestResponseFut;
5067    type CallOneWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5068        + Send;
5069    fn r#call_one_way_table_request(
5070        &self,
5071        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5072        request: &TablePayload,
5073    ) -> Self::CallOneWayTableRequestResponseFut;
5074    type CallOneWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5075        + Send;
5076    fn r#call_one_way_union_request(
5077        &self,
5078        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5079        request: &UnionPayload,
5080    ) -> Self::CallOneWayUnionRequestResponseFut;
5081    type CallStrictOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5082        + Send;
5083    fn r#call_strict_one_way(
5084        &self,
5085        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5086    ) -> Self::CallStrictOneWayResponseFut;
5087    type CallFlexibleOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5088        + Send;
5089    fn r#call_flexible_one_way(
5090        &self,
5091        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5092    ) -> Self::CallFlexibleOneWayResponseFut;
5093    type CallStrictTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5094        + Send;
5095    fn r#call_strict_two_way(
5096        &self,
5097        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5098    ) -> Self::CallStrictTwoWayResponseFut;
5099    type CallStrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5100        + Send;
5101    fn r#call_strict_two_way_fields(
5102        &self,
5103        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5104    ) -> Self::CallStrictTwoWayFieldsResponseFut;
5105    type CallStrictTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5106        + Send;
5107    fn r#call_strict_two_way_err(
5108        &self,
5109        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5110    ) -> Self::CallStrictTwoWayErrResponseFut;
5111    type CallStrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5112        + Send;
5113    fn r#call_strict_two_way_fields_err(
5114        &self,
5115        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5116    ) -> Self::CallStrictTwoWayFieldsErrResponseFut;
5117    type CallFlexibleTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5118        + Send;
5119    fn r#call_flexible_two_way(
5120        &self,
5121        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5122    ) -> Self::CallFlexibleTwoWayResponseFut;
5123    type CallFlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5124        + Send;
5125    fn r#call_flexible_two_way_fields(
5126        &self,
5127        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5128    ) -> Self::CallFlexibleTwoWayFieldsResponseFut;
5129    type CallFlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5130        + Send;
5131    fn r#call_flexible_two_way_err(
5132        &self,
5133        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5134    ) -> Self::CallFlexibleTwoWayErrResponseFut;
5135    type CallFlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5136        + Send;
5137    fn r#call_flexible_two_way_fields_err(
5138        &self,
5139        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5140    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut;
5141    type ReceiveClosedEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
5142        + Send;
5143    fn r#receive_closed_events(
5144        &self,
5145        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5146        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5147    ) -> Self::ReceiveClosedEventsResponseFut;
5148    type ReceiveAjarEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5149    fn r#receive_ajar_events(
5150        &self,
5151        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5152        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5153    ) -> Self::ReceiveAjarEventsResponseFut;
5154    type ReceiveOpenEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5155    fn r#receive_open_events(
5156        &self,
5157        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5158        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5159    ) -> Self::ReceiveOpenEventsResponseFut;
5160}
5161#[derive(Debug)]
5162#[cfg(target_os = "fuchsia")]
5163pub struct RunnerSynchronousProxy {
5164    client: fidl::client::sync::Client,
5165}
5166
5167#[cfg(target_os = "fuchsia")]
5168impl fidl::endpoints::SynchronousProxy for RunnerSynchronousProxy {
5169    type Proxy = RunnerProxy;
5170    type Protocol = RunnerMarker;
5171
5172    fn from_channel(inner: fidl::Channel) -> Self {
5173        Self::new(inner)
5174    }
5175
5176    fn into_channel(self) -> fidl::Channel {
5177        self.client.into_channel()
5178    }
5179
5180    fn as_channel(&self) -> &fidl::Channel {
5181        self.client.as_channel()
5182    }
5183}
5184
5185#[cfg(target_os = "fuchsia")]
5186impl RunnerSynchronousProxy {
5187    pub fn new(channel: fidl::Channel) -> Self {
5188        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5189        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
5190    }
5191
5192    pub fn into_channel(self) -> fidl::Channel {
5193        self.client.into_channel()
5194    }
5195
5196    /// Waits until an event arrives and returns it. It is safe for other
5197    /// threads to make concurrent requests while waiting for an event.
5198    pub fn wait_for_event(
5199        &self,
5200        deadline: zx::MonotonicInstant,
5201    ) -> Result<RunnerEvent, fidl::Error> {
5202        RunnerEvent::decode(self.client.wait_for_event(deadline)?)
5203    }
5204
5205    pub fn r#get_version(&self, ___deadline: zx::MonotonicInstant) -> Result<u64, fidl::Error> {
5206        let _response =
5207            self.client.send_query::<fidl::encoding::EmptyPayload, RunnerGetVersionResponse>(
5208                (),
5209                0x555d1430b913cdd4,
5210                fidl::encoding::DynamicFlags::empty(),
5211                ___deadline,
5212            )?;
5213        Ok(_response.version)
5214    }
5215
5216    pub fn r#is_test_enabled(
5217        &self,
5218        mut test: Test,
5219        ___deadline: zx::MonotonicInstant,
5220    ) -> Result<bool, fidl::Error> {
5221        let _response =
5222            self.client.send_query::<RunnerIsTestEnabledRequest, RunnerIsTestEnabledResponse>(
5223                (test,),
5224                0x755bc493368d7c50,
5225                fidl::encoding::DynamicFlags::empty(),
5226                ___deadline,
5227            )?;
5228        Ok(_response.is_enabled)
5229    }
5230
5231    pub fn r#check_alive(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
5232        let _response =
5233            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
5234                (),
5235                0x5a77b04abdfde130,
5236                fidl::encoding::DynamicFlags::empty(),
5237                ___deadline,
5238            )?;
5239        Ok(_response)
5240    }
5241
5242    pub fn r#get_bindings_properties(
5243        &self,
5244        ___deadline: zx::MonotonicInstant,
5245    ) -> Result<BindingsProperties, fidl::Error> {
5246        let _response =
5247            self.client.send_query::<fidl::encoding::EmptyPayload, BindingsProperties>(
5248                (),
5249                0x76b5610bfd4fa636,
5250                fidl::encoding::DynamicFlags::empty(),
5251                ___deadline,
5252            )?;
5253        Ok(_response)
5254    }
5255
5256    pub fn r#call_two_way_no_payload(
5257        &self,
5258        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5259        ___deadline: zx::MonotonicInstant,
5260    ) -> Result<EmptyResultClassification, fidl::Error> {
5261        let _response =
5262            self.client.send_query::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
5263                (target,),
5264                0x53ac710c20b320a1,
5265                fidl::encoding::DynamicFlags::empty(),
5266                ___deadline,
5267            )?;
5268        Ok(_response)
5269    }
5270
5271    pub fn r#call_two_way_struct_payload(
5272        &self,
5273        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5274        ___deadline: zx::MonotonicInstant,
5275    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5276        let _response = self
5277            .client
5278            .send_query::<RunnerCallTwoWayStructPayloadRequest, NonEmptyResultClassification>(
5279                (target,),
5280                0x24e98c668499b946,
5281                fidl::encoding::DynamicFlags::empty(),
5282                ___deadline,
5283            )?;
5284        Ok(_response)
5285    }
5286
5287    pub fn r#call_two_way_table_payload(
5288        &self,
5289        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5290        ___deadline: zx::MonotonicInstant,
5291    ) -> Result<TableResultClassification, fidl::Error> {
5292        let _response = self
5293            .client
5294            .send_query::<RunnerCallTwoWayTablePayloadRequest, TableResultClassification>(
5295                (target,),
5296                0x72e428e1605b76a,
5297                fidl::encoding::DynamicFlags::empty(),
5298                ___deadline,
5299            )?;
5300        Ok(_response)
5301    }
5302
5303    pub fn r#call_two_way_union_payload(
5304        &self,
5305        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5306        ___deadline: zx::MonotonicInstant,
5307    ) -> Result<UnionResultClassification, fidl::Error> {
5308        let _response = self
5309            .client
5310            .send_query::<RunnerCallTwoWayUnionPayloadRequest, UnionResultClassification>(
5311                (target,),
5312                0x7dc9d67218343860,
5313                fidl::encoding::DynamicFlags::empty(),
5314                ___deadline,
5315            )?;
5316        Ok(_response)
5317    }
5318
5319    pub fn r#call_two_way_struct_payload_err(
5320        &self,
5321        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5322        ___deadline: zx::MonotonicInstant,
5323    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5324        let _response = self.client.send_query::<
5325            RunnerCallTwoWayStructPayloadErrRequest,
5326            NonEmptyResultWithErrorClassification,
5327        >(
5328            (target,),
5329            0x2b07a57942c5f6e5,
5330            fidl::encoding::DynamicFlags::empty(),
5331            ___deadline,
5332        )?;
5333        Ok(_response)
5334    }
5335
5336    pub fn r#call_two_way_struct_request(
5337        &self,
5338        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5339        mut request: &NonEmptyPayload,
5340        ___deadline: zx::MonotonicInstant,
5341    ) -> Result<EmptyResultClassification, fidl::Error> {
5342        let _response = self
5343            .client
5344            .send_query::<RunnerCallTwoWayStructRequestRequest, EmptyResultClassification>(
5345                (target, request),
5346                0x7c00a6ba2e6c9b45,
5347                fidl::encoding::DynamicFlags::empty(),
5348                ___deadline,
5349            )?;
5350        Ok(_response)
5351    }
5352
5353    pub fn r#call_two_way_table_request(
5354        &self,
5355        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5356        mut request: &TablePayload,
5357        ___deadline: zx::MonotonicInstant,
5358    ) -> Result<EmptyResultClassification, fidl::Error> {
5359        let _response = self
5360            .client
5361            .send_query::<RunnerCallTwoWayTableRequestRequest, EmptyResultClassification>(
5362                (target, request),
5363                0x641763237d3885be,
5364                fidl::encoding::DynamicFlags::empty(),
5365                ___deadline,
5366            )?;
5367        Ok(_response)
5368    }
5369
5370    pub fn r#call_two_way_union_request(
5371        &self,
5372        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5373        mut request: &UnionPayload,
5374        ___deadline: zx::MonotonicInstant,
5375    ) -> Result<EmptyResultClassification, fidl::Error> {
5376        let _response = self
5377            .client
5378            .send_query::<RunnerCallTwoWayUnionRequestRequest, EmptyResultClassification>(
5379                (target, request),
5380                0x4be5f061df42619e,
5381                fidl::encoding::DynamicFlags::empty(),
5382                ___deadline,
5383            )?;
5384        Ok(_response)
5385    }
5386
5387    pub fn r#call_one_way_no_request(
5388        &self,
5389        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5390        ___deadline: zx::MonotonicInstant,
5391    ) -> Result<EmptyResultClassification, fidl::Error> {
5392        let _response =
5393            self.client.send_query::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
5394                (target,),
5395                0x24b6eea8cbdccc09,
5396                fidl::encoding::DynamicFlags::empty(),
5397                ___deadline,
5398            )?;
5399        Ok(_response)
5400    }
5401
5402    pub fn r#call_one_way_struct_request(
5403        &self,
5404        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5405        mut request: &NonEmptyPayload,
5406        ___deadline: zx::MonotonicInstant,
5407    ) -> Result<EmptyResultClassification, fidl::Error> {
5408        let _response = self
5409            .client
5410            .send_query::<RunnerCallOneWayStructRequestRequest, EmptyResultClassification>(
5411                (target, request),
5412                0x352a2907a0fcb420,
5413                fidl::encoding::DynamicFlags::empty(),
5414                ___deadline,
5415            )?;
5416        Ok(_response)
5417    }
5418
5419    pub fn r#call_one_way_table_request(
5420        &self,
5421        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5422        mut request: &TablePayload,
5423        ___deadline: zx::MonotonicInstant,
5424    ) -> Result<EmptyResultClassification, fidl::Error> {
5425        let _response = self
5426            .client
5427            .send_query::<RunnerCallOneWayTableRequestRequest, EmptyResultClassification>(
5428                (target, request),
5429                0x734121bf8bf336ef,
5430                fidl::encoding::DynamicFlags::empty(),
5431                ___deadline,
5432            )?;
5433        Ok(_response)
5434    }
5435
5436    pub fn r#call_one_way_union_request(
5437        &self,
5438        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5439        mut request: &UnionPayload,
5440        ___deadline: zx::MonotonicInstant,
5441    ) -> Result<EmptyResultClassification, fidl::Error> {
5442        let _response = self
5443            .client
5444            .send_query::<RunnerCallOneWayUnionRequestRequest, EmptyResultClassification>(
5445                (target, request),
5446                0x9be8e5eb7d50eb6,
5447                fidl::encoding::DynamicFlags::empty(),
5448                ___deadline,
5449            )?;
5450        Ok(_response)
5451    }
5452
5453    pub fn r#call_strict_one_way(
5454        &self,
5455        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5456        ___deadline: zx::MonotonicInstant,
5457    ) -> Result<EmptyResultClassification, fidl::Error> {
5458        let _response =
5459            self.client.send_query::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
5460                (target,),
5461                0x4edd0b6f52c0446b,
5462                fidl::encoding::DynamicFlags::empty(),
5463                ___deadline,
5464            )?;
5465        Ok(_response)
5466    }
5467
5468    pub fn r#call_flexible_one_way(
5469        &self,
5470        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5471        ___deadline: zx::MonotonicInstant,
5472    ) -> Result<EmptyResultClassification, fidl::Error> {
5473        let _response =
5474            self.client.send_query::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
5475                (target,),
5476                0x7253f10a77dfe817,
5477                fidl::encoding::DynamicFlags::empty(),
5478                ___deadline,
5479            )?;
5480        Ok(_response)
5481    }
5482
5483    pub fn r#call_strict_two_way(
5484        &self,
5485        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5486        ___deadline: zx::MonotonicInstant,
5487    ) -> Result<EmptyResultClassification, fidl::Error> {
5488        let _response =
5489            self.client.send_query::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
5490                (target,),
5491                0x1fa9fb7414aedd27,
5492                fidl::encoding::DynamicFlags::empty(),
5493                ___deadline,
5494            )?;
5495        Ok(_response)
5496    }
5497
5498    pub fn r#call_strict_two_way_fields(
5499        &self,
5500        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5501        ___deadline: zx::MonotonicInstant,
5502    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5503        let _response = self
5504            .client
5505            .send_query::<RunnerCallStrictTwoWayFieldsRequest, NonEmptyResultClassification>(
5506                (target,),
5507                0x6f690e00ebf6f123,
5508                fidl::encoding::DynamicFlags::empty(),
5509                ___deadline,
5510            )?;
5511        Ok(_response)
5512    }
5513
5514    pub fn r#call_strict_two_way_err(
5515        &self,
5516        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5517        ___deadline: zx::MonotonicInstant,
5518    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5519        let _response = self
5520            .client
5521            .send_query::<RunnerCallStrictTwoWayErrRequest, EmptyResultWithErrorClassification>(
5522                (target,),
5523                0x51d6bc7cf6cbaf1a,
5524                fidl::encoding::DynamicFlags::empty(),
5525                ___deadline,
5526            )?;
5527        Ok(_response)
5528    }
5529
5530    pub fn r#call_strict_two_way_fields_err(
5531        &self,
5532        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5533        ___deadline: zx::MonotonicInstant,
5534    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5535        let _response = self.client.send_query::<
5536            RunnerCallStrictTwoWayFieldsErrRequest,
5537            NonEmptyResultWithErrorClassification,
5538        >(
5539            (target,),
5540            0x6fa31ced05074c05,
5541            fidl::encoding::DynamicFlags::empty(),
5542            ___deadline,
5543        )?;
5544        Ok(_response)
5545    }
5546
5547    pub fn r#call_flexible_two_way(
5548        &self,
5549        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5550        ___deadline: zx::MonotonicInstant,
5551    ) -> Result<EmptyResultClassification, fidl::Error> {
5552        let _response =
5553            self.client.send_query::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
5554                (target,),
5555                0x411f70724876d49,
5556                fidl::encoding::DynamicFlags::empty(),
5557                ___deadline,
5558            )?;
5559        Ok(_response)
5560    }
5561
5562    pub fn r#call_flexible_two_way_fields(
5563        &self,
5564        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5565        ___deadline: zx::MonotonicInstant,
5566    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5567        let _response = self
5568            .client
5569            .send_query::<RunnerCallFlexibleTwoWayFieldsRequest, NonEmptyResultClassification>(
5570                (target,),
5571                0x330996b623598eed,
5572                fidl::encoding::DynamicFlags::empty(),
5573                ___deadline,
5574            )?;
5575        Ok(_response)
5576    }
5577
5578    pub fn r#call_flexible_two_way_err(
5579        &self,
5580        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5581        ___deadline: zx::MonotonicInstant,
5582    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5583        let _response = self
5584            .client
5585            .send_query::<RunnerCallFlexibleTwoWayErrRequest, EmptyResultWithErrorClassification>(
5586                (target,),
5587                0x5ddbf88a353a2a57,
5588                fidl::encoding::DynamicFlags::empty(),
5589                ___deadline,
5590            )?;
5591        Ok(_response)
5592    }
5593
5594    pub fn r#call_flexible_two_way_fields_err(
5595        &self,
5596        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5597        ___deadline: zx::MonotonicInstant,
5598    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5599        let _response = self.client.send_query::<
5600            RunnerCallFlexibleTwoWayFieldsErrRequest,
5601            NonEmptyResultWithErrorClassification,
5602        >(
5603            (target,),
5604            0x7ae309383b07048e,
5605            fidl::encoding::DynamicFlags::empty(),
5606            ___deadline,
5607        )?;
5608        Ok(_response)
5609    }
5610
5611    pub fn r#receive_closed_events(
5612        &self,
5613        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5614        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5615        ___deadline: zx::MonotonicInstant,
5616    ) -> Result<(), fidl::Error> {
5617        let _response = self
5618            .client
5619            .send_query::<RunnerReceiveClosedEventsRequest, fidl::encoding::EmptyPayload>(
5620                (target, reporter),
5621                0x48da834910571aeb,
5622                fidl::encoding::DynamicFlags::empty(),
5623                ___deadline,
5624            )?;
5625        Ok(_response)
5626    }
5627
5628    pub fn r#receive_ajar_events(
5629        &self,
5630        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5631        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5632        ___deadline: zx::MonotonicInstant,
5633    ) -> Result<(), fidl::Error> {
5634        let _response = self
5635            .client
5636            .send_query::<RunnerReceiveAjarEventsRequest, fidl::encoding::EmptyPayload>(
5637                (target, reporter),
5638                0xc5662b9a9c007a3,
5639                fidl::encoding::DynamicFlags::empty(),
5640                ___deadline,
5641            )?;
5642        Ok(_response)
5643    }
5644
5645    pub fn r#receive_open_events(
5646        &self,
5647        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5648        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5649        ___deadline: zx::MonotonicInstant,
5650    ) -> Result<(), fidl::Error> {
5651        let _response = self
5652            .client
5653            .send_query::<RunnerReceiveOpenEventsRequest, fidl::encoding::EmptyPayload>(
5654                (target, reporter),
5655                0x79a7073fd18edbdf,
5656                fidl::encoding::DynamicFlags::empty(),
5657                ___deadline,
5658            )?;
5659        Ok(_response)
5660    }
5661}
5662
5663#[cfg(target_os = "fuchsia")]
5664impl From<RunnerSynchronousProxy> for zx::NullableHandle {
5665    fn from(value: RunnerSynchronousProxy) -> Self {
5666        value.into_channel().into()
5667    }
5668}
5669
5670#[cfg(target_os = "fuchsia")]
5671impl From<fidl::Channel> for RunnerSynchronousProxy {
5672    fn from(value: fidl::Channel) -> Self {
5673        Self::new(value)
5674    }
5675}
5676
5677#[cfg(target_os = "fuchsia")]
5678impl fidl::endpoints::FromClient for RunnerSynchronousProxy {
5679    type Protocol = RunnerMarker;
5680
5681    fn from_client(value: fidl::endpoints::ClientEnd<RunnerMarker>) -> Self {
5682        Self::new(value.into_channel())
5683    }
5684}
5685
5686#[derive(Debug, Clone)]
5687pub struct RunnerProxy {
5688    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5689}
5690
5691impl fidl::endpoints::Proxy for RunnerProxy {
5692    type Protocol = RunnerMarker;
5693
5694    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5695        Self::new(inner)
5696    }
5697
5698    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5699        self.client.into_channel().map_err(|client| Self { client })
5700    }
5701
5702    fn as_channel(&self) -> &::fidl::AsyncChannel {
5703        self.client.as_channel()
5704    }
5705}
5706
5707impl RunnerProxy {
5708    /// Create a new Proxy for fidl.clientsuite/Runner.
5709    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5710        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5711        Self { client: fidl::client::Client::new(channel, protocol_name) }
5712    }
5713
5714    /// Get a Stream of events from the remote end of the protocol.
5715    ///
5716    /// # Panics
5717    ///
5718    /// Panics if the event stream was already taken.
5719    pub fn take_event_stream(&self) -> RunnerEventStream {
5720        RunnerEventStream { event_receiver: self.client.take_event_receiver() }
5721    }
5722
5723    pub fn r#get_version(
5724        &self,
5725    ) -> fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect> {
5726        RunnerProxyInterface::r#get_version(self)
5727    }
5728
5729    pub fn r#is_test_enabled(
5730        &self,
5731        mut test: Test,
5732    ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
5733        RunnerProxyInterface::r#is_test_enabled(self, test)
5734    }
5735
5736    pub fn r#check_alive(
5737        &self,
5738    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5739        RunnerProxyInterface::r#check_alive(self)
5740    }
5741
5742    pub fn r#get_bindings_properties(
5743        &self,
5744    ) -> fidl::client::QueryResponseFut<
5745        BindingsProperties,
5746        fidl::encoding::DefaultFuchsiaResourceDialect,
5747    > {
5748        RunnerProxyInterface::r#get_bindings_properties(self)
5749    }
5750
5751    pub fn r#call_two_way_no_payload(
5752        &self,
5753        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5754    ) -> fidl::client::QueryResponseFut<
5755        EmptyResultClassification,
5756        fidl::encoding::DefaultFuchsiaResourceDialect,
5757    > {
5758        RunnerProxyInterface::r#call_two_way_no_payload(self, target)
5759    }
5760
5761    pub fn r#call_two_way_struct_payload(
5762        &self,
5763        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5764    ) -> fidl::client::QueryResponseFut<
5765        NonEmptyResultClassification,
5766        fidl::encoding::DefaultFuchsiaResourceDialect,
5767    > {
5768        RunnerProxyInterface::r#call_two_way_struct_payload(self, target)
5769    }
5770
5771    pub fn r#call_two_way_table_payload(
5772        &self,
5773        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5774    ) -> fidl::client::QueryResponseFut<
5775        TableResultClassification,
5776        fidl::encoding::DefaultFuchsiaResourceDialect,
5777    > {
5778        RunnerProxyInterface::r#call_two_way_table_payload(self, target)
5779    }
5780
5781    pub fn r#call_two_way_union_payload(
5782        &self,
5783        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5784    ) -> fidl::client::QueryResponseFut<
5785        UnionResultClassification,
5786        fidl::encoding::DefaultFuchsiaResourceDialect,
5787    > {
5788        RunnerProxyInterface::r#call_two_way_union_payload(self, target)
5789    }
5790
5791    pub fn r#call_two_way_struct_payload_err(
5792        &self,
5793        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5794    ) -> fidl::client::QueryResponseFut<
5795        NonEmptyResultWithErrorClassification,
5796        fidl::encoding::DefaultFuchsiaResourceDialect,
5797    > {
5798        RunnerProxyInterface::r#call_two_way_struct_payload_err(self, target)
5799    }
5800
5801    pub fn r#call_two_way_struct_request(
5802        &self,
5803        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5804        mut request: &NonEmptyPayload,
5805    ) -> fidl::client::QueryResponseFut<
5806        EmptyResultClassification,
5807        fidl::encoding::DefaultFuchsiaResourceDialect,
5808    > {
5809        RunnerProxyInterface::r#call_two_way_struct_request(self, target, request)
5810    }
5811
5812    pub fn r#call_two_way_table_request(
5813        &self,
5814        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5815        mut request: &TablePayload,
5816    ) -> fidl::client::QueryResponseFut<
5817        EmptyResultClassification,
5818        fidl::encoding::DefaultFuchsiaResourceDialect,
5819    > {
5820        RunnerProxyInterface::r#call_two_way_table_request(self, target, request)
5821    }
5822
5823    pub fn r#call_two_way_union_request(
5824        &self,
5825        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5826        mut request: &UnionPayload,
5827    ) -> fidl::client::QueryResponseFut<
5828        EmptyResultClassification,
5829        fidl::encoding::DefaultFuchsiaResourceDialect,
5830    > {
5831        RunnerProxyInterface::r#call_two_way_union_request(self, target, request)
5832    }
5833
5834    pub fn r#call_one_way_no_request(
5835        &self,
5836        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5837    ) -> fidl::client::QueryResponseFut<
5838        EmptyResultClassification,
5839        fidl::encoding::DefaultFuchsiaResourceDialect,
5840    > {
5841        RunnerProxyInterface::r#call_one_way_no_request(self, target)
5842    }
5843
5844    pub fn r#call_one_way_struct_request(
5845        &self,
5846        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5847        mut request: &NonEmptyPayload,
5848    ) -> fidl::client::QueryResponseFut<
5849        EmptyResultClassification,
5850        fidl::encoding::DefaultFuchsiaResourceDialect,
5851    > {
5852        RunnerProxyInterface::r#call_one_way_struct_request(self, target, request)
5853    }
5854
5855    pub fn r#call_one_way_table_request(
5856        &self,
5857        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5858        mut request: &TablePayload,
5859    ) -> fidl::client::QueryResponseFut<
5860        EmptyResultClassification,
5861        fidl::encoding::DefaultFuchsiaResourceDialect,
5862    > {
5863        RunnerProxyInterface::r#call_one_way_table_request(self, target, request)
5864    }
5865
5866    pub fn r#call_one_way_union_request(
5867        &self,
5868        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5869        mut request: &UnionPayload,
5870    ) -> fidl::client::QueryResponseFut<
5871        EmptyResultClassification,
5872        fidl::encoding::DefaultFuchsiaResourceDialect,
5873    > {
5874        RunnerProxyInterface::r#call_one_way_union_request(self, target, request)
5875    }
5876
5877    pub fn r#call_strict_one_way(
5878        &self,
5879        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5880    ) -> fidl::client::QueryResponseFut<
5881        EmptyResultClassification,
5882        fidl::encoding::DefaultFuchsiaResourceDialect,
5883    > {
5884        RunnerProxyInterface::r#call_strict_one_way(self, target)
5885    }
5886
5887    pub fn r#call_flexible_one_way(
5888        &self,
5889        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5890    ) -> fidl::client::QueryResponseFut<
5891        EmptyResultClassification,
5892        fidl::encoding::DefaultFuchsiaResourceDialect,
5893    > {
5894        RunnerProxyInterface::r#call_flexible_one_way(self, target)
5895    }
5896
5897    pub fn r#call_strict_two_way(
5898        &self,
5899        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5900    ) -> fidl::client::QueryResponseFut<
5901        EmptyResultClassification,
5902        fidl::encoding::DefaultFuchsiaResourceDialect,
5903    > {
5904        RunnerProxyInterface::r#call_strict_two_way(self, target)
5905    }
5906
5907    pub fn r#call_strict_two_way_fields(
5908        &self,
5909        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5910    ) -> fidl::client::QueryResponseFut<
5911        NonEmptyResultClassification,
5912        fidl::encoding::DefaultFuchsiaResourceDialect,
5913    > {
5914        RunnerProxyInterface::r#call_strict_two_way_fields(self, target)
5915    }
5916
5917    pub fn r#call_strict_two_way_err(
5918        &self,
5919        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5920    ) -> fidl::client::QueryResponseFut<
5921        EmptyResultWithErrorClassification,
5922        fidl::encoding::DefaultFuchsiaResourceDialect,
5923    > {
5924        RunnerProxyInterface::r#call_strict_two_way_err(self, target)
5925    }
5926
5927    pub fn r#call_strict_two_way_fields_err(
5928        &self,
5929        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5930    ) -> fidl::client::QueryResponseFut<
5931        NonEmptyResultWithErrorClassification,
5932        fidl::encoding::DefaultFuchsiaResourceDialect,
5933    > {
5934        RunnerProxyInterface::r#call_strict_two_way_fields_err(self, target)
5935    }
5936
5937    pub fn r#call_flexible_two_way(
5938        &self,
5939        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5940    ) -> fidl::client::QueryResponseFut<
5941        EmptyResultClassification,
5942        fidl::encoding::DefaultFuchsiaResourceDialect,
5943    > {
5944        RunnerProxyInterface::r#call_flexible_two_way(self, target)
5945    }
5946
5947    pub fn r#call_flexible_two_way_fields(
5948        &self,
5949        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5950    ) -> fidl::client::QueryResponseFut<
5951        NonEmptyResultClassification,
5952        fidl::encoding::DefaultFuchsiaResourceDialect,
5953    > {
5954        RunnerProxyInterface::r#call_flexible_two_way_fields(self, target)
5955    }
5956
5957    pub fn r#call_flexible_two_way_err(
5958        &self,
5959        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5960    ) -> fidl::client::QueryResponseFut<
5961        EmptyResultWithErrorClassification,
5962        fidl::encoding::DefaultFuchsiaResourceDialect,
5963    > {
5964        RunnerProxyInterface::r#call_flexible_two_way_err(self, target)
5965    }
5966
5967    pub fn r#call_flexible_two_way_fields_err(
5968        &self,
5969        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5970    ) -> fidl::client::QueryResponseFut<
5971        NonEmptyResultWithErrorClassification,
5972        fidl::encoding::DefaultFuchsiaResourceDialect,
5973    > {
5974        RunnerProxyInterface::r#call_flexible_two_way_fields_err(self, target)
5975    }
5976
5977    pub fn r#receive_closed_events(
5978        &self,
5979        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5980        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5981    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5982        RunnerProxyInterface::r#receive_closed_events(self, target, reporter)
5983    }
5984
5985    pub fn r#receive_ajar_events(
5986        &self,
5987        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5988        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5989    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5990        RunnerProxyInterface::r#receive_ajar_events(self, target, reporter)
5991    }
5992
5993    pub fn r#receive_open_events(
5994        &self,
5995        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5996        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5997    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5998        RunnerProxyInterface::r#receive_open_events(self, target, reporter)
5999    }
6000}
6001
6002impl RunnerProxyInterface for RunnerProxy {
6003    type GetVersionResponseFut =
6004        fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect>;
6005    fn r#get_version(&self) -> Self::GetVersionResponseFut {
6006        fn _decode(
6007            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6008        ) -> Result<u64, fidl::Error> {
6009            let _response = fidl::client::decode_transaction_body::<
6010                RunnerGetVersionResponse,
6011                fidl::encoding::DefaultFuchsiaResourceDialect,
6012                0x555d1430b913cdd4,
6013            >(_buf?)?;
6014            Ok(_response.version)
6015        }
6016        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, u64>(
6017            (),
6018            0x555d1430b913cdd4,
6019            fidl::encoding::DynamicFlags::empty(),
6020            _decode,
6021        )
6022    }
6023
6024    type IsTestEnabledResponseFut =
6025        fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
6026    fn r#is_test_enabled(&self, mut test: Test) -> Self::IsTestEnabledResponseFut {
6027        fn _decode(
6028            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6029        ) -> Result<bool, fidl::Error> {
6030            let _response = fidl::client::decode_transaction_body::<
6031                RunnerIsTestEnabledResponse,
6032                fidl::encoding::DefaultFuchsiaResourceDialect,
6033                0x755bc493368d7c50,
6034            >(_buf?)?;
6035            Ok(_response.is_enabled)
6036        }
6037        self.client.send_query_and_decode::<RunnerIsTestEnabledRequest, bool>(
6038            (test,),
6039            0x755bc493368d7c50,
6040            fidl::encoding::DynamicFlags::empty(),
6041            _decode,
6042        )
6043    }
6044
6045    type CheckAliveResponseFut =
6046        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6047    fn r#check_alive(&self) -> Self::CheckAliveResponseFut {
6048        fn _decode(
6049            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6050        ) -> Result<(), fidl::Error> {
6051            let _response = fidl::client::decode_transaction_body::<
6052                fidl::encoding::EmptyPayload,
6053                fidl::encoding::DefaultFuchsiaResourceDialect,
6054                0x5a77b04abdfde130,
6055            >(_buf?)?;
6056            Ok(_response)
6057        }
6058        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
6059            (),
6060            0x5a77b04abdfde130,
6061            fidl::encoding::DynamicFlags::empty(),
6062            _decode,
6063        )
6064    }
6065
6066    type GetBindingsPropertiesResponseFut = fidl::client::QueryResponseFut<
6067        BindingsProperties,
6068        fidl::encoding::DefaultFuchsiaResourceDialect,
6069    >;
6070    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut {
6071        fn _decode(
6072            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6073        ) -> Result<BindingsProperties, fidl::Error> {
6074            let _response = fidl::client::decode_transaction_body::<
6075                BindingsProperties,
6076                fidl::encoding::DefaultFuchsiaResourceDialect,
6077                0x76b5610bfd4fa636,
6078            >(_buf?)?;
6079            Ok(_response)
6080        }
6081        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BindingsProperties>(
6082            (),
6083            0x76b5610bfd4fa636,
6084            fidl::encoding::DynamicFlags::empty(),
6085            _decode,
6086        )
6087    }
6088
6089    type CallTwoWayNoPayloadResponseFut = fidl::client::QueryResponseFut<
6090        EmptyResultClassification,
6091        fidl::encoding::DefaultFuchsiaResourceDialect,
6092    >;
6093    fn r#call_two_way_no_payload(
6094        &self,
6095        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6096    ) -> Self::CallTwoWayNoPayloadResponseFut {
6097        fn _decode(
6098            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6099        ) -> Result<EmptyResultClassification, fidl::Error> {
6100            let _response = fidl::client::decode_transaction_body::<
6101                EmptyResultClassification,
6102                fidl::encoding::DefaultFuchsiaResourceDialect,
6103                0x53ac710c20b320a1,
6104            >(_buf?)?;
6105            Ok(_response)
6106        }
6107        self.client
6108            .send_query_and_decode::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
6109                (target,),
6110                0x53ac710c20b320a1,
6111                fidl::encoding::DynamicFlags::empty(),
6112                _decode,
6113            )
6114    }
6115
6116    type CallTwoWayStructPayloadResponseFut = fidl::client::QueryResponseFut<
6117        NonEmptyResultClassification,
6118        fidl::encoding::DefaultFuchsiaResourceDialect,
6119    >;
6120    fn r#call_two_way_struct_payload(
6121        &self,
6122        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6123    ) -> Self::CallTwoWayStructPayloadResponseFut {
6124        fn _decode(
6125            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6126        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6127            let _response = fidl::client::decode_transaction_body::<
6128                NonEmptyResultClassification,
6129                fidl::encoding::DefaultFuchsiaResourceDialect,
6130                0x24e98c668499b946,
6131            >(_buf?)?;
6132            Ok(_response)
6133        }
6134        self.client.send_query_and_decode::<
6135            RunnerCallTwoWayStructPayloadRequest,
6136            NonEmptyResultClassification,
6137        >(
6138            (target,),
6139            0x24e98c668499b946,
6140            fidl::encoding::DynamicFlags::empty(),
6141            _decode,
6142        )
6143    }
6144
6145    type CallTwoWayTablePayloadResponseFut = fidl::client::QueryResponseFut<
6146        TableResultClassification,
6147        fidl::encoding::DefaultFuchsiaResourceDialect,
6148    >;
6149    fn r#call_two_way_table_payload(
6150        &self,
6151        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6152    ) -> Self::CallTwoWayTablePayloadResponseFut {
6153        fn _decode(
6154            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6155        ) -> Result<TableResultClassification, fidl::Error> {
6156            let _response = fidl::client::decode_transaction_body::<
6157                TableResultClassification,
6158                fidl::encoding::DefaultFuchsiaResourceDialect,
6159                0x72e428e1605b76a,
6160            >(_buf?)?;
6161            Ok(_response)
6162        }
6163        self.client.send_query_and_decode::<
6164            RunnerCallTwoWayTablePayloadRequest,
6165            TableResultClassification,
6166        >(
6167            (target,),
6168            0x72e428e1605b76a,
6169            fidl::encoding::DynamicFlags::empty(),
6170            _decode,
6171        )
6172    }
6173
6174    type CallTwoWayUnionPayloadResponseFut = fidl::client::QueryResponseFut<
6175        UnionResultClassification,
6176        fidl::encoding::DefaultFuchsiaResourceDialect,
6177    >;
6178    fn r#call_two_way_union_payload(
6179        &self,
6180        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6181    ) -> Self::CallTwoWayUnionPayloadResponseFut {
6182        fn _decode(
6183            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6184        ) -> Result<UnionResultClassification, fidl::Error> {
6185            let _response = fidl::client::decode_transaction_body::<
6186                UnionResultClassification,
6187                fidl::encoding::DefaultFuchsiaResourceDialect,
6188                0x7dc9d67218343860,
6189            >(_buf?)?;
6190            Ok(_response)
6191        }
6192        self.client.send_query_and_decode::<
6193            RunnerCallTwoWayUnionPayloadRequest,
6194            UnionResultClassification,
6195        >(
6196            (target,),
6197            0x7dc9d67218343860,
6198            fidl::encoding::DynamicFlags::empty(),
6199            _decode,
6200        )
6201    }
6202
6203    type CallTwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
6204        NonEmptyResultWithErrorClassification,
6205        fidl::encoding::DefaultFuchsiaResourceDialect,
6206    >;
6207    fn r#call_two_way_struct_payload_err(
6208        &self,
6209        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6210    ) -> Self::CallTwoWayStructPayloadErrResponseFut {
6211        fn _decode(
6212            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6213        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6214            let _response = fidl::client::decode_transaction_body::<
6215                NonEmptyResultWithErrorClassification,
6216                fidl::encoding::DefaultFuchsiaResourceDialect,
6217                0x2b07a57942c5f6e5,
6218            >(_buf?)?;
6219            Ok(_response)
6220        }
6221        self.client.send_query_and_decode::<
6222            RunnerCallTwoWayStructPayloadErrRequest,
6223            NonEmptyResultWithErrorClassification,
6224        >(
6225            (target,),
6226            0x2b07a57942c5f6e5,
6227            fidl::encoding::DynamicFlags::empty(),
6228            _decode,
6229        )
6230    }
6231
6232    type CallTwoWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6233        EmptyResultClassification,
6234        fidl::encoding::DefaultFuchsiaResourceDialect,
6235    >;
6236    fn r#call_two_way_struct_request(
6237        &self,
6238        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6239        mut request: &NonEmptyPayload,
6240    ) -> Self::CallTwoWayStructRequestResponseFut {
6241        fn _decode(
6242            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6243        ) -> Result<EmptyResultClassification, fidl::Error> {
6244            let _response = fidl::client::decode_transaction_body::<
6245                EmptyResultClassification,
6246                fidl::encoding::DefaultFuchsiaResourceDialect,
6247                0x7c00a6ba2e6c9b45,
6248            >(_buf?)?;
6249            Ok(_response)
6250        }
6251        self.client.send_query_and_decode::<
6252            RunnerCallTwoWayStructRequestRequest,
6253            EmptyResultClassification,
6254        >(
6255            (target, request,),
6256            0x7c00a6ba2e6c9b45,
6257            fidl::encoding::DynamicFlags::empty(),
6258            _decode,
6259        )
6260    }
6261
6262    type CallTwoWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6263        EmptyResultClassification,
6264        fidl::encoding::DefaultFuchsiaResourceDialect,
6265    >;
6266    fn r#call_two_way_table_request(
6267        &self,
6268        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6269        mut request: &TablePayload,
6270    ) -> Self::CallTwoWayTableRequestResponseFut {
6271        fn _decode(
6272            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6273        ) -> Result<EmptyResultClassification, fidl::Error> {
6274            let _response = fidl::client::decode_transaction_body::<
6275                EmptyResultClassification,
6276                fidl::encoding::DefaultFuchsiaResourceDialect,
6277                0x641763237d3885be,
6278            >(_buf?)?;
6279            Ok(_response)
6280        }
6281        self.client.send_query_and_decode::<
6282            RunnerCallTwoWayTableRequestRequest,
6283            EmptyResultClassification,
6284        >(
6285            (target, request,),
6286            0x641763237d3885be,
6287            fidl::encoding::DynamicFlags::empty(),
6288            _decode,
6289        )
6290    }
6291
6292    type CallTwoWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6293        EmptyResultClassification,
6294        fidl::encoding::DefaultFuchsiaResourceDialect,
6295    >;
6296    fn r#call_two_way_union_request(
6297        &self,
6298        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6299        mut request: &UnionPayload,
6300    ) -> Self::CallTwoWayUnionRequestResponseFut {
6301        fn _decode(
6302            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6303        ) -> Result<EmptyResultClassification, fidl::Error> {
6304            let _response = fidl::client::decode_transaction_body::<
6305                EmptyResultClassification,
6306                fidl::encoding::DefaultFuchsiaResourceDialect,
6307                0x4be5f061df42619e,
6308            >(_buf?)?;
6309            Ok(_response)
6310        }
6311        self.client.send_query_and_decode::<
6312            RunnerCallTwoWayUnionRequestRequest,
6313            EmptyResultClassification,
6314        >(
6315            (target, request,),
6316            0x4be5f061df42619e,
6317            fidl::encoding::DynamicFlags::empty(),
6318            _decode,
6319        )
6320    }
6321
6322    type CallOneWayNoRequestResponseFut = fidl::client::QueryResponseFut<
6323        EmptyResultClassification,
6324        fidl::encoding::DefaultFuchsiaResourceDialect,
6325    >;
6326    fn r#call_one_way_no_request(
6327        &self,
6328        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6329    ) -> Self::CallOneWayNoRequestResponseFut {
6330        fn _decode(
6331            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6332        ) -> Result<EmptyResultClassification, fidl::Error> {
6333            let _response = fidl::client::decode_transaction_body::<
6334                EmptyResultClassification,
6335                fidl::encoding::DefaultFuchsiaResourceDialect,
6336                0x24b6eea8cbdccc09,
6337            >(_buf?)?;
6338            Ok(_response)
6339        }
6340        self.client
6341            .send_query_and_decode::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
6342                (target,),
6343                0x24b6eea8cbdccc09,
6344                fidl::encoding::DynamicFlags::empty(),
6345                _decode,
6346            )
6347    }
6348
6349    type CallOneWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6350        EmptyResultClassification,
6351        fidl::encoding::DefaultFuchsiaResourceDialect,
6352    >;
6353    fn r#call_one_way_struct_request(
6354        &self,
6355        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6356        mut request: &NonEmptyPayload,
6357    ) -> Self::CallOneWayStructRequestResponseFut {
6358        fn _decode(
6359            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6360        ) -> Result<EmptyResultClassification, fidl::Error> {
6361            let _response = fidl::client::decode_transaction_body::<
6362                EmptyResultClassification,
6363                fidl::encoding::DefaultFuchsiaResourceDialect,
6364                0x352a2907a0fcb420,
6365            >(_buf?)?;
6366            Ok(_response)
6367        }
6368        self.client.send_query_and_decode::<
6369            RunnerCallOneWayStructRequestRequest,
6370            EmptyResultClassification,
6371        >(
6372            (target, request,),
6373            0x352a2907a0fcb420,
6374            fidl::encoding::DynamicFlags::empty(),
6375            _decode,
6376        )
6377    }
6378
6379    type CallOneWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6380        EmptyResultClassification,
6381        fidl::encoding::DefaultFuchsiaResourceDialect,
6382    >;
6383    fn r#call_one_way_table_request(
6384        &self,
6385        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6386        mut request: &TablePayload,
6387    ) -> Self::CallOneWayTableRequestResponseFut {
6388        fn _decode(
6389            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6390        ) -> Result<EmptyResultClassification, fidl::Error> {
6391            let _response = fidl::client::decode_transaction_body::<
6392                EmptyResultClassification,
6393                fidl::encoding::DefaultFuchsiaResourceDialect,
6394                0x734121bf8bf336ef,
6395            >(_buf?)?;
6396            Ok(_response)
6397        }
6398        self.client.send_query_and_decode::<
6399            RunnerCallOneWayTableRequestRequest,
6400            EmptyResultClassification,
6401        >(
6402            (target, request,),
6403            0x734121bf8bf336ef,
6404            fidl::encoding::DynamicFlags::empty(),
6405            _decode,
6406        )
6407    }
6408
6409    type CallOneWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6410        EmptyResultClassification,
6411        fidl::encoding::DefaultFuchsiaResourceDialect,
6412    >;
6413    fn r#call_one_way_union_request(
6414        &self,
6415        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6416        mut request: &UnionPayload,
6417    ) -> Self::CallOneWayUnionRequestResponseFut {
6418        fn _decode(
6419            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6420        ) -> Result<EmptyResultClassification, fidl::Error> {
6421            let _response = fidl::client::decode_transaction_body::<
6422                EmptyResultClassification,
6423                fidl::encoding::DefaultFuchsiaResourceDialect,
6424                0x9be8e5eb7d50eb6,
6425            >(_buf?)?;
6426            Ok(_response)
6427        }
6428        self.client.send_query_and_decode::<
6429            RunnerCallOneWayUnionRequestRequest,
6430            EmptyResultClassification,
6431        >(
6432            (target, request,),
6433            0x9be8e5eb7d50eb6,
6434            fidl::encoding::DynamicFlags::empty(),
6435            _decode,
6436        )
6437    }
6438
6439    type CallStrictOneWayResponseFut = fidl::client::QueryResponseFut<
6440        EmptyResultClassification,
6441        fidl::encoding::DefaultFuchsiaResourceDialect,
6442    >;
6443    fn r#call_strict_one_way(
6444        &self,
6445        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6446    ) -> Self::CallStrictOneWayResponseFut {
6447        fn _decode(
6448            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6449        ) -> Result<EmptyResultClassification, fidl::Error> {
6450            let _response = fidl::client::decode_transaction_body::<
6451                EmptyResultClassification,
6452                fidl::encoding::DefaultFuchsiaResourceDialect,
6453                0x4edd0b6f52c0446b,
6454            >(_buf?)?;
6455            Ok(_response)
6456        }
6457        self.client
6458            .send_query_and_decode::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
6459                (target,),
6460                0x4edd0b6f52c0446b,
6461                fidl::encoding::DynamicFlags::empty(),
6462                _decode,
6463            )
6464    }
6465
6466    type CallFlexibleOneWayResponseFut = fidl::client::QueryResponseFut<
6467        EmptyResultClassification,
6468        fidl::encoding::DefaultFuchsiaResourceDialect,
6469    >;
6470    fn r#call_flexible_one_way(
6471        &self,
6472        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6473    ) -> Self::CallFlexibleOneWayResponseFut {
6474        fn _decode(
6475            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6476        ) -> Result<EmptyResultClassification, fidl::Error> {
6477            let _response = fidl::client::decode_transaction_body::<
6478                EmptyResultClassification,
6479                fidl::encoding::DefaultFuchsiaResourceDialect,
6480                0x7253f10a77dfe817,
6481            >(_buf?)?;
6482            Ok(_response)
6483        }
6484        self.client
6485            .send_query_and_decode::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
6486                (target,),
6487                0x7253f10a77dfe817,
6488                fidl::encoding::DynamicFlags::empty(),
6489                _decode,
6490            )
6491    }
6492
6493    type CallStrictTwoWayResponseFut = fidl::client::QueryResponseFut<
6494        EmptyResultClassification,
6495        fidl::encoding::DefaultFuchsiaResourceDialect,
6496    >;
6497    fn r#call_strict_two_way(
6498        &self,
6499        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6500    ) -> Self::CallStrictTwoWayResponseFut {
6501        fn _decode(
6502            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6503        ) -> Result<EmptyResultClassification, fidl::Error> {
6504            let _response = fidl::client::decode_transaction_body::<
6505                EmptyResultClassification,
6506                fidl::encoding::DefaultFuchsiaResourceDialect,
6507                0x1fa9fb7414aedd27,
6508            >(_buf?)?;
6509            Ok(_response)
6510        }
6511        self.client
6512            .send_query_and_decode::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
6513                (target,),
6514                0x1fa9fb7414aedd27,
6515                fidl::encoding::DynamicFlags::empty(),
6516                _decode,
6517            )
6518    }
6519
6520    type CallStrictTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6521        NonEmptyResultClassification,
6522        fidl::encoding::DefaultFuchsiaResourceDialect,
6523    >;
6524    fn r#call_strict_two_way_fields(
6525        &self,
6526        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6527    ) -> Self::CallStrictTwoWayFieldsResponseFut {
6528        fn _decode(
6529            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6530        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6531            let _response = fidl::client::decode_transaction_body::<
6532                NonEmptyResultClassification,
6533                fidl::encoding::DefaultFuchsiaResourceDialect,
6534                0x6f690e00ebf6f123,
6535            >(_buf?)?;
6536            Ok(_response)
6537        }
6538        self.client.send_query_and_decode::<
6539            RunnerCallStrictTwoWayFieldsRequest,
6540            NonEmptyResultClassification,
6541        >(
6542            (target,),
6543            0x6f690e00ebf6f123,
6544            fidl::encoding::DynamicFlags::empty(),
6545            _decode,
6546        )
6547    }
6548
6549    type CallStrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6550        EmptyResultWithErrorClassification,
6551        fidl::encoding::DefaultFuchsiaResourceDialect,
6552    >;
6553    fn r#call_strict_two_way_err(
6554        &self,
6555        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6556    ) -> Self::CallStrictTwoWayErrResponseFut {
6557        fn _decode(
6558            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6559        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6560            let _response = fidl::client::decode_transaction_body::<
6561                EmptyResultWithErrorClassification,
6562                fidl::encoding::DefaultFuchsiaResourceDialect,
6563                0x51d6bc7cf6cbaf1a,
6564            >(_buf?)?;
6565            Ok(_response)
6566        }
6567        self.client.send_query_and_decode::<
6568            RunnerCallStrictTwoWayErrRequest,
6569            EmptyResultWithErrorClassification,
6570        >(
6571            (target,),
6572            0x51d6bc7cf6cbaf1a,
6573            fidl::encoding::DynamicFlags::empty(),
6574            _decode,
6575        )
6576    }
6577
6578    type CallStrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6579        NonEmptyResultWithErrorClassification,
6580        fidl::encoding::DefaultFuchsiaResourceDialect,
6581    >;
6582    fn r#call_strict_two_way_fields_err(
6583        &self,
6584        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6585    ) -> Self::CallStrictTwoWayFieldsErrResponseFut {
6586        fn _decode(
6587            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6588        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6589            let _response = fidl::client::decode_transaction_body::<
6590                NonEmptyResultWithErrorClassification,
6591                fidl::encoding::DefaultFuchsiaResourceDialect,
6592                0x6fa31ced05074c05,
6593            >(_buf?)?;
6594            Ok(_response)
6595        }
6596        self.client.send_query_and_decode::<
6597            RunnerCallStrictTwoWayFieldsErrRequest,
6598            NonEmptyResultWithErrorClassification,
6599        >(
6600            (target,),
6601            0x6fa31ced05074c05,
6602            fidl::encoding::DynamicFlags::empty(),
6603            _decode,
6604        )
6605    }
6606
6607    type CallFlexibleTwoWayResponseFut = fidl::client::QueryResponseFut<
6608        EmptyResultClassification,
6609        fidl::encoding::DefaultFuchsiaResourceDialect,
6610    >;
6611    fn r#call_flexible_two_way(
6612        &self,
6613        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6614    ) -> Self::CallFlexibleTwoWayResponseFut {
6615        fn _decode(
6616            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6617        ) -> Result<EmptyResultClassification, fidl::Error> {
6618            let _response = fidl::client::decode_transaction_body::<
6619                EmptyResultClassification,
6620                fidl::encoding::DefaultFuchsiaResourceDialect,
6621                0x411f70724876d49,
6622            >(_buf?)?;
6623            Ok(_response)
6624        }
6625        self.client
6626            .send_query_and_decode::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
6627                (target,),
6628                0x411f70724876d49,
6629                fidl::encoding::DynamicFlags::empty(),
6630                _decode,
6631            )
6632    }
6633
6634    type CallFlexibleTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6635        NonEmptyResultClassification,
6636        fidl::encoding::DefaultFuchsiaResourceDialect,
6637    >;
6638    fn r#call_flexible_two_way_fields(
6639        &self,
6640        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6641    ) -> Self::CallFlexibleTwoWayFieldsResponseFut {
6642        fn _decode(
6643            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6644        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6645            let _response = fidl::client::decode_transaction_body::<
6646                NonEmptyResultClassification,
6647                fidl::encoding::DefaultFuchsiaResourceDialect,
6648                0x330996b623598eed,
6649            >(_buf?)?;
6650            Ok(_response)
6651        }
6652        self.client.send_query_and_decode::<
6653            RunnerCallFlexibleTwoWayFieldsRequest,
6654            NonEmptyResultClassification,
6655        >(
6656            (target,),
6657            0x330996b623598eed,
6658            fidl::encoding::DynamicFlags::empty(),
6659            _decode,
6660        )
6661    }
6662
6663    type CallFlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6664        EmptyResultWithErrorClassification,
6665        fidl::encoding::DefaultFuchsiaResourceDialect,
6666    >;
6667    fn r#call_flexible_two_way_err(
6668        &self,
6669        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6670    ) -> Self::CallFlexibleTwoWayErrResponseFut {
6671        fn _decode(
6672            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6673        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6674            let _response = fidl::client::decode_transaction_body::<
6675                EmptyResultWithErrorClassification,
6676                fidl::encoding::DefaultFuchsiaResourceDialect,
6677                0x5ddbf88a353a2a57,
6678            >(_buf?)?;
6679            Ok(_response)
6680        }
6681        self.client.send_query_and_decode::<
6682            RunnerCallFlexibleTwoWayErrRequest,
6683            EmptyResultWithErrorClassification,
6684        >(
6685            (target,),
6686            0x5ddbf88a353a2a57,
6687            fidl::encoding::DynamicFlags::empty(),
6688            _decode,
6689        )
6690    }
6691
6692    type CallFlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6693        NonEmptyResultWithErrorClassification,
6694        fidl::encoding::DefaultFuchsiaResourceDialect,
6695    >;
6696    fn r#call_flexible_two_way_fields_err(
6697        &self,
6698        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6699    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut {
6700        fn _decode(
6701            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6702        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6703            let _response = fidl::client::decode_transaction_body::<
6704                NonEmptyResultWithErrorClassification,
6705                fidl::encoding::DefaultFuchsiaResourceDialect,
6706                0x7ae309383b07048e,
6707            >(_buf?)?;
6708            Ok(_response)
6709        }
6710        self.client.send_query_and_decode::<
6711            RunnerCallFlexibleTwoWayFieldsErrRequest,
6712            NonEmptyResultWithErrorClassification,
6713        >(
6714            (target,),
6715            0x7ae309383b07048e,
6716            fidl::encoding::DynamicFlags::empty(),
6717            _decode,
6718        )
6719    }
6720
6721    type ReceiveClosedEventsResponseFut =
6722        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6723    fn r#receive_closed_events(
6724        &self,
6725        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6726        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
6727    ) -> Self::ReceiveClosedEventsResponseFut {
6728        fn _decode(
6729            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6730        ) -> Result<(), fidl::Error> {
6731            let _response = fidl::client::decode_transaction_body::<
6732                fidl::encoding::EmptyPayload,
6733                fidl::encoding::DefaultFuchsiaResourceDialect,
6734                0x48da834910571aeb,
6735            >(_buf?)?;
6736            Ok(_response)
6737        }
6738        self.client.send_query_and_decode::<RunnerReceiveClosedEventsRequest, ()>(
6739            (target, reporter),
6740            0x48da834910571aeb,
6741            fidl::encoding::DynamicFlags::empty(),
6742            _decode,
6743        )
6744    }
6745
6746    type ReceiveAjarEventsResponseFut =
6747        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6748    fn r#receive_ajar_events(
6749        &self,
6750        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
6751        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
6752    ) -> Self::ReceiveAjarEventsResponseFut {
6753        fn _decode(
6754            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6755        ) -> Result<(), fidl::Error> {
6756            let _response = fidl::client::decode_transaction_body::<
6757                fidl::encoding::EmptyPayload,
6758                fidl::encoding::DefaultFuchsiaResourceDialect,
6759                0xc5662b9a9c007a3,
6760            >(_buf?)?;
6761            Ok(_response)
6762        }
6763        self.client.send_query_and_decode::<RunnerReceiveAjarEventsRequest, ()>(
6764            (target, reporter),
6765            0xc5662b9a9c007a3,
6766            fidl::encoding::DynamicFlags::empty(),
6767            _decode,
6768        )
6769    }
6770
6771    type ReceiveOpenEventsResponseFut =
6772        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6773    fn r#receive_open_events(
6774        &self,
6775        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6776        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
6777    ) -> Self::ReceiveOpenEventsResponseFut {
6778        fn _decode(
6779            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6780        ) -> Result<(), fidl::Error> {
6781            let _response = fidl::client::decode_transaction_body::<
6782                fidl::encoding::EmptyPayload,
6783                fidl::encoding::DefaultFuchsiaResourceDialect,
6784                0x79a7073fd18edbdf,
6785            >(_buf?)?;
6786            Ok(_response)
6787        }
6788        self.client.send_query_and_decode::<RunnerReceiveOpenEventsRequest, ()>(
6789            (target, reporter),
6790            0x79a7073fd18edbdf,
6791            fidl::encoding::DynamicFlags::empty(),
6792            _decode,
6793        )
6794    }
6795}
6796
6797pub struct RunnerEventStream {
6798    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
6799}
6800
6801impl std::marker::Unpin for RunnerEventStream {}
6802
6803impl futures::stream::FusedStream for RunnerEventStream {
6804    fn is_terminated(&self) -> bool {
6805        self.event_receiver.is_terminated()
6806    }
6807}
6808
6809impl futures::Stream for RunnerEventStream {
6810    type Item = Result<RunnerEvent, fidl::Error>;
6811
6812    fn poll_next(
6813        mut self: std::pin::Pin<&mut Self>,
6814        cx: &mut std::task::Context<'_>,
6815    ) -> std::task::Poll<Option<Self::Item>> {
6816        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
6817            &mut self.event_receiver,
6818            cx
6819        )?) {
6820            Some(buf) => std::task::Poll::Ready(Some(RunnerEvent::decode(buf))),
6821            None => std::task::Poll::Ready(None),
6822        }
6823    }
6824}
6825
6826#[derive(Debug)]
6827pub enum RunnerEvent {}
6828
6829impl RunnerEvent {
6830    /// Decodes a message buffer as a [`RunnerEvent`].
6831    fn decode(
6832        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
6833    ) -> Result<RunnerEvent, fidl::Error> {
6834        let (bytes, _handles) = buf.split_mut();
6835        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6836        debug_assert_eq!(tx_header.tx_id, 0);
6837        match tx_header.ordinal {
6838            _ => Err(fidl::Error::UnknownOrdinal {
6839                ordinal: tx_header.ordinal,
6840                protocol_name: <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6841            }),
6842        }
6843    }
6844}
6845
6846/// A Stream of incoming requests for fidl.clientsuite/Runner.
6847pub struct RunnerRequestStream {
6848    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6849    is_terminated: bool,
6850}
6851
6852impl std::marker::Unpin for RunnerRequestStream {}
6853
6854impl futures::stream::FusedStream for RunnerRequestStream {
6855    fn is_terminated(&self) -> bool {
6856        self.is_terminated
6857    }
6858}
6859
6860impl fidl::endpoints::RequestStream for RunnerRequestStream {
6861    type Protocol = RunnerMarker;
6862    type ControlHandle = RunnerControlHandle;
6863
6864    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
6865        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
6866    }
6867
6868    fn control_handle(&self) -> Self::ControlHandle {
6869        RunnerControlHandle { inner: self.inner.clone() }
6870    }
6871
6872    fn into_inner(
6873        self,
6874    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
6875    {
6876        (self.inner, self.is_terminated)
6877    }
6878
6879    fn from_inner(
6880        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6881        is_terminated: bool,
6882    ) -> Self {
6883        Self { inner, is_terminated }
6884    }
6885}
6886
6887impl futures::Stream for RunnerRequestStream {
6888    type Item = Result<RunnerRequest, fidl::Error>;
6889
6890    fn poll_next(
6891        mut self: std::pin::Pin<&mut Self>,
6892        cx: &mut std::task::Context<'_>,
6893    ) -> std::task::Poll<Option<Self::Item>> {
6894        let this = &mut *self;
6895        if this.inner.check_shutdown(cx) {
6896            this.is_terminated = true;
6897            return std::task::Poll::Ready(None);
6898        }
6899        if this.is_terminated {
6900            panic!("polled RunnerRequestStream after completion");
6901        }
6902        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
6903            |bytes, handles| {
6904                match this.inner.channel().read_etc(cx, bytes, handles) {
6905                    std::task::Poll::Ready(Ok(())) => {}
6906                    std::task::Poll::Pending => return std::task::Poll::Pending,
6907                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
6908                        this.is_terminated = true;
6909                        return std::task::Poll::Ready(None);
6910                    }
6911                    std::task::Poll::Ready(Err(e)) => {
6912                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
6913                            e.into(),
6914                        ))));
6915                    }
6916                }
6917
6918                // A message has been received from the channel
6919                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6920
6921                std::task::Poll::Ready(Some(match header.ordinal {
6922                    0x555d1430b913cdd4 => {
6923                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6924                        let mut req = fidl::new_empty!(
6925                            fidl::encoding::EmptyPayload,
6926                            fidl::encoding::DefaultFuchsiaResourceDialect
6927                        );
6928                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6929                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6930                        Ok(RunnerRequest::GetVersion {
6931                            responder: RunnerGetVersionResponder {
6932                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6933                                tx_id: header.tx_id,
6934                            },
6935                        })
6936                    }
6937                    0x755bc493368d7c50 => {
6938                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6939                        let mut req = fidl::new_empty!(
6940                            RunnerIsTestEnabledRequest,
6941                            fidl::encoding::DefaultFuchsiaResourceDialect
6942                        );
6943                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerIsTestEnabledRequest>(&header, _body_bytes, handles, &mut req)?;
6944                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6945                        Ok(RunnerRequest::IsTestEnabled {
6946                            test: req.test,
6947
6948                            responder: RunnerIsTestEnabledResponder {
6949                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6950                                tx_id: header.tx_id,
6951                            },
6952                        })
6953                    }
6954                    0x5a77b04abdfde130 => {
6955                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6956                        let mut req = fidl::new_empty!(
6957                            fidl::encoding::EmptyPayload,
6958                            fidl::encoding::DefaultFuchsiaResourceDialect
6959                        );
6960                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6961                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6962                        Ok(RunnerRequest::CheckAlive {
6963                            responder: RunnerCheckAliveResponder {
6964                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6965                                tx_id: header.tx_id,
6966                            },
6967                        })
6968                    }
6969                    0x76b5610bfd4fa636 => {
6970                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6971                        let mut req = fidl::new_empty!(
6972                            fidl::encoding::EmptyPayload,
6973                            fidl::encoding::DefaultFuchsiaResourceDialect
6974                        );
6975                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6976                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6977                        Ok(RunnerRequest::GetBindingsProperties {
6978                            responder: RunnerGetBindingsPropertiesResponder {
6979                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6980                                tx_id: header.tx_id,
6981                            },
6982                        })
6983                    }
6984                    0x53ac710c20b320a1 => {
6985                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6986                        let mut req = fidl::new_empty!(
6987                            RunnerCallTwoWayNoPayloadRequest,
6988                            fidl::encoding::DefaultFuchsiaResourceDialect
6989                        );
6990                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayNoPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
6991                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6992                        Ok(RunnerRequest::CallTwoWayNoPayload {
6993                            target: req.target,
6994
6995                            responder: RunnerCallTwoWayNoPayloadResponder {
6996                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6997                                tx_id: header.tx_id,
6998                            },
6999                        })
7000                    }
7001                    0x24e98c668499b946 => {
7002                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7003                        let mut req = fidl::new_empty!(
7004                            RunnerCallTwoWayStructPayloadRequest,
7005                            fidl::encoding::DefaultFuchsiaResourceDialect
7006                        );
7007                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7008                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7009                        Ok(RunnerRequest::CallTwoWayStructPayload {
7010                            target: req.target,
7011
7012                            responder: RunnerCallTwoWayStructPayloadResponder {
7013                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7014                                tx_id: header.tx_id,
7015                            },
7016                        })
7017                    }
7018                    0x72e428e1605b76a => {
7019                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7020                        let mut req = fidl::new_empty!(
7021                            RunnerCallTwoWayTablePayloadRequest,
7022                            fidl::encoding::DefaultFuchsiaResourceDialect
7023                        );
7024                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTablePayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7025                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7026                        Ok(RunnerRequest::CallTwoWayTablePayload {
7027                            target: req.target,
7028
7029                            responder: RunnerCallTwoWayTablePayloadResponder {
7030                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7031                                tx_id: header.tx_id,
7032                            },
7033                        })
7034                    }
7035                    0x7dc9d67218343860 => {
7036                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7037                        let mut req = fidl::new_empty!(
7038                            RunnerCallTwoWayUnionPayloadRequest,
7039                            fidl::encoding::DefaultFuchsiaResourceDialect
7040                        );
7041                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7042                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7043                        Ok(RunnerRequest::CallTwoWayUnionPayload {
7044                            target: req.target,
7045
7046                            responder: RunnerCallTwoWayUnionPayloadResponder {
7047                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7048                                tx_id: header.tx_id,
7049                            },
7050                        })
7051                    }
7052                    0x2b07a57942c5f6e5 => {
7053                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7054                        let mut req = fidl::new_empty!(
7055                            RunnerCallTwoWayStructPayloadErrRequest,
7056                            fidl::encoding::DefaultFuchsiaResourceDialect
7057                        );
7058                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadErrRequest>(&header, _body_bytes, handles, &mut req)?;
7059                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7060                        Ok(RunnerRequest::CallTwoWayStructPayloadErr {
7061                            target: req.target,
7062
7063                            responder: RunnerCallTwoWayStructPayloadErrResponder {
7064                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7065                                tx_id: header.tx_id,
7066                            },
7067                        })
7068                    }
7069                    0x7c00a6ba2e6c9b45 => {
7070                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7071                        let mut req = fidl::new_empty!(
7072                            RunnerCallTwoWayStructRequestRequest,
7073                            fidl::encoding::DefaultFuchsiaResourceDialect
7074                        );
7075                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7076                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7077                        Ok(RunnerRequest::CallTwoWayStructRequest {
7078                            target: req.target,
7079                            request: req.request,
7080
7081                            responder: RunnerCallTwoWayStructRequestResponder {
7082                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7083                                tx_id: header.tx_id,
7084                            },
7085                        })
7086                    }
7087                    0x641763237d3885be => {
7088                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7089                        let mut req = fidl::new_empty!(
7090                            RunnerCallTwoWayTableRequestRequest,
7091                            fidl::encoding::DefaultFuchsiaResourceDialect
7092                        );
7093                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7094                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7095                        Ok(RunnerRequest::CallTwoWayTableRequest {
7096                            target: req.target,
7097                            request: req.request,
7098
7099                            responder: RunnerCallTwoWayTableRequestResponder {
7100                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7101                                tx_id: header.tx_id,
7102                            },
7103                        })
7104                    }
7105                    0x4be5f061df42619e => {
7106                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7107                        let mut req = fidl::new_empty!(
7108                            RunnerCallTwoWayUnionRequestRequest,
7109                            fidl::encoding::DefaultFuchsiaResourceDialect
7110                        );
7111                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7112                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7113                        Ok(RunnerRequest::CallTwoWayUnionRequest {
7114                            target: req.target,
7115                            request: req.request,
7116
7117                            responder: RunnerCallTwoWayUnionRequestResponder {
7118                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7119                                tx_id: header.tx_id,
7120                            },
7121                        })
7122                    }
7123                    0x24b6eea8cbdccc09 => {
7124                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7125                        let mut req = fidl::new_empty!(
7126                            RunnerCallOneWayNoRequestRequest,
7127                            fidl::encoding::DefaultFuchsiaResourceDialect
7128                        );
7129                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayNoRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7130                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7131                        Ok(RunnerRequest::CallOneWayNoRequest {
7132                            target: req.target,
7133
7134                            responder: RunnerCallOneWayNoRequestResponder {
7135                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7136                                tx_id: header.tx_id,
7137                            },
7138                        })
7139                    }
7140                    0x352a2907a0fcb420 => {
7141                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7142                        let mut req = fidl::new_empty!(
7143                            RunnerCallOneWayStructRequestRequest,
7144                            fidl::encoding::DefaultFuchsiaResourceDialect
7145                        );
7146                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7147                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7148                        Ok(RunnerRequest::CallOneWayStructRequest {
7149                            target: req.target,
7150                            request: req.request,
7151
7152                            responder: RunnerCallOneWayStructRequestResponder {
7153                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7154                                tx_id: header.tx_id,
7155                            },
7156                        })
7157                    }
7158                    0x734121bf8bf336ef => {
7159                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7160                        let mut req = fidl::new_empty!(
7161                            RunnerCallOneWayTableRequestRequest,
7162                            fidl::encoding::DefaultFuchsiaResourceDialect
7163                        );
7164                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7165                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7166                        Ok(RunnerRequest::CallOneWayTableRequest {
7167                            target: req.target,
7168                            request: req.request,
7169
7170                            responder: RunnerCallOneWayTableRequestResponder {
7171                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7172                                tx_id: header.tx_id,
7173                            },
7174                        })
7175                    }
7176                    0x9be8e5eb7d50eb6 => {
7177                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7178                        let mut req = fidl::new_empty!(
7179                            RunnerCallOneWayUnionRequestRequest,
7180                            fidl::encoding::DefaultFuchsiaResourceDialect
7181                        );
7182                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7183                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7184                        Ok(RunnerRequest::CallOneWayUnionRequest {
7185                            target: req.target,
7186                            request: req.request,
7187
7188                            responder: RunnerCallOneWayUnionRequestResponder {
7189                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7190                                tx_id: header.tx_id,
7191                            },
7192                        })
7193                    }
7194                    0x4edd0b6f52c0446b => {
7195                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7196                        let mut req = fidl::new_empty!(
7197                            RunnerCallStrictOneWayRequest,
7198                            fidl::encoding::DefaultFuchsiaResourceDialect
7199                        );
7200                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7201                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7202                        Ok(RunnerRequest::CallStrictOneWay {
7203                            target: req.target,
7204
7205                            responder: RunnerCallStrictOneWayResponder {
7206                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7207                                tx_id: header.tx_id,
7208                            },
7209                        })
7210                    }
7211                    0x7253f10a77dfe817 => {
7212                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7213                        let mut req = fidl::new_empty!(
7214                            RunnerCallFlexibleOneWayRequest,
7215                            fidl::encoding::DefaultFuchsiaResourceDialect
7216                        );
7217                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7218                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7219                        Ok(RunnerRequest::CallFlexibleOneWay {
7220                            target: req.target,
7221
7222                            responder: RunnerCallFlexibleOneWayResponder {
7223                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7224                                tx_id: header.tx_id,
7225                            },
7226                        })
7227                    }
7228                    0x1fa9fb7414aedd27 => {
7229                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7230                        let mut req = fidl::new_empty!(
7231                            RunnerCallStrictTwoWayRequest,
7232                            fidl::encoding::DefaultFuchsiaResourceDialect
7233                        );
7234                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7235                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7236                        Ok(RunnerRequest::CallStrictTwoWay {
7237                            target: req.target,
7238
7239                            responder: RunnerCallStrictTwoWayResponder {
7240                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7241                                tx_id: header.tx_id,
7242                            },
7243                        })
7244                    }
7245                    0x6f690e00ebf6f123 => {
7246                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7247                        let mut req = fidl::new_empty!(
7248                            RunnerCallStrictTwoWayFieldsRequest,
7249                            fidl::encoding::DefaultFuchsiaResourceDialect
7250                        );
7251                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7252                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7253                        Ok(RunnerRequest::CallStrictTwoWayFields {
7254                            target: req.target,
7255
7256                            responder: RunnerCallStrictTwoWayFieldsResponder {
7257                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7258                                tx_id: header.tx_id,
7259                            },
7260                        })
7261                    }
7262                    0x51d6bc7cf6cbaf1a => {
7263                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7264                        let mut req = fidl::new_empty!(
7265                            RunnerCallStrictTwoWayErrRequest,
7266                            fidl::encoding::DefaultFuchsiaResourceDialect
7267                        );
7268                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7269                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7270                        Ok(RunnerRequest::CallStrictTwoWayErr {
7271                            target: req.target,
7272
7273                            responder: RunnerCallStrictTwoWayErrResponder {
7274                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7275                                tx_id: header.tx_id,
7276                            },
7277                        })
7278                    }
7279                    0x6fa31ced05074c05 => {
7280                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7281                        let mut req = fidl::new_empty!(
7282                            RunnerCallStrictTwoWayFieldsErrRequest,
7283                            fidl::encoding::DefaultFuchsiaResourceDialect
7284                        );
7285                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7286                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7287                        Ok(RunnerRequest::CallStrictTwoWayFieldsErr {
7288                            target: req.target,
7289
7290                            responder: RunnerCallStrictTwoWayFieldsErrResponder {
7291                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7292                                tx_id: header.tx_id,
7293                            },
7294                        })
7295                    }
7296                    0x411f70724876d49 => {
7297                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7298                        let mut req = fidl::new_empty!(
7299                            RunnerCallFlexibleTwoWayRequest,
7300                            fidl::encoding::DefaultFuchsiaResourceDialect
7301                        );
7302                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7303                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7304                        Ok(RunnerRequest::CallFlexibleTwoWay {
7305                            target: req.target,
7306
7307                            responder: RunnerCallFlexibleTwoWayResponder {
7308                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7309                                tx_id: header.tx_id,
7310                            },
7311                        })
7312                    }
7313                    0x330996b623598eed => {
7314                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7315                        let mut req = fidl::new_empty!(
7316                            RunnerCallFlexibleTwoWayFieldsRequest,
7317                            fidl::encoding::DefaultFuchsiaResourceDialect
7318                        );
7319                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7320                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7321                        Ok(RunnerRequest::CallFlexibleTwoWayFields {
7322                            target: req.target,
7323
7324                            responder: RunnerCallFlexibleTwoWayFieldsResponder {
7325                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7326                                tx_id: header.tx_id,
7327                            },
7328                        })
7329                    }
7330                    0x5ddbf88a353a2a57 => {
7331                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7332                        let mut req = fidl::new_empty!(
7333                            RunnerCallFlexibleTwoWayErrRequest,
7334                            fidl::encoding::DefaultFuchsiaResourceDialect
7335                        );
7336                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7337                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7338                        Ok(RunnerRequest::CallFlexibleTwoWayErr {
7339                            target: req.target,
7340
7341                            responder: RunnerCallFlexibleTwoWayErrResponder {
7342                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7343                                tx_id: header.tx_id,
7344                            },
7345                        })
7346                    }
7347                    0x7ae309383b07048e => {
7348                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7349                        let mut req = fidl::new_empty!(
7350                            RunnerCallFlexibleTwoWayFieldsErrRequest,
7351                            fidl::encoding::DefaultFuchsiaResourceDialect
7352                        );
7353                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7354                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7355                        Ok(RunnerRequest::CallFlexibleTwoWayFieldsErr {
7356                            target: req.target,
7357
7358                            responder: RunnerCallFlexibleTwoWayFieldsErrResponder {
7359                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7360                                tx_id: header.tx_id,
7361                            },
7362                        })
7363                    }
7364                    0x48da834910571aeb => {
7365                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7366                        let mut req = fidl::new_empty!(
7367                            RunnerReceiveClosedEventsRequest,
7368                            fidl::encoding::DefaultFuchsiaResourceDialect
7369                        );
7370                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveClosedEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7371                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7372                        Ok(RunnerRequest::ReceiveClosedEvents {
7373                            target: req.target,
7374                            reporter: req.reporter,
7375
7376                            responder: RunnerReceiveClosedEventsResponder {
7377                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7378                                tx_id: header.tx_id,
7379                            },
7380                        })
7381                    }
7382                    0xc5662b9a9c007a3 => {
7383                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7384                        let mut req = fidl::new_empty!(
7385                            RunnerReceiveAjarEventsRequest,
7386                            fidl::encoding::DefaultFuchsiaResourceDialect
7387                        );
7388                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveAjarEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7389                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7390                        Ok(RunnerRequest::ReceiveAjarEvents {
7391                            target: req.target,
7392                            reporter: req.reporter,
7393
7394                            responder: RunnerReceiveAjarEventsResponder {
7395                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7396                                tx_id: header.tx_id,
7397                            },
7398                        })
7399                    }
7400                    0x79a7073fd18edbdf => {
7401                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7402                        let mut req = fidl::new_empty!(
7403                            RunnerReceiveOpenEventsRequest,
7404                            fidl::encoding::DefaultFuchsiaResourceDialect
7405                        );
7406                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveOpenEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7407                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7408                        Ok(RunnerRequest::ReceiveOpenEvents {
7409                            target: req.target,
7410                            reporter: req.reporter,
7411
7412                            responder: RunnerReceiveOpenEventsResponder {
7413                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7414                                tx_id: header.tx_id,
7415                            },
7416                        })
7417                    }
7418                    _ => Err(fidl::Error::UnknownOrdinal {
7419                        ordinal: header.ordinal,
7420                        protocol_name:
7421                            <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
7422                    }),
7423                }))
7424            },
7425        )
7426    }
7427}
7428
7429#[derive(Debug)]
7430pub enum RunnerRequest {
7431    GetVersion {
7432        responder: RunnerGetVersionResponder,
7433    },
7434    IsTestEnabled {
7435        test: Test,
7436        responder: RunnerIsTestEnabledResponder,
7437    },
7438    CheckAlive {
7439        responder: RunnerCheckAliveResponder,
7440    },
7441    GetBindingsProperties {
7442        responder: RunnerGetBindingsPropertiesResponder,
7443    },
7444    CallTwoWayNoPayload {
7445        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7446        responder: RunnerCallTwoWayNoPayloadResponder,
7447    },
7448    CallTwoWayStructPayload {
7449        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7450        responder: RunnerCallTwoWayStructPayloadResponder,
7451    },
7452    CallTwoWayTablePayload {
7453        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7454        responder: RunnerCallTwoWayTablePayloadResponder,
7455    },
7456    CallTwoWayUnionPayload {
7457        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7458        responder: RunnerCallTwoWayUnionPayloadResponder,
7459    },
7460    CallTwoWayStructPayloadErr {
7461        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7462        responder: RunnerCallTwoWayStructPayloadErrResponder,
7463    },
7464    CallTwoWayStructRequest {
7465        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7466        request: NonEmptyPayload,
7467        responder: RunnerCallTwoWayStructRequestResponder,
7468    },
7469    CallTwoWayTableRequest {
7470        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7471        request: TablePayload,
7472        responder: RunnerCallTwoWayTableRequestResponder,
7473    },
7474    CallTwoWayUnionRequest {
7475        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7476        request: UnionPayload,
7477        responder: RunnerCallTwoWayUnionRequestResponder,
7478    },
7479    CallOneWayNoRequest {
7480        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7481        responder: RunnerCallOneWayNoRequestResponder,
7482    },
7483    CallOneWayStructRequest {
7484        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7485        request: NonEmptyPayload,
7486        responder: RunnerCallOneWayStructRequestResponder,
7487    },
7488    CallOneWayTableRequest {
7489        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7490        request: TablePayload,
7491        responder: RunnerCallOneWayTableRequestResponder,
7492    },
7493    CallOneWayUnionRequest {
7494        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7495        request: UnionPayload,
7496        responder: RunnerCallOneWayUnionRequestResponder,
7497    },
7498    CallStrictOneWay {
7499        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7500        responder: RunnerCallStrictOneWayResponder,
7501    },
7502    CallFlexibleOneWay {
7503        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7504        responder: RunnerCallFlexibleOneWayResponder,
7505    },
7506    CallStrictTwoWay {
7507        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7508        responder: RunnerCallStrictTwoWayResponder,
7509    },
7510    CallStrictTwoWayFields {
7511        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7512        responder: RunnerCallStrictTwoWayFieldsResponder,
7513    },
7514    CallStrictTwoWayErr {
7515        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7516        responder: RunnerCallStrictTwoWayErrResponder,
7517    },
7518    CallStrictTwoWayFieldsErr {
7519        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7520        responder: RunnerCallStrictTwoWayFieldsErrResponder,
7521    },
7522    CallFlexibleTwoWay {
7523        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7524        responder: RunnerCallFlexibleTwoWayResponder,
7525    },
7526    CallFlexibleTwoWayFields {
7527        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7528        responder: RunnerCallFlexibleTwoWayFieldsResponder,
7529    },
7530    CallFlexibleTwoWayErr {
7531        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7532        responder: RunnerCallFlexibleTwoWayErrResponder,
7533    },
7534    CallFlexibleTwoWayFieldsErr {
7535        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7536        responder: RunnerCallFlexibleTwoWayFieldsErrResponder,
7537    },
7538    ReceiveClosedEvents {
7539        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7540        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7541        responder: RunnerReceiveClosedEventsResponder,
7542    },
7543    ReceiveAjarEvents {
7544        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
7545        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7546        responder: RunnerReceiveAjarEventsResponder,
7547    },
7548    ReceiveOpenEvents {
7549        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7550        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7551        responder: RunnerReceiveOpenEventsResponder,
7552    },
7553}
7554
7555impl RunnerRequest {
7556    #[allow(irrefutable_let_patterns)]
7557    pub fn into_get_version(self) -> Option<(RunnerGetVersionResponder)> {
7558        if let RunnerRequest::GetVersion { responder } = self { Some((responder)) } else { None }
7559    }
7560
7561    #[allow(irrefutable_let_patterns)]
7562    pub fn into_is_test_enabled(self) -> Option<(Test, RunnerIsTestEnabledResponder)> {
7563        if let RunnerRequest::IsTestEnabled { test, responder } = self {
7564            Some((test, responder))
7565        } else {
7566            None
7567        }
7568    }
7569
7570    #[allow(irrefutable_let_patterns)]
7571    pub fn into_check_alive(self) -> Option<(RunnerCheckAliveResponder)> {
7572        if let RunnerRequest::CheckAlive { responder } = self { Some((responder)) } else { None }
7573    }
7574
7575    #[allow(irrefutable_let_patterns)]
7576    pub fn into_get_bindings_properties(self) -> Option<(RunnerGetBindingsPropertiesResponder)> {
7577        if let RunnerRequest::GetBindingsProperties { responder } = self {
7578            Some((responder))
7579        } else {
7580            None
7581        }
7582    }
7583
7584    #[allow(irrefutable_let_patterns)]
7585    pub fn into_call_two_way_no_payload(
7586        self,
7587    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallTwoWayNoPayloadResponder)>
7588    {
7589        if let RunnerRequest::CallTwoWayNoPayload { target, responder } = self {
7590            Some((target, responder))
7591        } else {
7592            None
7593        }
7594    }
7595
7596    #[allow(irrefutable_let_patterns)]
7597    pub fn into_call_two_way_struct_payload(
7598        self,
7599    ) -> Option<(
7600        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7601        RunnerCallTwoWayStructPayloadResponder,
7602    )> {
7603        if let RunnerRequest::CallTwoWayStructPayload { target, responder } = self {
7604            Some((target, responder))
7605        } else {
7606            None
7607        }
7608    }
7609
7610    #[allow(irrefutable_let_patterns)]
7611    pub fn into_call_two_way_table_payload(
7612        self,
7613    ) -> Option<(
7614        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7615        RunnerCallTwoWayTablePayloadResponder,
7616    )> {
7617        if let RunnerRequest::CallTwoWayTablePayload { target, responder } = self {
7618            Some((target, responder))
7619        } else {
7620            None
7621        }
7622    }
7623
7624    #[allow(irrefutable_let_patterns)]
7625    pub fn into_call_two_way_union_payload(
7626        self,
7627    ) -> Option<(
7628        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7629        RunnerCallTwoWayUnionPayloadResponder,
7630    )> {
7631        if let RunnerRequest::CallTwoWayUnionPayload { target, responder } = self {
7632            Some((target, responder))
7633        } else {
7634            None
7635        }
7636    }
7637
7638    #[allow(irrefutable_let_patterns)]
7639    pub fn into_call_two_way_struct_payload_err(
7640        self,
7641    ) -> Option<(
7642        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7643        RunnerCallTwoWayStructPayloadErrResponder,
7644    )> {
7645        if let RunnerRequest::CallTwoWayStructPayloadErr { target, responder } = self {
7646            Some((target, responder))
7647        } else {
7648            None
7649        }
7650    }
7651
7652    #[allow(irrefutable_let_patterns)]
7653    pub fn into_call_two_way_struct_request(
7654        self,
7655    ) -> Option<(
7656        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7657        NonEmptyPayload,
7658        RunnerCallTwoWayStructRequestResponder,
7659    )> {
7660        if let RunnerRequest::CallTwoWayStructRequest { target, request, responder } = self {
7661            Some((target, request, responder))
7662        } else {
7663            None
7664        }
7665    }
7666
7667    #[allow(irrefutable_let_patterns)]
7668    pub fn into_call_two_way_table_request(
7669        self,
7670    ) -> Option<(
7671        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7672        TablePayload,
7673        RunnerCallTwoWayTableRequestResponder,
7674    )> {
7675        if let RunnerRequest::CallTwoWayTableRequest { target, request, responder } = self {
7676            Some((target, request, responder))
7677        } else {
7678            None
7679        }
7680    }
7681
7682    #[allow(irrefutable_let_patterns)]
7683    pub fn into_call_two_way_union_request(
7684        self,
7685    ) -> Option<(
7686        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7687        UnionPayload,
7688        RunnerCallTwoWayUnionRequestResponder,
7689    )> {
7690        if let RunnerRequest::CallTwoWayUnionRequest { target, request, responder } = self {
7691            Some((target, request, responder))
7692        } else {
7693            None
7694        }
7695    }
7696
7697    #[allow(irrefutable_let_patterns)]
7698    pub fn into_call_one_way_no_request(
7699        self,
7700    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallOneWayNoRequestResponder)>
7701    {
7702        if let RunnerRequest::CallOneWayNoRequest { target, responder } = self {
7703            Some((target, responder))
7704        } else {
7705            None
7706        }
7707    }
7708
7709    #[allow(irrefutable_let_patterns)]
7710    pub fn into_call_one_way_struct_request(
7711        self,
7712    ) -> Option<(
7713        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7714        NonEmptyPayload,
7715        RunnerCallOneWayStructRequestResponder,
7716    )> {
7717        if let RunnerRequest::CallOneWayStructRequest { target, request, responder } = self {
7718            Some((target, request, responder))
7719        } else {
7720            None
7721        }
7722    }
7723
7724    #[allow(irrefutable_let_patterns)]
7725    pub fn into_call_one_way_table_request(
7726        self,
7727    ) -> Option<(
7728        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7729        TablePayload,
7730        RunnerCallOneWayTableRequestResponder,
7731    )> {
7732        if let RunnerRequest::CallOneWayTableRequest { target, request, responder } = self {
7733            Some((target, request, responder))
7734        } else {
7735            None
7736        }
7737    }
7738
7739    #[allow(irrefutable_let_patterns)]
7740    pub fn into_call_one_way_union_request(
7741        self,
7742    ) -> Option<(
7743        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7744        UnionPayload,
7745        RunnerCallOneWayUnionRequestResponder,
7746    )> {
7747        if let RunnerRequest::CallOneWayUnionRequest { target, request, responder } = self {
7748            Some((target, request, responder))
7749        } else {
7750            None
7751        }
7752    }
7753
7754    #[allow(irrefutable_let_patterns)]
7755    pub fn into_call_strict_one_way(
7756        self,
7757    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictOneWayResponder)>
7758    {
7759        if let RunnerRequest::CallStrictOneWay { target, responder } = self {
7760            Some((target, responder))
7761        } else {
7762            None
7763        }
7764    }
7765
7766    #[allow(irrefutable_let_patterns)]
7767    pub fn into_call_flexible_one_way(
7768        self,
7769    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleOneWayResponder)>
7770    {
7771        if let RunnerRequest::CallFlexibleOneWay { target, responder } = self {
7772            Some((target, responder))
7773        } else {
7774            None
7775        }
7776    }
7777
7778    #[allow(irrefutable_let_patterns)]
7779    pub fn into_call_strict_two_way(
7780        self,
7781    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayResponder)>
7782    {
7783        if let RunnerRequest::CallStrictTwoWay { target, responder } = self {
7784            Some((target, responder))
7785        } else {
7786            None
7787        }
7788    }
7789
7790    #[allow(irrefutable_let_patterns)]
7791    pub fn into_call_strict_two_way_fields(
7792        self,
7793    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayFieldsResponder)>
7794    {
7795        if let RunnerRequest::CallStrictTwoWayFields { target, responder } = self {
7796            Some((target, responder))
7797        } else {
7798            None
7799        }
7800    }
7801
7802    #[allow(irrefutable_let_patterns)]
7803    pub fn into_call_strict_two_way_err(
7804        self,
7805    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayErrResponder)>
7806    {
7807        if let RunnerRequest::CallStrictTwoWayErr { target, responder } = self {
7808            Some((target, responder))
7809        } else {
7810            None
7811        }
7812    }
7813
7814    #[allow(irrefutable_let_patterns)]
7815    pub fn into_call_strict_two_way_fields_err(
7816        self,
7817    ) -> Option<(
7818        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7819        RunnerCallStrictTwoWayFieldsErrResponder,
7820    )> {
7821        if let RunnerRequest::CallStrictTwoWayFieldsErr { target, responder } = self {
7822            Some((target, responder))
7823        } else {
7824            None
7825        }
7826    }
7827
7828    #[allow(irrefutable_let_patterns)]
7829    pub fn into_call_flexible_two_way(
7830        self,
7831    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayResponder)>
7832    {
7833        if let RunnerRequest::CallFlexibleTwoWay { target, responder } = self {
7834            Some((target, responder))
7835        } else {
7836            None
7837        }
7838    }
7839
7840    #[allow(irrefutable_let_patterns)]
7841    pub fn into_call_flexible_two_way_fields(
7842        self,
7843    ) -> Option<(
7844        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7845        RunnerCallFlexibleTwoWayFieldsResponder,
7846    )> {
7847        if let RunnerRequest::CallFlexibleTwoWayFields { target, responder } = self {
7848            Some((target, responder))
7849        } else {
7850            None
7851        }
7852    }
7853
7854    #[allow(irrefutable_let_patterns)]
7855    pub fn into_call_flexible_two_way_err(
7856        self,
7857    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayErrResponder)>
7858    {
7859        if let RunnerRequest::CallFlexibleTwoWayErr { target, responder } = self {
7860            Some((target, responder))
7861        } else {
7862            None
7863        }
7864    }
7865
7866    #[allow(irrefutable_let_patterns)]
7867    pub fn into_call_flexible_two_way_fields_err(
7868        self,
7869    ) -> Option<(
7870        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7871        RunnerCallFlexibleTwoWayFieldsErrResponder,
7872    )> {
7873        if let RunnerRequest::CallFlexibleTwoWayFieldsErr { target, responder } = self {
7874            Some((target, responder))
7875        } else {
7876            None
7877        }
7878    }
7879
7880    #[allow(irrefutable_let_patterns)]
7881    pub fn into_receive_closed_events(
7882        self,
7883    ) -> Option<(
7884        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7885        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7886        RunnerReceiveClosedEventsResponder,
7887    )> {
7888        if let RunnerRequest::ReceiveClosedEvents { target, reporter, responder } = self {
7889            Some((target, reporter, responder))
7890        } else {
7891            None
7892        }
7893    }
7894
7895    #[allow(irrefutable_let_patterns)]
7896    pub fn into_receive_ajar_events(
7897        self,
7898    ) -> Option<(
7899        fidl::endpoints::ClientEnd<AjarTargetMarker>,
7900        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7901        RunnerReceiveAjarEventsResponder,
7902    )> {
7903        if let RunnerRequest::ReceiveAjarEvents { target, reporter, responder } = self {
7904            Some((target, reporter, responder))
7905        } else {
7906            None
7907        }
7908    }
7909
7910    #[allow(irrefutable_let_patterns)]
7911    pub fn into_receive_open_events(
7912        self,
7913    ) -> Option<(
7914        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7915        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7916        RunnerReceiveOpenEventsResponder,
7917    )> {
7918        if let RunnerRequest::ReceiveOpenEvents { target, reporter, responder } = self {
7919            Some((target, reporter, responder))
7920        } else {
7921            None
7922        }
7923    }
7924
7925    /// Name of the method defined in FIDL
7926    pub fn method_name(&self) -> &'static str {
7927        match *self {
7928            RunnerRequest::GetVersion { .. } => "get_version",
7929            RunnerRequest::IsTestEnabled { .. } => "is_test_enabled",
7930            RunnerRequest::CheckAlive { .. } => "check_alive",
7931            RunnerRequest::GetBindingsProperties { .. } => "get_bindings_properties",
7932            RunnerRequest::CallTwoWayNoPayload { .. } => "call_two_way_no_payload",
7933            RunnerRequest::CallTwoWayStructPayload { .. } => "call_two_way_struct_payload",
7934            RunnerRequest::CallTwoWayTablePayload { .. } => "call_two_way_table_payload",
7935            RunnerRequest::CallTwoWayUnionPayload { .. } => "call_two_way_union_payload",
7936            RunnerRequest::CallTwoWayStructPayloadErr { .. } => "call_two_way_struct_payload_err",
7937            RunnerRequest::CallTwoWayStructRequest { .. } => "call_two_way_struct_request",
7938            RunnerRequest::CallTwoWayTableRequest { .. } => "call_two_way_table_request",
7939            RunnerRequest::CallTwoWayUnionRequest { .. } => "call_two_way_union_request",
7940            RunnerRequest::CallOneWayNoRequest { .. } => "call_one_way_no_request",
7941            RunnerRequest::CallOneWayStructRequest { .. } => "call_one_way_struct_request",
7942            RunnerRequest::CallOneWayTableRequest { .. } => "call_one_way_table_request",
7943            RunnerRequest::CallOneWayUnionRequest { .. } => "call_one_way_union_request",
7944            RunnerRequest::CallStrictOneWay { .. } => "call_strict_one_way",
7945            RunnerRequest::CallFlexibleOneWay { .. } => "call_flexible_one_way",
7946            RunnerRequest::CallStrictTwoWay { .. } => "call_strict_two_way",
7947            RunnerRequest::CallStrictTwoWayFields { .. } => "call_strict_two_way_fields",
7948            RunnerRequest::CallStrictTwoWayErr { .. } => "call_strict_two_way_err",
7949            RunnerRequest::CallStrictTwoWayFieldsErr { .. } => "call_strict_two_way_fields_err",
7950            RunnerRequest::CallFlexibleTwoWay { .. } => "call_flexible_two_way",
7951            RunnerRequest::CallFlexibleTwoWayFields { .. } => "call_flexible_two_way_fields",
7952            RunnerRequest::CallFlexibleTwoWayErr { .. } => "call_flexible_two_way_err",
7953            RunnerRequest::CallFlexibleTwoWayFieldsErr { .. } => "call_flexible_two_way_fields_err",
7954            RunnerRequest::ReceiveClosedEvents { .. } => "receive_closed_events",
7955            RunnerRequest::ReceiveAjarEvents { .. } => "receive_ajar_events",
7956            RunnerRequest::ReceiveOpenEvents { .. } => "receive_open_events",
7957        }
7958    }
7959}
7960
7961#[derive(Debug, Clone)]
7962pub struct RunnerControlHandle {
7963    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7964}
7965
7966impl fidl::endpoints::ControlHandle for RunnerControlHandle {
7967    fn shutdown(&self) {
7968        self.inner.shutdown()
7969    }
7970
7971    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
7972        self.inner.shutdown_with_epitaph(status)
7973    }
7974
7975    fn is_closed(&self) -> bool {
7976        self.inner.channel().is_closed()
7977    }
7978    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
7979        self.inner.channel().on_closed()
7980    }
7981
7982    #[cfg(target_os = "fuchsia")]
7983    fn signal_peer(
7984        &self,
7985        clear_mask: zx::Signals,
7986        set_mask: zx::Signals,
7987    ) -> Result<(), zx_status::Status> {
7988        use fidl::Peered;
7989        self.inner.channel().signal_peer(clear_mask, set_mask)
7990    }
7991}
7992
7993impl RunnerControlHandle {}
7994
7995#[must_use = "FIDL methods require a response to be sent"]
7996#[derive(Debug)]
7997pub struct RunnerGetVersionResponder {
7998    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
7999    tx_id: u32,
8000}
8001
8002/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8003/// if the responder is dropped without sending a response, so that the client
8004/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8005impl std::ops::Drop for RunnerGetVersionResponder {
8006    fn drop(&mut self) {
8007        self.control_handle.shutdown();
8008        // Safety: drops once, never accessed again
8009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8010    }
8011}
8012
8013impl fidl::endpoints::Responder for RunnerGetVersionResponder {
8014    type ControlHandle = RunnerControlHandle;
8015
8016    fn control_handle(&self) -> &RunnerControlHandle {
8017        &self.control_handle
8018    }
8019
8020    fn drop_without_shutdown(mut self) {
8021        // Safety: drops once, never accessed again due to mem::forget
8022        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8023        // Prevent Drop from running (which would shut down the channel)
8024        std::mem::forget(self);
8025    }
8026}
8027
8028impl RunnerGetVersionResponder {
8029    /// Sends a response to the FIDL transaction.
8030    ///
8031    /// Sets the channel to shutdown if an error occurs.
8032    pub fn send(self, mut version: u64) -> Result<(), fidl::Error> {
8033        let _result = self.send_raw(version);
8034        if _result.is_err() {
8035            self.control_handle.shutdown();
8036        }
8037        self.drop_without_shutdown();
8038        _result
8039    }
8040
8041    /// Similar to "send" but does not shutdown the channel if an error occurs.
8042    pub fn send_no_shutdown_on_err(self, mut version: u64) -> Result<(), fidl::Error> {
8043        let _result = self.send_raw(version);
8044        self.drop_without_shutdown();
8045        _result
8046    }
8047
8048    fn send_raw(&self, mut version: u64) -> Result<(), fidl::Error> {
8049        self.control_handle.inner.send::<RunnerGetVersionResponse>(
8050            (version,),
8051            self.tx_id,
8052            0x555d1430b913cdd4,
8053            fidl::encoding::DynamicFlags::empty(),
8054        )
8055    }
8056}
8057
8058#[must_use = "FIDL methods require a response to be sent"]
8059#[derive(Debug)]
8060pub struct RunnerIsTestEnabledResponder {
8061    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8062    tx_id: u32,
8063}
8064
8065/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8066/// if the responder is dropped without sending a response, so that the client
8067/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8068impl std::ops::Drop for RunnerIsTestEnabledResponder {
8069    fn drop(&mut self) {
8070        self.control_handle.shutdown();
8071        // Safety: drops once, never accessed again
8072        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8073    }
8074}
8075
8076impl fidl::endpoints::Responder for RunnerIsTestEnabledResponder {
8077    type ControlHandle = RunnerControlHandle;
8078
8079    fn control_handle(&self) -> &RunnerControlHandle {
8080        &self.control_handle
8081    }
8082
8083    fn drop_without_shutdown(mut self) {
8084        // Safety: drops once, never accessed again due to mem::forget
8085        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8086        // Prevent Drop from running (which would shut down the channel)
8087        std::mem::forget(self);
8088    }
8089}
8090
8091impl RunnerIsTestEnabledResponder {
8092    /// Sends a response to the FIDL transaction.
8093    ///
8094    /// Sets the channel to shutdown if an error occurs.
8095    pub fn send(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8096        let _result = self.send_raw(is_enabled);
8097        if _result.is_err() {
8098            self.control_handle.shutdown();
8099        }
8100        self.drop_without_shutdown();
8101        _result
8102    }
8103
8104    /// Similar to "send" but does not shutdown the channel if an error occurs.
8105    pub fn send_no_shutdown_on_err(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8106        let _result = self.send_raw(is_enabled);
8107        self.drop_without_shutdown();
8108        _result
8109    }
8110
8111    fn send_raw(&self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8112        self.control_handle.inner.send::<RunnerIsTestEnabledResponse>(
8113            (is_enabled,),
8114            self.tx_id,
8115            0x755bc493368d7c50,
8116            fidl::encoding::DynamicFlags::empty(),
8117        )
8118    }
8119}
8120
8121#[must_use = "FIDL methods require a response to be sent"]
8122#[derive(Debug)]
8123pub struct RunnerCheckAliveResponder {
8124    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8125    tx_id: u32,
8126}
8127
8128/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8129/// if the responder is dropped without sending a response, so that the client
8130/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8131impl std::ops::Drop for RunnerCheckAliveResponder {
8132    fn drop(&mut self) {
8133        self.control_handle.shutdown();
8134        // Safety: drops once, never accessed again
8135        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8136    }
8137}
8138
8139impl fidl::endpoints::Responder for RunnerCheckAliveResponder {
8140    type ControlHandle = RunnerControlHandle;
8141
8142    fn control_handle(&self) -> &RunnerControlHandle {
8143        &self.control_handle
8144    }
8145
8146    fn drop_without_shutdown(mut self) {
8147        // Safety: drops once, never accessed again due to mem::forget
8148        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8149        // Prevent Drop from running (which would shut down the channel)
8150        std::mem::forget(self);
8151    }
8152}
8153
8154impl RunnerCheckAliveResponder {
8155    /// Sends a response to the FIDL transaction.
8156    ///
8157    /// Sets the channel to shutdown if an error occurs.
8158    pub fn send(self) -> Result<(), fidl::Error> {
8159        let _result = self.send_raw();
8160        if _result.is_err() {
8161            self.control_handle.shutdown();
8162        }
8163        self.drop_without_shutdown();
8164        _result
8165    }
8166
8167    /// Similar to "send" but does not shutdown the channel if an error occurs.
8168    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8169        let _result = self.send_raw();
8170        self.drop_without_shutdown();
8171        _result
8172    }
8173
8174    fn send_raw(&self) -> Result<(), fidl::Error> {
8175        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8176            (),
8177            self.tx_id,
8178            0x5a77b04abdfde130,
8179            fidl::encoding::DynamicFlags::empty(),
8180        )
8181    }
8182}
8183
8184#[must_use = "FIDL methods require a response to be sent"]
8185#[derive(Debug)]
8186pub struct RunnerGetBindingsPropertiesResponder {
8187    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8188    tx_id: u32,
8189}
8190
8191/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8192/// if the responder is dropped without sending a response, so that the client
8193/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8194impl std::ops::Drop for RunnerGetBindingsPropertiesResponder {
8195    fn drop(&mut self) {
8196        self.control_handle.shutdown();
8197        // Safety: drops once, never accessed again
8198        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8199    }
8200}
8201
8202impl fidl::endpoints::Responder for RunnerGetBindingsPropertiesResponder {
8203    type ControlHandle = RunnerControlHandle;
8204
8205    fn control_handle(&self) -> &RunnerControlHandle {
8206        &self.control_handle
8207    }
8208
8209    fn drop_without_shutdown(mut self) {
8210        // Safety: drops once, never accessed again due to mem::forget
8211        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8212        // Prevent Drop from running (which would shut down the channel)
8213        std::mem::forget(self);
8214    }
8215}
8216
8217impl RunnerGetBindingsPropertiesResponder {
8218    /// Sends a response to the FIDL transaction.
8219    ///
8220    /// Sets the channel to shutdown if an error occurs.
8221    pub fn send(self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8222        let _result = self.send_raw(payload);
8223        if _result.is_err() {
8224            self.control_handle.shutdown();
8225        }
8226        self.drop_without_shutdown();
8227        _result
8228    }
8229
8230    /// Similar to "send" but does not shutdown the channel if an error occurs.
8231    pub fn send_no_shutdown_on_err(
8232        self,
8233        mut payload: &BindingsProperties,
8234    ) -> Result<(), fidl::Error> {
8235        let _result = self.send_raw(payload);
8236        self.drop_without_shutdown();
8237        _result
8238    }
8239
8240    fn send_raw(&self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8241        self.control_handle.inner.send::<BindingsProperties>(
8242            payload,
8243            self.tx_id,
8244            0x76b5610bfd4fa636,
8245            fidl::encoding::DynamicFlags::empty(),
8246        )
8247    }
8248}
8249
8250#[must_use = "FIDL methods require a response to be sent"]
8251#[derive(Debug)]
8252pub struct RunnerCallTwoWayNoPayloadResponder {
8253    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8254    tx_id: u32,
8255}
8256
8257/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8258/// if the responder is dropped without sending a response, so that the client
8259/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8260impl std::ops::Drop for RunnerCallTwoWayNoPayloadResponder {
8261    fn drop(&mut self) {
8262        self.control_handle.shutdown();
8263        // Safety: drops once, never accessed again
8264        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8265    }
8266}
8267
8268impl fidl::endpoints::Responder for RunnerCallTwoWayNoPayloadResponder {
8269    type ControlHandle = RunnerControlHandle;
8270
8271    fn control_handle(&self) -> &RunnerControlHandle {
8272        &self.control_handle
8273    }
8274
8275    fn drop_without_shutdown(mut self) {
8276        // Safety: drops once, never accessed again due to mem::forget
8277        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8278        // Prevent Drop from running (which would shut down the channel)
8279        std::mem::forget(self);
8280    }
8281}
8282
8283impl RunnerCallTwoWayNoPayloadResponder {
8284    /// Sends a response to the FIDL transaction.
8285    ///
8286    /// Sets the channel to shutdown if an error occurs.
8287    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8288        let _result = self.send_raw(payload);
8289        if _result.is_err() {
8290            self.control_handle.shutdown();
8291        }
8292        self.drop_without_shutdown();
8293        _result
8294    }
8295
8296    /// Similar to "send" but does not shutdown the channel if an error occurs.
8297    pub fn send_no_shutdown_on_err(
8298        self,
8299        mut payload: &EmptyResultClassification,
8300    ) -> Result<(), fidl::Error> {
8301        let _result = self.send_raw(payload);
8302        self.drop_without_shutdown();
8303        _result
8304    }
8305
8306    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8307        self.control_handle.inner.send::<EmptyResultClassification>(
8308            payload,
8309            self.tx_id,
8310            0x53ac710c20b320a1,
8311            fidl::encoding::DynamicFlags::empty(),
8312        )
8313    }
8314}
8315
8316#[must_use = "FIDL methods require a response to be sent"]
8317#[derive(Debug)]
8318pub struct RunnerCallTwoWayStructPayloadResponder {
8319    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8320    tx_id: u32,
8321}
8322
8323/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8324/// if the responder is dropped without sending a response, so that the client
8325/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8326impl std::ops::Drop for RunnerCallTwoWayStructPayloadResponder {
8327    fn drop(&mut self) {
8328        self.control_handle.shutdown();
8329        // Safety: drops once, never accessed again
8330        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8331    }
8332}
8333
8334impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadResponder {
8335    type ControlHandle = RunnerControlHandle;
8336
8337    fn control_handle(&self) -> &RunnerControlHandle {
8338        &self.control_handle
8339    }
8340
8341    fn drop_without_shutdown(mut self) {
8342        // Safety: drops once, never accessed again due to mem::forget
8343        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8344        // Prevent Drop from running (which would shut down the channel)
8345        std::mem::forget(self);
8346    }
8347}
8348
8349impl RunnerCallTwoWayStructPayloadResponder {
8350    /// Sends a response to the FIDL transaction.
8351    ///
8352    /// Sets the channel to shutdown if an error occurs.
8353    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8354        let _result = self.send_raw(payload);
8355        if _result.is_err() {
8356            self.control_handle.shutdown();
8357        }
8358        self.drop_without_shutdown();
8359        _result
8360    }
8361
8362    /// Similar to "send" but does not shutdown the channel if an error occurs.
8363    pub fn send_no_shutdown_on_err(
8364        self,
8365        mut payload: &NonEmptyResultClassification,
8366    ) -> Result<(), fidl::Error> {
8367        let _result = self.send_raw(payload);
8368        self.drop_without_shutdown();
8369        _result
8370    }
8371
8372    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8373        self.control_handle.inner.send::<NonEmptyResultClassification>(
8374            payload,
8375            self.tx_id,
8376            0x24e98c668499b946,
8377            fidl::encoding::DynamicFlags::empty(),
8378        )
8379    }
8380}
8381
8382#[must_use = "FIDL methods require a response to be sent"]
8383#[derive(Debug)]
8384pub struct RunnerCallTwoWayTablePayloadResponder {
8385    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8386    tx_id: u32,
8387}
8388
8389/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8390/// if the responder is dropped without sending a response, so that the client
8391/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8392impl std::ops::Drop for RunnerCallTwoWayTablePayloadResponder {
8393    fn drop(&mut self) {
8394        self.control_handle.shutdown();
8395        // Safety: drops once, never accessed again
8396        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8397    }
8398}
8399
8400impl fidl::endpoints::Responder for RunnerCallTwoWayTablePayloadResponder {
8401    type ControlHandle = RunnerControlHandle;
8402
8403    fn control_handle(&self) -> &RunnerControlHandle {
8404        &self.control_handle
8405    }
8406
8407    fn drop_without_shutdown(mut self) {
8408        // Safety: drops once, never accessed again due to mem::forget
8409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8410        // Prevent Drop from running (which would shut down the channel)
8411        std::mem::forget(self);
8412    }
8413}
8414
8415impl RunnerCallTwoWayTablePayloadResponder {
8416    /// Sends a response to the FIDL transaction.
8417    ///
8418    /// Sets the channel to shutdown if an error occurs.
8419    pub fn send(self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8420        let _result = self.send_raw(payload);
8421        if _result.is_err() {
8422            self.control_handle.shutdown();
8423        }
8424        self.drop_without_shutdown();
8425        _result
8426    }
8427
8428    /// Similar to "send" but does not shutdown the channel if an error occurs.
8429    pub fn send_no_shutdown_on_err(
8430        self,
8431        mut payload: &TableResultClassification,
8432    ) -> Result<(), fidl::Error> {
8433        let _result = self.send_raw(payload);
8434        self.drop_without_shutdown();
8435        _result
8436    }
8437
8438    fn send_raw(&self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8439        self.control_handle.inner.send::<TableResultClassification>(
8440            payload,
8441            self.tx_id,
8442            0x72e428e1605b76a,
8443            fidl::encoding::DynamicFlags::empty(),
8444        )
8445    }
8446}
8447
8448#[must_use = "FIDL methods require a response to be sent"]
8449#[derive(Debug)]
8450pub struct RunnerCallTwoWayUnionPayloadResponder {
8451    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8452    tx_id: u32,
8453}
8454
8455/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8456/// if the responder is dropped without sending a response, so that the client
8457/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8458impl std::ops::Drop for RunnerCallTwoWayUnionPayloadResponder {
8459    fn drop(&mut self) {
8460        self.control_handle.shutdown();
8461        // Safety: drops once, never accessed again
8462        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8463    }
8464}
8465
8466impl fidl::endpoints::Responder for RunnerCallTwoWayUnionPayloadResponder {
8467    type ControlHandle = RunnerControlHandle;
8468
8469    fn control_handle(&self) -> &RunnerControlHandle {
8470        &self.control_handle
8471    }
8472
8473    fn drop_without_shutdown(mut self) {
8474        // Safety: drops once, never accessed again due to mem::forget
8475        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8476        // Prevent Drop from running (which would shut down the channel)
8477        std::mem::forget(self);
8478    }
8479}
8480
8481impl RunnerCallTwoWayUnionPayloadResponder {
8482    /// Sends a response to the FIDL transaction.
8483    ///
8484    /// Sets the channel to shutdown if an error occurs.
8485    pub fn send(self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8486        let _result = self.send_raw(payload);
8487        if _result.is_err() {
8488            self.control_handle.shutdown();
8489        }
8490        self.drop_without_shutdown();
8491        _result
8492    }
8493
8494    /// Similar to "send" but does not shutdown the channel if an error occurs.
8495    pub fn send_no_shutdown_on_err(
8496        self,
8497        mut payload: &UnionResultClassification,
8498    ) -> Result<(), fidl::Error> {
8499        let _result = self.send_raw(payload);
8500        self.drop_without_shutdown();
8501        _result
8502    }
8503
8504    fn send_raw(&self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8505        self.control_handle.inner.send::<UnionResultClassification>(
8506            payload,
8507            self.tx_id,
8508            0x7dc9d67218343860,
8509            fidl::encoding::DynamicFlags::empty(),
8510        )
8511    }
8512}
8513
8514#[must_use = "FIDL methods require a response to be sent"]
8515#[derive(Debug)]
8516pub struct RunnerCallTwoWayStructPayloadErrResponder {
8517    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8518    tx_id: u32,
8519}
8520
8521/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8522/// if the responder is dropped without sending a response, so that the client
8523/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8524impl std::ops::Drop for RunnerCallTwoWayStructPayloadErrResponder {
8525    fn drop(&mut self) {
8526        self.control_handle.shutdown();
8527        // Safety: drops once, never accessed again
8528        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8529    }
8530}
8531
8532impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadErrResponder {
8533    type ControlHandle = RunnerControlHandle;
8534
8535    fn control_handle(&self) -> &RunnerControlHandle {
8536        &self.control_handle
8537    }
8538
8539    fn drop_without_shutdown(mut self) {
8540        // Safety: drops once, never accessed again due to mem::forget
8541        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8542        // Prevent Drop from running (which would shut down the channel)
8543        std::mem::forget(self);
8544    }
8545}
8546
8547impl RunnerCallTwoWayStructPayloadErrResponder {
8548    /// Sends a response to the FIDL transaction.
8549    ///
8550    /// Sets the channel to shutdown if an error occurs.
8551    pub fn send(
8552        self,
8553        mut payload: &NonEmptyResultWithErrorClassification,
8554    ) -> Result<(), fidl::Error> {
8555        let _result = self.send_raw(payload);
8556        if _result.is_err() {
8557            self.control_handle.shutdown();
8558        }
8559        self.drop_without_shutdown();
8560        _result
8561    }
8562
8563    /// Similar to "send" but does not shutdown the channel if an error occurs.
8564    pub fn send_no_shutdown_on_err(
8565        self,
8566        mut payload: &NonEmptyResultWithErrorClassification,
8567    ) -> Result<(), fidl::Error> {
8568        let _result = self.send_raw(payload);
8569        self.drop_without_shutdown();
8570        _result
8571    }
8572
8573    fn send_raw(
8574        &self,
8575        mut payload: &NonEmptyResultWithErrorClassification,
8576    ) -> Result<(), fidl::Error> {
8577        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
8578            payload,
8579            self.tx_id,
8580            0x2b07a57942c5f6e5,
8581            fidl::encoding::DynamicFlags::empty(),
8582        )
8583    }
8584}
8585
8586#[must_use = "FIDL methods require a response to be sent"]
8587#[derive(Debug)]
8588pub struct RunnerCallTwoWayStructRequestResponder {
8589    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8590    tx_id: u32,
8591}
8592
8593/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8594/// if the responder is dropped without sending a response, so that the client
8595/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8596impl std::ops::Drop for RunnerCallTwoWayStructRequestResponder {
8597    fn drop(&mut self) {
8598        self.control_handle.shutdown();
8599        // Safety: drops once, never accessed again
8600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8601    }
8602}
8603
8604impl fidl::endpoints::Responder for RunnerCallTwoWayStructRequestResponder {
8605    type ControlHandle = RunnerControlHandle;
8606
8607    fn control_handle(&self) -> &RunnerControlHandle {
8608        &self.control_handle
8609    }
8610
8611    fn drop_without_shutdown(mut self) {
8612        // Safety: drops once, never accessed again due to mem::forget
8613        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8614        // Prevent Drop from running (which would shut down the channel)
8615        std::mem::forget(self);
8616    }
8617}
8618
8619impl RunnerCallTwoWayStructRequestResponder {
8620    /// Sends a response to the FIDL transaction.
8621    ///
8622    /// Sets the channel to shutdown if an error occurs.
8623    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8624        let _result = self.send_raw(payload);
8625        if _result.is_err() {
8626            self.control_handle.shutdown();
8627        }
8628        self.drop_without_shutdown();
8629        _result
8630    }
8631
8632    /// Similar to "send" but does not shutdown the channel if an error occurs.
8633    pub fn send_no_shutdown_on_err(
8634        self,
8635        mut payload: &EmptyResultClassification,
8636    ) -> Result<(), fidl::Error> {
8637        let _result = self.send_raw(payload);
8638        self.drop_without_shutdown();
8639        _result
8640    }
8641
8642    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8643        self.control_handle.inner.send::<EmptyResultClassification>(
8644            payload,
8645            self.tx_id,
8646            0x7c00a6ba2e6c9b45,
8647            fidl::encoding::DynamicFlags::empty(),
8648        )
8649    }
8650}
8651
8652#[must_use = "FIDL methods require a response to be sent"]
8653#[derive(Debug)]
8654pub struct RunnerCallTwoWayTableRequestResponder {
8655    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8656    tx_id: u32,
8657}
8658
8659/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8660/// if the responder is dropped without sending a response, so that the client
8661/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8662impl std::ops::Drop for RunnerCallTwoWayTableRequestResponder {
8663    fn drop(&mut self) {
8664        self.control_handle.shutdown();
8665        // Safety: drops once, never accessed again
8666        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8667    }
8668}
8669
8670impl fidl::endpoints::Responder for RunnerCallTwoWayTableRequestResponder {
8671    type ControlHandle = RunnerControlHandle;
8672
8673    fn control_handle(&self) -> &RunnerControlHandle {
8674        &self.control_handle
8675    }
8676
8677    fn drop_without_shutdown(mut self) {
8678        // Safety: drops once, never accessed again due to mem::forget
8679        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8680        // Prevent Drop from running (which would shut down the channel)
8681        std::mem::forget(self);
8682    }
8683}
8684
8685impl RunnerCallTwoWayTableRequestResponder {
8686    /// Sends a response to the FIDL transaction.
8687    ///
8688    /// Sets the channel to shutdown if an error occurs.
8689    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8690        let _result = self.send_raw(payload);
8691        if _result.is_err() {
8692            self.control_handle.shutdown();
8693        }
8694        self.drop_without_shutdown();
8695        _result
8696    }
8697
8698    /// Similar to "send" but does not shutdown the channel if an error occurs.
8699    pub fn send_no_shutdown_on_err(
8700        self,
8701        mut payload: &EmptyResultClassification,
8702    ) -> Result<(), fidl::Error> {
8703        let _result = self.send_raw(payload);
8704        self.drop_without_shutdown();
8705        _result
8706    }
8707
8708    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8709        self.control_handle.inner.send::<EmptyResultClassification>(
8710            payload,
8711            self.tx_id,
8712            0x641763237d3885be,
8713            fidl::encoding::DynamicFlags::empty(),
8714        )
8715    }
8716}
8717
8718#[must_use = "FIDL methods require a response to be sent"]
8719#[derive(Debug)]
8720pub struct RunnerCallTwoWayUnionRequestResponder {
8721    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8722    tx_id: u32,
8723}
8724
8725/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8726/// if the responder is dropped without sending a response, so that the client
8727/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8728impl std::ops::Drop for RunnerCallTwoWayUnionRequestResponder {
8729    fn drop(&mut self) {
8730        self.control_handle.shutdown();
8731        // Safety: drops once, never accessed again
8732        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8733    }
8734}
8735
8736impl fidl::endpoints::Responder for RunnerCallTwoWayUnionRequestResponder {
8737    type ControlHandle = RunnerControlHandle;
8738
8739    fn control_handle(&self) -> &RunnerControlHandle {
8740        &self.control_handle
8741    }
8742
8743    fn drop_without_shutdown(mut self) {
8744        // Safety: drops once, never accessed again due to mem::forget
8745        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8746        // Prevent Drop from running (which would shut down the channel)
8747        std::mem::forget(self);
8748    }
8749}
8750
8751impl RunnerCallTwoWayUnionRequestResponder {
8752    /// Sends a response to the FIDL transaction.
8753    ///
8754    /// Sets the channel to shutdown if an error occurs.
8755    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8756        let _result = self.send_raw(payload);
8757        if _result.is_err() {
8758            self.control_handle.shutdown();
8759        }
8760        self.drop_without_shutdown();
8761        _result
8762    }
8763
8764    /// Similar to "send" but does not shutdown the channel if an error occurs.
8765    pub fn send_no_shutdown_on_err(
8766        self,
8767        mut payload: &EmptyResultClassification,
8768    ) -> Result<(), fidl::Error> {
8769        let _result = self.send_raw(payload);
8770        self.drop_without_shutdown();
8771        _result
8772    }
8773
8774    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8775        self.control_handle.inner.send::<EmptyResultClassification>(
8776            payload,
8777            self.tx_id,
8778            0x4be5f061df42619e,
8779            fidl::encoding::DynamicFlags::empty(),
8780        )
8781    }
8782}
8783
8784#[must_use = "FIDL methods require a response to be sent"]
8785#[derive(Debug)]
8786pub struct RunnerCallOneWayNoRequestResponder {
8787    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8788    tx_id: u32,
8789}
8790
8791/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8792/// if the responder is dropped without sending a response, so that the client
8793/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8794impl std::ops::Drop for RunnerCallOneWayNoRequestResponder {
8795    fn drop(&mut self) {
8796        self.control_handle.shutdown();
8797        // Safety: drops once, never accessed again
8798        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8799    }
8800}
8801
8802impl fidl::endpoints::Responder for RunnerCallOneWayNoRequestResponder {
8803    type ControlHandle = RunnerControlHandle;
8804
8805    fn control_handle(&self) -> &RunnerControlHandle {
8806        &self.control_handle
8807    }
8808
8809    fn drop_without_shutdown(mut self) {
8810        // Safety: drops once, never accessed again due to mem::forget
8811        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8812        // Prevent Drop from running (which would shut down the channel)
8813        std::mem::forget(self);
8814    }
8815}
8816
8817impl RunnerCallOneWayNoRequestResponder {
8818    /// Sends a response to the FIDL transaction.
8819    ///
8820    /// Sets the channel to shutdown if an error occurs.
8821    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8822        let _result = self.send_raw(payload);
8823        if _result.is_err() {
8824            self.control_handle.shutdown();
8825        }
8826        self.drop_without_shutdown();
8827        _result
8828    }
8829
8830    /// Similar to "send" but does not shutdown the channel if an error occurs.
8831    pub fn send_no_shutdown_on_err(
8832        self,
8833        mut payload: &EmptyResultClassification,
8834    ) -> Result<(), fidl::Error> {
8835        let _result = self.send_raw(payload);
8836        self.drop_without_shutdown();
8837        _result
8838    }
8839
8840    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8841        self.control_handle.inner.send::<EmptyResultClassification>(
8842            payload,
8843            self.tx_id,
8844            0x24b6eea8cbdccc09,
8845            fidl::encoding::DynamicFlags::empty(),
8846        )
8847    }
8848}
8849
8850#[must_use = "FIDL methods require a response to be sent"]
8851#[derive(Debug)]
8852pub struct RunnerCallOneWayStructRequestResponder {
8853    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8854    tx_id: u32,
8855}
8856
8857/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8858/// if the responder is dropped without sending a response, so that the client
8859/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8860impl std::ops::Drop for RunnerCallOneWayStructRequestResponder {
8861    fn drop(&mut self) {
8862        self.control_handle.shutdown();
8863        // Safety: drops once, never accessed again
8864        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8865    }
8866}
8867
8868impl fidl::endpoints::Responder for RunnerCallOneWayStructRequestResponder {
8869    type ControlHandle = RunnerControlHandle;
8870
8871    fn control_handle(&self) -> &RunnerControlHandle {
8872        &self.control_handle
8873    }
8874
8875    fn drop_without_shutdown(mut self) {
8876        // Safety: drops once, never accessed again due to mem::forget
8877        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8878        // Prevent Drop from running (which would shut down the channel)
8879        std::mem::forget(self);
8880    }
8881}
8882
8883impl RunnerCallOneWayStructRequestResponder {
8884    /// Sends a response to the FIDL transaction.
8885    ///
8886    /// Sets the channel to shutdown if an error occurs.
8887    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8888        let _result = self.send_raw(payload);
8889        if _result.is_err() {
8890            self.control_handle.shutdown();
8891        }
8892        self.drop_without_shutdown();
8893        _result
8894    }
8895
8896    /// Similar to "send" but does not shutdown the channel if an error occurs.
8897    pub fn send_no_shutdown_on_err(
8898        self,
8899        mut payload: &EmptyResultClassification,
8900    ) -> Result<(), fidl::Error> {
8901        let _result = self.send_raw(payload);
8902        self.drop_without_shutdown();
8903        _result
8904    }
8905
8906    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8907        self.control_handle.inner.send::<EmptyResultClassification>(
8908            payload,
8909            self.tx_id,
8910            0x352a2907a0fcb420,
8911            fidl::encoding::DynamicFlags::empty(),
8912        )
8913    }
8914}
8915
8916#[must_use = "FIDL methods require a response to be sent"]
8917#[derive(Debug)]
8918pub struct RunnerCallOneWayTableRequestResponder {
8919    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8920    tx_id: u32,
8921}
8922
8923/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8924/// if the responder is dropped without sending a response, so that the client
8925/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8926impl std::ops::Drop for RunnerCallOneWayTableRequestResponder {
8927    fn drop(&mut self) {
8928        self.control_handle.shutdown();
8929        // Safety: drops once, never accessed again
8930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8931    }
8932}
8933
8934impl fidl::endpoints::Responder for RunnerCallOneWayTableRequestResponder {
8935    type ControlHandle = RunnerControlHandle;
8936
8937    fn control_handle(&self) -> &RunnerControlHandle {
8938        &self.control_handle
8939    }
8940
8941    fn drop_without_shutdown(mut self) {
8942        // Safety: drops once, never accessed again due to mem::forget
8943        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8944        // Prevent Drop from running (which would shut down the channel)
8945        std::mem::forget(self);
8946    }
8947}
8948
8949impl RunnerCallOneWayTableRequestResponder {
8950    /// Sends a response to the FIDL transaction.
8951    ///
8952    /// Sets the channel to shutdown if an error occurs.
8953    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8954        let _result = self.send_raw(payload);
8955        if _result.is_err() {
8956            self.control_handle.shutdown();
8957        }
8958        self.drop_without_shutdown();
8959        _result
8960    }
8961
8962    /// Similar to "send" but does not shutdown the channel if an error occurs.
8963    pub fn send_no_shutdown_on_err(
8964        self,
8965        mut payload: &EmptyResultClassification,
8966    ) -> Result<(), fidl::Error> {
8967        let _result = self.send_raw(payload);
8968        self.drop_without_shutdown();
8969        _result
8970    }
8971
8972    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8973        self.control_handle.inner.send::<EmptyResultClassification>(
8974            payload,
8975            self.tx_id,
8976            0x734121bf8bf336ef,
8977            fidl::encoding::DynamicFlags::empty(),
8978        )
8979    }
8980}
8981
8982#[must_use = "FIDL methods require a response to be sent"]
8983#[derive(Debug)]
8984pub struct RunnerCallOneWayUnionRequestResponder {
8985    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8986    tx_id: u32,
8987}
8988
8989/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8990/// if the responder is dropped without sending a response, so that the client
8991/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8992impl std::ops::Drop for RunnerCallOneWayUnionRequestResponder {
8993    fn drop(&mut self) {
8994        self.control_handle.shutdown();
8995        // Safety: drops once, never accessed again
8996        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8997    }
8998}
8999
9000impl fidl::endpoints::Responder for RunnerCallOneWayUnionRequestResponder {
9001    type ControlHandle = RunnerControlHandle;
9002
9003    fn control_handle(&self) -> &RunnerControlHandle {
9004        &self.control_handle
9005    }
9006
9007    fn drop_without_shutdown(mut self) {
9008        // Safety: drops once, never accessed again due to mem::forget
9009        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9010        // Prevent Drop from running (which would shut down the channel)
9011        std::mem::forget(self);
9012    }
9013}
9014
9015impl RunnerCallOneWayUnionRequestResponder {
9016    /// Sends a response to the FIDL transaction.
9017    ///
9018    /// Sets the channel to shutdown if an error occurs.
9019    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9020        let _result = self.send_raw(payload);
9021        if _result.is_err() {
9022            self.control_handle.shutdown();
9023        }
9024        self.drop_without_shutdown();
9025        _result
9026    }
9027
9028    /// Similar to "send" but does not shutdown the channel if an error occurs.
9029    pub fn send_no_shutdown_on_err(
9030        self,
9031        mut payload: &EmptyResultClassification,
9032    ) -> Result<(), fidl::Error> {
9033        let _result = self.send_raw(payload);
9034        self.drop_without_shutdown();
9035        _result
9036    }
9037
9038    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9039        self.control_handle.inner.send::<EmptyResultClassification>(
9040            payload,
9041            self.tx_id,
9042            0x9be8e5eb7d50eb6,
9043            fidl::encoding::DynamicFlags::empty(),
9044        )
9045    }
9046}
9047
9048#[must_use = "FIDL methods require a response to be sent"]
9049#[derive(Debug)]
9050pub struct RunnerCallStrictOneWayResponder {
9051    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9052    tx_id: u32,
9053}
9054
9055/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9056/// if the responder is dropped without sending a response, so that the client
9057/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9058impl std::ops::Drop for RunnerCallStrictOneWayResponder {
9059    fn drop(&mut self) {
9060        self.control_handle.shutdown();
9061        // Safety: drops once, never accessed again
9062        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9063    }
9064}
9065
9066impl fidl::endpoints::Responder for RunnerCallStrictOneWayResponder {
9067    type ControlHandle = RunnerControlHandle;
9068
9069    fn control_handle(&self) -> &RunnerControlHandle {
9070        &self.control_handle
9071    }
9072
9073    fn drop_without_shutdown(mut self) {
9074        // Safety: drops once, never accessed again due to mem::forget
9075        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9076        // Prevent Drop from running (which would shut down the channel)
9077        std::mem::forget(self);
9078    }
9079}
9080
9081impl RunnerCallStrictOneWayResponder {
9082    /// Sends a response to the FIDL transaction.
9083    ///
9084    /// Sets the channel to shutdown if an error occurs.
9085    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9086        let _result = self.send_raw(payload);
9087        if _result.is_err() {
9088            self.control_handle.shutdown();
9089        }
9090        self.drop_without_shutdown();
9091        _result
9092    }
9093
9094    /// Similar to "send" but does not shutdown the channel if an error occurs.
9095    pub fn send_no_shutdown_on_err(
9096        self,
9097        mut payload: &EmptyResultClassification,
9098    ) -> Result<(), fidl::Error> {
9099        let _result = self.send_raw(payload);
9100        self.drop_without_shutdown();
9101        _result
9102    }
9103
9104    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9105        self.control_handle.inner.send::<EmptyResultClassification>(
9106            payload,
9107            self.tx_id,
9108            0x4edd0b6f52c0446b,
9109            fidl::encoding::DynamicFlags::empty(),
9110        )
9111    }
9112}
9113
9114#[must_use = "FIDL methods require a response to be sent"]
9115#[derive(Debug)]
9116pub struct RunnerCallFlexibleOneWayResponder {
9117    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9118    tx_id: u32,
9119}
9120
9121/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9122/// if the responder is dropped without sending a response, so that the client
9123/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9124impl std::ops::Drop for RunnerCallFlexibleOneWayResponder {
9125    fn drop(&mut self) {
9126        self.control_handle.shutdown();
9127        // Safety: drops once, never accessed again
9128        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9129    }
9130}
9131
9132impl fidl::endpoints::Responder for RunnerCallFlexibleOneWayResponder {
9133    type ControlHandle = RunnerControlHandle;
9134
9135    fn control_handle(&self) -> &RunnerControlHandle {
9136        &self.control_handle
9137    }
9138
9139    fn drop_without_shutdown(mut self) {
9140        // Safety: drops once, never accessed again due to mem::forget
9141        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9142        // Prevent Drop from running (which would shut down the channel)
9143        std::mem::forget(self);
9144    }
9145}
9146
9147impl RunnerCallFlexibleOneWayResponder {
9148    /// Sends a response to the FIDL transaction.
9149    ///
9150    /// Sets the channel to shutdown if an error occurs.
9151    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9152        let _result = self.send_raw(payload);
9153        if _result.is_err() {
9154            self.control_handle.shutdown();
9155        }
9156        self.drop_without_shutdown();
9157        _result
9158    }
9159
9160    /// Similar to "send" but does not shutdown the channel if an error occurs.
9161    pub fn send_no_shutdown_on_err(
9162        self,
9163        mut payload: &EmptyResultClassification,
9164    ) -> Result<(), fidl::Error> {
9165        let _result = self.send_raw(payload);
9166        self.drop_without_shutdown();
9167        _result
9168    }
9169
9170    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9171        self.control_handle.inner.send::<EmptyResultClassification>(
9172            payload,
9173            self.tx_id,
9174            0x7253f10a77dfe817,
9175            fidl::encoding::DynamicFlags::empty(),
9176        )
9177    }
9178}
9179
9180#[must_use = "FIDL methods require a response to be sent"]
9181#[derive(Debug)]
9182pub struct RunnerCallStrictTwoWayResponder {
9183    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9184    tx_id: u32,
9185}
9186
9187/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9188/// if the responder is dropped without sending a response, so that the client
9189/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9190impl std::ops::Drop for RunnerCallStrictTwoWayResponder {
9191    fn drop(&mut self) {
9192        self.control_handle.shutdown();
9193        // Safety: drops once, never accessed again
9194        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9195    }
9196}
9197
9198impl fidl::endpoints::Responder for RunnerCallStrictTwoWayResponder {
9199    type ControlHandle = RunnerControlHandle;
9200
9201    fn control_handle(&self) -> &RunnerControlHandle {
9202        &self.control_handle
9203    }
9204
9205    fn drop_without_shutdown(mut self) {
9206        // Safety: drops once, never accessed again due to mem::forget
9207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9208        // Prevent Drop from running (which would shut down the channel)
9209        std::mem::forget(self);
9210    }
9211}
9212
9213impl RunnerCallStrictTwoWayResponder {
9214    /// Sends a response to the FIDL transaction.
9215    ///
9216    /// Sets the channel to shutdown if an error occurs.
9217    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9218        let _result = self.send_raw(payload);
9219        if _result.is_err() {
9220            self.control_handle.shutdown();
9221        }
9222        self.drop_without_shutdown();
9223        _result
9224    }
9225
9226    /// Similar to "send" but does not shutdown the channel if an error occurs.
9227    pub fn send_no_shutdown_on_err(
9228        self,
9229        mut payload: &EmptyResultClassification,
9230    ) -> Result<(), fidl::Error> {
9231        let _result = self.send_raw(payload);
9232        self.drop_without_shutdown();
9233        _result
9234    }
9235
9236    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9237        self.control_handle.inner.send::<EmptyResultClassification>(
9238            payload,
9239            self.tx_id,
9240            0x1fa9fb7414aedd27,
9241            fidl::encoding::DynamicFlags::empty(),
9242        )
9243    }
9244}
9245
9246#[must_use = "FIDL methods require a response to be sent"]
9247#[derive(Debug)]
9248pub struct RunnerCallStrictTwoWayFieldsResponder {
9249    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9250    tx_id: u32,
9251}
9252
9253/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9254/// if the responder is dropped without sending a response, so that the client
9255/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9256impl std::ops::Drop for RunnerCallStrictTwoWayFieldsResponder {
9257    fn drop(&mut self) {
9258        self.control_handle.shutdown();
9259        // Safety: drops once, never accessed again
9260        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9261    }
9262}
9263
9264impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsResponder {
9265    type ControlHandle = RunnerControlHandle;
9266
9267    fn control_handle(&self) -> &RunnerControlHandle {
9268        &self.control_handle
9269    }
9270
9271    fn drop_without_shutdown(mut self) {
9272        // Safety: drops once, never accessed again due to mem::forget
9273        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9274        // Prevent Drop from running (which would shut down the channel)
9275        std::mem::forget(self);
9276    }
9277}
9278
9279impl RunnerCallStrictTwoWayFieldsResponder {
9280    /// Sends a response to the FIDL transaction.
9281    ///
9282    /// Sets the channel to shutdown if an error occurs.
9283    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9284        let _result = self.send_raw(payload);
9285        if _result.is_err() {
9286            self.control_handle.shutdown();
9287        }
9288        self.drop_without_shutdown();
9289        _result
9290    }
9291
9292    /// Similar to "send" but does not shutdown the channel if an error occurs.
9293    pub fn send_no_shutdown_on_err(
9294        self,
9295        mut payload: &NonEmptyResultClassification,
9296    ) -> Result<(), fidl::Error> {
9297        let _result = self.send_raw(payload);
9298        self.drop_without_shutdown();
9299        _result
9300    }
9301
9302    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9303        self.control_handle.inner.send::<NonEmptyResultClassification>(
9304            payload,
9305            self.tx_id,
9306            0x6f690e00ebf6f123,
9307            fidl::encoding::DynamicFlags::empty(),
9308        )
9309    }
9310}
9311
9312#[must_use = "FIDL methods require a response to be sent"]
9313#[derive(Debug)]
9314pub struct RunnerCallStrictTwoWayErrResponder {
9315    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9316    tx_id: u32,
9317}
9318
9319/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9320/// if the responder is dropped without sending a response, so that the client
9321/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9322impl std::ops::Drop for RunnerCallStrictTwoWayErrResponder {
9323    fn drop(&mut self) {
9324        self.control_handle.shutdown();
9325        // Safety: drops once, never accessed again
9326        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9327    }
9328}
9329
9330impl fidl::endpoints::Responder for RunnerCallStrictTwoWayErrResponder {
9331    type ControlHandle = RunnerControlHandle;
9332
9333    fn control_handle(&self) -> &RunnerControlHandle {
9334        &self.control_handle
9335    }
9336
9337    fn drop_without_shutdown(mut self) {
9338        // Safety: drops once, never accessed again due to mem::forget
9339        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9340        // Prevent Drop from running (which would shut down the channel)
9341        std::mem::forget(self);
9342    }
9343}
9344
9345impl RunnerCallStrictTwoWayErrResponder {
9346    /// Sends a response to the FIDL transaction.
9347    ///
9348    /// Sets the channel to shutdown if an error occurs.
9349    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9350        let _result = self.send_raw(payload);
9351        if _result.is_err() {
9352            self.control_handle.shutdown();
9353        }
9354        self.drop_without_shutdown();
9355        _result
9356    }
9357
9358    /// Similar to "send" but does not shutdown the channel if an error occurs.
9359    pub fn send_no_shutdown_on_err(
9360        self,
9361        mut payload: &EmptyResultWithErrorClassification,
9362    ) -> Result<(), fidl::Error> {
9363        let _result = self.send_raw(payload);
9364        self.drop_without_shutdown();
9365        _result
9366    }
9367
9368    fn send_raw(
9369        &self,
9370        mut payload: &EmptyResultWithErrorClassification,
9371    ) -> Result<(), fidl::Error> {
9372        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9373            payload,
9374            self.tx_id,
9375            0x51d6bc7cf6cbaf1a,
9376            fidl::encoding::DynamicFlags::empty(),
9377        )
9378    }
9379}
9380
9381#[must_use = "FIDL methods require a response to be sent"]
9382#[derive(Debug)]
9383pub struct RunnerCallStrictTwoWayFieldsErrResponder {
9384    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9385    tx_id: u32,
9386}
9387
9388/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9389/// if the responder is dropped without sending a response, so that the client
9390/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9391impl std::ops::Drop for RunnerCallStrictTwoWayFieldsErrResponder {
9392    fn drop(&mut self) {
9393        self.control_handle.shutdown();
9394        // Safety: drops once, never accessed again
9395        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9396    }
9397}
9398
9399impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsErrResponder {
9400    type ControlHandle = RunnerControlHandle;
9401
9402    fn control_handle(&self) -> &RunnerControlHandle {
9403        &self.control_handle
9404    }
9405
9406    fn drop_without_shutdown(mut self) {
9407        // Safety: drops once, never accessed again due to mem::forget
9408        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9409        // Prevent Drop from running (which would shut down the channel)
9410        std::mem::forget(self);
9411    }
9412}
9413
9414impl RunnerCallStrictTwoWayFieldsErrResponder {
9415    /// Sends a response to the FIDL transaction.
9416    ///
9417    /// Sets the channel to shutdown if an error occurs.
9418    pub fn send(
9419        self,
9420        mut payload: &NonEmptyResultWithErrorClassification,
9421    ) -> Result<(), fidl::Error> {
9422        let _result = self.send_raw(payload);
9423        if _result.is_err() {
9424            self.control_handle.shutdown();
9425        }
9426        self.drop_without_shutdown();
9427        _result
9428    }
9429
9430    /// Similar to "send" but does not shutdown the channel if an error occurs.
9431    pub fn send_no_shutdown_on_err(
9432        self,
9433        mut payload: &NonEmptyResultWithErrorClassification,
9434    ) -> Result<(), fidl::Error> {
9435        let _result = self.send_raw(payload);
9436        self.drop_without_shutdown();
9437        _result
9438    }
9439
9440    fn send_raw(
9441        &self,
9442        mut payload: &NonEmptyResultWithErrorClassification,
9443    ) -> Result<(), fidl::Error> {
9444        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9445            payload,
9446            self.tx_id,
9447            0x6fa31ced05074c05,
9448            fidl::encoding::DynamicFlags::empty(),
9449        )
9450    }
9451}
9452
9453#[must_use = "FIDL methods require a response to be sent"]
9454#[derive(Debug)]
9455pub struct RunnerCallFlexibleTwoWayResponder {
9456    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9457    tx_id: u32,
9458}
9459
9460/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9461/// if the responder is dropped without sending a response, so that the client
9462/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9463impl std::ops::Drop for RunnerCallFlexibleTwoWayResponder {
9464    fn drop(&mut self) {
9465        self.control_handle.shutdown();
9466        // Safety: drops once, never accessed again
9467        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9468    }
9469}
9470
9471impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayResponder {
9472    type ControlHandle = RunnerControlHandle;
9473
9474    fn control_handle(&self) -> &RunnerControlHandle {
9475        &self.control_handle
9476    }
9477
9478    fn drop_without_shutdown(mut self) {
9479        // Safety: drops once, never accessed again due to mem::forget
9480        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9481        // Prevent Drop from running (which would shut down the channel)
9482        std::mem::forget(self);
9483    }
9484}
9485
9486impl RunnerCallFlexibleTwoWayResponder {
9487    /// Sends a response to the FIDL transaction.
9488    ///
9489    /// Sets the channel to shutdown if an error occurs.
9490    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9491        let _result = self.send_raw(payload);
9492        if _result.is_err() {
9493            self.control_handle.shutdown();
9494        }
9495        self.drop_without_shutdown();
9496        _result
9497    }
9498
9499    /// Similar to "send" but does not shutdown the channel if an error occurs.
9500    pub fn send_no_shutdown_on_err(
9501        self,
9502        mut payload: &EmptyResultClassification,
9503    ) -> Result<(), fidl::Error> {
9504        let _result = self.send_raw(payload);
9505        self.drop_without_shutdown();
9506        _result
9507    }
9508
9509    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9510        self.control_handle.inner.send::<EmptyResultClassification>(
9511            payload,
9512            self.tx_id,
9513            0x411f70724876d49,
9514            fidl::encoding::DynamicFlags::empty(),
9515        )
9516    }
9517}
9518
9519#[must_use = "FIDL methods require a response to be sent"]
9520#[derive(Debug)]
9521pub struct RunnerCallFlexibleTwoWayFieldsResponder {
9522    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9523    tx_id: u32,
9524}
9525
9526/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9527/// if the responder is dropped without sending a response, so that the client
9528/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9529impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsResponder {
9530    fn drop(&mut self) {
9531        self.control_handle.shutdown();
9532        // Safety: drops once, never accessed again
9533        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9534    }
9535}
9536
9537impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsResponder {
9538    type ControlHandle = RunnerControlHandle;
9539
9540    fn control_handle(&self) -> &RunnerControlHandle {
9541        &self.control_handle
9542    }
9543
9544    fn drop_without_shutdown(mut self) {
9545        // Safety: drops once, never accessed again due to mem::forget
9546        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9547        // Prevent Drop from running (which would shut down the channel)
9548        std::mem::forget(self);
9549    }
9550}
9551
9552impl RunnerCallFlexibleTwoWayFieldsResponder {
9553    /// Sends a response to the FIDL transaction.
9554    ///
9555    /// Sets the channel to shutdown if an error occurs.
9556    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9557        let _result = self.send_raw(payload);
9558        if _result.is_err() {
9559            self.control_handle.shutdown();
9560        }
9561        self.drop_without_shutdown();
9562        _result
9563    }
9564
9565    /// Similar to "send" but does not shutdown the channel if an error occurs.
9566    pub fn send_no_shutdown_on_err(
9567        self,
9568        mut payload: &NonEmptyResultClassification,
9569    ) -> Result<(), fidl::Error> {
9570        let _result = self.send_raw(payload);
9571        self.drop_without_shutdown();
9572        _result
9573    }
9574
9575    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9576        self.control_handle.inner.send::<NonEmptyResultClassification>(
9577            payload,
9578            self.tx_id,
9579            0x330996b623598eed,
9580            fidl::encoding::DynamicFlags::empty(),
9581        )
9582    }
9583}
9584
9585#[must_use = "FIDL methods require a response to be sent"]
9586#[derive(Debug)]
9587pub struct RunnerCallFlexibleTwoWayErrResponder {
9588    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9589    tx_id: u32,
9590}
9591
9592/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9593/// if the responder is dropped without sending a response, so that the client
9594/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9595impl std::ops::Drop for RunnerCallFlexibleTwoWayErrResponder {
9596    fn drop(&mut self) {
9597        self.control_handle.shutdown();
9598        // Safety: drops once, never accessed again
9599        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9600    }
9601}
9602
9603impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayErrResponder {
9604    type ControlHandle = RunnerControlHandle;
9605
9606    fn control_handle(&self) -> &RunnerControlHandle {
9607        &self.control_handle
9608    }
9609
9610    fn drop_without_shutdown(mut self) {
9611        // Safety: drops once, never accessed again due to mem::forget
9612        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9613        // Prevent Drop from running (which would shut down the channel)
9614        std::mem::forget(self);
9615    }
9616}
9617
9618impl RunnerCallFlexibleTwoWayErrResponder {
9619    /// Sends a response to the FIDL transaction.
9620    ///
9621    /// Sets the channel to shutdown if an error occurs.
9622    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9623        let _result = self.send_raw(payload);
9624        if _result.is_err() {
9625            self.control_handle.shutdown();
9626        }
9627        self.drop_without_shutdown();
9628        _result
9629    }
9630
9631    /// Similar to "send" but does not shutdown the channel if an error occurs.
9632    pub fn send_no_shutdown_on_err(
9633        self,
9634        mut payload: &EmptyResultWithErrorClassification,
9635    ) -> Result<(), fidl::Error> {
9636        let _result = self.send_raw(payload);
9637        self.drop_without_shutdown();
9638        _result
9639    }
9640
9641    fn send_raw(
9642        &self,
9643        mut payload: &EmptyResultWithErrorClassification,
9644    ) -> Result<(), fidl::Error> {
9645        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9646            payload,
9647            self.tx_id,
9648            0x5ddbf88a353a2a57,
9649            fidl::encoding::DynamicFlags::empty(),
9650        )
9651    }
9652}
9653
9654#[must_use = "FIDL methods require a response to be sent"]
9655#[derive(Debug)]
9656pub struct RunnerCallFlexibleTwoWayFieldsErrResponder {
9657    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9658    tx_id: u32,
9659}
9660
9661/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9662/// if the responder is dropped without sending a response, so that the client
9663/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9664impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsErrResponder {
9665    fn drop(&mut self) {
9666        self.control_handle.shutdown();
9667        // Safety: drops once, never accessed again
9668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9669    }
9670}
9671
9672impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsErrResponder {
9673    type ControlHandle = RunnerControlHandle;
9674
9675    fn control_handle(&self) -> &RunnerControlHandle {
9676        &self.control_handle
9677    }
9678
9679    fn drop_without_shutdown(mut self) {
9680        // Safety: drops once, never accessed again due to mem::forget
9681        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9682        // Prevent Drop from running (which would shut down the channel)
9683        std::mem::forget(self);
9684    }
9685}
9686
9687impl RunnerCallFlexibleTwoWayFieldsErrResponder {
9688    /// Sends a response to the FIDL transaction.
9689    ///
9690    /// Sets the channel to shutdown if an error occurs.
9691    pub fn send(
9692        self,
9693        mut payload: &NonEmptyResultWithErrorClassification,
9694    ) -> Result<(), fidl::Error> {
9695        let _result = self.send_raw(payload);
9696        if _result.is_err() {
9697            self.control_handle.shutdown();
9698        }
9699        self.drop_without_shutdown();
9700        _result
9701    }
9702
9703    /// Similar to "send" but does not shutdown the channel if an error occurs.
9704    pub fn send_no_shutdown_on_err(
9705        self,
9706        mut payload: &NonEmptyResultWithErrorClassification,
9707    ) -> Result<(), fidl::Error> {
9708        let _result = self.send_raw(payload);
9709        self.drop_without_shutdown();
9710        _result
9711    }
9712
9713    fn send_raw(
9714        &self,
9715        mut payload: &NonEmptyResultWithErrorClassification,
9716    ) -> Result<(), fidl::Error> {
9717        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9718            payload,
9719            self.tx_id,
9720            0x7ae309383b07048e,
9721            fidl::encoding::DynamicFlags::empty(),
9722        )
9723    }
9724}
9725
9726#[must_use = "FIDL methods require a response to be sent"]
9727#[derive(Debug)]
9728pub struct RunnerReceiveClosedEventsResponder {
9729    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9730    tx_id: u32,
9731}
9732
9733/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9734/// if the responder is dropped without sending a response, so that the client
9735/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9736impl std::ops::Drop for RunnerReceiveClosedEventsResponder {
9737    fn drop(&mut self) {
9738        self.control_handle.shutdown();
9739        // Safety: drops once, never accessed again
9740        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9741    }
9742}
9743
9744impl fidl::endpoints::Responder for RunnerReceiveClosedEventsResponder {
9745    type ControlHandle = RunnerControlHandle;
9746
9747    fn control_handle(&self) -> &RunnerControlHandle {
9748        &self.control_handle
9749    }
9750
9751    fn drop_without_shutdown(mut self) {
9752        // Safety: drops once, never accessed again due to mem::forget
9753        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9754        // Prevent Drop from running (which would shut down the channel)
9755        std::mem::forget(self);
9756    }
9757}
9758
9759impl RunnerReceiveClosedEventsResponder {
9760    /// Sends a response to the FIDL transaction.
9761    ///
9762    /// Sets the channel to shutdown if an error occurs.
9763    pub fn send(self) -> Result<(), fidl::Error> {
9764        let _result = self.send_raw();
9765        if _result.is_err() {
9766            self.control_handle.shutdown();
9767        }
9768        self.drop_without_shutdown();
9769        _result
9770    }
9771
9772    /// Similar to "send" but does not shutdown the channel if an error occurs.
9773    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9774        let _result = self.send_raw();
9775        self.drop_without_shutdown();
9776        _result
9777    }
9778
9779    fn send_raw(&self) -> Result<(), fidl::Error> {
9780        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9781            (),
9782            self.tx_id,
9783            0x48da834910571aeb,
9784            fidl::encoding::DynamicFlags::empty(),
9785        )
9786    }
9787}
9788
9789#[must_use = "FIDL methods require a response to be sent"]
9790#[derive(Debug)]
9791pub struct RunnerReceiveAjarEventsResponder {
9792    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9793    tx_id: u32,
9794}
9795
9796/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9797/// if the responder is dropped without sending a response, so that the client
9798/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9799impl std::ops::Drop for RunnerReceiveAjarEventsResponder {
9800    fn drop(&mut self) {
9801        self.control_handle.shutdown();
9802        // Safety: drops once, never accessed again
9803        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9804    }
9805}
9806
9807impl fidl::endpoints::Responder for RunnerReceiveAjarEventsResponder {
9808    type ControlHandle = RunnerControlHandle;
9809
9810    fn control_handle(&self) -> &RunnerControlHandle {
9811        &self.control_handle
9812    }
9813
9814    fn drop_without_shutdown(mut self) {
9815        // Safety: drops once, never accessed again due to mem::forget
9816        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9817        // Prevent Drop from running (which would shut down the channel)
9818        std::mem::forget(self);
9819    }
9820}
9821
9822impl RunnerReceiveAjarEventsResponder {
9823    /// Sends a response to the FIDL transaction.
9824    ///
9825    /// Sets the channel to shutdown if an error occurs.
9826    pub fn send(self) -> Result<(), fidl::Error> {
9827        let _result = self.send_raw();
9828        if _result.is_err() {
9829            self.control_handle.shutdown();
9830        }
9831        self.drop_without_shutdown();
9832        _result
9833    }
9834
9835    /// Similar to "send" but does not shutdown the channel if an error occurs.
9836    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9837        let _result = self.send_raw();
9838        self.drop_without_shutdown();
9839        _result
9840    }
9841
9842    fn send_raw(&self) -> Result<(), fidl::Error> {
9843        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9844            (),
9845            self.tx_id,
9846            0xc5662b9a9c007a3,
9847            fidl::encoding::DynamicFlags::empty(),
9848        )
9849    }
9850}
9851
9852#[must_use = "FIDL methods require a response to be sent"]
9853#[derive(Debug)]
9854pub struct RunnerReceiveOpenEventsResponder {
9855    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9856    tx_id: u32,
9857}
9858
9859/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9860/// if the responder is dropped without sending a response, so that the client
9861/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9862impl std::ops::Drop for RunnerReceiveOpenEventsResponder {
9863    fn drop(&mut self) {
9864        self.control_handle.shutdown();
9865        // Safety: drops once, never accessed again
9866        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9867    }
9868}
9869
9870impl fidl::endpoints::Responder for RunnerReceiveOpenEventsResponder {
9871    type ControlHandle = RunnerControlHandle;
9872
9873    fn control_handle(&self) -> &RunnerControlHandle {
9874        &self.control_handle
9875    }
9876
9877    fn drop_without_shutdown(mut self) {
9878        // Safety: drops once, never accessed again due to mem::forget
9879        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9880        // Prevent Drop from running (which would shut down the channel)
9881        std::mem::forget(self);
9882    }
9883}
9884
9885impl RunnerReceiveOpenEventsResponder {
9886    /// Sends a response to the FIDL transaction.
9887    ///
9888    /// Sets the channel to shutdown if an error occurs.
9889    pub fn send(self) -> Result<(), fidl::Error> {
9890        let _result = self.send_raw();
9891        if _result.is_err() {
9892            self.control_handle.shutdown();
9893        }
9894        self.drop_without_shutdown();
9895        _result
9896    }
9897
9898    /// Similar to "send" but does not shutdown the channel if an error occurs.
9899    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9900        let _result = self.send_raw();
9901        self.drop_without_shutdown();
9902        _result
9903    }
9904
9905    fn send_raw(&self) -> Result<(), fidl::Error> {
9906        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9907            (),
9908            self.tx_id,
9909            0x79a7073fd18edbdf,
9910            fidl::encoding::DynamicFlags::empty(),
9911        )
9912    }
9913}
9914
9915mod internal {
9916    use super::*;
9917
9918    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleOneWayRequest {
9919        type Borrowed<'a> = &'a mut Self;
9920        fn take_or_borrow<'a>(
9921            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
9922        ) -> Self::Borrowed<'a> {
9923            value
9924        }
9925    }
9926
9927    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleOneWayRequest {
9928        type Owned = Self;
9929
9930        #[inline(always)]
9931        fn inline_align(_context: fidl::encoding::Context) -> usize {
9932            4
9933        }
9934
9935        #[inline(always)]
9936        fn inline_size(_context: fidl::encoding::Context) -> usize {
9937            4
9938        }
9939    }
9940
9941    unsafe impl
9942        fidl::encoding::Encode<
9943            RunnerCallFlexibleOneWayRequest,
9944            fidl::encoding::DefaultFuchsiaResourceDialect,
9945        > for &mut RunnerCallFlexibleOneWayRequest
9946    {
9947        #[inline]
9948        unsafe fn encode(
9949            self,
9950            encoder: &mut fidl::encoding::Encoder<
9951                '_,
9952                fidl::encoding::DefaultFuchsiaResourceDialect,
9953            >,
9954            offset: usize,
9955            _depth: fidl::encoding::Depth,
9956        ) -> fidl::Result<()> {
9957            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
9958            // Delegate to tuple encoding.
9959            fidl::encoding::Encode::<RunnerCallFlexibleOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
9960                (
9961                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
9962                ),
9963                encoder, offset, _depth
9964            )
9965        }
9966    }
9967    unsafe impl<
9968        T0: fidl::encoding::Encode<
9969                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9970                fidl::encoding::DefaultFuchsiaResourceDialect,
9971            >,
9972    >
9973        fidl::encoding::Encode<
9974            RunnerCallFlexibleOneWayRequest,
9975            fidl::encoding::DefaultFuchsiaResourceDialect,
9976        > for (T0,)
9977    {
9978        #[inline]
9979        unsafe fn encode(
9980            self,
9981            encoder: &mut fidl::encoding::Encoder<
9982                '_,
9983                fidl::encoding::DefaultFuchsiaResourceDialect,
9984            >,
9985            offset: usize,
9986            depth: fidl::encoding::Depth,
9987        ) -> fidl::Result<()> {
9988            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
9989            // Zero out padding regions. There's no need to apply masks
9990            // because the unmasked parts will be overwritten by fields.
9991            // Write the fields.
9992            self.0.encode(encoder, offset + 0, depth)?;
9993            Ok(())
9994        }
9995    }
9996
9997    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
9998        for RunnerCallFlexibleOneWayRequest
9999    {
10000        #[inline(always)]
10001        fn new_empty() -> Self {
10002            Self {
10003                target: fidl::new_empty!(
10004                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10005                    fidl::encoding::DefaultFuchsiaResourceDialect
10006                ),
10007            }
10008        }
10009
10010        #[inline]
10011        unsafe fn decode(
10012            &mut self,
10013            decoder: &mut fidl::encoding::Decoder<
10014                '_,
10015                fidl::encoding::DefaultFuchsiaResourceDialect,
10016            >,
10017            offset: usize,
10018            _depth: fidl::encoding::Depth,
10019        ) -> fidl::Result<()> {
10020            decoder.debug_check_bounds::<Self>(offset);
10021            // Verify that padding bytes are zero.
10022            fidl::decode!(
10023                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10024                fidl::encoding::DefaultFuchsiaResourceDialect,
10025                &mut self.target,
10026                decoder,
10027                offset + 0,
10028                _depth
10029            )?;
10030            Ok(())
10031        }
10032    }
10033
10034    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10035        type Borrowed<'a> = &'a mut Self;
10036        fn take_or_borrow<'a>(
10037            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10038        ) -> Self::Borrowed<'a> {
10039            value
10040        }
10041    }
10042
10043    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10044        type Owned = Self;
10045
10046        #[inline(always)]
10047        fn inline_align(_context: fidl::encoding::Context) -> usize {
10048            4
10049        }
10050
10051        #[inline(always)]
10052        fn inline_size(_context: fidl::encoding::Context) -> usize {
10053            4
10054        }
10055    }
10056
10057    unsafe impl
10058        fidl::encoding::Encode<
10059            RunnerCallFlexibleTwoWayErrRequest,
10060            fidl::encoding::DefaultFuchsiaResourceDialect,
10061        > for &mut RunnerCallFlexibleTwoWayErrRequest
10062    {
10063        #[inline]
10064        unsafe fn encode(
10065            self,
10066            encoder: &mut fidl::encoding::Encoder<
10067                '_,
10068                fidl::encoding::DefaultFuchsiaResourceDialect,
10069            >,
10070            offset: usize,
10071            _depth: fidl::encoding::Depth,
10072        ) -> fidl::Result<()> {
10073            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10074            // Delegate to tuple encoding.
10075            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10076                (
10077                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10078                ),
10079                encoder, offset, _depth
10080            )
10081        }
10082    }
10083    unsafe impl<
10084        T0: fidl::encoding::Encode<
10085                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10086                fidl::encoding::DefaultFuchsiaResourceDialect,
10087            >,
10088    >
10089        fidl::encoding::Encode<
10090            RunnerCallFlexibleTwoWayErrRequest,
10091            fidl::encoding::DefaultFuchsiaResourceDialect,
10092        > for (T0,)
10093    {
10094        #[inline]
10095        unsafe fn encode(
10096            self,
10097            encoder: &mut fidl::encoding::Encoder<
10098                '_,
10099                fidl::encoding::DefaultFuchsiaResourceDialect,
10100            >,
10101            offset: usize,
10102            depth: fidl::encoding::Depth,
10103        ) -> fidl::Result<()> {
10104            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10105            // Zero out padding regions. There's no need to apply masks
10106            // because the unmasked parts will be overwritten by fields.
10107            // Write the fields.
10108            self.0.encode(encoder, offset + 0, depth)?;
10109            Ok(())
10110        }
10111    }
10112
10113    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10114        for RunnerCallFlexibleTwoWayErrRequest
10115    {
10116        #[inline(always)]
10117        fn new_empty() -> Self {
10118            Self {
10119                target: fidl::new_empty!(
10120                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10121                    fidl::encoding::DefaultFuchsiaResourceDialect
10122                ),
10123            }
10124        }
10125
10126        #[inline]
10127        unsafe fn decode(
10128            &mut self,
10129            decoder: &mut fidl::encoding::Decoder<
10130                '_,
10131                fidl::encoding::DefaultFuchsiaResourceDialect,
10132            >,
10133            offset: usize,
10134            _depth: fidl::encoding::Depth,
10135        ) -> fidl::Result<()> {
10136            decoder.debug_check_bounds::<Self>(offset);
10137            // Verify that padding bytes are zero.
10138            fidl::decode!(
10139                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10140                fidl::encoding::DefaultFuchsiaResourceDialect,
10141                &mut self.target,
10142                decoder,
10143                offset + 0,
10144                _depth
10145            )?;
10146            Ok(())
10147        }
10148    }
10149
10150    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10151        type Borrowed<'a> = &'a mut Self;
10152        fn take_or_borrow<'a>(
10153            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10154        ) -> Self::Borrowed<'a> {
10155            value
10156        }
10157    }
10158
10159    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10160        type Owned = Self;
10161
10162        #[inline(always)]
10163        fn inline_align(_context: fidl::encoding::Context) -> usize {
10164            4
10165        }
10166
10167        #[inline(always)]
10168        fn inline_size(_context: fidl::encoding::Context) -> usize {
10169            4
10170        }
10171    }
10172
10173    unsafe impl
10174        fidl::encoding::Encode<
10175            RunnerCallFlexibleTwoWayFieldsErrRequest,
10176            fidl::encoding::DefaultFuchsiaResourceDialect,
10177        > for &mut RunnerCallFlexibleTwoWayFieldsErrRequest
10178    {
10179        #[inline]
10180        unsafe fn encode(
10181            self,
10182            encoder: &mut fidl::encoding::Encoder<
10183                '_,
10184                fidl::encoding::DefaultFuchsiaResourceDialect,
10185            >,
10186            offset: usize,
10187            _depth: fidl::encoding::Depth,
10188        ) -> fidl::Result<()> {
10189            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10190            // Delegate to tuple encoding.
10191            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10192                (
10193                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10194                ),
10195                encoder, offset, _depth
10196            )
10197        }
10198    }
10199    unsafe impl<
10200        T0: fidl::encoding::Encode<
10201                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10202                fidl::encoding::DefaultFuchsiaResourceDialect,
10203            >,
10204    >
10205        fidl::encoding::Encode<
10206            RunnerCallFlexibleTwoWayFieldsErrRequest,
10207            fidl::encoding::DefaultFuchsiaResourceDialect,
10208        > for (T0,)
10209    {
10210        #[inline]
10211        unsafe fn encode(
10212            self,
10213            encoder: &mut fidl::encoding::Encoder<
10214                '_,
10215                fidl::encoding::DefaultFuchsiaResourceDialect,
10216            >,
10217            offset: usize,
10218            depth: fidl::encoding::Depth,
10219        ) -> fidl::Result<()> {
10220            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10221            // Zero out padding regions. There's no need to apply masks
10222            // because the unmasked parts will be overwritten by fields.
10223            // Write the fields.
10224            self.0.encode(encoder, offset + 0, depth)?;
10225            Ok(())
10226        }
10227    }
10228
10229    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10230        for RunnerCallFlexibleTwoWayFieldsErrRequest
10231    {
10232        #[inline(always)]
10233        fn new_empty() -> Self {
10234            Self {
10235                target: fidl::new_empty!(
10236                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10237                    fidl::encoding::DefaultFuchsiaResourceDialect
10238                ),
10239            }
10240        }
10241
10242        #[inline]
10243        unsafe fn decode(
10244            &mut self,
10245            decoder: &mut fidl::encoding::Decoder<
10246                '_,
10247                fidl::encoding::DefaultFuchsiaResourceDialect,
10248            >,
10249            offset: usize,
10250            _depth: fidl::encoding::Depth,
10251        ) -> fidl::Result<()> {
10252            decoder.debug_check_bounds::<Self>(offset);
10253            // Verify that padding bytes are zero.
10254            fidl::decode!(
10255                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10256                fidl::encoding::DefaultFuchsiaResourceDialect,
10257                &mut self.target,
10258                decoder,
10259                offset + 0,
10260                _depth
10261            )?;
10262            Ok(())
10263        }
10264    }
10265
10266    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10267        type Borrowed<'a> = &'a mut Self;
10268        fn take_or_borrow<'a>(
10269            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10270        ) -> Self::Borrowed<'a> {
10271            value
10272        }
10273    }
10274
10275    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10276        type Owned = Self;
10277
10278        #[inline(always)]
10279        fn inline_align(_context: fidl::encoding::Context) -> usize {
10280            4
10281        }
10282
10283        #[inline(always)]
10284        fn inline_size(_context: fidl::encoding::Context) -> usize {
10285            4
10286        }
10287    }
10288
10289    unsafe impl
10290        fidl::encoding::Encode<
10291            RunnerCallFlexibleTwoWayFieldsRequest,
10292            fidl::encoding::DefaultFuchsiaResourceDialect,
10293        > for &mut RunnerCallFlexibleTwoWayFieldsRequest
10294    {
10295        #[inline]
10296        unsafe fn encode(
10297            self,
10298            encoder: &mut fidl::encoding::Encoder<
10299                '_,
10300                fidl::encoding::DefaultFuchsiaResourceDialect,
10301            >,
10302            offset: usize,
10303            _depth: fidl::encoding::Depth,
10304        ) -> fidl::Result<()> {
10305            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10306            // Delegate to tuple encoding.
10307            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10308                (
10309                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10310                ),
10311                encoder, offset, _depth
10312            )
10313        }
10314    }
10315    unsafe impl<
10316        T0: fidl::encoding::Encode<
10317                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10318                fidl::encoding::DefaultFuchsiaResourceDialect,
10319            >,
10320    >
10321        fidl::encoding::Encode<
10322            RunnerCallFlexibleTwoWayFieldsRequest,
10323            fidl::encoding::DefaultFuchsiaResourceDialect,
10324        > for (T0,)
10325    {
10326        #[inline]
10327        unsafe fn encode(
10328            self,
10329            encoder: &mut fidl::encoding::Encoder<
10330                '_,
10331                fidl::encoding::DefaultFuchsiaResourceDialect,
10332            >,
10333            offset: usize,
10334            depth: fidl::encoding::Depth,
10335        ) -> fidl::Result<()> {
10336            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10337            // Zero out padding regions. There's no need to apply masks
10338            // because the unmasked parts will be overwritten by fields.
10339            // Write the fields.
10340            self.0.encode(encoder, offset + 0, depth)?;
10341            Ok(())
10342        }
10343    }
10344
10345    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10346        for RunnerCallFlexibleTwoWayFieldsRequest
10347    {
10348        #[inline(always)]
10349        fn new_empty() -> Self {
10350            Self {
10351                target: fidl::new_empty!(
10352                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10353                    fidl::encoding::DefaultFuchsiaResourceDialect
10354                ),
10355            }
10356        }
10357
10358        #[inline]
10359        unsafe fn decode(
10360            &mut self,
10361            decoder: &mut fidl::encoding::Decoder<
10362                '_,
10363                fidl::encoding::DefaultFuchsiaResourceDialect,
10364            >,
10365            offset: usize,
10366            _depth: fidl::encoding::Depth,
10367        ) -> fidl::Result<()> {
10368            decoder.debug_check_bounds::<Self>(offset);
10369            // Verify that padding bytes are zero.
10370            fidl::decode!(
10371                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10372                fidl::encoding::DefaultFuchsiaResourceDialect,
10373                &mut self.target,
10374                decoder,
10375                offset + 0,
10376                _depth
10377            )?;
10378            Ok(())
10379        }
10380    }
10381
10382    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayRequest {
10383        type Borrowed<'a> = &'a mut Self;
10384        fn take_or_borrow<'a>(
10385            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10386        ) -> Self::Borrowed<'a> {
10387            value
10388        }
10389    }
10390
10391    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayRequest {
10392        type Owned = Self;
10393
10394        #[inline(always)]
10395        fn inline_align(_context: fidl::encoding::Context) -> usize {
10396            4
10397        }
10398
10399        #[inline(always)]
10400        fn inline_size(_context: fidl::encoding::Context) -> usize {
10401            4
10402        }
10403    }
10404
10405    unsafe impl
10406        fidl::encoding::Encode<
10407            RunnerCallFlexibleTwoWayRequest,
10408            fidl::encoding::DefaultFuchsiaResourceDialect,
10409        > for &mut RunnerCallFlexibleTwoWayRequest
10410    {
10411        #[inline]
10412        unsafe fn encode(
10413            self,
10414            encoder: &mut fidl::encoding::Encoder<
10415                '_,
10416                fidl::encoding::DefaultFuchsiaResourceDialect,
10417            >,
10418            offset: usize,
10419            _depth: fidl::encoding::Depth,
10420        ) -> fidl::Result<()> {
10421            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10422            // Delegate to tuple encoding.
10423            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10424                (
10425                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10426                ),
10427                encoder, offset, _depth
10428            )
10429        }
10430    }
10431    unsafe impl<
10432        T0: fidl::encoding::Encode<
10433                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10434                fidl::encoding::DefaultFuchsiaResourceDialect,
10435            >,
10436    >
10437        fidl::encoding::Encode<
10438            RunnerCallFlexibleTwoWayRequest,
10439            fidl::encoding::DefaultFuchsiaResourceDialect,
10440        > for (T0,)
10441    {
10442        #[inline]
10443        unsafe fn encode(
10444            self,
10445            encoder: &mut fidl::encoding::Encoder<
10446                '_,
10447                fidl::encoding::DefaultFuchsiaResourceDialect,
10448            >,
10449            offset: usize,
10450            depth: fidl::encoding::Depth,
10451        ) -> fidl::Result<()> {
10452            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10453            // Zero out padding regions. There's no need to apply masks
10454            // because the unmasked parts will be overwritten by fields.
10455            // Write the fields.
10456            self.0.encode(encoder, offset + 0, depth)?;
10457            Ok(())
10458        }
10459    }
10460
10461    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10462        for RunnerCallFlexibleTwoWayRequest
10463    {
10464        #[inline(always)]
10465        fn new_empty() -> Self {
10466            Self {
10467                target: fidl::new_empty!(
10468                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10469                    fidl::encoding::DefaultFuchsiaResourceDialect
10470                ),
10471            }
10472        }
10473
10474        #[inline]
10475        unsafe fn decode(
10476            &mut self,
10477            decoder: &mut fidl::encoding::Decoder<
10478                '_,
10479                fidl::encoding::DefaultFuchsiaResourceDialect,
10480            >,
10481            offset: usize,
10482            _depth: fidl::encoding::Depth,
10483        ) -> fidl::Result<()> {
10484            decoder.debug_check_bounds::<Self>(offset);
10485            // Verify that padding bytes are zero.
10486            fidl::decode!(
10487                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10488                fidl::encoding::DefaultFuchsiaResourceDialect,
10489                &mut self.target,
10490                decoder,
10491                offset + 0,
10492                _depth
10493            )?;
10494            Ok(())
10495        }
10496    }
10497
10498    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayNoRequestRequest {
10499        type Borrowed<'a> = &'a mut Self;
10500        fn take_or_borrow<'a>(
10501            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10502        ) -> Self::Borrowed<'a> {
10503            value
10504        }
10505    }
10506
10507    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayNoRequestRequest {
10508        type Owned = Self;
10509
10510        #[inline(always)]
10511        fn inline_align(_context: fidl::encoding::Context) -> usize {
10512            4
10513        }
10514
10515        #[inline(always)]
10516        fn inline_size(_context: fidl::encoding::Context) -> usize {
10517            4
10518        }
10519    }
10520
10521    unsafe impl
10522        fidl::encoding::Encode<
10523            RunnerCallOneWayNoRequestRequest,
10524            fidl::encoding::DefaultFuchsiaResourceDialect,
10525        > for &mut RunnerCallOneWayNoRequestRequest
10526    {
10527        #[inline]
10528        unsafe fn encode(
10529            self,
10530            encoder: &mut fidl::encoding::Encoder<
10531                '_,
10532                fidl::encoding::DefaultFuchsiaResourceDialect,
10533            >,
10534            offset: usize,
10535            _depth: fidl::encoding::Depth,
10536        ) -> fidl::Result<()> {
10537            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10538            // Delegate to tuple encoding.
10539            fidl::encoding::Encode::<RunnerCallOneWayNoRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10540                (
10541                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10542                ),
10543                encoder, offset, _depth
10544            )
10545        }
10546    }
10547    unsafe impl<
10548        T0: fidl::encoding::Encode<
10549                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10550                fidl::encoding::DefaultFuchsiaResourceDialect,
10551            >,
10552    >
10553        fidl::encoding::Encode<
10554            RunnerCallOneWayNoRequestRequest,
10555            fidl::encoding::DefaultFuchsiaResourceDialect,
10556        > for (T0,)
10557    {
10558        #[inline]
10559        unsafe fn encode(
10560            self,
10561            encoder: &mut fidl::encoding::Encoder<
10562                '_,
10563                fidl::encoding::DefaultFuchsiaResourceDialect,
10564            >,
10565            offset: usize,
10566            depth: fidl::encoding::Depth,
10567        ) -> fidl::Result<()> {
10568            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10569            // Zero out padding regions. There's no need to apply masks
10570            // because the unmasked parts will be overwritten by fields.
10571            // Write the fields.
10572            self.0.encode(encoder, offset + 0, depth)?;
10573            Ok(())
10574        }
10575    }
10576
10577    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10578        for RunnerCallOneWayNoRequestRequest
10579    {
10580        #[inline(always)]
10581        fn new_empty() -> Self {
10582            Self {
10583                target: fidl::new_empty!(
10584                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10585                    fidl::encoding::DefaultFuchsiaResourceDialect
10586                ),
10587            }
10588        }
10589
10590        #[inline]
10591        unsafe fn decode(
10592            &mut self,
10593            decoder: &mut fidl::encoding::Decoder<
10594                '_,
10595                fidl::encoding::DefaultFuchsiaResourceDialect,
10596            >,
10597            offset: usize,
10598            _depth: fidl::encoding::Depth,
10599        ) -> fidl::Result<()> {
10600            decoder.debug_check_bounds::<Self>(offset);
10601            // Verify that padding bytes are zero.
10602            fidl::decode!(
10603                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10604                fidl::encoding::DefaultFuchsiaResourceDialect,
10605                &mut self.target,
10606                decoder,
10607                offset + 0,
10608                _depth
10609            )?;
10610            Ok(())
10611        }
10612    }
10613
10614    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayStructRequestRequest {
10615        type Borrowed<'a> = &'a mut Self;
10616        fn take_or_borrow<'a>(
10617            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10618        ) -> Self::Borrowed<'a> {
10619            value
10620        }
10621    }
10622
10623    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayStructRequestRequest {
10624        type Owned = Self;
10625
10626        #[inline(always)]
10627        fn inline_align(_context: fidl::encoding::Context) -> usize {
10628            4
10629        }
10630
10631        #[inline(always)]
10632        fn inline_size(_context: fidl::encoding::Context) -> usize {
10633            8
10634        }
10635    }
10636
10637    unsafe impl
10638        fidl::encoding::Encode<
10639            RunnerCallOneWayStructRequestRequest,
10640            fidl::encoding::DefaultFuchsiaResourceDialect,
10641        > for &mut RunnerCallOneWayStructRequestRequest
10642    {
10643        #[inline]
10644        unsafe fn encode(
10645            self,
10646            encoder: &mut fidl::encoding::Encoder<
10647                '_,
10648                fidl::encoding::DefaultFuchsiaResourceDialect,
10649            >,
10650            offset: usize,
10651            _depth: fidl::encoding::Depth,
10652        ) -> fidl::Result<()> {
10653            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10654            // Delegate to tuple encoding.
10655            fidl::encoding::Encode::<RunnerCallOneWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10656                (
10657                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10658                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10659                ),
10660                encoder, offset, _depth
10661            )
10662        }
10663    }
10664    unsafe impl<
10665        T0: fidl::encoding::Encode<
10666                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10667                fidl::encoding::DefaultFuchsiaResourceDialect,
10668            >,
10669        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10670    >
10671        fidl::encoding::Encode<
10672            RunnerCallOneWayStructRequestRequest,
10673            fidl::encoding::DefaultFuchsiaResourceDialect,
10674        > for (T0, T1)
10675    {
10676        #[inline]
10677        unsafe fn encode(
10678            self,
10679            encoder: &mut fidl::encoding::Encoder<
10680                '_,
10681                fidl::encoding::DefaultFuchsiaResourceDialect,
10682            >,
10683            offset: usize,
10684            depth: fidl::encoding::Depth,
10685        ) -> fidl::Result<()> {
10686            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10687            // Zero out padding regions. There's no need to apply masks
10688            // because the unmasked parts will be overwritten by fields.
10689            // Write the fields.
10690            self.0.encode(encoder, offset + 0, depth)?;
10691            self.1.encode(encoder, offset + 4, depth)?;
10692            Ok(())
10693        }
10694    }
10695
10696    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10697        for RunnerCallOneWayStructRequestRequest
10698    {
10699        #[inline(always)]
10700        fn new_empty() -> Self {
10701            Self {
10702                target: fidl::new_empty!(
10703                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10704                    fidl::encoding::DefaultFuchsiaResourceDialect
10705                ),
10706                request: fidl::new_empty!(
10707                    NonEmptyPayload,
10708                    fidl::encoding::DefaultFuchsiaResourceDialect
10709                ),
10710            }
10711        }
10712
10713        #[inline]
10714        unsafe fn decode(
10715            &mut self,
10716            decoder: &mut fidl::encoding::Decoder<
10717                '_,
10718                fidl::encoding::DefaultFuchsiaResourceDialect,
10719            >,
10720            offset: usize,
10721            _depth: fidl::encoding::Depth,
10722        ) -> fidl::Result<()> {
10723            decoder.debug_check_bounds::<Self>(offset);
10724            // Verify that padding bytes are zero.
10725            fidl::decode!(
10726                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10727                fidl::encoding::DefaultFuchsiaResourceDialect,
10728                &mut self.target,
10729                decoder,
10730                offset + 0,
10731                _depth
10732            )?;
10733            fidl::decode!(
10734                NonEmptyPayload,
10735                fidl::encoding::DefaultFuchsiaResourceDialect,
10736                &mut self.request,
10737                decoder,
10738                offset + 4,
10739                _depth
10740            )?;
10741            Ok(())
10742        }
10743    }
10744
10745    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayTableRequestRequest {
10746        type Borrowed<'a> = &'a mut Self;
10747        fn take_or_borrow<'a>(
10748            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10749        ) -> Self::Borrowed<'a> {
10750            value
10751        }
10752    }
10753
10754    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayTableRequestRequest {
10755        type Owned = Self;
10756
10757        #[inline(always)]
10758        fn inline_align(_context: fidl::encoding::Context) -> usize {
10759            8
10760        }
10761
10762        #[inline(always)]
10763        fn inline_size(_context: fidl::encoding::Context) -> usize {
10764            24
10765        }
10766    }
10767
10768    unsafe impl
10769        fidl::encoding::Encode<
10770            RunnerCallOneWayTableRequestRequest,
10771            fidl::encoding::DefaultFuchsiaResourceDialect,
10772        > for &mut RunnerCallOneWayTableRequestRequest
10773    {
10774        #[inline]
10775        unsafe fn encode(
10776            self,
10777            encoder: &mut fidl::encoding::Encoder<
10778                '_,
10779                fidl::encoding::DefaultFuchsiaResourceDialect,
10780            >,
10781            offset: usize,
10782            _depth: fidl::encoding::Depth,
10783        ) -> fidl::Result<()> {
10784            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10785            // Delegate to tuple encoding.
10786            fidl::encoding::Encode::<RunnerCallOneWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10787                (
10788                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10789                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10790                ),
10791                encoder, offset, _depth
10792            )
10793        }
10794    }
10795    unsafe impl<
10796        T0: fidl::encoding::Encode<
10797                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10798                fidl::encoding::DefaultFuchsiaResourceDialect,
10799            >,
10800        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10801    >
10802        fidl::encoding::Encode<
10803            RunnerCallOneWayTableRequestRequest,
10804            fidl::encoding::DefaultFuchsiaResourceDialect,
10805        > for (T0, T1)
10806    {
10807        #[inline]
10808        unsafe fn encode(
10809            self,
10810            encoder: &mut fidl::encoding::Encoder<
10811                '_,
10812                fidl::encoding::DefaultFuchsiaResourceDialect,
10813            >,
10814            offset: usize,
10815            depth: fidl::encoding::Depth,
10816        ) -> fidl::Result<()> {
10817            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10818            // Zero out padding regions. There's no need to apply masks
10819            // because the unmasked parts will be overwritten by fields.
10820            unsafe {
10821                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10822                (ptr as *mut u64).write_unaligned(0);
10823            }
10824            // Write the fields.
10825            self.0.encode(encoder, offset + 0, depth)?;
10826            self.1.encode(encoder, offset + 8, depth)?;
10827            Ok(())
10828        }
10829    }
10830
10831    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10832        for RunnerCallOneWayTableRequestRequest
10833    {
10834        #[inline(always)]
10835        fn new_empty() -> Self {
10836            Self {
10837                target: fidl::new_empty!(
10838                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10839                    fidl::encoding::DefaultFuchsiaResourceDialect
10840                ),
10841                request: fidl::new_empty!(
10842                    TablePayload,
10843                    fidl::encoding::DefaultFuchsiaResourceDialect
10844                ),
10845            }
10846        }
10847
10848        #[inline]
10849        unsafe fn decode(
10850            &mut self,
10851            decoder: &mut fidl::encoding::Decoder<
10852                '_,
10853                fidl::encoding::DefaultFuchsiaResourceDialect,
10854            >,
10855            offset: usize,
10856            _depth: fidl::encoding::Depth,
10857        ) -> fidl::Result<()> {
10858            decoder.debug_check_bounds::<Self>(offset);
10859            // Verify that padding bytes are zero.
10860            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
10861            let padval = unsafe { (ptr as *const u64).read_unaligned() };
10862            let mask = 0xffffffff00000000u64;
10863            let maskedval = padval & mask;
10864            if maskedval != 0 {
10865                return Err(fidl::Error::NonZeroPadding {
10866                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
10867                });
10868            }
10869            fidl::decode!(
10870                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10871                fidl::encoding::DefaultFuchsiaResourceDialect,
10872                &mut self.target,
10873                decoder,
10874                offset + 0,
10875                _depth
10876            )?;
10877            fidl::decode!(
10878                TablePayload,
10879                fidl::encoding::DefaultFuchsiaResourceDialect,
10880                &mut self.request,
10881                decoder,
10882                offset + 8,
10883                _depth
10884            )?;
10885            Ok(())
10886        }
10887    }
10888
10889    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayUnionRequestRequest {
10890        type Borrowed<'a> = &'a mut Self;
10891        fn take_or_borrow<'a>(
10892            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10893        ) -> Self::Borrowed<'a> {
10894            value
10895        }
10896    }
10897
10898    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayUnionRequestRequest {
10899        type Owned = Self;
10900
10901        #[inline(always)]
10902        fn inline_align(_context: fidl::encoding::Context) -> usize {
10903            8
10904        }
10905
10906        #[inline(always)]
10907        fn inline_size(_context: fidl::encoding::Context) -> usize {
10908            24
10909        }
10910    }
10911
10912    unsafe impl
10913        fidl::encoding::Encode<
10914            RunnerCallOneWayUnionRequestRequest,
10915            fidl::encoding::DefaultFuchsiaResourceDialect,
10916        > for &mut RunnerCallOneWayUnionRequestRequest
10917    {
10918        #[inline]
10919        unsafe fn encode(
10920            self,
10921            encoder: &mut fidl::encoding::Encoder<
10922                '_,
10923                fidl::encoding::DefaultFuchsiaResourceDialect,
10924            >,
10925            offset: usize,
10926            _depth: fidl::encoding::Depth,
10927        ) -> fidl::Result<()> {
10928            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
10929            // Delegate to tuple encoding.
10930            fidl::encoding::Encode::<RunnerCallOneWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10931                (
10932                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10933                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10934                ),
10935                encoder, offset, _depth
10936            )
10937        }
10938    }
10939    unsafe impl<
10940        T0: fidl::encoding::Encode<
10941                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10942                fidl::encoding::DefaultFuchsiaResourceDialect,
10943            >,
10944        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10945    >
10946        fidl::encoding::Encode<
10947            RunnerCallOneWayUnionRequestRequest,
10948            fidl::encoding::DefaultFuchsiaResourceDialect,
10949        > for (T0, T1)
10950    {
10951        #[inline]
10952        unsafe fn encode(
10953            self,
10954            encoder: &mut fidl::encoding::Encoder<
10955                '_,
10956                fidl::encoding::DefaultFuchsiaResourceDialect,
10957            >,
10958            offset: usize,
10959            depth: fidl::encoding::Depth,
10960        ) -> fidl::Result<()> {
10961            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
10962            // Zero out padding regions. There's no need to apply masks
10963            // because the unmasked parts will be overwritten by fields.
10964            unsafe {
10965                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10966                (ptr as *mut u64).write_unaligned(0);
10967            }
10968            // Write the fields.
10969            self.0.encode(encoder, offset + 0, depth)?;
10970            self.1.encode(encoder, offset + 8, depth)?;
10971            Ok(())
10972        }
10973    }
10974
10975    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10976        for RunnerCallOneWayUnionRequestRequest
10977    {
10978        #[inline(always)]
10979        fn new_empty() -> Self {
10980            Self {
10981                target: fidl::new_empty!(
10982                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10983                    fidl::encoding::DefaultFuchsiaResourceDialect
10984                ),
10985                request: fidl::new_empty!(
10986                    UnionPayload,
10987                    fidl::encoding::DefaultFuchsiaResourceDialect
10988                ),
10989            }
10990        }
10991
10992        #[inline]
10993        unsafe fn decode(
10994            &mut self,
10995            decoder: &mut fidl::encoding::Decoder<
10996                '_,
10997                fidl::encoding::DefaultFuchsiaResourceDialect,
10998            >,
10999            offset: usize,
11000            _depth: fidl::encoding::Depth,
11001        ) -> fidl::Result<()> {
11002            decoder.debug_check_bounds::<Self>(offset);
11003            // Verify that padding bytes are zero.
11004            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
11005            let padval = unsafe { (ptr as *const u64).read_unaligned() };
11006            let mask = 0xffffffff00000000u64;
11007            let maskedval = padval & mask;
11008            if maskedval != 0 {
11009                return Err(fidl::Error::NonZeroPadding {
11010                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
11011                });
11012            }
11013            fidl::decode!(
11014                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11015                fidl::encoding::DefaultFuchsiaResourceDialect,
11016                &mut self.target,
11017                decoder,
11018                offset + 0,
11019                _depth
11020            )?;
11021            fidl::decode!(
11022                UnionPayload,
11023                fidl::encoding::DefaultFuchsiaResourceDialect,
11024                &mut self.request,
11025                decoder,
11026                offset + 8,
11027                _depth
11028            )?;
11029            Ok(())
11030        }
11031    }
11032
11033    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictOneWayRequest {
11034        type Borrowed<'a> = &'a mut Self;
11035        fn take_or_borrow<'a>(
11036            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11037        ) -> Self::Borrowed<'a> {
11038            value
11039        }
11040    }
11041
11042    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictOneWayRequest {
11043        type Owned = Self;
11044
11045        #[inline(always)]
11046        fn inline_align(_context: fidl::encoding::Context) -> usize {
11047            4
11048        }
11049
11050        #[inline(always)]
11051        fn inline_size(_context: fidl::encoding::Context) -> usize {
11052            4
11053        }
11054    }
11055
11056    unsafe impl
11057        fidl::encoding::Encode<
11058            RunnerCallStrictOneWayRequest,
11059            fidl::encoding::DefaultFuchsiaResourceDialect,
11060        > for &mut RunnerCallStrictOneWayRequest
11061    {
11062        #[inline]
11063        unsafe fn encode(
11064            self,
11065            encoder: &mut fidl::encoding::Encoder<
11066                '_,
11067                fidl::encoding::DefaultFuchsiaResourceDialect,
11068            >,
11069            offset: usize,
11070            _depth: fidl::encoding::Depth,
11071        ) -> fidl::Result<()> {
11072            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11073            // Delegate to tuple encoding.
11074            fidl::encoding::Encode::<RunnerCallStrictOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11075                (
11076                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11077                ),
11078                encoder, offset, _depth
11079            )
11080        }
11081    }
11082    unsafe impl<
11083        T0: fidl::encoding::Encode<
11084                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11085                fidl::encoding::DefaultFuchsiaResourceDialect,
11086            >,
11087    >
11088        fidl::encoding::Encode<
11089            RunnerCallStrictOneWayRequest,
11090            fidl::encoding::DefaultFuchsiaResourceDialect,
11091        > for (T0,)
11092    {
11093        #[inline]
11094        unsafe fn encode(
11095            self,
11096            encoder: &mut fidl::encoding::Encoder<
11097                '_,
11098                fidl::encoding::DefaultFuchsiaResourceDialect,
11099            >,
11100            offset: usize,
11101            depth: fidl::encoding::Depth,
11102        ) -> fidl::Result<()> {
11103            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11104            // Zero out padding regions. There's no need to apply masks
11105            // because the unmasked parts will be overwritten by fields.
11106            // Write the fields.
11107            self.0.encode(encoder, offset + 0, depth)?;
11108            Ok(())
11109        }
11110    }
11111
11112    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11113        for RunnerCallStrictOneWayRequest
11114    {
11115        #[inline(always)]
11116        fn new_empty() -> Self {
11117            Self {
11118                target: fidl::new_empty!(
11119                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11120                    fidl::encoding::DefaultFuchsiaResourceDialect
11121                ),
11122            }
11123        }
11124
11125        #[inline]
11126        unsafe fn decode(
11127            &mut self,
11128            decoder: &mut fidl::encoding::Decoder<
11129                '_,
11130                fidl::encoding::DefaultFuchsiaResourceDialect,
11131            >,
11132            offset: usize,
11133            _depth: fidl::encoding::Depth,
11134        ) -> fidl::Result<()> {
11135            decoder.debug_check_bounds::<Self>(offset);
11136            // Verify that padding bytes are zero.
11137            fidl::decode!(
11138                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11139                fidl::encoding::DefaultFuchsiaResourceDialect,
11140                &mut self.target,
11141                decoder,
11142                offset + 0,
11143                _depth
11144            )?;
11145            Ok(())
11146        }
11147    }
11148
11149    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayErrRequest {
11150        type Borrowed<'a> = &'a mut Self;
11151        fn take_or_borrow<'a>(
11152            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11153        ) -> Self::Borrowed<'a> {
11154            value
11155        }
11156    }
11157
11158    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayErrRequest {
11159        type Owned = Self;
11160
11161        #[inline(always)]
11162        fn inline_align(_context: fidl::encoding::Context) -> usize {
11163            4
11164        }
11165
11166        #[inline(always)]
11167        fn inline_size(_context: fidl::encoding::Context) -> usize {
11168            4
11169        }
11170    }
11171
11172    unsafe impl
11173        fidl::encoding::Encode<
11174            RunnerCallStrictTwoWayErrRequest,
11175            fidl::encoding::DefaultFuchsiaResourceDialect,
11176        > for &mut RunnerCallStrictTwoWayErrRequest
11177    {
11178        #[inline]
11179        unsafe fn encode(
11180            self,
11181            encoder: &mut fidl::encoding::Encoder<
11182                '_,
11183                fidl::encoding::DefaultFuchsiaResourceDialect,
11184            >,
11185            offset: usize,
11186            _depth: fidl::encoding::Depth,
11187        ) -> fidl::Result<()> {
11188            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11189            // Delegate to tuple encoding.
11190            fidl::encoding::Encode::<RunnerCallStrictTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11191                (
11192                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11193                ),
11194                encoder, offset, _depth
11195            )
11196        }
11197    }
11198    unsafe impl<
11199        T0: fidl::encoding::Encode<
11200                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11201                fidl::encoding::DefaultFuchsiaResourceDialect,
11202            >,
11203    >
11204        fidl::encoding::Encode<
11205            RunnerCallStrictTwoWayErrRequest,
11206            fidl::encoding::DefaultFuchsiaResourceDialect,
11207        > for (T0,)
11208    {
11209        #[inline]
11210        unsafe fn encode(
11211            self,
11212            encoder: &mut fidl::encoding::Encoder<
11213                '_,
11214                fidl::encoding::DefaultFuchsiaResourceDialect,
11215            >,
11216            offset: usize,
11217            depth: fidl::encoding::Depth,
11218        ) -> fidl::Result<()> {
11219            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11220            // Zero out padding regions. There's no need to apply masks
11221            // because the unmasked parts will be overwritten by fields.
11222            // Write the fields.
11223            self.0.encode(encoder, offset + 0, depth)?;
11224            Ok(())
11225        }
11226    }
11227
11228    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11229        for RunnerCallStrictTwoWayErrRequest
11230    {
11231        #[inline(always)]
11232        fn new_empty() -> Self {
11233            Self {
11234                target: fidl::new_empty!(
11235                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11236                    fidl::encoding::DefaultFuchsiaResourceDialect
11237                ),
11238            }
11239        }
11240
11241        #[inline]
11242        unsafe fn decode(
11243            &mut self,
11244            decoder: &mut fidl::encoding::Decoder<
11245                '_,
11246                fidl::encoding::DefaultFuchsiaResourceDialect,
11247            >,
11248            offset: usize,
11249            _depth: fidl::encoding::Depth,
11250        ) -> fidl::Result<()> {
11251            decoder.debug_check_bounds::<Self>(offset);
11252            // Verify that padding bytes are zero.
11253            fidl::decode!(
11254                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11255                fidl::encoding::DefaultFuchsiaResourceDialect,
11256                &mut self.target,
11257                decoder,
11258                offset + 0,
11259                _depth
11260            )?;
11261            Ok(())
11262        }
11263    }
11264
11265    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11266        type Borrowed<'a> = &'a mut Self;
11267        fn take_or_borrow<'a>(
11268            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11269        ) -> Self::Borrowed<'a> {
11270            value
11271        }
11272    }
11273
11274    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11275        type Owned = Self;
11276
11277        #[inline(always)]
11278        fn inline_align(_context: fidl::encoding::Context) -> usize {
11279            4
11280        }
11281
11282        #[inline(always)]
11283        fn inline_size(_context: fidl::encoding::Context) -> usize {
11284            4
11285        }
11286    }
11287
11288    unsafe impl
11289        fidl::encoding::Encode<
11290            RunnerCallStrictTwoWayFieldsErrRequest,
11291            fidl::encoding::DefaultFuchsiaResourceDialect,
11292        > for &mut RunnerCallStrictTwoWayFieldsErrRequest
11293    {
11294        #[inline]
11295        unsafe fn encode(
11296            self,
11297            encoder: &mut fidl::encoding::Encoder<
11298                '_,
11299                fidl::encoding::DefaultFuchsiaResourceDialect,
11300            >,
11301            offset: usize,
11302            _depth: fidl::encoding::Depth,
11303        ) -> fidl::Result<()> {
11304            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11305            // Delegate to tuple encoding.
11306            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11307                (
11308                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11309                ),
11310                encoder, offset, _depth
11311            )
11312        }
11313    }
11314    unsafe impl<
11315        T0: fidl::encoding::Encode<
11316                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11317                fidl::encoding::DefaultFuchsiaResourceDialect,
11318            >,
11319    >
11320        fidl::encoding::Encode<
11321            RunnerCallStrictTwoWayFieldsErrRequest,
11322            fidl::encoding::DefaultFuchsiaResourceDialect,
11323        > for (T0,)
11324    {
11325        #[inline]
11326        unsafe fn encode(
11327            self,
11328            encoder: &mut fidl::encoding::Encoder<
11329                '_,
11330                fidl::encoding::DefaultFuchsiaResourceDialect,
11331            >,
11332            offset: usize,
11333            depth: fidl::encoding::Depth,
11334        ) -> fidl::Result<()> {
11335            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11336            // Zero out padding regions. There's no need to apply masks
11337            // because the unmasked parts will be overwritten by fields.
11338            // Write the fields.
11339            self.0.encode(encoder, offset + 0, depth)?;
11340            Ok(())
11341        }
11342    }
11343
11344    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11345        for RunnerCallStrictTwoWayFieldsErrRequest
11346    {
11347        #[inline(always)]
11348        fn new_empty() -> Self {
11349            Self {
11350                target: fidl::new_empty!(
11351                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11352                    fidl::encoding::DefaultFuchsiaResourceDialect
11353                ),
11354            }
11355        }
11356
11357        #[inline]
11358        unsafe fn decode(
11359            &mut self,
11360            decoder: &mut fidl::encoding::Decoder<
11361                '_,
11362                fidl::encoding::DefaultFuchsiaResourceDialect,
11363            >,
11364            offset: usize,
11365            _depth: fidl::encoding::Depth,
11366        ) -> fidl::Result<()> {
11367            decoder.debug_check_bounds::<Self>(offset);
11368            // Verify that padding bytes are zero.
11369            fidl::decode!(
11370                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11371                fidl::encoding::DefaultFuchsiaResourceDialect,
11372                &mut self.target,
11373                decoder,
11374                offset + 0,
11375                _depth
11376            )?;
11377            Ok(())
11378        }
11379    }
11380
11381    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11382        type Borrowed<'a> = &'a mut Self;
11383        fn take_or_borrow<'a>(
11384            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11385        ) -> Self::Borrowed<'a> {
11386            value
11387        }
11388    }
11389
11390    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11391        type Owned = Self;
11392
11393        #[inline(always)]
11394        fn inline_align(_context: fidl::encoding::Context) -> usize {
11395            4
11396        }
11397
11398        #[inline(always)]
11399        fn inline_size(_context: fidl::encoding::Context) -> usize {
11400            4
11401        }
11402    }
11403
11404    unsafe impl
11405        fidl::encoding::Encode<
11406            RunnerCallStrictTwoWayFieldsRequest,
11407            fidl::encoding::DefaultFuchsiaResourceDialect,
11408        > for &mut RunnerCallStrictTwoWayFieldsRequest
11409    {
11410        #[inline]
11411        unsafe fn encode(
11412            self,
11413            encoder: &mut fidl::encoding::Encoder<
11414                '_,
11415                fidl::encoding::DefaultFuchsiaResourceDialect,
11416            >,
11417            offset: usize,
11418            _depth: fidl::encoding::Depth,
11419        ) -> fidl::Result<()> {
11420            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11421            // Delegate to tuple encoding.
11422            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11423                (
11424                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11425                ),
11426                encoder, offset, _depth
11427            )
11428        }
11429    }
11430    unsafe impl<
11431        T0: fidl::encoding::Encode<
11432                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11433                fidl::encoding::DefaultFuchsiaResourceDialect,
11434            >,
11435    >
11436        fidl::encoding::Encode<
11437            RunnerCallStrictTwoWayFieldsRequest,
11438            fidl::encoding::DefaultFuchsiaResourceDialect,
11439        > for (T0,)
11440    {
11441        #[inline]
11442        unsafe fn encode(
11443            self,
11444            encoder: &mut fidl::encoding::Encoder<
11445                '_,
11446                fidl::encoding::DefaultFuchsiaResourceDialect,
11447            >,
11448            offset: usize,
11449            depth: fidl::encoding::Depth,
11450        ) -> fidl::Result<()> {
11451            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11452            // Zero out padding regions. There's no need to apply masks
11453            // because the unmasked parts will be overwritten by fields.
11454            // Write the fields.
11455            self.0.encode(encoder, offset + 0, depth)?;
11456            Ok(())
11457        }
11458    }
11459
11460    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11461        for RunnerCallStrictTwoWayFieldsRequest
11462    {
11463        #[inline(always)]
11464        fn new_empty() -> Self {
11465            Self {
11466                target: fidl::new_empty!(
11467                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11468                    fidl::encoding::DefaultFuchsiaResourceDialect
11469                ),
11470            }
11471        }
11472
11473        #[inline]
11474        unsafe fn decode(
11475            &mut self,
11476            decoder: &mut fidl::encoding::Decoder<
11477                '_,
11478                fidl::encoding::DefaultFuchsiaResourceDialect,
11479            >,
11480            offset: usize,
11481            _depth: fidl::encoding::Depth,
11482        ) -> fidl::Result<()> {
11483            decoder.debug_check_bounds::<Self>(offset);
11484            // Verify that padding bytes are zero.
11485            fidl::decode!(
11486                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11487                fidl::encoding::DefaultFuchsiaResourceDialect,
11488                &mut self.target,
11489                decoder,
11490                offset + 0,
11491                _depth
11492            )?;
11493            Ok(())
11494        }
11495    }
11496
11497    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayRequest {
11498        type Borrowed<'a> = &'a mut Self;
11499        fn take_or_borrow<'a>(
11500            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11501        ) -> Self::Borrowed<'a> {
11502            value
11503        }
11504    }
11505
11506    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayRequest {
11507        type Owned = Self;
11508
11509        #[inline(always)]
11510        fn inline_align(_context: fidl::encoding::Context) -> usize {
11511            4
11512        }
11513
11514        #[inline(always)]
11515        fn inline_size(_context: fidl::encoding::Context) -> usize {
11516            4
11517        }
11518    }
11519
11520    unsafe impl
11521        fidl::encoding::Encode<
11522            RunnerCallStrictTwoWayRequest,
11523            fidl::encoding::DefaultFuchsiaResourceDialect,
11524        > for &mut RunnerCallStrictTwoWayRequest
11525    {
11526        #[inline]
11527        unsafe fn encode(
11528            self,
11529            encoder: &mut fidl::encoding::Encoder<
11530                '_,
11531                fidl::encoding::DefaultFuchsiaResourceDialect,
11532            >,
11533            offset: usize,
11534            _depth: fidl::encoding::Depth,
11535        ) -> fidl::Result<()> {
11536            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11537            // Delegate to tuple encoding.
11538            fidl::encoding::Encode::<RunnerCallStrictTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11539                (
11540                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11541                ),
11542                encoder, offset, _depth
11543            )
11544        }
11545    }
11546    unsafe impl<
11547        T0: fidl::encoding::Encode<
11548                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11549                fidl::encoding::DefaultFuchsiaResourceDialect,
11550            >,
11551    >
11552        fidl::encoding::Encode<
11553            RunnerCallStrictTwoWayRequest,
11554            fidl::encoding::DefaultFuchsiaResourceDialect,
11555        > for (T0,)
11556    {
11557        #[inline]
11558        unsafe fn encode(
11559            self,
11560            encoder: &mut fidl::encoding::Encoder<
11561                '_,
11562                fidl::encoding::DefaultFuchsiaResourceDialect,
11563            >,
11564            offset: usize,
11565            depth: fidl::encoding::Depth,
11566        ) -> fidl::Result<()> {
11567            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11568            // Zero out padding regions. There's no need to apply masks
11569            // because the unmasked parts will be overwritten by fields.
11570            // Write the fields.
11571            self.0.encode(encoder, offset + 0, depth)?;
11572            Ok(())
11573        }
11574    }
11575
11576    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11577        for RunnerCallStrictTwoWayRequest
11578    {
11579        #[inline(always)]
11580        fn new_empty() -> Self {
11581            Self {
11582                target: fidl::new_empty!(
11583                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11584                    fidl::encoding::DefaultFuchsiaResourceDialect
11585                ),
11586            }
11587        }
11588
11589        #[inline]
11590        unsafe fn decode(
11591            &mut self,
11592            decoder: &mut fidl::encoding::Decoder<
11593                '_,
11594                fidl::encoding::DefaultFuchsiaResourceDialect,
11595            >,
11596            offset: usize,
11597            _depth: fidl::encoding::Depth,
11598        ) -> fidl::Result<()> {
11599            decoder.debug_check_bounds::<Self>(offset);
11600            // Verify that padding bytes are zero.
11601            fidl::decode!(
11602                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11603                fidl::encoding::DefaultFuchsiaResourceDialect,
11604                &mut self.target,
11605                decoder,
11606                offset + 0,
11607                _depth
11608            )?;
11609            Ok(())
11610        }
11611    }
11612
11613    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayNoPayloadRequest {
11614        type Borrowed<'a> = &'a mut Self;
11615        fn take_or_borrow<'a>(
11616            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11617        ) -> Self::Borrowed<'a> {
11618            value
11619        }
11620    }
11621
11622    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayNoPayloadRequest {
11623        type Owned = Self;
11624
11625        #[inline(always)]
11626        fn inline_align(_context: fidl::encoding::Context) -> usize {
11627            4
11628        }
11629
11630        #[inline(always)]
11631        fn inline_size(_context: fidl::encoding::Context) -> usize {
11632            4
11633        }
11634    }
11635
11636    unsafe impl
11637        fidl::encoding::Encode<
11638            RunnerCallTwoWayNoPayloadRequest,
11639            fidl::encoding::DefaultFuchsiaResourceDialect,
11640        > for &mut RunnerCallTwoWayNoPayloadRequest
11641    {
11642        #[inline]
11643        unsafe fn encode(
11644            self,
11645            encoder: &mut fidl::encoding::Encoder<
11646                '_,
11647                fidl::encoding::DefaultFuchsiaResourceDialect,
11648            >,
11649            offset: usize,
11650            _depth: fidl::encoding::Depth,
11651        ) -> fidl::Result<()> {
11652            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11653            // Delegate to tuple encoding.
11654            fidl::encoding::Encode::<RunnerCallTwoWayNoPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11655                (
11656                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11657                ),
11658                encoder, offset, _depth
11659            )
11660        }
11661    }
11662    unsafe impl<
11663        T0: fidl::encoding::Encode<
11664                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11665                fidl::encoding::DefaultFuchsiaResourceDialect,
11666            >,
11667    >
11668        fidl::encoding::Encode<
11669            RunnerCallTwoWayNoPayloadRequest,
11670            fidl::encoding::DefaultFuchsiaResourceDialect,
11671        > for (T0,)
11672    {
11673        #[inline]
11674        unsafe fn encode(
11675            self,
11676            encoder: &mut fidl::encoding::Encoder<
11677                '_,
11678                fidl::encoding::DefaultFuchsiaResourceDialect,
11679            >,
11680            offset: usize,
11681            depth: fidl::encoding::Depth,
11682        ) -> fidl::Result<()> {
11683            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11684            // Zero out padding regions. There's no need to apply masks
11685            // because the unmasked parts will be overwritten by fields.
11686            // Write the fields.
11687            self.0.encode(encoder, offset + 0, depth)?;
11688            Ok(())
11689        }
11690    }
11691
11692    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11693        for RunnerCallTwoWayNoPayloadRequest
11694    {
11695        #[inline(always)]
11696        fn new_empty() -> Self {
11697            Self {
11698                target: fidl::new_empty!(
11699                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11700                    fidl::encoding::DefaultFuchsiaResourceDialect
11701                ),
11702            }
11703        }
11704
11705        #[inline]
11706        unsafe fn decode(
11707            &mut self,
11708            decoder: &mut fidl::encoding::Decoder<
11709                '_,
11710                fidl::encoding::DefaultFuchsiaResourceDialect,
11711            >,
11712            offset: usize,
11713            _depth: fidl::encoding::Depth,
11714        ) -> fidl::Result<()> {
11715            decoder.debug_check_bounds::<Self>(offset);
11716            // Verify that padding bytes are zero.
11717            fidl::decode!(
11718                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11719                fidl::encoding::DefaultFuchsiaResourceDialect,
11720                &mut self.target,
11721                decoder,
11722                offset + 0,
11723                _depth
11724            )?;
11725            Ok(())
11726        }
11727    }
11728
11729    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11730        type Borrowed<'a> = &'a mut Self;
11731        fn take_or_borrow<'a>(
11732            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11733        ) -> Self::Borrowed<'a> {
11734            value
11735        }
11736    }
11737
11738    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11739        type Owned = Self;
11740
11741        #[inline(always)]
11742        fn inline_align(_context: fidl::encoding::Context) -> usize {
11743            4
11744        }
11745
11746        #[inline(always)]
11747        fn inline_size(_context: fidl::encoding::Context) -> usize {
11748            4
11749        }
11750    }
11751
11752    unsafe impl
11753        fidl::encoding::Encode<
11754            RunnerCallTwoWayStructPayloadErrRequest,
11755            fidl::encoding::DefaultFuchsiaResourceDialect,
11756        > for &mut RunnerCallTwoWayStructPayloadErrRequest
11757    {
11758        #[inline]
11759        unsafe fn encode(
11760            self,
11761            encoder: &mut fidl::encoding::Encoder<
11762                '_,
11763                fidl::encoding::DefaultFuchsiaResourceDialect,
11764            >,
11765            offset: usize,
11766            _depth: fidl::encoding::Depth,
11767        ) -> fidl::Result<()> {
11768            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11769            // Delegate to tuple encoding.
11770            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11771                (
11772                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11773                ),
11774                encoder, offset, _depth
11775            )
11776        }
11777    }
11778    unsafe impl<
11779        T0: fidl::encoding::Encode<
11780                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11781                fidl::encoding::DefaultFuchsiaResourceDialect,
11782            >,
11783    >
11784        fidl::encoding::Encode<
11785            RunnerCallTwoWayStructPayloadErrRequest,
11786            fidl::encoding::DefaultFuchsiaResourceDialect,
11787        > for (T0,)
11788    {
11789        #[inline]
11790        unsafe fn encode(
11791            self,
11792            encoder: &mut fidl::encoding::Encoder<
11793                '_,
11794                fidl::encoding::DefaultFuchsiaResourceDialect,
11795            >,
11796            offset: usize,
11797            depth: fidl::encoding::Depth,
11798        ) -> fidl::Result<()> {
11799            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11800            // Zero out padding regions. There's no need to apply masks
11801            // because the unmasked parts will be overwritten by fields.
11802            // Write the fields.
11803            self.0.encode(encoder, offset + 0, depth)?;
11804            Ok(())
11805        }
11806    }
11807
11808    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11809        for RunnerCallTwoWayStructPayloadErrRequest
11810    {
11811        #[inline(always)]
11812        fn new_empty() -> Self {
11813            Self {
11814                target: fidl::new_empty!(
11815                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11816                    fidl::encoding::DefaultFuchsiaResourceDialect
11817                ),
11818            }
11819        }
11820
11821        #[inline]
11822        unsafe fn decode(
11823            &mut self,
11824            decoder: &mut fidl::encoding::Decoder<
11825                '_,
11826                fidl::encoding::DefaultFuchsiaResourceDialect,
11827            >,
11828            offset: usize,
11829            _depth: fidl::encoding::Depth,
11830        ) -> fidl::Result<()> {
11831            decoder.debug_check_bounds::<Self>(offset);
11832            // Verify that padding bytes are zero.
11833            fidl::decode!(
11834                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11835                fidl::encoding::DefaultFuchsiaResourceDialect,
11836                &mut self.target,
11837                decoder,
11838                offset + 0,
11839                _depth
11840            )?;
11841            Ok(())
11842        }
11843    }
11844
11845    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadRequest {
11846        type Borrowed<'a> = &'a mut Self;
11847        fn take_or_borrow<'a>(
11848            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11849        ) -> Self::Borrowed<'a> {
11850            value
11851        }
11852    }
11853
11854    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadRequest {
11855        type Owned = Self;
11856
11857        #[inline(always)]
11858        fn inline_align(_context: fidl::encoding::Context) -> usize {
11859            4
11860        }
11861
11862        #[inline(always)]
11863        fn inline_size(_context: fidl::encoding::Context) -> usize {
11864            4
11865        }
11866    }
11867
11868    unsafe impl
11869        fidl::encoding::Encode<
11870            RunnerCallTwoWayStructPayloadRequest,
11871            fidl::encoding::DefaultFuchsiaResourceDialect,
11872        > for &mut RunnerCallTwoWayStructPayloadRequest
11873    {
11874        #[inline]
11875        unsafe fn encode(
11876            self,
11877            encoder: &mut fidl::encoding::Encoder<
11878                '_,
11879                fidl::encoding::DefaultFuchsiaResourceDialect,
11880            >,
11881            offset: usize,
11882            _depth: fidl::encoding::Depth,
11883        ) -> fidl::Result<()> {
11884            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11885            // Delegate to tuple encoding.
11886            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11887                (
11888                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11889                ),
11890                encoder, offset, _depth
11891            )
11892        }
11893    }
11894    unsafe impl<
11895        T0: fidl::encoding::Encode<
11896                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11897                fidl::encoding::DefaultFuchsiaResourceDialect,
11898            >,
11899    >
11900        fidl::encoding::Encode<
11901            RunnerCallTwoWayStructPayloadRequest,
11902            fidl::encoding::DefaultFuchsiaResourceDialect,
11903        > for (T0,)
11904    {
11905        #[inline]
11906        unsafe fn encode(
11907            self,
11908            encoder: &mut fidl::encoding::Encoder<
11909                '_,
11910                fidl::encoding::DefaultFuchsiaResourceDialect,
11911            >,
11912            offset: usize,
11913            depth: fidl::encoding::Depth,
11914        ) -> fidl::Result<()> {
11915            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11916            // Zero out padding regions. There's no need to apply masks
11917            // because the unmasked parts will be overwritten by fields.
11918            // Write the fields.
11919            self.0.encode(encoder, offset + 0, depth)?;
11920            Ok(())
11921        }
11922    }
11923
11924    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11925        for RunnerCallTwoWayStructPayloadRequest
11926    {
11927        #[inline(always)]
11928        fn new_empty() -> Self {
11929            Self {
11930                target: fidl::new_empty!(
11931                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11932                    fidl::encoding::DefaultFuchsiaResourceDialect
11933                ),
11934            }
11935        }
11936
11937        #[inline]
11938        unsafe fn decode(
11939            &mut self,
11940            decoder: &mut fidl::encoding::Decoder<
11941                '_,
11942                fidl::encoding::DefaultFuchsiaResourceDialect,
11943            >,
11944            offset: usize,
11945            _depth: fidl::encoding::Depth,
11946        ) -> fidl::Result<()> {
11947            decoder.debug_check_bounds::<Self>(offset);
11948            // Verify that padding bytes are zero.
11949            fidl::decode!(
11950                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11951                fidl::encoding::DefaultFuchsiaResourceDialect,
11952                &mut self.target,
11953                decoder,
11954                offset + 0,
11955                _depth
11956            )?;
11957            Ok(())
11958        }
11959    }
11960
11961    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructRequestRequest {
11962        type Borrowed<'a> = &'a mut Self;
11963        fn take_or_borrow<'a>(
11964            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11965        ) -> Self::Borrowed<'a> {
11966            value
11967        }
11968    }
11969
11970    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructRequestRequest {
11971        type Owned = Self;
11972
11973        #[inline(always)]
11974        fn inline_align(_context: fidl::encoding::Context) -> usize {
11975            4
11976        }
11977
11978        #[inline(always)]
11979        fn inline_size(_context: fidl::encoding::Context) -> usize {
11980            8
11981        }
11982    }
11983
11984    unsafe impl
11985        fidl::encoding::Encode<
11986            RunnerCallTwoWayStructRequestRequest,
11987            fidl::encoding::DefaultFuchsiaResourceDialect,
11988        > for &mut RunnerCallTwoWayStructRequestRequest
11989    {
11990        #[inline]
11991        unsafe fn encode(
11992            self,
11993            encoder: &mut fidl::encoding::Encoder<
11994                '_,
11995                fidl::encoding::DefaultFuchsiaResourceDialect,
11996            >,
11997            offset: usize,
11998            _depth: fidl::encoding::Depth,
11999        ) -> fidl::Result<()> {
12000            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
12001            // Delegate to tuple encoding.
12002            fidl::encoding::Encode::<RunnerCallTwoWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12003                (
12004                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12005                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12006                ),
12007                encoder, offset, _depth
12008            )
12009        }
12010    }
12011    unsafe impl<
12012        T0: fidl::encoding::Encode<
12013                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12014                fidl::encoding::DefaultFuchsiaResourceDialect,
12015            >,
12016        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12017    >
12018        fidl::encoding::Encode<
12019            RunnerCallTwoWayStructRequestRequest,
12020            fidl::encoding::DefaultFuchsiaResourceDialect,
12021        > for (T0, T1)
12022    {
12023        #[inline]
12024        unsafe fn encode(
12025            self,
12026            encoder: &mut fidl::encoding::Encoder<
12027                '_,
12028                fidl::encoding::DefaultFuchsiaResourceDialect,
12029            >,
12030            offset: usize,
12031            depth: fidl::encoding::Depth,
12032        ) -> fidl::Result<()> {
12033            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
12034            // Zero out padding regions. There's no need to apply masks
12035            // because the unmasked parts will be overwritten by fields.
12036            // Write the fields.
12037            self.0.encode(encoder, offset + 0, depth)?;
12038            self.1.encode(encoder, offset + 4, depth)?;
12039            Ok(())
12040        }
12041    }
12042
12043    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12044        for RunnerCallTwoWayStructRequestRequest
12045    {
12046        #[inline(always)]
12047        fn new_empty() -> Self {
12048            Self {
12049                target: fidl::new_empty!(
12050                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12051                    fidl::encoding::DefaultFuchsiaResourceDialect
12052                ),
12053                request: fidl::new_empty!(
12054                    NonEmptyPayload,
12055                    fidl::encoding::DefaultFuchsiaResourceDialect
12056                ),
12057            }
12058        }
12059
12060        #[inline]
12061        unsafe fn decode(
12062            &mut self,
12063            decoder: &mut fidl::encoding::Decoder<
12064                '_,
12065                fidl::encoding::DefaultFuchsiaResourceDialect,
12066            >,
12067            offset: usize,
12068            _depth: fidl::encoding::Depth,
12069        ) -> fidl::Result<()> {
12070            decoder.debug_check_bounds::<Self>(offset);
12071            // Verify that padding bytes are zero.
12072            fidl::decode!(
12073                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12074                fidl::encoding::DefaultFuchsiaResourceDialect,
12075                &mut self.target,
12076                decoder,
12077                offset + 0,
12078                _depth
12079            )?;
12080            fidl::decode!(
12081                NonEmptyPayload,
12082                fidl::encoding::DefaultFuchsiaResourceDialect,
12083                &mut self.request,
12084                decoder,
12085                offset + 4,
12086                _depth
12087            )?;
12088            Ok(())
12089        }
12090    }
12091
12092    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTablePayloadRequest {
12093        type Borrowed<'a> = &'a mut Self;
12094        fn take_or_borrow<'a>(
12095            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12096        ) -> Self::Borrowed<'a> {
12097            value
12098        }
12099    }
12100
12101    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTablePayloadRequest {
12102        type Owned = Self;
12103
12104        #[inline(always)]
12105        fn inline_align(_context: fidl::encoding::Context) -> usize {
12106            4
12107        }
12108
12109        #[inline(always)]
12110        fn inline_size(_context: fidl::encoding::Context) -> usize {
12111            4
12112        }
12113    }
12114
12115    unsafe impl
12116        fidl::encoding::Encode<
12117            RunnerCallTwoWayTablePayloadRequest,
12118            fidl::encoding::DefaultFuchsiaResourceDialect,
12119        > for &mut RunnerCallTwoWayTablePayloadRequest
12120    {
12121        #[inline]
12122        unsafe fn encode(
12123            self,
12124            encoder: &mut fidl::encoding::Encoder<
12125                '_,
12126                fidl::encoding::DefaultFuchsiaResourceDialect,
12127            >,
12128            offset: usize,
12129            _depth: fidl::encoding::Depth,
12130        ) -> fidl::Result<()> {
12131            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12132            // Delegate to tuple encoding.
12133            fidl::encoding::Encode::<RunnerCallTwoWayTablePayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12134                (
12135                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12136                ),
12137                encoder, offset, _depth
12138            )
12139        }
12140    }
12141    unsafe impl<
12142        T0: fidl::encoding::Encode<
12143                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12144                fidl::encoding::DefaultFuchsiaResourceDialect,
12145            >,
12146    >
12147        fidl::encoding::Encode<
12148            RunnerCallTwoWayTablePayloadRequest,
12149            fidl::encoding::DefaultFuchsiaResourceDialect,
12150        > for (T0,)
12151    {
12152        #[inline]
12153        unsafe fn encode(
12154            self,
12155            encoder: &mut fidl::encoding::Encoder<
12156                '_,
12157                fidl::encoding::DefaultFuchsiaResourceDialect,
12158            >,
12159            offset: usize,
12160            depth: fidl::encoding::Depth,
12161        ) -> fidl::Result<()> {
12162            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12163            // Zero out padding regions. There's no need to apply masks
12164            // because the unmasked parts will be overwritten by fields.
12165            // Write the fields.
12166            self.0.encode(encoder, offset + 0, depth)?;
12167            Ok(())
12168        }
12169    }
12170
12171    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12172        for RunnerCallTwoWayTablePayloadRequest
12173    {
12174        #[inline(always)]
12175        fn new_empty() -> Self {
12176            Self {
12177                target: fidl::new_empty!(
12178                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12179                    fidl::encoding::DefaultFuchsiaResourceDialect
12180                ),
12181            }
12182        }
12183
12184        #[inline]
12185        unsafe fn decode(
12186            &mut self,
12187            decoder: &mut fidl::encoding::Decoder<
12188                '_,
12189                fidl::encoding::DefaultFuchsiaResourceDialect,
12190            >,
12191            offset: usize,
12192            _depth: fidl::encoding::Depth,
12193        ) -> fidl::Result<()> {
12194            decoder.debug_check_bounds::<Self>(offset);
12195            // Verify that padding bytes are zero.
12196            fidl::decode!(
12197                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12198                fidl::encoding::DefaultFuchsiaResourceDialect,
12199                &mut self.target,
12200                decoder,
12201                offset + 0,
12202                _depth
12203            )?;
12204            Ok(())
12205        }
12206    }
12207
12208    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTableRequestRequest {
12209        type Borrowed<'a> = &'a mut Self;
12210        fn take_or_borrow<'a>(
12211            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12212        ) -> Self::Borrowed<'a> {
12213            value
12214        }
12215    }
12216
12217    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTableRequestRequest {
12218        type Owned = Self;
12219
12220        #[inline(always)]
12221        fn inline_align(_context: fidl::encoding::Context) -> usize {
12222            8
12223        }
12224
12225        #[inline(always)]
12226        fn inline_size(_context: fidl::encoding::Context) -> usize {
12227            24
12228        }
12229    }
12230
12231    unsafe impl
12232        fidl::encoding::Encode<
12233            RunnerCallTwoWayTableRequestRequest,
12234            fidl::encoding::DefaultFuchsiaResourceDialect,
12235        > for &mut RunnerCallTwoWayTableRequestRequest
12236    {
12237        #[inline]
12238        unsafe fn encode(
12239            self,
12240            encoder: &mut fidl::encoding::Encoder<
12241                '_,
12242                fidl::encoding::DefaultFuchsiaResourceDialect,
12243            >,
12244            offset: usize,
12245            _depth: fidl::encoding::Depth,
12246        ) -> fidl::Result<()> {
12247            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12248            // Delegate to tuple encoding.
12249            fidl::encoding::Encode::<RunnerCallTwoWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12250                (
12251                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12252                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12253                ),
12254                encoder, offset, _depth
12255            )
12256        }
12257    }
12258    unsafe impl<
12259        T0: fidl::encoding::Encode<
12260                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12261                fidl::encoding::DefaultFuchsiaResourceDialect,
12262            >,
12263        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12264    >
12265        fidl::encoding::Encode<
12266            RunnerCallTwoWayTableRequestRequest,
12267            fidl::encoding::DefaultFuchsiaResourceDialect,
12268        > for (T0, T1)
12269    {
12270        #[inline]
12271        unsafe fn encode(
12272            self,
12273            encoder: &mut fidl::encoding::Encoder<
12274                '_,
12275                fidl::encoding::DefaultFuchsiaResourceDialect,
12276            >,
12277            offset: usize,
12278            depth: fidl::encoding::Depth,
12279        ) -> fidl::Result<()> {
12280            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12281            // Zero out padding regions. There's no need to apply masks
12282            // because the unmasked parts will be overwritten by fields.
12283            unsafe {
12284                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12285                (ptr as *mut u64).write_unaligned(0);
12286            }
12287            // Write the fields.
12288            self.0.encode(encoder, offset + 0, depth)?;
12289            self.1.encode(encoder, offset + 8, depth)?;
12290            Ok(())
12291        }
12292    }
12293
12294    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12295        for RunnerCallTwoWayTableRequestRequest
12296    {
12297        #[inline(always)]
12298        fn new_empty() -> Self {
12299            Self {
12300                target: fidl::new_empty!(
12301                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12302                    fidl::encoding::DefaultFuchsiaResourceDialect
12303                ),
12304                request: fidl::new_empty!(
12305                    TablePayload,
12306                    fidl::encoding::DefaultFuchsiaResourceDialect
12307                ),
12308            }
12309        }
12310
12311        #[inline]
12312        unsafe fn decode(
12313            &mut self,
12314            decoder: &mut fidl::encoding::Decoder<
12315                '_,
12316                fidl::encoding::DefaultFuchsiaResourceDialect,
12317            >,
12318            offset: usize,
12319            _depth: fidl::encoding::Depth,
12320        ) -> fidl::Result<()> {
12321            decoder.debug_check_bounds::<Self>(offset);
12322            // Verify that padding bytes are zero.
12323            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12324            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12325            let mask = 0xffffffff00000000u64;
12326            let maskedval = padval & mask;
12327            if maskedval != 0 {
12328                return Err(fidl::Error::NonZeroPadding {
12329                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12330                });
12331            }
12332            fidl::decode!(
12333                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12334                fidl::encoding::DefaultFuchsiaResourceDialect,
12335                &mut self.target,
12336                decoder,
12337                offset + 0,
12338                _depth
12339            )?;
12340            fidl::decode!(
12341                TablePayload,
12342                fidl::encoding::DefaultFuchsiaResourceDialect,
12343                &mut self.request,
12344                decoder,
12345                offset + 8,
12346                _depth
12347            )?;
12348            Ok(())
12349        }
12350    }
12351
12352    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12353        type Borrowed<'a> = &'a mut Self;
12354        fn take_or_borrow<'a>(
12355            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12356        ) -> Self::Borrowed<'a> {
12357            value
12358        }
12359    }
12360
12361    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12362        type Owned = Self;
12363
12364        #[inline(always)]
12365        fn inline_align(_context: fidl::encoding::Context) -> usize {
12366            4
12367        }
12368
12369        #[inline(always)]
12370        fn inline_size(_context: fidl::encoding::Context) -> usize {
12371            4
12372        }
12373    }
12374
12375    unsafe impl
12376        fidl::encoding::Encode<
12377            RunnerCallTwoWayUnionPayloadRequest,
12378            fidl::encoding::DefaultFuchsiaResourceDialect,
12379        > for &mut RunnerCallTwoWayUnionPayloadRequest
12380    {
12381        #[inline]
12382        unsafe fn encode(
12383            self,
12384            encoder: &mut fidl::encoding::Encoder<
12385                '_,
12386                fidl::encoding::DefaultFuchsiaResourceDialect,
12387            >,
12388            offset: usize,
12389            _depth: fidl::encoding::Depth,
12390        ) -> fidl::Result<()> {
12391            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12392            // Delegate to tuple encoding.
12393            fidl::encoding::Encode::<RunnerCallTwoWayUnionPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12394                (
12395                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12396                ),
12397                encoder, offset, _depth
12398            )
12399        }
12400    }
12401    unsafe impl<
12402        T0: fidl::encoding::Encode<
12403                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12404                fidl::encoding::DefaultFuchsiaResourceDialect,
12405            >,
12406    >
12407        fidl::encoding::Encode<
12408            RunnerCallTwoWayUnionPayloadRequest,
12409            fidl::encoding::DefaultFuchsiaResourceDialect,
12410        > for (T0,)
12411    {
12412        #[inline]
12413        unsafe fn encode(
12414            self,
12415            encoder: &mut fidl::encoding::Encoder<
12416                '_,
12417                fidl::encoding::DefaultFuchsiaResourceDialect,
12418            >,
12419            offset: usize,
12420            depth: fidl::encoding::Depth,
12421        ) -> fidl::Result<()> {
12422            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12423            // Zero out padding regions. There's no need to apply masks
12424            // because the unmasked parts will be overwritten by fields.
12425            // Write the fields.
12426            self.0.encode(encoder, offset + 0, depth)?;
12427            Ok(())
12428        }
12429    }
12430
12431    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12432        for RunnerCallTwoWayUnionPayloadRequest
12433    {
12434        #[inline(always)]
12435        fn new_empty() -> Self {
12436            Self {
12437                target: fidl::new_empty!(
12438                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12439                    fidl::encoding::DefaultFuchsiaResourceDialect
12440                ),
12441            }
12442        }
12443
12444        #[inline]
12445        unsafe fn decode(
12446            &mut self,
12447            decoder: &mut fidl::encoding::Decoder<
12448                '_,
12449                fidl::encoding::DefaultFuchsiaResourceDialect,
12450            >,
12451            offset: usize,
12452            _depth: fidl::encoding::Depth,
12453        ) -> fidl::Result<()> {
12454            decoder.debug_check_bounds::<Self>(offset);
12455            // Verify that padding bytes are zero.
12456            fidl::decode!(
12457                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12458                fidl::encoding::DefaultFuchsiaResourceDialect,
12459                &mut self.target,
12460                decoder,
12461                offset + 0,
12462                _depth
12463            )?;
12464            Ok(())
12465        }
12466    }
12467
12468    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionRequestRequest {
12469        type Borrowed<'a> = &'a mut Self;
12470        fn take_or_borrow<'a>(
12471            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12472        ) -> Self::Borrowed<'a> {
12473            value
12474        }
12475    }
12476
12477    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionRequestRequest {
12478        type Owned = Self;
12479
12480        #[inline(always)]
12481        fn inline_align(_context: fidl::encoding::Context) -> usize {
12482            8
12483        }
12484
12485        #[inline(always)]
12486        fn inline_size(_context: fidl::encoding::Context) -> usize {
12487            24
12488        }
12489    }
12490
12491    unsafe impl
12492        fidl::encoding::Encode<
12493            RunnerCallTwoWayUnionRequestRequest,
12494            fidl::encoding::DefaultFuchsiaResourceDialect,
12495        > for &mut RunnerCallTwoWayUnionRequestRequest
12496    {
12497        #[inline]
12498        unsafe fn encode(
12499            self,
12500            encoder: &mut fidl::encoding::Encoder<
12501                '_,
12502                fidl::encoding::DefaultFuchsiaResourceDialect,
12503            >,
12504            offset: usize,
12505            _depth: fidl::encoding::Depth,
12506        ) -> fidl::Result<()> {
12507            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12508            // Delegate to tuple encoding.
12509            fidl::encoding::Encode::<RunnerCallTwoWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12510                (
12511                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12512                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12513                ),
12514                encoder, offset, _depth
12515            )
12516        }
12517    }
12518    unsafe impl<
12519        T0: fidl::encoding::Encode<
12520                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12521                fidl::encoding::DefaultFuchsiaResourceDialect,
12522            >,
12523        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12524    >
12525        fidl::encoding::Encode<
12526            RunnerCallTwoWayUnionRequestRequest,
12527            fidl::encoding::DefaultFuchsiaResourceDialect,
12528        > for (T0, T1)
12529    {
12530        #[inline]
12531        unsafe fn encode(
12532            self,
12533            encoder: &mut fidl::encoding::Encoder<
12534                '_,
12535                fidl::encoding::DefaultFuchsiaResourceDialect,
12536            >,
12537            offset: usize,
12538            depth: fidl::encoding::Depth,
12539        ) -> fidl::Result<()> {
12540            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12541            // Zero out padding regions. There's no need to apply masks
12542            // because the unmasked parts will be overwritten by fields.
12543            unsafe {
12544                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12545                (ptr as *mut u64).write_unaligned(0);
12546            }
12547            // Write the fields.
12548            self.0.encode(encoder, offset + 0, depth)?;
12549            self.1.encode(encoder, offset + 8, depth)?;
12550            Ok(())
12551        }
12552    }
12553
12554    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12555        for RunnerCallTwoWayUnionRequestRequest
12556    {
12557        #[inline(always)]
12558        fn new_empty() -> Self {
12559            Self {
12560                target: fidl::new_empty!(
12561                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12562                    fidl::encoding::DefaultFuchsiaResourceDialect
12563                ),
12564                request: fidl::new_empty!(
12565                    UnionPayload,
12566                    fidl::encoding::DefaultFuchsiaResourceDialect
12567                ),
12568            }
12569        }
12570
12571        #[inline]
12572        unsafe fn decode(
12573            &mut self,
12574            decoder: &mut fidl::encoding::Decoder<
12575                '_,
12576                fidl::encoding::DefaultFuchsiaResourceDialect,
12577            >,
12578            offset: usize,
12579            _depth: fidl::encoding::Depth,
12580        ) -> fidl::Result<()> {
12581            decoder.debug_check_bounds::<Self>(offset);
12582            // Verify that padding bytes are zero.
12583            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12584            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12585            let mask = 0xffffffff00000000u64;
12586            let maskedval = padval & mask;
12587            if maskedval != 0 {
12588                return Err(fidl::Error::NonZeroPadding {
12589                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12590                });
12591            }
12592            fidl::decode!(
12593                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12594                fidl::encoding::DefaultFuchsiaResourceDialect,
12595                &mut self.target,
12596                decoder,
12597                offset + 0,
12598                _depth
12599            )?;
12600            fidl::decode!(
12601                UnionPayload,
12602                fidl::encoding::DefaultFuchsiaResourceDialect,
12603                &mut self.request,
12604                decoder,
12605                offset + 8,
12606                _depth
12607            )?;
12608            Ok(())
12609        }
12610    }
12611
12612    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveAjarEventsRequest {
12613        type Borrowed<'a> = &'a mut Self;
12614        fn take_or_borrow<'a>(
12615            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12616        ) -> Self::Borrowed<'a> {
12617            value
12618        }
12619    }
12620
12621    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveAjarEventsRequest {
12622        type Owned = Self;
12623
12624        #[inline(always)]
12625        fn inline_align(_context: fidl::encoding::Context) -> usize {
12626            4
12627        }
12628
12629        #[inline(always)]
12630        fn inline_size(_context: fidl::encoding::Context) -> usize {
12631            8
12632        }
12633    }
12634
12635    unsafe impl
12636        fidl::encoding::Encode<
12637            RunnerReceiveAjarEventsRequest,
12638            fidl::encoding::DefaultFuchsiaResourceDialect,
12639        > for &mut RunnerReceiveAjarEventsRequest
12640    {
12641        #[inline]
12642        unsafe fn encode(
12643            self,
12644            encoder: &mut fidl::encoding::Encoder<
12645                '_,
12646                fidl::encoding::DefaultFuchsiaResourceDialect,
12647            >,
12648            offset: usize,
12649            _depth: fidl::encoding::Depth,
12650        ) -> fidl::Result<()> {
12651            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12652            // Delegate to tuple encoding.
12653            fidl::encoding::Encode::<RunnerReceiveAjarEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12654                (
12655                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12656                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12657                ),
12658                encoder, offset, _depth
12659            )
12660        }
12661    }
12662    unsafe impl<
12663        T0: fidl::encoding::Encode<
12664                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12665                fidl::encoding::DefaultFuchsiaResourceDialect,
12666            >,
12667        T1: fidl::encoding::Encode<
12668                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12669                fidl::encoding::DefaultFuchsiaResourceDialect,
12670            >,
12671    >
12672        fidl::encoding::Encode<
12673            RunnerReceiveAjarEventsRequest,
12674            fidl::encoding::DefaultFuchsiaResourceDialect,
12675        > for (T0, T1)
12676    {
12677        #[inline]
12678        unsafe fn encode(
12679            self,
12680            encoder: &mut fidl::encoding::Encoder<
12681                '_,
12682                fidl::encoding::DefaultFuchsiaResourceDialect,
12683            >,
12684            offset: usize,
12685            depth: fidl::encoding::Depth,
12686        ) -> fidl::Result<()> {
12687            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12688            // Zero out padding regions. There's no need to apply masks
12689            // because the unmasked parts will be overwritten by fields.
12690            // Write the fields.
12691            self.0.encode(encoder, offset + 0, depth)?;
12692            self.1.encode(encoder, offset + 4, depth)?;
12693            Ok(())
12694        }
12695    }
12696
12697    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12698        for RunnerReceiveAjarEventsRequest
12699    {
12700        #[inline(always)]
12701        fn new_empty() -> Self {
12702            Self {
12703                target: fidl::new_empty!(
12704                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12705                    fidl::encoding::DefaultFuchsiaResourceDialect
12706                ),
12707                reporter: fidl::new_empty!(
12708                    fidl::encoding::Endpoint<
12709                        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
12710                    >,
12711                    fidl::encoding::DefaultFuchsiaResourceDialect
12712                ),
12713            }
12714        }
12715
12716        #[inline]
12717        unsafe fn decode(
12718            &mut self,
12719            decoder: &mut fidl::encoding::Decoder<
12720                '_,
12721                fidl::encoding::DefaultFuchsiaResourceDialect,
12722            >,
12723            offset: usize,
12724            _depth: fidl::encoding::Depth,
12725        ) -> fidl::Result<()> {
12726            decoder.debug_check_bounds::<Self>(offset);
12727            // Verify that padding bytes are zero.
12728            fidl::decode!(
12729                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12730                fidl::encoding::DefaultFuchsiaResourceDialect,
12731                &mut self.target,
12732                decoder,
12733                offset + 0,
12734                _depth
12735            )?;
12736            fidl::decode!(
12737                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12738                fidl::encoding::DefaultFuchsiaResourceDialect,
12739                &mut self.reporter,
12740                decoder,
12741                offset + 4,
12742                _depth
12743            )?;
12744            Ok(())
12745        }
12746    }
12747
12748    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveClosedEventsRequest {
12749        type Borrowed<'a> = &'a mut Self;
12750        fn take_or_borrow<'a>(
12751            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12752        ) -> Self::Borrowed<'a> {
12753            value
12754        }
12755    }
12756
12757    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveClosedEventsRequest {
12758        type Owned = Self;
12759
12760        #[inline(always)]
12761        fn inline_align(_context: fidl::encoding::Context) -> usize {
12762            4
12763        }
12764
12765        #[inline(always)]
12766        fn inline_size(_context: fidl::encoding::Context) -> usize {
12767            8
12768        }
12769    }
12770
12771    unsafe impl
12772        fidl::encoding::Encode<
12773            RunnerReceiveClosedEventsRequest,
12774            fidl::encoding::DefaultFuchsiaResourceDialect,
12775        > for &mut RunnerReceiveClosedEventsRequest
12776    {
12777        #[inline]
12778        unsafe fn encode(
12779            self,
12780            encoder: &mut fidl::encoding::Encoder<
12781                '_,
12782                fidl::encoding::DefaultFuchsiaResourceDialect,
12783            >,
12784            offset: usize,
12785            _depth: fidl::encoding::Depth,
12786        ) -> fidl::Result<()> {
12787            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12788            // Delegate to tuple encoding.
12789            fidl::encoding::Encode::<RunnerReceiveClosedEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12790                (
12791                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12792                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12793                ),
12794                encoder, offset, _depth
12795            )
12796        }
12797    }
12798    unsafe impl<
12799        T0: fidl::encoding::Encode<
12800                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12801                fidl::encoding::DefaultFuchsiaResourceDialect,
12802            >,
12803        T1: fidl::encoding::Encode<
12804                fidl::encoding::Endpoint<
12805                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12806                >,
12807                fidl::encoding::DefaultFuchsiaResourceDialect,
12808            >,
12809    >
12810        fidl::encoding::Encode<
12811            RunnerReceiveClosedEventsRequest,
12812            fidl::encoding::DefaultFuchsiaResourceDialect,
12813        > for (T0, T1)
12814    {
12815        #[inline]
12816        unsafe fn encode(
12817            self,
12818            encoder: &mut fidl::encoding::Encoder<
12819                '_,
12820                fidl::encoding::DefaultFuchsiaResourceDialect,
12821            >,
12822            offset: usize,
12823            depth: fidl::encoding::Depth,
12824        ) -> fidl::Result<()> {
12825            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12826            // Zero out padding regions. There's no need to apply masks
12827            // because the unmasked parts will be overwritten by fields.
12828            // Write the fields.
12829            self.0.encode(encoder, offset + 0, depth)?;
12830            self.1.encode(encoder, offset + 4, depth)?;
12831            Ok(())
12832        }
12833    }
12834
12835    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12836        for RunnerReceiveClosedEventsRequest
12837    {
12838        #[inline(always)]
12839        fn new_empty() -> Self {
12840            Self {
12841                target: fidl::new_empty!(
12842                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12843                    fidl::encoding::DefaultFuchsiaResourceDialect
12844                ),
12845                reporter: fidl::new_empty!(
12846                    fidl::encoding::Endpoint<
12847                        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12848                    >,
12849                    fidl::encoding::DefaultFuchsiaResourceDialect
12850                ),
12851            }
12852        }
12853
12854        #[inline]
12855        unsafe fn decode(
12856            &mut self,
12857            decoder: &mut fidl::encoding::Decoder<
12858                '_,
12859                fidl::encoding::DefaultFuchsiaResourceDialect,
12860            >,
12861            offset: usize,
12862            _depth: fidl::encoding::Depth,
12863        ) -> fidl::Result<()> {
12864            decoder.debug_check_bounds::<Self>(offset);
12865            // Verify that padding bytes are zero.
12866            fidl::decode!(
12867                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12868                fidl::encoding::DefaultFuchsiaResourceDialect,
12869                &mut self.target,
12870                decoder,
12871                offset + 0,
12872                _depth
12873            )?;
12874            fidl::decode!(
12875                fidl::encoding::Endpoint<
12876                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12877                >,
12878                fidl::encoding::DefaultFuchsiaResourceDialect,
12879                &mut self.reporter,
12880                decoder,
12881                offset + 4,
12882                _depth
12883            )?;
12884            Ok(())
12885        }
12886    }
12887
12888    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveOpenEventsRequest {
12889        type Borrowed<'a> = &'a mut Self;
12890        fn take_or_borrow<'a>(
12891            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12892        ) -> Self::Borrowed<'a> {
12893            value
12894        }
12895    }
12896
12897    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveOpenEventsRequest {
12898        type Owned = Self;
12899
12900        #[inline(always)]
12901        fn inline_align(_context: fidl::encoding::Context) -> usize {
12902            4
12903        }
12904
12905        #[inline(always)]
12906        fn inline_size(_context: fidl::encoding::Context) -> usize {
12907            8
12908        }
12909    }
12910
12911    unsafe impl
12912        fidl::encoding::Encode<
12913            RunnerReceiveOpenEventsRequest,
12914            fidl::encoding::DefaultFuchsiaResourceDialect,
12915        > for &mut RunnerReceiveOpenEventsRequest
12916    {
12917        #[inline]
12918        unsafe fn encode(
12919            self,
12920            encoder: &mut fidl::encoding::Encoder<
12921                '_,
12922                fidl::encoding::DefaultFuchsiaResourceDialect,
12923            >,
12924            offset: usize,
12925            _depth: fidl::encoding::Depth,
12926        ) -> fidl::Result<()> {
12927            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
12928            // Delegate to tuple encoding.
12929            fidl::encoding::Encode::<RunnerReceiveOpenEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12930                (
12931                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12932                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12933                ),
12934                encoder, offset, _depth
12935            )
12936        }
12937    }
12938    unsafe impl<
12939        T0: fidl::encoding::Encode<
12940                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12941                fidl::encoding::DefaultFuchsiaResourceDialect,
12942            >,
12943        T1: fidl::encoding::Encode<
12944                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
12945                fidl::encoding::DefaultFuchsiaResourceDialect,
12946            >,
12947    >
12948        fidl::encoding::Encode<
12949            RunnerReceiveOpenEventsRequest,
12950            fidl::encoding::DefaultFuchsiaResourceDialect,
12951        > for (T0, T1)
12952    {
12953        #[inline]
12954        unsafe fn encode(
12955            self,
12956            encoder: &mut fidl::encoding::Encoder<
12957                '_,
12958                fidl::encoding::DefaultFuchsiaResourceDialect,
12959            >,
12960            offset: usize,
12961            depth: fidl::encoding::Depth,
12962        ) -> fidl::Result<()> {
12963            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
12964            // Zero out padding regions. There's no need to apply masks
12965            // because the unmasked parts will be overwritten by fields.
12966            // Write the fields.
12967            self.0.encode(encoder, offset + 0, depth)?;
12968            self.1.encode(encoder, offset + 4, depth)?;
12969            Ok(())
12970        }
12971    }
12972
12973    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12974        for RunnerReceiveOpenEventsRequest
12975    {
12976        #[inline(always)]
12977        fn new_empty() -> Self {
12978            Self {
12979                target: fidl::new_empty!(
12980                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12981                    fidl::encoding::DefaultFuchsiaResourceDialect
12982                ),
12983                reporter: fidl::new_empty!(
12984                    fidl::encoding::Endpoint<
12985                        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
12986                    >,
12987                    fidl::encoding::DefaultFuchsiaResourceDialect
12988                ),
12989            }
12990        }
12991
12992        #[inline]
12993        unsafe fn decode(
12994            &mut self,
12995            decoder: &mut fidl::encoding::Decoder<
12996                '_,
12997                fidl::encoding::DefaultFuchsiaResourceDialect,
12998            >,
12999            offset: usize,
13000            _depth: fidl::encoding::Depth,
13001        ) -> fidl::Result<()> {
13002            decoder.debug_check_bounds::<Self>(offset);
13003            // Verify that padding bytes are zero.
13004            fidl::decode!(
13005                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
13006                fidl::encoding::DefaultFuchsiaResourceDialect,
13007                &mut self.target,
13008                decoder,
13009                offset + 0,
13010                _depth
13011            )?;
13012            fidl::decode!(
13013                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
13014                fidl::encoding::DefaultFuchsiaResourceDialect,
13015                &mut self.reporter,
13016                decoder,
13017                offset + 4,
13018                _depth
13019            )?;
13020            Ok(())
13021        }
13022    }
13023}